#include using namespace std; long ans,mod=1e9+7,n; long power(long a,long b){return b?power(a*a%mod,b/2)*(b%2?a:1)%mod:1;} main() { cin>>n; for(long i=1;i<=n;i*=2) { long cnt=(n+1)/(2*i); long now=i%mod*(i%mod)%mod*(cnt%mod)%mod*((cnt-1+mod)%mod)%mod; now=(now+(((n+1)/(2*i))%mod)%mod*((3*(i%mod)%mod*(i%mod)%mod)-(i%mod)+mod)%mod*power(2,mod-2)%mod)%mod; if((n+1)%(2*i)>i) { long ofset=(2*i%mod*cnt%mod+i)%mod; long make=(n+1)%(2*i)-i; long now2=make%mod*((make-1+mod)%mod)%mod*power(2,mod-2)%mod; now2=(now2+make%mod*ofset%mod)%mod; now=(now+now2)%mod; } ans=(ans+now)%mod; } cout<