#include<cstdio>
#include<cstring>
using namespace std;
const int maxn = 41;
int lr[maxn],rl[maxn],r[maxn],ans[maxn];//记录每个括号左侧的右括号数,右侧的左括号数,右括号的位置
int main(){
int cas,n,num,cnt;
scanf("%d",&cas);
while(cas--){
cnt = 1;
scanf("%d",&n);
for(int i = 1;i<=n;i++){
scanf("%d",&num);
for(int j = cnt;j<=i+num;j++){
lr[j] = i-1;
rl[j] = j==i+num?n-j+i:n-1-j+i;
}
r[i] = i+num;
cnt = i+num+1;
}
for(int i = 1;i<=n;i++){
int reg = -1; //记录与第i个右括号匹配的左括号位置
for(int j = r[i]-1;j>0;j--){
if((rl[j]-rl[r[i]])==(lr[r[i]]-lr[j])){ //找到与每个右括号匹配的左括号
reg = j;
break;
}
}
ans[i] = lr[r[i]] - lr[reg] + 1;
}
for(int i = 1;i<n;i++)
printf("%d ",ans[i]);
printf("%d\n",ans[n]);
}
}