#include #include using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); using ll=long long; using mint=atcoder::modint1000000007; int n; cin>>n; assert(1<=n&&n<=1e5); auto f=[](ll x){ int m=20; vector dig(m); for (int i=0;i pw(m+1); pw[0]=1; for (int i=0;i(2)); vector cnt(m+1,vector(2)); cnt[0][1]=1; for (int i=0;i=0) dp[i+1][0]+=dp[i][1]+j*pw[i-k]*cnt[i][1]; } if (j==dig[i]){ cnt[i+1][1]+=cnt[i][1]; if (i-k>=0) dp[i+1][1]+=dp[i][1]+j*pw[i-k]*cnt[i][1]; } } { cnt[i+1][0]+=cnt[i][0]; if (i-k>=0) dp[i+1][0]+=dp[i][0]+j*pw[i-k]*cnt[i][0]; } } } ans+=dp[m][0]+dp[m][1]; } return ans; }; while (n--){ ll l,r; cin>>l>>r; assert(1<=l&&l<=r&&r<=1e18); mint ans=f(r)-f(l-1); cout<