#include <bits/stdc++.h>
using namespace std;
const int sz = 3e5 + 9;
int n;
long long m = 1e9 + 7;
long long add(long long a, long long b) {
  return ((a % m + b % m) % m + m) % m;
}
long long mul(long long a, long long b) { return (a % m * b % m) % m; }
long long a[sz];
long long cs[sz];
long long ans;
long long cnt[sz];
int main() {
  cin >> n;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
    cs[i] = add(cs[i - 1], a[i]);
  }
  for (int i = 0; i <= 62; i++) {
    if ((a[1] >> i) & 1)
      cnt[i] = add(cnt[i], -1);
    else
      cnt[i] = add(cnt[i], 1);
  }
  for (int i = 2; i <= n; i++) {
    ans = add(ans, cs[i - 1]);
    for (int j = 0; j <= 60; j++) {
      if (((a[i] >> j) & 1) == 0) continue;
      long long val = mul(cnt[j], 1ll << j);
      ans = add(ans, val);
    }
    for (int j = 0; j <= 62; j++) {
      if ((a[i] >> j) & 1)
        cnt[j] = add(cnt[j], -1);
      else
        cnt[j] = add(cnt[j], 1);
    }
  }
  cout << ans;
  return 0;
}
