#include <bits/stdc++.h>
#define endl "\n"
#define mod 1000000007
#define ll long long int
using namespace std;
ll modin(ll a)
{
ll x = 1LL, y = a, b=(mod-2LL);
while(b>0)
{
if(b&1)
{
x=(x*y);
if (x>=mod) x=x%mod;
}
y = (y*y);
if (y>=mod) y=y%mod;
b=b>>1; // b/=2
}
return x;
}
int main()
{
ios::sync_with_stdio(false);
ll t;
cin>>t;
ll n,x,m,temp1,ans,temp2,temp3,temp4;
ll a[100006];
while (t--)
{
ans=0;
temp1=0;
temp2=0;
temp3=0;
temp4=0;
cin>>n>>x>>m;
for (ll i=1LL;i<=n;i++)
{
cin>>a[i];
a[i]%=mod;
}
if (x==1)
cout<<(a[1]%mod)<<endl;
else if (m==1)
{
for (ll i=1LL;i<=x;i++)
{
ans = (ans + (a[i]%mod))%mod;
}
}
else
{
temp1 = 1LL;
ans = ((temp1*(a[x]%mod))%mod);
temp3 = m;
temp4 = 1LL;
for (ll i=1LL;i<x;i++)
{
temp2 = (((temp3%mod)*(modin(temp4)%mod))%mod);
temp1 = (temp1*temp2)%mod;
ans = ((ans+((temp1*(a[x-i]%mod))%mod))%mod);
temp3++;
temp4++;
}
cout<<(ans%mod)<<endl;
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgZW5kbCAiXG4iCiNkZWZpbmUgbW9kIDEwMDAwMDAwMDcKI2RlZmluZSBsbCBsb25nIGxvbmcgaW50CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpsbCBtb2RpbihsbCBhKQp7CiAgICBsbCB4ID0gMUxMLCB5ID0gYSwgYj0obW9kLTJMTCk7CiAgICB3aGlsZShiPjApCiAgICB7CiAgICAgICAgaWYoYiYxKQogICAgICAgIHsKICAgICAgICAgICAgeD0oeCp5KTsKICAgICAgICAgICAgaWYgKHg+PW1vZCkgeD14JW1vZDsKICAgICAgICB9CiAgICAgICAgeSA9ICh5KnkpOwogICAgICAgIGlmICh5Pj1tb2QpIHk9eSVtb2Q7CiAgICAgICAgYj1iPj4xOyAvLyBiLz0yCiAgICB9CiAgICByZXR1cm4geDsKfQoKaW50IG1haW4oKQp7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBsbCB0OwogICAgY2luPj50OwogICAgbGwgbix4LG0sdGVtcDEsYW5zLHRlbXAyLHRlbXAzLHRlbXA0OwogICAgbGwgYVsxMDAwMDZdOwogICAgd2hpbGUgKHQtLSkKICAgIHsKICAgICAgICBhbnM9MDsKICAgICAgICB0ZW1wMT0wOwogICAgICAgIHRlbXAyPTA7CiAgICAgICAgdGVtcDM9MDsKICAgICAgICB0ZW1wND0wOwogICAgICAgIGNpbj4+bj4+eD4+bTsKICAgICAgICBmb3IgKGxsIGk9MUxMO2k8PW47aSsrKQogICAgICAgIHsKICAgICAgICAgICAgY2luPj5hW2ldOwogICAgICAgICAgICBhW2ldJT1tb2Q7CiAgICAgICAgfQogICAgICAgIGlmICh4PT0xKQogICAgICAgICAgICBjb3V0PDwoYVsxXSVtb2QpPDxlbmRsOwogICAgICAgIGVsc2UgaWYgKG09PTEpCiAgICAgICAgewogICAgICAgICAgICBmb3IgKGxsIGk9MUxMO2k8PXg7aSsrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBhbnMgPSAoYW5zICsgKGFbaV0lbW9kKSklbW9kOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIHRlbXAxID0gMUxMOwogICAgICAgICAgICBhbnMgPSAoKHRlbXAxKihhW3hdJW1vZCkpJW1vZCk7CiAgICAgICAgICAgIHRlbXAzID0gbTsKICAgICAgICAgICAgdGVtcDQgPSAxTEw7CiAgICAgICAgICAgIGZvciAobGwgaT0xTEw7aTx4O2krKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdGVtcDIgPSAoKCh0ZW1wMyVtb2QpKihtb2Rpbih0ZW1wNCklbW9kKSklbW9kKTsKICAgICAgICAgICAgICAgIHRlbXAxID0gKHRlbXAxKnRlbXAyKSVtb2Q7CiAgICAgICAgICAgICAgICBhbnMgPSAoKGFucysoKHRlbXAxKihhW3gtaV0lbW9kKSklbW9kKSklbW9kKTsKICAgICAgICAgICAgICAgIHRlbXAzKys7CiAgICAgICAgICAgICAgICB0ZW1wNCsrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvdXQ8PChhbnMlbW9kKTw8ZW5kbDsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gMDsKfQo=