#include <bits/stdc++.h>
using namespace std;
const long long mo = 1000000007;
long long dp[10005], dp2[10005], ans[10005], n, mp[5005], lf = 1,
                                                          ny = 500000004;
int main() {
  scanf("%lld", &n);
  for (long long i = 2; i <= n; i++) scanf("%lld", &mp[i]);
  mp[1] = 1;
  for (long long i = 1; i <= n; i++) {
    for (long long j = 2 * i - 3; j >= 3; j--) dp[j] = dp[j - 1] * mp[i] % mo;
    for (long long j = 2 * i - 1; j >= 3; j -= 2) {
      (dp[j + 1] += 2 * dp2[j] * mp[i]) %= mo;
      dp2[j + 2] = (dp2[j] * mp[i] % mo) * mp[i] % mo;
    }
    (lf *= mp[i]) %= mo;
    (dp[2] = dp2[1] * mp[i]) %= mo;
    dp2[3] = ((dp2[1] * mp[i] % mo) * (mp[i] - 1) % mo) * ny % mo;
    dp2[1] = lf;
    for (long long j = 1; j <= 2 * i - 1; j++) (ans[j] += dp[j] + dp2[j]) %= mo;
  }
  for (long long i = 2; i <= 2 * n - 1; i++) printf("%lld ", ans[i]);
  return 0;
}
