시대를 초월하는 검객 승균이는 자신의 문파 알프스검류를 단련하려고 신기술 천상용섬을 연마했다.
천상용섬은 눈앞에 놓인 N개의 물체를 놓인 순서대로 하나씩 베는 기술이다. 베는 높이는 앞의 물체를 벨 때보다 낮아지지 않는다. 즉 그대로 유지되거나 더 높아진다.
천상용섬의 대단한 점은 물체의 높이를 베는 높이로 나누면 항상 자연수로 나누어떨어진다는 것이다. 물체의 높이만큼 벨 수도 있다. 단, 높이 0은 벨 수 없다.
예를 들어 눈앞에 높이가 각각 2, 4, 6인 물체 3개가 있다고 하자. 이때 각각 높이 1, 2, 3에서 벨 수 있다. 2는 1로, 4는 2로, 6은 3으로 나누어떨어지고 베는 높이가 낮아지지 않기 때문이다. 같은 이유로 1, 1, 1도 되고, 정확도를 자랑하는 2, 4, 6도 된다.
승균이는 천상용섬에 얼마나 큰 가능성이 있는지 알아보려고 N개의 물체를 베는 모든 경우의 수를 구하려 한다. 위 예에서는 12가지다.
그런데 승균이는 숫자를 배우지 못해 직접 셀 수 없다. 대신 경우의 수를 세어 주자.
입력은 여러 테스트케이스로 이루어진다.
첫째 줄에 테스트케이스의 개수 T가 주어진다. (1≤T≤30)
각 테스트케이스의 첫째 줄에 물체의 개수 N이 주어진다. (1≤N≤300)
둘째 줄에 물체의 높이 H1,H2,…,HN이 공백으로 구분되어 주어진다. (1≤Hi≤1000000)
각 테스트케이스마다 승균이가 물체를 베는 경우의 수를 1000000007로 나눈 나머지를 한 줄에 출력한다.