#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1000000007;
int n;
long long x[300000 + 10];
long long ans = 0;
long long Pow(long long a, long long b, long long n) {
  long long t, y;
  t = 1;
  y = a;
  while (b != 0) {
    if (b & 1 == 1) t = t * y % n;
    y = y * y % n;
    b = b >> 1;
  }
  return t;
}
int main() {
  cin >> n;
  for (int i = 1; i <= n; i++) cin >> x[i];
  sort(x + 1, x + n + 1);
  for (int i = n; i >= 1; i--) {
    ans = ans + Pow(2, i - 1, MOD) % MOD * x[i] % MOD;
    ans %= MOD;
    ans = ans - Pow(2, n - i, MOD) % MOD * x[i] % MOD;
    ans += MOD;
    ans %= MOD;
  }
  cout << ans << endl;
  return 0;
}
