#include<bits/stdc++.h>
using namespace std;
const int MAX=500005;
const long long mod=1e9+7;
long long sum1[MAX],a[MAX],sum2[MAX],b[MAX],ans;
int n;
long long qzh[MAX],qzh1[MAX],qzh2[MAX];
long long read(){
long long s=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9')s=s*10+ch-'0',ch=getchar();
return s*f;
}
int main(){
n=read();
for(int i=1;i<=n;i++){
a[i]=read();
sum1[i]=(sum1[i-1]+a[i])%mod;
}
for(int i=1;i<=n;i++){
b[i]=read();
sum2[i]=(sum2[i-1]+b[i])%mod;
}
for(int i=1;i<=n;i++){
qzh[i]=(qzh[i-1]+sum1[i]*sum2[i]%mod)%mod;
qzh1[i]=(qzh1[i-1]+sum1[i])%mod;
qzh2[i]=(qzh2[i-1]+sum2[i])%mod;
}
for(int i=1;i<=n;i++){
long long a1=(qzh[n]-qzh[i-1]+mod)%mod;
long long a2=(sum1[i-1]*(qzh2[n]-qzh2[i-1]+mod)%mod)%mod;
long long b1=(sum2[i-1]*(qzh1[n]-qzh1[i-1]+mod)%mod)%mod;
long long b2=((n-i+1)*(sum1[i-1]*sum2[i-1])%mod)%mod;
ans=(ans+a1-a2-b1+b2+mod)%mod;
}
printf("%lld",ans%mod);
return 0;
}
求求dalao帮帮孩子吧qwq