#include <bits/stdc++.h>
using namespace std;
char a[55][55];
int cnt[55][55];
int ans[105][105];
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 0; i < n; ++i) {
    scanf("%s", a + i);
  }
  memset(cnt, 0, sizeof cnt);
  vector<pair<int, int> > w;
  for (int i = 0; i < n; ++i) {
    for (int j = 0; j < n; ++j) {
      if (a[i][j] != 'o') {
        continue;
      }
      for (int ii = 0; ii < n; ++ii) {
        for (int jj = 0; jj < n; ++jj) {
          if (a[ii][jj] == '.') {
            w.push_back({ii - i, jj - j});
          }
          if (a[ii][jj] == 'x') {
            ++cnt[ii][jj];
          }
        }
      }
    }
  }
  sort(w.begin(), w.end());
  memset(ans, 0, sizeof ans);
  ans[n][n] = 2;
  for (int i = 0; i < n; ++i) {
    for (int j = 0; j < n; ++j) {
      if (a[i][j] != 'o') {
        continue;
      }
      for (int ii = 0; ii < n; ++ii) {
        for (int jj = 0; jj < n; ++jj) {
          if (a[ii][jj] == 'x') {
            int di = ii - i;
            int dj = jj - j;
            if (!binary_search(w.begin(), w.end(), make_pair(di, dj))) {
              ans[n + di][n + dj] = 1;
            } else {
              --cnt[ii][jj];
            }
          }
        }
      }
    }
  }
  for (int i = 0; i < n; ++i) {
    for (int j = 0; j < n; ++j) {
      if (a[i][j] == 'x' && cnt[i][j] == 0) {
        puts("NO");
        return 0;
      }
    }
  }
  puts("YES");
  for (int i = 1; i <= 2 * n - 1; ++i) {
    for (int j = 1; j <= 2 * n - 1; ++j) {
      if (ans[i][j] == 0) {
        putchar('.');
      } else if (ans[i][j] == 1) {
        putchar('x');
      } else {
        putchar('o');
      }
    }
    putchar('\n');
  }
  return 0;
}
