/*
分析:
敲错一个符号WA一次,撞墙去算了。。。
算是二分吧,对于等比数列的情况而言。不啰嗦了,
吃饭去了。。。囧~
2013-02-26
*/
#include"stdio.h"
#include"string.h"
#include"stdlib.h"
#define e 200907
__int64 a,b,c,k;
void solve1()
{
__int64 dir,ans;
dir=(c-b)%e;
k=(k-1)%e;
a%=e;
ans=(a+k*dir)%e;
printf("%I64d\n",ans);
}
void solve2()
{
if(k==1) printf("%I64d\n",a%e);
__int64 q,ans;
q=(c/b)%e;
a%=e;
k--;
__int64 t,tt,temp;
t=k;tt=2;
temp=q;
ans=a;
while(0<t)
{
while(tt<t)
{
temp=(temp*temp)%e;
tt*=2;
}
ans=(ans*temp)%e;
t-=tt/2;
tt=2;
temp=q;
}
printf("%I64d\n",ans);
}
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
scanf("%I64d%I64d%I64d%I64d",&a,&b,&c,&k);
if(c-b==b-a) solve1();
else solve2();
}
return 0;
}