#include <iostream>
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>
#include <string>
#include <bitset>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <algorithm>
#include <sstream>
#include <stack>
#include <iomanip>
#include <assert.h>
using namespace std;
#define pb push_back
#define mp make_pair
typedef pair<int,int> pii;
typedef long long ll;
typedef double ld;
typedef vector<int> vi;
#define fi first
#define se second
#define fe first
#define FO(x) {freopen(#x".in","r",stdin);freopen(#x".out","w",stdout);}
#define Edg int M=0,fst[SZ],vb[SZ],nxt[SZ];void ad_de(int a,int b){++M;nxt[M]=fst[a];fst[a]=M;vb[M]=b;}void adde(int a,int b){ad_de(a,b);ad_de(b,a);}
#define Edgc int M=0,fst[SZ],vb[SZ],nxt[SZ],vc[SZ];void ad_de(int a,int b,int c){++M;nxt[M]=fst[a];fst[a]=M;vb[M]=b;vc[M]=c;}void adde(int a,int b,int c){ad_de(a,b,c);ad_de(b,a,c);}
#define es(x,e) (int e=fst[x];e;e=nxt[e])
#define esb(x,e,b) (int e=fst[x],b=vb[e];e;e=nxt[e],b=vb[e])
#define SZ 277777
int T,n;
int MM=0,fst[SZ],vb[SZ],nxt[SZ],vc[SZ];
void ad_de(int a,int b,int c)
{++MM;nxt[MM]=fst[a];fst[a]=MM;vb[MM]=b;vc[MM]=c;}
void adde(int a,int b,int c)
{ad_de(a,b,c);ad_de(b,a,c);}
int M;
int fp[SZ],fc[SZ],top[SZ],dep[SZ],sz[SZ],son[SZ],fa[SZ],C=0;
void dfs(int x,int f=0)
{
fa[x]=f; dep[x]=dep[f]+1; son[x]=0; sz[x]=1;
for esb(x,e,b) if(b!=f)
{
fc[b]=vc[e]; dfs(b,x); sz[x]+=sz[b];
if(sz[b]>sz[son[x]]) son[x]=b;
}
}
int rp[SZ];
void dfs2(int x,int t)
{
fp[x]=++C; rp[C]=x; top[x]=t;
if(son[x]) dfs2(son[x],t);
for esb(x,e,b)
if(b!=fa[x]&&b!=son[x])
dfs2(b,b);
}
int ls[SZ],rs[SZ],ss[SZ];
namespace Seg
{
bool t1[SZ],t2[SZ];
int su[SZ][2][2],v[SZ][2][2];
void clr()
{
for(int i=0;i<=M+M;++i)
t1[i]=t2[i]=0,
memset(v[i],0,sizeof v[0]),
memset(su[i],0,sizeof su[0]);
}
inline void upd(int x)
{
if(x<=M)
{
#define par(a,b) \
su[x][a^t1[x]][b^t2[x]]=su[x+x][a][b]+su[x+x+1][a][b];
par(0,0) par(0,1) par(1,0) par(1,1);
#undef par
}
else
{
#define par(a,b) \
su[x][a^t1[x]][b^t2[x]]=v[x][a][b];
par(0,0) par(0,1) par(1,0) par(1,1);
#undef par
}
}
void flip(int x,int l,int r,int a,int b)
{
if(rs[x]<l||r<ls[x]) return;
if(l<=ls[x]&&rs[x]<=r)
{
t1[x]^=a; t2[x]^=b;
upd(x); return;
}
flip(x+x,l,r,a,b);
flip(x+x+1,l,r,a,b);
upd(x);
}
}
vector<pii> fj(int a,int b)
{
vector<pii> v;
while(top[a]!=top[b])
{
if(dep[top[a]]>dep[top[b]]) swap(a,b);
v.pb(pii(fp[top[b]],fp[b])); b=fa[top[b]];
}
if(dep[a]>dep[b]) swap(a,b);
if(a!=b) v.pb(pii(fp[a]+1,fp[b]));
return v;
}
int sw[SZ][2],Fc[SZ];
void updn(int x)
{
int v[2][2];
memset(v,0,sizeof v);
if(son[x])
{
if(x!=1)
{
for(int a=0;a<2;++a)
for(int b=0;b<2;++b)
v[a^Fc[x]][b^Fc[son[x]]]=(a!=b)?1:(sw[x][!a]!=0);
}
else
{
for(int a=0;a<2;++a)
for(int b=0;b<2;++b)
v[a^Fc[x]][b^Fc[son[x]]]=1+(sw[x][!b]!=0);
}
}
// cout<<"UPDN"<<x<<"!\n";
// for(int j=0;j<2;++j) for(int k=0;k<2;++k) cout<<v[j][k]<<" ";cout<<"\n";
int w=fp[x]+M;
memcpy(Seg::v[w],v,sizeof v);
while(w) Seg::upd(w),w>>=1;
}
namespace FF{
char ch,B[1<<20],*S=B,*T=B;
#define getc() (S==T&&(T=(S=B)+fread(B,1,1<<20,stdin),S==T)?0:*S++)
#define isd(c) (c>='0'&&c<='9')
int aa,bb;int F(){
while(ch=getc(),!isd(ch)&&ch!='-');ch=='-'?aa=bb=0:(aa=ch-'0',bb=1);
while(ch=getc(),isd(ch))aa=aa*10+ch-'0';return bb?aa:-aa;
}
}
#define gi FF::F()
#define BUFSIZE 5000000
namespace fob {char b[BUFSIZE]={},*f=b,*g=b+BUFSIZE-2;}
#define pob (fwrite(fob::b,sizeof(char),fob::f-fob::b,stdout),fob::f=fob::b,0)
#define pc(x) (*(fob::f++)=(x),(fob::f==fob::g)?pob:0)
struct foce {~foce() {pob; fflush(stdout);}} _foce;
namespace ib {char b[100];}
inline void pint(int x)
{
if(x==0) {pc(48); return;}
char *s=ib::b;
while(x) *(++s)=x%10, x/=10;
while(s!=ib::b) pc((*(s--))+48);
}
void sol()
{
n=gi; MM=C=0;
for(int i=1;i<=n;++i) fst[i]=sw[i][0]=sw[i][1]=0;
M=1; while(M<n+2) M<<=1;
for(int i=0;i<=M-1;++i) ls[i+M]=rs[i+M]=i,ss[i]=1;
for(int i=M-1;i>=1;--i)
ls[i]=ls[i+i],rs[i]=rs[i+i+1],
ss[i]=rs[i]-ls[i]+1;
for(int i=1,a,b,c;i<n;++i)
a=gi,b=gi,c=gi,adde(a,b,c);
dfs(1); dfs2(1,1);
for(int i=0;i<=n;++i) Fc[i]=fc[i];
Seg::clr();
for(int i=2;i<=n;++i)
if(i!=son[fa[i]]) sw[fa[i]][fc[i]]++;
for(int i=1;i<=n;++i) updn(i);
int q=gi;
while(q--)
{
int a=gi,b=gi;
auto w=fj(a,b);
for(auto t_:w)
{
auto t=t_;
//flip range t
int u=rp[t.fi];
Seg::flip(1,t.fi,t.se,1,0);
if(u!=son[fa[u]])
{
--sw[fa[u]][fc[u]];
++sw[fa[u]][fc[u]^=1];
updn(fa[u]);
}
else --t.fi; --t.se;
if(t.fi<=t.se) Seg::flip(1,t.fi,t.se,0,1);
}
pint(Seg::su[1][0][0]); pc(10);
}
}
int main()
{
T=gi;
for(int i=1;i<=T;++i) sol();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPG1hdGguaD4KI2luY2x1ZGUgPHN0cmluZy5oPgojaW5jbHVkZSA8dGltZS5oPgojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDxiaXRzZXQ+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxzZXQ+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDxxdWV1ZT4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPHNzdHJlYW0+CiNpbmNsdWRlIDxzdGFjaz4KI2luY2x1ZGUgPGlvbWFuaXA+CiNpbmNsdWRlIDxhc3NlcnQuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBtcCBtYWtlX3BhaXIKdHlwZWRlZiBwYWlyPGludCxpbnQ+IHBpaTsKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgZG91YmxlIGxkOwp0eXBlZGVmIHZlY3RvcjxpbnQ+IHZpOwojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgZmUgZmlyc3QKI2RlZmluZSBGTyh4KSB7ZnJlb3BlbigjeCIuaW4iLCJyIixzdGRpbik7ZnJlb3BlbigjeCIub3V0IiwidyIsc3Rkb3V0KTt9CiNkZWZpbmUgRWRnIGludCBNPTAsZnN0W1NaXSx2YltTWl0sbnh0W1NaXTt2b2lkIGFkX2RlKGludCBhLGludCBiKXsrK007bnh0W01dPWZzdFthXTtmc3RbYV09TTt2YltNXT1iO312b2lkIGFkZGUoaW50IGEsaW50IGIpe2FkX2RlKGEsYik7YWRfZGUoYixhKTt9CiNkZWZpbmUgRWRnYyBpbnQgTT0wLGZzdFtTWl0sdmJbU1pdLG54dFtTWl0sdmNbU1pdO3ZvaWQgYWRfZGUoaW50IGEsaW50IGIsaW50IGMpeysrTTtueHRbTV09ZnN0W2FdO2ZzdFthXT1NO3ZiW01dPWI7dmNbTV09Yzt9dm9pZCBhZGRlKGludCBhLGludCBiLGludCBjKXthZF9kZShhLGIsYyk7YWRfZGUoYixhLGMpO30KI2RlZmluZSBlcyh4LGUpIChpbnQgZT1mc3RbeF07ZTtlPW54dFtlXSkKI2RlZmluZSBlc2IoeCxlLGIpIChpbnQgZT1mc3RbeF0sYj12YltlXTtlO2U9bnh0W2VdLGI9dmJbZV0pCiNkZWZpbmUgU1ogMjc3Nzc3CmludCBULG47CmludCBNTT0wLGZzdFtTWl0sdmJbU1pdLG54dFtTWl0sdmNbU1pdOwp2b2lkIGFkX2RlKGludCBhLGludCBiLGludCBjKQp7KytNTTtueHRbTU1dPWZzdFthXTtmc3RbYV09TU07dmJbTU1dPWI7dmNbTU1dPWM7fQp2b2lkIGFkZGUoaW50IGEsaW50IGIsaW50IGMpCnthZF9kZShhLGIsYyk7YWRfZGUoYixhLGMpO30KaW50IE07CmludCBmcFtTWl0sZmNbU1pdLHRvcFtTWl0sZGVwW1NaXSxzeltTWl0sc29uW1NaXSxmYVtTWl0sQz0wOwp2b2lkIGRmcyhpbnQgeCxpbnQgZj0wKQp7CglmYVt4XT1mOyBkZXBbeF09ZGVwW2ZdKzE7IHNvblt4XT0wOyBzelt4XT0xOwoJZm9yIGVzYih4LGUsYikgaWYoYiE9ZikKCXsKCQlmY1tiXT12Y1tlXTsgZGZzKGIseCk7IHN6W3hdKz1zeltiXTsKCQlpZihzeltiXT5zeltzb25beF1dKSBzb25beF09YjsKCX0KfQppbnQgcnBbU1pdOwp2b2lkIGRmczIoaW50IHgsaW50IHQpCnsKCWZwW3hdPSsrQzsgcnBbQ109eDsgdG9wW3hdPXQ7CglpZihzb25beF0pIGRmczIoc29uW3hdLHQpOwoJZm9yIGVzYih4LGUsYikKCQlpZihiIT1mYVt4XSYmYiE9c29uW3hdKQoJCQlkZnMyKGIsYik7Cn0KaW50IGxzW1NaXSxyc1tTWl0sc3NbU1pdOwpuYW1lc3BhY2UgU2VnCnsKYm9vbCB0MVtTWl0sdDJbU1pdOwppbnQgc3VbU1pdWzJdWzJdLHZbU1pdWzJdWzJdOwp2b2lkIGNscigpCnsKCWZvcihpbnQgaT0wO2k8PU0rTTsrK2kpCgkJdDFbaV09dDJbaV09MCwKCQltZW1zZXQodltpXSwwLHNpemVvZiB2WzBdKSwKCQltZW1zZXQoc3VbaV0sMCxzaXplb2Ygc3VbMF0pOwp9CmlubGluZSB2b2lkIHVwZChpbnQgeCkKewoJaWYoeDw9TSkKCXsKCQkjZGVmaW5lIHBhcihhLGIpIFwKCQlzdVt4XVthXnQxW3hdXVtiXnQyW3hdXT1zdVt4K3hdW2FdW2JdK3N1W3greCsxXVthXVtiXTsKCQlwYXIoMCwwKSBwYXIoMCwxKSBwYXIoMSwwKSBwYXIoMSwxKTsKCQkjdW5kZWYgcGFyCgl9CgllbHNlCgl7CgkJI2RlZmluZSBwYXIoYSxiKSBcCgkJc3VbeF1bYV50MVt4XV1bYl50Mlt4XV09dlt4XVthXVtiXTsKCQlwYXIoMCwwKSBwYXIoMCwxKSBwYXIoMSwwKSBwYXIoMSwxKTsKCQkjdW5kZWYgcGFyCgl9Cn0Kdm9pZCBmbGlwKGludCB4LGludCBsLGludCByLGludCBhLGludCBiKQp7CglpZihyc1t4XTxsfHxyPGxzW3hdKSByZXR1cm47CglpZihsPD1sc1t4XSYmcnNbeF08PXIpCgl7CgkJdDFbeF1ePWE7IHQyW3hdXj1iOwoJCXVwZCh4KTsgcmV0dXJuOwoJfQoJZmxpcCh4K3gsbCxyLGEsYik7CglmbGlwKHgreCsxLGwscixhLGIpOwoJdXBkKHgpOwp9Cn0KdmVjdG9yPHBpaT4gZmooaW50IGEsaW50IGIpCnsKCXZlY3RvcjxwaWk+IHY7Cgl3aGlsZSh0b3BbYV0hPXRvcFtiXSkKCXsKCQlpZihkZXBbdG9wW2FdXT5kZXBbdG9wW2JdXSkgc3dhcChhLGIpOwoJCXYucGIocGlpKGZwW3RvcFtiXV0sZnBbYl0pKTsgYj1mYVt0b3BbYl1dOwoJfQoJaWYoZGVwW2FdPmRlcFtiXSkgc3dhcChhLGIpOwoJaWYoYSE9Yikgdi5wYihwaWkoZnBbYV0rMSxmcFtiXSkpOwoJcmV0dXJuIHY7Cn0KaW50IHN3W1NaXVsyXSxGY1tTWl07CnZvaWQgdXBkbihpbnQgeCkKewoJaW50IHZbMl1bMl07CgltZW1zZXQodiwwLHNpemVvZiB2KTsKCWlmKHNvblt4XSkKCXsKCWlmKHghPTEpCgl7Cglmb3IoaW50IGE9MDthPDI7KythKQoJCWZvcihpbnQgYj0wO2I8MjsrK2IpCgkJCXZbYV5GY1t4XV1bYl5GY1tzb25beF1dXT0oYSE9Yik/MTooc3dbeF1bIWFdIT0wKTsKCX0KCWVsc2UKCXsKCWZvcihpbnQgYT0wO2E8MjsrK2EpCgkJZm9yKGludCBiPTA7YjwyOysrYikKCQkJdlthXkZjW3hdXVtiXkZjW3Nvblt4XV1dPTErKHN3W3hdWyFiXSE9MCk7Cgl9Cgl9Ci8vCWNvdXQ8PCJVUEROIjw8eDw8IiFcbiI7Ci8vCWZvcihpbnQgaj0wO2o8MjsrK2opIGZvcihpbnQgaz0wO2s8MjsrK2spIGNvdXQ8PHZbal1ba108PCIgIjtjb3V0PDwiXG4iOwoJaW50IHc9ZnBbeF0rTTsKCW1lbWNweShTZWc6OnZbd10sdixzaXplb2Ygdik7Cgl3aGlsZSh3KSBTZWc6OnVwZCh3KSx3Pj49MTsKfQpuYW1lc3BhY2UgRkZ7CmNoYXIgY2gsQlsxPDwyMF0sKlM9QiwqVD1COwojZGVmaW5lIGdldGMoKSAoUz09VCYmKFQ9KFM9QikrZnJlYWQoQiwxLDE8PDIwLHN0ZGluKSxTPT1UKT8wOipTKyspCiNkZWZpbmUgaXNkKGMpIChjPj0nMCcmJmM8PSc5JykKaW50IGFhLGJiO2ludCBGKCl7CiAgICB3aGlsZShjaD1nZXRjKCksIWlzZChjaCkmJmNoIT0nLScpO2NoPT0nLSc/YWE9YmI9MDooYWE9Y2gtJzAnLGJiPTEpOwogICAgd2hpbGUoY2g9Z2V0YygpLGlzZChjaCkpYWE9YWEqMTArY2gtJzAnO3JldHVybiBiYj9hYTotYWE7Cn0KfQojZGVmaW5lIGdpIEZGOjpGKCkKI2RlZmluZSBCVUZTSVpFIDUwMDAwMDAKbmFtZXNwYWNlIGZvYiB7Y2hhciBiW0JVRlNJWkVdPXt9LCpmPWIsKmc9YitCVUZTSVpFLTI7fQojZGVmaW5lIHBvYiAoZndyaXRlKGZvYjo6YixzaXplb2YoY2hhciksZm9iOjpmLWZvYjo6YixzdGRvdXQpLGZvYjo6Zj1mb2I6OmIsMCkKI2RlZmluZSBwYyh4KSAoKihmb2I6OmYrKyk9KHgpLChmb2I6OmY9PWZvYjo6Zyk/cG9iOjApCnN0cnVjdCBmb2NlIHt+Zm9jZSgpIHtwb2I7IGZmbHVzaChzdGRvdXQpO319IF9mb2NlOwpuYW1lc3BhY2UgaWIge2NoYXIgYlsxMDBdO30KaW5saW5lIHZvaWQgcGludChpbnQgeCkKewogICAgaWYoeD09MCkge3BjKDQ4KTsgcmV0dXJuO30KICAgIGNoYXIgKnM9aWI6OmI7CiAgICB3aGlsZSh4KSAqKCsrcyk9eCUxMCwgeC89MTA7CiAgICB3aGlsZShzIT1pYjo6YikgcGMoKCoocy0tKSkrNDgpOwp9CnZvaWQgc29sKCkKewoJbj1naTsgTU09Qz0wOwoJZm9yKGludCBpPTE7aTw9bjsrK2kpIGZzdFtpXT1zd1tpXVswXT1zd1tpXVsxXT0wOwoJTT0xOyB3aGlsZShNPG4rMikgTTw8PTE7Cglmb3IoaW50IGk9MDtpPD1NLTE7KytpKSBsc1tpK01dPXJzW2krTV09aSxzc1tpXT0xOwoJZm9yKGludCBpPU0tMTtpPj0xOy0taSkKCQlsc1tpXT1sc1tpK2ldLHJzW2ldPXJzW2kraSsxXSwKCQlzc1tpXT1yc1tpXS1sc1tpXSsxOwoJZm9yKGludCBpPTEsYSxiLGM7aTxuOysraSkKCQlhPWdpLGI9Z2ksYz1naSxhZGRlKGEsYixjKTsKCWRmcygxKTsgZGZzMigxLDEpOwoJZm9yKGludCBpPTA7aTw9bjsrK2kpIEZjW2ldPWZjW2ldOwoJU2VnOjpjbHIoKTsKCWZvcihpbnQgaT0yO2k8PW47KytpKQoJCWlmKGkhPXNvbltmYVtpXV0pIHN3W2ZhW2ldXVtmY1tpXV0rKzsKCWZvcihpbnQgaT0xO2k8PW47KytpKSB1cGRuKGkpOwoJaW50IHE9Z2k7Cgl3aGlsZShxLS0pCgl7CgkJaW50IGE9Z2ksYj1naTsKCQlhdXRvIHc9ZmooYSxiKTsKCQlmb3IoYXV0byB0Xzp3KQoJCXsKCQkJYXV0byB0PXRfOwoJCQkvL2ZsaXAgcmFuZ2UgdAoJCQlpbnQgdT1ycFt0LmZpXTsKCQkJU2VnOjpmbGlwKDEsdC5maSx0LnNlLDEsMCk7CgkJCWlmKHUhPXNvbltmYVt1XV0pCgkJCXsKCQkJCS0tc3dbZmFbdV1dW2ZjW3VdXTsKCQkJCSsrc3dbZmFbdV1dW2ZjW3VdXj0xXTsKCQkJCXVwZG4oZmFbdV0pOwoJCQl9CgkJCWVsc2UgLS10LmZpOyAtLXQuc2U7CgkJCWlmKHQuZmk8PXQuc2UpIFNlZzo6ZmxpcCgxLHQuZmksdC5zZSwwLDEpOwoJCX0KCQlwaW50KFNlZzo6c3VbMV1bMF1bMF0pOyBwYygxMCk7Cgl9Cn0KaW50IG1haW4oKQp7CglUPWdpOwoJZm9yKGludCBpPTE7aTw9VDsrK2kpIHNvbCgpOwp9