import java.util.*;
import java.io.*;

public class Main{
	public static void main(String[] args) throws NumberFormatException, IOException{
		int n;
		int[] lines=new int[3];
		int max_lines_number=0;
		BufferedReader d=new BufferedReader(new InputStreamReader(System.in));

		n=Integer.valueOf(d.readLine());//なんこの三角形を対象とするか読み取り

		for(int i=0;i<n;i++){//その回数繰り返す

			String array[] =d.readLine().split(" "); //空白区切りなので

			for(int j =0;j<3;j++){
				lines[j]=Integer.valueOf(array[j]);//Stringをintへ
			}

			for(int j =0;j<3;j++){
				if(lines[j]>=lines[max_lines_number])max_lines_number=j;//一番大きい辺の長さが入ってる配列の添字を探す
			}

			int max_line=(int) Math.pow(lines[max_lines_number],2);
			int other_lines=0;
			for(int j=0;j<3;j++){
				if(j!=max_lines_number)other_lines+=Math.pow(lines[j],2);
			}
			if(max_line==other_lines){
				System.out.println("YES");
			}else{
				System.out.println("NO");
			}
		}


	}

} import java.util.*; util.* java import java.io.*; io.* java public class Main{
	public static void main(String[] args) throws NumberFormatException, IOException{
		int n;
		int[] lines=new int[3];
		int max_lines_number=0;
		BufferedReader d=new BufferedReader(new InputStreamReader(System.in));

		n=Integer.valueOf(d.readLine());//なんこの三角形を対象とするか読み取り

		for(int i=0;i<n;i++){//その回数繰り返す

			String array[] =d.readLine().split(" "); //空白区切りなので

			for(int j =0;j<3;j++){
				lines[j]=Integer.valueOf(array[j]);//Stringをintへ
			}

			for(int j =0;j<3;j++){
				if(lines[j]>=lines[max_lines_number])max_lines_number=j;//一番大きい辺の長さが入ってる配列の添字を探す
			}

			int max_line=(int) Math.pow(lines[max_lines_number],2);
			int other_lines=0;
			for(int j=0;j<3;j++){
				if(j!=max_lines_number)other_lines+=Math.pow(lines[j],2);
			}
			if(max_line==other_lines){
				System.out.println("YES");
			}else{
				System.out.println("NO");
			}
		}


	}

} Main public static void main(String[] args) throws NumberFormatException, IOException{
		int n;
		int[] lines=new int[3];
		int max_lines_number=0;
		BufferedReader d=new BufferedReader(new InputStreamReader(System.in));

		n=Integer.valueOf(d.readLine());//なんこの三角形を対象とするか読み取り

		for(int i=0;i<n;i++){//その回数繰り返す

			String array[] =d.readLine().split(" "); //空白区切りなので

			for(int j =0;j<3;j++){
				lines[j]=Integer.valueOf(array[j]);//Stringをintへ
			}

			for(int j =0;j<3;j++){
				if(lines[j]>=lines[max_lines_number])max_lines_number=j;//一番大きい辺の長さが入ってる配列の添字を探す
			}

			int max_line=(int) Math.pow(lines[max_lines_number],2);
			int other_lines=0;
			for(int j=0;j<3;j++){
				if(j!=max_lines_number)other_lines+=Math.pow(lines[j],2);
			}
			if(max_line==other_lines){
				System.out.println("YES");
			}else{
				System.out.println("NO");
			}
		}


	} main {
		int n;
		int[] lines=new int[3];
		int max_lines_number=0;
		BufferedReader d=new BufferedReader(new InputStreamReader(System.in));

		n=Integer.valueOf(d.readLine());//なんこの三角形を対象とするか読み取り

		for(int i=0;i<n;i++){//その回数繰り返す

			String array[] =d.readLine().split(" "); //空白区切りなので

			for(int j =0;j<3;j++){
				lines[j]=Integer.valueOf(array[j]);//Stringをintへ
			}

			for(int j =0;j<3;j++){
				if(lines[j]>=lines[max_lines_number])max_lines_number=j;//一番大きい辺の長さが入ってる配列の添字を探す
			}

			int max_line=(int) Math.pow(lines[max_lines_number],2);
			int other_lines=0;
			for(int j=0;j<3;j++){
				if(j!=max_lines_number)other_lines+=Math.pow(lines[j],2);
			}
			if(max_line==other_lines){
				System.out.println("YES");
			}else{
				System.out.println("NO");
			}
		}


	} int n; n int[] lines=new int[3]; lines new int[3] 3 int max_lines_number=0; max_lines_number 0 BufferedReader d=new BufferedReader(new InputStreamReader(System.in)); d new BufferedReader(new InputStreamReader(System.in)) n=Integer.valueOf(d.readLine()) n Integer.valueOf(d.readLine()) Integer.valueOf Integer d.readLine() d.readLine d for(int i=0;i<n;i++){//その回数繰り返す

			String array[] =d.readLine().split(" "); //空白区切りなので

			for(int j =0;j<3;j++){
				lines[j]=Integer.valueOf(array[j]);//Stringをintへ
			}

			for(int j =0;j<3;j++){
				if(lines[j]>=lines[max_lines_number])max_lines_number=j;//一番大きい辺の長さが入ってる配列の添字を探す
			}

			int max_line=(int) Math.pow(lines[max_lines_number],2);
			int other_lines=0;
			for(int j=0;j<3;j++){
				if(j!=max_lines_number)other_lines+=Math.pow(lines[j],2);
			}
			if(max_line==other_lines){
				System.out.println("YES");
			}else{
				System.out.println("NO");
			}
		} int i=0; int i=0; i 0 i<n i n i++ i++ i {//その回数繰り返す

			String array[] =d.readLine().split(" "); //空白区切りなので

			for(int j =0;j<3;j++){
				lines[j]=Integer.valueOf(array[j]);//Stringをintへ
			}

			for(int j =0;j<3;j++){
				if(lines[j]>=lines[max_lines_number])max_lines_number=j;//一番大きい辺の長さが入ってる配列の添字を探す
			}

			int max_line=(int) Math.pow(lines[max_lines_number],2);
			int other_lines=0;
			for(int j=0;j<3;j++){
				if(j!=max_lines_number)other_lines+=Math.pow(lines[j],2);
			}
			if(max_line==other_lines){
				System.out.println("YES");
			}else{
				System.out.println("NO");
			}
		} {//その回数繰り返す

			String array[] =d.readLine().split(" "); //空白区切りなので

			for(int j =0;j<3;j++){
				lines[j]=Integer.valueOf(array[j]);//Stringをintへ
			}

			for(int j =0;j<3;j++){
				if(lines[j]>=lines[max_lines_number])max_lines_number=j;//一番大きい辺の長さが入ってる配列の添字を探す
			}

			int max_line=(int) Math.pow(lines[max_lines_number],2);
			int other_lines=0;
			for(int j=0;j<3;j++){
				if(j!=max_lines_number)other_lines+=Math.pow(lines[j],2);
			}
			if(max_line==other_lines){
				System.out.println("YES");
			}else{
				System.out.println("NO");
			}
		} String array[] =d.readLine().split(" "); array d.readLine().split(" ") d.readLine().split d.readLine() d.readLine d " " for(int j =0;j<3;j++){
				lines[j]=Integer.valueOf(array[j]);//Stringをintへ
			} int j =0; int j =0; j 0 j<3 j 3 j++ j++ j {
				lines[j]=Integer.valueOf(array[j]);//Stringをintへ
			} {
				lines[j]=Integer.valueOf(array[j]);//Stringをintへ
			} lines[j]=Integer.valueOf(array[j]) lines[j] lines j Integer.valueOf(array[j]) Integer.valueOf Integer array[j] array j for(int j =0;j<3;j++){
				if(lines[j]>=lines[max_lines_number])max_lines_number=j;//一番大きい辺の長さが入ってる配列の添字を探す
			} int j =0; int j =0; j 0 j<3 j 3 j++ j++ j {
				if(lines[j]>=lines[max_lines_number])max_lines_number=j;//一番大きい辺の長さが入ってる配列の添字を探す
			} {
				if(lines[j]>=lines[max_lines_number])max_lines_number=j;//一番大きい辺の長さが入ってる配列の添字を探す
			} if(lines[j]>=lines[max_lines_number])max_lines_number=j;//一番大きい辺の長さが入ってる配列の添字を探す lines[j]>=lines[max_lines_number] lines[j] lines j lines[max_lines_number] lines max_lines_number max_lines_number=j max_lines_number j int max_line=(int) Math.pow(lines[max_lines_number],2); max_line (int) Math.pow(lines[max_lines_number],2) Math.pow Math lines[max_lines_number] lines max_lines_number 2 int other_lines=0; other_lines 0 for(int j=0;j<3;j++){
				if(j!=max_lines_number)other_lines+=Math.pow(lines[j],2);
			} int j=0; int j=0; j 0 j<3 j 3 j++ j++ j {
				if(j!=max_lines_number)other_lines+=Math.pow(lines[j],2);
			} {
				if(j!=max_lines_number)other_lines+=Math.pow(lines[j],2);
			} if(j!=max_lines_number)other_lines+=Math.pow(lines[j],2); j!=max_lines_number j max_lines_number other_lines+=Math.pow(lines[j],2) other_lines Math.pow(lines[j],2) Math.pow Math lines[j] lines j 2 if(max_line==other_lines){
				System.out.println("YES");
			}else{
				System.out.println("NO");
			} max_line==other_lines max_line other_lines {
				System.out.println("YES");
			} System.out.println("YES") System.out.println System.out System System.out "YES" {
				System.out.println("NO");
			} System.out.println("NO") System.out.println System.out System System.out "NO" String[] args args public class Main{
	public static void main(String[] args) throws NumberFormatException, IOException{
		int n;
		int[] lines=new int[3];
		int max_lines_number=0;
		BufferedReader d=new BufferedReader(new InputStreamReader(System.in));

		n=Integer.valueOf(d.readLine());//なんこの三角形を対象とするか読み取り

		for(int i=0;i<n;i++){//その回数繰り返す

			String array[] =d.readLine().split(" "); //空白区切りなので

			for(int j =0;j<3;j++){
				lines[j]=Integer.valueOf(array[j]);//Stringをintへ
			}

			for(int j =0;j<3;j++){
				if(lines[j]>=lines[max_lines_number])max_lines_number=j;//一番大きい辺の長さが入ってる配列の添字を探す
			}

			int max_line=(int) Math.pow(lines[max_lines_number],2);
			int other_lines=0;
			for(int j=0;j<3;j++){
				if(j!=max_lines_number)other_lines+=Math.pow(lines[j],2);
			}
			if(max_line==other_lines){
				System.out.println("YES");
			}else{
				System.out.println("NO");
			}
		}


	}

} public class Main{
	public static void main(String[] args) throws NumberFormatException, IOException{
		int n;
		int[] lines=new int[3];
		int max_lines_number=0;
		BufferedReader d=new BufferedReader(new InputStreamReader(System.in));

		n=Integer.valueOf(d.readLine());//なんこの三角形を対象とするか読み取り

		for(int i=0;i<n;i++){//その回数繰り返す

			String array[] =d.readLine().split(" "); //空白区切りなので

			for(int j =0;j<3;j++){
				lines[j]=Integer.valueOf(array[j]);//Stringをintへ
			}

			for(int j =0;j<3;j++){
				if(lines[j]>=lines[max_lines_number])max_lines_number=j;//一番大きい辺の長さが入ってる配列の添字を探す
			}

			int max_line=(int) Math.pow(lines[max_lines_number],2);
			int other_lines=0;
			for(int j=0;j<3;j++){
				if(j!=max_lines_number)other_lines+=Math.pow(lines[j],2);
			}
			if(max_line==other_lines){
				System.out.println("YES");
			}else{
				System.out.println("NO");
			}
		}


	}

} Main
import java.util.*;
import java.io.*;

public class Main{
	public static void main(String[] args) throws NumberFormatException, IOException{
		int n;
		int[] lines=new int[3];
		int max_lines_number=0;
		BufferedReader d=new BufferedReader(new InputStreamReader(System.in));

		n=Integer.valueOf(d.readLine());//なんこの三角形を対象とするか読み取り

		for(int i=0;i<n;i++){//その回数繰り返す

			String array[] =d.readLine().split(" "); //空白区切りなので

			for(int j =0;j<3;j++){
				lines[j]=Integer.valueOf(array[j]);//Stringをintへ
			}

			for(int j =0;j<3;j++){
				if(lines[j]>=lines[max_lines_number])max_lines_number=j;//一番大きい辺の長さが入ってる配列の添字を探す
			}

			int max_line=(int) Math.pow(lines[max_lines_number],2);
			int other_lines=0;
			for(int j=0;j<3;j++){
				if(j!=max_lines_number)other_lines+=Math.pow(lines[j],2);
			}
			if(max_line==other_lines){
				System.out.println("YES");
			}else{
				System.out.println("NO");
			}
		}


	}

}