#include <bits/stdc++.h>
using namespace std;
const int Maxn = 100;
char c[Maxn][Maxn];
bool b[Maxn][Maxn], mark[Maxn][Maxn];
vector<pair<int, int> > pic;
int n;
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
      cin >> c[i][j];
      if (c[i][j] == 'o') {
        pic.push_back(make_pair(i, j));
      }
    }
  }
  for (int k = 0; k < (int)pic.size(); k++) {
    int x = pic[k].first, y = pic[k].second;
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < n; j++) {
        if (c[i][j] == '.') {
          b[i - x][j - y] = true;
        }
      }
    }
  }
  for (int k = 0; k < (int)pic.size(); k++) {
    int x = pic[k].first, y = pic[k].second;
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < n; j++) {
        if (c[i][j] == 'x') {
          if (b[i - x][j - y] == false) {
            mark[i][j] = true;
          }
        }
        if (c[i][j] == 'x' && k == (int)pic.size() - 1 && mark[i][j] == false) {
          cout << "NO";
          return 0;
        }
      }
    }
  }
  cout << "YES" << endl;
  for (int i = 0; i < 2 * n - 1; i++) {
    for (int j = 0; j < 2 * n - 1; j++) {
      if (i == n - 1 && j == n - 1) {
        cout << 'o';
      } else if (b[i - n + 1][j - n + 1] == true) {
        cout << '.';
      } else
        cout << 'x';
    }
    cout << endl;
  }
}
