#include <bits/stdc++.h>
using namespace std;
template <class T>
inline bool chmax(T& a, T b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T>
inline bool chmin(T& a, T b) {
  if (a > b) {
    a = b;
    return 1;
  }
  return 0;
}
int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }
const int INF = 1e9;
const long long LLINF = 1e16;
int main(void) {
  long long mod = 1e9 + 7;
  long long sum = 0;
  int n;
  cin >> n;
  vector<int> a(n);
  for (int i = 0, i_len = (n); i < i_len; ++i) {
    cin >> a[i];
  }
  for (int i = 0, i_len = (n - 1); i < i_len; ++i) {
    for (int j = i + 1, j_len = (n); j < j_len; ++j) {
      sum += a[i] ^ a[j] % mod;
    }
  }
  cout << sum % mod << endl;
  return 0;
}
