#include <iostream>
#include <vector>
using namespace std;

int main() {
	long long n;
	cin >> n;
	vector<pair<long long, long long>> tacke(n);
	long long s[4] = { 0,0,0,0 };
	long long st[4] = { 0,0,0,0 };
	long long minx = 100001, miny = 100001;
	long long maxx = -100001, maxy = -100001;
	bool opet[4] = { true,true,true,true };
	for (long long i = 1; i <= n; i++) {
		long long x, y;
		cin >> x >> y;
		if (x < minx) {
			minx = x;
			opet[0] = true;
			opet[1] = true;
		}
		if (x > maxx) {
			maxx = x;
			opet[2] = true;
			opet[3] = true;
		}
		if (y < miny) {
			miny = y;
			opet[0] = true;
			opet[2] = true;
		}
		if (y > maxy) {
			maxy = y;
			opet[1] = true;
			opet[3] = true;
		}
		tacke[i-1] = { x,y };
		for (long long j = 0; j < 4; j++) {
			long long xa, ya;
			switch (j) {
			case 0: xa = minx; ya = miny; break;
			case 1: xa = minx; ya = maxy; break;
			case 2: xa = maxx; ya = miny; break;
			case 3: xa = maxx; ya = maxy; break;
			}
			if (opet[j]) {
				st[j] = 0;
				for (long long k = 0; k < i; k++) {
					long long xi = tacke[k].first;
					long long yi = tacke[k].second;
					st[j] += abs((xi - xa) * (yi - ya));
				}
				opet[j] = false;
			}
			else {
				long long xi = tacke[i-1].first;
				long long yi = tacke[i-1].second;
				st[j] += abs((xi - xa) * (yi - ya));
			}
			s[j] = (st[j] > s[j] ? st[j] : s[j]);
		}
		long long f = s[0] > s[1] ? s[0] : s[1];
		long long ss = s[2] > s[3] ? s[2] : s[3];
		long long ans = f > ss ? f : ss;
		cout << ans%1000000007 <<"\n";
	}
}