Cho dãy $A_1, A_2, \ldots, A_N$ có độ dài $N$. Hãy viết chương trình xử lý các truy vấn sau:
1 x y v: gán $A_i = (A_i + v) \% MOD$ với $x \le i \le y$.2 x y v: gán $A_i = (A_i \times v) \% MOD$ với $x \le i \le y$.3 x y v: gán $A_i = v$ với $x \le i \le y$.4 x y: in ra $(\sum_{i=x}^{y} A_i) \% MOD$ với $x \le i \le y$.
Ở đây $MOD$ luôn là $10^9+7$, và $\%$ ký hiệu phép toán modulo.
Dữ liệu vào
Dòng đầu tiên chứa độ dài $N$ của dãy. ($1 \le N \le 100{,}000$)
Dòng thứ hai chứa $A_1, A_2, \ldots, A_N$. ($1 \le A_i \le 10^9$)
Dòng thứ ba chứa số lượng truy vấn $M$. ($1 \le M \le 100{,}000$)
$M$ dòng tiếp theo mỗi dòng chứa một truy vấn. ($1 \le x \le y \le N$, $1 \le v \le 10^9$)
Dữ liệu ra
Với mỗi truy vấn loại $4$, in ra kết quả trên một dòng riêng biệt theo thứ tự.
Ví dụ
Dữ liệu vào 1
4 1 2 3 4 4 4 1 4 1 1 3 10 2 2 4 2 4 1 4
Dữ liệu ra 1
10 69