#include <bits/stdc++.h>
using namespace std;
#define ll long long int
ll n,q;
ll arr[100001];
vector<vector<ll>>prefixSum;
void preCompute(){
for(ll i=1;i<=n;i++){
for(ll j=0;j<=31;j++){
prefixSum[j][i] = prefixSum[j][i-1] + ((arr[i]&(1<<j))?1:0);
}
}
// for(ll i=0;i<=31;i++){
// for(ll j=1;j<=n;j++){
// cout<<prefixSum[i][j]<<" ";
// }
// cout<<endl;
// }
}
vector<ll> solve(ll queries[][4],ll arr[] ,ll n , ll q){
vector<ll>ans(q);
for(ll i=0;i<q;i++){
ll l1 = queries[i][0];
ll r1 = queries[i][1];
ll l2 = queries[i][2];
ll r2 = queries[i][3];
// ll and1=-1,and2=-1,xor1=0;
// working on query 1 first
ll diff1 = r1-l1+1;
ll a=0;
for(ll j=0;j<=31;j++){
if(diff1 == prefixSum[j][r1] - prefixSum[j][l1-1]){
a += (1<<j);
}
}
// working on query 2
ll diff2 = r2-l2+1;
ll b=0;
for(ll j=0;j<=31;j++){
if(diff2 == prefixSum[j][r2] - prefixSum[j][l2-1]){
b += (1<<j);
}
}
ans[i] = a^b;
}
return ans;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cin>>n;
for(int i=1;i<=n;i++){
cin>>arr[i];
}
cin>>q;
ll queries[q][4];
for(int i=0;i<q;i++){
for(int j=0;j<4;j++){
cin>>queries[i][j];
}
}
prefixSum.assign(32, vector<ll>(n + 1, 0));
preCompute();
vector<ll>ans = solve(queries,arr,n,q);
for(int x:ans)cout<<x<<" ";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nIGludApsbCBuLHE7CmxsIGFyclsxMDAwMDFdOwp2ZWN0b3I8dmVjdG9yPGxsPj5wcmVmaXhTdW07Cgp2b2lkIHByZUNvbXB1dGUoKXsKCWZvcihsbCBpPTE7aTw9bjtpKyspewoJCWZvcihsbCBqPTA7ajw9MzE7aisrKXsKCQkJcHJlZml4U3VtW2pdW2ldID0gcHJlZml4U3VtW2pdW2ktMV0gKyAoKGFycltpXSYoMTw8aikpPzE6MCk7IAoJCX0KCX0KCQoJLy8gZm9yKGxsIGk9MDtpPD0zMTtpKyspewoJLy8gCWZvcihsbCBqPTE7ajw9bjtqKyspewoJLy8gCQljb3V0PDxwcmVmaXhTdW1baV1bal08PCIgIjsKCS8vIAl9CgkvLyAJY291dDw8ZW5kbDsKCS8vIH0KfQoKdmVjdG9yPGxsPiBzb2x2ZShsbCBxdWVyaWVzW11bNF0sbGwgYXJyW10gLGxsIG4gLCBsbCBxKXsKCXZlY3RvcjxsbD5hbnMocSk7Cglmb3IobGwgaT0wO2k8cTtpKyspewoJCWxsIGwxID0gcXVlcmllc1tpXVswXTsKCQlsbCByMSA9IHF1ZXJpZXNbaV1bMV07CgkJbGwgbDIgPSBxdWVyaWVzW2ldWzJdOwoJCWxsIHIyID0gcXVlcmllc1tpXVszXTsKCQkvLyBsbCBhbmQxPS0xLGFuZDI9LTEseG9yMT0wOwoJCQoJCS8vIHdvcmtpbmcgb24gcXVlcnkgMSBmaXJzdAoJCWxsIGRpZmYxID0gcjEtbDErMTsKCQlsbCBhPTA7CgkJZm9yKGxsIGo9MDtqPD0zMTtqKyspewoJCQlpZihkaWZmMSA9PSBwcmVmaXhTdW1bal1bcjFdIC0gcHJlZml4U3VtW2pdW2wxLTFdKXsKCQkJCWEgKz0gKDE8PGopOwoJCQl9CgkJfQoJCQoJCS8vIHdvcmtpbmcgb24gcXVlcnkgMiAKCQlsbCBkaWZmMiA9IHIyLWwyKzE7CgkJbGwgYj0wOwoJCWZvcihsbCBqPTA7ajw9MzE7aisrKXsKCQkJaWYoZGlmZjIgPT0gcHJlZml4U3VtW2pdW3IyXSAtIHByZWZpeFN1bVtqXVtsMi0xXSl7CgkJCQliICs9ICgxPDxqKTsKCQkJfQoJCX0KCQlhbnNbaV0gPSBhXmI7Cgl9CglyZXR1cm4gYW5zOwp9CgppbnQgbWFpbigpIHsKCWlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKCWNpbi50aWUoMCk7CgkKCWNpbj4+bjsKCQoJZm9yKGludCBpPTE7aTw9bjtpKyspewoJCWNpbj4+YXJyW2ldOwoJfQoJY2luPj5xOwoJbGwgcXVlcmllc1txXVs0XTsKCWZvcihpbnQgaT0wO2k8cTtpKyspewoJCWZvcihpbnQgaj0wO2o8NDtqKyspewoJCQljaW4+PnF1ZXJpZXNbaV1bal07CgkJfQoJfQoJcHJlZml4U3VtLmFzc2lnbigzMiwgdmVjdG9yPGxsPihuICsgMSwgMCkpOwoJcHJlQ29tcHV0ZSgpOwoJdmVjdG9yPGxsPmFucyA9IHNvbHZlKHF1ZXJpZXMsYXJyLG4scSk7CgkKCWZvcihpbnQgeDphbnMpY291dDw8eDw8IiAiOwoJCglyZXR1cm4gMDsKfQ==