#include <bits/stdc++.h>
using namespace std;
template <typename T>
bool chkmx(T &x, T y) {
  return x < y ? x = y, true : false;
}
template <typename T>
bool chkmn(T &x, T y) {
  return x > y ? x = y, true : false;
}
const int maxn = 1000;
const int maxw = 5e5;
int T, n, m, a[maxn + 5], b[maxn + 5];
bitset<maxw> dp[maxn + 5];
vector<int> x[2], y[2];
bool check(int a[], vector<int> &x, vector<int> &y) {
  int sum = 0;
  for (int i = (1); i <= int(n); i++) sum += a[i], dp[i].reset();
  if (sum & 1) return 0;
  sum >>= 1, dp[0].set(0);
  for (int i = (1); i <= int(n); i++) dp[i] = dp[i - 1] | (dp[i - 1] << a[i]);
  if (!dp[n][sum]) return 0;
  for (int i = (n); i >= int(1); i--)
    if (!dp[i - 1][sum])
      x.push_back(a[i]), sum -= a[i];
    else
      y.push_back(a[i]);
  return 1;
}
int main() {
  for (scanf("%d", &T); T; T--) {
    scanf("%d", &n), x[0].clear(), x[1].clear(), y[0].clear(), y[1].clear();
    for (int i = (1); i <= int(n); i++) scanf("%d", &a[i]);
    scanf("%d", &m);
    for (int i = (1); i <= int(m); i++) scanf("%d", &b[i]);
    if (n != m) {
      puts("NO");
      continue;
    }
    if (!check(a, x[0], x[1]) || !check(b, y[0], y[1])) {
      puts("NO");
      continue;
    }
    puts("YES");
    sort(x[0].begin(), x[0].end()), sort(x[1].begin(), x[1].end());
    sort(y[0].begin(), y[0].end()), sort(y[1].begin(), y[1].end());
    int nwx = 0, nwy = 0;
    ;
    if ((int)(x[0].size()) > (int)(y[0].size()))
      swap(x[0], x[1]), swap(y[0], y[1]);
    for (int i = (0); i <= int((int)(x[0].size()) - 1); i++) {
      nwx += x[0][(int)(x[0].size()) - 1 - i];
      cout << nwx << ' ' << nwy << endl;
      nwy -= y[0][(int)(y[0].size()) - (int)(x[0].size()) + i];
      cout << nwx << ' ' << nwy << endl;
    }
    for (int i = (0); i <= int((int)(y[0].size()) - (int)(x[0].size()) - 1);
         i++) {
      nwx -= x[1][(int)(y[1].size()) + i];
      cout << nwx << ' ' << nwy << endl;
      nwy -= y[0][(int)(y[0].size()) - (int)(x[0].size()) - i - 1];
      cout << nwx << ' ' << nwy << endl;
    }
    for (int i = (0); i <= int((int)(y[1].size()) - 1); i++) {
      nwx -= x[1][(int)(y[1].size()) - i - 1];
      cout << nwx << ' ' << nwy << endl;
      nwy += y[1][i];
      cout << nwx << ' ' << nwy << endl;
    }
  }
  return 0;
}
