/*
Solution By - Amrutansu Garanaik
Codechef ID - dragonemperor
*/
#include<stdio.h>
#define MOD 1000000007
typedef long long ll;
void multiply(ll a[4][4],ll b[4][4],ll c[4][4])
{
ll d[4][4];
for(int i=0;i<4;i++)
for(int j=0;j<4;j++)
{
d[i][j]=0;
for(int k=0;k<4;k++)
{
d[i][j]=d[i][j]+a[i][k]*b[k][j];
d[i][j]%=MOD;
d[i][j]+=MOD;
d[i][j]%=MOD;
}
}
for(int i=0;i<4;i++)
for(int j=0;j<4;j++)
c[i][j]=d[i][j];
}
void exponent(ll result[4][4],ll trans[4][4],ll power)
{
while(power)
{
if(power&1)
{
multiply(result,trans,result);
}
multiply(trans,trans,trans);
power/=2;
}
}
int main()
{
ll test,a,b,c,e,t0,t1,t2,n,ans;
scanf("%lld",&test);
while(test--)
{
ans=0;
scanf("%lld%lld%lld%lld%lld%lld%lld",&a,&b,&c,&e,&t0,&t1,&t2);
scanf("%lld",&n);
a=(a+MOD)%MOD;
b=(b+MOD)%MOD;
c=(c+MOD)%MOD;
e=(e+MOD)%MOD;
t0=(t0+MOD)%MOD;
t1=(t1+MOD)%MOD;
t2=(t2+MOD)%MOD;
if(n<=3)
{
if(n==1)
printf("%lld\n",t0);
else if(n==2)
printf("%lld\n",t1);
else if(n==3)
printf("%lld\n",t2);
continue;
}
ll trans[4][4]= {
{a,b,c,1},
{1,0,0,0},
{0,1,0,0},
{0,0,0,1},
};
ll result[4][4]={
{1,0,0,0},
{0,1,0,0},
{0,0,1,0},
{0,0,0,1},
};
ll initial[4]={t2,t1,t0,e};
exponent(result,trans,n-3);
for(int i=0;i<4;i++)
{
ans=ans+(result[0][i]*initial[i])%MOD;
ans%=MOD;
}
if(ans<0)
ans+=MOD;
printf("%lld\n",ans);
}
}
LyoKCVNvbHV0aW9uIEJ5IC0gQW1ydXRhbnN1IEdhcmFuYWlrCglDb2RlY2hlZiBJRCAtIGRyYWdvbmVtcGVyb3IKKi8KCiNpbmNsdWRlPHN0ZGlvLmg+CiNkZWZpbmUgTU9EIDEwMDAwMDAwMDcKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnZvaWQgbXVsdGlwbHkobGwgYVs0XVs0XSxsbCBiWzRdWzRdLGxsIGNbNF1bNF0pCnsKCWxsIGRbNF1bNF07Cglmb3IoaW50IGk9MDtpPDQ7aSsrKQoJZm9yKGludCBqPTA7ajw0O2orKykKCXsKCQlkW2ldW2pdPTA7CgkJZm9yKGludCBrPTA7azw0O2srKykKCQl7CgkJCWRbaV1bal09ZFtpXVtqXSthW2ldW2tdKmJba11bal07CgkJCWRbaV1bal0lPU1PRDsKCQkJZFtpXVtqXSs9TU9EOwoJCQlkW2ldW2pdJT1NT0Q7CgkJfQoJfQoJZm9yKGludCBpPTA7aTw0O2krKykKCWZvcihpbnQgaj0wO2o8NDtqKyspCgkJY1tpXVtqXT1kW2ldW2pdOwp9CnZvaWQgZXhwb25lbnQobGwgcmVzdWx0WzRdWzRdLGxsIHRyYW5zWzRdWzRdLGxsIHBvd2VyKQp7Cgl3aGlsZShwb3dlcikKCXsKCQlpZihwb3dlciYxKQoJCXsKCQkJbXVsdGlwbHkocmVzdWx0LHRyYW5zLHJlc3VsdCk7CQkKCQl9CgkJbXVsdGlwbHkodHJhbnMsdHJhbnMsdHJhbnMpOwkJCgkJcG93ZXIvPTI7Cgl9Cn0KaW50IG1haW4oKQp7CglsbCB0ZXN0LGEsYixjLGUsdDAsdDEsdDIsbixhbnM7CglzY2FuZigiJWxsZCIsJnRlc3QpOwoJd2hpbGUodGVzdC0tKQoJewoJCWFucz0wOwoJCXNjYW5mKCIlbGxkJWxsZCVsbGQlbGxkJWxsZCVsbGQlbGxkIiwmYSwmYiwmYywmZSwmdDAsJnQxLCZ0Mik7CgkJc2NhbmYoIiVsbGQiLCZuKTsKCQlhPShhK01PRCklTU9EOwoJCWI9KGIrTU9EKSVNT0Q7CgkJYz0oYytNT0QpJU1PRDsKCQllPShlK01PRCklTU9EOwoJCXQwPSh0MCtNT0QpJU1PRDsKCQl0MT0odDErTU9EKSVNT0Q7CgkJdDI9KHQyK01PRCklTU9EOwoJCWlmKG48PTMpCgkJewoJCQlpZihuPT0xKQoJCQkJcHJpbnRmKCIlbGxkXG4iLHQwKTsKCQkJZWxzZSBpZihuPT0yKQoJCQkJcHJpbnRmKCIlbGxkXG4iLHQxKTsKCQkJZWxzZSBpZihuPT0zKQoJCQkJcHJpbnRmKCIlbGxkXG4iLHQyKTsKCQkJY29udGludWU7CgkJfQoJCWxsIHRyYW5zWzRdWzRdPSB7CgkJCQkJe2EsYixjLDF9LAoJCQkJCXsxLDAsMCwwfSwKCQkJCQl7MCwxLDAsMH0sCgkJCQkJezAsMCwwLDF9LAoJCQkJfTsKCQlsbCByZXN1bHRbNF1bNF09ewoJCQkJCXsxLDAsMCwwfSwKCQkJCQl7MCwxLDAsMH0sCgkJCQkJezAsMCwxLDB9LAoJCQkJCXswLDAsMCwxfSwKCQkJCQkKCQkJCX07CgkJbGwgaW5pdGlhbFs0XT17dDIsdDEsdDAsZX07CgkJZXhwb25lbnQocmVzdWx0LHRyYW5zLG4tMyk7CQkKCQlmb3IoaW50IGk9MDtpPDQ7aSsrKQoJCXsKCQkJYW5zPWFucysocmVzdWx0WzBdW2ldKmluaXRpYWxbaV0pJU1PRDsKCQkJYW5zJT1NT0Q7CgkJfQoJCWlmKGFuczwwKQoJCQlhbnMrPU1PRDsKCQlwcmludGYoIiVsbGRcbiIsYW5zKTsKCX0KfQ==