def dot(v1,v2):
    return v1[0]*v2[0] + v1[1]*v2[1]
def funcion():
    segment = []
    puntos = []
    for i in range(4):
        lista = input().strip().split()
        lista = [int(e) for e in lista]
        segment.append(lista)
        puntos.append(tuple(lista[0:2]))
        puntos.append(tuple(lista[2:4]))
    puntos = set(puntos)
    li_puntos = list(puntos)
    if len(puntos) != 4:
        return "NO"
    else:
        #p_i = li_puntos.pop()
        #probar
        list_x = set([tup[0] for tup in puntos])
        list_y = set([tup[1] for tup in puntos])

        if len(list_x) == 2 and len(list_y) == 2:
            x_in = [0,0,0,0]
            y_in = [0,0,0,0]
            x_out = [0,0,0,0]
            y_out = [0,0,0,0]
            for i in range(4):
                line = segment.pop()
                if i == 0:
                    init = line
                vec1 = tuple([line[2] - line[0], line[3] - line[1]])
                if i != 3:
                    for line2 in segment:
                        if line2[2:] == line[:2]:
                            vec2 = tuple([line2[2] - line2[0], line2[3] - line2[1]])
                            if dot(vec2,vec1) != 0:
                                return "NO"
            return "YES"
        else:
            return "NO"

print(funcion())
 	    	 		  	  					 	  		 		 	