#include<stdio.h>
#include<string.h>
#include<algorithm>
#define LL long long
#define M 1000000007
#define F(i,j) f[i+2020][j+2020]
using namespace std;
int n,f[5050][5050],A[205020],B[205020],ans; LL js[8050],inv[8050];
inline LL pow(LL x,LL k,LL s=1){
	for(;k;x=x*x%M,k>>=1) k&1?s=s*x%M:0;
	return s;
}
inline LL C(int n,int m){
	return js[n]*inv[m]%M*inv[n-m]%M;
}
inline void ad(int& x,LL y){ x=(x+y)%M; }
int main(){
	scanf("%d",&n);
	for(int i=*js=1;i<=8000;++i) js[i]=js[i-1]*i%M;
	inv[8000]=pow(js[8000],M-2);
	for(int i=8000;i;--i) inv[i-1]=inv[i]*i%M;
	for(int i=1;i<=n;++i){
		scanf("%d%d",A+i,B+i);
		F(-A[i],-B[i])++;
	}
	for(int i=-2000;i<=2000;++i)
		for(int j=-2000;j<=2000;++j)
			ad(F(i,j),F(i-1,j)+F(i,j-1));
	for(int i=1;i<=n;++i) 
		ad(ans,F(A[i],B[i])-C(A[i]+B[i]<<1,A[i]<<1)+M);
	printf("%lld\n",ans*pow(2,M-2)%M);
}