#include <bits/stdc++.h>
using namespace std;
#define MAXN 105
#define MOD 1000000007
#define int long long
int n,q;
int a[MAXN],pref[MAXN];
int arr[MAXN];
int l[MAXN],r[MAXN],x[MAXN];
int32_t main()
{
cin>>n;for (int i=1;i<=n;i++) cin>>a[i];
cin>>q;for (int i=0;i<q;i++) cin>>l[i]>>r[i]>>x[i];
if (q<=10 and n<=100)
{
int answer=0;
for (int mask=0;mask<(1<<q);mask++)
{
for (int i=1;i<=n;i++) arr[i]=a[i];
int solution=0;
for (int bit=0;bit<q;bit++)
{
if (!(mask&(1<<bit))) continue;
for (int i=l[bit];i<=r[bit];i++) arr[i]^=x[bit];
}
pref[0]=0;for (int i=1;i<=n;i++) pref[i]=pref[i-1]+arr[i];
for (int pos1=1;pos1<=n;pos1++)
{
for (int pos2=pos1;pos2<=n;pos2++)
{
int suma=pref[pos2]-pref[pos1-1];
if (suma>=MOD) suma%=MOD;
suma=suma*suma;if (suma>=MOD) suma%=MOD;
solution+=suma;if (solution>=MOD) solution%=MOD;
}
}
answer+=solution;if (answer>=MOD) answer%=MOD;
}
cout<<answer<<endl;return 0;
}
return 0;
}