const ll mod = 1e9 + 7;
ll ksm(ll a, ll b)
{
ll res = 1;
while (b)
{
if (b & 1)
res = res * a % mod;
a = a * a % mod, b >>= 1;
}
return res;
}
void solve()
{
int n;
cin >> n;
ll ans = 0, ai;
for (ll i = 1; i <= n; ++i)
{
cin >> ai;
(ans = (ans + ai * ksm(2, n - 1) % mod)) %= mod;
}
cout << ans;
}
const ll mod = 1e9 + 7;
ll ksm(ll a, ll b)
{
ll res = 1;
while (b)
{
if (b & 1)
res = res * a % mod;
a = a * a % mod, b >>= 1;
}
return res;
}
void solve()
{
ll n;
cin >> n;
ll ans = 0;
vector<ll> a(n + 1);
for (int i = 1; i <= n; ++i)
cin >> a[i];
ll pow2k = ksm(2, n - 1);
for (ll k = 0; k < 30; ++k)
{
int pos = 0;
for (int i = 1; i <= n; i++)
pos |= (a[i] >> k) & 1;
if (pos)
(ans += ksm(2, k) * pow2k % mod) %= mod;
}
cout << ans;
}