给出$4$个非负整数$a$,$b$,$n$和$m$,求出有多少数对$(x,y)$ ($0 \le x \le a, 0 \le y \le b$)满足$x \oplus y=n$并且$|x-y| \le m$,其中$\oplus$是异或位运算。
输入有多组数据。第一行有一个整数$T$ ($1 \le T \le 10^5$),表示测试数据组数。然后对于每组数据:
第一行包含$4$个非负整数$a$,$b$,$n$和$m$ ($0 \le a, b, n, m \le 10^{18}$),含义如题所述。
对于每组数据,输出一个非负整数表示这样的数对个数。
5 1 1 1 1 10 10 10 10 100 100 100 100 1000 1000 1000 1000 10000 10000 10000 10000
2 6 74 978 3618