#include <bits/stdc++.h>
using namespace std;
const long long mod = 1000000000 + 7;
const long long inv = 500000004;
long long l;
long long r;
long long f[110];
long long cal(long long x) {
  long long fa = 1ll * 1;
  long long fb = 1ll * 2;
  long long ans = 0;
  int fl = 0;
  int pos = 0;
  long long cnt = 0;
  while (cnt + f[pos] <= x) {
    if (!fl) {
      if (pos == 0)
        ans = 1ll * 1;
      else {
        long long p = f[pos] % mod;
        ans = (ans + fa % mod * p % mod) % mod;
        ans = (ans + (p - 1 + mod) % mod * p % mod) % mod;
      }
      fa += f[pos] * 2;
    } else {
      long long p = f[pos] % mod;
      ans = (ans + fb % mod * p % mod) % mod;
      ans = (ans + (p - 1 + mod) % mod * p % mod) % mod;
      fb += f[pos] * 2;
    }
    fl ^= 1;
    cnt += f[pos];
    pos++;
  }
  if (cnt >= x) return ans;
  x -= cnt;
  if (!fl) {
    long long p = x % mod;
    ans = (ans + fa % mod * p % mod) % mod;
    ans = (ans + (p - 1 + mod) % mod * p % mod) % mod;
  } else {
    long long p = x % mod;
    ans = (ans + fb % mod * p % mod) % mod;
    ans = (ans + (p - 1 + mod) % mod * p % mod) % mod;
  }
  return ans;
}
int main() {
  f[0] = 1ll * 1;
  f[1] = 1ll * 2;
  for (int i = 2; i < 63; i++) f[i] = f[i - 1] * 1ll * 2;
  scanf("%I64d%I64d", &l, &r);
  printf("%I64d\n", (cal(r) - cal(l - 1) + mod) % mod);
  return 0;
}
