#include<bits/stdc++.h>
using namespace std;
#define mod 1000000007
#define int long long
int T,n,ans;
string s;
int kmp[1001000],num[1001000];
int cnt[1001000];
bool vis[1001000];
int DFS(int x){
if(vis[x])return cnt[x];
if(x==0)return 0;
vis[x]=1;
cnt[x]=DFS(kmp[x-1])+1;
return cnt[x];
}
signed main(){
cin>>T;
while(T--){
cin>>s;
int j=0,ans=1;
n=s.size();
num[0]=kmp[0]=cnt[0]=0;
for(int i=1;i<n;i++){
num[i]=0,kmp[i]=0,cnt[i]=0,vis[i]=0;
while(j&&s[i]!=s[j])j=kmp[j-1];
if(s[i]==s[j])j++;
kmp[i]=j;
}
for(int i=n;i>0;i--)DFS(i);
for(int i=0;i<n;i++){
int t=kmp[i];
while(t*2>i+1)t=kmp[t-1];
num[i]=(num[i]+cnt[t])%mod;
ans=ans*(num[i]+1)%mod;
}
cout<<ans<<'\n';
}
return 0;
}