#include <bits/stdc++.h>
using namespace std;
#define int long long
#define ii pair<int,int>
#define iii pair<int, ii>
#define fi first
#define se second
#define inf 10000000000000000
const int N = 1e6+5, mod = 1e9 + 7;
int n, a[N], f[N], s[N];
signed main() {
ios::sync_with_stdio(0);
cin.tie(0);
if(fopen("main.inp","r")) {
freopen("main.inp", "r", stdin);
freopen("main.out", "w", stdout);
}
cin >> n;
for(int i = 0; i < n; i++) {
cin >> a[i];
s[i] = a[i];
}
for(int bit = 0; bit < 18; bit++) {
for(int mask = 0; mask < (1<<18); mask++) {
if(mask&(1<<bit)) {
int sub = mask^(1<<bit);
s[mask] += s[sub];
s[mask] %= mod;
}
}
}
for(int i = 0; i < n; i++) f[i] = s[i]*s[i]%mod;
for(int bit = 0; bit < 18; bit++) {
for(int mask = 0; mask < (1<<18); mask++) {
if(mask&(1<<bit)) {
int sub = mask^(1<<bit);
f[mask] -= f[sub];
f[mask] = (f[mask]%mod+mod)%mod;
}
}
}
int ans = 0;
for(int i = 0; i < n; i++) {
ans = (ans + f[i]) % mod;
cout << ans << ' ';
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIGlpIHBhaXI8aW50LGludD4KI2RlZmluZSBpaWkgcGFpcjxpbnQsIGlpPgojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgaW5mIDEwMDAwMDAwMDAwMDAwMDAwCmNvbnN0IGludCBOID0gMWU2KzUsIG1vZCA9IDFlOSArIDc7CmludCBuLCBhW05dLCBmW05dLCBzW05dOwpzaWduZWQgbWFpbigpIHsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKICAgIGlmKGZvcGVuKCJtYWluLmlucCIsInIiKSkgewogICAgICAgIGZyZW9wZW4oIm1haW4uaW5wIiwgInIiLCBzdGRpbik7CiAgICAgICAgZnJlb3BlbigibWFpbi5vdXQiLCAidyIsIHN0ZG91dCk7CiAgICB9CiAgICBjaW4gPj4gbjsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBjaW4gPj4gYVtpXTsKICAgICAgICBzW2ldID0gYVtpXTsKICAgIH0KICAgIGZvcihpbnQgYml0ID0gMDsgYml0IDwgMTg7IGJpdCsrKSB7CiAgICAgICAgZm9yKGludCBtYXNrID0gMDsgbWFzayA8ICgxPDwxOCk7IG1hc2srKykgewogICAgICAgICAgICBpZihtYXNrJigxPDxiaXQpKSB7CiAgICAgICAgICAgICAgICBpbnQgc3ViID0gbWFza14oMTw8Yml0KTsKICAgICAgICAgICAgICAgIHNbbWFza10gKz0gc1tzdWJdOwogICAgICAgICAgICAgICAgc1ttYXNrXSAlPSBtb2Q7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSBmW2ldID0gc1tpXSpzW2ldJW1vZDsKICAgIGZvcihpbnQgYml0ID0gMDsgYml0IDwgMTg7IGJpdCsrKSB7CiAgICAgICAgZm9yKGludCBtYXNrID0gMDsgbWFzayA8ICgxPDwxOCk7IG1hc2srKykgewogICAgICAgICAgICBpZihtYXNrJigxPDxiaXQpKSB7CiAgICAgICAgICAgICAgICBpbnQgc3ViID0gbWFza14oMTw8Yml0KTsKICAgICAgICAgICAgICAgIGZbbWFza10gLT0gZltzdWJdOwogICAgICAgICAgICAgICAgZlttYXNrXSA9IChmW21hc2tdJW1vZCttb2QpJW1vZDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIGludCBhbnMgPSAwOwogICAgZm9yKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIGFucyA9IChhbnMgKyBmW2ldKSAlIG1vZDsKICAgICAgICBjb3V0IDw8IGFucyA8PCAnICc7CiAgICB9Cgp9Cg==