tough-rational
Version:
Rational class using BigInt with fallback to bignumber.js
2 lines • 34.9 kB
JavaScript
!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var n=e();for(var r in n)("object"==typeof exports?exports:t)[r]=n[r]}}(window,function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=37)}([function(t,e,n){"use strict";Object.assign(t.exports,{get:n(6),range:n(18),forOwn:n(19),first:n(20),last:n(39),constant:n(40),shiftThis:n(21),mapToShifted:n(41),mapOwn:n(22),restoreConstructor:n(42),leftPad:n(43),equals:n(44),property:n(45),climbProtoChain:n(46),map:n(47),method:n(48),flow:n(49),tail:n(23),noop:n(7),partialRight:n(8),partial:n(50),bindKey:n(24),castArray:n(51),setter:n(52)})},function(t,e,n){"use strict";Object.assign(t.exports,{testForBigInt:function(){try{return Boolean(BigInt(1))}catch(t){return!1}}})},function(t,e,n){"use strict";n(9);const r=n(1),{NAN:i,INFINITY:o,NEGATIVE_INFINITY:s}=n(10),c=r.testForBigInt()?()=>[BigInt(0),BigInt(1)]:()=>[0,1],u=r.testForBigInt()?()=>[BigInt(1),BigInt(1)]:()=>[1,1];Object.assign(t.exports,{generateZero:c,generateNaN:()=>[i,i],generateInfinity:()=>[o,BigInt(1)],generateNegativeInfinity:()=>[s,BigInt(1)],generateOne:u})},function(t,e,n){var r;!function(i){"use strict";var o,s=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,c=Math.ceil,u=Math.floor,a="[BigNumber Error] ",l=a+"Number primitive has more than 15 significant digits: ",f=1e14,p=14,g=9007199254740991,h=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],d=1e7,m=1e9;function y(t){var e=0|t;return t>0||t===e?e:e-1}function b(t){for(var e,n,r=1,i=t.length,o=t[0]+"";r<i;){for(e=t[r++]+"",n=p-e.length;n--;e="0"+e);o+=e}for(i=o.length;48===o.charCodeAt(--i););return o.slice(0,i+1||1)}function x(t,e){var n,r,i=t.c,o=e.c,s=t.s,c=e.s,u=t.e,a=e.e;if(!s||!c)return null;if(n=i&&!i[0],r=o&&!o[0],n||r)return n?r?0:-c:s;if(s!=c)return s;if(n=s<0,r=u==a,!i||!o)return r?0:!i^n?1:-1;if(!r)return u>a^n?1:-1;for(c=(u=i.length)<(a=o.length)?u:a,s=0;s<c;s++)if(i[s]!=o[s])return i[s]>o[s]^n?1:-1;return u==a?0:u>a^n?1:-1}function w(t,e,n,r){if(t<e||t>n||t!==(t<0?c(t):u(t)))throw Error(a+(r||"Argument")+("number"==typeof t?t<e||t>n?" out of range: ":" not an integer: ":" not a primitive number: ")+t)}function I(t){return"[object Array]"==Object.prototype.toString.call(t)}function v(t){var e=t.c.length-1;return y(t.e/p)==e&&t.c[e]%2!=0}function B(t,e){return(t.length>1?t.charAt(0)+"."+t.slice(1):t)+(e<0?"e":"e+")+e}function N(t,e,n){var r,i;if(e<0){for(i=n+".";++e;i+=n);t=i+t}else if(++e>(r=t.length)){for(i=n,e-=r;--e;i+=n);t+=i}else e<r&&(t=t.slice(0,e)+"."+t.slice(e));return t}(o=function t(e){var n,r,i,o=q.prototype={constructor:q,toString:null,valueOf:null},O=new q(1),E=20,S=4,_=-7,A=21,R=-1e7,j=1e7,P=!1,T=1,F=0,C={decimalSeparator:".",groupSeparator:",",groupSize:3,secondaryGroupSize:0,fractionGroupSeparator:" ",fractionGroupSize:0},D="0123456789abcdefghijklmnopqrstuvwxyz";function q(t,e){var n,o,c,a,f,h,d,m,y=this;if(!(y instanceof q))return new q(t,e);if(null==e){if(t instanceof q)return y.s=t.s,y.e=t.e,void(y.c=(t=t.c)?t.slice():t);if((h="number"==typeof t)&&0*t==0){if(y.s=1/t<0?(t=-t,-1):1,t===~~t){for(a=0,f=t;f>=10;f/=10,a++);return y.e=a,void(y.c=[t])}m=t+""}else{if(!s.test(m=t+""))return i(y,m,h);y.s=45==m.charCodeAt(0)?(m=m.slice(1),-1):1}(a=m.indexOf("."))>-1&&(m=m.replace(".","")),(f=m.search(/e/i))>0?(a<0&&(a=f),a+=+m.slice(f+1),m=m.substring(0,f)):a<0&&(a=m.length)}else{if(w(e,2,D.length,"Base"),m=t+"",10==e)return U(y=new q(t instanceof q?t:m),E+y.e+1,S);if(h="number"==typeof t){if(0*t!=0)return i(y,m,h,e);if(y.s=1/t<0?(m=m.slice(1),-1):1,q.DEBUG&&m.replace(/^0\.0*|\./,"").length>15)throw Error(l+t);h=!1}else y.s=45===m.charCodeAt(0)?(m=m.slice(1),-1):1;for(n=D.slice(0,e),a=f=0,d=m.length;f<d;f++)if(n.indexOf(o=m.charAt(f))<0){if("."==o){if(f>a){a=d;continue}}else if(!c&&(m==m.toUpperCase()&&(m=m.toLowerCase())||m==m.toLowerCase()&&(m=m.toUpperCase()))){c=!0,f=-1,a=0;continue}return i(y,t+"",h,e)}(a=(m=r(m,e,10,y.s)).indexOf("."))>-1?m=m.replace(".",""):a=m.length}for(f=0;48===m.charCodeAt(f);f++);for(d=m.length;48===m.charCodeAt(--d););if(m=m.slice(f,++d)){if(d-=f,h&&q.DEBUG&&d>15&&(t>g||t!==u(t)))throw Error(l+y.s*t);if((a=a-f-1)>j)y.c=y.e=null;else if(a<R)y.c=[y.e=0];else{if(y.e=a,y.c=[],f=(a+1)%p,a<0&&(f+=p),f<d){for(f&&y.c.push(+m.slice(0,f)),d-=p;f<d;)y.c.push(+m.slice(f,f+=p));m=m.slice(f),f=p-m.length}else f-=d;for(;f--;m+="0");y.c.push(+m)}}else y.c=[y.e=0]}function M(t,e,n,r){var i,o,s,c,u;if(null==n?n=S:w(n,0,8),!t.c)return t.toString();if(i=t.c[0],s=t.e,null==e)u=b(t.c),u=1==r||2==r&&s<=_?B(u,s):N(u,s,"0");else if(o=(t=U(new q(t),e,n)).e,c=(u=b(t.c)).length,1==r||2==r&&(e<=o||o<=_)){for(;c<e;u+="0",c++);u=B(u,o)}else if(e-=s,u=N(u,o,"0"),o+1>c){if(--e>0)for(u+=".";e--;u+="0");}else if((e+=o-c)>0)for(o+1==c&&(u+=".");e--;u+="0");return t.s<0&&i?"-"+u:u}function L(t,e){var n,r,i=0;for(I(t[0])&&(t=t[0]),n=new q(t[0]);++i<t.length;){if(!(r=new q(t[i])).s){n=r;break}e.call(n,r)&&(n=r)}return n}function Z(t,e,n){for(var r=1,i=e.length;!e[--i];e.pop());for(i=e[0];i>=10;i/=10,r++);return(n=r+n*p-1)>j?t.c=t.e=null:n<R?t.c=[t.e=0]:(t.e=n,t.c=e),t}function U(t,e,n,r){var i,o,s,a,l,g,d,m=t.c,y=h;if(m){t:{for(i=1,a=m[0];a>=10;a/=10,i++);if((o=e-i)<0)o+=p,s=e,d=(l=m[g=0])/y[i-s-1]%10|0;else if((g=c((o+1)/p))>=m.length){if(!r)break t;for(;m.length<=g;m.push(0));l=d=0,i=1,s=(o%=p)-p+1}else{for(l=a=m[g],i=1;a>=10;a/=10,i++);d=(s=(o%=p)-p+i)<0?0:l/y[i-s-1]%10|0}if(r=r||e<0||null!=m[g+1]||(s<0?l:l%y[i-s-1]),r=n<4?(d||r)&&(0==n||n==(t.s<0?3:2)):d>5||5==d&&(4==n||r||6==n&&(o>0?s>0?l/y[i-s]:0:m[g-1])%10&1||n==(t.s<0?8:7)),e<1||!m[0])return m.length=0,r?(e-=t.e+1,m[0]=y[(p-e%p)%p],t.e=-e||0):m[0]=t.e=0,t;if(0==o?(m.length=g,a=1,g--):(m.length=g+1,a=y[p-o],m[g]=s>0?u(l/y[i-s]%y[s])*a:0),r)for(;;){if(0==g){for(o=1,s=m[0];s>=10;s/=10,o++);for(s=m[0]+=a,a=1;s>=10;s/=10,a++);o!=a&&(t.e++,m[0]==f&&(m[0]=1));break}if(m[g]+=a,m[g]!=f)break;m[g--]=0,a=1}for(o=m.length;0===m[--o];m.pop());}t.e>j?t.c=t.e=null:t.e<R&&(t.c=[t.e=0])}return t}return q.clone=t,q.ROUND_UP=0,q.ROUND_DOWN=1,q.ROUND_CEIL=2,q.ROUND_FLOOR=3,q.ROUND_HALF_UP=4,q.ROUND_HALF_DOWN=5,q.ROUND_HALF_EVEN=6,q.ROUND_HALF_CEIL=7,q.ROUND_HALF_FLOOR=8,q.EUCLID=9,q.config=q.set=function(t){var e,n;if(null!=t){if("object"!=typeof t)throw Error(a+"Object expected: "+t);if(t.hasOwnProperty(e="DECIMAL_PLACES")&&(w(n=t[e],0,m,e),E=n),t.hasOwnProperty(e="ROUNDING_MODE")&&(w(n=t[e],0,8,e),S=n),t.hasOwnProperty(e="EXPONENTIAL_AT")&&(I(n=t[e])?(w(n[0],-m,0,e),w(n[1],0,m,e),_=n[0],A=n[1]):(w(n,-m,m,e),_=-(A=n<0?-n:n))),t.hasOwnProperty(e="RANGE"))if(I(n=t[e]))w(n[0],-m,-1,e),w(n[1],1,m,e),R=n[0],j=n[1];else{if(w(n,-m,m,e),!n)throw Error(a+e+" cannot be zero: "+n);R=-(j=n<0?-n:n)}if(t.hasOwnProperty(e="CRYPTO")){if((n=t[e])!==!!n)throw Error(a+e+" not true or false: "+n);if(n){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw P=!n,Error(a+"crypto unavailable");P=n}else P=n}if(t.hasOwnProperty(e="MODULO_MODE")&&(w(n=t[e],0,9,e),T=n),t.hasOwnProperty(e="POW_PRECISION")&&(w(n=t[e],0,m,e),F=n),t.hasOwnProperty(e="FORMAT")){if("object"!=typeof(n=t[e]))throw Error(a+e+" not an object: "+n);C=n}if(t.hasOwnProperty(e="ALPHABET")){if("string"!=typeof(n=t[e])||/^.$|\.|(.).*\1/.test(n))throw Error(a+e+" invalid: "+n);D=n}}return{DECIMAL_PLACES:E,ROUNDING_MODE:S,EXPONENTIAL_AT:[_,A],RANGE:[R,j],CRYPTO:P,MODULO_MODE:T,POW_PRECISION:F,FORMAT:C,ALPHABET:D}},q.isBigNumber=function(t){return t instanceof q||t&&!0===t._isBigNumber||!1},q.maximum=q.max=function(){return L(arguments,o.lt)},q.minimum=q.min=function(){return L(arguments,o.gt)},q.random=function(){var t=9007199254740992*Math.random()&2097151?function(){return u(9007199254740992*Math.random())}:function(){return 8388608*(1073741824*Math.random()|0)+(8388608*Math.random()|0)};return function(e){var n,r,i,o,s,l=0,f=[],g=new q(O);if(null==e?e=E:w(e,0,m),o=c(e/p),P)if(crypto.getRandomValues){for(n=crypto.getRandomValues(new Uint32Array(o*=2));l<o;)(s=131072*n[l]+(n[l+1]>>>11))>=9e15?(r=crypto.getRandomValues(new Uint32Array(2)),n[l]=r[0],n[l+1]=r[1]):(f.push(s%1e14),l+=2);l=o/2}else{if(!crypto.randomBytes)throw P=!1,Error(a+"crypto unavailable");for(n=crypto.randomBytes(o*=7);l<o;)(s=281474976710656*(31&n[l])+1099511627776*n[l+1]+4294967296*n[l+2]+16777216*n[l+3]+(n[l+4]<<16)+(n[l+5]<<8)+n[l+6])>=9e15?crypto.randomBytes(7).copy(n,l):(f.push(s%1e14),l+=7);l=o/7}if(!P)for(;l<o;)(s=t())<9e15&&(f[l++]=s%1e14);for(o=f[--l],e%=p,o&&e&&(s=h[p-e],f[l]=u(o/s)*s);0===f[l];f.pop(),l--);if(l<0)f=[i=0];else{for(i=-1;0===f[0];f.splice(0,1),i-=p);for(l=1,s=f[0];s>=10;s/=10,l++);l<p&&(i-=p-l)}return g.e=i,g.c=f,g}}(),r=function(){function t(t,e,n,r){for(var i,o,s=[0],c=0,u=t.length;c<u;){for(o=s.length;o--;s[o]*=e);for(s[0]+=r.indexOf(t.charAt(c++)),i=0;i<s.length;i++)s[i]>n-1&&(null==s[i+1]&&(s[i+1]=0),s[i+1]+=s[i]/n|0,s[i]%=n)}return s.reverse()}return function(e,r,i,o,s){var c,u,a,l,f,p,g,h,d=e.indexOf("."),m=E,y=S;for(d>=0&&(l=F,F=0,e=e.replace(".",""),p=(h=new q(r)).pow(e.length-d),F=l,h.c=t(N(b(p.c),p.e,"0"),10,i,"0123456789"),h.e=h.c.length),a=l=(g=t(e,r,i,s?(c=D,"0123456789"):(c="0123456789",D))).length;0==g[--l];g.pop());if(!g[0])return c.charAt(0);if(d<0?--a:(p.c=g,p.e=a,p.s=o,g=(p=n(p,h,m,y,i)).c,f=p.r,a=p.e),d=g[u=a+m+1],l=i/2,f=f||u<0||null!=g[u+1],f=y<4?(null!=d||f)&&(0==y||y==(p.s<0?3:2)):d>l||d==l&&(4==y||f||6==y&&1&g[u-1]||y==(p.s<0?8:7)),u<1||!g[0])e=f?N(c.charAt(1),-m,c.charAt(0)):c.charAt(0);else{if(g.length=u,f)for(--i;++g[--u]>i;)g[u]=0,u||(++a,g=[1].concat(g));for(l=g.length;!g[--l];);for(d=0,e="";d<=l;e+=c.charAt(g[d++]));e=N(e,a,c.charAt(0))}return e}}(),n=function(){function t(t,e,n){var r,i,o,s,c=0,u=t.length,a=e%d,l=e/d|0;for(t=t.slice();u--;)c=((i=a*(o=t[u]%d)+(r=l*o+(s=t[u]/d|0)*a)%d*d+c)/n|0)+(r/d|0)+l*s,t[u]=i%n;return c&&(t=[c].concat(t)),t}function e(t,e,n,r){var i,o;if(n!=r)o=n>r?1:-1;else for(i=o=0;i<n;i++)if(t[i]!=e[i]){o=t[i]>e[i]?1:-1;break}return o}function n(t,e,n,r){for(var i=0;n--;)t[n]-=i,i=t[n]<e[n]?1:0,t[n]=i*r+t[n]-e[n];for(;!t[0]&&t.length>1;t.splice(0,1));}return function(r,i,o,s,c){var a,l,g,h,d,m,b,x,w,I,v,B,N,O,E,S,_,A=r.s==i.s?1:-1,R=r.c,j=i.c;if(!(R&&R[0]&&j&&j[0]))return new q(r.s&&i.s&&(R?!j||R[0]!=j[0]:j)?R&&0==R[0]||!j?0*A:A/0:NaN);for(w=(x=new q(A)).c=[],A=o+(l=r.e-i.e)+1,c||(c=f,l=y(r.e/p)-y(i.e/p),A=A/p|0),g=0;j[g]==(R[g]||0);g++);if(j[g]>(R[g]||0)&&l--,A<0)w.push(1),h=!0;else{for(O=R.length,S=j.length,g=0,A+=2,(d=u(c/(j[0]+1)))>1&&(j=t(j,d,c),R=t(R,d,c),S=j.length,O=R.length),N=S,v=(I=R.slice(0,S)).length;v<S;I[v++]=0);_=j.slice(),_=[0].concat(_),E=j[0],j[1]>=c/2&&E++;do{if(d=0,(a=e(j,I,S,v))<0){if(B=I[0],S!=v&&(B=B*c+(I[1]||0)),(d=u(B/E))>1)for(d>=c&&(d=c-1),b=(m=t(j,d,c)).length,v=I.length;1==e(m,I,b,v);)d--,n(m,S<b?_:j,b,c),b=m.length,a=1;else 0==d&&(a=d=1),b=(m=j.slice()).length;if(b<v&&(m=[0].concat(m)),n(I,m,v,c),v=I.length,-1==a)for(;e(j,I,S,v)<1;)d++,n(I,S<v?_:j,v,c),v=I.length}else 0===a&&(d++,I=[0]);w[g++]=d,I[0]?I[v++]=R[N]||0:(I=[R[N]],v=1)}while((N++<O||null!=I[0])&&A--);h=null!=I[0],w[0]||w.splice(0,1)}if(c==f){for(g=1,A=w[0];A>=10;A/=10,g++);U(x,o+(x.e=g+l*p-1)+1,s,h)}else x.e=l,x.r=+h;return x}}(),i=function(){var t=/^(-?)0([xbo])(?=\w[\w.]*$)/i,e=/^([^.]+)\.$/,n=/^\.([^.]+)$/,r=/^-?(Infinity|NaN)$/,i=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(o,s,c,u){var l,f=c?s:s.replace(i,"");if(r.test(f))o.s=isNaN(f)?null:f<0?-1:1,o.c=o.e=null;else{if(!c&&(f=f.replace(t,function(t,e,n){return l="x"==(n=n.toLowerCase())?16:"b"==n?2:8,u&&u!=l?t:e}),u&&(l=u,f=f.replace(e,"$1").replace(n,"0.$1")),s!=f))return new q(f,l);if(q.DEBUG)throw Error(a+"Not a"+(u?" base "+u:"")+" number: "+s);o.c=o.e=o.s=null}}}(),o.absoluteValue=o.abs=function(){var t=new q(this);return t.s<0&&(t.s=1),t},o.comparedTo=function(t,e){return x(this,new q(t,e))},o.decimalPlaces=o.dp=function(t,e){var n,r,i,o=this;if(null!=t)return w(t,0,m),null==e?e=S:w(e,0,8),U(new q(o),t+o.e+1,e);if(!(n=o.c))return null;if(r=((i=n.length-1)-y(this.e/p))*p,i=n[i])for(;i%10==0;i/=10,r--);return r<0&&(r=0),r},o.dividedBy=o.div=function(t,e){return n(this,new q(t,e),E,S)},o.dividedToIntegerBy=o.idiv=function(t,e){return n(this,new q(t,e),0,1)},o.exponentiatedBy=o.pow=function(t,e){var n,r,i,o,s,l,f,g=this;if((t=new q(t)).c&&!t.isInteger())throw Error(a+"Exponent not an integer: "+t);if(null!=e&&(e=new q(e)),o=t.e>14,!g.c||!g.c[0]||1==g.c[0]&&!g.e&&1==g.c.length||!t.c||!t.c[0])return f=new q(Math.pow(+g.valueOf(),o?2-v(t):+t)),e?f.mod(e):f;if(s=t.s<0,e){if(e.c?!e.c[0]:!e.s)return new q(NaN);(r=!s&&g.isInteger()&&e.isInteger())&&(g=g.mod(e))}else{if(t.e>9&&(g.e>0||g.e<-1||(0==g.e?g.c[0]>1||o&&g.c[1]>=24e7:g.c[0]<8e13||o&&g.c[0]<=9999975e7)))return i=g.s<0&&v(t)?-0:0,g.e>-1&&(i=1/i),new q(s?1/i:i);F&&(i=c(F/p+2))}for(o?(n=new q(.5),l=v(t)):l=t%2,s&&(t.s=1),f=new q(O);;){if(l){if(!(f=f.times(g)).c)break;i?f.c.length>i&&(f.c.length=i):r&&(f=f.mod(e))}if(o){if(U(t=t.times(n),t.e+1,1),!t.c[0])break;o=t.e>14,l=v(t)}else{if(!(t=u(t/2)))break;l=t%2}g=g.times(g),i?g.c&&g.c.length>i&&(g.c.length=i):r&&(g=g.mod(e))}return r?f:(s&&(f=O.div(f)),e?f.mod(e):i?U(f,F,S,void 0):f)},o.integerValue=function(t){var e=new q(this);return null==t?t=S:w(t,0,8),U(e,e.e+1,t)},o.isEqualTo=o.eq=function(t,e){return 0===x(this,new q(t,e))},o.isFinite=function(){return!!this.c},o.isGreaterThan=o.gt=function(t,e){return x(this,new q(t,e))>0},o.isGreaterThanOrEqualTo=o.gte=function(t,e){return 1===(e=x(this,new q(t,e)))||0===e},o.isInteger=function(){return!!this.c&&y(this.e/p)>this.c.length-2},o.isLessThan=o.lt=function(t,e){return x(this,new q(t,e))<0},o.isLessThanOrEqualTo=o.lte=function(t,e){return-1===(e=x(this,new q(t,e)))||0===e},o.isNaN=function(){return!this.s},o.isNegative=function(){return this.s<0},o.isPositive=function(){return this.s>0},o.isZero=function(){return!!this.c&&0==this.c[0]},o.minus=function(t,e){var n,r,i,o,s=this,c=s.s;if(e=(t=new q(t,e)).s,!c||!e)return new q(NaN);if(c!=e)return t.s=-e,s.plus(t);var u=s.e/p,a=t.e/p,l=s.c,g=t.c;if(!u||!a){if(!l||!g)return l?(t.s=-e,t):new q(g?s:NaN);if(!l[0]||!g[0])return g[0]?(t.s=-e,t):new q(l[0]?s:3==S?-0:0)}if(u=y(u),a=y(a),l=l.slice(),c=u-a){for((o=c<0)?(c=-c,i=l):(a=u,i=g),i.reverse(),e=c;e--;i.push(0));i.reverse()}else for(r=(o=(c=l.length)<(e=g.length))?c:e,c=e=0;e<r;e++)if(l[e]!=g[e]){o=l[e]<g[e];break}if(o&&(i=l,l=g,g=i,t.s=-t.s),(e=(r=g.length)-(n=l.length))>0)for(;e--;l[n++]=0);for(e=f-1;r>c;){if(l[--r]<g[r]){for(n=r;n&&!l[--n];l[n]=e);--l[n],l[r]+=f}l[r]-=g[r]}for(;0==l[0];l.splice(0,1),--a);return l[0]?Z(t,l,a):(t.s=3==S?-1:1,t.c=[t.e=0],t)},o.modulo=o.mod=function(t,e){var r,i,o=this;return t=new q(t,e),!o.c||!t.s||t.c&&!t.c[0]?new q(NaN):!t.c||o.c&&!o.c[0]?new q(o):(9==T?(i=t.s,t.s=1,r=n(o,t,0,3),t.s=i,r.s*=i):r=n(o,t,0,T),(t=o.minus(r.times(t))).c[0]||1!=T||(t.s=o.s),t)},o.multipliedBy=o.times=function(t,e){var n,r,i,o,s,c,u,a,l,g,h,m,b,x,w,I=this,v=I.c,B=(t=new q(t,e)).c;if(!(v&&B&&v[0]&&B[0]))return!I.s||!t.s||v&&!v[0]&&!B||B&&!B[0]&&!v?t.c=t.e=t.s=null:(t.s*=I.s,v&&B?(t.c=[0],t.e=0):t.c=t.e=null),t;for(r=y(I.e/p)+y(t.e/p),t.s*=I.s,(u=v.length)<(g=B.length)&&(b=v,v=B,B=b,i=u,u=g,g=i),i=u+g,b=[];i--;b.push(0));for(x=f,w=d,i=g;--i>=0;){for(n=0,h=B[i]%w,m=B[i]/w|0,o=i+(s=u);o>i;)n=((a=h*(a=v[--s]%w)+(c=m*a+(l=v[s]/w|0)*h)%w*w+b[o]+n)/x|0)+(c/w|0)+m*l,b[o--]=a%x;b[o]=n}return n?++r:b.splice(0,1),Z(t,b,r)},o.negated=function(){var t=new q(this);return t.s=-t.s||null,t},o.plus=function(t,e){var n,r=this,i=r.s;if(e=(t=new q(t,e)).s,!i||!e)return new q(NaN);if(i!=e)return t.s=-e,r.minus(t);var o=r.e/p,s=t.e/p,c=r.c,u=t.c;if(!o||!s){if(!c||!u)return new q(i/0);if(!c[0]||!u[0])return u[0]?t:new q(c[0]?r:0*i)}if(o=y(o),s=y(s),c=c.slice(),i=o-s){for(i>0?(s=o,n=u):(i=-i,n=c),n.reverse();i--;n.push(0));n.reverse()}for((i=c.length)-(e=u.length)<0&&(n=u,u=c,c=n,e=i),i=0;e;)i=(c[--e]=c[e]+u[e]+i)/f|0,c[e]=f===c[e]?0:c[e]%f;return i&&(c=[i].concat(c),++s),Z(t,c,s)},o.precision=o.sd=function(t,e){var n,r,i,o=this;if(null!=t&&t!==!!t)return w(t,1,m),null==e?e=S:w(e,0,8),U(new q(o),t,e);if(!(n=o.c))return null;if(r=(i=n.length-1)*p+1,i=n[i]){for(;i%10==0;i/=10,r--);for(i=n[0];i>=10;i/=10,r++);}return t&&o.e+1>r&&(r=o.e+1),r},o.shiftedBy=function(t){return w(t,-g,g),this.times("1e"+t)},o.squareRoot=o.sqrt=function(){var t,e,r,i,o,s=this,c=s.c,u=s.s,a=s.e,l=E+4,f=new q("0.5");if(1!==u||!c||!c[0])return new q(!u||u<0&&(!c||c[0])?NaN:c?s:1/0);if(0==(u=Math.sqrt(+s))||u==1/0?(((e=b(c)).length+a)%2==0&&(e+="0"),u=Math.sqrt(e),a=y((a+1)/2)-(a<0||a%2),r=new q(e=u==1/0?"1e"+a:(e=u.toExponential()).slice(0,e.indexOf("e")+1)+a)):r=new q(u+""),r.c[0])for((u=(a=r.e)+l)<3&&(u=0);;)if(o=r,r=f.times(o.plus(n(s,o,l,1))),b(o.c).slice(0,u)===(e=b(r.c)).slice(0,u)){if(r.e<a&&--u,"9999"!=(e=e.slice(u-3,u+1))&&(i||"4999"!=e)){+e&&(+e.slice(1)||"5"!=e.charAt(0))||(U(r,r.e+E+2,1),t=!r.times(r).eq(s));break}if(!i&&(U(o,o.e+E+2,0),o.times(o).eq(s))){r=o;break}l+=4,u+=4,i=1}return U(r,r.e+E+1,S,t)},o.toExponential=function(t,e){return null!=t&&(w(t,0,m),t++),M(this,t,e,1)},o.toFixed=function(t,e){return null!=t&&(w(t,0,m),t=t+this.e+1),M(this,t,e)},o.toFormat=function(t,e){var n=this.toFixed(t,e);if(this.c){var r,i=n.split("."),o=+C.groupSize,s=+C.secondaryGroupSize,c=C.groupSeparator,u=i[0],a=i[1],l=this.s<0,f=l?u.slice(1):u,p=f.length;if(s&&(r=o,o=s,s=r,p-=r),o>0&&p>0){for(r=p%o||o,u=f.substr(0,r);r<p;r+=o)u+=c+f.substr(r,o);s>0&&(u+=c+f.slice(r)),l&&(u="-"+u)}n=a?u+C.decimalSeparator+((s=+C.fractionGroupSize)?a.replace(new RegExp("\\d{"+s+"}\\B","g"),"$&"+C.fractionGroupSeparator):a):u}return n},o.toFraction=function(t){var e,r,i,o,s,c,u,l,f,g,d,m,y=this,x=y.c;if(null!=t&&(!(l=new q(t)).isInteger()&&(l.c||1!==l.s)||l.lt(O)))throw Error(a+"Argument "+(l.isInteger()?"out of range: ":"not an integer: ")+t);if(!x)return y.toString();for(r=new q(O),g=i=new q(O),o=f=new q(O),m=b(x),c=r.e=m.length-y.e-1,r.c[0]=h[(u=c%p)<0?p+u:u],t=!t||l.comparedTo(r)>0?c>0?r:g:l,u=j,j=1/0,l=new q(m),f.c[0]=0;d=n(l,r,0,1),1!=(s=i.plus(d.times(o))).comparedTo(t);)i=o,o=s,g=f.plus(d.times(s=g)),f=s,r=l.minus(d.times(s=r)),l=s;return s=n(t.minus(i),o,0,1),f=f.plus(s.times(g)),i=i.plus(s.times(o)),f.s=g.s=y.s,e=n(g,o,c*=2,S).minus(y).abs().comparedTo(n(f,i,c,S).minus(y).abs())<1?[g.toString(),o.toString()]:[f.toString(),i.toString()],j=u,e},o.toNumber=function(){return+this},o.toPrecision=function(t,e){return null!=t&&w(t,1,m),M(this,t,e,2)},o.toString=function(t){var e,n=this,i=n.s,o=n.e;return null===o?i?(e="Infinity",i<0&&(e="-"+e)):e="NaN":(e=b(n.c),null==t?e=o<=_||o>=A?B(e,o):N(e,o,"0"):(w(t,2,D.length,"Base"),e=r(N(e,o,"0"),10,t,i,!0)),i<0&&n.c[0]&&(e="-"+e)),e},o.valueOf=o.toJSON=function(){var t,e=this,n=e.e;return null===n?e.toString():(t=b(e.c),t=n<=_||n>=A?B(t,n):N(t,n,"0"),e.s<0?"-"+t:t)},o._isBigNumber=!0,null!=e&&q.set(e),q}()).default=o.BigNumber=o,void 0===(r=function(){return o}.call(e,n,e,t))||(t.exports=r)}()},function(t,e,n){"use strict";const r=n(1),i=n(0);t.exports=(()=>r.testForBigInt()?new Function("a","b","return a ** b;"):i.bindKey(Math,"pow"))},function(t,e,n){"use strict";const r=n(25),i=n(54),o=n(55),s=n(0).map(t=>-t),c=(t,e)=>{if((t=r.absNonCoerced(t))===(e=r.absNonCoerced(e)))return t;if(t===BigInt(0))return e;if(e===BigInt(0))return t;for(var n,s,c=BigInt(1);t%BigInt(2)===BigInt(0)&&e%BigInt(2)===BigInt(0);)t/=n=i(o(t),o(e)),e/=n,c*=n;for(;t%BigInt(2)===BigInt(0);)t/=o(t);do{for(;e%BigInt(2)===BigInt(0);)e/=o(e);t>e&&(s=e,e=t,t=s),e-=t}while(e!==BigInt(0));return r.absNonCoerced(c)===BigInt(1)?t:t*c};Object.assign(t.exports,{greatestCommonDenominator:c,gcdReduce:([t,e])=>{const n=c(t,e),r=[t/n,e/n];return r[0]<BigInt(0)&&r[1]<BigInt(0)?s(r):r}})},function(t,e,n){"use strict";t.exports=(t=>e=>e[t])},function(t,e,n){"use strict";t.exports=(()=>{})},function(t,e,n){"use strict";t.exports=((t,...e)=>(function(...n){return t.apply(this,[...n,...e])}))},function(t,e,n){"use strict";const r=n(2),i=n(5),o=n(0),s=n(1),c=n(4)(),u=t=>[t,BigInt(1)];let a,l;s.testForBigInt()&&(a=o.flow(BigInt,u),l=o.map(BigInt));const f=t=>{if(t!=t)return r.generateNaN();if(t===1/0)return r.generateInfinity();if(t===-1/0)return r.generateNegativeInfinity();return t%1?d(String(t)):a(t)},p=/^([0-9]+(?:\.[0-9]+)?)e([0-9]+)/,g=/(?:[0-9]*(?:\.[0-9]*)?|0x[0-9a-zA-Z]*)/,h=/^0x/,d=t=>{let e;if(e=t.match(p)){const t=e[1].lastIndexOf("."),n=~t?e[1].length-t-1:0;return i.gcdReduce([c(BigInt(10),BigInt(+e[2]))*BigInt(e[1].replace(".","")),c(BigInt(10),BigInt(n))])}if(!t.match(g))return generateNaN();if(t.match(h))return m(t);"."===o.last(t)&&t.replace(".","");const n=t.lastIndexOf(".");if(!~n)return a(t);const r=t.length-n-1;return i.gcdReduce([BigInt(t.replace(".","")),c(BigInt(10),BigInt(r))])},m=a;Object.assign(t.exports,{parseFromBigInt:u,parseFromCoercedBigInt:a,parseFromNumber:f,parseFromString:d,parseFromHexString:m,parseDynamic:t=>"string"==typeof t?d(t):"number"==typeof t?f(t):"bigint"==typeof t?u(t):"boolean"==typeof t?t?u(BigInt(1)):r.generateZero():"object"==typeof t&&Array.isArray(t)?l(t):"object"!=typeof t||"bigint"!=typeof t.numerator&&"symbol"!=typeof t.numerator||"bigint"!=typeof t.denominator?r.generateZero():t._getPrimitives()})},function(t,e,n){"use strict";const r=Symbol("NaN"),i=Symbol("Infinity"),o=Symbol("-Infinity");Object.assign(t.exports,{NAN:r,INFINITY:i,NEGATIVE_INFINITY:o})},function(t,e,n){"use strict";const r=n(0),i=Symbol("rational_marker"),o=r.equals(i),s=r.flow(r.property("_marker"),o);Object.assign(t.exports,{MARKER:i,isRational:s,decorateRationalMarker:t=>Object.assign(t,{_marker:i})})},function(t,e,n){"use strict";n(5);t.exports=(([t,e],[n,r])=>[t*n,e*r])},function(t,e,n){"use strict";n(5);t.exports=(([t,e],[n,r])=>{if(!n)throw Error("Cannot divide by zero");return[t*r,e*n]})},function(t,e,n){"use strict";const r=n(13);t.exports=((t,e)=>{const[n,i]=r(t,e);return[n/i,BigInt(1)]})},function(t,e,n){"use strict";const r=n(4)();t.exports=(([t,e],[n,i])=>{const o=n/i;return[r(t,o),r(e,o)]})},function(t,e,n){"use strict";const r=n(14),i=n(0),o=n(2);t.exports=i.partialRight(r,o.generateOne())},function(t,e,n){"use strict";const r=n(16),i=n(28);t.exports=(t=>i(t,r(t)))},function(t,e,n){"use strict";t.exports=(t=>Array.apply(null,{length:t}).map((t,e)=>e))},function(t,e,n){"use strict";t.exports=((t,e,n)=>Object.keys(t).forEach(r=>e.call(n,t[r],r,t)))},function(t,e,n){"use strict";const r=n(6);t.exports=r("0")},function(t,e,n){"use strict";t.exports=(t=>(function(...e){return t(...[this,...e])}))},function(t,e,n){"use strict";const r=n(19);t.exports=(t=>e=>{const n={};return r(e,(e,r)=>{n[r]=t(e,r)}),n})},function(t,e,n){"use strict";const{slice:r}=[];t.exports=(t=>r.call(t,1))},function(t,e,n){"use strict";const r=n(7);t.exports=((t,e)=>(function(...n){return(t[e]||r).apply(t,n)}))},function(t,e,n){"use strict";Object.assign(t.exports,{absCoerced:t=>BigInt(t)<BigInt(0)?-t:t,absNonCoerced:t=>t<BigInt(0)?-t:t,absPrototypeMethod:([t,e])=>t<0?[-t,e]:[t,e]})},function(t,e,n){"use strict";const r=n(0),i=n(11),o=n(56),s=r.mapOwn((t,e)=>()=>{throw new ReferenceError("Function "+String(e)+" does not exist in class prototype")});t.exports=Object.assign(o(i.decorateRationalMarker(s({abs:null,ceil:null,div10:null,dividedBy:null,dividedToIntegerBy:null,eq:null,floor:null,fractionalComponent:null,geq:null,gtZero:null,gt:null,isFinite:null,isFloatingPoint:null,isInfinity:null,isNaN:null,isNonZero:null,isZero:null,leq:null,ltZero:null,lt:null,minus:null,mod:null,multiply:null,neq:null,plus:null,pow:null,pow10:null,toString:null,_getPrimitives:null,_getDenominator:null,_getNumerator:null,_getEncapsulatedRational:null,_setEncapsulatedRational:null})),[["dividedBy",["div","divide"]],["multiply",["mul","multipliedBy"]],["dividedToIntegerBy",["idiv","divToInt"]],["leq","lte"],["geq","gte"],["eq","equals"],["toString",["toFormat","toDecimal","toPrecision"]],["plus","add"],["minus",["subtract","sub"]]]))},function(t,e,n){"use strict";t.exports=(([t,e],[n,r])=>[t*r+n*e,e*r])},function(t,e,n){"use strict";t.exports=(([t,e],[n,r])=>[t*r-n*e,e*r])},function(t,e,n){"use strict";const r=n(0),i=n(30),o=n(17);t.exports=r.flow(o,i)},function(t,e,n){"use stricf";const r=n(0),i=n(2),o=n(31);t.exports=r.partialRight(o,i.generateZero())},function(t,e,n){"use strict";t.exports=(([t,e],[n,r])=>t*r>n*e)},function(t,e,n){"use strict";t.exports=(([t,e],[n,r])=>t*r==n*e)},function(t,e,n){"use strict";t.exports=(([t,e],[n,r])=>t*r!=n*e)},function(t,e,n){"use strict";t.exports=(([t,e],[n,r])=>t*r<n*e)},function(t,e,n){"use strict";const{INFINITY:r}=n(10),i=n(0),o=i.equals(r);t.exports=i.flow(i.first,o)},function(t,e,n){"use strict";t.exports=(t=>t.minus(t.dividedToIntegerBy(1)))},function(t,e,n){"use strict";t.exports=n(38)},function(t,e,n){"use strict";const r=n(0),i=n(53),o=n(75),s=n(1),c=n(92),u=r.equals(o.prototype),a=r.flow(r.constant(l),r.property("prototype"),u);function l(t){if(!(this instanceof l))return new l(t);a()?o.call(this,t):i.call(this,t)}const f=t=>{l.prototype=t?o.prototype:i.prototype};f(!s.testForBigInt());const p=c(l),g=c.toHexStringStripped(p);Object.assign(r.climbProtoChain(l.prototype,2),{toHexString(){return p(this.toDecimal(0))},toHexStringStripped(){return g(this.toDecimal(0))}}),t.exports=Object.assign(l,{useFallback:f,isUsingFallback:a})},function(t,e,n){"use strict";t.exports=(t=>t[t.length-1])},function(t,e,n){"use strict";t.exports=(t=>()=>t)},function(t,e,n){"use strict";const r=n(22),i=n(21);t.exports=r(i)},function(t,e,n){"use strict";t.exports=(t=>Object.defineProperty(t.prototype,"constructor",{enumerable:!1,value:t}))},function(t,e,n){"use strict";t.exports=(t=>e=>n=>Array(Math.max(1,e-n.length+1)).join(t)+n)},function(t,e,n){"use strict";t.exports=(t=>e=>t===e)},function(t,e,n){"use strict";t.exports=n(6)},function(t,e,n){"use strict";const r=n(18);t.exports=((t,e)=>r(e).reduce(()=>t=Object.getPrototypeOf(t),t))},function(t,e,n){"use strict";t.exports=(t=>e=>e.map(t))},function(t,e,n){"use strict";t.exports=((t,...e)=>n=>n[t](...e))},function(t,e,n){"use strict";const r=n(20),i=n(23),o=n(7);t.exports=((...t)=>(function(...e){return i(t).reduce((t,e)=>e.call(this,t),(r(t)||o).apply(this,e))}))},function(t,e,n){"use strict";t.exports=((t,...e)=>(function(...n){return t.apply(this,[...e,...n])}))},function(t,e,n){"use strict";const r=n(24)(Array,"isArray");t.exports=(t=>r(t)?t:void 0===t?[]:[t])},function(t,e,n){"use strict";t.exports=(t=>(function(e){this[t]=e}))},function(t,e,n){"use strict";const r=n(9),i=n(5),o=n(25),s=n(0),c=(n(11),n(26)),u=s.map(V),a=s.map(s.method("_getPrimitives")),l=s.flow(u,a),f=s.map(t=>(...e)=>V(i.gcdReduce(t(...l(e))))),p=s.map(t=>(...e)=>t(...l(e))),[g,h,d,m,y,b,x,w,I,v,B,N,O,E,S,_,A,R]=f([n(12),n(13),n(14),o.absPrototypeMethod,n(27),n(28),n(15),n(57),n(58),n(16),n(59),n(60),n(17),n(61),n(62),n(63),n(64),n(65)]),[j,P,T,F,C,D,q,M,L,Z,U,k,G,H]=p([n(66),n(67),n(32),n(33),n(31),n(68),n(34),n(69),n(29),n(70),n(30),n(35),n(71),n(72)]),$=n(73),z=Object.assign(Object.create(c),{_getPrimitives(){return[this.numerator,this.denominator]},_getDenominator:s.shiftThis(s.property("denominator")),_getNumerator:s.shiftThis(s.property("numerator")),_setDenominator:s.setter("denominator"),_setNumerator:s.setter("numerator")});function V(t){if(!(this instanceof V))return new V(t);const[e,n]=r.parseDynamic(t);Object.assign(this,{numerator:e,denominator:n})}V.prototype=Object.assign(Object.create(z),s.mapToShifted({multiply:g,dividedBy:h,dividedToIntegerBy:d,abs:m,plus:y,minus:b,pow:x,pow10:w,div10:I,toString:(t,e=18)=>$(t._getPrimitives(),V(e)._getPrimitives()),ceil:B,floor:v,mod:N,isFloatingPoint:L,fractionalComponent:O,isZero:j,isNonZero:P,eq:T,neq:F,gt:C,geq:D,lt:q,leq:M,ltZero:Z,gtZero:U,isInfinity:k,isFinite:G,shiftLeft:E,shiftRight:S,and:_,or:A,xor:R})),s.restoreConstructor(V),t.exports=V},function(t,e,n){"use strict";t.exports=((t,e)=>t<e?t:e)},function(t,e,n){"use strict";let r,i,o;n(1).testForBigInt()&&(r=BigInt(1e7),i=BigInt(1)<<BigInt(30),o=(r&-r)*(r&-r)|i),t.exports=(t=>{const e="bigint"==typeof t?t|i:t*r|o;return e&-e})},function(t,e,n){"use strict";const r=n(0);t.exports=((t,e)=>Object.assign(t,e.reduce((t,[e,n])=>Object.assign(t,r.castArray(n).reduce((t,n)=>(t[n]=function(...t){return this[e].apply(this,t)},t),{})),{})))},function(t,e,n){"use strict";const r=n(4)();t.exports=(([t,e],[n,i])=>{const o=n/i;return[t*r(BigInt(10),o),e]})},function(t,e,n){"use strict";const r=n(4)();t.exports=(([t,e],[n,i])=>{const o=n/i;return[t,e*r(BigInt(10),o)]})},function(t,e,n){"use strict";const r=n(0),i=n(9),o=n(1),s=n(29),c=r.flow(n(16),r.partialRight(n(27),o.testForBigInt()?i.parseFromBigInt(BigInt(1)):[1,1]));t.exports=(t=>s(t)?c(t):floor(t))},function(t,e,n){"use strict";const r=n(13),i=n(17),o=n(12);t.exports=((t,e)=>o(i(r(t,e)),e))},function(t,e,n){"use strict";const r=n(15),i=n(12);t.exports=((t,[e,n])=>i(t,r([BigInt(2),BigInt(1)],[e/n,BigInt(1)])))},function(t,e,n){"use strict";const r=n(14),i=n(15);t.exports=((t,[e,n])=>r(t,i([BigInt(2),BigInt(1)],[e/n,BigInt(1)])))},function(t,e,n){"use strict";t.exports=(([t,e],[n,r])=>[t/e&n/r,BigInt(1)])},function(t,e,n){"use strict";t.exports=(([t,e],[n,r])=>[t/e|n/r,BigInt(1)])},function(t,e,n){"use strict";t.exports=(([t,e],[n,r])=>[t/e^n/r,BigInt(1)])},function(t,e,n){"use stricf";const r=n(8),i=n(2),o=n(32);t.exports=r(o,i.generateZero())},function(t,e,n){"use stricf";const r=n(8),i=n(2),o=n(33);t.exports=r(o,i.generateZero())},function(t,e,n){"use strict";t.exports=(([t,e],[n,r])=>t*r>=n*e)},function(t,e,n){"use strict";t.exports=(([t,e],[n,r])=>t*r<=n*e)},function(t,e,n){"use strict";const r=n(0),i=n(2),o=n(34);t.exports=r.partialRight(o,i.generateZero())},function(t,e,n){"use strict";const r=n(35);t.exports=(t=>!r(t))},function(t,e,n){"use strict";const r=n(0),{NAN:i}=n(10),o=r.equals(i);t.exports=r.flow(r.first,o)},function(t,e,n){"use strict";const r=n(74),i=n(0),o=n(4)(),s=n(1).testForBigInt()?BigInt(1e3):1e3,c=t=>"."===i.first(t)?"0"+t:t;t.exports=(([t,e],[n,i])=>{const u=n/i,a=BigInt(u)+s,l=o(BigInt(10),a)/e,f=[].slice.call(String(t*l)),p=f.length-Number(a),g=p<0?["."].concat(Array.apply(null,{length:Math.abs(p)}).map(()=>0)).concat(f).join(""):f.slice(0,p).concat(".").concat(f.slice(p)).join(""),h=g.lastIndexOf(".");return~h?(t=>String(t)?t:"0")(c(r.stripZeroes(g.substr(0,h+1+Number(u))))):c(r.stripZeroes(g))})},function(t,e,n){"use strict";const r=n(0);Object.assign(t.exports,{stripZeroes:t=>{const e=t.lastIndexOf(".");if(!~e)return t;const n=t.substr(0,e)+"."+t.substr(e+1).replace(/0+$/,"");return"."===r.last(n)?n.substr(0,n.length-1):n}})},function(t,e,n){"use strict";const r=n(3),i=n(0),o=n(26),s=n(76);r.config({ERRORS:!1,DECIMAL_PLACES:100});const c=i.map(t=>new V(t)),u=i.map(i.method("_getEncapsulatedRational")),a=i.flow(c,u),l=t=>(...e)=>t(...a(e)),f=i.flow(l,t=>(...e)=>(t=>new V(t))(t(...e))),p=i.map(l),g=i.map(f),h=Object.assign(Object.create(o),{_getEncapsulatedRational:i.shiftThis(i.property("_rational")),_setEncapsulatedRational:i.setter("_rational")}),d=i.map(t=>(e,n)=>e[t](n)),[m,y,b,x,w,I,v]=g(d(["multipliedBy","div","dividedToIntegerBy","plus","minus","pow","mod"])),[B,N,O,E,S,_,A,R]=p(d(["isZero","eq","gt","gte","lt","lte","isFinite","isNaN"])),[j,P,T,F,C,D,q,M]=g([n(77),n(78),n(79),n(36),n(80),n(81),n(82),n(83)]),[L,Z,U,k,G,H,$,z]=p([n(84),n(85),n(86),n(87),n(88),n(89),n(90),n(91)]);function V(t){if(!(this instanceof V))return new V(t);this._setEncapsulatedRational(s.parseDynamic(t))}V.prototype=Object.assign(Object.create(h),i.mapToShifted({multiply:m,dividedBy:y,dividedToIntegerBy:b,abs:j,plus:x,minus:w,pow:I,floor:C,ceil:D,mod:v,isZero:B,eq:N,gt:O,geq:E,lt:S,leq:_,isFinite:A,isNaN:R,abs:j,pow10:P,div10:T,fractionalComponent:F,isNonZero:L,neq:Z,isFloatingPoint:U,ltZero:k,gtZero:G,isInfinity:H,toString:$,shiftLeft:q,shiftRight:M,toHexString:z})),i.restoreConstructor(V),t.exports=V},function(t,e,n){"use strict";const{isRational:r}=n(11),i=n(3),o=t=>{if(r(t))return t._getEncapsulatedRational?t._getEncapsulatedRational():new i(String(t._getNumerator())).dividedBy(String(t._getDenominator()));switch(typeof t){case"string":case"number":return t;case"undefined":return 0;case"object":return null===t?0:t;case"symbol":return String(t);case"bigint":return Number(t);case"boolean":return t?1:0}return t};Object.assign(t.exports,{coerceToParseable:o,parseDynamic:t=>new i(o(t))})},function(t,e,n){"use strict";const r=n(0);t.exports=r.method("abs")},function(t,e,n){"use strict";const r=n(3);t.exports=((t,e)=>t.multipliedBy(new r(10).pow(e)))},function(t,e,n){"use strict";const r=n(3);t.exports=((t,e)=>t.div(new r(10).pow(e)))},function(t,e,n){"use strict";const r=n(0);t.exports=r.method("dividedToIntegerBy",1)},function(t,e,n){"use strict";const r=n(36);t.exports=(t=>r(t).eq(0)?t:t.dividedToIntegerBy(1).plus(1))},function(t,e,n){"use strict";const r=n(3);t.exports=((t,e)=>t.multipliedBy(new r(2).pow(e)))},function(t,e,n){"use strict";const r=n(3);t.exports=((t,e)=>t.dividedToIntegerBy(new r(2).pow(e)))},function(t,e){"use stricf";t.exports=(t=>!t.isZero())},function(t,e,n){"use strict";t.exports=((t,e)=>!t.eq(e))},function(t,e,n){"use strict";t.exports=(t=>!t.isInteger())},function(t,e,n){"use strict";const r=n(0);t.exports=r.method("lt",0)},function(t,e,n){"use stricf";const r=n(0);t.exports=r.method("gt",0)},function(t,e,n){"use strict";t.exports=(t=>!t.isFinite())},function(t,e,n){"use strict";const r=n(0);t.exports=r.method("toPrecision")},function(t,e,n){"use strict";t.exports=(t=>{const e="0x"+t.toString(16);return e.length%2?"0x0"+e.substr(2):e})},function(t,e,n){"use strict";const r=n(0).leftPad("0")(2),i=t=>{const e=(t=>e=>{let n=(e=t(e).abs()).floor(),r=0;const i=[];for(;n.isNonZero();){const e=n.mod(t(1).shiftLeft(8*++r)).and(255);n=n.shiftRight(8),i.unshift(parseInt(String(e),10))}return i})(t),n=Object.assign(e=>{let i=!1;t(e).lt(0)&&(i=!0);const o=n._toBytes(e).reduce((t,e)=>t+r(e.toString(16)),"0x");return i?"-"+o:o},{_toBytes:e});return n},o=/(^0+)/;Object.assign(i,{toHexStringStripped:t=>(...e)=>"0x"+t(...e).substr(2).replace(o,"")}),t.exports=i}])});
//# sourceMappingURL=tough-rational.js.map