#include <iostream>
#include <vector>
using namespace std;
using int64 = long long;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int64 testCases;
cin >> testCases;
while (testCases--) {
int64 size;
cin >> size;
vector<int64> nums(size);
for (int64 i = 0; i < size; i++) cin >> nums[i];
int64 invalidCount = 0;
for (int64 start = 0; start < size; start++) {
for (int64 end = start; end < size; end++) {
int64 totalXor = 0;
for (int64 idx = start; idx <= end; idx++) {
totalXor ^= nums[idx];
}
if (totalXor == 0) {
int64 prefixXor = 0;
int64 zeroPrefixCount = 0;
for (int64 pos = start; pos <= end; pos++) {
prefixXor ^= nums[pos];
if (prefixXor == 0) zeroPrefixCount++;
}
invalidCount += zeroPrefixCount;
}
}
}
int64 totalSubseqs = (size * (size + 1) * (size + 2)) / 6;
int64 result = totalSubseqs - invalidCount;
cout << result << "\n";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdXNpbmcgaW50NjQgPSBsb25nIGxvbmc7CgppbnQgbWFpbigpIHsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CgogICAgaW50NjQgdGVzdENhc2VzOwogICAgY2luID4+IHRlc3RDYXNlczsKCiAgICB3aGlsZSAodGVzdENhc2VzLS0pIHsKICAgICAgICBpbnQ2NCBzaXplOwogICAgICAgIGNpbiA+PiBzaXplOwoKICAgICAgICB2ZWN0b3I8aW50NjQ+IG51bXMoc2l6ZSk7CiAgICAgICAgZm9yIChpbnQ2NCBpID0gMDsgaSA8IHNpemU7IGkrKykgY2luID4+IG51bXNbaV07CgogICAgICAgIGludDY0IGludmFsaWRDb3VudCA9IDA7CgogICAgICAgIGZvciAoaW50NjQgc3RhcnQgPSAwOyBzdGFydCA8IHNpemU7IHN0YXJ0KyspIHsKICAgICAgICAgICAgZm9yIChpbnQ2NCBlbmQgPSBzdGFydDsgZW5kIDwgc2l6ZTsgZW5kKyspIHsKICAgICAgICAgICAgICAgIGludDY0IHRvdGFsWG9yID0gMDsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgZm9yIChpbnQ2NCBpZHggPSBzdGFydDsgaWR4IDw9IGVuZDsgaWR4KyspIHsKICAgICAgICAgICAgICAgICAgICB0b3RhbFhvciBePSBudW1zW2lkeF07CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKHRvdGFsWG9yID09IDApIHsKICAgICAgICAgICAgICAgICAgICBpbnQ2NCBwcmVmaXhYb3IgPSAwOwogICAgICAgICAgICAgICAgICAgIGludDY0IHplcm9QcmVmaXhDb3VudCA9IDA7CiAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQ2NCBwb3MgPSBzdGFydDsgcG9zIDw9IGVuZDsgcG9zKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4WG9yIF49IG51bXNbcG9zXTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZWZpeFhvciA9PSAwKSB6ZXJvUHJlZml4Q291bnQrKzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaW52YWxpZENvdW50ICs9IHplcm9QcmVmaXhDb3VudDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaW50NjQgdG90YWxTdWJzZXFzID0gKHNpemUgKiAoc2l6ZSArIDEpICogKHNpemUgKyAyKSkgLyA2OwogICAgICAgIGludDY0IHJlc3VsdCA9IHRvdGFsU3Vic2VxcyAtIGludmFsaWRDb3VudDsKCiAgICAgICAgY291dCA8PCByZXN1bHQgPDwgIlxuIjsKICAgIH0KCiAgICByZXR1cm4gMDsKfQo=