#include <bits/stdc++.h>
using namespace std;
long long mi(long long x, long long y, long long p) {
  long long s = 1;
  while (y) {
    if (y & 1) s = s * x % p;
    x = x * x % p;
    y >>= 1;
  }
  return s;
}
long long ni(long long x, long long p) { return mi(x, p - 2, p); }
long long ical(long long x, long long r, long long p) {
  long long s = mi(2, r + 1, p - 1);
  s = mi(x, s, p) - 1;
  return s;
}
void iWork() {
  long long k, l, r, p, ans, x, y;
  scanf("%I64d %I64d %I64d %I64d", &k, &l, &r, &p);
  if (p == 2) {
    cout << (k + 1) % 2 << endl;
    return;
  }
  if (k % p == 0)
    x = y = p - 1;
  else
    x = ical(k, r, p), y = ical(k, l - 1, p);
  if (y == 0)
    ans = mi(2, r - l + 1, p);
  else
    ans = x * ni(y, p) % p;
  if (k % 2) ans = ans * ni(mi(2, r - l, p), p) % p;
  printf("%I64d\n", ans);
}
int main() {
  int T;
  cin >> T;
  while (T--) iWork();
  return 0;
}
