#include <bits/stdc++.h>
using namespace std;
#pragma GCC optimize("Ofast")
const long long mod = 100000;
long long power(long long x, long long y) {
  long long res = 1;
  x = x % mod;
  while (y > 0) {
    if (y & 1) res = (res * x) % mod;
    y = y >> 1;
    x = (x * x) % mod;
  }
  return res;
}
long long gcd(long long a, long long b) {
  if (a == 0) return b;
  return gcd(b % a, a);
}
long long max(long long a, long long b) {
  long long ans = a > b ? a : b;
  return ans;
}
long long min(long long a, long long b) {
  long long ans = a < b ? a : b;
  return ans;
}
signed main() {
  double px, py, vx, vy, a, b, c, d, z;
  cin >> px >> py >> vx >> vy >> a >> b >> c >> d;
  z = sqrt(vx * vx + vy * vy);
  long double x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6, x7, y7, x8, y8;
  x1 = px + (b * vx) / z;
  y1 = py + (b * vy) / z;
  x2 = px - (a * vy) / (2 * z);
  y2 = py + (a * vx) / (2 * z);
  x7 = px + (a * vy) / (2 * z);
  y7 = py - (a * vx) / (2 * z);
  x3 = px - (c * vy) / (2 * z);
  y3 = py + (c * vx) / (2 * z);
  x6 = px + (c * vy) / (2 * z);
  y6 = py - (c * vx) / (2 * z);
  x4 = x3 - (d * vx) / z;
  y4 = y3 - (d * vy) / z;
  x5 = x6 - (d * vx) / z;
  y5 = y6 - (d * vy) / z;
  cout << fixed << setprecision(10) << x1 << " " << y1 << " " << x2 << " " << y2
       << " " << x3 << " " << y3 << " " << x4 << " " << y4 << " " << x5 << " "
       << y5 << " " << x6 << " " << y6 << " " << x7 << " " << y7;
  return 0;
}
