Chiaki 有一棵包含 $n$ 个顶点的树,顶点编号为 $1$ 到 $n$。树上的每个顶点要么有一个白色棋子,要么有一个黑色棋子,要么没有棋子。共有 $w$ 个白色棋子和 $b$ 个黑色棋子。此外,对于每一对颜色相同的棋子,它们之间存在一条路径,使得路径上的每个顶点都包含相同颜色的棋子。
Chiaki 想要执行以下操作:
- 选择一个有棋子的顶点 $u$。
- 选择一条路径 $p_1, p_2, \dots, p_k$,使得 $p_1 = u$,所有顶点 $p_1, p_2, \dots, p_{k-1}$ 都包含相同颜色的棋子,且 $p_k$ 上没有棋子。
- 将 $p_1$ 上的棋子移动到 $p_k$。现在 $p_1$ 上没有棋子,而 $p_k$ 上有一个棋子。
对于两种初始棋子配置 $S$ 和 $T$,如果 Chiaki 可以执行上述操作若干次(零次或多次)使 $S$ 变为 $T$,则称 $S$ 和 $T$ 是等价的。
设 $f(w, b)$ 为等价类的数量(即两两不等价的配置的最大数量)。Chiaki 想知道以下式子的值:
$$\left( \sum_{w=1}^{n-1} \sum_{b=1}^{n-w} w \cdot b \cdot f(w, b) \right) \pmod{10^9 + 7}$$
输入格式
输入包含多组测试数据。第一行包含一个整数 $T$,表示测试数据的组数。对于每组测试数据:
第一行包含一个整数 $n$ ($2 \le n \le 2 \cdot 10^5$),表示树的顶点数。 第二行包含 $n-1$ 个整数 $p_2, p_3, \dots, p_n$ ($1 \le p_i < i$),其中 $p_i$ 表示顶点 $i$ 和顶点 $p_i$ 之间有一条边。
保证所有测试数据的 $n$ 之和不超过 $2 \cdot 10^5$。
输出格式
对于每组测试数据,输出一个整数,表示以下式子的值:
$$\left( \sum_{w=1}^{n-1} \sum_{b=1}^{n-w} w \cdot b \cdot f(w, b) \right) \pmod{10^9 + 7}$$
样例
输入 1
2 5 1 2 3 3 10 1 2 3 4 3 6 3 8 2
输出 1
71 989
说明
对于第一个样例,各 $w$ 和 $b$ 对应的 $f(w, b)$ 值为: $f(1, 1) = 1, f(1, 2) = 2, f(1, 3) = 3, f(1, 4) = 3,$ $f(2, 1) = 2, f(2, 2) = 2, f(2, 3) = 1,$ $f(3, 1) = 3, f(3, 2) = 1,$ $f(4, 1) = 3.$