#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; }