#include<iostream>
#include<math.h>
using namespace std;

struct Point {
	Point operator - (const Point& pos)const {
		Point p;
		p.x = x - pos.x;
		p.y = y - pos.y;
		return p;
	}
	double x, y;
};

struct Line {
	Point p1, p2;
};

double dot(Point v1, Point v2) {
	return v1.x * v2.x + v1.y * v2.y;
}

int main() {
	Line line1, line2;


	while (cin >> line1.p1.x >> line1.p1.y >> line1.p2.x >> line1.p2.y 
			   >> line2.p1.x >> line2.p1.y >> line2.p2.x >> line2.p2.y) {

		Point v1, v2;
		v1 = line1.p2 - line1.p1;
		v2 = line2.p2 - line2.p1;

		if (dot(v1, v2) == 0) {
			cout << "YES" << endl;
		}
		else {
			cout << "NO" << endl;
		}
	}
	return 0;
}