F. XORофикатор 3000
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Алиса уже много лет дарит подарки Бобу, а потому знает, что больше всего ему нравится делать побитовый XOR интересных чисел, при этом интересными Боб считает такие целые положительные числа $$$x$$$, для которых выполнено $$$x \not\equiv k (\bmod 2^i)$$$. Поэтому в этом году на его очередной день рождения она подарила ему сверхмощный «XORофикатор 3000», самую последнюю модель.

Бобу подарок очень понравился, ведь благодаря нему он мог мгновенно делать XOR всех интересных чисел на любом отрезке от $$$l$$$ до $$$r$$$ включительно, а что, в самом деле, ещё нужно человеку для счастья? Но, к сожалению, прибор оказался настолько мощным, что в какой-то момент сделал XOR с самим собой и исчез. Боб был очень расстроен, и Алиса, чтобы хоть как-то подбодрить его, попросила вас написать свою версию «XORофикатора».

Входные данные

Первая строка входных данных содержит одно целое число $$$t$$$ $$$(1 \leq t \leq 10^4)$$$ — количество запросов XOR на отрезке. Далее следуют ровно $$$t$$$ строчек запросов, состоящих из чисел $$$l$$$, $$$r$$$, $$$i$$$, $$$k$$$ $$$(1 \leq l \leq r \leq 10^{18}$$$, $$$0 \leq i \leq 30$$$, $$$0 \leq k < 2^i)$$$.

Выходные данные

Для каждого запроса выведите одно число — XOR всех чисел $$$x$$$ на отрезке $$$[l, r]$$$ таких, что $$$x \not\equiv k \mod 2^i$$$.

Пример
Входные данные
6
1 3 1 0
2 28 3 7
15 43 1 0
57 2007 1 0
1010 1993 2 2
1 1000000000 30 1543
Выходные данные
2
2
13
0
4
1000000519
Примечание

В первом запросе на отрезке $$$[1, 3]$$$ интересными являются числа $$$1$$$ и $$$3$$$, поэтому ответом будет число $$$1 \oplus 3 = 2$$$.