#include <bits/stdc++.h>    using namespace std;   #define     ll              long long   #define     mp              make_pair   #define     rep(i,a,b)      for( i=a;i<b;++i)   #define     repr(i,a,b)     for( i=a;i>=b;i--)   #define     up              upper_bound   #define     lb              lower_bound   #define     t()             int test;cin>>test;while(test--)   #define     IOS             ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);      #define TRACE   #ifdef TRACE   #define trace(...) __f(#__VA_ARGS__, __VA_ARGS__)       template <typename Arg1>       void __f(const char* name, Arg1&& arg1){           cout << name <<   :   << arg1 << endl;           //use cerr if u want to display at the bottom       }       template <typename Arg1, typename... Args>       void __f(const char* names, Arg1&& arg1, Args&&... args){           const char* comma = strchr(names + 1,  , ); cout.write(names, comma - names) <<   :   << arg1<<  |  ;__f(comma+1, args...);       }   #else   #define trace(...)   #endif      bool cmp(pair<ll,ll> a,pair<ll,ll> b){       if(a.first != b.first){           return a.first < b.first;       }else{           return a.second < b.second;       }   }      int main()   {         #ifndef ONLINE_JUDGE       freopen( input.txt ,  r , stdin);       freopen( output.txt ,  w , stdout);       #endif       IOS;       ll t;       cin >> t;       while(t--){           ll n;            cin >> n;           vector<string> s(n);           for(ll i = 0;i < n;i++){                   cin >> s[i];           }            ll k= 0;           for(ll i = 0;i < n;i++){               for(ll j = 0;j < n;j++){                   if (s[i][j] !=  . ){                        k++;                   }               }           }           bool flag = true;           for(ll x = 0;x < 3;x++){               for(ll y = 0;y < 3;y++){                   if(x == y){                       continue;                   }else{                       ll count = 0;                       for(ll i = 0;i < n;i++){                           for(ll j= 0;j < n;j++){                               if(s[i][j] ==  X  && (i + j)%3 == x){                                   count++;                               }else if(s[i][j] ==  O  && (i + j)%3 == y){                                   count++;                               }                           }                       }                       if(count <= k/3){                           for(ll i = 0;i < n;i++){                               for(ll j= 0;j < n;j++){                                   if(s[i][j] ==  X  && (i + j)%3 == x){                                       s[i][j] =  O ;                                   }else if(s[i][j] ==  O  && (i + j)%3 == y){                                       s[i][j] =  X ;                                   }                               }                           }                           for(auto it : s){                               cout << it <<   n ;                           }                           flag = false;                           break;                       }                      }               }               if(!flag){                   break;               }           }       }       return 0;   }