// BUGSBUNNY (Anmol Agarwal)
// IIT ROORKEE
//                               _,add8ba,
//                             ,d888888888b,
//                            d8888888888888b                        _,ad8ba,_
//                           d888888888888888)                     ,d888888888b,
//                           I8888888888888888 _________          ,8888888888888b
//                 __________`Y88888888888888P"""""""""""baaa,__ ,888888888888888,
//             ,adP"""""""""""9888888888P""^                 ^""Y8888888888888888I
//          ,a8"^           ,d888P"888P^                           ^"Y8888888888P'
//        ,a8^            ,d8888'                                     ^Y8888888P'
//       a88'           ,d8888P'                                        I88P"^
//     ,d88'           d88888P'                                          "b,
//    ,d88'           d888888'                                            `b,
//   ,d88'           d888888I                                              `b,
//   d88I           ,8888888'            ___                                `b,
//  ,888'           d8888888          ,d88888b,              ____            `b,
//  d888           ,8888888I         d88888888b,           ,d8888b,           `b
// ,8888           I8888888I        d8888888888I          ,88888888b           8,
// I8888           88888888b       d88888888888'          8888888888b          8I
// d8886           888888888       Y888888888P'           Y8888888888,        ,8b
// 88888b          I88888888b      `Y8888888^             `Y888888888I        d88,
// Y88888b         `888888888b,      `""""^                `Y8888888P'       d888I
// `888888b         88888888888b,                           `Y8888P^        d88888
//  Y888888b       ,8888888888888ba,_          _______        `""^        ,d888888
//  I8888888b,    ,888888888888888888ba,_     d88888888b               ,ad8888888I
//  `888888888b,  I8888888888888888888888b,    ^"Y888P"^      ____.,ad88888888888I
//   88888888888b,`888888888888888888888888b,     ""      ad888888888888888888888'
//   8888888888888698888888888888888888888888b_,ad88ba,_,d88888888888888888888888
//   88888888888888888888888888888888888888888b,`"""^ d8888888888888888888888888I
//   8888888888888888888888888888888888888888888baaad888888888888888888888888888'
//   Y8888888888888888888888888888888888888888888888888888888888888888888888888P
//   I888888888888888888888888888888888888888888888P^  ^Y8888888888888888888888'
//   `Y88888888888888888P88888888888888888888888888'     ^88888888888888888888I
//    `Y8888888888888888 `8888888888888888888888888       8888888888888888888P'
//     `Y888888888888888  `888888888888888888888888,     ,888888888888888888P'
//      `Y88888888888888b  `88888888888888888888888I     I888888888888888888'
//        "Y8888888888888b  `8888888888888888888888I     I88888888888888888'
//          "Y88888888888P   `888888888888888888888b     d8888888888888888'
//             ^""""""""^     `Y88888888888888888888,    888888888888888P'
//                              "8888888888888888888b,   Y888888888888P^
//                               `Y888888888888888888b   `Y8888888P"^
//                                 "Y8888888888888888P     `""""^
//                                   `"YY88888888888P'
//                                        ^""""""""'
#include<bits/stdc++.h>
using namespace std;
#define 		fast 			ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); 
#define 		ll 				long long
#define 		int 			long long
#define 		ld 				long double
#define 		endl 			'\n'
#define 		vi 				vector<int>
#define 		vvi				vector<vi>
#define 		vs 				vector<string>
#define 		vl 				vector<long long>
#define 		vpii 			vector<pii>
#define 		vpipii			vector<pipii>
#define 		vb 				vector<bool>
#define 		pb 				push_back
#define 		pob 			pop_back
#define 		gcd 			__gcd
#define 		mp 				make_pair
#define 		pii 			pair<int,int>
#define 		pipii 			pair<int,pii>
#define 		pll 			pair<long long,long long>
#define 		pld 			pair<long double,long double>
#define 		mod 			1000000007 
#define 		mod2 			998244353
#define 		rep(i,n) 		for (ll i = 0; i < n; i++)
#define 		repp(i,a,b) 	for(ll i = a ; i<b ; i++)
#define 		reppr(i,a,b) 	for(ll i = a-1 ; i>=b ; i--)
#define 		repr(i,n) 		for (ll i = n - 1; i >= 0; i--)
#define 		ff 				first
#define 		ss 				second
#define 		pc 				putchar_unlocked
#define 		gc 				getchar_unlocked
#define 		inf 			1000000000000000000
#define 		infn 			-9223372036854775807
#define 		pi 				3.14159265358979323846
#define 		eps 			0.0000000001
#define 		sp 				<< " " << 
#define 		prn(x) 			cout << x << endl
#define 		prs(x) 			cout << x << ' ' 
#define 		el 				cout << endl;
#define 		sz(x) 			x.size()
#define 		SORT(v) 		sort(v.begin(),v.end())
#define 		spc(x) 			cout << fixed << setprecision(x);
#define 		all(n) 			n.begin(),n.end()

const int MAXN = 2000000;
int fact[MAXN+10] , invfact[MAXN+10];

int power(int x, unsigned int y, unsigned int m) 
{ 
    if (y == 0) return 1; 
    int p = power(x, y/2, m) % m; 
    p = (p * p) % m; 
 	return (y%2 == 0)? p : (x * p) % m; 
} 

int modInverse(int a) 
{ 
    return power(a, mod-2, mod); 
} 

int binomial_coefficient(int n, int k) 
{
    return ((fact[n] * invfact[k]) % mod * invfact[n - k]) % mod;
}

void solve();
signed main()
{
	fast;

	fact[0] = 1;
	for (int i = 1; i <= MAXN+10; i++) 
    	fact[i] = fact[i - 1] * i % mod;
    invfact[0] = 1;
    for (int i = 1; i <= MAXN+10; i++) 
    	invfact[i] = invfact[i - 1] * modInverse(i) % mod;

	int t = 1;
	// cin >> t;
	while(t--)
		solve();
}
void solve()
{
	int r1 , r2 , c1 , c2;
	cin >> r1 >> c1 >> r2 >> c2;
	int cnt[c2-c1+1];
	int ans = 0;
	repp(i,r1,r2+1)
		ans = (ans + binomial_coefficient(i+c2+1,c2) - binomial_coefficient(i+c1,c1-1) + mod)%mod;
	cout << ans << endl;
} 

Measured memory_bytes: 31488