#include <bits/stdc++.h>
using namespace std;
int q, n;
map<int, int> cnt;

void increase(map<int, int>& cnt, int x) {
	if (cnt.find(x) == cnt.end())
		cnt.insert(make_pair(x, 0));
	cnt[x]++;
}

int main() {
	cin >> q;
	while (q--) {
		cnt.clear();
		cin >> n;
		for (int i = 1; i <= n; i++) {
			int x;
			cin >> x;
			increase(cnt, x);
		}
		if (n % 2 == 1)
			cout << "Second\n";
		else {
			bool pare = true;
			for (pair<int, int> c : cnt)
				if (c.second % 2 == 1)
					pare = false;
			if (pare)
				cout << "Second\n";
			else
				cout << "First\n";
		}
	}
	return 0;
}

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int MAXN = 100005;

template <typename T> inline void read(T &AKGK) {
	T x = 0, flag = 1;
	char ch = getchar();
	while(!isdigit(ch)) {
		if (ch == '-') flag = -1;
		ch = getchar();
	}
	while(isdigit(ch)) {
		x = x * 10 + ch - '0';
		ch = getchar();
	}
	AKGK = flag * x;
}

int n, a[MAXN];

void solve() {
	read(n);
	for (int i = 1; i <= n; ++i) {
		read(a[i]);
	}
	if (n & 1) {
		puts("Second");
	} else {
		sort(a + 1, a + n + 1);
		for (int i = 1; i <= n; i += 2) {
			if (a[i] ^ a[i + 1]) {
				puts("First"); return;
			}
		}
		puts("Second");
	}
}

int main() {
	int T; read(T);
	while (T--) {
		solve();
	}
	return 0;
}
