import java.util.Arrays;
import java.util.Scanner;
/**
* 奶牛编号
* @author WangYixin
*
*/
public class Main2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int n = sc.nextInt();
//假设arr非降序,否则需要对齐排序
int[] arr = new int[n];
for(int i= 0;i<n;i++){
arr[i] = sc.nextInt();
}
//!!!!新增加排序
Arrays.sort(arr);
long[] f = new long[n];
f[0] = arr[0];
for(int i=1;i<n;i++){
//不影响前面+影响前面
long front = (arr[i]-arr[i-1])*f[i-1] % 1000000007;
long after = f[i-1]*(arr[i-1]- i) ;
f[i] = (front + after)% 1000000007;
}
System.out.println(f[n-1]);
}
}
}