import java.awt.*; import java.applet.*; import java.math.BigInteger; import java.util.Scanner; public class Main { static BigInteger a, b; public static void main(String[] args) { Scanner cin = new Scanner(System.in); int tim = cin.nextInt(); for(int T = 1; T <= tim; ++ T) { long n = cin.nextLong(); a = cin.nextBigInteger(); b = cin.nextBigInteger(); BigInteger ans = solve(n); System.out.println(ans.mod(BigInteger.valueOf(1000000007))); } } static BigInteger solve(long n) { if(n == 1) return b; if(n % 2 == 0) { BigInteger tn = BigInteger.valueOf(n); BigInteger N = BigInteger.valueOf(n - 1); BigInteger tN = BigInteger.valueOf(n/2); BigInteger ans1 = tn.multiply(tn.multiply(tn.multiply(b))).add(N.multiply(tn.multiply(tn.multiply(a)))); BigInteger ans2 = tN.multiply(tN.multiply(a.multiply(BigInteger.valueOf(18)))).add(solve(n/2).multiply(BigInteger.valueOf(7))); if(ans1.compareTo(ans2) >= 0) return ans2; return ans1; }else { BigInteger tn = BigInteger.valueOf(n); BigInteger N = BigInteger.valueOf(n - 1); BigInteger ans1 = tn.multiply(tn.multiply(tn.multiply(b))).add(N.multiply(tn.multiply(tn.multiply(a)))); return ans1; } } }