#include "bits/stdc++.h"
// #pragma GCC optimize("O3,unroll-loops")
// #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
using namespace std;
using ll = long long int;
mt19937_64 rng(chrono::high_resolution_clock::now().time_since_epoch().count());
int main()
{
ios::sync_with_stdio(false); cin.tie(0);
int t; cin >> t;
while (t--) {
int n; cin >> n;
vector<int> a(n), b(n);
array<int, 20> allct{}, hsbct{};
array<array<int, 20>, 20> bitct{};
ll sumB = 0;
for (int &x : a) cin >> x;
for (int &x : b) {
cin >> x;
sumB += x;
if (x == 0) continue;
int hsb = 20;
while (~x&(1<<hsb)) --hsb;
++hsbct[hsb];
for (int i = 0; i < 20; ++i) {
allct[i] += (x>>i)&1;
bitct[hsb][i] += (x>>i)&1;
}
}
sort(rbegin(a), rend(a));
ll ans = 0;
int hsb = 20;
for (int x : a) {
if (x == 0) {
ans += sumB;
continue;
}
while (~x&(1<<hsb)) --hsb;
// Same hsb -> AND
for (int bit = 0; bit < 20; ++bit) {
if (~x & (1<<bit)) continue;
ans += (1LL<<bit) * bitct[hsb][bit];
}
// Different hsb -> XOR
for (int bit = 0; bit < 20; ++bit) {
int ct = 0;
if (x & (1<<bit)) ct = n - allct[bit] - (hsbct[hsb] - bitct[hsb][bit]);
else ct = allct[bit] - bitct[hsb][bit];
ans += (1LL<<bit) * ct;
}
}
cout << ans << '\n';
}
}