#include <bits/stdc++.h>
using namespace std;
long long myxor(long long i, long long j);
long long K = 1000000000 + 7;
int main() {
  int N;
  cin >> N;
  long long A[N];
  for (int i = 0; i < N; i++) {
    cin >> A[i];
  }
  long long ans = 0;
  for (int i = 0; i < N; i++) {
    for (int j = i + 1; j < N; j++) {
      ans = ans + myxor(A[i], A[j]) % K;
    }
  }
  ans %= K;
  cout << ans << endl;
  return 0;
}
long long myxor(long long a, long long b) {
  long long a2 = a;
  long long b2 = b;
  int max = 60;
  long long ans = 0;
  long long njou = 1;
  for (int i = 0; i < max; i++) {
    if (a2 % 2 != b2 % 2) {
      ans += njou;
      a2 /= 2;
      b2 /= 2;
      njou *= 2;
      njou %= K;
    } else {
      a2 /= 2;
      b2 /= 2;
      njou *= 2;
      njou %= K;
    }
    if (a2 == 0 && b2 == 0) {
      break;
    }
  }
  return ans;
}
