import math
from itertools import combinations
def solve():
MOD = 10**9 + 7
def gcd_of_list(numbers):
if not numbers:
return 0
result = numbers[0]
for i in range(1, len(numbers)):
result = math.gcd(result, numbers[i])
return result
n = int(input())
a = list(map(int, input().split()))
sums_by_size = {}
for i in range(1, n + 1):
current_sum_for_size_i = 0
for combo in combinations(a, i):
combo_gcd = gcd_of_list(list(combo))
current_sum_for_size_i = (current_sum_for_size_i + combo_gcd)
sums_by_size[i] = current_sum_for_size_i
final_product = 1
for i in range(1, n + 1):
final_product = (final_product * sums_by_size[i]) % MOD
print(final_product)
t = int(input())
for _ in range(t):
solve()