#include<cstring>
#include<algorithm>
#include<cstdio>
#define rep(a,b,c) for (int a=b;a<=c;a++)
#define per(a,b,c) for (int a=b;a>=c;a--)
typedef long long LL;
typedef double dob;
using namespace std;
const int P=1000000007;
const int N=100010;
int n,x[N],d[N],di[N],pi[N],f[N],ans;
int main(){
	scanf("%d",&n);
	rep(i,1,n) scanf("%d",x+i);
	rep(i,1,n-1) d[i]=x[i+1]-x[i];
	pi[0]=1;
	rep(i,1,n) pi[i]=(LL)pi[i-1]*i%P;
	di[n]=1;
	per(i,n-1,1) di[i]=(LL)di[i+1]*i%P;
	rep(i,1,n-1){
		f[i]=((LL)f[i-1]*i%P+pi[i-1])%P;
	}
	rep(i,1,n-1){
		ans=(ans+((LL)d[i]*f[i]%P*di[i+1])%P)%P;
	}
	ans=(ans%P+P)%P;
	printf("%d\n",ans);
	return 0;
}
