New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

jsbi

Package Overview
Dependencies
Maintainers
2
Versions
28
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

jsbi - npm Package Compare versions

Comparing version 2.0.1 to 2.0.2

2

dist/jsbi-cjs.js

@@ -1,1 +0,1 @@

"use strict";class JSBI extends Array{constructor(a,b){if(a>JSBI.__kMaxLength)throw new RangeError("Maximum BigInt size exceeded");super(a),this.sign=b}static BigInt(a){var b=Math.floor,c=Number.isFinite;if("number"==typeof a){if(0===a)return JSBI.__zero();if((0|a)===a)return 0>a?JSBI.__oneDigit(-a,!0):JSBI.__oneDigit(a,!1);if(!c(a)||b(a)!==a)throw new RangeError("The number "+a+" cannot be converted to BigInt because it is not an integer");return JSBI.__fromDouble(a)}if("string"==typeof a){const b=JSBI.__fromString(a);if(null===b)throw new SyntaxError("Cannot convert "+a+" to a BigInt");return b}if("boolean"==typeof a)return!0===a?JSBI.__oneDigit(1,!1):JSBI.__zero();if("object"==typeof a){if(a.constructor===JSBI)return a;const b=JSBI.__toPrimitive(a);return JSBI.BigInt(b)}throw new TypeError("Cannot convert "+a+" to a BigInt")}toDebugString(){const a=["BigInt["];for(const b of this)a.push((b?b.toString(16):b)+", ");return a.push("]"),a.join("")}toString(a=10){if(2>a||36<a)throw new RangeError("toString() radix argument must be between 2 and 36");return 0===this.length?"0":0==(a&a-1)?JSBI.__toStringBasePowerOfTwo(this,a):JSBI.__toStringGeneric(this,a,!1)}static toNumber(a){return JSBI.__toNumber(a)}static unaryMinus(a){if(0===a.length)return a;const b=a.__copy();return b.sign=!a.sign,b}static bitwiseNot(a){return a.sign?JSBI.__absoluteSubOne(a).__trim():JSBI.__absoluteAddOne(a,!0)}static exponentiate(a,b){if(b.sign)throw new RangeError("Exponent must be positive");if(0===b.length)return JSBI.__oneDigit(1,!1);if(0===a.length)return a;if(1===a.length&&1===a.__digit(0))return a.sign&&0==(1&b.__digit(0))?JSBI.unaryMinus(a):a;if(1<b.length)throw new RangeError("BigInt too big");let c=b.__unsignedDigit(0);if(1===c)return a;if(c>=JSBI.__kMaxLengthBits)throw new RangeError("BigInt too big");if(1===a.length&&2===a.__digit(0)){const b=1+(c>>>5),d=a.sign&&0!=(1&c),e=new JSBI(b,d);e.__initializeDigits();const f=1<<(31&c);return e.__setDigit(b-1,f),e}let d=null,e=a;for(0!=(1&c)&&(d=a),c>>=1;0!==c;c>>=1)e=JSBI.multiply(e,e),0!=(1&c)&&(null===d?d=e:d=JSBI.multiply(d,e));return d}static multiply(a,b){if(0===a.length)return a;if(0===b.length)return b;let c=a.length+b.length;32<=a.__clzmsd()+b.__clzmsd()&&c--;const d=new JSBI(c,a.sign!==b.sign);d.__initializeDigits();for(let c=0;c<a.length;c++)JSBI.__multiplyAccumulate(b,a.__digit(c),d,c);return d.__trim()}static divide(a,b){if(0===b.length)throw new RangeError("Division by zero");if(0>JSBI.__absoluteCompare(a,b))return JSBI.__zero();const c=a.sign!==b.sign,d=b.__unsignedDigit(0);let e;if(1===b.length&&65535>=d){if(1===d)return c===a.sign?a:JSBI.unaryMinus(a);e=JSBI.__absoluteDivSmall(a,d,null)}else e=JSBI.__absoluteDivLarge(a,b,!0,!1);return e.sign=c,e.__trim()}static remainder(a,b){if(0===b.length)throw new RangeError("Division by zero");if(0>JSBI.__absoluteCompare(a,b))return a;const c=b.__unsignedDigit(0);if(1===b.length&&65535>=c){if(1===c)return JSBI.__zero();const b=JSBI.__absoluteModSmall(a,c);return 0===b?JSBI.__zero():JSBI.__oneDigit(b,a.sign)}const d=JSBI.__absoluteDivLarge(a,b,!1,!0);return d.sign=a.sign,d.__trim()}static add(a,b){const c=a.sign;return c===b.sign?JSBI.__absoluteAdd(a,b,c):0<=JSBI.__absoluteCompare(a,b)?JSBI.__absoluteSub(a,b,c):JSBI.__absoluteSub(b,a,!c)}static subtract(a,b){const c=a.sign;return c===b.sign?0<=JSBI.__absoluteCompare(a,b)?JSBI.__absoluteSub(a,b,c):JSBI.__absoluteSub(b,a,!c):JSBI.__absoluteAdd(a,b,c)}static leftShift(a,b){return 0===b.length||0===a.length?a:b.sign?JSBI.__rightShiftByAbsolute(a,b):JSBI.__leftShiftByAbsolute(a,b)}static signedRightShift(a,b){return 0===b.length||0===a.length?a:b.sign?JSBI.__leftShiftByAbsolute(a,b):JSBI.__rightShiftByAbsolute(a,b)}static unsignedRightShift(){throw new TypeError("BigInts have no unsigned right shift; use >> instead")}static lessThan(a,b){return 0>JSBI.__compareToBigInt(a,b)}static lessThanOrEqual(a,b){return 0>=JSBI.__compareToBigInt(a,b)}static greaterThan(a,b){return 0<JSBI.__compareToBigInt(a,b)}static greaterThanOrEqual(a,b){return 0<=JSBI.__compareToBigInt(a,b)}static equal(a,b){if(a.sign!==b.sign)return!1;if(a.length!==b.length)return!1;for(let c=0;c<a.length;c++)if(a.__digit(c)!==b.__digit(c))return!1;return!0}static bitwiseAnd(a,b){var c=Math.max;if(!a.sign&&!b.sign)return JSBI.__absoluteAnd(a,b).__trim();if(a.sign&&b.sign){const d=c(a.length,b.length)+1;let e=JSBI.__absoluteSubOne(a,d);const f=JSBI.__absoluteSubOne(b);return e=JSBI.__absoluteOr(e,f,e),JSBI.__absoluteAddOne(e,!0,e).__trim()}return a.sign&&([a,b]=[b,a]),JSBI.__absoluteAndNot(a,JSBI.__absoluteSubOne(b)).__trim()}static bitwiseXor(a,b){var c=Math.max;if(!a.sign&&!b.sign)return JSBI.__absoluteXor(a,b).__trim();if(a.sign&&b.sign){const d=c(a.length,b.length),e=JSBI.__absoluteSubOne(a,d),f=JSBI.__absoluteSubOne(b);return JSBI.__absoluteXor(e,f,e).__trim()}const d=c(a.length,b.length)+1;a.sign&&([a,b]=[b,a]);let e=JSBI.__absoluteSubOne(b,d);return e=JSBI.__absoluteXor(e,a,e),JSBI.__absoluteAddOne(e,!0,e).__trim()}static bitwiseOr(a,b){var c=Math.max;const d=c(a.length,b.length);if(!a.sign&&!b.sign)return JSBI.__absoluteOr(a,b).__trim();if(a.sign&&b.sign){let c=JSBI.__absoluteSubOne(a,d);const e=JSBI.__absoluteSubOne(b);return c=JSBI.__absoluteAnd(c,e,c),JSBI.__absoluteAddOne(c,!0,c).__trim()}a.sign&&([a,b]=[b,a]);let e=JSBI.__absoluteSubOne(b,d);return e=JSBI.__absoluteAndNot(e,a,e),JSBI.__absoluteAddOne(e,!0,e).__trim()}static ADD(a,b){if(a=JSBI.__toPrimitive(a),b=JSBI.__toPrimitive(b),"string"==typeof a)return"string"!=typeof b&&(b=b.toString()),a+b;if("string"==typeof b)return a.toString()+b;if(a=JSBI.__toNumeric(a),b=JSBI.__toNumeric(b),JSBI.__isBigInt(a)&&JSBI.__isBigInt(b))return JSBI.add(a,b);if("number"==typeof a&&"number"==typeof b)return a+b;throw new TypeError("Cannot mix BigInt and other types, use explicit conversions")}static LT(a,b){return JSBI.__compare(a,b,0)}static LE(a,b){return JSBI.__compare(a,b,1)}static GT(a,b){return JSBI.__compare(a,b,2)}static GE(a,b){return JSBI.__compare(a,b,3)}static EQ(a,b){for(;;){if(JSBI.__isBigInt(a))return JSBI.__isBigInt(b)?JSBI.equal(a,b):JSBI.EQ(b,a);if("number"==typeof a){if(JSBI.__isBigInt(b))return JSBI.__equalToNumber(b,a);if("object"!=typeof b)return a==b;b=JSBI.__toPrimitive(b)}else if("string"==typeof a){if(JSBI.__isBigInt(b))return a=JSBI.__fromString(a),null!==a&&JSBI.equal(a,b);if("object"!=typeof b)return a==b;b=JSBI.__toPrimitive(b)}else if("boolean"==typeof a){if(JSBI.__isBigInt(b))return JSBI.__equalToNumber(b,+a);if("object"!=typeof b)return a==b;b=JSBI.__toPrimitive(b)}else if("symbol"==typeof a){if(JSBI.__isBigInt(b))return!1;if("object"!=typeof b)return a==b;b=JSBI.__toPrimitive(b)}else if("object"==typeof a){if("object"==typeof b&&b.constructor!==JSBI)return a==b;a=JSBI.__toPrimitive(a)}else return a==b}}static useNativeBigIntsIfAvailable(){if("function"==typeof BigInt){if(BigInt===JSBI.BigInt)throw new Error("This method must be called *before* `BigInt = JSBI.BigInt`!");JSBI.BigInt=function(a){return new JSBI(0,BigInt(a))},JSBI.unaryMinus=function(a){return new JSBI(0,-a.sign)},JSBI.bitwiseNot=function(a){return new JSBI(0,~a.sign)},JSBI.exponentiate=function(a,b){return new JSBI(0,a.sign**b.sign)},JSBI.multiply=function(a,b){return new JSBI(0,a.sign*b.sign)},JSBI.divide=function(a,b){return new JSBI(0,a.sign/b.sign)},JSBI.remainder=function(a,b){return new JSBI(0,a.sign%b.sign)},JSBI.add=function(a,b){return new JSBI(0,a.sign+b.sign)},JSBI.subtract=function(a,b){return new JSBI(0,a.sign-b.sign)},JSBI.leftShift=function(a,b){return new JSBI(0,a.sign<<b.sign)},JSBI.signedRightShift=function(a,b){return new JSBI(0,a.sign>>b.sign)},JSBI.lessThan=function(a,b){return a.sign<b.sign},JSBI.equal=function(a,b){return a.sign===b.sign},JSBI.bitwiseAnd=function(a,b){return new JSBI(0,a.sign&b.sign)},JSBI.bitwiseXor=function(a,b){return new JSBI(0,a.sign^b.sign)},JSBI.bitwiseOr=function(a,b){return new JSBI(0,a.sign|b.sign)},JSBI.toString=function(a){return this.sign.toString(a)},JSBI.toNumber=function(a){return+a.sign},JSBI.ADD=function(a,b){JSBI.__isBigInt(a)&&(a=a.sign),JSBI.__isBigInt(b)&&(b=b.sign);const c=a+b;return"bigint"==typeof c?new JSBI(0,c):c},JSBI.LT=function(a,b){return a<b},JSBI.LE=function(a,b){return a<=b},JSBI.GT=function(a,b){return a>b},JSBI.GE=function(a,b){return a>=b},JSBI.EQ=function(a,b){return a==b}}}static __zero(){return new JSBI(0,!1)}static __oneDigit(a,b){const c=new JSBI(1,b);return c.__setDigit(0,a),c}__copy(){const a=new JSBI(this.length,this.sign);for(let b=0;b<this.length;b++)a[b]=this[b];return a}__trim(){let a=this.length,b=this[a-1];for(;0===b;)a--,b=this[a-1],this.pop();return 0===a&&(this.sign=!1),this}__initializeDigits(){for(let a=0;a<this.length;a++)this[a]=0}static __toNumber(a){var b=Math.clz32;const c=a.length;if(0===c)return 0;if(1===c){const b=a.__unsignedDigit(0);return a.sign?-b:b}const d=a.__digit(c-1),e=b(d),f=32*c-e;if(1024<f)return a.sign?-Infinity:1/0;let g=f-1,h=d,i=c-1;const j=e+1;let k=32===j?0:h<<j;k>>>=12;const l=j-12;let m=12<=j?0:h<<20+j,n=20+j;0<l&&0<i&&(i--,h=a.__digit(i),k|=h>>>32-l,m=h<<l,n=l),0<n&&0<i&&(i--,h=a.__digit(i),m|=h>>>32-n,n-=32);const o=JSBI.__decideRounding(a,n,i,h);if((1===o||0===o&&1==(1&m))&&(m=m+1>>>0,0==m&&(k++,0!=k>>>20&&(k=0,g++,1023<g))))return a.sign?-Infinity:1/0;const p=a.sign?-2147483648:0;return g=g+1023<<20,JSBI.__kBitConversionInts[1]=p|g|k,JSBI.__kBitConversionInts[0]=m,JSBI.__kBitConversionDouble[0]}static __decideRounding(a,b,c,d){if(0<b)return-1;let e;if(0>b)e=-b-1;else{if(0===c)return-1;c--,d=a.__digit(c),e=31}let f=1<<e;if(0==(d&f))return-1;if(f-=1,0!=(d&f))return 1;for(;0<c;)if(c--,0!==a.__digit(c))return 1;return 0}static __fromDouble(a){JSBI.__kBitConversionDouble[0]=a;const b=2047&JSBI.__kBitConversionInts[1]>>>20,c=b-1023,d=(c>>>5)+1,e=new JSBI(d,0>a);let f=1048575&JSBI.__kBitConversionInts[1]|1048576,g=JSBI.__kBitConversionInts[0];const h=20,i=31&c;let j,k=0;if(i<20){const a=h-i;k=a+32,j=f>>>a,f=f<<32-a|g>>>a,g<<=32-a}else if(i===20)k=32,j=f,f=g;else{const a=i-h;k=32-a,j=f<<a|g>>>32-a,f=g<<a}e.__setDigit(d-1,j);for(let b=d-2;0<=b;b--)0<k?(k-=32,j=f,f=g):j=0,e.__setDigit(b,j);return e.__trim()}static __iswhitespace(a){return!!(13>=a&&9<=a)||(159>=a?32==a:131071>=a?160==a||5760==a:196607>=a?(a&=131071,10>=a||40==a||41==a||47==a||95==a||4096==a):65279==a)}static __fromString(a,b=0){let c=0;const e=a.length;let f=0;if(f===e)return JSBI.__zero();let g=a.charCodeAt(f);for(;JSBI.__iswhitespace(g);){if(++f===e)return JSBI.__zero();g=a.charCodeAt(f)}if(43===g){if(++f===e)return null;g=a.charCodeAt(f),c=1}else if(45===g){if(++f===e)return null;g=a.charCodeAt(f),c=-1}if(0===b){if(b=10,48===g){if(++f===e)return JSBI.__zero();if(g=a.charCodeAt(f),88===g||120===g){if(b=16,++f===e)return null;g=a.charCodeAt(f)}else if(79===g||111===g){if(b=8,++f===e)return null;g=a.charCodeAt(f)}else if(66===g||98===g){if(b=2,++f===e)return null;g=a.charCodeAt(f)}}}else if(16===b&&48===g){if(++f===e)return JSBI.__zero();if(g=a.charCodeAt(f),88===g||120===g){if(++f===e)return null;g=a.charCodeAt(f)}}for(;48===g;){if(++f===e)return JSBI.__zero();g=a.charCodeAt(f)}const h=e-f;let i=JSBI.__kMaxBitsPerChar[b],j=JSBI.__kBitsPerCharTableMultiplier-1;if(h>1073741824/i)return null;const k=i*h+j>>>JSBI.__kBitsPerCharTableShift,l=new JSBI(k+31>>>5,!1),n=10>b?b:10,o=10<b?b-10:0;if(0==(b&b-1)){i>>=JSBI.__kBitsPerCharTableShift;const b=[],c=[];let d=!1;do{let h=0,j=0;for(;;){let b;if(g-48>>>0<n)b=g-48;else if((32|g)-97>>>0<o)b=(32|g)-87;else{d=!0;break}if(j+=i,h=h<<i|b,++f===e){d=!0;break}if(g=a.charCodeAt(f),32<j+i)break}b.push(h),c.push(j)}while(!d);JSBI.__fillFromParts(l,b,c)}else{l.__initializeDigits();let c=!1,h=0;do{let k=0,p=1;for(;;){let i;if(g-48>>>0<n)i=g-48;else if((32|g)-97>>>0<o)i=(32|g)-87;else{c=!0;break}const d=p*b;if(4294967295<d)break;if(p=d,k=k*b+i,h++,++f===e){c=!0;break}g=a.charCodeAt(f)}j=32*JSBI.__kBitsPerCharTableMultiplier-1;const q=i*h+j>>>JSBI.__kBitsPerCharTableShift+5;l.__inplaceMultiplyAdd(p,k,q)}while(!c)}for(;f!==e;){if(!JSBI.__iswhitespace(g))return null;g=a.charCodeAt(f++)}return 0!=c&&10!==b?null:(l.sign=-1==c,l.__trim())}static __fillFromParts(a,b,c){let d=0,e=0,f=0;for(let g=b.length-1;0<=g;g--){const h=b[g],i=c[g];e|=h<<f,f+=i,32===f?(a.__setDigit(d++,e),f=0,e=0):32<f&&(a.__setDigit(d++,e),f-=32,e=h>>>i-f)}if(0!==e){if(d>=a.length)throw new Error("implementation bug");a.__setDigit(d++,e)}for(;d<a.length;d++)a.__setDigit(d,0)}static __toStringBasePowerOfTwo(a,b){var c=Math.clz32;const d=a.length;let e=b-1;e=(85&e>>>1)+(85&e),e=(51&e>>>2)+(51&e),e=(15&e>>>4)+(15&e);const f=e,g=b-1,h=a.__digit(d-1),i=c(h);let j=0|(32*d-i+f-1)/f;if(a.sign&&j++,268435456<j)throw new Error("string too long");const k=Array(j);let l=j-1,m=0,n=0;for(let c=0;c<d-1;c++){const b=a.__digit(c),d=(m|b<<n)&g;k[l--]=JSBI.__kConversionChars[d];const e=f-n;for(m=b>>>e,n=32-e;n>=f;)k[l--]=JSBI.__kConversionChars[m&g],m>>>=f,n-=f}const o=(m|h<<n)&g;for(k[l--]=JSBI.__kConversionChars[o],m=h>>>f-n;0!==m;)k[l--]=JSBI.__kConversionChars[m&g],m>>>=f;if(a.sign&&(k[l--]="-"),-1!=l)throw new Error("implementation bug");return k.join("")}static __toStringGeneric(a,b,c){var d=Math.clz32;const e=a.length;if(0===e)return"";if(1===e){let d=a.__unsignedDigit(0).toString(b);return!1===c&&a.sign&&(d="-"+d),d}const f=32*e-d(a.__digit(e-1)),g=JSBI.__kMaxBitsPerChar[b],h=g-1;let i=f*JSBI.__kBitsPerCharTableMultiplier;i+=h-1,i=0|i/h;const j=i+1>>1,k=JSBI.exponentiate(JSBI.__oneDigit(b,!1),JSBI.__oneDigit(j,!1));let l,m;const n=k.__unsignedDigit(0);if(1===k.length&&65535>=n){l=new JSBI(a.length,!1),l.__initializeDigits();let c=0;for(let b=2*a.length-1;0<=b;b--){const d=c<<16|a.__halfDigit(b);l.__setHalfDigit(b,0|d/n),c=0|d%n}m=c.toString(b)}else{const c=JSBI.__absoluteDivLarge(a,k,!0,!0);l=c.quotient;const d=c.remainder.__trim();m=JSBI.__toStringGeneric(d,b,!0)}l.__trim();let o=JSBI.__toStringGeneric(l,b,!0);for(;m.length<j;)m="0"+m;return!1===c&&a.sign&&(o="-"+o),o+m}static __unequalSign(a){return a?-1:1}static __absoluteGreater(a){return a?-1:1}static __absoluteLess(a){return a?1:-1}static __compareToBigInt(a,b){const c=a.sign;if(c!==b.sign)return JSBI.__unequalSign(c);const d=JSBI.__absoluteCompare(a,b);return 0<d?JSBI.__absoluteGreater(c):0>d?JSBI.__absoluteLess(c):0}static __compareToNumber(a,b){if(b|!0){const c=a.sign,d=0>b;if(c!==d)return JSBI.__unequalSign(c);if(0===a.length){if(d)throw new Error("implementation bug");return 0===b?0:-1}if(1<a.length)return JSBI.__absoluteGreater(c);const e=Math.abs(b),f=a.__unsignedDigit(0);return f>e?JSBI.__absoluteGreater(c):f<e?JSBI.__absoluteLess(c):0}return JSBI.__compareToDouble(a,b)}static __compareToDouble(a,b){var c=Math.clz32;if(b!==b)return b;if(b===1/0)return-1;if(b===-Infinity)return 1;const d=a.sign;if(d!==0>b)return JSBI.__unequalSign(d);if(0===b)throw new Error("implementation bug: should be handled elsewhere");if(0===a.length)return-1;JSBI.__kBitConversionDouble[0]=b;const e=2047&JSBI.__kBitConversionInts[1]>>>20;if(2047==e)throw new Error("implementation bug: handled elsewhere");const f=e-1023;if(0>f)return JSBI.__absoluteGreater(d);const g=a.length;let h=a.__digit(g-1);const i=c(h),j=32*g-i,k=f+1;if(j<k)return JSBI.__absoluteLess(d);if(j>k)return JSBI.__absoluteGreater(d);let l=1048576|1048575&JSBI.__kBitConversionInts[1],m=JSBI.__kBitConversionInts[0];const n=20,o=31-i;if(o!==(j-1)%31)throw new Error("implementation bug");let p,q=0;if(20>o){const a=n-o;q=a+32,p=l>>>a,l=l<<32-a|m>>>a,m<<=32-a}else if(20===o)q=32,p=l,l=m;else{const a=o-n;q=32-a,p=l<<a|m>>>32-a,l=m<<a}if(h>>>=0,p>>>=0,h>p)return JSBI.__absoluteGreater(d);if(h<p)return JSBI.__absoluteLess(d);for(let c=g-2;0<=c;c--){0<q?(q-=32,p=l>>>0,l=m,m=0):p=0;const b=a.__unsignedDigit(c);if(b>p)return JSBI.__absoluteGreater(d);if(b<p)return JSBI.__absoluteLess(d)}if(0!==l||0!==m){if(0===q)throw new Error("implementation bug");return JSBI.__absoluteLess(d)}return 0}static __equalToNumber(a,b){var c=Math.abs;return b|0===b?0===b?0===a.length:1===a.length&&a.sign===0>b&&a.__unsignedDigit(0)===c(b):0===JSBI.__compareToDouble(a,b)}static __comparisonResultToBool(a,b){switch(b){case 0:return 0>a;case 1:return 0>=a;case 2:return 0<a;case 3:return 0<=a;}throw new Error("unreachable")}static __compare(a,b,c){if(a=JSBI.__toPrimitive(a),b=JSBI.__toPrimitive(b),"string"==typeof a&&"string"==typeof b)switch(c){case 0:return a<b;case 1:return a<=b;case 2:return a>b;case 3:return a>=b;}if(JSBI.__isBigInt(a)&&"string"==typeof b)return b=JSBI.__fromString(b),null!==b&&JSBI.__comparisonResultToBool(JSBI.__compareToBigInt(a,b),c);if("string"==typeof a&&JSBI.__isBigInt(b))return a=JSBI.__fromString(a),null!==a&&JSBI.__comparisonResultToBool(JSBI.__compareToBigInt(a,b),c);if(a=JSBI.__toNumeric(a),b=JSBI.__toNumeric(b),JSBI.__isBigInt(a)){if(JSBI.__isBigInt(b))return JSBI.__comparisonResultToBool(JSBI.__compareToBigInt(a,b),c);if("number"!=typeof b)throw new Error("implementation bug");return JSBI.__comparisonResultToBool(JSBI.__compareToNumber(a,b),c)}if("number"!=typeof a)throw new Error("implementation bug");if(JSBI.__isBigInt(b))return JSBI.__comparisonResultToBool(JSBI.__compareToNumber(b,a),2^c);if("number"!=typeof b)throw new Error("implementation bug");return 0===c?a<b:1===c?a<=b:2===c?a>b:3===c?a>=b:void 0}__clzmsd(){return Math.clz32(this[this.length-1])}static __absoluteAdd(a,b,c){if(a.length<b.length)return JSBI.__absoluteAdd(b,a,c);if(0===a.length)return a;if(0===b.length)return a.sign===c?a:JSBI.unaryMinus(a);let d=a.length;(0===a.__clzmsd()||b.length===a.length&&0===b.__clzmsd())&&d++;const e=new JSBI(d,c);let f=0,g=0;for(;g<b.length;g++){const c=b.__digit(g),d=a.__digit(g),h=(65535&d)+(65535&c)+f,i=(d>>>16)+(c>>>16)+(h>>>16);f=i>>>16,e.__setDigit(g,65535&h|i<<16)}for(;g<a.length;g++){const b=a.__digit(g),c=(65535&b)+f,d=(b>>>16)+(c>>>16);f=d>>>16,e.__setDigit(g,65535&c|d<<16)}return g<e.length&&e.__setDigit(g,f),e.__trim()}static __absoluteSub(a,b,c){if(0===a.length)return a;if(0===b.length)return a.sign===c?a:JSBI.unaryMinus(a);const d=new JSBI(a.length,c);let e=0,f=0;for(;f<b.length;f++){const c=a.__digit(f),g=b.__digit(f),h=(65535&c)-(65535&g)-e;e=1&h>>>16;const i=(c>>>16)-(g>>>16)-e;e=1&i>>>16,d.__setDigit(f,65535&h|i<<16)}for(;f<a.length;f++){const b=a.__digit(f),c=(65535&b)-e;e=1&c>>>16;const g=(b>>>16)-e;e=1&g>>>16,d.__setDigit(f,65535&c|g<<16)}return d.__trim()}static __absoluteAddOne(a,b,c=null){const d=a.length;null===c?c=new JSBI(d,b):c.sign=b;let e=!0;for(let f,g=0;g<d;g++){f=a.__digit(g);const b=-1===f;e&&(f=0|f+1),e=b,c.__setDigit(g,f)}return e&&c.__setDigitGrow(d,1),c}static __absoluteSubOne(a,b){const c=a.length;b=b||c;const d=new JSBI(b,!1);let e=!0;for(let f,g=0;g<c;g++){f=a.__digit(g);const b=0===f;e&&(f=0|f-1),e=b,d.__setDigit(g,f)}for(let e=c;e<b;e++)d.__setDigit(e,0);return d}static __absoluteAnd(a,b,c=null){let d=a.length,e=b.length,f=e;if(d<e){f=d;const c=a,g=d;a=b,d=e,b=c,e=g}let g=f;null===c?c=new JSBI(g,!1):g=c.length;let h=0;for(;h<f;h++)c.__setDigit(h,a.__digit(h)&b.__digit(h));for(;h<g;h++)c.__setDigit(h,0);return c}static __absoluteAndNot(a,b,c=null){const d=a.length,e=b.length;let f=e;d<e&&(f=d);let g=d;null===c?c=new JSBI(g,!1):g=c.length;let h=0;for(;h<f;h++)c.__setDigit(h,a.__digit(h)&~b.__digit(h));for(;h<d;h++)c.__setDigit(h,a.__digit(h));for(;h<g;h++)c.__setDigit(h,0);return c}static __absoluteOr(a,b,c=null){let d=a.length,e=b.length,f=e;if(d<e){f=d;const c=a,g=d;a=b,d=e,b=c,e=g}let g=d;null===c?c=new JSBI(g,!1):g=c.length;let h=0;for(;h<f;h++)c.__setDigit(h,a.__digit(h)|b.__digit(h));for(;h<d;h++)c.__setDigit(h,a.__digit(h));for(;h<g;h++)c.__setDigit(h,0);return c}static __absoluteXor(a,b,c=null){let d=a.length,e=b.length,f=e;if(d<e){f=d;const c=a,g=d;a=b,d=e,b=c,e=g}let g=d;null===c?c=new JSBI(g,!1):g=c.length;let h=0;for(;h<f;h++)c.__setDigit(h,a.__digit(h)^b.__digit(h));for(;h<d;h++)c.__setDigit(h,a.__digit(h));for(;h<g;h++)c.__setDigit(h,0);return c}static __absoluteCompare(a,b){const c=a.length-b.length;if(0!=c)return c;let d=a.length-1;for(;0<=d&&a.__digit(d)===b.__digit(d);)d--;return 0>d?0:a.__unsignedDigit(d)>b.__unsignedDigit(d)?1:-1}static __multiplyAccumulate(a,b,c,d){var e=Math.imul;if(0===b)return;const f=65535&b,g=b>>>16;let h=0,j=0,k=0;for(let l=0;l<a.length;l++,d++){let b=c.__digit(d),i=65535&b,m=b>>>16;const n=a.__digit(l),o=65535&n,p=n>>>16,q=e(o,f),r=e(o,g),s=e(p,f),t=e(p,g);i+=j+(65535&q),m+=k+h+(i>>>16)+(q>>>16)+(65535&r)+(65535&s),h=m>>>16,j=(r>>>16)+(s>>>16)+(65535&t)+h,h=j>>>16,j&=65535,k=t>>>16,b=65535&i|m<<16,c.__setDigit(d,b)}for(;0!=h||0!==j||0!==k;d++){let a=c.__digit(d);const b=(65535&a)+j,e=(a>>>16)+(b>>>16)+k+h;j=0,k=0,h=e>>>16,a=65535&b|e<<16,c.__setDigit(d,a)}}static __internalMultiplyAdd(a,b,c,d,e){var f=Math.imul;let g=c,h=0;for(let j=0;j<d;j++){const c=a.__digit(j),d=f(65535&c,b),i=(65535&d)+h+g;g=i>>>16;const k=f(c>>>16,b),l=(65535&k)+(d>>>16)+g;g=l>>>16,h=k>>>16,e.__setDigit(j,l<<16|65535&i)}if(e.length>d)for(e.__setDigit(d++,g+h);d<e.length;)e.__setDigit(d++,0);else if(0!==g+h)throw new Error("implementation bug")}__inplaceMultiplyAdd(a,b,c){var e=Math.imul;c>this.length&&(c=this.length);const f=65535&a,g=a>>>16;let h=0,j=65535&b,k=b>>>16;for(let l=0;l<c;l++){const a=this.__digit(l),b=65535&a,c=a>>>16,d=e(b,f),i=e(b,g),m=e(c,f),n=e(c,g),o=j+(65535&d),p=k+h+(o>>>16)+(d>>>16)+(65535&i)+(65535&m);j=(i>>>16)+(m>>>16)+(65535&n)+(p>>>16),h=j>>>16,j&=65535,k=n>>>16;this.__setDigit(l,65535&o|p<<16)}if(0!=h||0!==j||0!==k)throw new Error("implementation bug")}static __absoluteDivSmall(a,b,c){null===c&&(c=new JSBI(a.length,!1));let d=0;for(let e,f=2*a.length-1;0<=f;f-=2){e=(d<<16|a.__halfDigit(f))>>>0;const g=0|e/b;d=0|e%b,e=(d<<16|a.__halfDigit(f-1))>>>0;const h=0|e/b;d=0|e%b,c.__setDigit(f>>>1,g<<16|h)}return c}static __absoluteModSmall(a,b){let c=0;for(let d=2*a.length-1;0<=d;d--){const e=(c<<16|a.__halfDigit(d))>>>0;c=0|e%b}return c}static __absoluteDivLarge(a,b,d,e){var f=Math.imul;const g=b.__halfDigitLength(),h=b.length,c=a.__halfDigitLength()-g;let i=null;d&&(i=new JSBI(c+2>>>1,!1),i.__initializeDigits());const k=new JSBI(g+2>>>1,!1);k.__initializeDigits();const l=JSBI.__clz16(b.__halfDigit(g-1));0<l&&(b=JSBI.__specialLeftShift(b,l,0));const m=JSBI.__specialLeftShift(a,l,1),n=b.__halfDigit(g-1);let o=0;for(let l,p=c;0<=p;p--){l=65535;const a=m.__halfDigit(p+g);if(a!==n){const c=(a<<16|m.__halfDigit(p+g-1))>>>0;l=0|c/n;let d=0|c%n;const e=b.__halfDigit(g-2),h=m.__halfDigit(p+g-2);for(;f(l,e)>>>0>(d<<16|h)>>>0&&(l--,d+=n,!(65535<d)););}JSBI.__internalMultiplyAdd(b,l,0,h,k);let e=m.__inplaceSub(k,p);0!==e&&(e=m.__inplaceAdd(b,p),m.__setHalfDigit(p+g,m.__halfDigit(p+g)+e),l--),d&&(1&p?o=l<<16:i.__setDigit(p>>>1,o|l))}return e?(m.__inplaceRightShift(l),d?{quotient:i,remainder:m}:m):d?i:void 0}static __clz16(a){return Math.clz32(a)-16}__inplaceAdd(a,b){let c=0;const d=a.__halfDigitLength();for(let e=0;e<d;e++){const d=this.__halfDigit(b+e)+a.__halfDigit(e)+c;c=d>>>16,this.__setHalfDigit(b+e,d)}return c}__inplaceSub(a,b){let c=0;if(1&b){b>>=1;let d=this.__digit(b),e=65535&d,f=0;for(;f<a.length-1;f++){const g=a.__digit(f),h=(d>>>16)-(65535&g)-c;c=1&h>>>16,this.__setDigit(b+f,h<<16|65535&e),d=this.__digit(b+f+1),e=(65535&d)-(g>>>16)-c,c=1&e>>>16}const g=a.__digit(f),h=(d>>>16)-(65535&g)-c;c=1&h>>>16,this.__setDigit(b+f,h<<16|65535&e);const i=g>>>16;if(b+f+1>=this.length)throw new RangeError("out of bounds");d=this.__digit(b+f+1),(0!=i||0!==d)&&(e=(65535&d)-i-c,c=1&e>>>16,this.__setDigit(b+a.length,4294901760&d|65535&e))}else{b>>=1;for(let d=0;d<a.length;d++){const e=this.__digit(b+d),f=a.__digit(d),g=(65535&e)-(65535&f)-c;c=1&g>>>16;const h=(e>>>16)-(f>>>16)-c;c=1&h>>>16,this.__setDigit(b+d,h<<16|65535&g)}}return c}__inplaceRightShift(a){if(0===a)return;let b=this.__digit(0)>>>a;const c=this.length-1;for(let e=0;e<c;e++){const c=this.__digit(e+1);this.__setDigit(e,c<<32-a|b),b=c>>>a}this.__setDigit(c,b)}static __specialLeftShift(a,b,c){const d=a.length,e=new JSBI(d+c,!1);if(0===b){for(let b=0;b<d;b++)e.__setDigit(b,a.__digit(b));return 0<c&&e.__setDigit(d,0),e}let f=0;for(let g=0;g<d;g++){const c=a.__digit(g);e.__setDigit(g,c<<b|f),f=c>>>32-b}return 0<c&&e.__setDigit(d,f),e}static __leftShiftByAbsolute(a,b){const c=JSBI.__toShiftAmount(b);if(0>c)throw new RangeError("BigInt too big");const e=c>>>5,f=31&c,g=a.length,h=0!==f&&0!=a.__digit(g-1)>>>32-f,j=g+e+(h?1:0),k=new JSBI(j,a.sign);if(0===f){let b=0;for(;b<e;b++)k.__setDigit(b,0);for(;b<j;b++)k.__setDigit(b,a.__digit(b-e))}else{let b=0;for(let a=0;a<e;a++)k.__setDigit(a,0);for(let c=0;c<g;c++){const g=a.__digit(c);k.__setDigit(c+e,g<<f|b),b=g>>>32-f}if(h)k.__setDigit(g+e,b);else if(0!=b)throw new Error("implementation bug")}return k.__trim()}static __rightShiftByAbsolute(a,b){const c=a.length,d=a.sign,e=JSBI.__toShiftAmount(b);if(0>e)return JSBI.__rightShiftByMaximum(d);const f=e>>>5,g=31&e;let h=c-f;if(0>=h)return JSBI.__rightShiftByMaximum(d);let i=!1;if(d){if(0!=(a.__digit(f)&(1<<g)-1))i=!0;else for(let b=0;b<f;b++)if(0!==a.__digit(b)){i=!0;break}}if(i&&0===g){const b=a.__digit(c-1);0==~b&&h++}let j=new JSBI(h,d);if(0===g)for(let b=f;b<c;b++)j.__setDigit(b-f,a.__digit(b));else{let b=a.__digit(f)>>>g;const d=c-f-1;for(let c=0;c<d;c++){const e=a.__digit(c+f+1);j.__setDigit(c,e<<32-g|b),b=e>>>g}j.__setDigit(d,b)}return i&&(j=JSBI.__absoluteAddOne(j,!0,j)),j.__trim()}static __rightShiftByMaximum(a){return a?JSBI.__oneDigit(1,!0):JSBI.__zero()}static __toShiftAmount(a){if(1<a.length)return-1;const b=a.__unsignedDigit(0);return b>JSBI.__kMaxLengthBits?-1:b}static __toPrimitive(a,b="default"){if("object"!=typeof a)return a;if(a.constructor===JSBI)return a;const c=a[Symbol.toPrimitive];if(c){const a=c(b);if("object"!=typeof a)return a;throw new TypeError("Cannot convert object to primitive value")}const d=a.valueOf;if(d){const b=d.call(a);if("object"!=typeof b)return b}const e=a.toString;if(e){const b=e.call(a);if("object"!=typeof b)return b}throw new TypeError("Cannot convert object to primitive value")}static __toNumeric(a){return JSBI.__isBigInt(a)?a:+a}static __isBigInt(a){return"object"==typeof a&&a.constructor===JSBI}__digit(a){return this[a]}__unsignedDigit(a){return this[a]>>>0}__setDigit(a,b){this[a]=0|b}__setDigitGrow(a,b){this[a]=0|b}__halfDigitLength(){const a=this.length;return 65535>=this.__unsignedDigit(a-1)?2*a-1:2*a}__halfDigit(a){return 65535&this[a>>>1]>>>((1&a)<<4)}__setHalfDigit(a,b){const c=a>>>1,d=this.__digit(c),e=1&a?65535&d|b<<16:4294901760&d|65535&b;this.__setDigit(c,e)}static __digitPow(a,b){let c=1;for(;0<b;)1&b&&(c*=a),b>>>=1,a*=a;return c}}JSBI.__kMaxLength=33554432,JSBI.__kMaxLengthBits=JSBI.__kMaxLength<<5,JSBI.__kMaxBitsPerChar=[0,0,32,51,64,75,83,90,96,102,107,111,115,119,122,126,128,131,134,136,139,141,143,145,147,149,151,153,154,156,158,159,160,162,163,165,166],JSBI.__kBitsPerCharTableShift=5,JSBI.__kBitsPerCharTableMultiplier=1<<JSBI.__kBitsPerCharTableShift,JSBI.__kConversionChars=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"],JSBI.__kBitConversionBuffer=new ArrayBuffer(8),JSBI.__kBitConversionDouble=new Float64Array(JSBI.__kBitConversionBuffer),JSBI.__kBitConversionInts=new Int32Array(JSBI.__kBitConversionBuffer),module.exports=JSBI;
"use strict";class JSBI extends Array{constructor(a,b){if(a>JSBI.__kMaxLength)throw new RangeError("Maximum BigInt size exceeded");super(a),this.sign=b}static BigInt(a){var b=Math.floor,c=Number.isFinite;if("number"==typeof a){if(0===a)return JSBI.__zero();if((0|a)===a)return 0>a?JSBI.__oneDigit(-a,!0):JSBI.__oneDigit(a,!1);if(!c(a)||b(a)!==a)throw new RangeError("The number "+a+" cannot be converted to BigInt because it is not an integer");return JSBI.__fromDouble(a)}if("string"==typeof a){const b=JSBI.__fromString(a);if(null===b)throw new SyntaxError("Cannot convert "+a+" to a BigInt");return b}if("boolean"==typeof a)return!0===a?JSBI.__oneDigit(1,!1):JSBI.__zero();if("object"==typeof a){if(a.constructor===JSBI)return a;const b=JSBI.__toPrimitive(a);return JSBI.BigInt(b)}throw new TypeError("Cannot convert "+a+" to a BigInt")}toDebugString(){const a=["BigInt["];for(const b of this)a.push((b?b.toString(16):b)+", ");return a.push("]"),a.join("")}toString(a=10){if(2>a||36<a)throw new RangeError("toString() radix argument must be between 2 and 36");return 0===this.length?"0":0==(a&a-1)?JSBI.__toStringBasePowerOfTwo(this,a):JSBI.__toStringGeneric(this,a,!1)}static toNumber(a){return JSBI.__toNumber(a)}static unaryMinus(a){if(0===a.length)return a;const b=a.__copy();return b.sign=!a.sign,b}static bitwiseNot(a){return a.sign?JSBI.__absoluteSubOne(a).__trim():JSBI.__absoluteAddOne(a,!0)}static exponentiate(a,b){if(b.sign)throw new RangeError("Exponent must be positive");if(0===b.length)return JSBI.__oneDigit(1,!1);if(0===a.length)return a;if(1===a.length&&1===a.__digit(0))return a.sign&&0==(1&b.__digit(0))?JSBI.unaryMinus(a):a;if(1<b.length)throw new RangeError("BigInt too big");let c=b.__unsignedDigit(0);if(1===c)return a;if(c>=JSBI.__kMaxLengthBits)throw new RangeError("BigInt too big");if(1===a.length&&2===a.__digit(0)){const b=1+(c>>>5),d=a.sign&&0!=(1&c),e=new JSBI(b,d);e.__initializeDigits();const f=1<<(31&c);return e.__setDigit(b-1,f),e}let d=null,e=a;for(0!=(1&c)&&(d=a),c>>=1;0!==c;c>>=1)e=JSBI.multiply(e,e),0!=(1&c)&&(null===d?d=e:d=JSBI.multiply(d,e));return d}static multiply(a,b){if(0===a.length)return a;if(0===b.length)return b;let c=a.length+b.length;32<=a.__clzmsd()+b.__clzmsd()&&c--;const d=new JSBI(c,a.sign!==b.sign);d.__initializeDigits();for(let c=0;c<a.length;c++)JSBI.__multiplyAccumulate(b,a.__digit(c),d,c);return d.__trim()}static divide(a,b){if(0===b.length)throw new RangeError("Division by zero");if(0>JSBI.__absoluteCompare(a,b))return JSBI.__zero();const c=a.sign!==b.sign,d=b.__unsignedDigit(0);let e;if(1===b.length&&65535>=d){if(1===d)return c===a.sign?a:JSBI.unaryMinus(a);e=JSBI.__absoluteDivSmall(a,d,null)}else e=JSBI.__absoluteDivLarge(a,b,!0,!1);return e.sign=c,e.__trim()}static remainder(a,b){if(0===b.length)throw new RangeError("Division by zero");if(0>JSBI.__absoluteCompare(a,b))return a;const c=b.__unsignedDigit(0);if(1===b.length&&65535>=c){if(1===c)return JSBI.__zero();const b=JSBI.__absoluteModSmall(a,c);return 0===b?JSBI.__zero():JSBI.__oneDigit(b,a.sign)}const d=JSBI.__absoluteDivLarge(a,b,!1,!0);return d.sign=a.sign,d.__trim()}static add(a,b){const c=a.sign;return c===b.sign?JSBI.__absoluteAdd(a,b,c):0<=JSBI.__absoluteCompare(a,b)?JSBI.__absoluteSub(a,b,c):JSBI.__absoluteSub(b,a,!c)}static subtract(a,b){const c=a.sign;return c===b.sign?0<=JSBI.__absoluteCompare(a,b)?JSBI.__absoluteSub(a,b,c):JSBI.__absoluteSub(b,a,!c):JSBI.__absoluteAdd(a,b,c)}static leftShift(a,b){return 0===b.length||0===a.length?a:b.sign?JSBI.__rightShiftByAbsolute(a,b):JSBI.__leftShiftByAbsolute(a,b)}static signedRightShift(a,b){return 0===b.length||0===a.length?a:b.sign?JSBI.__leftShiftByAbsolute(a,b):JSBI.__rightShiftByAbsolute(a,b)}static unsignedRightShift(){throw new TypeError("BigInts have no unsigned right shift; use >> instead")}static lessThan(a,b){return 0>JSBI.__compareToBigInt(a,b)}static lessThanOrEqual(a,b){return 0>=JSBI.__compareToBigInt(a,b)}static greaterThan(a,b){return 0<JSBI.__compareToBigInt(a,b)}static greaterThanOrEqual(a,b){return 0<=JSBI.__compareToBigInt(a,b)}static equal(a,b){if(a.sign!==b.sign)return!1;if(a.length!==b.length)return!1;for(let c=0;c<a.length;c++)if(a.__digit(c)!==b.__digit(c))return!1;return!0}static bitwiseAnd(a,b){var c=Math.max;if(!a.sign&&!b.sign)return JSBI.__absoluteAnd(a,b).__trim();if(a.sign&&b.sign){const d=c(a.length,b.length)+1;let e=JSBI.__absoluteSubOne(a,d);const f=JSBI.__absoluteSubOne(b);return e=JSBI.__absoluteOr(e,f,e),JSBI.__absoluteAddOne(e,!0,e).__trim()}return a.sign&&([a,b]=[b,a]),JSBI.__absoluteAndNot(a,JSBI.__absoluteSubOne(b)).__trim()}static bitwiseXor(a,b){var c=Math.max;if(!a.sign&&!b.sign)return JSBI.__absoluteXor(a,b).__trim();if(a.sign&&b.sign){const d=c(a.length,b.length),e=JSBI.__absoluteSubOne(a,d),f=JSBI.__absoluteSubOne(b);return JSBI.__absoluteXor(e,f,e).__trim()}const d=c(a.length,b.length)+1;a.sign&&([a,b]=[b,a]);let e=JSBI.__absoluteSubOne(b,d);return e=JSBI.__absoluteXor(e,a,e),JSBI.__absoluteAddOne(e,!0,e).__trim()}static bitwiseOr(a,b){var c=Math.max;const d=c(a.length,b.length);if(!a.sign&&!b.sign)return JSBI.__absoluteOr(a,b).__trim();if(a.sign&&b.sign){let c=JSBI.__absoluteSubOne(a,d);const e=JSBI.__absoluteSubOne(b);return c=JSBI.__absoluteAnd(c,e,c),JSBI.__absoluteAddOne(c,!0,c).__trim()}a.sign&&([a,b]=[b,a]);let e=JSBI.__absoluteSubOne(b,d);return e=JSBI.__absoluteAndNot(e,a,e),JSBI.__absoluteAddOne(e,!0,e).__trim()}static ADD(a,b){if(a=JSBI.__toPrimitive(a),b=JSBI.__toPrimitive(b),"string"==typeof a)return"string"!=typeof b&&(b=b.toString()),a+b;if("string"==typeof b)return a.toString()+b;if(a=JSBI.__toNumeric(a),b=JSBI.__toNumeric(b),JSBI.__isBigInt(a)&&JSBI.__isBigInt(b))return JSBI.add(a,b);if("number"==typeof a&&"number"==typeof b)return a+b;throw new TypeError("Cannot mix BigInt and other types, use explicit conversions")}static LT(a,b){return JSBI.__compare(a,b,0)}static LE(a,b){return JSBI.__compare(a,b,1)}static GT(a,b){return JSBI.__compare(a,b,2)}static GE(a,b){return JSBI.__compare(a,b,3)}static EQ(a,b){for(;;){if(JSBI.__isBigInt(a))return JSBI.__isBigInt(b)?JSBI.equal(a,b):JSBI.EQ(b,a);if("number"==typeof a){if(JSBI.__isBigInt(b))return JSBI.__equalToNumber(b,a);if("object"!=typeof b)return a==b;b=JSBI.__toPrimitive(b)}else if("string"==typeof a){if(JSBI.__isBigInt(b))return a=JSBI.__fromString(a),null!==a&&JSBI.equal(a,b);if("object"!=typeof b)return a==b;b=JSBI.__toPrimitive(b)}else if("boolean"==typeof a){if(JSBI.__isBigInt(b))return JSBI.__equalToNumber(b,+a);if("object"!=typeof b)return a==b;b=JSBI.__toPrimitive(b)}else if("symbol"==typeof a){if(JSBI.__isBigInt(b))return!1;if("object"!=typeof b)return a==b;b=JSBI.__toPrimitive(b)}else if("object"==typeof a){if("object"==typeof b&&b.constructor!==JSBI)return a==b;a=JSBI.__toPrimitive(a)}else return a==b}}static __zero(){return new JSBI(0,!1)}static __oneDigit(a,b){const c=new JSBI(1,b);return c.__setDigit(0,a),c}__copy(){const a=new JSBI(this.length,this.sign);for(let b=0;b<this.length;b++)a[b]=this[b];return a}__trim(){let a=this.length,b=this[a-1];for(;0===b;)a--,b=this[a-1],this.pop();return 0===a&&(this.sign=!1),this}__initializeDigits(){for(let a=0;a<this.length;a++)this[a]=0}static __toNumber(a){var b=Math.clz32;const c=a.length;if(0===c)return 0;if(1===c){const b=a.__unsignedDigit(0);return a.sign?-b:b}const d=a.__digit(c-1),e=b(d),f=32*c-e;if(1024<f)return a.sign?-Infinity:1/0;let g=f-1,h=d,i=c-1;const j=e+1;let k=32===j?0:h<<j;k>>>=12;const l=j-12;let m=12<=j?0:h<<20+j,n=20+j;0<l&&0<i&&(i--,h=a.__digit(i),k|=h>>>32-l,m=h<<l,n=l),0<n&&0<i&&(i--,h=a.__digit(i),m|=h>>>32-n,n-=32);const o=JSBI.__decideRounding(a,n,i,h);if((1===o||0===o&&1==(1&m))&&(m=m+1>>>0,0==m&&(k++,0!=k>>>20&&(k=0,g++,1023<g))))return a.sign?-Infinity:1/0;const p=a.sign?-2147483648:0;return g=g+1023<<20,JSBI.__kBitConversionInts[1]=p|g|k,JSBI.__kBitConversionInts[0]=m,JSBI.__kBitConversionDouble[0]}static __decideRounding(a,b,c,d){if(0<b)return-1;let e;if(0>b)e=-b-1;else{if(0===c)return-1;c--,d=a.__digit(c),e=31}let f=1<<e;if(0==(d&f))return-1;if(f-=1,0!=(d&f))return 1;for(;0<c;)if(c--,0!==a.__digit(c))return 1;return 0}static __fromDouble(a){JSBI.__kBitConversionDouble[0]=a;const b=2047&JSBI.__kBitConversionInts[1]>>>20,c=b-1023,d=(c>>>5)+1,e=new JSBI(d,0>a);let f=1048575&JSBI.__kBitConversionInts[1]|1048576,g=JSBI.__kBitConversionInts[0];const h=20,i=31&c;let j,k=0;if(i<20){const a=h-i;k=a+32,j=f>>>a,f=f<<32-a|g>>>a,g<<=32-a}else if(i===20)k=32,j=f,f=g;else{const a=i-h;k=32-a,j=f<<a|g>>>32-a,f=g<<a}e.__setDigit(d-1,j);for(let b=d-2;0<=b;b--)0<k?(k-=32,j=f,f=g):j=0,e.__setDigit(b,j);return e.__trim()}static __iswhitespace(a){return!!(13>=a&&9<=a)||(159>=a?32==a:131071>=a?160==a||5760==a:196607>=a?(a&=131071,10>=a||40==a||41==a||47==a||95==a||4096==a):65279==a)}static __fromString(a,b=0){let c=0;const e=a.length;let f=0;if(f===e)return JSBI.__zero();let g=a.charCodeAt(f);for(;JSBI.__iswhitespace(g);){if(++f===e)return JSBI.__zero();g=a.charCodeAt(f)}if(43===g){if(++f===e)return null;g=a.charCodeAt(f),c=1}else if(45===g){if(++f===e)return null;g=a.charCodeAt(f),c=-1}if(0===b){if(b=10,48===g){if(++f===e)return JSBI.__zero();if(g=a.charCodeAt(f),88===g||120===g){if(b=16,++f===e)return null;g=a.charCodeAt(f)}else if(79===g||111===g){if(b=8,++f===e)return null;g=a.charCodeAt(f)}else if(66===g||98===g){if(b=2,++f===e)return null;g=a.charCodeAt(f)}}}else if(16===b&&48===g){if(++f===e)return JSBI.__zero();if(g=a.charCodeAt(f),88===g||120===g){if(++f===e)return null;g=a.charCodeAt(f)}}for(;48===g;){if(++f===e)return JSBI.__zero();g=a.charCodeAt(f)}const h=e-f;let i=JSBI.__kMaxBitsPerChar[b],j=JSBI.__kBitsPerCharTableMultiplier-1;if(h>1073741824/i)return null;const k=i*h+j>>>JSBI.__kBitsPerCharTableShift,l=new JSBI(k+31>>>5,!1),n=10>b?b:10,o=10<b?b-10:0;if(0==(b&b-1)){i>>=JSBI.__kBitsPerCharTableShift;const b=[],c=[];let d=!1;do{let h=0,j=0;for(;;){let b;if(g-48>>>0<n)b=g-48;else if((32|g)-97>>>0<o)b=(32|g)-87;else{d=!0;break}if(j+=i,h=h<<i|b,++f===e){d=!0;break}if(g=a.charCodeAt(f),32<j+i)break}b.push(h),c.push(j)}while(!d);JSBI.__fillFromParts(l,b,c)}else{l.__initializeDigits();let c=!1,h=0;do{let k=0,p=1;for(;;){let i;if(g-48>>>0<n)i=g-48;else if((32|g)-97>>>0<o)i=(32|g)-87;else{c=!0;break}const d=p*b;if(4294967295<d)break;if(p=d,k=k*b+i,h++,++f===e){c=!0;break}g=a.charCodeAt(f)}j=32*JSBI.__kBitsPerCharTableMultiplier-1;const q=i*h+j>>>JSBI.__kBitsPerCharTableShift+5;l.__inplaceMultiplyAdd(p,k,q)}while(!c)}for(;f!==e;){if(!JSBI.__iswhitespace(g))return null;g=a.charCodeAt(f++)}return 0!=c&&10!==b?null:(l.sign=-1==c,l.__trim())}static __fillFromParts(a,b,c){let d=0,e=0,f=0;for(let g=b.length-1;0<=g;g--){const h=b[g],i=c[g];e|=h<<f,f+=i,32===f?(a.__setDigit(d++,e),f=0,e=0):32<f&&(a.__setDigit(d++,e),f-=32,e=h>>>i-f)}if(0!==e){if(d>=a.length)throw new Error("implementation bug");a.__setDigit(d++,e)}for(;d<a.length;d++)a.__setDigit(d,0)}static __toStringBasePowerOfTwo(a,b){var c=Math.clz32;const d=a.length;let e=b-1;e=(85&e>>>1)+(85&e),e=(51&e>>>2)+(51&e),e=(15&e>>>4)+(15&e);const f=e,g=b-1,h=a.__digit(d-1),i=c(h);let j=0|(32*d-i+f-1)/f;if(a.sign&&j++,268435456<j)throw new Error("string too long");const k=Array(j);let l=j-1,m=0,n=0;for(let c=0;c<d-1;c++){const b=a.__digit(c),d=(m|b<<n)&g;k[l--]=JSBI.__kConversionChars[d];const e=f-n;for(m=b>>>e,n=32-e;n>=f;)k[l--]=JSBI.__kConversionChars[m&g],m>>>=f,n-=f}const o=(m|h<<n)&g;for(k[l--]=JSBI.__kConversionChars[o],m=h>>>f-n;0!==m;)k[l--]=JSBI.__kConversionChars[m&g],m>>>=f;if(a.sign&&(k[l--]="-"),-1!=l)throw new Error("implementation bug");return k.join("")}static __toStringGeneric(a,b,c){var d=Math.clz32;const e=a.length;if(0===e)return"";if(1===e){let d=a.__unsignedDigit(0).toString(b);return!1===c&&a.sign&&(d="-"+d),d}const f=32*e-d(a.__digit(e-1)),g=JSBI.__kMaxBitsPerChar[b],h=g-1;let i=f*JSBI.__kBitsPerCharTableMultiplier;i+=h-1,i=0|i/h;const j=i+1>>1,k=JSBI.exponentiate(JSBI.__oneDigit(b,!1),JSBI.__oneDigit(j,!1));let l,m;const n=k.__unsignedDigit(0);if(1===k.length&&65535>=n){l=new JSBI(a.length,!1),l.__initializeDigits();let c=0;for(let b=2*a.length-1;0<=b;b--){const d=c<<16|a.__halfDigit(b);l.__setHalfDigit(b,0|d/n),c=0|d%n}m=c.toString(b)}else{const c=JSBI.__absoluteDivLarge(a,k,!0,!0);l=c.quotient;const d=c.remainder.__trim();m=JSBI.__toStringGeneric(d,b,!0)}l.__trim();let o=JSBI.__toStringGeneric(l,b,!0);for(;m.length<j;)m="0"+m;return!1===c&&a.sign&&(o="-"+o),o+m}static __unequalSign(a){return a?-1:1}static __absoluteGreater(a){return a?-1:1}static __absoluteLess(a){return a?1:-1}static __compareToBigInt(a,b){const c=a.sign;if(c!==b.sign)return JSBI.__unequalSign(c);const d=JSBI.__absoluteCompare(a,b);return 0<d?JSBI.__absoluteGreater(c):0>d?JSBI.__absoluteLess(c):0}static __compareToNumber(a,b){if(b|!0){const c=a.sign,d=0>b;if(c!==d)return JSBI.__unequalSign(c);if(0===a.length){if(d)throw new Error("implementation bug");return 0===b?0:-1}if(1<a.length)return JSBI.__absoluteGreater(c);const e=Math.abs(b),f=a.__unsignedDigit(0);return f>e?JSBI.__absoluteGreater(c):f<e?JSBI.__absoluteLess(c):0}return JSBI.__compareToDouble(a,b)}static __compareToDouble(a,b){var c=Math.clz32;if(b!==b)return b;if(b===1/0)return-1;if(b===-Infinity)return 1;const d=a.sign;if(d!==0>b)return JSBI.__unequalSign(d);if(0===b)throw new Error("implementation bug: should be handled elsewhere");if(0===a.length)return-1;JSBI.__kBitConversionDouble[0]=b;const e=2047&JSBI.__kBitConversionInts[1]>>>20;if(2047==e)throw new Error("implementation bug: handled elsewhere");const f=e-1023;if(0>f)return JSBI.__absoluteGreater(d);const g=a.length;let h=a.__digit(g-1);const i=c(h),j=32*g-i,k=f+1;if(j<k)return JSBI.__absoluteLess(d);if(j>k)return JSBI.__absoluteGreater(d);let l=1048576|1048575&JSBI.__kBitConversionInts[1],m=JSBI.__kBitConversionInts[0];const n=20,o=31-i;if(o!==(j-1)%31)throw new Error("implementation bug");let p,q=0;if(20>o){const a=n-o;q=a+32,p=l>>>a,l=l<<32-a|m>>>a,m<<=32-a}else if(20===o)q=32,p=l,l=m;else{const a=o-n;q=32-a,p=l<<a|m>>>32-a,l=m<<a}if(h>>>=0,p>>>=0,h>p)return JSBI.__absoluteGreater(d);if(h<p)return JSBI.__absoluteLess(d);for(let c=g-2;0<=c;c--){0<q?(q-=32,p=l>>>0,l=m,m=0):p=0;const b=a.__unsignedDigit(c);if(b>p)return JSBI.__absoluteGreater(d);if(b<p)return JSBI.__absoluteLess(d)}if(0!==l||0!==m){if(0===q)throw new Error("implementation bug");return JSBI.__absoluteLess(d)}return 0}static __equalToNumber(a,b){var c=Math.abs;return b|0===b?0===b?0===a.length:1===a.length&&a.sign===0>b&&a.__unsignedDigit(0)===c(b):0===JSBI.__compareToDouble(a,b)}static __comparisonResultToBool(a,b){switch(b){case 0:return 0>a;case 1:return 0>=a;case 2:return 0<a;case 3:return 0<=a;}throw new Error("unreachable")}static __compare(a,b,c){if(a=JSBI.__toPrimitive(a),b=JSBI.__toPrimitive(b),"string"==typeof a&&"string"==typeof b)switch(c){case 0:return a<b;case 1:return a<=b;case 2:return a>b;case 3:return a>=b;}if(JSBI.__isBigInt(a)&&"string"==typeof b)return b=JSBI.__fromString(b),null!==b&&JSBI.__comparisonResultToBool(JSBI.__compareToBigInt(a,b),c);if("string"==typeof a&&JSBI.__isBigInt(b))return a=JSBI.__fromString(a),null!==a&&JSBI.__comparisonResultToBool(JSBI.__compareToBigInt(a,b),c);if(a=JSBI.__toNumeric(a),b=JSBI.__toNumeric(b),JSBI.__isBigInt(a)){if(JSBI.__isBigInt(b))return JSBI.__comparisonResultToBool(JSBI.__compareToBigInt(a,b),c);if("number"!=typeof b)throw new Error("implementation bug");return JSBI.__comparisonResultToBool(JSBI.__compareToNumber(a,b),c)}if("number"!=typeof a)throw new Error("implementation bug");if(JSBI.__isBigInt(b))return JSBI.__comparisonResultToBool(JSBI.__compareToNumber(b,a),2^c);if("number"!=typeof b)throw new Error("implementation bug");return 0===c?a<b:1===c?a<=b:2===c?a>b:3===c?a>=b:void 0}__clzmsd(){return Math.clz32(this[this.length-1])}static __absoluteAdd(a,b,c){if(a.length<b.length)return JSBI.__absoluteAdd(b,a,c);if(0===a.length)return a;if(0===b.length)return a.sign===c?a:JSBI.unaryMinus(a);let d=a.length;(0===a.__clzmsd()||b.length===a.length&&0===b.__clzmsd())&&d++;const e=new JSBI(d,c);let f=0,g=0;for(;g<b.length;g++){const c=b.__digit(g),d=a.__digit(g),h=(65535&d)+(65535&c)+f,i=(d>>>16)+(c>>>16)+(h>>>16);f=i>>>16,e.__setDigit(g,65535&h|i<<16)}for(;g<a.length;g++){const b=a.__digit(g),c=(65535&b)+f,d=(b>>>16)+(c>>>16);f=d>>>16,e.__setDigit(g,65535&c|d<<16)}return g<e.length&&e.__setDigit(g,f),e.__trim()}static __absoluteSub(a,b,c){if(0===a.length)return a;if(0===b.length)return a.sign===c?a:JSBI.unaryMinus(a);const d=new JSBI(a.length,c);let e=0,f=0;for(;f<b.length;f++){const c=a.__digit(f),g=b.__digit(f),h=(65535&c)-(65535&g)-e;e=1&h>>>16;const i=(c>>>16)-(g>>>16)-e;e=1&i>>>16,d.__setDigit(f,65535&h|i<<16)}for(;f<a.length;f++){const b=a.__digit(f),c=(65535&b)-e;e=1&c>>>16;const g=(b>>>16)-e;e=1&g>>>16,d.__setDigit(f,65535&c|g<<16)}return d.__trim()}static __absoluteAddOne(a,b,c=null){const d=a.length;null===c?c=new JSBI(d,b):c.sign=b;let e=!0;for(let f,g=0;g<d;g++){f=a.__digit(g);const b=-1===f;e&&(f=0|f+1),e=b,c.__setDigit(g,f)}return e&&c.__setDigitGrow(d,1),c}static __absoluteSubOne(a,b){const c=a.length;b=b||c;const d=new JSBI(b,!1);let e=!0;for(let f,g=0;g<c;g++){f=a.__digit(g);const b=0===f;e&&(f=0|f-1),e=b,d.__setDigit(g,f)}for(let e=c;e<b;e++)d.__setDigit(e,0);return d}static __absoluteAnd(a,b,c=null){let d=a.length,e=b.length,f=e;if(d<e){f=d;const c=a,g=d;a=b,d=e,b=c,e=g}let g=f;null===c?c=new JSBI(g,!1):g=c.length;let h=0;for(;h<f;h++)c.__setDigit(h,a.__digit(h)&b.__digit(h));for(;h<g;h++)c.__setDigit(h,0);return c}static __absoluteAndNot(a,b,c=null){const d=a.length,e=b.length;let f=e;d<e&&(f=d);let g=d;null===c?c=new JSBI(g,!1):g=c.length;let h=0;for(;h<f;h++)c.__setDigit(h,a.__digit(h)&~b.__digit(h));for(;h<d;h++)c.__setDigit(h,a.__digit(h));for(;h<g;h++)c.__setDigit(h,0);return c}static __absoluteOr(a,b,c=null){let d=a.length,e=b.length,f=e;if(d<e){f=d;const c=a,g=d;a=b,d=e,b=c,e=g}let g=d;null===c?c=new JSBI(g,!1):g=c.length;let h=0;for(;h<f;h++)c.__setDigit(h,a.__digit(h)|b.__digit(h));for(;h<d;h++)c.__setDigit(h,a.__digit(h));for(;h<g;h++)c.__setDigit(h,0);return c}static __absoluteXor(a,b,c=null){let d=a.length,e=b.length,f=e;if(d<e){f=d;const c=a,g=d;a=b,d=e,b=c,e=g}let g=d;null===c?c=new JSBI(g,!1):g=c.length;let h=0;for(;h<f;h++)c.__setDigit(h,a.__digit(h)^b.__digit(h));for(;h<d;h++)c.__setDigit(h,a.__digit(h));for(;h<g;h++)c.__setDigit(h,0);return c}static __absoluteCompare(a,b){const c=a.length-b.length;if(0!=c)return c;let d=a.length-1;for(;0<=d&&a.__digit(d)===b.__digit(d);)d--;return 0>d?0:a.__unsignedDigit(d)>b.__unsignedDigit(d)?1:-1}static __multiplyAccumulate(a,b,c,d){var e=Math.imul;if(0===b)return;const f=65535&b,g=b>>>16;let h=0,j=0,k=0;for(let l=0;l<a.length;l++,d++){let b=c.__digit(d),i=65535&b,m=b>>>16;const n=a.__digit(l),o=65535&n,p=n>>>16,q=e(o,f),r=e(o,g),s=e(p,f),t=e(p,g);i+=j+(65535&q),m+=k+h+(i>>>16)+(q>>>16)+(65535&r)+(65535&s),h=m>>>16,j=(r>>>16)+(s>>>16)+(65535&t)+h,h=j>>>16,j&=65535,k=t>>>16,b=65535&i|m<<16,c.__setDigit(d,b)}for(;0!=h||0!==j||0!==k;d++){let a=c.__digit(d);const b=(65535&a)+j,e=(a>>>16)+(b>>>16)+k+h;j=0,k=0,h=e>>>16,a=65535&b|e<<16,c.__setDigit(d,a)}}static __internalMultiplyAdd(a,b,c,d,e){var f=Math.imul;let g=c,h=0;for(let j=0;j<d;j++){const c=a.__digit(j),d=f(65535&c,b),i=(65535&d)+h+g;g=i>>>16;const k=f(c>>>16,b),l=(65535&k)+(d>>>16)+g;g=l>>>16,h=k>>>16,e.__setDigit(j,l<<16|65535&i)}if(e.length>d)for(e.__setDigit(d++,g+h);d<e.length;)e.__setDigit(d++,0);else if(0!==g+h)throw new Error("implementation bug")}__inplaceMultiplyAdd(a,b,c){var e=Math.imul;c>this.length&&(c=this.length);const f=65535&a,g=a>>>16;let h=0,j=65535&b,k=b>>>16;for(let l=0;l<c;l++){const a=this.__digit(l),b=65535&a,c=a>>>16,d=e(b,f),i=e(b,g),m=e(c,f),n=e(c,g),o=j+(65535&d),p=k+h+(o>>>16)+(d>>>16)+(65535&i)+(65535&m);j=(i>>>16)+(m>>>16)+(65535&n)+(p>>>16),h=j>>>16,j&=65535,k=n>>>16;this.__setDigit(l,65535&o|p<<16)}if(0!=h||0!==j||0!==k)throw new Error("implementation bug")}static __absoluteDivSmall(a,b,c){null===c&&(c=new JSBI(a.length,!1));let d=0;for(let e,f=2*a.length-1;0<=f;f-=2){e=(d<<16|a.__halfDigit(f))>>>0;const g=0|e/b;d=0|e%b,e=(d<<16|a.__halfDigit(f-1))>>>0;const h=0|e/b;d=0|e%b,c.__setDigit(f>>>1,g<<16|h)}return c}static __absoluteModSmall(a,b){let c=0;for(let d=2*a.length-1;0<=d;d--){const e=(c<<16|a.__halfDigit(d))>>>0;c=0|e%b}return c}static __absoluteDivLarge(a,b,d,e){var f=Math.imul;const g=b.__halfDigitLength(),h=b.length,c=a.__halfDigitLength()-g;let i=null;d&&(i=new JSBI(c+2>>>1,!1),i.__initializeDigits());const k=new JSBI(g+2>>>1,!1);k.__initializeDigits();const l=JSBI.__clz16(b.__halfDigit(g-1));0<l&&(b=JSBI.__specialLeftShift(b,l,0));const m=JSBI.__specialLeftShift(a,l,1),n=b.__halfDigit(g-1);let o=0;for(let l,p=c;0<=p;p--){l=65535;const a=m.__halfDigit(p+g);if(a!==n){const c=(a<<16|m.__halfDigit(p+g-1))>>>0;l=0|c/n;let d=0|c%n;const e=b.__halfDigit(g-2),h=m.__halfDigit(p+g-2);for(;f(l,e)>>>0>(d<<16|h)>>>0&&(l--,d+=n,!(65535<d)););}JSBI.__internalMultiplyAdd(b,l,0,h,k);let e=m.__inplaceSub(k,p);0!==e&&(e=m.__inplaceAdd(b,p),m.__setHalfDigit(p+g,m.__halfDigit(p+g)+e),l--),d&&(1&p?o=l<<16:i.__setDigit(p>>>1,o|l))}return e?(m.__inplaceRightShift(l),d?{quotient:i,remainder:m}:m):d?i:void 0}static __clz16(a){return Math.clz32(a)-16}__inplaceAdd(a,b){let c=0;const d=a.__halfDigitLength();for(let e=0;e<d;e++){const d=this.__halfDigit(b+e)+a.__halfDigit(e)+c;c=d>>>16,this.__setHalfDigit(b+e,d)}return c}__inplaceSub(a,b){let c=0;if(1&b){b>>=1;let d=this.__digit(b),e=65535&d,f=0;for(;f<a.length-1;f++){const g=a.__digit(f),h=(d>>>16)-(65535&g)-c;c=1&h>>>16,this.__setDigit(b+f,h<<16|65535&e),d=this.__digit(b+f+1),e=(65535&d)-(g>>>16)-c,c=1&e>>>16}const g=a.__digit(f),h=(d>>>16)-(65535&g)-c;c=1&h>>>16,this.__setDigit(b+f,h<<16|65535&e);const i=g>>>16;if(b+f+1>=this.length)throw new RangeError("out of bounds");d=this.__digit(b+f+1),(0!=i||0!==d)&&(e=(65535&d)-i-c,c=1&e>>>16,this.__setDigit(b+a.length,4294901760&d|65535&e))}else{b>>=1;for(let d=0;d<a.length;d++){const e=this.__digit(b+d),f=a.__digit(d),g=(65535&e)-(65535&f)-c;c=1&g>>>16;const h=(e>>>16)-(f>>>16)-c;c=1&h>>>16,this.__setDigit(b+d,h<<16|65535&g)}}return c}__inplaceRightShift(a){if(0===a)return;let b=this.__digit(0)>>>a;const c=this.length-1;for(let e=0;e<c;e++){const c=this.__digit(e+1);this.__setDigit(e,c<<32-a|b),b=c>>>a}this.__setDigit(c,b)}static __specialLeftShift(a,b,c){const d=a.length,e=new JSBI(d+c,!1);if(0===b){for(let b=0;b<d;b++)e.__setDigit(b,a.__digit(b));return 0<c&&e.__setDigit(d,0),e}let f=0;for(let g=0;g<d;g++){const c=a.__digit(g);e.__setDigit(g,c<<b|f),f=c>>>32-b}return 0<c&&e.__setDigit(d,f),e}static __leftShiftByAbsolute(a,b){const c=JSBI.__toShiftAmount(b);if(0>c)throw new RangeError("BigInt too big");const e=c>>>5,f=31&c,g=a.length,h=0!==f&&0!=a.__digit(g-1)>>>32-f,j=g+e+(h?1:0),k=new JSBI(j,a.sign);if(0===f){let b=0;for(;b<e;b++)k.__setDigit(b,0);for(;b<j;b++)k.__setDigit(b,a.__digit(b-e))}else{let b=0;for(let a=0;a<e;a++)k.__setDigit(a,0);for(let c=0;c<g;c++){const g=a.__digit(c);k.__setDigit(c+e,g<<f|b),b=g>>>32-f}if(h)k.__setDigit(g+e,b);else if(0!=b)throw new Error("implementation bug")}return k.__trim()}static __rightShiftByAbsolute(a,b){const c=a.length,d=a.sign,e=JSBI.__toShiftAmount(b);if(0>e)return JSBI.__rightShiftByMaximum(d);const f=e>>>5,g=31&e;let h=c-f;if(0>=h)return JSBI.__rightShiftByMaximum(d);let i=!1;if(d){if(0!=(a.__digit(f)&(1<<g)-1))i=!0;else for(let b=0;b<f;b++)if(0!==a.__digit(b)){i=!0;break}}if(i&&0===g){const b=a.__digit(c-1);0==~b&&h++}let j=new JSBI(h,d);if(0===g)for(let b=f;b<c;b++)j.__setDigit(b-f,a.__digit(b));else{let b=a.__digit(f)>>>g;const d=c-f-1;for(let c=0;c<d;c++){const e=a.__digit(c+f+1);j.__setDigit(c,e<<32-g|b),b=e>>>g}j.__setDigit(d,b)}return i&&(j=JSBI.__absoluteAddOne(j,!0,j)),j.__trim()}static __rightShiftByMaximum(a){return a?JSBI.__oneDigit(1,!0):JSBI.__zero()}static __toShiftAmount(a){if(1<a.length)return-1;const b=a.__unsignedDigit(0);return b>JSBI.__kMaxLengthBits?-1:b}static __toPrimitive(a,b="default"){if("object"!=typeof a)return a;if(a.constructor===JSBI)return a;const c=a[Symbol.toPrimitive];if(c){const a=c(b);if("object"!=typeof a)return a;throw new TypeError("Cannot convert object to primitive value")}const d=a.valueOf;if(d){const b=d.call(a);if("object"!=typeof b)return b}const e=a.toString;if(e){const b=e.call(a);if("object"!=typeof b)return b}throw new TypeError("Cannot convert object to primitive value")}static __toNumeric(a){return JSBI.__isBigInt(a)?a:+a}static __isBigInt(a){return"object"==typeof a&&a.constructor===JSBI}__digit(a){return this[a]}__unsignedDigit(a){return this[a]>>>0}__setDigit(a,b){this[a]=0|b}__setDigitGrow(a,b){this[a]=0|b}__halfDigitLength(){const a=this.length;return 65535>=this.__unsignedDigit(a-1)?2*a-1:2*a}__halfDigit(a){return 65535&this[a>>>1]>>>((1&a)<<4)}__setHalfDigit(a,b){const c=a>>>1,d=this.__digit(c),e=1&a?65535&d|b<<16:4294901760&d|65535&b;this.__setDigit(c,e)}static __digitPow(a,b){let c=1;for(;0<b;)1&b&&(c*=a),b>>>=1,a*=a;return c}}JSBI.__kMaxLength=33554432,JSBI.__kMaxLengthBits=JSBI.__kMaxLength<<5,JSBI.__kMaxBitsPerChar=[0,0,32,51,64,75,83,90,96,102,107,111,115,119,122,126,128,131,134,136,139,141,143,145,147,149,151,153,154,156,158,159,160,162,163,165,166],JSBI.__kBitsPerCharTableShift=5,JSBI.__kBitsPerCharTableMultiplier=1<<JSBI.__kBitsPerCharTableShift,JSBI.__kConversionChars=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"],JSBI.__kBitConversionBuffer=new ArrayBuffer(8),JSBI.__kBitConversionDouble=new Float64Array(JSBI.__kBitConversionBuffer),JSBI.__kBitConversionInts=new Int32Array(JSBI.__kBitConversionBuffer),module.exports=JSBI;

