#include <bits/stdc++.h>
using namespace std;
struct vec {
  vec(double x, double y) : x(x), y(y) {}
  double mag() { return sqrt(x * x + y * y); }
  void normalize() {
    double m = mag();
    x /= m;
    y /= m;
  }
  double x, y;
};
vec operator*(const double k, const vec v) { return {k * v.x, k * v.y}; }
vec operator+(const vec v, const vec w) { return {v.x + w.x, v.y + w.y}; }
vec rotate90(vec& v) { return {v.y, -v.x}; }
vec rotate180(vec& v) { return {-v.x, -v.y}; }
vec rotate270(vec& v) { return {-v.y, v.x}; }
void prnt(vec v) { cout << v.x << " " << v.y << "\n"; }
int main() {
  cout << fixed << setprecision(15);
  double px, py, vx, vy, a, b, c, d;
  cin >> px >> py >> vx >> vy >> a >> b >> c >> d;
  vec v(vx, vy), p(px, py);
  v.normalize();
  prnt(b * v + p);
  prnt(a / 2 * rotate270(v) + p);
  prnt(c / 2 * rotate270(v) + p);
  prnt(c / 2 * rotate270(v) + d * rotate180(v) + p);
  prnt(c / 2 * rotate90(v) + d * rotate180(v) + p);
  prnt(c / 2 * rotate90(v) + p);
  prnt(a / 2 * rotate90(v) + p);
}
