import java.util.Scanner;

/**
 * @author supermejane
 * @date 2025/10/6
 * @description BGN50 小红走网格
 */
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        while (n-- > 0) {
            int x = in.nextInt();
            int y = in.nextInt();
            int y_add = in.nextInt();
            int y_del = in.nextInt();
            int x_del = in.nextInt();
            int x_add = in.nextInt();
            System.out.println(illegal(y_add, y_del, y) && illegal(x_add, x_del, x) ? "YES" : "NO");
        }
    }

    //c是不是a, b的线性组合
    public static boolean illegal(int a, int b, int c) {
        return c % gcd(Math.max(a, b), Math.min(a, b), new int[2]) == 0;
    }

    //辗转相除
    public static int gcd(int a, int b, int[] xy) {

        if (b == 0) {
            xy[0] = 1;
            xy[1] = 0;
            return a;
        } else {
            int g = gcd(b, a % b, xy);
            //非必要,如果要求线性组合系数可以使用
            //回溯,这个xy表示a * xy[0] + b * xy[1] = 最小公约数,即a * xy[0] + b * xy[1] = b * xy[0]' + (a % b) * xy[1]'
            //由于左边a * xy[0] + b * xy[1] = (a / b * xy[0] + xy[1]) * b + a % b * xy[0], 就是说(a / b * xy[0] + xy[1]) = xy[0]'并且xy[0] = xy[1]'
            //我上面是正推,回溯是反推,所以xy'和xy反一下就行了
            int x = xy[0];
            int y = xy[1];
            xy[0] = y;
            xy[1] = x - a / b * y;

            return g;
        }
    }

    //最小公倍数
    public static int lcm(int a, int b) {
        int g = gcd(a, b, new int[2]);

        return a * b / g;
    }
}

//没学过数论,搜Gpt现学的,包括贝祖定理,gcd, lcm
/*
要判断一个数字 c 是否能表示为 c = m*a + n*b(其中 m 和 n 是整数,可正可负),核心依据是数论中的贝祖定理(Bezout's Identity)。
结论
一个数 c 能表示为 m*a + n*b 的充要条件是:c 是 a 和 b 的最大公约数(gcd(a, b))的整数倍。
即:c % gcd(a, b) == 0
*/