#include <iostream>
#include <cstdio>

using namespace std;

const int nn = 1 << 21;

const int MOD = 1000000000 + 7;

long long f[nn];
long long fi[nn];

int pow(int x, int p) {
	if (!p) return 1;
	long long y = pow(x, p / 2);
	y = y * y % MOD;
	if (p & 1) y = y * x % MOD;
	return y;
}

int inv(int x) {
	return pow(x, MOD - 2);
}

long long calc(int n, int m) {
	--n; --m;
	if (n < 0) return 0;
	if (m < 0) return 0;
	long long res = f[n + m] * fi[n] % MOD * fi[m] % MOD;
	return res;
}

void solve() {
	int n, m;
	int r1, c1;
	int r2, c2;
	cin >> n >> m;
	cin >> r1 >> c1;
	cin >> r2 >> c2;

	long long res = calc(n, m);

	for (int r = r1; r <= r2; ++r) {
		res -= calc(r, c1 - 1) * calc(n - r + 1, m - c1 + 1) % MOD;
	}

	for (int c = c1; c <= c2; ++c) {
		res -= calc(r1 - 1, c) * calc(n - r1 + 1, m - c + 1) % MOD;
	}
	res %= MOD;
	res = (res + MOD) % MOD;

	if (r1 == 1 && c1 == 1) res = 0;
	cout << res << endl;
}

int main() {
	f[0] = 1;
	fi[0] = 1;

	for (int i = 1; i < nn ;++i) {
		f[i] = f[i-1] * i % MOD;
		fi[i] = fi[i-1] * inv(i) % MOD;
	}

	int t;
	cin >> t;
	while (t --> 0) solve();
	return 0;
}