# 813~
# 解法 826
# 各数字について，２進数に直したときの各桁の値を計算する．(桁数＊(0,1))の形を持ったリストに対して,各桁数ごとの値で
# 足し合わせていく．各桁ごとに(0,1)の要素数をかけ合わせて，最後に足し合わせれば答えになる
# 計算量は　O(N*60)くらい
# 実装， 思ったよりもかんたんだったけど，やっぱり単純なケースで間違っていることがわかってやり直さないといけなかった
# 結果はあってるだろうけどTLEが出て困る

N = int(input())
A = list(map(int,input().split()))

Large = 10**9 + 7
BA = [[0,0] for _ in range(60)] # <2^60なので
pow260 = pow(2,60)
for a in A:
    a = a + pow260
    a_bin = bin(a)
    for i,ab in enumerate(a_bin[::-1][:-3]): # 最初の'0x'みたいなのを取り除く，あと最初につけた'1'を除く
        ab = int(ab)
        BA[i][ab] += 1
ans = 0
for i,ba in enumerate(BA):
    ans += ba[0] * ba[1] * pow(2,i,Large)
    ans %= Large

print(ans)





