#include<bits/stdc++.h>
using namespace std;
long long ar[100001]={0};
long long br[100001]={0};
int main()
{
std::ios::sync_with_stdio(false);
int t,i;
long long pr,a,d,n,x,a1,b1,sum=0;
cin>>t;
while(t--)
{
cin>>a>>d>>n>>x;
ar[n]=1;
ar[n-1]=x;
for(i=n-2;i>=0;i--) {
pr=((ar[i+1]*x)%215372682525);
ar[i]=pr;
}
for(i=n;i>=0;i--) {
br[i]=(ar[i]*a)%215372682525;
}
for(i=n;i>=0;i--) {
ar[i]=(ar[i]*d)%215372682525;
ar[i]=(ar[i]*i)%215372682525;
}
for(i=n;i>=0;i--) {
ar[i]=(ar[i]+br[i])%215372682525;
}
for(i=0;i<=n;i++) {
sum+=ar[i];
sum=sum%215372682525;
}
cout<<sum<<endl;
sum=0;
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpsb25nIGxvbmcgYXJbMTAwMDAxXT17MH07CmxvbmcgbG9uZyBiclsxMDAwMDFdPXswfTsKCmludCBtYWluKCkKewoJc3RkOjppb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CglpbnQgdCxpOwoJbG9uZyBsb25nIHByLGEsZCxuLHgsYTEsYjEsc3VtPTA7CgljaW4+PnQ7CgoJd2hpbGUodC0tKQoJewoJCWNpbj4+YT4+ZD4+bj4+eDsKCgkJYXJbbl09MTsKCQlhcltuLTFdPXg7CgoJCWZvcihpPW4tMjtpPj0wO2ktLSkgewoJCQlwcj0oKGFyW2krMV0qeCklMjE1MzcyNjgyNTI1KTsKCQkJYXJbaV09cHI7CgkJfQoKCQlmb3IoaT1uO2k+PTA7aS0tKSB7CgkJCWJyW2ldPShhcltpXSphKSUyMTUzNzI2ODI1MjU7CgkJfQoKCQlmb3IoaT1uO2k+PTA7aS0tKSB7CgkJCWFyW2ldPShhcltpXSpkKSUyMTUzNzI2ODI1MjU7CgkJCWFyW2ldPShhcltpXSppKSUyMTUzNzI2ODI1MjU7CgkJfQoKCQlmb3IoaT1uO2k+PTA7aS0tKSB7CgkJCWFyW2ldPShhcltpXSticltpXSklMjE1MzcyNjgyNTI1OwoJCX0KCgkJZm9yKGk9MDtpPD1uO2krKykgewogICAgICAgICAgICBzdW0rPWFyW2ldOwogICAgICAgICAgICBzdW09c3VtJTIxNTM3MjY4MjUyNTsKCQl9CgogICAgICAgIGNvdXQ8PHN1bTw8ZW5kbDsKICAgICAgICBzdW09MDsKCX0KCglyZXR1cm4gMDsKfQo=