AT_diverta2019_e XOR Partitioning

Description

[problemUrl]: https://atcoder.jp/contests/diverta2019/tasks/diverta2019_e 長さ $ n $ の数列 $ a $ の *美しさ* を $ a_1\ \oplus\ a_2\ \oplus\ \cdots\ \oplus\ a_{n} $ で定義します。ここで $ \oplus $ はビットごとの排他的論理和を表します。 長さ $ N $ の数列 $ A $ が与えられます。 すぬけ君は $ A $ に $ 0 $ 個以上の仕切りを入れて、いくつかの空でない連続する部分列に分割しようとしています。 仕切りを入れる方法は $ 2^{N-1} $ 通りあります。 それらのうち、分割された数列たちの美しさが全て等しくなるものの個数を $ 10^{9}+7 $ で割ったあまりを求めてください。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ A_1 $ $ A_2 $ $ \ldots $ $ A_{N} $

Output Format

答えを出力せよ。

Explanation/Hint

### 制約 - 入力は全て整数 - $ 1\ \leq\ N\ \leq\ 5\ \times\ 10^5 $ - $ 0\ \leq\ A_i\