from bisect import bisect_left N = int(input()) A = list(map(int, input().split())) M = 10**9+7 B = [] P = 0 D = dict() for i in range(N-1): P ^= A[i] B.append(P) if P in D: D[P].append(i) else: D[P] = [i] dp = [1] + [0] * (N-1) for i in range(N-1): for k, v in D.items(): j = bisect_left(v, i) if j >= len(v): continue dp[v[j]+1] = (dp[v[j]+1] + dp[i]) % M cnt = 0 for i in range(N): cnt = (cnt + dp[i]) % M print(cnt)