varsnarkjs=function(A){"use strict";constI=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4];functiont(A,I){returnI&&10!=I?16==I?"0x"==A.slice(0,2)?BigInt(A):BigInt("0x"+A):void0:BigInt(A)}consti=t;functiong(A,I){returnBigInt(A)<<BigInt(I)}functionC(A,I){returnBigInt(A)>>BigInt(I)}constQ=g,e=C;varn=Object.freeze({__proto__:null,fromString:t,e:i,fromArray:function(A,I){lett=0n;I=BigInt(I);for(leti=0;i<A.length;i++)t=t*I+BigInt(A[i]);returnt},bitLength:function(A){constt=A.toString(16);return4*(t.length-1)+I[parseInt(t[0],16)]},isNegative:function(A){returnBigInt(A)<0n},isZero:function(A){return!A},shiftLeft:g,shiftRight:C,shl:Q,shr:e,isOdd:function(A){return1n==(1n&BigInt(A))},naf:function(A){letI=BigInt(A);constt=[];for(;I;){if(1n&I){constA=2-Number(I%4n);t.push(A),I-=BigInt(A)}elset.push(0);I>>=1n}returnt},bits:function(A){letI=BigInt(A);constt=[];for(;I;)1n&I?t.push(1):t.push(0),I>>=1n;returnt},toNumber:function(A){if(A>BigInt(Number.MAX_SAFE_INTEGER))thrownewError("Number too big");returnNumber(A)},toArray:function(A,I){constt=[];leti=BigInt(A);for(I=BigInt(I);i;)t.unshift(Number(i%I)),i/=I;returnt},add:function(A,I){returnBigInt(A)+BigInt(I)},sub:function(A,I){returnBigInt(A)-BigInt(I)},neg:function(A){return-BigInt(A)},mul:function(A,I){returnBigInt(A)*BigInt(I)},square:function(A){returnBigInt(A)*BigInt(A)},pow:function(A,I){returnBigInt(A)**BigInt(I)},exp:function(A,I){returnBigInt(A)**BigInt(I)},abs:function(A){returnBigInt(A)>=0?BigInt(A):-BigInt(A)},div:function(A,I){returnBigInt(A)/BigInt(I)},mod:function(A,I){returnBigInt(A)%BigInt(I)},eq:function(A,I){returnBigInt(A)==BigInt(I)},neq:function(A,I){returnBigInt(A)!=BigInt(I)},lt:function(A,I){returnBigInt(A)<BigInt(I)},gt:function(A,I){returnBigInt(A)>BigInt(I)},leq:function(A,I){returnBigInt(A)<=BigInt(I)},geq:function(A,I){returnBigInt(A)>=BigInt(I)},band:function(A,I){returnBigInt(A)&BigInt(I)},bor:function(A,I){returnBigInt(A)|BigInt(I)},bxor:function(A,I){returnBigInt(A)^BigInt(I)},land:function(A,I){returnBigInt(A)&&BigInt(I)},lor:function(A,I){returnBigInt(A)||BigInt(I)},lnot:function(A){return!BigInt(A)}});functionB(A,I){returnA(I={exports:{}},I.exports),I.exports}varr=B((function(A){varI=function(A){vart=1e7,i=9007199254740992,g=E(i),C="function"==typeofBigInt;functionQ(A,I,t,i){returnvoid0===A?Q[0]:void0!==I&&(10!=+I||t)?Y(A,I,t,i):Z(A)}functione(A,I){this.value=A,this.sign=I,this.isSmall=!1}functionn(A){this.value=A,this.sign=A<0,this.isSmall=!0}functionB(A){this.value=A}functionr(A){return-i<A&&A<i}functionE(A){returnA<1e7?[A]:A<1e14?[A%1e7,Math.floor(A/1e7)]:[A%1e7,Math.floor(A/1e7)%1e7,Math.floor(A/1e14)]}functionh(A){o(A);varI=A.length;if(I<4&&G(A,g)<0)switch(I){case0:return0;case1:returnA[0];case2:returnA[0]+A[1]*t;default:returnA[0]+(A[1]+A[2]*t)*t}returnA}functiono(A){for(varI=A.length;0===A[--I];);A.length=I+1}functions(A){for(varI=newArray(A),t=-1;++t<A;)I[t]=0;returnI}functiona(A){returnA>0?Math.floor(A):Math.ceil(A)}functionf(A,I){vari,g,C=A.length,Q=I.length,e=newArray(C),n=0,B=t;for(g=0;g<Q;g++)n=(i=A[g]+I[g]+n)>=B?1:0,e[g]=i-n*B;for(;g<C;)n=(i=A[g]+n)===B?1:0,e[g++]=i-n*B;returnn>0&&e.push(n),e}functionw(A,I){returnA.length>=I.length?f(A,I):f(I,A)}functionD(A,I){vari,g,C=A.length,Q=newArray(C),e=t;for(g=0;g<C;g++)i=A[g]-e+I,I=Math.floor(i/e),Q[g]=i-I*e,I+=1;for(;I>0;)Q[g++]=I%e,I=Math.floor(I/e);returnQ}functionc(A,I){vart,i,g=A.length,C=I.length,Q=newArray(g),e=0;for(t=0;t<C;t++)(i=A[t]-e-I[t])<0?(i+=1e7,e=1):e=0,Q[t]=i;for(t=C;t<g;t++){if(!((i=A[t]-e)<0)){Q[t++]=i;break}i+=1e7,Q[t]=i}for(;t<g;t++)Q[t]=A[t];returno(Q),Q}functionu(A,I,t){vari,g,C=A.length,Q=newArray(C),B=-I;for(i=0;i<C;i++)g=A[i]+B,B=Math.floor(g/1e7),g%=1e7,Q[i]=g<0?g+1e7:g;return"number"==typeof(Q=h(Q))?(t&&(Q=-Q),newn(Q)):newe(Q,t)}functiony(A,I){vart,i,g,C,Q=A.length,e=I.length,n=s(Q+e);for(g=0;g<Q;++g){C=A[g];for(varB=0;B<e;++B)t=C*I[B]+n[g+B],i=Math.floor(t/1e7),n[g+B]=t-1e7*i,n[g+B+1]+=i}returno(n),n}functionp(A,I){vari,g,C=A.length,Q=newArray(C),e=t,n=0;for(g=0;g<C