#include using namespace std; #define int long long const int N = 4e5 + 5; const int mod = 1e9 + 7; int a,b,c,d,fac[N],inv[N]; int qpow(int a,int b) { int res = 1; while(b) { if(b & 1) res = res * a % mod; a = a * a % mod; b >>= 1; } return res; } int comb(int x,int y) { if(x < 0 || y < 0 || x < y) return 0; return fac[x] * inv[y] % mod * inv[x-y] % mod; } signed main() { fac[0] = 1; for(int i=1;i=0;i--) inv[i] = inv[i+1] * (i + 1) % mod; int ttt; cin >> ttt; while(ttt--) { cin >> a >> b >> c >> d; if(a != b) {cout << 0 << '\n'; continue;} if(a == 0 && b == 0) { if(d == 0) {cout << 1 << '\n'; continue;} else {cout << 0 << '\n'; continue;} } cout << comb(a+b+c+d,c) * qpow(a,mod-2) % mod * comb(a+d-1,a-1) % mod * comb(2*a+d,a-1) % mod << '\n'; } return 0; }