from functools import lru_cache @lru_cache(maxsize=None) def f(n): if n==0: return 0 return 2*f(n//2) + 2*f((n-1)//2) + g((n-1)//2) + ((n+n%2)//2)**2 @lru_cache(maxsize=None) def g(n): if n==0: return 0 return g(n//2) + g((n-1)//2) + (n+n%2)//2 n = int(input()) print(f(n)%(10**9+7))