#include <bits/stdc++.h>
using namespace std;
struct pp {
  int x;
  int y;
};
int a[100][100], n;
vector<pp> v[5];
string s[51];
int main() {
  cin >> n;
  for (int i = 1; i <= n; i++) {
    cin >> s[i];
    s[i] = '0' + s[i];
  }
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= n; j++) {
      pp p;
      p.x = i;
      p.y = j;
      if (s[i][j] == 'o') v[2].push_back(p);
      if (s[i][j] == 'x') v[1].push_back(p);
      if (s[i][j] == '.') v[0].push_back(p);
    }
  a[n][n] = 2;
  for (int i = 0; i < v[0].size(); i++)
    for (int j = 0; j < v[2].size(); j++) {
      int xx = v[0][i].x - v[2][j].x;
      int yy = v[0][i].y - v[2][j].y;
      a[n + xx][n + yy] = 1;
    }
  for (int i = 1; i <= 2 * n - 1; i++)
    for (int j = 1; j <= 2 * n - 1; j++)
      if (a[i][j] == 0) {
        pp p;
        p.x = i - n;
        p.y = j - n;
        v[4].push_back(p);
      }
  bool cann = 1;
  for (int i = 0; i < v[1].size(); i++) {
    bool sisi = 0;
    for (int j = 0; j < v[4].size(); j++) {
      int xx = v[1][i].x - v[4][j].x;
      int yy = v[1][i].y - v[4][j].y;
      if (xx >= 1 && yy >= 1 && xx <= n && yy <= n)
        if (s[xx][yy] == 'o') {
          sisi = 1;
        }
    }
    if (sisi == 0) cann = 0;
  }
  if (cann == 0) cout << "NO" << endl;
  if (cann == 1) {
    cout << "YES" << endl;
    for (int i = 1; i <= 2 * n - 1; i++) {
      for (int j = 1; j <= 2 * n - 1; j++) {
        if (a[i][j] == 2) cout << "o";
        if (a[i][j] == 1) cout << ".";
        if (a[i][j] == 0) cout << "x";
      }
      cout << endl;
    }
  }
}
