#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define all(x) x.begin(), x.end()
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
template <typename T> using o_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
template <typename T, typename R> using o_map = tree<T, R, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
typedef long long ll;
#define inf 1e9
#define MOD 1000000007
#define vint vector<int>
#define vll vector<ll>
#define no cout << "NO" << endl;
void solve() {
ll n ; cin >> n ;
vector <ll > a(n);
map < ll , ll > mp ;
set < ll > st;
for (int i = 0 ; i <n ; i++ ) {
cin >> a[i] ;
st.insert(a[i] ) ;
mp[a[i]]++;
}
int nb = 0 ;
multiset < ll > st2 ;
auto it = st.rbegin();
while (nb <2) {
if (mp[*it]>=2) {
nb ++ ;
mp[*it]-=2;
st2.insert(*it) ;
}
if (*it ==*st.begin()) break ;
it = prev(it) ;
}
auto it2 = st.begin();
nb = 0 ;
while (nb<2) {
if (mp[*it2]>=2) {
nb ++ ;
mp[*it2]-=2;
st2.insert(*it2) ;
}
if (*it2 ==*st.rbegin()) break ;
it2 = next(it2) ;
}
if (st2.size()<4) {
cout <<"NO" << endl ;
return;
}
ll maxi1 = *st2.rbegin() , maxi2= *prev(st2.rbegin()) ;
ll mini1 = *st2.begin() , mini2 = *next(st2.begin()) ;
cout << mini1 << " " << mini2 <<" " << mini1 << " " << maxi2 << " " << maxi1 << " " <<maxi2<< " " << mini1 << " " << maxi2<< endl ;
return ;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
int t = 1;
cin >> t;
while (t--) {
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIGFsbCh4KSB4LmJlZ2luKCksIHguZW5kKCkKI2luY2x1ZGUgPGV4dC9wYl9kcy9hc3NvY19jb250YWluZXIuaHBwPgojaW5jbHVkZSA8ZXh0L3BiX2RzL3RyZWVfcG9saWN5LmhwcD4KdXNpbmcgbmFtZXNwYWNlIF9fZ251X3BiZHM7CnRlbXBsYXRlIDx0eXBlbmFtZSBUPiB1c2luZyBvX3NldCA9IHRyZWU8VCwgbnVsbF90eXBlLCBsZXNzPFQ+LCByYl90cmVlX3RhZywgdHJlZV9vcmRlcl9zdGF0aXN0aWNzX25vZGVfdXBkYXRlPjsKdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFI+IHVzaW5nIG9fbWFwID0gdHJlZTxULCBSLCBsZXNzPFQ+LCByYl90cmVlX3RhZywgdHJlZV9vcmRlcl9zdGF0aXN0aWNzX25vZGVfdXBkYXRlPjsKdHlwZWRlZiBsb25nIGxvbmcgbGw7CgojZGVmaW5lIGluZiAxZTkKI2RlZmluZSBNT0QgMTAwMDAwMDAwNwojZGVmaW5lIHZpbnQgdmVjdG9yPGludD4KI2RlZmluZSB2bGwgdmVjdG9yPGxsPgoKI2RlZmluZSBubyBjb3V0IDw8ICJOTyIgPDwgZW5kbDsKCnZvaWQgc29sdmUoKSB7CiAgICBsbCBuIDsgY2luID4+IG4gOwogICAgdmVjdG9yIDxsbCA+IGEobik7CiAgICBtYXAgPCBsbCAsIGxsID4gbXAgOwogICAgc2V0IDwgbGwgPiBzdDsKICAgIGZvciAoaW50IGkgPSAwIDsgaSA8biA7IGkrKyApIHsKICAgICAgICBjaW4gPj4gYVtpXSA7CiAgICAgICAgc3QuaW5zZXJ0KGFbaV0gKSA7CiAgICAgICAgbXBbYVtpXV0rKzsKICAgIH0KICAgIGludCBuYiA9IDAgOwogICAgbXVsdGlzZXQgIDwgbGwgPiBzdDIgOwogICAgYXV0byBpdCAgPSBzdC5yYmVnaW4oKTsKICAgIHdoaWxlIChuYiA8MikgewogICAgICAgaWYgKG1wWyppdF0+PTIpIHsKICAgICAgICAgICBuYiArKyA7CiAgICAgICAgICAgbXBbKml0XS09MjsKICAgICAgICAgICBzdDIuaW5zZXJ0KCppdCkgOwogICAgICAgfQogICAgICAgIGlmICgqaXQgPT0qc3QuYmVnaW4oKSkgIGJyZWFrIDsKICAgICAgICBpdCA9IHByZXYoaXQpIDsKCgogICAgfQogICAgYXV0byBpdDIgPSBzdC5iZWdpbigpOwogICAgbmIgPSAwIDsKICAgIHdoaWxlIChuYjwyKSB7CiAgICAgICAgaWYgKG1wWyppdDJdPj0yKSB7CiAgICAgICAgICAgIG5iICsrIDsKICAgICAgICAgICAgbXBbKml0Ml0tPTI7CiAgICAgICAgICAgIHN0Mi5pbnNlcnQoKml0MikgOwoKICAgICAgICB9CiAgICAgICAgaWYgKCppdDIgPT0qc3QucmJlZ2luKCkpICBicmVhayA7CiAgICAgICAgaXQyID0gbmV4dChpdDIpIDsKICAgIH0KICAgIGlmIChzdDIuc2l6ZSgpPDQpIHsKICAgICAgICBjb3V0IDw8Ik5PIiA8PCBlbmRsIDsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbGwgbWF4aTEgPSAqc3QyLnJiZWdpbigpICwgbWF4aTI9ICpwcmV2KHN0Mi5yYmVnaW4oKSkgIDsKICAgIGxsIG1pbmkxID0gKnN0Mi5iZWdpbigpICwgbWluaTIgPSAqbmV4dChzdDIuYmVnaW4oKSkgOwogICAgY291dCA8PCBtaW5pMSA8PCAiICIgPDwgbWluaTIgIDw8IiAiICA8PCBtaW5pMSA8PCAiICIgPDwgbWF4aTIgPDwgIiAiIDw8IG1heGkxIDw8ICIgIiA8PG1heGkyPDwgIiAiIDw8IG1pbmkxIDw8ICIgIiA8PCBtYXhpMjw8IGVuZGwgOwogICAgcmV0dXJuIDsKCgoKCgp9CgoKaW50IG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwoKI2lmbmRlZiBPTkxJTkVfSlVER0UKICAgIGZyZW9wZW4oImlucHV0LnR4dCIsICJyIiwgc3RkaW4pOwogICAgZnJlb3Blbigib3V0cHV0LnR4dCIsICJ3Iiwgc3Rkb3V0KTsKI2VuZGlmCgogICAgaW50IHQgPSAxOwogICAgY2luID4+IHQ7CiAgICB3aGlsZSAodC0tKSB7CiAgICAgICAgc29sdmUoKTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQoKCg==