#include <bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
vector<int> a(n);
vector<int> odds;
vector<int> evens;
for(int i=0; i<n; i++)
{
cin>>a[i];
if(a[i]%2==0) evens.push_back(a[i]);
else odds.push_back(a[i]);
}
sort(evens.begin(),evens.end(),greater<int>());
sort(odds.begin(),odds.end(),greater<int>());
int num_even = evens.size();
vector<long long> pf(num_even+1,0);
for(int i=0;i<num_even;i++)
{
pf[i+1]=pf[i]+evens[i];
}
for(int k=1; k<=n; k++)
{
int even_used = min(k-1,num_even);
int waste_odds_needed = (k-1)-even_used;
if(odds.size()==0)
{
cout<<"0 ";
continue;
}
long long sum;
if(even_used==(k-1))
{
sum = odds[0] + pf[even_used];
cout<<sum<<" ";
}
else
{
if(waste_odds_needed%2==0)
{
sum = odds[0] + pf[even_used];
cout<<sum<<" ";
}
else
{
if(even_used>0 && (odds.size()-1)%2==0)
{
sum = odds[0] + pf[even_used-1];
cout<<sum<<" ";
}
else
{
cout<<"0 ";
}
}
}
}
cout<<endl;
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBtYWluKCkKewoKICBpbnQgdDsKICBjaW4+PnQ7CiAgd2hpbGUodC0tKQogIHsKICAgIGludCBuOwogICAgY2luPj5uOwogICAgdmVjdG9yPGludD4gYShuKTsKICAgIHZlY3RvcjxpbnQ+IG9kZHM7CiAgICB2ZWN0b3I8aW50PiBldmVuczsKICAgIGZvcihpbnQgaT0wOyBpPG47IGkrKykKICAgIHsKICAgICAgY2luPj5hW2ldOwogICAgICBpZihhW2ldJTI9PTApIGV2ZW5zLnB1c2hfYmFjayhhW2ldKTsKICAgICAgZWxzZSBvZGRzLnB1c2hfYmFjayhhW2ldKTsKICAgIH0KCiAgICBzb3J0KGV2ZW5zLmJlZ2luKCksZXZlbnMuZW5kKCksZ3JlYXRlcjxpbnQ+KCkpOwogICAgc29ydChvZGRzLmJlZ2luKCksb2Rkcy5lbmQoKSxncmVhdGVyPGludD4oKSk7CgogICAgaW50IG51bV9ldmVuID0gZXZlbnMuc2l6ZSgpOwogICAgdmVjdG9yPGxvbmcgbG9uZz4gcGYobnVtX2V2ZW4rMSwwKTsKICAgIGZvcihpbnQgaT0wO2k8bnVtX2V2ZW47aSsrKQogICAgewogICAgICBwZltpKzFdPXBmW2ldK2V2ZW5zW2ldOwogICAgfQoKICAgIAoKICAgIGZvcihpbnQgaz0xOyBrPD1uOyBrKyspCiAgICB7IAoKICAgICAgaW50IGV2ZW5fdXNlZCA9IG1pbihrLTEsbnVtX2V2ZW4pOwogICAgICBpbnQgd2FzdGVfb2Rkc19uZWVkZWQgPSAoay0xKS1ldmVuX3VzZWQ7CgogICAgICBpZihvZGRzLnNpemUoKT09MCkKICAgICAgewogICAgICAgIGNvdXQ8PCIwICI7CiAgICAgICAgY29udGludWU7CiAgICAgIH0KICAgICAgbG9uZyBsb25nIHN1bTsKCiAgICAgIGlmKGV2ZW5fdXNlZD09KGstMSkpCiAgICAgIHsKICAgICAgICBzdW0gPSBvZGRzWzBdICsgcGZbZXZlbl91c2VkXTsKICAgICAgICBjb3V0PDxzdW08PCIgIjsKICAgICAgfQogICAgICBlbHNlCiAgICAgIHsKICAgICAgICBpZih3YXN0ZV9vZGRzX25lZWRlZCUyPT0wKQogICAgICAgIHsKICAgICAgICAgIHN1bSA9IG9kZHNbMF0gKyBwZltldmVuX3VzZWRdOwogICAgICAgICAgY291dDw8c3VtPDwiICI7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICBpZihldmVuX3VzZWQ+MCAmJiAob2Rkcy5zaXplKCktMSklMj09MCkKICAgICAgICAgIHsKICAgICAgICAgICAgc3VtID0gb2Rkc1swXSArIHBmW2V2ZW5fdXNlZC0xXTsKICAgICAgICAgICAgY291dDw8c3VtPDwiICI7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlCiAgICAgICAgICB7CiAgICAgICAgICAgIGNvdXQ8PCIwICI7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CgoKICAgIH0KCiAgICBjb3V0PDxlbmRsOwoKCgoKCgogIH0KICAKICAKCgoKCn0=