#include<bits/stdc++.h>
#define REG register
using namespace std;
inline void read(int& x){
	static char c;
	while(!isdigit(c=getchar()));x=c^48;
	while(isdigit(c=getchar()))x=(x*10)+(c^48);
}

const int Mod=1000000007;

int n;

int x[100005];

int Pow(int a,int b){
	int ans=1;
	while(b){
    	if(b&1) ans=1ll*ans*a%Mod;
    	a=1ll*a*a%Mod,b>>=1;
    }
	return ans;
}

int _Inv[100005];

inline void Work(){
	read(n);
	for(REG int i=1;i<=n;++i) read(x[i]);
	int Ans=0;
	for(REG int i=1;i<=n;++i) _Inv[i]=(_Inv[i-1]+Pow(i,Mod-2))%Mod;
	for(REG int i=1;i<n;++i) Ans=(Ans+1ll*(x[i+1]-x[i])*_Inv[i]%Mod)%Mod;
	for(REG int i=1;i<n;++i) Ans=1ll*Ans*i%Mod;
	printf("%d\n",Ans);
}

int main(){Work();}