#include <bits/stdc++.h>
using namespace std;
const long long mod = 1e9 + 7;
long long sum;
int n;
long long a[300030];
void upd(long long &x, long long b) { x += b, x %= mod; }
long long qp(long long a, long long b) {
  long long ret = 1;
  a %= mod;
  while (b) {
    if (b & 1) ret = ret * a % mod;
    a = a * a % mod;
    b >>= 1;
  }
  return ret;
}
int main() {
  cin >> n;
  for (int i = 1; i <= n; ++i) cin >> a[i];
  sort(a, a + n + 1);
  long long ans = 0;
  sum = a[1];
  for (int i = 2; i <= n; ++i) {
    (ans += (qp(2, i - 1) - 1) * a[i] % mod - sum) %= mod;
    upd(ans, mod);
    sum *= 2LL;
    sum %= mod;
    upd(sum, a[i]);
  }
  printf("%lld\n", ans);
}
