import sys
sys.setrecursionlimit(1 << 25)
n = int(input())
tree = [[] for _ in range(n + 1)]
for _ in range(n - 1):
u, v = map(int, input().split())
tree[u].append(v)
tree[v].append(u)
k = int(input())
V = set(map(int, input().split()))
is_in_v = [False] * (n + 1)
for u in V:
is_in_v[u] = True
cnt_v = [0] * (n + 1)
lca_cnt = [0] * (n + 1)
def dfs(u, p):
cur = 1 if is_in_v[u] else 0
child_sum_sq = 0
for v in tree[u]:
if v != p:
child_v = dfs(v, u)
cur += child_v
child_sum_sq += child_v * child_v
cnt_v[u] = cur
lca_cnt[u] = cur * cur - child_sum_sq
return cur
dfs(1, 0)
print(' '.join(map(str, lca_cnt[1:])))