@@ -1,1 +0,1 @@

(function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.JSBigInt=b()})(this,function(){"use strict";var a=Math.imul,b=Math.abs,c=Math.clz32,d=Math.max;class e extends Array{constructor(a,b){if(a>e.__kMaxLength)throw new RangeError("Maximum BigInt size exceeded");super(a),this.sign=b}static BigInt(a){var b=Math.floor,c=Number.isFinite;if("number"==typeof a){if(0===a)return e.__zero();if((0|a)===a)return 0>a?e.__oneDigit(-a,!0):e.__oneDigit(a,!1);if(!c(a)||b(a)!==a)throw new RangeError("The number "+a+" cannot be converted to BigInt because it is not an integer");return e.__fromDouble(a)}if("string"==typeof a){const b=e.__fromString(a);if(null===b)throw new SyntaxError("Cannot convert "+a+" to a BigInt");return b}if("boolean"==typeof a)return!0===a?e.__oneDigit(1,!1):e.__zero();if("object"==typeof a){if(a.constructor===e)return a;const b=e.__toPrimitive(a);return e.BigInt(b)}throw new TypeError("Cannot convert "+a+" to a BigInt")}toDebugString(){const a=["BigInt["];for(const b of this)a.push((b?b.toString(16):b)+", ");return a.push("]"),a.join("")}toString(a=10){if(2>a||36<a)throw new RangeError("toString() radix argument must be between 2 and 36");return 0===this.length?"0":0==(a&a-1)?e.__toStringBasePowerOfTwo(this,a):e.__toStringGeneric(this,a,!1)}static toNumber(a){return e.__toNumber(a)}static unaryMinus(a){if(0===a.length)return a;const b=a.__copy();return b.sign=!a.sign,b}static bitwiseNot(a){return a.sign?e.__absoluteSubOne(a).__trim():e.__absoluteAddOne(a,!0)}static exponentiate(a,b){if(b.sign)throw new RangeError("Exponent must be positive");if(0===b.length)return e.__oneDigit(1,!1);if(0===a.length)return a;if(1===a.length&&1===a.__digit(0))return a.sign&&0==(1&b.__digit(0))?e.unaryMinus(a):a;if(1<b.length)throw new RangeError("BigInt too big");let c=b.__unsignedDigit(0);if(1===c)return a;if(c>=e.__kMaxLengthBits)throw new RangeError("BigInt too big");if(1===a.length&&2===a.__digit(0)){const b=1+(c>>>5),d=a.sign&&0!=(1&c),f=new e(b,d);f.__initializeDigits();const g=1<<(31&c);return f.__setDigit(b-1,g),f}let d=null,f=a;for(0!=(1&c)&&(d=a),c>>=1;0!==c;c>>=1)f=e.multiply(f,f),0!=(1&c)&&(null===d?d=f:d=e.multiply(d,f));return d}static multiply(a,b){if(0===a.length)return a;if(0===b.length)return b;let c=a.length+b.length;32<=a.__clzmsd()+b.__clzmsd()&&c--;const d=new e(c,a.sign!==b.sign);d.__initializeDigits();for(let c=0;c<a.length;c++)e.__multiplyAccumulate(b,a.__digit(c),d,c);return d.__trim()}static divide(a,b){if(0===b.length)throw new RangeError("Division by zero");if(0>e.__absoluteCompare(a,b))return e.__zero();const c=a.sign!==b.sign,d=b.__unsignedDigit(0);let f;if(1===b.length&&65535>=d){if(1===d)return c===a.sign?a:e.unaryMinus(a);f=e.__absoluteDivSmall(a,d,null)}else f=e.__absoluteDivLarge(a,b,!0,!1);return f.sign=c,f.__trim()}static remainder(a,b){if(0===b.length)throw new RangeError("Division by zero");if(0>e.__absoluteCompare(a,b))return a;const c=b.__unsignedDigit(0);if(1===b.length&&65535>=c){if(1===c)return e.__zero();const b=e.__absoluteModSmall(a,c);return 0===b?e.__zero():e.__oneDigit(b,a.sign)}const d=e.__absoluteDivLarge(a,b,!1,!0);return d.sign=a.sign,d.__trim()}static add(a,b){const c=a.sign;return c===b.sign?e.__absoluteAdd(a,b,c):0<=e.__absoluteCompare(a,b)?e.__absoluteSub(a,b,c):e.__absoluteSub(b,a,!c)}static subtract(a,b){const c=a.sign;return c===b.sign?0<=e.__absoluteCompare(a,b)?e.__absoluteSub(a,b,c):e.__absoluteSub(b,a,!c):e.__absoluteAdd(a,b,c)}static leftShift(a,b){return 0===b.length||0===a.length?a:b.sign?e.__rightShiftByAbsolute(a,b):e.__leftShiftByAbsolute(a,b)}static signedRightShift(a,b){return 0===b.length||0===a.length?a:b.sign?e.__leftShiftByAbsolute(a,b):e.__rightShiftByAbsolute(a,b)}static unsignedRightShift(){throw new TypeError("BigInts have no unsigned right shift; use >> instead")}static lessThan(a,b){return 0>e.__compareToBigInt(a,b)}static lessThanOrEqual(a,b){return 0>=e.__compareToBigInt(a,b)}static greaterThan(a,b){return 0<e.__compareToBigInt(a,b)}static greaterThanOrEqual(a,b){return 0<=e.__compareToBigInt(a,b)}static equal(a,b){if(a.sign!==b.sign)return!1;if(a.length!==b.length)return!1;for(let c=0;c<a.length;c++)if(a.__digit(c)!==b.__digit(c))return!1;return!0}static bitwiseAnd(a,b){if(!a.sign&&!b.sign)return e.__absoluteAnd(a,b).__trim();if(a.sign&&b.sign){const c=d(a.length,b.length)+1;let f=e.__absoluteSubOne(a,c);const g=e.__absoluteSubOne(b);return f=e.__absoluteOr(f,g,f),e.__absoluteAddOne(f,!0,f).__trim()}return a.sign&&([a,b]=[b,a]),e.__absoluteAndNot(a,e.__absoluteSubOne(b)).__trim()}static bitwiseXor(a,b){if(!a.sign&&!b.sign)return e.__absoluteXor(a,b).__trim();if(a.sign&&b.sign){const c=d(a.length,b.length),f=e.__absoluteSubOne(a,c),g=e.__absoluteSubOne(b);return e.__absoluteXor(f,g,f).__trim()}const c=d(a.length,b.length)+1;a.sign&&([a,b]=[b,a]);let f=e.__absoluteSubOne(b,c);return f=e.__absoluteXor(f,a,f),e.__absoluteAddOne(f,!0,f).__trim()}static bitwiseOr(a,b){const c=d(a.length,b.length);if(!a.sign&&!b.sign)return e.__absoluteOr(a,b).__trim();if(a.sign&&b.sign){let d=e.__absoluteSubOne(a,c);const f=e.__absoluteSubOne(b);return d=e.__absoluteAnd(d,f,d),e.__absoluteAddOne(d,!0,d).__trim()}a.sign&&([a,b]=[b,a]);let f=e.__absoluteSubOne(b,c);return f=e.__absoluteAndNot(f,a,f),e.__absoluteAddOne(f,!0,f).__trim()}static ADD(a,b){if(a=e.__toPrimitive(a),b=e.__toPrimitive(b),"string"==typeof a)return"string"!=typeof b&&(b=b.toString()),a+b;if("string"==typeof b)return a.toString()+b;if(a=e.__toNumeric(a),b=e.__toNumeric(b),e.__isBigInt(a)&&e.__isBigInt(b))return e.add(a,b);if("number"==typeof a&&"number"==typeof b)return a+b;throw new TypeError("Cannot mix BigInt and other types, use explicit conversions")}static LT(a,b){return e.__compare(a,b,0)}static LE(a,b){return e.__compare(a,b,1)}static GT(a,b){return e.__compare(a,b,2)}static GE(a,b){return e.__compare(a,b,3)}static EQ(a,b){for(;;){if(e.__isBigInt(a))return e.__isBigInt(b)?e.equal(a,b):e.EQ(b,a);if("number"==typeof a){if(e.__isBigInt(b))return e.__equalToNumber(b,a);if("object"!=typeof b)return a==b;b=e.__toPrimitive(b)}else if("string"==typeof a){if(e.__isBigInt(b))return a=e.__fromString(a),null!==a&&e.equal(a,b);if("object"!=typeof b)return a==b;b=e.__toPrimitive(b)}else if("boolean"==typeof a){if(e.__isBigInt(b))return e.__equalToNumber(b,+a);if("object"!=typeof b)return a==b;b=e.__toPrimitive(b)}else if("symbol"==typeof a){if(e.__isBigInt(b))return!1;if("object"!=typeof b)return a==b;b=e.__toPrimitive(b)}else if("object"==typeof a){if("object"==typeof b&&b.constructor!==e)return a==b;a=e.__toPrimitive(a)}else return a==b}}static useNativeBigIntsIfAvailable(){if("function"==typeof BigInt){if(BigInt===e.BigInt)throw new Error("This method must be called *before* `BigInt = JSBI.BigInt`!");e.BigInt=function(a){return new e(0,BigInt(a))},e.unaryMinus=function(a){return new e(0,-a.sign)},e.bitwiseNot=function(a){return new e(0,~a.sign)},e.exponentiate=function(a,b){return new e(0,a.sign**b.sign)},e.multiply=function(a,b){return new e(0,a.sign*b.sign)},e.divide=function(a,b){return new e(0,a.sign/b.sign)},e.remainder=function(a,b){return new e(0,a.sign%b.sign)},e.add=function(a,b){return new e(0,a.sign+b.sign)},e.subtract=function(a,b){return new e(0,a.sign-b.sign)},e.leftShift=function(a,b){return new e(0,a.sign<<b.sign)},e.signedRightShift=function(a,b){return new e(0,a.sign>>b.sign)},e.lessThan=function(a,b){return a.sign<b.sign},e.equal=function(a,b){return a.sign===b.sign},e.bitwiseAnd=function(a,b){return new e(0,a.sign&b.sign)},e.bitwiseXor=function(a,b){return new e(0,a.sign^b.sign)},e.bitwiseOr=function(a,b){return new e(0,a.sign|b.sign)},e.toString=function(a){return this.sign.toString(a)},e.toNumber=function(a){return+a.sign},e.ADD=function(a,b){e.__isBigInt(a)&&(a=a.sign),e.__isBigInt(b)&&(b=b.sign);const c=a+b;return"bigint"==typeof c?new e(0,c):c},e.LT=function(a,b){return a<b},e.LE=function(a,b){return a<=b},e.GT=function(a,b){return a>b},e.GE=function(a,b){return a>=b},e.EQ=function(a,b){return a==b}}}static __zero(){return new e(0,!1)}static __oneDigit(a,b){const c=new e(1,b);return c.__setDigit(0,a),c}__copy(){const a=new e(this.length,this.sign);for(let b=0;b<this.length;b++)a[b]=this[b];return a}__trim(){let a=this.length,b=this[a-1];for(;0===b;)a--,b=this[a-1],this.pop();return 0===a&&(this.sign=!1),this}__initializeDigits(){for(let a=0;a<this.length;a++)this[a]=0}static __toNumber(a){const b=a.length;if(0===b)return 0;if(1===b){const b=a.__unsignedDigit(0);return a.sign?-b:b}const d=a.__digit(b-1),f=c(d),g=32*b-f;if(1024<g)return a.sign?-Infinity:1/0;let h=g-1,i=d,j=b-1;const k=f+1;let l=32===k?0:i<<k;l>>>=12;const m=k-12;let n=12<=k?0:i<<20+k,o=20+k;0<m&&0<j&&(j--,i=a.__digit(j),l|=i>>>32-m,n=i<<m,o=m),0<o&&0<j&&(j--,i=a.__digit(j),n|=i>>>32-o,o-=32);const p=e.__decideRounding(a,o,j,i);if((1===p||0===p&&1==(1&n))&&(n=n+1>>>0,0==n&&(l++,0!=l>>>20&&(l=0,h++,1023<h))))return a.sign?-Infinity:1/0;const q=a.sign?-2147483648:0;return h=h+1023<<20,e.__kBitConversionInts[1]=q|h|l,e.__kBitConversionInts[0]=n,e.__kBitConversionDouble[0]}static __decideRounding(a,b,c,d){if(0<b)return-1;let e;if(0>b)e=-b-1;else{if(0===c)return-1;c--,d=a.__digit(c),e=31}let f=1<<e;if(0==(d&f))return-1;if(f-=1,0!=(d&f))return 1;for(;0<c;)if(c--,0!==a.__digit(c))return 1;return 0}static __fromDouble(a){e.__kBitConversionDouble[0]=a;const b=2047&e.__kBitConversionInts[1]>>>20,c=b-1023,d=(c>>>5)+1,f=new e(d,0>a);let g=1048575&e.__kBitConversionInts[1]|1048576,h=e.__kBitConversionInts[0];const i=20,j=31&c;let k,l=0;if(20>j){const a=i-j;l=a+32,k=g>>>a,g=g<<32-a|h>>>a,h<<=32-a}else if(20===j)l=32,k=g,g=h;else{const a=j-i;l=32-a,k=g<<a|h>>>32-a,g=h<<a}f.__setDigit(d-1,k);for(let b=d-2;0<=b;b--)0<l?(l-=32,k=g,g=h):k=0,f.__setDigit(b,k);return f.__trim()}static __iswhitespace(a){return!!(13>=a&&9<=a)||(159>=a?32==a:131071>=a?160==a||5760==a:196607>=a?(a&=131071,10>=a||40==a||41==a||47==a||95==a||4096==a):65279==a)}static __fromString(a,b=0){let c=0;const f=a.length;let g=0;if(g===f)return e.__zero();let h=a.charCodeAt(g);for(;e.__iswhitespace(h);){if(++g===f)return e.__zero();h=a.charCodeAt(g)}if(43===h){if(++g===f)return null;h=a.charCodeAt(g),c=1}else if(45===h){if(++g===f)return null;h=a.charCodeAt(g),c=-1}if(0===b){if(b=10,48===h){if(++g===f)return e.__zero();if(h=a.charCodeAt(g),88===h||120===h){if(b=16,++g===f)return null;h=a.charCodeAt(g)}else if(79===h||111===h){if(b=8,++g===f)return null;h=a.charCodeAt(g)}else if(66===h||98===h){if(b=2,++g===f)return null;h=a.charCodeAt(g)}}}else if(16===b&&48===h){if(++g===f)return e.__zero();if(h=a.charCodeAt(g),88===h||120===h){if(++g===f)return null;h=a.charCodeAt(g)}}for(;48===h;){if(++g===f)return e.__zero();h=a.charCodeAt(g)}const i=f-g;let j=e.__kMaxBitsPerChar[b],k=e.__kBitsPerCharTableMultiplier-1;if(i>1073741824/j)return null;const l=j*i+k>>>e.__kBitsPerCharTableShift,m=new e(l+31>>>5,!1),n=10>b?b:10,o=10<b?b-10:0;if(0==(b&b-1)){j>>=e.__kBitsPerCharTableShift;const b=[],c=[];let d=!1;do{let e=0,i=0;for(;;){let b;if(h-48>>>0<n)b=h-48;else if((32|h)-97>>>0<o)b=(32|h)-87;else{d=!0;break}if(i+=j,e=e<<j|b,++g===f){d=!0;break}if(h=a.charCodeAt(g),32<i+j)break}b.push(e),c.push(i)}while(!d);e.__fillFromParts(m,b,c)}else{m.__initializeDigits();let c=!1,i=0;do{let l=0,p=1;for(;;){let e;if(h-48>>>0<n)e=h-48;else if((32|h)-97>>>0<o)e=(32|h)-87;else{c=!0;break}const d=p*b;if(4294967295<d)break;if(p=d,l=l*b+e,i++,++g===f){c=!0;break}h=a.charCodeAt(g)}k=32*e.__kBitsPerCharTableMultiplier-1;const q=j*i+k>>>e.__kBitsPerCharTableShift+5;m.__inplaceMultiplyAdd(p,l,q)}while(!c)}for(;g!==f;){if(!e.__iswhitespace(h))return null;h=a.charCodeAt(g++)}return 0!=c&&10!==b?null:(m.sign=-1==c,m.__trim())}static __fillFromParts(a,b,c){let d=0,e=0,f=0;for(let g=b.length-1;0<=g;g--){const h=b[g],i=c[g];e|=h<<f,f+=i,32===f?(a.__setDigit(d++,e),f=0,e=0):32<f&&(a.__setDigit(d++,e),f-=32,e=h>>>i-f)}if(0!==e){if(d>=a.length)throw new Error("implementation bug");a.__setDigit(d++,e)}for(;d<a.length;d++)a.__setDigit(d,0)}static __toStringBasePowerOfTwo(a,b){const d=a.length;let f=b-1;f=(85&f>>>1)+(85&f),f=(51&f>>>2)+(51&f),f=(15&f>>>4)+(15&f);const g=f,h=b-1,i=a.__digit(d-1),j=c(i);let k=0|(32*d-j+g-1)/g;if(a.sign&&k++,268435456<k)throw new Error("string too long");const l=Array(k);let m=k-1,n=0,o=0;for(let c=0;c<d-1;c++){const b=a.__digit(c),d=(n|b<<o)&h;l[m--]=e.__kConversionChars[d];const f=g-o;for(n=b>>>f,o=32-f;o>=g;)l[m--]=e.__kConversionChars[n&h],n>>>=g,o-=g}const p=(n|i<<o)&h;for(l[m--]=e.__kConversionChars[p],n=i>>>g-o;0!==n;)l[m--]=e.__kConversionChars[n&h],n>>>=g;if(a.sign&&(l[m--]="-"),-1!=m)throw new Error("implementation bug");return l.join("")}static __toStringGeneric(a,b,d){const f=a.length;if(0===f)return"";if(1===f){let c=a.__unsignedDigit(0).toString(b);return!1===d&&a.sign&&(c="-"+c),c}const g=32*f-c(a.__digit(f-1)),h=e.__kMaxBitsPerChar[b],i=h-1;let j=g*e.__kBitsPerCharTableMultiplier;j+=i-1,j=0|j/i;const k=j+1>>1,l=e.exponentiate(e.__oneDigit(b,!1),e.__oneDigit(k,!1));let m,n;const o=l.__unsignedDigit(0);if(1===l.length&&65535>=o){m=new e(a.length,!1),m.__initializeDigits();let c=0;for(let b=2*a.length-1;0<=b;b--){const d=c<<16|a.__halfDigit(b);m.__setHalfDigit(b,0|d/o),c=0|d%o}n=c.toString(b)}else{const c=e.__absoluteDivLarge(a,l,!0,!0);m=c.quotient;const d=c.remainder.__trim();n=e.__toStringGeneric(d,b,!0)}m.__trim();let p=e.__toStringGeneric(m,b,!0);for(;n.length<k;)n="0"+n;return!1===d&&a.sign&&(p="-"+p),p+n}static __unequalSign(a){return a?-1:1}static __absoluteGreater(a){return a?-1:1}static __absoluteLess(a){return a?1:-1}static __compareToBigInt(a,b){const c=a.sign;if(c!==b.sign)return e.__unequalSign(c);const d=e.__absoluteCompare(a,b);return 0<d?e.__absoluteGreater(c):0>d?e.__absoluteLess(c):0}static __compareToNumber(a,c){if(!0|c){const d=a.sign,f=0>c;if(d!==f)return e.__unequalSign(d);if(0===a.length){if(f)throw new Error("implementation bug");return 0===c?0:-1}if(1<a.length)return e.__absoluteGreater(d);const g=b(c),h=a.__unsignedDigit(0);return h>g?e.__absoluteGreater(d):h<g?e.__absoluteLess(d):0}return e.__compareToDouble(a,c)}static __compareToDouble(a,b){if(b!==b)return b;if(b===1/0)return-1;if(b===-Infinity)return 1;const d=a.sign;if(d!==0>b)return e.__unequalSign(d);if(0===b)throw new Error("implementation bug: should be handled elsewhere");if(0===a.length)return-1;e.__kBitConversionDouble[0]=b;const f=2047&e.__kBitConversionInts[1]>>>20;if(2047==f)throw new Error("implementation bug: handled elsewhere");const g=f-1023;if(0>g)return e.__absoluteGreater(d);const h=a.length;let i=a.__digit(h-1);const j=c(i),k=32*h-j,l=g+1;if(k<l)return e.__absoluteLess(d);if(k>l)return e.__absoluteGreater(d);let m=1048576|1048575&e.__kBitConversionInts[1],n=e.__kBitConversionInts[0];const o=20,p=31-j;if(p!==(k-1)%31)throw new Error("implementation bug");let q,r=0;if(20>p){const a=o-p;r=a+32,q=m>>>a,m=m<<32-a|n>>>a,n<<=32-a}else if(20===p)r=32,q=m,m=n;else{const a=p-o;r=32-a,q=m<<a|n>>>32-a,m=n<<a}if(i>>>=0,q>>>=0,i>q)return e.__absoluteGreater(d);if(i<q)return e.__absoluteLess(d);for(let c=h-2;0<=c;c--){0<r?(r-=32,q=m>>>0,m=n,n=0):q=0;const b=a.__unsignedDigit(c);if(b>q)return e.__absoluteGreater(d);if(b<q)return e.__absoluteLess(d)}if(0!==m||0!==n){if(0===r)throw new Error("implementation bug");return e.__absoluteLess(d)}return 0}static __equalToNumber(a,c){return c|0===c?0===c?0===a.length:1===a.length&&a.sign===0>c&&a.__unsignedDigit(0)===b(c):0===e.__compareToDouble(a,c)}static __comparisonResultToBool(a,b){switch(b){case 0:return 0>a;case 1:return 0>=a;case 2:return 0<a;case 3:return 0<=a;}throw new Error("unreachable")}static __compare(a,b,c){if(a=e.__toPrimitive(a),b=e.__toPrimitive(b),"string"==typeof a&&"string"==typeof b)switch(c){case 0:return a<b;case 1:return a<=b;case 2:return a>b;case 3:return a>=b;}if(e.__isBigInt(a)&&"string"==typeof b)return b=e.__fromString(b),null!==b&&e.__comparisonResultToBool(e.__compareToBigInt(a,b),c);if("string"==typeof a&&e.__isBigInt(b))return a=e.__fromString(a),null!==a&&e.__comparisonResultToBool(e.__compareToBigInt(a,b),c);if(a=e.__toNumeric(a),b=e.__toNumeric(b),e.__isBigInt(a)){if(e.__isBigInt(b))return e.__comparisonResultToBool(e.__compareToBigInt(a,b),c);if("number"!=typeof b)throw new Error("implementation bug");return e.__comparisonResultToBool(e.__compareToNumber(a,b),c)}if("number"!=typeof a)throw new Error("implementation bug");if(e.__isBigInt(b))return e.__comparisonResultToBool(e.__compareToNumber(b,a),2^c);if("number"!=typeof b)throw new Error("implementation bug");return 0===c?a<b:1===c?a<=b:2===c?a>b:3===c?a>=b:void 0}__clzmsd(){return c(this[this.length-1])}static __absoluteAdd(a,b,c){if(a.length<b.length)return e.__absoluteAdd(b,a,c);if(0===a.length)return a;if(0===b.length)return a.sign===c?a:e.unaryMinus(a);let d=a.length;(0===a.__clzmsd()||b.length===a.length&&0===b.__clzmsd())&&d++;const f=new e(d,c);let g=0,h=0;for(;h<b.length;h++){const c=b.__digit(h),d=a.__digit(h),e=(65535&d)+(65535&c)+g,i=(d>>>16)+(c>>>16)+(e>>>16);g=i>>>16,f.__setDigit(h,65535&e|i<<16)}for(;h<a.length;h++){const b=a.__digit(h),c=(65535&b)+g,d=(b>>>16)+(c>>>16);g=d>>>16,f.__setDigit(h,65535&c|d<<16)}return h<f.length&&f.__setDigit(h,g),f.__trim()}static __absoluteSub(a,b,c){if(0===a.length)return a;if(0===b.length)return a.sign===c?a:e.unaryMinus(a);const d=new e(a.length,c);let f=0,g=0;for(;g<b.length;g++){const c=a.__digit(g),e=b.__digit(g),h=(65535&c)-(65535&e)-f;f=1&h>>>16;const i=(c>>>16)-(e>>>16)-f;f=1&i>>>16,d.__setDigit(g,65535&h|i<<16)}for(;g<a.length;g++){const b=a.__digit(g),c=(65535&b)-f;f=1&c>>>16;const e=(b>>>16)-f;f=1&e>>>16,d.__setDigit(g,65535&c|e<<16)}return d.__trim()}static __absoluteAddOne(a,b,c=null){const d=a.length;null===c?c=new e(d,b):c.sign=b;let f=!0;for(let e,g=0;g<d;g++){e=a.__digit(g);const b=-1===e;f&&(e=0|e+1),f=b,c.__setDigit(g,e)}return f&&c.__setDigitGrow(d,1),c}static __absoluteSubOne(a,b){const c=a.length;b=b||c;const d=new e(b,!1);let f=!0;for(let e,g=0;g<c;g++){e=a.__digit(g);const b=0===e;f&&(e=0|e-1),f=b,d.__setDigit(g,e)}for(let e=c;e<b;e++)d.__setDigit(e,0);return d}static __absoluteAnd(a,b,c=null){let d=a.length,f=b.length,g=f;if(d<f){g=d;const c=a,e=d;a=b,d=f,b=c,f=e}let h=g;null===c?c=new e(h,!1):h=c.length;let j=0;for(;j<g;j++)c.__setDigit(j,a.__digit(j)&b.__digit(j));for(;j<h;j++)c.__setDigit(j,0);return c}static __absoluteAndNot(a,b,c=null){const d=a.length,f=b.length;let g=f;d<f&&(g=d);let h=d;null===c?c=new e(h,!1):h=c.length;let j=0;for(;j<g;j++)c.__setDigit(j,a.__digit(j)&~b.__digit(j));for(;j<d;j++)c.__setDigit(j,a.__digit(j));for(;j<h;j++)c.__setDigit(j,0);return c}static __absoluteOr(a,b,c=null){let d=a.length,f=b.length,g=f;if(d<f){g=d;const c=a,e=d;a=b,d=f,b=c,f=e}let h=d;null===c?c=new e(h,!1):h=c.length;let j=0;for(;j<g;j++)c.__setDigit(j,a.__digit(j)|b.__digit(j));for(;j<d;j++)c.__setDigit(j,a.__digit(j));for(;j<h;j++)c.__setDigit(j,0);return c}static __absoluteXor(a,b,c=null){let d=a.length,f=b.length,g=f;if(d<f){g=d;const c=a,e=d;a=b,d=f,b=c,f=e}let h=d;null===c?c=new e(h,!1):h=c.length;let j=0;for(;j<g;j++)c.__setDigit(j,a.__digit(j)^b.__digit(j));for(;j<d;j++)c.__setDigit(j,a.__digit(j));for(;j<h;j++)c.__setDigit(j,0);return c}static __absoluteCompare(a,b){const c=a.length-b.length;if(0!=c)return c;let d=a.length-1;for(;0<=d&&a.__digit(d)===b.__digit(d);)d--;return 0>d?0:a.__unsignedDigit(d)>b.__unsignedDigit(d)?1:-1}static __multiplyAccumulate(b,c,d,e){if(0===c)return;const f=65535&c,g=c>>>16;let h=0,j=0,k=0;for(let l=0;l<b.length;l++,e++){let c=d.__digit(e),i=65535&c,m=c>>>16;const n=b.__digit(l),o=65535&n,p=n>>>16,q=a(o,f),r=a(o,g),s=a(p,f),t=a(p,g);i+=j+(65535&q),m+=k+h+(i>>>16)+(q>>>16)+(65535&r)+(65535&s),h=m>>>16,j=(r>>>16)+(s>>>16)+(65535&t)+h,h=j>>>16,j&=65535,k=t>>>16,c=65535&i|m<<16,d.__setDigit(e,c)}for(;0!=h||0!==j||0!==k;e++){let a=d.__digit(e);const b=(65535&a)+j,c=(a>>>16)+(b>>>16)+k+h;j=0,k=0,h=c>>>16,a=65535&b|c<<16,d.__setDigit(e,a)}}static __internalMultiplyAdd(b,c,d,e,f){let g=d,h=0;for(let j=0;j<e;j++){const d=b.__digit(j),e=a(65535&d,c),i=(65535&e)+h+g;g=i>>>16;const k=a(d>>>16,c),l=(65535&k)+(e>>>16)+g;g=l>>>16,h=k>>>16,f.__setDigit(j,l<<16|65535&i)}if(f.length>e)for(f.__setDigit(e++,g+h);e<f.length;)f.__setDigit(e++,0);else if(0!==g+h)throw new Error("implementation bug")}__inplaceMultiplyAdd(b,c,d){d>this.length&&(d=this.length);const e=65535&b,f=b>>>16;let g=0,h=65535&c,j=c>>>16;for(let k=0;k<d;k++){const b=this.__digit(k),c=65535&b,d=b>>>16,i=a(c,e),l=a(c,f),m=a(d,e),n=a(d,f),o=h+(65535&i),p=j+g+(o>>>16)+(i>>>16)+(65535&l)+(65535&m);h=(l>>>16)+(m>>>16)+(65535&n)+(p>>>16),g=h>>>16,h&=65535,j=n>>>16;this.__setDigit(k,65535&o|p<<16)}if(0!=g||0!==h||0!==j)throw new Error("implementation bug")}static __absoluteDivSmall(a,b,c){null===c&&(c=new e(a.length,!1));let d=0;for(let e,f=2*a.length-1;0<=f;f-=2){e=(d<<16|a.__halfDigit(f))>>>0;const g=0|e/b;d=0|e%b,e=(d<<16|a.__halfDigit(f-1))>>>0;const h=0|e/b;d=0|e%b,c.__setDigit(f>>>1,g<<16|h)}return c}static __absoluteModSmall(a,b){let c=0;for(let d=2*a.length-1;0<=d;d--){const e=(c<<16|a.__halfDigit(d))>>>0;c=0|e%b}return c}static __absoluteDivLarge(b,d,f,g){const h=d.__halfDigitLength(),i=d.length,c=b.__halfDigitLength()-h;let k=null;f&&(k=new e(c+2>>>1,!1),k.__initializeDigits());const l=new e(h+2>>>1,!1);l.__initializeDigits();const m=e.__clz16(d.__halfDigit(h-1));0<m&&(d=e.__specialLeftShift(d,m,0));const n=e.__specialLeftShift(b,m,1),o=d.__halfDigit(h-1);let p=0;for(let m,q=c;0<=q;q--){m=65535;const b=n.__halfDigit(q+h);if(b!==o){const c=(b<<16|n.__halfDigit(q+h-1))>>>0;m=0|c/o;let e=0|c%o;const f=d.__halfDigit(h-2),g=n.__halfDigit(q+h-2);for(;a(m,f)>>>0>(e<<16|g)>>>0&&(m--,e+=o,!(65535<e)););}e.__internalMultiplyAdd(d,m,0,i,l);let g=n.__inplaceSub(l,q);0!==g&&(g=n.__inplaceAdd(d,q),n.__setHalfDigit(q+h,n.__halfDigit(q+h)+g),m--),f&&(1&q?p=m<<16:k.__setDigit(q>>>1,p|m))}return g?(n.__inplaceRightShift(m),f?{quotient:k,remainder:n}:n):f?k:void 0}static __clz16(a){return c(a)-16}__inplaceAdd(a,b){let c=0;const d=a.__halfDigitLength();for(let e=0;e<d;e++){const d=this.__halfDigit(b+e)+a.__halfDigit(e)+c;c=d>>>16,this.__setHalfDigit(b+e,d)}return c}__inplaceSub(a,b){let c=0;if(1&b){b>>=1;let d=this.__digit(b),e=65535&d,f=0;for(;f<a.length-1;f++){const g=a.__digit(f),h=(d>>>16)-(65535&g)-c;c=1&h>>>16,this.__setDigit(b+f,h<<16|65535&e),d=this.__digit(b+f+1),e=(65535&d)-(g>>>16)-c,c=1&e>>>16}const g=a.__digit(f),h=(d>>>16)-(65535&g)-c;c=1&h>>>16,this.__setDigit(b+f,h<<16|65535&e);const i=g>>>16;if(b+f+1>=this.length)throw new RangeError("out of bounds");d=this.__digit(b+f+1),(0!=i||0!==d)&&(e=(65535&d)-i-c,c=1&e>>>16,this.__setDigit(b+a.length,4294901760&d|65535&e))}else{b>>=1;for(let d=0;d<a.length;d++){const e=this.__digit(b+d),f=a.__digit(d),g=(65535&e)-(65535&f)-c;c=1&g>>>16;const h=(e>>>16)-(f>>>16)-c;c=1&h>>>16,this.__setDigit(b+d,h<<16|65535&g)}}return c}__inplaceRightShift(a){if(0===a)return;let b=this.__digit(0)>>>a;const c=this.length-1;for(let e=0;e<c;e++){const c=this.__digit(e+1);this.__setDigit(e,c<<32-a|b),b=c>>>a}this.__setDigit(c,b)}static __specialLeftShift(a,b,c){const d=a.length,f=new e(d+c,!1);if(0===b){for(let b=0;b<d;b++)f.__setDigit(b,a.__digit(b));return 0<c&&f.__setDigit(d,0),f}let g=0;for(let e=0;e<d;e++){const c=a.__digit(e);f.__setDigit(e,c<<b|g),g=c>>>32-b}return 0<c&&f.__setDigit(d,g),f}static __leftShiftByAbsolute(a,b){const c=e.__toShiftAmount(b);if(0>c)throw new RangeError("BigInt too big");const f=c>>>5,g=31&c,h=a.length,i=0!==g&&0!=a.__digit(h-1)>>>32-g,j=h+f+(i?1:0),k=new e(j,a.sign);if(0===g){let b=0;for(;b<f;b++)k.__setDigit(b,0);for(;b<j;b++)k.__setDigit(b,a.__digit(b-f))}else{let b=0;for(let a=0;a<f;a++)k.__setDigit(a,0);for(let c=0;c<h;c++){const e=a.__digit(c);k.__setDigit(c+f,e<<g|b),b=e>>>32-g}if(i)k.__setDigit(h+f,b);else if(0!=b)throw new Error("implementation bug")}return k.__trim()}static __rightShiftByAbsolute(a,b){const c=a.length,d=a.sign,f=e.__toShiftAmount(b);if(0>f)return e.__rightShiftByMaximum(d);const g=f>>>5,h=31&f;let i=c-g;if(0>=i)return e.__rightShiftByMaximum(d);let j=!1;if(d){if(0!=(a.__digit(g)&(1<<h)-1))j=!0;else for(let b=0;b<g;b++)if(0!==a.__digit(b)){j=!0;break}}if(j&&0===h){const b=a.__digit(c-1);0==~b&&i++}let k=new e(i,d);if(0===h)for(let b=g;b<c;b++)k.__setDigit(b-g,a.__digit(b));else{let b=a.__digit(g)>>>h;const d=c-g-1;for(let c=0;c<d;c++){const e=a.__digit(c+g+1);k.__setDigit(c,e<<32-h|b),b=e>>>h}k.__setDigit(d,b)}return j&&(k=e.__absoluteAddOne(k,!0,k)),k.__trim()}static __rightShiftByMaximum(a){return a?e.__oneDigit(1,!0):e.__zero()}static __toShiftAmount(a){if(1<a.length)return-1;const b=a.__unsignedDigit(0);return b>e.__kMaxLengthBits?-1:b}static __toPrimitive(a,b="default"){if("object"!=typeof a)return a;if(a.constructor===e)return a;const c=a[Symbol.toPrimitive];if(c){const a=c(b);if("object"!=typeof a)return a;throw new TypeError("Cannot convert object to primitive value")}const d=a.valueOf;if(d){const b=d.call(a);if("object"!=typeof b)return b}const f=a.toString;if(f){const b=f.call(a);if("object"!=typeof b)return b}throw new TypeError("Cannot convert object to primitive value")}static __toNumeric(a){return e.__isBigInt(a)?a:+a}static __isBigInt(a){return"object"==typeof a&&a.constructor===e}__digit(a){return this[a]}__unsignedDigit(a){return this[a]>>>0}__setDigit(a,b){this[a]=0|b}__setDigitGrow(a,b){this[a]=0|b}__halfDigitLength(){const a=this.length;return 65535>=this.__unsignedDigit(a-1)?2*a-1:2*a}__halfDigit(a){return 65535&this[a>>>1]>>>((1&a)<<4)}__setHalfDigit(a,b){const c=a>>>1,d=this.__digit(c),e=1&a?65535&d|b<<16:4294901760&d|65535&b;this.__setDigit(c,e)}static __digitPow(a,b){let c=1;for(;0<b;)1&b&&(c*=a),b>>>=1,a*=a;return c}}return e.__kMaxLength=33554432,e.__kMaxLengthBits=e.__kMaxLength<<5,e.__kMaxBitsPerChar=[0,0,32,51,64,75,83,90,96,102,107,111,115,119,122,126,128,131,134,136,139,141,143,145,147,149,151,153,154,156,158,159,160,162,163,165,166],e.__kBitsPerCharTableShift=5,e.__kBitsPerCharTableMultiplier=1<<e.__kBitsPerCharTableShift,e.__kConversionChars=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"],e.__kBitConversionBuffer=new ArrayBuffer(8),e.__kBitConversionDouble=new Float64Array(e.__kBitConversionBuffer),e.__kBitConversionInts=new Int32Array(e.__kBitConversionBuffer),e});
(function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.JSBigInt=b()})(this,function(){"use strict";var a=Math.imul,b=Math.abs,c=Math.clz32,d=Math.max;class e extends Array{constructor(a,b){if(a>e.__kMaxLength)throw new RangeError("Maximum BigInt size exceeded");super(a),this.sign=b}static BigInt(a){var b=Math.floor,c=Number.isFinite;if("number"==typeof a){if(0===a)return e.__zero();if((0|a)===a)return 0>a?e.__oneDigit(-a,!0):e.__oneDigit(a,!1);if(!c(a)||b(a)!==a)throw new RangeError("The number "+a+" cannot be converted to BigInt because it is not an integer");return e.__fromDouble(a)}if("string"==typeof a){const b=e.__fromString(a);if(null===b)throw new SyntaxError("Cannot convert "+a+" to a BigInt");return b}if("boolean"==typeof a)return!0===a?e.__oneDigit(1,!1):e.__zero();if("object"==typeof a){if(a.constructor===e)return a;const b=e.__toPrimitive(a);return e.BigInt(b)}throw new TypeError("Cannot convert "+a+" to a BigInt")}toDebugString(){const a=["BigInt["];for(const b of this)a.push((b?b.toString(16):b)+", ");return a.push("]"),a.join("")}toString(a=10){if(2>a||36<a)throw new RangeError("toString() radix argument must be between 2 and 36");return 0===this.length?"0":0==(a&a-1)?e.__toStringBasePowerOfTwo(this,a):e.__toStringGeneric(this,a,!1)}static toNumber(a){return e.__toNumber(a)}static unaryMinus(a){if(0===a.length)return a;const b=a.__copy();return b.sign=!a.sign,b}static bitwiseNot(a){return a.sign?e.__absoluteSubOne(a).__trim():e.__absoluteAddOne(a,!0)}static exponentiate(a,b){if(b.sign)throw new RangeError("Exponent must be positive");if(0===b.length)return e.__oneDigit(1,!1);if(0===a.length)return a;if(1===a.length&&1===a.__digit(0))return a.sign&&0==(1&b.__digit(0))?e.unaryMinus(a):a;if(1<b.length)throw new RangeError("BigInt too big");let c=b.__unsignedDigit(0);if(1===c)return a;if(c>=e.__kMaxLengthBits)throw new RangeError("BigInt too big");if(1===a.length&&2===a.__digit(0)){const b=1+(c>>>5),d=a.sign&&0!=(1&c),f=new e(b,d);f.__initializeDigits();const g=1<<(31&c);return f.__setDigit(b-1,g),f}let d=null,f=a;for(0!=(1&c)&&(d=a),c>>=1;0!==c;c>>=1)f=e.multiply(f,f),0!=(1&c)&&(null===d?d=f:d=e.multiply(d,f));return d}static multiply(a,b){if(0===a.length)return a;if(0===b.length)return b;let c=a.length+b.length;32<=a.__clzmsd()+b.__clzmsd()&&c--;const d=new e(c,a.sign!==b.sign);d.__initializeDigits();for(let c=0;c<a.length;c++)e.__multiplyAccumulate(b,a.__digit(c),d,c);return d.__trim()}static divide(a,b){if(0===b.length)throw new RangeError("Division by zero");if(0>e.__absoluteCompare(a,b))return e.__zero();const c=a.sign!==b.sign,d=b.__unsignedDigit(0);let f;if(1===b.length&&65535>=d){if(1===d)return c===a.sign?a:e.unaryMinus(a);f=e.__absoluteDivSmall(a,d,null)}else f=e.__absoluteDivLarge(a,b,!0,!1);return f.sign=c,f.__trim()}static remainder(a,b){if(0===b.length)throw new RangeError("Division by zero");if(0>e.__absoluteCompare(a,b))return a;const c=b.__unsignedDigit(0);if(1===b.length&&65535>=c){if(1===c)return e.__zero();const b=e.__absoluteModSmall(a,c);return 0===b?e.__zero():e.__oneDigit(b,a.sign)}const d=e.__absoluteDivLarge(a,b,!1,!0);return d.sign=a.sign,d.__trim()}static add(a,b){const c=a.sign;return c===b.sign?e.__absoluteAdd(a,b,c):0<=e.__absoluteCompare(a,b)?e.__absoluteSub(a,b,c):e.__absoluteSub(b,a,!c)}static subtract(a,b){const c=a.sign;return c===b.sign?0<=e.__absoluteCompare(a,b)?e.__absoluteSub(a,b,c):e.__absoluteSub(b,a,!c):e.__absoluteAdd(a,b,c)}static leftShift(a,b){return 0===b.length||0===a.length?a:b.sign?e.__rightShiftByAbsolute(a,b):e.__leftShiftByAbsolute(a,b)}static signedRightShift(a,b){return 0===b.length||0===a.length?a:b.sign?e.__leftShiftByAbsolute(a,b):e.__rightShiftByAbsolute(a,b)}static unsignedRightShift(){throw new TypeError("BigInts have no unsigned right shift; use >> instead")}static lessThan(a,b){return 0>e.__compareToBigInt(a,b)}static lessThanOrEqual(a,b){return 0>=e.__compareToBigInt(a,b)}static greaterThan(a,b){return 0<e.__compareToBigInt(a,b)}static greaterThanOrEqual(a,b){return 0<=e.__compareToBigInt(a,b)}static equal(a,b){if(a.sign!==b.sign)return!1;if(a.length!==b.length)return!1;for(let c=0;c<a.length;c++)if(a.__digit(c)!==b.__digit(c))return!1;return!0}static bitwiseAnd(a,b){if(!a.sign&&!b.sign)return e.__absoluteAnd(a,b).__trim();if(a.sign&&b.sign){const c=d(a.length,b.length)+1;let f=e.__absoluteSubOne(a,c);const g=e.__absoluteSubOne(b);return f=e.__absoluteOr(f,g,f),e.__absoluteAddOne(f,!0,f).__trim()}return a.sign&&([a,b]=[b,a]),e.__absoluteAndNot(a,e.__absoluteSubOne(b)).__trim()}static bitwiseXor(a,b){if(!a.sign&&!b.sign)return e.__absoluteXor(a,b).__trim();if(a.sign&&b.sign){const c=d(a.length,b.length),f=e.__absoluteSubOne(a,c),g=e.__absoluteSubOne(b);return e.__absoluteXor(f,g,f).__trim()}const c=d(a.length,b.length)+1;a.sign&&([a,b]=[b,a]);let f=e.__absoluteSubOne(b,c);return f=e.__absoluteXor(f,a,f),e.__absoluteAddOne(f,!0,f).__trim()}static bitwiseOr(a,b){const c=d(a.length,b.length);if(!a.sign&&!b.sign)return e.__absoluteOr(a,b).__trim();if(a.sign&&b.sign){let d=e.__absoluteSubOne(a,c);const f=e.__absoluteSubOne(b);return d=e.__absoluteAnd(d,f,d),e.__absoluteAddOne(d,!0,d).__trim()}a.sign&&([a,b]=[b,a]);let f=e.__absoluteSubOne(b,c);return f=e.__absoluteAndNot(f,a,f),e.__absoluteAddOne(f,!0,f).__trim()}static ADD(a,b){if(a=e.__toPrimitive(a),b=e.__toPrimitive(b),"string"==typeof a)return"string"!=typeof b&&(b=b.toString()),a+b;if("string"==typeof b)return a.toString()+b;if(a=e.__toNumeric(a),b=e.__toNumeric(b),e.__isBigInt(a)&&e.__isBigInt(b))return e.add(a,b);if("number"==typeof a&&"number"==typeof b)return a+b;throw new TypeError("Cannot mix BigInt and other types, use explicit conversions")}static LT(a,b){return e.__compare(a,b,0)}static LE(a,b){return e.__compare(a,b,1)}static GT(a,b){return e.__compare(a,b,2)}static GE(a,b){return e.__compare(a,b,3)}static EQ(a,b){for(;;){if(e.__isBigInt(a))return e.__isBigInt(b)?e.equal(a,b):e.EQ(b,a);if("number"==typeof a){if(e.__isBigInt(b))return e.__equalToNumber(b,a);if("object"!=typeof b)return a==b;b=e.__toPrimitive(b)}else if("string"==typeof a){if(e.__isBigInt(b))return a=e.__fromString(a),null!==a&&e.equal(a,b);if("object"!=typeof b)return a==b;b=e.__toPrimitive(b)}else if("boolean"==typeof a){if(e.__isBigInt(b))return e.__equalToNumber(b,+a);if("object"!=typeof b)return a==b;b=e.__toPrimitive(b)}else if("symbol"==typeof a){if(e.__isBigInt(b))return!1;if("object"!=typeof b)return a==b;b=e.__toPrimitive(b)}else if("object"==typeof a){if("object"==typeof b&&b.constructor!==e)return a==b;a=e.__toPrimitive(a)}else return a==b}}static __zero(){return new e(0,!1)}static __oneDigit(a,b){const c=new e(1,b);return c.__setDigit(0,a),c}__copy(){const a=new e(this.length,this.sign);for(let b=0;b<this.length;b++)a[b]=this[b];return a}__trim(){let a=this.length,b=this[a-1];for(;0===b;)a--,b=this[a-1],this.pop();return 0===a&&(this.sign=!1),this}__initializeDigits(){for(let a=0;a<this.length;a++)this[a]=0}static __toNumber(a){const b=a.length;if(0===b)return 0;if(1===b){const b=a.__unsignedDigit(0);return a.sign?-b:b}const d=a.__digit(b-1),f=c(d),g=32*b-f;if(1024<g)return a.sign?-Infinity:1/0;let h=g-1,i=d,j=b-1;const k=f+1;let l=32===k?0:i<<k;l>>>=12;const m=k-12;let n=12<=k?0:i<<20+k,o=20+k;0<m&&0<j&&(j--,i=a.__digit(j),l|=i>>>32-m,n=i<<m,o=m),0<o&&0<j&&(j--,i=a.__digit(j),n|=i>>>32-o,o-=32);const p=e.__decideRounding(a,o,j,i);if((1===p||0===p&&1==(1&n))&&(n=n+1>>>0,0==n&&(l++,0!=l>>>20&&(l=0,h++,1023<h))))return a.sign?-Infinity:1/0;const q=a.sign?-2147483648:0;return h=h+1023<<20,e.__kBitConversionInts[1]=q|h|l,e.__kBitConversionInts[0]=n,e.__kBitConversionDouble[0]}static __decideRounding(a,b,c,d){if(0<b)return-1;let e;if(0>b)e=-b-1;else{if(0===c)return-1;c--,d=a.__digit(c),e=31}let f=1<<e;if(0==(d&f))return-1;if(f-=1,0!=(d&f))return 1;for(;0<c;)if(c--,0!==a.__digit(c))return 1;return 0}static __fromDouble(a){e.__kBitConversionDouble[0]=a;const b=2047&e.__kBitConversionInts[1]>>>20,c=b-1023,d=(c>>>5)+1,f=new e(d,0>a);let g=1048575&e.__kBitConversionInts[1]|1048576,h=e.__kBitConversionInts[0];const i=20,j=31&c;let k,l=0;if(20>j){const a=i-j;l=a+32,k=g>>>a,g=g<<32-a|h>>>a,h<<=32-a}else if(20===j)l=32,k=g,g=h;else{const a=j-i;l=32-a,k=g<<a|h>>>32-a,g=h<<a}f.__setDigit(d-1,k);for(let b=d-2;0<=b;b--)0<l?(l-=32,k=g,g=h):k=0,f.__setDigit(b,k);return f.__trim()}static __iswhitespace(a){return!!(13>=a&&9<=a)||(159>=a?32==a:131071>=a?160==a||5760==a:196607>=a?(a&=131071,10>=a||40==a||41==a||47==a||95==a||4096==a):65279==a)}static __fromString(a,b=0){let c=0;const f=a.length;let g=0;if(g===f)return e.__zero();let h=a.charCodeAt(g);for(;e.__iswhitespace(h);){if(++g===f)return e.__zero();h=a.charCodeAt(g)}if(43===h){if(++g===f)return null;h=a.charCodeAt(g),c=1}else if(45===h){if(++g===f)return null;h=a.charCodeAt(g),c=-1}if(0===b){if(b=10,48===h){if(++g===f)return e.__zero();if(h=a.charCodeAt(g),88===h||120===h){if(b=16,++g===f)return null;h=a.charCodeAt(g)}else if(79===h||111===h){if(b=8,++g===f)return null;h=a.charCodeAt(g)}else if(66===h||98===h){if(b=2,++g===f)return null;h=a.charCodeAt(g)}}}else if(16===b&&48===h){if(++g===f)return e.__zero();if(h=a.charCodeAt(g),88===h||120===h){if(++g===f)return null;h=a.charCodeAt(g)}}for(;48===h;){if(++g===f)return e.__zero();h=a.charCodeAt(g)}const i=f-g;let j=e.__kMaxBitsPerChar[b],k=e.__kBitsPerCharTableMultiplier-1;if(i>1073741824/j)return null;const l=j*i+k>>>e.__kBitsPerCharTableShift,m=new e(l+31>>>5,!1),n=10>b?b:10,o=10<b?b-10:0;if(0==(b&b-1)){j>>=e.__kBitsPerCharTableShift;const b=[],c=[];let d=!1;do{let e=0,i=0;for(;;){let b;if(h-48>>>0<n)b=h-48;else if((32|h)-97>>>0<o)b=(32|h)-87;else{d=!0;break}if(i+=j,e=e<<j|b,++g===f){d=!0;break}if(h=a.charCodeAt(g),32<i+j)break}b.push(e),c.push(i)}while(!d);e.__fillFromParts(m,b,c)}else{m.__initializeDigits();let c=!1,i=0;do{let l=0,p=1;for(;;){let e;if(h-48>>>0<n)e=h-48;else if((32|h)-97>>>0<o)e=(32|h)-87;else{c=!0;break}const d=p*b;if(4294967295<d)break;if(p=d,l=l*b+e,i++,++g===f){c=!0;break}h=a.charCodeAt(g)}k=32*e.__kBitsPerCharTableMultiplier-1;const q=j*i+k>>>e.__kBitsPerCharTableShift+5;m.__inplaceMultiplyAdd(p,l,q)}while(!c)}for(;g!==f;){if(!e.__iswhitespace(h))return null;h=a.charCodeAt(g++)}return 0!=c&&10!==b?null:(m.sign=-1==c,m.__trim())}static __fillFromParts(a,b,c){let d=0,e=0,f=0;for(let g=b.length-1;0<=g;g--){const h=b[g],i=c[g];e|=h<<f,f+=i,32===f?(a.__setDigit(d++,e),f=0,e=0):32<f&&(a.__setDigit(d++,e),f-=32,e=h>>>i-f)}if(0!==e){if(d>=a.length)throw new Error("implementation bug");a.__setDigit(d++,e)}for(;d<a.length;d++)a.__setDigit(d,0)}static __toStringBasePowerOfTwo(a,b){const d=a.length;let f=b-1;f=(85&f>>>1)+(85&f),f=(51&f>>>2)+(51&f),f=(15&f>>>4)+(15&f);const g=f,h=b-1,i=a.__digit(d-1),j=c(i);let k=0|(32*d-j+g-1)/g;if(a.sign&&k++,268435456<k)throw new Error("string too long");const l=Array(k);let m=k-1,n=0,o=0;for(let c=0;c<d-1;c++){const b=a.__digit(c),d=(n|b<<o)&h;l[m--]=e.__kConversionChars[d];const f=g-o;for(n=b>>>f,o=32-f;o>=g;)l[m--]=e.__kConversionChars[n&h],n>>>=g,o-=g}const p=(n|i<<o)&h;for(l[m--]=e.__kConversionChars[p],n=i>>>g-o;0!==n;)l[m--]=e.__kConversionChars[n&h],n>>>=g;if(a.sign&&(l[m--]="-"),-1!=m)throw new Error("implementation bug");return l.join("")}static __toStringGeneric(a,b,d){const f=a.length;if(0===f)return"";if(1===f){let c=a.__unsignedDigit(0).toString(b);return!1===d&&a.sign&&(c="-"+c),c}const g=32*f-c(a.__digit(f-1)),h=e.__kMaxBitsPerChar[b],i=h-1;let j=g*e.__kBitsPerCharTableMultiplier;j+=i-1,j=0|j/i;const k=j+1>>1,l=e.exponentiate(e.__oneDigit(b,!1),e.__oneDigit(k,!1));let m,n;const o=l.__unsignedDigit(0);if(1===l.length&&65535>=o){m=new e(a.length,!1),m.__initializeDigits();let c=0;for(let b=2*a.length-1;0<=b;b--){const d=c<<16|a.__halfDigit(b);m.__setHalfDigit(b,0|d/o),c=0|d%o}n=c.toString(b)}else{const c=e.__absoluteDivLarge(a,l,!0,!0);m=c.quotient;const d=c.remainder.__trim();n=e.__toStringGeneric(d,b,!0)}m.__trim();let p=e.__toStringGeneric(m,b,!0);for(;n.length<k;)n="0"+n;return!1===d&&a.sign&&(p="-"+p),p+n}static __unequalSign(a){return a?-1:1}static __absoluteGreater(a){return a?-1:1}static __absoluteLess(a){return a?1:-1}static __compareToBigInt(a,b){const c=a.sign;if(c!==b.sign)return e.__unequalSign(c);const d=e.__absoluteCompare(a,b);return 0<d?e.__absoluteGreater(c):0>d?e.__absoluteLess(c):0}static __compareToNumber(a,c){if(!0|c){const d=a.sign,f=0>c;if(d!==f)return e.__unequalSign(d);if(0===a.length){if(f)throw new Error("implementation bug");return 0===c?0:-1}if(1<a.length)return e.__absoluteGreater(d);const g=b(c),h=a.__unsignedDigit(0);return h>g?e.__absoluteGreater(d):h<g?e.__absoluteLess(d):0}return e.__compareToDouble(a,c)}static __compareToDouble(a,b){if(b!==b)return b;if(b===1/0)return-1;if(b===-Infinity)return 1;const d=a.sign;if(d!==0>b)return e.__unequalSign(d);if(0===b)throw new Error("implementation bug: should be handled elsewhere");if(0===a.length)return-1;e.__kBitConversionDouble[0]=b;const f=2047&e.__kBitConversionInts[1]>>>20;if(2047==f)throw new Error("implementation bug: handled elsewhere");const g=f-1023;if(0>g)return e.__absoluteGreater(d);const h=a.length;let i=a.__digit(h-1);const j=c(i),k=32*h-j,l=g+1;if(k<l)return e.__absoluteLess(d);if(k>l)return e.__absoluteGreater(d);let m=1048576|1048575&e.__kBitConversionInts[1],n=e.__kBitConversionInts[0];const o=20,p=31-j;if(p!==(k-1)%31)throw new Error("implementation bug");let q,r=0;if(20>p){const a=o-p;r=a+32,q=m>>>a,m=m<<32-a|n>>>a,n<<=32-a}else if(20===p)r=32,q=m,m=n;else{const a=p-o;r=32-a,q=m<<a|n>>>32-a,m=n<<a}if(i>>>=0,q>>>=0,i>q)return e.__absoluteGreater(d);if(i<q)return e.__absoluteLess(d);for(let c=h-2;0<=c;c--){0<r?(r-=32,q=m>>>0,m=n,n=0):q=0;const b=a.__unsignedDigit(c);if(b>q)return e.__absoluteGreater(d);if(b<q)return e.__absoluteLess(d)}if(0!==m||0!==n){if(0===r)throw new Error("implementation bug");return e.__absoluteLess(d)}return 0}static __equalToNumber(a,c){return c|0===c?0===c?0===a.length:1===a.length&&a.sign===0>c&&a.__unsignedDigit(0)===b(c):0===e.__compareToDouble(a,c)}static __comparisonResultToBool(a,b){switch(b){case 0:return 0>a;case 1:return 0>=a;case 2:return 0<a;case 3:return 0<=a;}throw new Error("unreachable")}static __compare(a,b,c){if(a=e.__toPrimitive(a),b=e.__toPrimitive(b),"string"==typeof a&&"string"==typeof b)switch(c){case 0:return a<b;case 1:return a<=b;case 2:return a>b;case 3:return a>=b;}if(e.__isBigInt(a)&&"string"==typeof b)return b=e.__fromString(b),null!==b&&e.__comparisonResultToBool(e.__compareToBigInt(a,b),c);if("string"==typeof a&&e.__isBigInt(b))return a=e.__fromString(a),null!==a&&e.__comparisonResultToBool(e.__compareToBigInt(a,b),c);if(a=e.__toNumeric(a),b=e.__toNumeric(b),e.__isBigInt(a)){if(e.__isBigInt(b))return e.__comparisonResultToBool(e.__compareToBigInt(a,b),c);if("number"!=typeof b)throw new Error("implementation bug");return e.__comparisonResultToBool(e.__compareToNumber(a,b),c)}if("number"!=typeof a)throw new Error("implementation bug");if(e.__isBigInt(b))return e.__comparisonResultToBool(e.__compareToNumber(b,a),2^c);if("number"!=typeof b)throw new Error("implementation bug");return 0===c?a<b:1===c?a<=b:2===c?a>b:3===c?a>=b:void 0}__clzmsd(){return c(this[this.length-1])}static __absoluteAdd(a,b,c){if(a.length<b.length)return e.__absoluteAdd(b,a,c);if(0===a.length)return a;if(0===b.length)return a.sign===c?a:e.unaryMinus(a);let d=a.length;(0===a.__clzmsd()||b.length===a.length&&0===b.__clzmsd())&&d++;const f=new e(d,c);let g=0,h=0;for(;h<b.length;h++){const c=b.__digit(h),d=a.__digit(h),e=(65535&d)+(65535&c)+g,i=(d>>>16)+(c>>>16)+(e>>>16);g=i>>>16,f.__setDigit(h,65535&e|i<<16)}for(;h<a.length;h++){const b=a.__digit(h),c=(65535&b)+g,d=(b>>>16)+(c>>>16);g=d>>>16,f.__setDigit(h,65535&c|d<<16)}return h<f.length&&f.__setDigit(h,g),f.__trim()}static __absoluteSub(a,b,c){if(0===a.length)return a;if(0===b.length)return a.sign===c?a:e.unaryMinus(a);const d=new e(a.length,c);let f=0,g=0;for(;g<b.length;g++){const c=a.__digit(g),e=b.__digit(g),h=(65535&c)-(65535&e)-f;f=1&h>>>16;const i=(c>>>16)-(e>>>16)-f;f=1&i>>>16,d.__setDigit(g,65535&h|i<<16)}for(;g<a.length;g++){const b=a.__digit(g),c=(65535&b)-f;f=1&c>>>16;const e=(b>>>16)-f;f=1&e>>>16,d.__setDigit(g,65535&c|e<<16)}return d.__trim()}static __absoluteAddOne(a,b,c=null){const d=a.length;null===c?c=new e(d,b):c.sign=b;let f=!0;for(let e,g=0;g<d;g++){e=a.__digit(g);const b=-1===e;f&&(e=0|e+1),f=b,c.__setDigit(g,e)}return f&&c.__setDigitGrow(d,1),c}static __absoluteSubOne(a,b){const c=a.length;b=b||c;const d=new e(b,!1);let f=!0;for(let e,g=0;g<c;g++){e=a.__digit(g);const b=0===e;f&&(e=0|e-1),f=b,d.__setDigit(g,e)}for(let e=c;e<b;e++)d.__setDigit(e,0);return d}static __absoluteAnd(a,b,c=null){let d=a.length,f=b.length,g=f;if(d<f){g=d;const c=a,e=d;a=b,d=f,b=c,f=e}let h=g;null===c?c=new e(h,!1):h=c.length;let j=0;for(;j<g;j++)c.__setDigit(j,a.__digit(j)&b.__digit(j));for(;j<h;j++)c.__setDigit(j,0);return c}static __absoluteAndNot(a,b,c=null){const d=a.length,f=b.length;let g=f;d<f&&(g=d);let h=d;null===c?c=new e(h,!1):h=c.length;let j=0;for(;j<g;j++)c.__setDigit(j,a.__digit(j)&~b.__digit(j));for(;j<d;j++)c.__setDigit(j,a.__digit(j));for(;j<h;j++)c.__setDigit(j,0);return c}static __absoluteOr(a,b,c=null){let d=a.length,f=b.length,g=f;if(d<f){g=d;const c=a,e=d;a=b,d=f,b=c,f=e}let h=d;null===c?c=new e(h,!1):h=c.length;let j=0;for(;j<g;j++)c.__setDigit(j,a.__digit(j)|b.__digit(j));for(;j<d;j++)c.__setDigit(j,a.__digit(j));for(;j<h;j++)c.__setDigit(j,0);return c}static __absoluteXor(a,b,c=null){let d=a.length,f=b.length,g=f;if(d<f){g=d;const c=a,e=d;a=b,d=f,b=c,f=e}let h=d;null===c?c=new e(h,!1):h=c.length;let j=0;for(;j<g;j++)c.__setDigit(j,a.__digit(j)^b.__digit(j));for(;j<d;j++)c.__setDigit(j,a.__digit(j));for(;j<h;j++)c.__setDigit(j,0);return c}static __absoluteCompare(a,b){const c=a.length-b.length;if(0!=c)return c;let d=a.length-1;for(;0<=d&&a.__digit(d)===b.__digit(d);)d--;return 0>d?0:a.__unsignedDigit(d)>b.__unsignedDigit(d)?1:-1}static __multiplyAccumulate(b,c,d,e){if(0===c)return;const f=65535&c,g=c>>>16;let h=0,j=0,k=0;for(let l=0;l<b.length;l++,e++){let c=d.__digit(e),i=65535&c,m=c>>>16;const n=b.__digit(l),o=65535&n,p=n>>>16,q=a(o,f),r=a(o,g),s=a(p,f),t=a(p,g);i+=j+(65535&q),m+=k+h+(i>>>16)+(q>>>16)+(65535&r)+(65535&s),h=m>>>16,j=(r>>>16)+(s>>>16)+(65535&t)+h,h=j>>>16,j&=65535,k=t>>>16,c=65535&i|m<<16,d.__setDigit(e,c)}for(;0!=h||0!==j||0!==k;e++){let a=d.__digit(e);const b=(65535&a)+j,c=(a>>>16)+(b>>>16)+k+h;j=0,k=0,h=c>>>16,a=65535&b|c<<16,d.__setDigit(e,a)}}static __internalMultiplyAdd(b,c,d,e,f){let g=d,h=0;for(let j=0;j<e;j++){const d=b.__digit(j),e=a(65535&d,c),i=(65535&e)+h+g;g=i>>>16;const k=a(d>>>16,c),l=(65535&k)+(e>>>16)+g;g=l>>>16,h=k>>>16,f.__setDigit(j,l<<16|65535&i)}if(f.length>e)for(f.__setDigit(e++,g+h);e<f.length;)f.__setDigit(e++,0);else if(0!==g+h)throw new Error("implementation bug")}__inplaceMultiplyAdd(b,c,d){d>this.length&&(d=this.length);const e=65535&b,f=b>>>16;let g=0,h=65535&c,j=c>>>16;for(let k=0;k<d;k++){const b=this.__digit(k),c=65535&b,d=b>>>16,i=a(c,e),l=a(c,f),m=a(d,e),n=a(d,f),o=h+(65535&i),p=j+g+(o>>>16)+(i>>>16)+(65535&l)+(65535&m);h=(l>>>16)+(m>>>16)+(65535&n)+(p>>>16),g=h>>>16,h&=65535,j=n>>>16;this.__setDigit(k,65535&o|p<<16)}if(0!=g||0!==h||0!==j)throw new Error("implementation bug")}static __absoluteDivSmall(a,b,c){null===c&&(c=new e(a.length,!1));let d=0;for(let e,f=2*a.length-1;0<=f;f-=2){e=(d<<16|a.__halfDigit(f))>>>0;const g=0|e/b;d=0|e%b,e=(d<<16|a.__halfDigit(f-1))>>>0;const h=0|e/b;d=0|e%b,c.__setDigit(f>>>1,g<<16|h)}return c}static __absoluteModSmall(a,b){let c=0;for(let d=2*a.length-1;0<=d;d--){const e=(c<<16|a.__halfDigit(d))>>>0;c=0|e%b}return c}static __absoluteDivLarge(b,d,f,g){const h=d.__halfDigitLength(),i=d.length,c=b.__halfDigitLength()-h;let k=null;f&&(k=new e(c+2>>>1,!1),k.__initializeDigits());const l=new e(h+2>>>1,!1);l.__initializeDigits();const m=e.__clz16(d.__halfDigit(h-1));0<m&&(d=e.__specialLeftShift(d,m,0));const n=e.__specialLeftShift(b,m,1),o=d.__halfDigit(h-1);let p=0;for(let m,q=c;0<=q;q--){m=65535;const b=n.__halfDigit(q+h);if(b!==o){const c=(b<<16|n.__halfDigit(q+h-1))>>>0;m=0|c/o;let e=0|c%o;const f=d.__halfDigit(h-2),g=n.__halfDigit(q+h-2);for(;a(m,f)>>>0>(e<<16|g)>>>0&&(m--,e+=o,!(65535<e)););}e.__internalMultiplyAdd(d,m,0,i,l);let g=n.__inplaceSub(l,q);0!==g&&(g=n.__inplaceAdd(d,q),n.__setHalfDigit(q+h,n.__halfDigit(q+h)+g),m--),f&&(1&q?p=m<<16:k.__setDigit(q>>>1,p|m))}return g?(n.__inplaceRightShift(m),f?{quotient:k,remainder:n}:n):f?k:void 0}static __clz16(a){return c(a)-16}__inplaceAdd(a,b){let c=0;const d=a.__halfDigitLength();for(let e=0;e<d;e++){const d=this.__halfDigit(b+e)+a.__halfDigit(e)+c;c=d>>>16,this.__setHalfDigit(b+e,d)}return c}__inplaceSub(a,b){let c=0;if(1&b){b>>=1;let d=this.__digit(b),e=65535&d,f=0;for(;f<a.length-1;f++){const g=a.__digit(f),h=(d>>>16)-(65535&g)-c;c=1&h>>>16,this.__setDigit(b+f,h<<16|65535&e),d=this.__digit(b+f+1),e=(65535&d)-(g>>>16)-c,c=1&e>>>16}const g=a.__digit(f),h=(d>>>16)-(65535&g)-c;c=1&h>>>16,this.__setDigit(b+f,h<<16|65535&e);const i=g>>>16;if(b+f+1>=this.length)throw new RangeError("out of bounds");d=this.__digit(b+f+1),(0!=i||0!==d)&&(e=(65535&d)-i-c,c=1&e>>>16,this.__setDigit(b+a.length,4294901760&d|65535&e))}else{b>>=1;for(let d=0;d<a.length;d++){const e=this.__digit(b+d),f=a.__digit(d),g=(65535&e)-(65535&f)-c;c=1&g>>>16;const h=(e>>>16)-(f>>>16)-c;c=1&h>>>16,this.__setDigit(b+d,h<<16|65535&g)}}return c}__inplaceRightShift(a){if(0===a)return;let b=this.__digit(0)>>>a;const c=this.length-1;for(let e=0;e<c;e++){const c=this.__digit(e+1);this.__setDigit(e,c<<32-a|b),b=c>>>a}this.__setDigit(c,b)}static __specialLeftShift(a,b,c){const d=a.length,f=new e(d+c,!1);if(0===b){for(let b=0;b<d;b++)f.__setDigit(b,a.__digit(b));return 0<c&&f.__setDigit(d,0),f}let g=0;for(let e=0;e<d;e++){const c=a.__digit(e);f.__setDigit(e,c<<b|g),g=c>>>32-b}return 0<c&&f.__setDigit(d,g),f}static __leftShiftByAbsolute(a,b){const c=e.__toShiftAmount(b);if(0>c)throw new RangeError("BigInt too big");const f=c>>>5,g=31&c,h=a.length,i=0!==g&&0!=a.__digit(h-1)>>>32-g,j=h+f+(i?1:0),k=new e(j,a.sign);if(0===g){let b=0;for(;b<f;b++)k.__setDigit(b,0);for(;b<j;b++)k.__setDigit(b,a.__digit(b-f))}else{let b=0;for(let a=0;a<f;a++)k.__setDigit(a,0);for(let c=0;c<h;c++){const e=a.__digit(c);k.__setDigit(c+f,e<<g|b),b=e>>>32-g}if(i)k.__setDigit(h+f,b);else if(0!=b)throw new Error("implementation bug")}return k.__trim()}static __rightShiftByAbsolute(a,b){const c=a.length,d=a.sign,f=e.__toShiftAmount(b);if(0>f)return e.__rightShiftByMaximum(d);const g=f>>>5,h=31&f;let i=c-g;if(0>=i)return e.__rightShiftByMaximum(d);let j=!1;if(d){if(0!=(a.__digit(g)&(1<<h)-1))j=!0;else for(let b=0;b<g;b++)if(0!==a.__digit(b)){j=!0;break}}if(j&&0===h){const b=a.__digit(c-1);0==~b&&i++}let k=new e(i,d);if(0===h)for(let b=g;b<c;b++)k.__setDigit(b-g,a.__digit(b));else{let b=a.__digit(g)>>>h;const d=c-g-1;for(let c=0;c<d;c++){const e=a.__digit(c+g+1);k.__setDigit(c,e<<32-h|b),b=e>>>h}k.__setDigit(d,b)}return j&&(k=e.__absoluteAddOne(k,!0,k)),k.__trim()}static __rightShiftByMaximum(a){return a?e.__oneDigit(1,!0):e.__zero()}static __toShiftAmount(a){if(1<a.length)return-1;const b=a.__unsignedDigit(0);return b>e.__kMaxLengthBits?-1:b}static __toPrimitive(a,b="default"){if("object"!=typeof a)return a;if(a.constructor===e)return a;const c=a[Symbol.toPrimitive];if(c){const a=c(b);if("object"!=typeof a)return a;throw new TypeError("Cannot convert object to primitive value")}const d=a.valueOf;if(d){const b=d.call(a);if("object"!=typeof b)return b}const f=a.toString;if(f){const b=f.call(a);if("object"!=typeof b)return b}throw new TypeError("Cannot convert object to primitive value")}static __toNumeric(a){return e.__isBigInt(a)?a:+a}static __isBigInt(a){return"object"==typeof a&&a.constructor===e}__digit(a){return this[a]}__unsignedDigit(a){return this[a]>>>0}__setDigit(a,b){this[a]=0|b}__setDigitGrow(a,b){this[a]=0|b}__halfDigitLength(){const a=this.length;return 65535>=this.__unsignedDigit(a-1)?2*a-1:2*a}__halfDigit(a){return 65535&this[a>>>1]>>>((1&a)<<4)}__setHalfDigit(a,b){const c=a>>>1,d=this.__digit(c),e=1&a?65535&d|b<<16:4294901760&d|65535&b;this.__setDigit(c,e)}static __digitPow(a,b){let c=1;for(;0<b;)1&b&&(c*=a),b>>>=1,a*=a;return c}}return e.__kMaxLength=33554432,e.__kMaxLengthBits=e.__kMaxLength<<5,e.__kMaxBitsPerChar=[0,0,32,51,64,75,83,90,96,102,107,111,115,119,122,126,128,131,134,136,139,141,143,145,147,149,151,153,154,156,158,159,160,162,163,165,166],e.__kBitsPerCharTableShift=5,e.__kBitsPerCharTableMultiplier=1<<e.__kBitsPerCharTableShift,e.__kConversionChars=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"],e.__kBitConversionBuffer=new ArrayBuffer(8),e.__kBitConversionDouble=new Float64Array(e.__kBitConversionBuffer),e.__kBitConversionInts=new Int32Array(e.__kBitConversionBuffer),e});
{
"name": "jsbi",
"version": "2.0.1",
"version": "2.0.2",
"devDependencies": {

@@ -5,0 +5,0 @@ "eslint": "^5.4.0",

@@ -105,15 +105,8 @@ # JSBI — pure-JavaScript BigInts [![Build status](https://travis-ci.com/GoogleChromeLabs/jsbi.svg?branch=master)](https://travis-ci.com/GoogleChromeLabs/jsbi)

Now! The JSBI library is ready for use today. To use it in your code, simply include it, and (optionally, for convenience) define `const BigInt = JSBI.BigInt`.
Now! The JSBI library is ready for use today.
If you want, you can also instruct it to use the native BigInt implementation as its backend when it can: `JSBI.useNativeBigIntsIfAvailable()` swaps out the custom backend for redirects to the current environment’s native implementation. Currently this makes some operations faster and some slower, so there’s no strong reason either way, but it can be interesting for testing. **Important**: If you do this, do it _before_ any `const BigInt = JSBI.BigInt` assignment!
View [our issue tracker](https://github.com/GoogleChromeLabs/jsbi/issues) to learn more about out our future plans for JSBI, and please join the discussion!
Plans for the future include:
A more vague future plan is to use the JSBI library (or an extension to it) as a staging ground for additional BigInt-related functionality. The official proposal is intentionally somewhat minimal, and leaves further “library functions” for follow-up proposals. Examples are a combined `exp`+`mod` function, and bit manipulation functions.
- [issue #1](https://github.com/GoogleChromeLabs/jsbi/issues/1): introduce shorthands for operations (e.g. `exp` for `exponentiate`, and so on). The current method names follow the spec proposal. (If you have suggestions for naming schemes, please speak up!)
- [issue #2](https://github.com/GoogleChromeLabs/jsbi/issues/2): create a tool to translate code using JSBI syntax to native BigInt syntax. (If you’d like to help, please speak up!)
- [issue #3](https://github.com/GoogleChromeLabs/jsbi/issues/3): the current implementation has been tested quite well, but even more rigorous testing is always possible. (Should you find any bugs, please report them!)
- [issue #4](https://github.com/GoogleChromeLabs/jsbi/issues/4): investigate the feasibility of polyfilling `BigInt64Array`/`BigUint64Array` and the `DataView.{get,set}Big{Int,Uint}64` functions.
A more vague plan is to use the JSBI library (or an extension to it) as a staging ground for additional BigInt-related functionality. The official proposal is intentionally somewhat minimal, and leaves further “library functions” for follow-up proposals. Examples are a combined `exp`+`mod` function, and bit manipulation functions.
## Development

@@ -120,0 +113,0 @@

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc