#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<cctype>
#include<cstring>
using namespace std;
struct rec
{
	int x1,x2,y1,y2;
}s1,s2,s3;
#define MAXN 2000010
#define MOD 1000000007
int fac[MAXN],inv[MAXN];
int power(int a,int b)
{
	int res = 1;
	while(b > 0)
	{
		if(b & 1)res = 1ll * res * a % MOD;
		a = 1ll * a * a % MOD;
		b = b >> 1;
	}
	return res;
}
int comb(int n,int m)
{
	return 1ll * fac[n] * inv[m] % MOD * inv[n - m] % MOD;
}
int C(int x1,int y1,int x2,int y2)
{
	if(x1 > x2)swap(x1,x2);if(y1 > y2)swap(y1,y2);
	return comb(y2 - y1 + x2 - x1,y2 - y1);
}
int calc(int x,int y,rec s)
{//cout << x << " " << y << " " << s.x1 << " " << s.x2 << " " << s.y1 << " " << s.y2 << " : ";
	if(x >= s.x1 && x >= s.x2 && y >= s.y1 && y >= s.y2)
	{
		s.x1 *= -1;s.y1 *= -1;s.x2 *= -1;s.y2 *= -1;
		swap(s.x1,s.x2);swap(s.y1,s.y2);
		x *= -1;y *= -1;
	}//cout << C(x,y,s.x2 + 1,s.y2 + 1) - C(x,y,s.x2 + 1,s.y1) - C(x,y,s.x1,s.y2 + 1) + C(x,y,s.x1,s.y1) << endl;
	int ans = 0;
	ans = (ans + C(x,y,s.x2 + 1,s.y2 + 1)) % MOD;
	ans = (ans - C(x,y,s.x2 + 1,s.y1) + MOD) % MOD;
	ans = (ans - C(x,y,s.x1,s.y2 + 1) + MOD) % MOD;
	ans = (ans + C(x,y,s.x1,s.y1)) % MOD;
	return ans;
}
int main()
{
	fac[0] = 1;for(int i = 1;i < MAXN;++i)fac[i] = 1ll * fac[i - 1] * i % MOD;
	inv[MAXN - 1] = power(fac[MAXN - 1],MOD - 2);
	for(int i = MAXN - 2;i >= 0;--i)inv[i] = 1ll * inv[i + 1] * (i + 1) % MOD;
	scanf("%d%d%d%d%d%d",&s1.x1,&s1.x2,&s2.x1,&s2.x2,&s3.x1,&s3.x2);
	scanf("%d%d%d%d%d%d",&s1.y1,&s1.y2,&s2.y1,&s2.y2,&s3.y1,&s3.y2);
	int ans = 0;
	for(int i = s2.x1;i <= s2.x2;++i)
	{
		ans = (ans - 1ll * calc(i,s2.y1 - 1,s1) * calc(i,s2.y1,s3) % MOD * (i + s2.y1) % MOD + MOD) % MOD;
		ans = (ans + 1ll * calc(i,s2.y2,s1) * calc(i,s2.y2 + 1,s3) % MOD * (i + s2.y2 + 1) % MOD) % MOD;
		//cout << calc(i,s2.y2,s1) << " " << calc(i,s2.y2 + 1,s3) << " " << (i + s2.y2 + 1) << endl;
		//cout << " : " << ans << endl;
	}//cout << ans << endl;
	for(int i = s2.y1;i <= s2.y2;++i)
	{
		ans = (ans - 1ll * calc(s2.x1 - 1,i,s1) * calc(s2.x1,i,s3) % MOD * (s2.x1 + i) % MOD + MOD) % MOD;
		ans = (ans + 1ll * calc(s2.x2,i,s1) * calc(s2.x2 + 1,i,s3) % MOD * (s2.x2 + i + 1) % MOD) % MOD;
		//cout << " : " << ans << endl;
	}
	cout << ans << endl;
	return 0;
}