#include<bits/stdc++.h>
using namespace std;
#define LL long long
string a,b,c;
int n1,n2,n3;
LL dp[61][61][61];
LL f(int i,int j,int k){
if(i==n1 && j==n2){
if(k==n3){return 1;}
else{return 0;}
}
if(k==n3){return 1;}
if(dp[i][j][k]!=-1){return dp[i][j][k];}
LL sum = 0;
if(i<n1){
if(a[i]==c[k]){
sum = sum + f(i+1,j,k+1);
if(j<n2){sum = sum + f(i+1,j+1,k+1);}
}
sum = sum + f(i+1,j,k);
}
if(j<n2){
if(b[j]==c[k]){
sum = sum + f(i,j+1,k+1);
if(i<n1){sum = sum + f(i+1,j+1,k+1);}
}
sum = sum + f(i,j+1,k);
}
if(i<n1 && j<n2){
sum = sum + f(i+1,j+1,k);
}
dp[i][j][k] = sum;
return sum;
}
int main(){
#ifndef ONLINE_JUDGE
freopen("input.in","r",stdin);
freopen("output.out","w",stdout);
#endif
int t;
cin>>t;
while(t--){
cin>>a>>b>>c;
//cout<<a<<" "<<b<<" "<<c<<endl;
n1 = a.length();n2 = b.length();n3 = c.length();
memset(dp,-1,sizeof(dp));
LL ans = f(0,0,0);
cout<<ans<<endl;
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgTEwgbG9uZyBsb25nCgpzdHJpbmcgYSxiLGM7CmludCBuMSxuMixuMzsKTEwgZHBbNjFdWzYxXVs2MV07CgpMTCBmKGludCBpLGludCBqLGludCBrKXsKCWlmKGk9PW4xICYmIGo9PW4yKXsKCQlpZihrPT1uMyl7cmV0dXJuIDE7fQoJCWVsc2V7cmV0dXJuIDA7fQoJfQoJaWYoaz09bjMpe3JldHVybiAxO30JCglpZihkcFtpXVtqXVtrXSE9LTEpe3JldHVybiBkcFtpXVtqXVtrXTt9CgoJTEwgc3VtID0gMDsKCWlmKGk8bjEpewoJCWlmKGFbaV09PWNba10pewoJCQlzdW0gPSBzdW0gKyBmKGkrMSxqLGsrMSk7CgkJCWlmKGo8bjIpe3N1bSA9IHN1bSArIGYoaSsxLGorMSxrKzEpO30KCQl9CgkJc3VtID0gc3VtICsgZihpKzEsaixrKTsKCX0KCWlmKGo8bjIpewoJCWlmKGJbal09PWNba10pewoJCQlzdW0gPSBzdW0gKyBmKGksaisxLGsrMSk7CgkJCWlmKGk8bjEpe3N1bSA9IHN1bSArIGYoaSsxLGorMSxrKzEpO30KCQl9CgkJc3VtID0gc3VtICsgZihpLGorMSxrKTsKCX0KCWlmKGk8bjEgJiYgajxuMil7CgkJc3VtID0gc3VtICsgZihpKzEsaisxLGspOwoJfQoJZHBbaV1bal1ba10gPSBzdW07CglyZXR1cm4gc3VtOwp9CgppbnQgbWFpbigpewoJI2lmbmRlZiBPTkxJTkVfSlVER0UKCWZyZW9wZW4oImlucHV0LmluIiwiciIsc3RkaW4pOwoJZnJlb3Blbigib3V0cHV0Lm91dCIsInciLHN0ZG91dCk7CgkjZW5kaWYKCglpbnQgdDsKCWNpbj4+dDsKCgl3aGlsZSh0LS0pewoJCWNpbj4+YT4+Yj4+YzsKCQkvL2NvdXQ8PGE8PCIgIjw8Yjw8IiAiPDxjPDxlbmRsOwoJCW4xID0gYS5sZW5ndGgoKTtuMiA9IGIubGVuZ3RoKCk7bjMgPSBjLmxlbmd0aCgpOwoJCW1lbXNldChkcCwtMSxzaXplb2YoZHApKTsKCQlMTCBhbnMgPSBmKDAsMCwwKTsKCQljb3V0PDxhbnM8PGVuZGw7Cgl9Cn0=