#include <bits/stdc++.h>
namespace FastIO {
char buf[1 << 21], buf2[1 << 21], a[20], *p1 = buf, *p2 = buf, hh = '\n';
int p, p3 = -1;
void in() {}
void out() {}
inline int getc() {
  return p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1 << 21, stdin), p1 == p2)
             ? EOF
             : *p1++;
}
inline void flush() { fwrite(buf2, 1, p3 + 1, stdout), p3 = -1; }
template <typename T, typename... T2>
inline void in(T &x, T2 &...oth) {
  int f = 0;
  x = 0;
  char ch = getc();
  while (!isdigit(ch)) {
    if (ch == '-') f = 1;
    ch = getc();
  }
  while (isdigit(ch)) {
    x = x * 10 + ch - 48;
    ch = getc();
  }
  x = f ? -x : x;
  in(oth...);
}
template <typename T>
inline void out(T x) {
  if (p3 > 1 << 20) flush();
  if (x < 0) buf2[++p3] = 45, x = -x;
  do {
    a[++p] = x % 10 + 48;
  } while (x /= 10);
  do {
    buf2[++p3] = a[p];
  } while (--p);
  buf2[++p3] = hh;
}
}  // namespace FastIO
using namespace std;
void dbg_out() { cerr << endl; }
template <typename Head, typename... Tail>
void dbg_out(Head H, Tail... T) {
  cerr << ' ' << H;
  dbg_out(T...);
}
using big = long long;
using i64 = unsigned long long;
const long long SIZE = 2e5 + 10, INF = 0x3f3f3f3f;
long long dx[] = {-1, 0, 1, 0};
long long dy[] = {0, 1, 0, -1};
big gcd(big a, big b) { return b ? gcd(b, a % b) : a; }
big ksm(long long a, long long b, long long c) {
  long long ans = 1 % c;
  while (b) {
    if (b & 1) {
      ans = 1ll * ans * a % c;
    }
    a = 1ll * a * a % c;
    b >>= 1;
  }
  return ans;
}
long long n;
string str;
vector<long long> v;
void solve() {
  cin >> n;
  cin >> str;
  bool ok = false;
  long long cnt = 0;
  char last = 'C';
  if (str[0] == '?') {
    ok = true;
    for (long long i = 0; i <= ((long long)(str).size()) - 1; i++) {
      if (str[i] != '?') {
        last = str[i];
        cnt = i;
        break;
      }
    }
  }
  if (ok) {
    if ((cnt + 1) & 1) {
      if (last == 'B')
        last = 'R';
      else
        last = 'B';
    }
    for (long long i = 0; i < n; i++) {
      if (str[i] == '?') {
        if (last == 'B') {
          str[i] = 'R';
          last = 'R';
        } else {
          str[i] = 'B';
          last = 'B';
        }
      } else
        last = str[i];
    }
  } else {
    for (long long i = 0; i < n; i++) {
      if (str[i] == '?') {
        if (last == 'B') {
          str[i] = 'R';
          last = 'R';
        } else {
          str[i] = 'B';
          last = 'B';
        }
      } else
        last = str[i];
    }
  }
  cout << str << '\n';
}
signed main(void) {
  long long t;
  cin >> t;
  while (t--) {
    solve();
  }
  FastIO::flush();
  return 0;
}
