#include <bits/stdc++.h>
using namespace std;
const int N = 3e5 + 50;
long long mod = 998244353;
int n, m, u, v;
vector<int> adj[N];
long long toAdd[N + N];
vector<pair<int, int> > q[N];
long long ans[N];
void dfs(int src, int par, int dep, long long sum) {
  for (auto i : q[src]) {
    toAdd[dep] += i.second;
    toAdd[dep + i.first + 1] -= i.second;
  }
  sum += toAdd[dep];
  ans[src] = sum;
  for (auto i : adj[src])
    if (i != par) dfs(i, src, dep + 1, sum);
  for (auto i : q[src]) {
    toAdd[dep] -= i.second;
    toAdd[dep + i.first + 1] += i.second;
  }
}
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n - 1; ++i) {
    scanf("%d%d", &u, &v);
    adj[u].push_back(v);
    adj[v].push_back(u);
  }
  scanf("%d", &m);
  int d, x;
  while (m--) {
    scanf("%d%d%d", &v, &d, &x);
    d = min(d, n);
    q[v].push_back(make_pair(d, x));
  }
  dfs(1, 0, 0, 0);
  for (int i = 1; i <= n; ++i) printf("%lld ", ans[i]);
  return 0;
}
