#include <bits/stdc++.h>
using namespace std;
long long int arr[500005];
long long int mul(long long int a, long long int b, long long int m) {
  if (b == 0)
    return 1;
  else if (b == 1)
    return a;
  else if (b % 2 == 0) {
    long long int k = mul(a, b / 2, m);
    return ((k % m) * (k % m)) % m;
  } else {
    long long int k = mul(a, (b - 1) / 2, m);
    return ((((k % m) * (k % m)) % m) * a) % m;
  }
}
int main() {
  long long int n;
  cin >> n;
  for (long long int i = 0; i < n; i++) cin >> arr[i];
  sort(arr, arr + n);
  long long int ans = 0;
  long long int s = 0;
  for (long long int i = 1; i < n; i++) {
    long long int k = arr[i] * (mul(2, i, 1000000007) - 1);
    s = (s * 2) % 1000000007;
    s = (s + arr[i - 1]) % 1000000007;
    ans = (ans + k - s) % 1000000007;
  }
  cout << ans << endl;
}
