#include <bits/stdc++.h>
using namespace std;
template <class T>
inline void Max(T &a, T b) {
  if (a < b) a = b;
}
template <class T>
inline void Min(T &a, T b) {
  if (a > b) a = b;
}
inline void add(int &a, int b) {
  a += b;
  while (a >= 1000000007) a -= 1000000007;
}
int pow(int a, int b) {
  int ans = 1;
  while (b) {
    if (b & 1) ans = 1LL * ans * a % 1000000007;
    a = 1LL * a * a % 1000000007;
    b >>= 1;
  }
  return ans;
}
double len(double first, double second) {
  return sqrt(first * first + second * second);
}
int main() {
  int T, i, j, k, m, n;
  int sx, sy, vx, vy, a, b, c, d;
  scanf("%d%d%d%d", &sx, &sy, &vx, &vy);
  scanf("%d%d%d%d", &a, &b, &c, &d);
  pair<double, double> p[8];
  p[0] = make_pair(0, b);
  p[1] = make_pair(-a / 2., 0);
  p[2] = make_pair(-c / 2., 0);
  p[3] = make_pair(-c / 2., -d);
  p[4] = make_pair(c / 2., -d);
  p[5] = make_pair(c / 2., 0);
  p[6] = make_pair(a / 2., 0);
  double t = vy / (sqrt(vx * vx + vy * vy + 0.));
  t = acos(t);
  if (vx > 0) t = -t;
  for (i = 0; i < 7; i++) {
    double r = len(p[i].first, p[i].second), q = atan2(p[i].second, p[i].first);
    p[i] = make_pair(r * cos(t + q), r * sin(t + q));
    p[i].first += sx, p[i].second += sy;
  }
  for (i = 0; i < 7; i++) printf("%.10lf %.10lf\n", p[i].first, p[i].second);
  return 0;
}
