#include <bits/stdc++.h>
using namespace std;
const int maxn = 300005;
int n, q;
vector<int> g[maxn];
vector<pair<int, int> > kol[maxn];
long long res[maxn];
long long dud[maxn];
void upd(int x, long long val) {
  while (x <= n) {
    dud[x] += val;
    x += x & (-x);
  }
}
long long query(int x) {
  long long sum = 0;
  while (x > 0) {
    sum += dud[x];
    x -= x & (-x);
  }
  return sum;
}
void dfs(int v, int p, int d) {
  for (auto c : kol[v]) {
    int duz = c.first;
    int dodaj = c.second;
    upd(min(n, duz + d), dodaj);
  }
  res[v] = query(n) - query(d - 1);
  for (auto u : g[v]) {
    if (u != p) dfs(u, v, d + 1);
  }
  for (auto c : kol[v]) {
    int duz = c.first;
    int dodaj = c.second;
    upd(min(n, duz + d), -dodaj);
  }
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  cin >> n;
  for (int i = 1; i < n; i++) {
    int u, v;
    cin >> u >> v;
    g[u].push_back(v);
    g[v].push_back(u);
  }
  cin >> q;
  while (q--) {
    int a, b, c;
    cin >> a >> b >> c;
    kol[a].push_back({b, c});
  }
  dfs(1, -1, 1);
  for (int i = 1; i <= n; i++) cout << res[i] << " ";
  cout << endl;
  return 0;
}
