// mc3c.cpp : Defines the entry point for the console application. // #include using namespace std; long long powers[101]; long long i; int q; #define MOD 1000000007 int main() { cin >> q; int k = 0; for (i = 1LL; i <= (1LL << 32); i *= 2LL) { powers[k] = i; k++; } long long j, a, b, p1, p2; for (j = 1;j <= q; j++) { cin >> a >> b; if (a == b) { cout << 1 << "\n"; continue; } p1 = p2 = 0LL; long long sum = 0; for (i = 0; i < k; i++) { if (a <= powers[i] && p1 == 0LL) { p1 = powers[i]; } if (powers[i] <= b) { p2 = powers[i]; } } for (i = p1; i <= p2; i = i * 2) { if (i * 2 > p2) break; long long ddif = i * 2LL - i; sum = (sum + ddif*(ddif - 1LL) / 2LL) % MOD; sum = sum + ddif; sum %= MOD; } long long dif; if (p1 > p2) { long long ddif = b - a + 1; sum = (sum + ddif*(ddif - 1LL) / 2LL) % MOD; sum = sum + ddif; sum %= MOD; cout << sum << "\n"; continue; } dif = p1 - a; if (a != p1) { sum = (sum + dif*(dif - 1LL) / 2LL) % MOD; sum = sum + dif; sum %= MOD; } dif = b - p2 + 1; if (b != p2) { sum = (sum + dif*(dif - 1LL) / 2LL) % MOD; sum = sum + dif; sum %= MOD; } cout << sum << "\n"; } }