S = int(input()) mod = int(1e9)+7 def doubling(n,m): y = 1 bas = n tmp = m while tmp: if tmp % 2: y *= bas y %= mod bas *= bas bas %= mod tmp >>= 1 return y def inved(a): x,y,u,v,k,l=1,0,0,1,a,mod while l: x,y,u,v,k,l=u,v,x-u*(k//l),y-v*(k//l),l,k%l return a i2 = inved(2) for _ in range(S): N, M, X = map(int, input().split()) sign = 1 if (N+X)%2==1: sign = mod-1 print(i2*(doubling(M+1,N)+sign*doubling(M-1,N))%mod)