@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
2 lines • 61.7 kB
JavaScript
var Tn=Object.defineProperty,xn=Object.defineProperties;var An=Object.getOwnPropertyDescriptors;var Et=Object.getOwnPropertySymbols;var Pn=Object.prototype.hasOwnProperty,kn=Object.prototype.propertyIsEnumerable;var Rt=(t,e,n)=>e in t?Tn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,ee=(t,e)=>{for(var n in e||(e={}))Pn.call(e,n)&&Rt(t,n,e[n]);if(Et)for(var n of Et(e))kn.call(e,n)&&Rt(t,n,e[n]);return t},ae=(t,e)=>xn(t,An(e));import hi from"bn.js";var Ae=9e15,he=1e9,nt="0123456789abcdef",qe="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Ge="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",rt={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-Ae,maxE:Ae,crypto:!1},Ot,ue,w=!0,Ue="[DecimalError] ",ge=Ue+"Invalid argument: ",vt=Ue+"Precision limit exceeded",Dt=Ue+"crypto unavailable",Kt="[object Decimal]",U=Math.floor,O=Math.pow,Bn=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,In=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Nn=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,qt=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,ne=1e7,h=7,Sn=9007199254740991,Cn=qe.length-1,it=Ge.length-1,f={toStringTag:Kt};f.absoluteValue=f.abs=function(){var t=new this.constructor(this);return t.s<0&&(t.s=1),g(t)};f.ceil=function(){return g(new this.constructor(this),this.e+1,2)};f.clampedTo=f.clamp=function(t,e){var n,r=this,i=r.constructor;if(t=new i(t),e=new i(e),!t.s||!e.s)return new i(NaN);if(t.gt(e))throw Error(ge+e);return n=r.cmp(t),n<0?t:r.cmp(e)>0?e:new i(r)};f.comparedTo=f.cmp=function(t){var e,n,r,i,o=this,s=o.d,a=(t=new o.constructor(t)).d,c=o.s,u=t.s;if(!s||!a)return!c||!u?NaN:c!==u?c:s===a?0:!s^c<0?1:-1;if(!s[0]||!a[0])return s[0]?c:a[0]?-u:0;if(c!==u)return c;if(o.e!==t.e)return o.e>t.e^c<0?1:-1;for(r=s.length,i=a.length,e=0,n=r<i?r:i;e<n;++e)if(s[e]!==a[e])return s[e]>a[e]^c<0?1:-1;return r===i?0:r>i^c<0?1:-1};f.cosine=f.cos=function(){var t,e,n=this,r=n.constructor;return n.d?n.d[0]?(t=r.precision,e=r.rounding,r.precision=t+Math.max(n.e,n.sd())+h,r.rounding=1,n=Ln(r,Xt(r,n)),r.precision=t,r.rounding=e,g(ue==2||ue==3?n.neg():n,t,e,!0)):new r(1):new r(NaN)};f.cubeRoot=f.cbrt=function(){var t,e,n,r,i,o,s,a,c,u,m=this,l=m.constructor;if(!m.isFinite()||m.isZero())return new l(m);for(w=!1,o=m.s*O(m.s*m,1/3),!o||Math.abs(o)==1/0?(n=K(m.d),t=m.e,(o=(t-n.length+1)%3)&&(n+=o==1||o==-2?"0":"00"),o=O(n,1/3),t=U((t+1)/3)-(t%3==(t<0?-1:2)),o==1/0?n="5e"+t:(n=o.toExponential(),n=n.slice(0,n.indexOf("e")+1)+t),r=new l(n),r.s=m.s):r=new l(o.toString()),s=(t=l.precision)+3;;)if(a=r,c=a.times(a).times(a),u=c.plus(m),r=N(u.plus(m).times(a),u.plus(c),s+2,1),K(a.d).slice(0,s)===(n=K(r.d)).slice(0,s))if(n=n.slice(s-3,s+1),n=="9999"||!i&&n=="4999"){if(!i&&(g(a,t+1,0),a.times(a).times(a).eq(m))){r=a;break}s+=4,i=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(g(r,t+1,1),e=!r.times(r).times(r).eq(m));break}return w=!0,g(r,t,l.rounding,e)};f.decimalPlaces=f.dp=function(){var t,e=this.d,n=NaN;if(e){if(t=e.length-1,n=(t-U(this.e/h))*h,t=e[t],t)for(;t%10==0;t/=10)n--;n<0&&(n=0)}return n};f.dividedBy=f.div=function(t){return N(this,new this.constructor(t))};f.dividedToIntegerBy=f.divToInt=function(t){var e=this,n=e.constructor;return g(N(e,new n(t),0,1,1),n.precision,n.rounding)};f.equals=f.eq=function(t){return this.cmp(t)===0};f.floor=function(){return g(new this.constructor(this),this.e+1,3)};f.greaterThan=f.gt=function(t){return this.cmp(t)>0};f.greaterThanOrEqualTo=f.gte=function(t){var e=this.cmp(t);return e==1||e===0};f.hyperbolicCosine=f.cosh=function(){var t,e,n,r,i,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;n=s.precision,r=s.rounding,s.precision=n+Math.max(o.e,o.sd())+4,s.rounding=1,i=o.d.length,i<32?(t=Math.ceil(i/3),e=(1/Xe(4,t)).toString()):(t=16,e="2.3283064365386962890625e-10"),o=Pe(s,1,o.times(e),new s(1),!0);for(var c,u=t,m=new s(8);u--;)c=o.times(o),o=a.minus(c.times(m.minus(c.times(m))));return g(o,s.precision=n,s.rounding=r,!0)};f.hyperbolicSine=f.sinh=function(){var t,e,n,r,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(e=o.precision,n=o.rounding,o.precision=e+Math.max(i.e,i.sd())+4,o.rounding=1,r=i.d.length,r<3)i=Pe(o,2,i,i,!0);else{t=1.4*Math.sqrt(r),t=t>16?16:t|0,i=i.times(1/Xe(5,t)),i=Pe(o,2,i,i,!0);for(var s,a=new o(5),c=new o(16),u=new o(20);t--;)s=i.times(i),i=i.times(a.plus(s.times(c.times(s).plus(u))))}return o.precision=e,o.rounding=n,g(i,e,n,!0)};f.hyperbolicTangent=f.tanh=function(){var t,e,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(t=r.precision,e=r.rounding,r.precision=t+7,r.rounding=1,N(n.sinh(),n.cosh(),r.precision=t,r.rounding=e)):new r(n.s)};f.inverseCosine=f.acos=function(){var t,e=this,n=e.constructor,r=e.abs().cmp(1),i=n.precision,o=n.rounding;return r!==-1?r===0?e.isNeg()?te(n,i,o):new n(0):new n(NaN):e.isZero()?te(n,i+4,o).times(.5):(n.precision=i+6,n.rounding=1,e=e.asin(),t=te(n,i+4,o).times(.5),n.precision=i,n.rounding=o,t.minus(e))};f.inverseHyperbolicCosine=f.acosh=function(){var t,e,n=this,r=n.constructor;return n.lte(1)?new r(n.eq(1)?0:NaN):n.isFinite()?(t=r.precision,e=r.rounding,r.precision=t+Math.max(Math.abs(n.e),n.sd())+4,r.rounding=1,w=!1,n=n.times(n).minus(1).sqrt().plus(n),w=!0,r.precision=t,r.rounding=e,n.ln()):new r(n)};f.inverseHyperbolicSine=f.asinh=function(){var t,e,n=this,r=n.constructor;return!n.isFinite()||n.isZero()?new r(n):(t=r.precision,e=r.rounding,r.precision=t+2*Math.max(Math.abs(n.e),n.sd())+6,r.rounding=1,w=!1,n=n.times(n).plus(1).sqrt().plus(n),w=!0,r.precision=t,r.rounding=e,n.ln())};f.inverseHyperbolicTangent=f.atanh=function(){var t,e,n,r,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(t=o.precision,e=o.rounding,r=i.sd(),Math.max(r,t)<2*-i.e-1?g(new o(i),t,e,!0):(o.precision=n=r-i.e,i=N(i.plus(1),new o(1).minus(i),n+t,1),o.precision=t+4,o.rounding=1,i=i.ln(),o.precision=t,o.rounding=e,i.times(.5))):new o(NaN)};f.inverseSine=f.asin=function(){var t,e,n,r,i=this,o=i.constructor;return i.isZero()?new o(i):(e=i.abs().cmp(1),n=o.precision,r=o.rounding,e!==-1?e===0?(t=te(o,n+4,r).times(.5),t.s=i.s,t):new o(NaN):(o.precision=n+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=n,o.rounding=r,i.times(2)))};f.inverseTangent=f.atan=function(){var t,e,n,r,i,o,s,a,c,u=this,m=u.constructor,l=m.precision,d=m.rounding;if(u.isFinite()){if(u.isZero())return new m(u);if(u.abs().eq(1)&&l+4<=it)return s=te(m,l+4,d).times(.25),s.s=u.s,s}else{if(!u.s)return new m(NaN);if(l+4<=it)return s=te(m,l+4,d).times(.5),s.s=u.s,s}for(m.precision=a=l+10,m.rounding=1,n=Math.min(28,a/h+2|0),t=n;t;--t)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(w=!1,e=Math.ceil(a/h),r=1,c=u.times(u),s=new m(u),i=u;t!==-1;)if(i=i.times(c),o=s.minus(i.div(r+=2)),i=i.times(c),s=o.plus(i.div(r+=2)),s.d[e]!==void 0)for(t=e;s.d[t]===o.d[t]&&t--;);return n&&(s=s.times(2<<n-1)),w=!0,g(s,m.precision=l,m.rounding=d,!0)};f.isFinite=function(){return!!this.d};f.isInteger=f.isInt=function(){return!!this.d&&U(this.e/h)>this.d.length-2};f.isNaN=function(){return!this.s};f.isNegative=f.isNeg=function(){return this.s<0};f.isPositive=f.isPos=function(){return this.s>0};f.isZero=function(){return!!this.d&&this.d[0]===0};f.lessThan=f.lt=function(t){return this.cmp(t)<0};f.lessThanOrEqualTo=f.lte=function(t){return this.cmp(t)<1};f.logarithm=f.log=function(t){var e,n,r,i,o,s,a,c,u=this,m=u.constructor,l=m.precision,d=m.rounding,p=5;if(t==null)t=new m(10),e=!0;else{if(t=new m(t),n=t.d,t.s<0||!n||!n[0]||t.eq(1))return new m(NaN);e=t.eq(10)}if(n=u.d,u.s<0||!n||!n[0]||u.eq(1))return new m(n&&!n[0]?-1/0:u.s!=1?NaN:n?0:1/0);if(e)if(n.length>1)o=!0;else{for(i=n[0];i%10===0;)i/=10;o=i!==1}if(w=!1,a=l+p,s=pe(u,a),r=e?Ve(m,a+10):pe(t,a),c=N(s,r,a,1),Se(c.d,i=l,d))do if(a+=10,s=pe(u,a),r=e?Ve(m,a+10):pe(t,a),c=N(s,r,a,1),!o){+K(c.d).slice(i+1,i+15)+1==1e14&&(c=g(c,l+1,0));break}while(Se(c.d,i+=10,d));return w=!0,g(c,l,d)};f.minus=f.sub=function(t){var e,n,r,i,o,s,a,c,u,m,l,d,p=this,y=p.constructor;if(t=new y(t),!p.d||!t.d)return!p.s||!t.s?t=new y(NaN):p.d?t.s=-t.s:t=new y(t.d||p.s!==t.s?p:NaN),t;if(p.s!=t.s)return t.s=-t.s,p.plus(t);if(u=p.d,d=t.d,a=y.precision,c=y.rounding,!u[0]||!d[0]){if(d[0])t.s=-t.s;else if(u[0])t=new y(p);else return new y(c===3?-0:0);return w?g(t,a,c):t}if(n=U(t.e/h),m=U(p.e/h),u=u.slice(),o=m-n,o){for(l=o<0,l?(e=u,o=-o,s=d.length):(e=d,n=m,s=u.length),r=Math.max(Math.ceil(a/h),s)+2,o>r&&(o=r,e.length=1),e.reverse(),r=o;r--;)e.push(0);e.reverse()}else{for(r=u.length,s=d.length,l=r<s,l&&(s=r),r=0;r<s;r++)if(u[r]!=d[r]){l=u[r]<d[r];break}o=0}for(l&&(e=u,u=d,d=e,t.s=-t.s),s=u.length,r=d.length-s;r>0;--r)u[s++]=0;for(r=d.length;r>o;){if(u[--r]<d[r]){for(i=r;i&&u[--i]===0;)u[i]=ne-1;--u[i],u[r]+=ne}u[r]-=d[r]}for(;u[--s]===0;)u.pop();for(;u[0]===0;u.shift())--n;return u[0]?(t.d=u,t.e=We(u,n),w?g(t,a,c):t):new y(c===3?-0:0)};f.modulo=f.mod=function(t){var e,n=this,r=n.constructor;return t=new r(t),!n.d||!t.s||t.d&&!t.d[0]?new r(NaN):!t.d||n.d&&!n.d[0]?g(new r(n),r.precision,r.rounding):(w=!1,r.modulo==9?(e=N(n,t.abs(),0,3,1),e.s*=t.s):e=N(n,t,0,r.modulo,1),e=e.times(t),w=!0,n.minus(e))};f.naturalExponential=f.exp=function(){return ot(this)};f.naturalLogarithm=f.ln=function(){return pe(this)};f.negated=f.neg=function(){var t=new this.constructor(this);return t.s=-t.s,g(t)};f.plus=f.add=function(t){var e,n,r,i,o,s,a,c,u,m,l=this,d=l.constructor;if(t=new d(t),!l.d||!t.d)return!l.s||!t.s?t=new d(NaN):l.d||(t=new d(t.d||l.s===t.s?l:NaN)),t;if(l.s!=t.s)return t.s=-t.s,l.minus(t);if(u=l.d,m=t.d,a=d.precision,c=d.rounding,!u[0]||!m[0])return m[0]||(t=new d(l)),w?g(t,a,c):t;if(o=U(l.e/h),r=U(t.e/h),u=u.slice(),i=o-r,i){for(i<0?(n=u,i=-i,s=m.length):(n=m,r=o,s=u.length),o=Math.ceil(a/h),s=o>s?o+1:s+1,i>s&&(i=s,n.length=1),n.reverse();i--;)n.push(0);n.reverse()}for(s=u.length,i=m.length,s-i<0&&(i=s,n=m,m=u,u=n),e=0;i;)e=(u[--i]=u[i]+m[i]+e)/ne|0,u[i]%=ne;for(e&&(u.unshift(e),++r),s=u.length;u[--s]==0;)u.pop();return t.d=u,t.e=We(u,r),w?g(t,a,c):t};f.precision=f.sd=function(t){var e,n=this;if(t!==void 0&&t!==!!t&&t!==1&&t!==0)throw Error(ge+t);return n.d?(e=Gt(n.d),t&&n.e+1>e&&(e=n.e+1)):e=NaN,e};f.round=function(){var t=this,e=t.constructor;return g(new e(t),t.e+1,e.rounding)};f.sine=f.sin=function(){var t,e,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(t=r.precision,e=r.rounding,r.precision=t+Math.max(n.e,n.sd())+h,r.rounding=1,n=Rn(r,Xt(r,n)),r.precision=t,r.rounding=e,g(ue>2?n.neg():n,t,e,!0)):new r(NaN)};f.squareRoot=f.sqrt=function(){var t,e,n,r,i,o,s=this,a=s.d,c=s.e,u=s.s,m=s.constructor;if(u!==1||!a||!a[0])return new m(!u||u<0&&(!a||a[0])?NaN:a?s:1/0);for(w=!1,u=Math.sqrt(+s),u==0||u==1/0?(e=K(a),(e.length+c)%2==0&&(e+="0"),u=Math.sqrt(e),c=U((c+1)/2)-(c<0||c%2),u==1/0?e="5e"+c:(e=u.toExponential(),e=e.slice(0,e.indexOf("e")+1)+c),r=new m(e)):r=new m(u.toString()),n=(c=m.precision)+3;;)if(o=r,r=o.plus(N(s,o,n+2,1)).times(.5),K(o.d).slice(0,n)===(e=K(r.d)).slice(0,n))if(e=e.slice(n-3,n+1),e=="9999"||!i&&e=="4999"){if(!i&&(g(o,c+1,0),o.times(o).eq(s))){r=o;break}n+=4,i=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&(g(r,c+1,1),t=!r.times(r).eq(s));break}return w=!0,g(r,c,m.rounding,t)};f.tangent=f.tan=function(){var t,e,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(t=r.precision,e=r.rounding,r.precision=t+10,r.rounding=1,n=n.sin(),n.s=1,n=N(n,new r(1).minus(n.times(n)).sqrt(),t+10,0),r.precision=t,r.rounding=e,g(ue==2||ue==4?n.neg():n,t,e,!0)):new r(NaN)};f.times=f.mul=function(t){var e,n,r,i,o,s,a,c,u,m=this,l=m.constructor,d=m.d,p=(t=new l(t)).d;if(t.s*=m.s,!d||!d[0]||!p||!p[0])return new l(!t.s||d&&!d[0]&&!p||p&&!p[0]&&!d?NaN:!d||!p?t.s/0:t.s*0);for(n=U(m.e/h)+U(t.e/h),c=d.length,u=p.length,c<u&&(o=d,d=p,p=o,s=c,c=u,u=s),o=[],s=c+u,r=s;r--;)o.push(0);for(r=u;--r>=0;){for(e=0,i=c+r;i>r;)a=o[i]+p[r]*d[i-r-1]+e,o[i--]=a%ne|0,e=a/ne|0;o[i]=(o[i]+e)%ne|0}for(;!o[--s];)o.pop();return e?++n:o.shift(),t.d=o,t.e=We(o,n),w?g(t,l.precision,l.rounding):t};f.toBinary=function(t,e){return at(this,2,t,e)};f.toDecimalPlaces=f.toDP=function(t,e){var n=this,r=n.constructor;return n=new r(n),t===void 0?n:(z(t,0,he),e===void 0?e=r.rounding:z(e,0,8),g(n,t+n.e+1,e))};f.toExponential=function(t,e){var n,r=this,i=r.constructor;return t===void 0?n=re(r,!0):(z(t,0,he),e===void 0?e=i.rounding:z(e,0,8),r=g(new i(r),t+1,e),n=re(r,!0,t+1)),r.isNeg()&&!r.isZero()?"-"+n:n};f.toFixed=function(t,e){var n,r,i=this,o=i.constructor;return t===void 0?n=re(i):(z(t,0,he),e===void 0?e=o.rounding:z(e,0,8),r=g(new o(i),t+i.e+1,e),n=re(r,!1,t+r.e+1)),i.isNeg()&&!i.isZero()?"-"+n:n};f.toFraction=function(t){var e,n,r,i,o,s,a,c,u,m,l,d,p=this,y=p.d,b=p.constructor;if(!y)return new b(p);if(u=n=new b(1),r=c=new b(0),e=new b(r),o=e.e=Gt(y)-p.e-1,s=o%h,e.d[0]=O(10,s<0?h+s:s),t==null)t=o>0?e:u;else{if(a=new b(t),!a.isInt()||a.lt(u))throw Error(ge+a);t=a.gt(e)?o>0?e:u:a}for(w=!1,a=new b(K(y)),m=b.precision,b.precision=o=y.length*h*2;l=N(a,e,0,1,1),i=n.plus(l.times(r)),i.cmp(t)!=1;)n=r,r=i,i=u,u=c.plus(l.times(i)),c=i,i=e,e=a.minus(l.times(i)),a=i;return i=N(t.minus(n),r,0,1,1),c=c.plus(i.times(u)),n=n.plus(i.times(r)),c.s=u.s=p.s,d=N(u,r,o,1).minus(p).abs().cmp(N(c,n,o,1).minus(p).abs())<1?[u,r]:[c,n],b.precision=m,w=!0,d};f.toHexadecimal=f.toHex=function(t,e){return at(this,16,t,e)};f.toNearest=function(t,e){var n=this,r=n.constructor;if(n=new r(n),t==null){if(!n.d)return n;t=new r(1),e=r.rounding}else{if(t=new r(t),e===void 0?e=r.rounding:z(e,0,8),!n.d)return t.s?n:t;if(!t.d)return t.s&&(t.s=n.s),t}return t.d[0]?(w=!1,n=N(n,t,0,e,1).times(t),w=!0,g(n)):(t.s=n.s,n=t),n};f.toNumber=function(){return+this};f.toOctal=function(t,e){return at(this,8,t,e)};f.toPower=f.pow=function(t){var e,n,r,i,o,s,a=this,c=a.constructor,u=+(t=new c(t));if(!a.d||!t.d||!a.d[0]||!t.d[0])return new c(O(+a,u));if(a=new c(a),a.eq(1))return a;if(r=c.precision,o=c.rounding,t.eq(1))return g(a,r,o);if(e=U(t.e/h),e>=t.d.length-1&&(n=u<0?-u:u)<=Sn)return i=Vt(c,a,n,r),t.s<0?new c(1).div(i):g(i,r,o);if(s=a.s,s<0){if(e<t.d.length-1)return new c(NaN);if((t.d[e]&1)==0&&(s=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=s,a}return n=O(+a,u),e=n==0||!isFinite(n)?U(u*(Math.log("0."+K(a.d))/Math.LN10+a.e+1)):new c(n+"").e,e>c.maxE+1||e<c.minE-1?new c(e>0?s/0:0):(w=!1,c.rounding=a.s=1,n=Math.min(12,(e+"").length),i=ot(t.times(pe(a,r+n)),r),i.d&&(i=g(i,r+5,1),Se(i.d,r,o)&&(e=r+10,i=g(ot(t.times(pe(a,e+n)),e),e+5,1),+K(i.d).slice(r+1,r+15)+1==1e14&&(i=g(i,r+1,0)))),i.s=s,w=!0,c.rounding=o,g(i,r,o))};f.toPrecision=function(t,e){var n,r=this,i=r.constructor;return t===void 0?n=re(r,r.e<=i.toExpNeg||r.e>=i.toExpPos):(z(t,1,he),e===void 0?e=i.rounding:z(e,0,8),r=g(new i(r),t,e),n=re(r,t<=r.e||r.e<=i.toExpNeg,t)),r.isNeg()&&!r.isZero()?"-"+n:n};f.toSignificantDigits=f.toSD=function(t,e){var n=this,r=n.constructor;return t===void 0?(t=r.precision,e=r.rounding):(z(t,1,he),e===void 0?e=r.rounding:z(e,0,8)),g(new r(n),t,e)};f.toString=function(){var t=this,e=t.constructor,n=re(t,t.e<=e.toExpNeg||t.e>=e.toExpPos);return t.isNeg()&&!t.isZero()?"-"+n:n};f.truncated=f.trunc=function(){return g(new this.constructor(this),this.e+1,1)};f.valueOf=f.toJSON=function(){var t=this,e=t.constructor,n=re(t,t.e<=e.toExpNeg||t.e>=e.toExpPos);return t.isNeg()?"-"+n:n};function K(t){var e,n,r,i=t.length-1,o="",s=t[0];if(i>0){for(o+=s,e=1;e<i;e++)r=t[e]+"",n=h-r.length,n&&(o+=fe(n)),o+=r;s=t[e],r=s+"",n=h-r.length,n&&(o+=fe(n))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}function z(t,e,n){if(t!==~~t||t<e||t>n)throw Error(ge+t)}function Se(t,e,n,r){var i,o,s,a;for(o=t[0];o>=10;o/=10)--e;return--e<0?(e+=h,i=0):(i=Math.ceil((e+1)/h),e%=h),o=O(10,h-e),a=t[i]%o|0,r==null?e<3?(e==0?a=a/100|0:e==1&&(a=a/10|0),s=n<4&&a==99999||n>3&&a==49999||a==5e4||a==0):s=(n<4&&a+1==o||n>3&&a+1==o/2)&&(t[i+1]/o/100|0)==O(10,e-2)-1||(a==o/2||a==0)&&(t[i+1]/o/100|0)==0:e<4?(e==0?a=a/1e3|0:e==1?a=a/100|0:e==2&&(a=a/10|0),s=(r||n<4)&&a==9999||!r&&n>3&&a==4999):s=((r||n<4)&&a+1==o||!r&&n>3&&a+1==o/2)&&(t[i+1]/o/1e3|0)==O(10,e-3)-1,s}function Ke(t,e,n){for(var r,i=[0],o,s=0,a=t.length;s<a;){for(o=i.length;o--;)i[o]*=e;for(i[0]+=nt.indexOf(t.charAt(s++)),r=0;r<i.length;r++)i[r]>n-1&&(i[r+1]===void 0&&(i[r+1]=0),i[r+1]+=i[r]/n|0,i[r]%=n)}return i.reverse()}function Ln(t,e){var n,r,i;if(e.isZero())return e;r=e.d.length,r<32?(n=Math.ceil(r/3),i=(1/Xe(4,n)).toString()):(n=16,i="2.3283064365386962890625e-10"),t.precision+=n,e=Pe(t,1,e.times(i),new t(1));for(var o=n;o--;){var s=e.times(e);e=s.times(s).minus(s).times(8).plus(1)}return t.precision-=n,e}var N=function(){function t(r,i,o){var s,a=0,c=r.length;for(r=r.slice();c--;)s=r[c]*i+a,r[c]=s%o|0,a=s/o|0;return a&&r.unshift(a),r}function e(r,i,o,s){var a,c;if(o!=s)c=o>s?1:-1;else for(a=c=0;a<o;a++)if(r[a]!=i[a]){c=r[a]>i[a]?1:-1;break}return c}function n(r,i,o,s){for(var a=0;o--;)r[o]-=a,a=r[o]<i[o]?1:0,r[o]=a*s+r[o]-i[o];for(;!r[0]&&r.length>1;)r.shift()}return function(r,i,o,s,a,c){var u,m,l,d,p,y,b,D,C,J,I,G,Fe,se,$e,Oe,Ne,et,$,ve,De=r.constructor,tt=r.s==i.s?1:-1,V=r.d,S=i.d;if(!V||!V[0]||!S||!S[0])return new De(!r.s||!i.s||(V?S&&V[0]==S[0]:!S)?NaN:V&&V[0]==0||!S?tt*0:tt/0);for(c?(p=1,m=r.e-i.e):(c=ne,p=h,m=U(r.e/p)-U(i.e/p)),$=S.length,Ne=V.length,C=new De(tt),J=C.d=[],l=0;S[l]==(V[l]||0);l++);if(S[l]>(V[l]||0)&&m--,o==null?(se=o=De.precision,s=De.rounding):a?se=o+(r.e-i.e)+1:se=o,se<0)J.push(1),y=!0;else{if(se=se/p+2|0,l=0,$==1){for(d=0,S=S[0],se++;(l<Ne||d)&&se--;l++)$e=d*c+(V[l]||0),J[l]=$e/S|0,d=$e%S|0;y=d||l<Ne}else{for(d=c/(S[0]+1)|0,d>1&&(S=t(S,d,c),V=t(V,d,c),$=S.length,Ne=V.length),Oe=$,I=V.slice(0,$),G=I.length;G<$;)I[G++]=0;ve=S.slice(),ve.unshift(0),et=S[0],S[1]>=c/2&&++et;do d=0,u=e(S,I,$,G),u<0?(Fe=I[0],$!=G&&(Fe=Fe*c+(I[1]||0)),d=Fe/et|0,d>1?(d>=c&&(d=c-1),b=t(S,d,c),D=b.length,G=I.length,u=e(b,I,D,G),u==1&&(d--,n(b,$<D?ve:S,D,c))):(d==0&&(u=d=1),b=S.slice()),D=b.length,D<G&&b.unshift(0),n(I,b,G,c),u==-1&&(G=I.length,u=e(S,I,$,G),u<1&&(d++,n(I,$<G?ve:S,G,c))),G=I.length):u===0&&(d++,I=[0]),J[l++]=d,u&&I[0]?I[G++]=V[Oe]||0:(I=[V[Oe]],G=1);while((Oe++<Ne||I[0]!==void 0)&&se--);y=I[0]!==void 0}J[0]||J.shift()}if(p==1)C.e=m,Ot=y;else{for(l=1,d=J[0];d>=10;d/=10)l++;C.e=l+m*p-1,g(C,a?o+C.e+1:o,s,y)}return C}}();function g(t,e,n,r){var i,o,s,a,c,u,m,l,d,p=t.constructor;e:if(e!=null){if(l=t.d,!l)return t;for(i=1,a=l[0];a>=10;a/=10)i++;if(o=e-i,o<0)o+=h,s=e,m=l[d=0],c=m/O(10,i-s-1)%10|0;else if(d=Math.ceil((o+1)/h),a=l.length,d>=a)if(r){for(;a++<=d;)l.push(0);m=c=0,i=1,o%=h,s=o-h+1}else break e;else{for(m=a=l[d],i=1;a>=10;a/=10)i++;o%=h,s=o-h+i,c=s<0?0:m/O(10,i-s-1)%10|0}if(r=r||e<0||l[d+1]!==void 0||(s<0?m:m%O(10,i-s-1)),u=n<4?(c||r)&&(n==0||n==(t.s<0?3:2)):c>5||c==5&&(n==4||r||n==6&&(o>0?s>0?m/O(10,i-s):0:l[d-1])%10&1||n==(t.s<0?8:7)),e<1||!l[0])return l.length=0,u?(e-=t.e+1,l[0]=O(10,(h-e%h)%h),t.e=-e||0):l[0]=t.e=0,t;if(o==0?(l.length=d,a=1,d--):(l.length=d+1,a=O(10,h-o),l[d]=s>0?(m/O(10,i-s)%O(10,s)|0)*a:0),u)for(;;)if(d==0){for(o=1,s=l[0];s>=10;s/=10)o++;for(s=l[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(t.e++,l[0]==ne&&(l[0]=1));break}else{if(l[d]+=a,l[d]!=ne)break;l[d--]=0,a=1}for(o=l.length;l[--o]===0;)l.pop()}return w&&(t.e>p.maxE?(t.d=null,t.e=NaN):t.e<p.minE&&(t.e=0,t.d=[0])),t}function re(t,e,n){if(!t.isFinite())return Wt(t);var r,i=t.e,o=K(t.d),s=o.length;return e?(n&&(r=n-s)>0?o=o.charAt(0)+"."+o.slice(1)+fe(r):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(t.e<0?"e":"e+")+t.e):i<0?(o="0."+fe(-i-1)+o,n&&(r=n-s)>0&&(o+=fe(r))):i>=s?(o+=fe(i+1-s),n&&(r=n-i-1)>0&&(o=o+"."+fe(r))):((r=i+1)<s&&(o=o.slice(0,r)+"."+o.slice(r)),n&&(r=n-s)>0&&(i+1===s&&(o+="."),o+=fe(r))),o}function We(t,e){var n=t[0];for(e*=h;n>=10;n/=10)e++;return e}function Ve(t,e,n){if(e>Cn)throw w=!0,n&&(t.precision=n),Error(vt);return g(new t(qe),e,1,!0)}function te(t,e,n){if(e>it)throw Error(vt);return g(new t(Ge),e,n,!0)}function Gt(t){var e=t.length-1,n=e*h+1;if(e=t[e],e){for(;e%10==0;e/=10)n--;for(e=t[0];e>=10;e/=10)n++}return n}function fe(t){for(var e="";t--;)e+="0";return e}function Vt(t,e,n,r){var i,o=new t(1),s=Math.ceil(r/h+4);for(w=!1;;){if(n%2&&(o=o.times(e),_t(o.d,s)&&(i=!0)),n=U(n/2),n===0){n=o.d.length-1,i&&o.d[n]===0&&++o.d[n];break}e=e.times(e),_t(e.d,s)}return w=!0,o}function Mt(t){return t.d[t.d.length-1]&1}function Ut(t,e,n){for(var r,i=new t(e[0]),o=0;++o<e.length;)if(r=new t(e[o]),r.s)i[n](r)&&(i=r);else{i=r;break}return i}function ot(t,e){var n,r,i,o,s,a,c,u=0,m=0,l=0,d=t.constructor,p=d.rounding,y=d.precision;if(!t.d||!t.d[0]||t.e>17)return new d(t.d?t.d[0]?t.s<0?0:1/0:1:t.s?t.s<0?0:t:0/0);for(e==null?(w=!1,c=y):c=e,a=new d(.03125);t.e>-2;)t=t.times(a),l+=5;for(r=Math.log(O(2,l))/Math.LN10*2+5|0,c+=r,n=o=s=new d(1),d.precision=c;;){if(o=g(o.times(t),c,1),n=n.times(++m),a=s.plus(N(o,n,c,1)),K(a.d).slice(0,c)===K(s.d).slice(0,c)){for(i=l;i--;)s=g(s.times(s),c,1);if(e==null)if(u<3&&Se(s.d,c-r,p,u))d.precision=c+=10,n=o=a=new d(1),m=0,u++;else return g(s,d.precision=y,p,w=!0);else return d.precision=y,s}s=a}}function pe(t,e){var n,r,i,o,s,a,c,u,m,l,d,p=1,y=10,b=t,D=b.d,C=b.constructor,J=C.rounding,I=C.precision;if(b.s<0||!D||!D[0]||!b.e&&D[0]==1&&D.length==1)return new C(D&&!D[0]?-1/0:b.s!=1?NaN:D?0:b);if(e==null?(w=!1,m=I):m=e,C.precision=m+=y,n=K(D),r=n.charAt(0),Math.abs(o=b.e)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)b=b.times(t),n=K(b.d),r=n.charAt(0),p++;o=b.e,r>1?(b=new C("0."+n),o++):b=new C(r+"."+n.slice(1))}else return u=Ve(C,m+2,I).times(o+""),b=pe(new C(r+"."+n.slice(1)),m-y).plus(u),C.precision=I,e==null?g(b,I,J,w=!0):b;for(l=b,c=s=b=N(b.minus(1),b.plus(1),m,1),d=g(b.times(b),m,1),i=3;;){if(s=g(s.times(d),m,1),u=c.plus(N(s,new C(i),m,1)),K(u.d).slice(0,m)===K(c.d).slice(0,m))if(c=c.times(2),o!==0&&(c=c.plus(Ve(C,m+2,I).times(o+""))),c=N(c,new C(p),m,1),e==null)if(Se(c.d,m-y,J,a))C.precision=m+=y,u=s=b=N(l.minus(1),l.plus(1),m,1),d=g(b.times(b),m,1),i=a=1;else return g(c,C.precision=I,J,w=!0);else return C.precision=I,c;c=u,i+=2}}function Wt(t){return String(t.s*t.s/0)}function st(t,e){var n,r,i;for((n=e.indexOf("."))>-1&&(e=e.replace(".","")),(r=e.search(/e/i))>0?(n<0&&(n=r),n+=+e.slice(r+1),e=e.substring(0,r)):n<0&&(n=e.length),r=0;e.charCodeAt(r)===48;r++);for(i=e.length;e.charCodeAt(i-1)===48;--i);if(e=e.slice(r,i),e){if(i-=r,t.e=n=n-r-1,t.d=[],r=(n+1)%h,n<0&&(r+=h),r<i){for(r&&t.d.push(+e.slice(0,r)),i-=h;r<i;)t.d.push(+e.slice(r,r+=h));e=e.slice(r),r=h-e.length}else r-=i;for(;r--;)e+="0";t.d.push(+e),w&&(t.e>t.constructor.maxE?(t.d=null,t.e=NaN):t.e<t.constructor.minE&&(t.e=0,t.d=[0]))}else t.e=0,t.d=[0];return t}function En(t,e){var n,r,i,o,s,a,c,u,m;if(e.indexOf("_")>-1){if(e=e.replace(/(\d)_(?=\d)/g,"$1"),qt.test(e))return st(t,e)}else if(e==="Infinity"||e==="NaN")return+e||(t.s=NaN),t.e=NaN,t.d=null,t;if(In.test(e))n=16,e=e.toLowerCase();else if(Bn.test(e))n=2;else if(Nn.test(e))n=8;else throw Error(ge+e);for(o=e.search(/p/i),o>0?(c=+e.slice(o+1),e=e.substring(2,o)):e=e.slice(2),o=e.indexOf("."),s=o>=0,r=t.constructor,s&&(e=e.replace(".",""),a=e.length,o=a-o,i=Vt(r,new r(n),o,o*2)),u=Ke(e,n,ne),m=u.length-1,o=m;u[o]===0;--o)u.pop();return o<0?new r(t.s*0):(t.e=We(u,m),t.d=u,w=!1,s&&(t=N(t,i,a*4)),c&&(t=t.times(Math.abs(c)<54?O(2,c):Ce.pow(2,c))),w=!0,t)}function Rn(t,e){var n,r=e.d.length;if(r<3)return e.isZero()?e:Pe(t,2,e,e);n=1.4*Math.sqrt(r),n=n>16?16:n|0,e=e.times(1/Xe(5,n)),e=Pe(t,2,e,e);for(var i,o=new t(5),s=new t(16),a=new t(20);n--;)i=e.times(e),e=e.times(o.plus(i.times(s.times(i).minus(a))));return e}function Pe(t,e,n,r,i){var o,s,a,c,u=1,m=t.precision,l=Math.ceil(m/h);for(w=!1,c=n.times(n),a=new t(r);;){if(s=N(a.times(c),new t(e++*e++),m,1),a=i?r.plus(s):r.minus(s),r=N(s.times(c),new t(e++*e++),m,1),s=a.plus(r),s.d[l]!==void 0){for(o=l;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=r,r=s,s=o,u++}return w=!0,s.d.length=l+1,s}function Xe(t,e){for(var n=t;--e;)n*=t;return n}function Xt(t,e){var n,r=e.s<0,i=te(t,t.precision,1),o=i.times(.5);if(e=e.abs(),e.lte(o))return ue=r?4:1,e;if(n=e.divToInt(i),n.isZero())ue=r?3:2;else{if(e=e.minus(n.times(i)),e.lte(o))return ue=Mt(n)?r?2:3:r?4:1,e;ue=Mt(n)?r?1:4:r?3:2}return e.minus(i).abs()}function at(t,e,n,r){var i,o,s,a,c,u,m,l,d,p=t.constructor,y=n!==void 0;if(y?(z(n,1,he),r===void 0?r=p.rounding:z(r,0,8)):(n=p.precision,r=p.rounding),!t.isFinite())m=Wt(t);else{for(m=re(t),s=m.indexOf("."),y?(i=2,e==16?n=n*4-3:e==8&&(n=n*3-2)):i=e,s>=0&&(m=m.replace(".",""),d=new p(1),d.e=m.length-s,d.d=Ke(re(d),10,i),d.e=d.d.length),l=Ke(m,10,i),o=c=l.length;l[--c]==0;)l.pop();if(!l[0])m=y?"0p+0":"0";else{if(s<0?o--:(t=new p(t),t.d=l,t.e=o,t=N(t,d,n,r,0,i),l=t.d,o=t.e,u=Ot),s=l[n],a=i/2,u=u||l[n+1]!==void 0,u=r<4?(s!==void 0||u)&&(r===0||r===(t.s<0?3:2)):s>a||s===a&&(r===4||u||r===6&&l[n-1]&1||r===(t.s<0?8:7)),l.length=n,u)for(;++l[--n]>i-1;)l[n]=0,n||(++o,l.unshift(1));for(c=l.length;!l[c-1];--c);for(s=0,m="";s<c;s++)m+=nt.charAt(l[s]);if(y){if(c>1)if(e==16||e==8){for(s=e==16?4:3,--c;c%s;c++)m+="0";for(l=Ke(m,i,e),c=l.length;!l[c-1];--c);for(s=1,m="1.";s<c;s++)m+=nt.charAt(l[s])}else m=m.charAt(0)+"."+m.slice(1);m=m+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)m="0"+m;m="0."+m}else if(++o>c)for(o-=c;o--;)m+="0";else o<c&&(m=m.slice(0,o)+"."+m.slice(o))}m=(e==16?"0x":e==2?"0b":e==8?"0o":"")+m}return t.s<0?"-"+m:m}function _t(t,e){if(t.length>e)return t.length=e,!0}function Mn(t){return new this(t).abs()}function _n(t){return new this(t).acos()}function Fn(t){return new this(t).acosh()}function On(t,e){return new this(t).plus(e)}function vn(t){return new this(t).asin()}function Dn(t){return new this(t).asinh()}function Kn(t){return new this(t).atan()}function qn(t){return new this(t).atanh()}function Gn(t,e){t=new this(t),e=new this(e);var n,r=this.precision,i=this.rounding,o=r+4;return!t.s||!e.s?n=new this(NaN):!t.d&&!e.d?(n=te(this,o,1).times(e.s>0?.25:.75),n.s=t.s):!e.d||t.isZero()?(n=e.s<0?te(this,r,i):new this(0),n.s=t.s):!t.d||e.isZero()?(n=te(this,o,1).times(.5),n.s=t.s):e.s<0?(this.precision=o,this.rounding=1,n=this.atan(N(t,e,o,1)),e=te(this,o,1),this.precision=r,this.rounding=i,n=t.s<0?n.minus(e):n.plus(e)):n=this.atan(N(t,e,o,1)),n}function Vn(t){return new this(t).cbrt()}function Un(t){return g(t=new this(t),t.e+1,2)}function Wn(t,e,n){return new this(t).clamp(e,n)}function Xn(t){if(!t||typeof t!="object")throw Error(Ue+"Object expected");var e,n,r,i=t.defaults===!0,o=["precision",1,he,"rounding",0,8,"toExpNeg",-Ae,0,"toExpPos",0,Ae,"maxE",0,Ae,"minE",-Ae,0,"modulo",0,9];for(e=0;e<o.length;e+=3)if(n=o[e],i&&(this[n]=rt[n]),(r=t[n])!==void 0)if(U(r)===r&&r>=o[e+1]&&r<=o[e+2])this[n]=r;else throw Error(ge+n+": "+r);if(n="crypto",i&&(this[n]=rt[n]),(r=t[n])!==void 0)if(r===!0||r===!1||r===0||r===1)if(r)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[n]=!0;else throw Error(Dt);else this[n]=!1;else throw Error(ge+n+": "+r);return this}function zn(t){return new this(t).cos()}function Hn(t){return new this(t).cosh()}function zt(t){var e,n,r;function i(o){var s,a,c,u=this;if(!(u instanceof i))return new i(o);if(u.constructor=i,Ft(o)){u.s=o.s,w?!o.d||o.e>i.maxE?(u.e=NaN,u.d=null):o.e<i.minE?(u.e=0,u.d=[0]):(u.e=o.e,u.d=o.d.slice()):(u.e=o.e,u.d=o.d?o.d.slice():o.d);return}if(c=typeof o,c==="number"){if(o===0){u.s=1/o<0?-1:1,u.e=0,u.d=[0];return}if(o<0?(o=-o,u.s=-1):u.s=1,o===~~o&&o<1e7){for(s=0,a=o;a>=10;a/=10)s++;w?s>i.maxE?(u.e=NaN,u.d=null):s<i.minE?(u.e=0,u.d=[0]):(u.e=s,u.d=[o]):(u.e=s,u.d=[o]);return}else if(o*0!==0){o||(u.s=NaN),u.e=NaN,u.d=null;return}return st(u,o.toString())}else if(c!=="string")throw Error(ge+o);return(a=o.charCodeAt(0))===45?(o=o.slice(1),u.s=-1):(a===43&&(o=o.slice(1)),u.s=1),qt.test(o)?st(u,o):En(u,o)}if(i.prototype=f,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.EUCLID=9,i.config=i.set=Xn,i.clone=zt,i.isDecimal=Ft,i.abs=Mn,i.acos=_n,i.acosh=Fn,i.add=On,i.asin=vn,i.asinh=Dn,i.atan=Kn,i.atanh=qn,i.atan2=Gn,i.cbrt=Vn,i.ceil=Un,i.clamp=Wn,i.cos=zn,i.cosh=Hn,i.div=jn,i.exp=Zn,i.floor=Yn,i.hypot=Qn,i.ln=Jn,i.log=$n,i.log10=tr,i.log2=er,i.max=nr,i.min=rr,i.mod=ir,i.mul=or,i.pow=sr,i.random=ar,i.round=ur,i.sign=cr,i.sin=mr,i.sinh=lr,i.sqrt=dr,i.sub=fr,i.sum=pr,i.tan=gr,i.tanh=hr,i.trunc=br,t===void 0&&(t={}),t&&t.defaults!==!0)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],e=0;e<r.length;)t.hasOwnProperty(n=r[e++])||(t[n]=this[n]);return i.config(t),i}function jn(t,e){return new this(t).div(e)}function Zn(t){return new this(t).exp()}function Yn(t){return g(t=new this(t),t.e+1,3)}function Qn(){var t,e,n=new this(0);for(w=!1,t=0;t<arguments.length;)if(e=new this(arguments[t++]),e.d)n.d&&(n=n.plus(e.times(e)));else{if(e.s)return w=!0,new this(1/0);n=e}return w=!0,n.sqrt()}function Ft(t){return t instanceof Ce||t&&t.toStringTag===Kt||!1}function Jn(t){return new this(t).ln()}function $n(t,e){return new this(t).log(e)}function er(t){return new this(t).log(2)}function tr(t){return new this(t).log(10)}function nr(){return Ut(this,arguments,"lt")}function rr(){return Ut(this,arguments,"gt")}function ir(t,e){return new this(t).mod(e)}function or(t,e){return new this(t).mul(e)}function sr(t,e){return new this(t).pow(e)}function ar(t){var e,n,r,i,o=0,s=new this(1),a=[];if(t===void 0?t=this.precision:z(t,1,he),r=Math.ceil(t/h),this.crypto)if(crypto.getRandomValues)for(e=crypto.getRandomValues(new Uint32Array(r));o<r;)i=e[o],i>=429e7?e[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else if(crypto.randomBytes){for(e=crypto.randomBytes(r*=4);o<r;)i=e[o]+(e[o+1]<<8)+(e[o+2]<<16)+((e[o+3]&127)<<24),i>=214e7?crypto.randomBytes(4).copy(e,o):(a.push(i%1e7),o+=4);o=r/4}else throw Error(Dt);else for(;o<r;)a[o++]=Math.random()*1e7|0;for(r=a[--o],t%=h,r&&t&&(i=O(10,h-t),a[o]=(r/i|0)*i);a[o]===0;o--)a.pop();if(o<0)n=0,a=[0];else{for(n=-1;a[0]===0;n-=h)a.shift();for(r=1,i=a[0];i>=10;i/=10)r++;r<h&&(n-=h-r)}return s.e=n,s.d=a,s}function ur(t){return g(t=new this(t),t.e+1,this.rounding)}function cr(t){return t=new this(t),t.d?t.d[0]?t.s:0*t.s:t.s||NaN}function mr(t){return new this(t).sin()}function lr(t){return new this(t).sinh()}function dr(t){return new this(t).sqrt()}function fr(t,e){return new this(t).sub(e)}function pr(){var t=0,e=arguments,n=new this(e[t]);for(w=!1;n.s&&++t<e.length;)n=n.plus(e[t]);return w=!0,g(n,this.precision,this.rounding)}function gr(t){return new this(t).tan()}function hr(t){return new this(t).tanh()}function br(t){return g(t=new this(t),t.e+1,1)}f[Symbol.for("nodejs.util.inspect.custom")]=f.toString;f[Symbol.toStringTag]="Decimal";var Ce=f.constructor=zt(rt);qe=new Ce(qe);Ge=new Ce(Ge);var W=Ce;import Y from"bn.js";var ie=new Y(0),ke=new Y(1),Ht=new Y(-1),ze=new Y(1).shln(64),He=new Y(1).shln(128),wr=ze.sub(ke),ut=64,jt=He.subn(1),ce=-443636,be=-ce,ct=new Y("4295048016"),mt=new Y("79226673521066979257578248091"),Ti=new Y("4295048017"),xi=new Y("79226673521066979257578248090"),Zt=16,Yt="59543866431248",Qt="184467440737095516",Jt="15793534762490258745",yr=new Y(10).pow(new Y(6));var Ai=new Y("18446744073700000000");import B from"bn.js";import Bi from"bn.js";import{PublicKey as Ar}from"@solana/web3.js";import{get as $t,set as Tr}from"lodash";var lt=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let n=e.map(r=>typeof r=="object"?JSON.stringify(r):r).join(", ");throw new Error(n)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},en={},xr={};function Q(t){let e=$t(en,t);if(!e){let n=$t(xr,t);e=new lt({name:t,logLevel:n}),Tr(en,t,e)}return e}import{MINT_SIZE as Oi,TOKEN_PROGRAM_ID as vi,getTransferFeeConfig as Di,unpackMint as Ki}from"@solana/spl-token";var dt=Q("Raydium_accountInfo_util");async function je(t,e,n){let{batchRequest:r,commitment:i="confirmed",chunkCount:o=100}=ee({batchRequest:!1},n),s=ft(e,o),a=new Array(s.length).fill([]);if(r){let c=s.map(l=>{let d=t._buildArgs([l.map(p=>p.toBase58())],i,"base64");return{methodName:"getMultipleAccounts",args:d}}),u=ft(c,10);a=(await(await Promise.all(u.map(async l=>await t._rpcBatchRequest(l)))).flat()).map(l=>(l.error&&dt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${l.error.message}`),l.result.value.map(d=>{if(d){let{data:p,executable:y,lamports:b,owner:D,rentEpoch:C}=d;return p.length!==2&&p[1]!=="base64"&&dt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(p[0],"base64"),executable:y,lamports:b,owner:new Ar(D),rentEpoch:C}}return null})))}else try{a=await Promise.all(s.map(c=>t.getMultipleAccountsInfo(c,i)))}catch(c){c instanceof Error&&dt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${c.message}`)}return a.flat()}import le from"bn.js";import Er from"big.js";import no from"bn.js";import kr from"toformat";var Br=kr,Le=Br;import Ye from"big.js";import Nr from"bn.js";import Sr from"decimal.js-light";import Ee from"bn.js";var tn=9007199254740991;function me(t){let e=Q("Raydium_parseBigNumberish");if(t instanceof Ee)return t;if(typeof t=="string"){if(t.match(/^-?[0-9]+$/))return new Ee(t);e.logWithError(`invalid BigNumberish string: ${t}`)}return typeof t=="number"?(t%1&&e.logWithError(`BigNumberish number underflow: ${t}`),(t>=tn||t<=-tn)&&e.logWithError(`BigNumberish number overflow: ${t}`),new Ee(String(t))):typeof t=="bigint"?new Ee(t.toString()):(e.error(`invalid BigNumberish value: ${t}`),new Ee(0))}var Ze=Q("module/fraction"),gt=Le(Ye),Re=Le(Sr),Cr={[0]:Re.ROUND_DOWN,[1]:Re.ROUND_HALF_UP,[2]:Re.ROUND_UP},Lr={[0]:Ye.roundDown,[1]:Ye.roundHalfUp,[2]:Ye.roundUp},L=class{constructor(e,n=new Nr(1)){this.numerator=me(e),this.denominator=me(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new L(this.denominator,this.numerator)}add(e){let n=e instanceof L?e:new L(me(e));return this.denominator.eq(n.denominator)?new L(this.numerator.add(n.numerator),this.denominator):new L(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(e){let n=e instanceof L?e:new L(me(e));return this.denominator.eq(n.denominator)?new L(this.numerator.sub(n.numerator),this.denominator):new L(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(e){let n=e instanceof L?e:new L(me(e));return new L(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(e){let n=e instanceof L?e:new L(me(e));return new L(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(e,n={groupSeparator:""},r=1){Number.isInteger(e)||Ze.logWithError(`${e} is not an integer.`),e<=0&&Ze.logWithError(`${e} is not positive.`),Re.set({precision:e+1,rounding:Cr[r]});let i=new Re(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return i.toFormat(i.decimalPlaces(),n)}toFixed(e,n={groupSeparator:""},r=1){return Number.isInteger(e)||Ze.logWithError(`${e} is not an integer.`),e<0&&Ze.logWithError(`${e} is negative.`),gt.DP=e,gt.RM=Lr[r]||1,new gt(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,n)}isZero(){return this.numerator.isZero()}};var lo=Q("Raydium_amount"),fo=Le(Er);import{PublicKey as Mr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as nn}from"@solana/spl-token";var rn={chainId:101,address:Mr.default.toBase58(),programId:nn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},ye={chainId:101,address:"So11111111111111111111111111111111111111112",programId:nn.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};import{PublicKey as bt}from"@solana/web3.js";import{PublicKey as E,SystemProgram as on,SYSVAR_RENT_PUBKEY as _r}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Fr}from"@solana/spl-token";function ht({pubkey:t,isSigner:e=!1,isWritable:n=!0}){return{pubkey:t,isWritable:n,isSigner:e}}var xo=[ht({pubkey:Fr,isWritable:!1}),ht({pubkey:on.programId,isWritable:!1}),ht({pubkey:_r,isWritable:!1})];function sn({publicKey:t,transformSol:e}){let n=an(t.toString());if(n instanceof E)return e&&n.equals(Me)?pt:n;if(e&&n.toString()===Me.toBase58())return pt;if(typeof n=="string"){if(n===E.default.toBase58())return E.default;try{return new E(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function an(t){try{return new E(t)}catch{return t}}var Ao=new E("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Po=new E("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),ko=new E("SysvarRent111111111111111111111111111111111"),Bo=new E("SysvarC1ock11111111111111111111111111111111"),Or=new E("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Io=new E("Sysvar1nstructions1111111111111111111111111"),No=on.programId,So=new E("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Co=new E("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Lo=new E("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Eo=new E("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ro=new E("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Mo=new E("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),_o=new E("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Fo=new E("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Oo=new E("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),vo=new E("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Do=new E("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),pt=new E("So11111111111111111111111111111111111111112"),Me=E.default;var wt=class{constructor({mint:e,decimals:n,symbol:r,name:i,skipMint:o=!1,isToken2022:s=!1}){if(e===Me.toBase58()||e instanceof bt&&Me.equals(e)){this.decimals=ye.decimals,this.symbol=ye.symbol,this.name=ye.name,this.mint=new bt(ye.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=r||e.toString().substring(0,6),this.name=i||e.toString().substring(0,6),this.mint=o?bt.default:sn({publicKey:e}),this.isToken2022=s}equals(e){return this===e?!0:this.mint.equals(e.mint)}},Te=wt;Te.WSOL=new wt(ae(ee({},ye),{mint:ye.address}));var yt=class{constructor({decimals:e,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=e,this.symbol=n,this.name=r}equals(e){return this===e}},Qe=yt;Qe.SOL=new yt(rn);import vr from"bn.js";var Yo=new L(new vr(100));var ns=Q("Raydium_price");import{PublicKey as ys}from"@solana/web3.js";import xs from"bn.js";var Dr=new le(0),Ks=new le(1),qs=new le(2),Gs=new le(3),Vs=new le(5),Rr=new le(10),Us=new le(100),Ws=new le(1e3),Xs=new le(1e4);function ft(t,e=1,n=[]){let r=[...t];if(e<=0)return n;for(;r.length;)n.push(r.splice(0,e));return n}import{PublicKey as ga}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ba}from"@solana/spl-token";import{ComputeBudgetProgram as $s,Keypair as na,PublicKey as qr,Transaction as ia,TransactionMessage as sa,VersionedTransaction as aa}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as la}from"@solana/spl-token";var da=Q("Raydium_txUtil");function Pt(t,e){let[n,r]=qr.findProgramAddressSync(t,e);return{publicKey:n,nonce:r}}import{PublicKey as T}from"@solana/web3.js";var xa=new T("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Aa=new T("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Pa=new T("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),ka=new T("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Ba=new T("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Ia=new T("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Na=new T("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Sa=new T("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Ca=new T("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),La=new T("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Ea=new T("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ra=new T("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ma=new T("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),_a=new T("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Fa=new T("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Oa=new T("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),va=new T("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Da=new T("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Ka=new T("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),qa=new T("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ga=new T("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Va=new T("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Gr=new T("CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"),Vr=new T("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),Ur=new T("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2"),Ua=new T("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Wr=new T("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),Wa=new T("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Xr=new T("7AFUeLVRjBfzqK3tTGw8hN48KLQWSk6DTE8xprWdPqix");var Xa={SERUM_MARKET:T.default,OPENBOOK_MARKET:new T("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),UTIL1216:T.default,FarmV3:new T("85BFyr98MbCUU9MVTEgzx1nbhWACbJqLzho6zd6DZcWL"),FarmV5:new T("EcLzTrNg9V7qhcdyXDe2qjtPkiGzDM2UbdRaeaadU5r2"),FarmV6:new T("Farm2hJLcqPtPg8M4rR6DMrsRNc5TPm5Cs4bVQrMe2T7"),AmmV4:new T("HWy1jotHpo6UqeQxx49dpYYdQB8wj9Qk9MdxwjLvDHB8"),AmmStable:new T("DDg4VmQaJV9ogWce7LpcjBA9bv22wRp5uaTPa5pGjijF"),CLMM:new T("devi51mZmdwUJGU9hjN27vEz64Gps7uUefqxg27EAtH"),CLMM_LOCK_PROGRAM_ID:new T("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),CLMM_LOCK_AUTH_ID:new T("8qmHNvu2Kr2C7U8mJL4Vz1vTDxMhVuXKREwU7TNoaVEo"),Router:new T("BVChZ3XFEwTMUk1o9i3HAf91H6mFxSwa5X2wFAWhYPhU"),CREATE_CPMM_POOL_PROGRAM:Gr,CREATE_CPMM_POOL_AUTH:Vr,CREATE_CPMM_POOL_FEE_ACC:Ur,FEE_DESTINATION_ID:new T("3XMrhbv989VxAMi3DErLV9eJht1pHppW5LbKxe9fkEFR"),LOCK_CPMM_PROGRAM:Wr,LCOK_CPMM_AUTH:Xr};import{PublicKey as zr,AddressLookupTableAccount as un}from"@solana/web3.js";var Hr={"2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17":new un({key:new zr("2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17"),state:un.deserialize(Buffer.from("AQAAAP//////////d49+DAAAAAAAAQZMWvw7GUNJdaccNBVnb57OKakxL2BHLYvhRwVILRsgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMGRm/lIRcy/+ytunLDm+e8jOW7xfcSayxDmzpAAAAABt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKkG3fbh7nWP3hhCXbzkbM3athr8TYO5DSf+vfko2KGL/AVKU1D4XciC1hSlVnJ4iilt3x6rq9CmBniISTL07vagBqfVFxksXFEhjMlMPUrxf1ja7gibof1E49vZigAAAAAGp9UXGMd0yShWY5hpHV62i164o5tLbVxzVVshAAAAAIyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZC3BlsePRfEU4nVJ/awTDzVi4bHMaoP21SbbRvAP4KUbIScv+6Yw2LHF/6K0ZjUPibbSWXCirYPGuuVl7zT789IUPLW4CpHr4JNCatp3ELXDLKMv6JJ+37le50lbBJ2LvDQdRqCgtphMF/imcN7mY5YRx2xE1A3MQ+L4QRaYK9u4GRfZP3LsAd00a+IkCpA22UNQMKdq5BFbJuwuOLqc8zxCTDlqxBG8J0HcxtfogQHDK06ukzfaXiNDKAob1MqBHS9lJxDYCwz8gd5DtFqNSTKG5l1zxIaKpDP/sffi2is1H9aKveyXSu5StXElYRl9SD5As0DHE4N0GLnf84/siiKXVyp4Ez121kLcUui/jLLFZEz/BwZK3Ilf9B9OcsEAeDMKAy2vjGSxQODgBz0QwGA+eP4ZjIjrIAQaXENv31QfLlOdXSRCkaybRniDHF4C8YcwhcvsqrOVuTP4B2Na+9wLdtrB31uz2rtlFI5kahdsnp/d1SrASDInYCtTYtdoke4kX+hoKWcEWM4Tle8pTUkUVv4BxS6fje/EzKBE4Qu9N9LMnrw/JNO0hqMVB4rk/2ou4AB1loQ7FZoPwut2o4KZB+0p9xnbrQKw038qjpHar+PyDwvxBRcu5hpHw3dguezeWv+IwvgW5icu8EGkhGa9AkFPPJT7VMSFb8xowveU=","base64"))})};import{PublicKey as cu,sendAndConfirmTransaction as mu,SystemProgram as fu,Transaction as pu,TransactionMessage as hu,VersionedTransaction as bu}from"@solana/web3.js";import yu from"axios";function cn(t){let e=new ArrayBuffer(4);return new DataView(e).setInt32(0,t,!1),new Uint8Array(e)}var Hu=Buffer.from("amm_config","utf8"),ju=Buffer.from("pool","utf8"),Zu=Buffer.from("pool_vault","utf8"),Yu=Buffer.from("pool_reward_vault","utf8"),Qu=Buffer.from("position","utf8"),jr=Buffer.from("tick_array","utf8"),Ju=Buffer.from("operation","utf8"),$u=Buffer.from("pool_tick_array_bitmap_extension","utf8"),ec=Buffer.from("observation","utf8");function de(t,e,n){return Pt([jr,e.toBuffer(),cn(n)],t)}var tc=Buffer.from("locked_position","utf8");import{PublicKey as Wm}from"@solana/web3.js";import{TOKEN_2022_PROGRAM_ID as zm}from"@solana/spl-token";import jm from"bn.js";import{PublicKey as ri}from"@solana/web3.js";import fn,{isBN as pn}from"bn.js";import{bits as ic,BitStructure as oc,blob as Zr,Blob as sc,cstr as ac,f32 as uc,f32be as cc,f64 as mc,f64be as lc,greedy as dc,Layout as Yr,ns64 as fc,ns64be as pc,nu64 as gc,nu64be as hc,offset as bc,s16 as wc,s16be as yc,s24 as Tc,s24be as xc,s32 as Qr,s32be as Ac,s40 as Pc,s40be as kc,s48 as Bc,s48be as Ic,s8 as Nc,seq as Jr,struct as Sc,Structure as $r,u16 as ei,u16be as Cc,u24 as Lc,u24be as Ec,u32 as Rc,u32be as Mc,u40 as _c,u40be as Fc,u48 as Oc,u48be as vc,u8 as ti,UInt as ni,union as Dc,Union as Kc,unionLayoutDiscriminator as qc,utf8 as Gc}from"@solana/buffer-layout";var kt=Yr,mn=$r;var Bt=ni;var ln=ti,_e=ei;var we=Qr;var dn=Jr;var j=Zr;var Be=class extends kt{constructor(n,r,i){super(n,i);this.blob=j(n),this.signed=r}decode(n,r=0){let i=new fn(this.blob.decode(n,r),10,"le");return this.signed?i.fromTwos(this.span*8).clone():i}encode(n,r,i=0){return typeof n=="number"&&(n=new fn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,i)}};function H(t){return new Bt(1,t)}function Ie(t){return new Bt(4,t)}function P(t){return new Be(8,!1,t)}function M(t){return new Be(16,!1,t)}function gn(t){return new Be(8,!0,t)}function hn(t){return new Be(16,!0,t)}var Je=class extends kt{constructor(n,r,i,o){super(n.span,o);this.layout=n,this.decoder=r,this.encoder=i}decode(n,r){return this.decoder(this.layout.decode(n,r))}encode(n,r,i){return this.layout.encode(this.encoder(n),r,i)}getSpan(n,r){return this.layout.getSpan(n,r)}};function k(t){return new Je(j(32),e=>new ri(e),e=>e.toBuffer(),t)}function bn(t){return new Je(ln(),ii,oi,t)}function ii(t){if(t===0)return!1;if(t===1)return!0;throw new Error("Invalid bool: "+t)}function oi(t){return t?1:0}var It=class extends mn{decode(e,n){return super.decode(e,n)}};function X(t,e,n){return new It(t,e,n)}function R(t,e,n){let r,i=typeof e=="number"?e:pn(e)?e.toNumber():new Proxy(e,{get(o,s){if(!r){let a=Reflect.get(o,"count");r=pn(a)?a.toNumber():a,Reflect.set(o,"count",r)}return Reflect.get(o,s)},set(o,s,a){return s==="count"&&(r=a),Reflect.set(o,s,a)}});return dn(t,i,n)}var si=15,Z=class{static async getTickArrays(e,n,r,i,o,s,a){let c=[],u=_.getTickArrayStartIndexByTick(i,o),m=_.getInitializedTickArrayInRange(s,a,o,u,Math.floor(si/2));for(let p=0;p<m.length;p++){let{publicKey:y}=de(n,r,m[p]);c.push(y)}let l=(await je(e,c)).map(p=>p!==null?Nt.decode(p.data):null),d={};for(let p=0;p<c.length;p++){let y=l[p];y!==null&&(d[y.startTickIndex]=ae(ee({},y),{address:c[p]}))}return d}static nextInitializedTick(e,n,r,i,o,s){let{initializedTick:a,tickArrayAddress:c,tickArrayStartTickIndex:u}=this.nextInitializedTickInOneArray(e,n,r,i,o,s);for(;a==null||a.liquidityGross.lten(0);){if(u=_.getNextTickArrayStartIndex(u,o,s),this.checkIsValidStartIndex(u,o))throw new Error("No enough initialized tickArray");let m=r[u];if(m===void 0)continue;let{nextTick:l,tickArrayAddress:d,tickArrayStartTickIndex:p}=this.firstInitializedTickInOneArray(e,n,m,s);[a,c,u]=[l,d,p]}if(a==null)throw new Error("No invaild tickArray cache");return{nextTick:a,tickArrayAddress:c,tickArrayStartTickIndex:u}}static nextInitializedTickArray(e,n,r,i,o){let s=Math.floor(e/Z.tickCount(n)),a=r?_.searchLowBitFromStart(i,o,s-1,1,n):_.searchHightBitFromStart(i,o,s+1,1,n);return a.length>0?{isExist:!0,nextStartIndex:a[0]}:{isExist:!1,nextStartIndex:0}}static firstInitializedTickInOneArray(e,n,r,i){let o;if(i){let a=q-1;for(;a>=0;){let c=r.ticks[a];if(c.liquidityGross.gtn(0)){o=c;break}a=a-1}}else{let a=0;for(;a<q;){let c=r.ticks[a];if(c.liquidityGross.gtn(0)){o=c;break}a=a+1}}let{publicKey:s}=de(e,n,r.startTickIndex);return{nextTick:o,tickArrayAddress:s,tickArrayStartTickIndex:r.startTickIndex}}static nextInitializedTickInOneArray(e,n,r,i,o,s){let a=_.getTickArrayStartIndexByTick(i,o),c=Math.floor((i-a)/o),u=r[a];if(u==null)return{initializedTick:void 0,tickArrayAddress:void 0,tickArrayStartTickIndex:a};let m;if(s)for(;c>=0;){let d=u.ticks[c];if(d.liquidityGross.gtn(0)){m=d;break}c=c-1}else for(c=c+1;c<q;){let d=u.ticks[c];if(d.liquidityGross.gtn(0)){m=d;break}c=c+1}let{publicKey:l}=de(e,n,a);return{initializedTick:m,tickArrayAddress:l,tickArrayStartTickIndex:u.startTickIndex}}static getArrayStartIndex(e,n){let r=this.tickCount(n);return Math.floor(e/r)*r}static checkIsValidStartIndex(e,n){if(_.checkIsOutOfBoundary(e)){if(e>be)return!1;let r=_.getTickArrayStartIndexByTick(ce,n);return e==r}return e%this.tickCount(n)==0}static tickCount(e){return q*e}};var St=14;var xm=X([j(8),H("bump"),_e("index"),k(""),Ie("protocolFeeRate"),Ie("tradeFeeRate"),_e("tickSpacing"),R(P(),8,"")]),ai=X([Ie("blockTimestamp"),gn("tickCumulative"),R(P(),4)]),Am=X([j(8),bn("initialized"),P("recentEpoch"),_e("observationIndex"),k("poolId"),R(ai,100,"observations"),R(P(),4)]),ui=X([H("rewardState"),P("openTime"),P("endTime"),P("lastUpdateTime"),M("emissionsPerSecondX64"),P("rewardTotalEmissioned"),P("rewardClaimed"),k("tokenMint"),k("tokenVault"),k("creator"),M("rewardGrowthGlobalX64")]),ci=X([j(8),H("bump"),k("ammConfig"),k("creator"),k("mintA"),k("mintB"),k("vaultA"),k("vaultB"),k("observationId"),H("mintDecimalsA"),H("mintDecimalsB"),_e("tickSpacing"),M("liquidity"),M("sqrtPriceX64"),we("tickCurrent"),Ie(),M("feeGrowthGlobalX64A"),M("feeGrowthGlobalX64B"),P("protocolFeesTokenA"),P("protocolFeesTokenB"),M("swapInAmountTokenA"),M("swapOutAmountTokenB"),M("swapInAmountTokenB"),M("swapOutAmountTokenA"),H("status"),R(H(),7,""),R(ui,3,"rewardInfos"),R(P(),16,"tickArrayBitmap"),P("totalFeesTokenA"),P("totalFeesClaimedTokenA"),P("totalFeesTokenB"),P("totalFeesClaimedTokenB"),P("fundFeesTokenA"),P("fundFeesTokenB"),P("startTime"),R(P(),15*4-3,"padding")]),mi=X([M("growthInsideLastX64"),P("rewardAmountOwed")]),li=X([j(8),H("bump"),k("nftMint"),k("poolId"),we("tickLower"),we("tickUpper"),M("liquidity"),M("feeGrowthInsideLastX64A"),M("feeGrowthInsideLastX64B"),P("tokenFeesOwedA"),P("tokenFeesOwedB"),R(mi,3,"rewardInfos"),R(P(),8,"")]),Pm=X([j(8),H("bump"),k("poolId"),we("tickLowerIndex"),we("tickUpperIndex"),M("liquidity"),M("feeGrowthInsideLastX64A"),M("feeGrowthInsideLastX64B"),P("tokenFeesOwedA"),P("tokenFeesOwedB"),R(M(),3,"rewardGrowthInside"),R(P(),8,"")]),di=X([we("tick"),hn("liquidityNet"),M("liquidityGross"),M("feeGrowthOutsideX64A"),M("feeGrowthOutsideX64B"),R(M(),3,"rewardGrowthsOutsideX64"),R(Ie(),13,"")]),Nt=X([j(8),k("poolId"),we("startTickIndex"),R(di,q,"ticks"),H("initializedTickCount"),R(H(),115,"")]),km=X([j(329),R(k(),100,"whitelistMints")]),fi=X([j(8),k("poolId"),R(R(P(),8),St,"positiveTickArrayBitmap"),R(R(P(),8),St,"negativeTickArrayBitmap")]),Bm=X([P(),H("bump"),k("owner"),k("poolId"),k("positionId"),k("nftAccount"),R(P(),8)]),Im=X([j(8),H("bump"),k("lockOwner"),k("poolId"),k("positionId"),k("nftAccount"),k("lockNftMint"),P("recentEpoch"),R(P(),8)]);import Cm from"bn.js";var oe=class{static mulDivRoundingUp(e,n,r){let i=e.mul(n),o=i.div(r);return i.mod(r).eq(ie)||(o=o.add(ke)),o}static mulDivFloor(e,n,r){if(r.eq(ie))throw new Error("division by 0");return e.mul(n).div(r)}static mulDivCeil(e,n,r){if(r.eq(ie))throw new Error("division by 0");return e.mul(n).add(r.sub(ke)).div(r)}static x64ToDecimal(e,n){return new W(e.toString()).div(W.pow(2,64)).toDecimalPlaces(n)}static decimalToX64(e){return new B(e.mul(W.pow(2,64)).floor().toFixed())}static wrappingSubU128(e,n){return e.add(He).sub(n).mod(He)}};function v(t,e){return Lt(t.mul(e),64,256)}function gi(t,e,n){let r=t.toTwos(n).shln(e);return r.imaskn(n+1),r.fromTwos(n)}function Lt(t,e,n){let r=t.toTwos(n).shrn(e);return r.imaskn(n-e+1),r.fromTwos(n-e)}var F=class{static sqrtPriceX64ToPrice(e,n,r){return oe.x64ToDecimal(e).pow(2).mul(W.pow(10,n-r))}static priceToSqrtPriceX64(e,n,r){return oe.decimalToX64(e.mul(W.pow(10,r-n)).sqrt())}static getNextSqrtPriceX64FromInput(e,n,r,i){if(!e.gt(ie))throw new Error("sqrtPriceX64 must greater than 0");if(!n.gt(ie))throw new Error("liquidity must greater than 0");return i?this.getNextSqrtPriceFromTokenAmountARoundingUp(e,n,r,!0):this.getNextSqrtPriceFromTokenAmountBRoundingDown(e,n,r,!0)}static getNextSqrtPriceX64FromOutput(e,n,r,i){if(!e.gt(ie))throw new Error("sqrtPriceX64 must greater than 0");if(!n.gt(ie))throw new Error("liquidity must greater than 0");return i?this.getNextSqrtPriceFromTokenAmountBRoundingDown(e,n,r,!1):this.getNextSqrtPriceFromTokenAmountARoundingUp(e,n,r,!1)}static getNextSqrtPriceFromTokenAmountARoundingUp(e,n,r,i){if(r.eq(ie))return e;let o=n.shln(ut);if(i){let s=o,a=o.add(r.mul(e));return a.gte(s)?oe.mulDivCeil(s,e,a):oe.mulDivRoundingUp(s,ke,s.div(e).add(r))}else{let s=r.mul(e);if(!o.gt(s))throw new Error("getNextSqrtPriceFromTokenAmountARoundingUp,liquidityLeftShift must gt amountMulSqrtPrice");let a=o.sub(s);return oe.mulDivCeil(o,e,a)}}static getNextSqrtPriceFromTokenAmountBRoundingDown(e,n,r,i){let o=r.shln(ut);if(i)return e.add(o.div(n));{let s=oe.mulDivRoundingUp(o,ke,n);if(!e.gt(s))throw new Error("getNextSqrtPriceFromTokenAmountBRoundingDown sqrtPriceX64 must gt amountDivLiquidity");return e.sub(s)}}static getSqrtPriceX64FromTick(e){if(!Number.isInteger(e))throw new Error("tick must be integer");if(e<ce||e>be)throw new Error("tick must be in MIN_TICK and MAX_TICK");let n=e<0?e*-1:e,r=(n&1)!=0?new B("18445821805675395072"):new B("18446744073709551616");return(n&2)!=0&&(r=v(r,new B("18444899583751176192"))),(n&4)!=0&&(r=v(r,new B("18443055278223355904"))),(n&8)!=0&&(r=v(r,new B("18439367220385607680"))),(n&16)!=0&&(r=v(r,new B("18431993317065453568"))),(n&32)!=0&&(r=v(r,new B("18417254355718170624"))),(n&64)!=0&&(r=v(r,new B("18387811781193609216"))),(n&128)!=0&&(r=v(r,new B("18329067761203558400"))),(n&256)!=0&&(r=v(r,new B("18212142134806163456"))),(n&512)!=0&&(r=v(r,new B("17980523815641700352"))),(n&1024)!=0&&(r=v(r,new B("17526086738831433728"))),(n&2048)!=0&&(r=v(r,new B("16651378430235570176"))),(n&4096)!=0&&(r=v(r,new B("15030750278694412288"))),(n&8192)!=0&&(r=v(r,new B("12247334978884435968"))),(n&16384)!=0&&(r=v(r,new B("8131365268886854656"))),(n&32768)!=0&&(r=v(r,new B("3584323654725218816"))),(n&65536)!=0&&(r=v(r,new B("696457651848324352"))),(n&131072)!=0&&(r=v(r,new B("26294789957507116"))),(n&262144)!=0&&(r=v(r,new B("37481735321082"))),e>0&&(r=jt.div(r)),r}static getTickFromPrice(e,n,r){return F.getTickFromSqrtPriceX64(F.priceToSqrtPriceX64(e,n,r))}static getTickFromSqrtPriceX64(e){if(e.gt(mt)||e.lt(ct))throw new Error("Provided sqrtPrice is not within the supported sqrtPrice range.");let n=e.bitLength()-1,r=new B(n-64),i=gi(r,32,128),o=new B("8000000000000000","hex"),s=0,a=new B(0),c=n>=64?e.shrn(n-63):e.shln(63-n);for(;o.gt(new B(0))&&s<Zt;){c=c.mul(c);let y=c.shrn(127);c=c.shrn(63+y.toNumber()),a=a.add(o.mul(y)),o=o.shrn(1),s+=1}let u=a.shrn(32),l=i.add(u).mul(new B(Yt)),d=Lt(l.sub(new B(Qt)),64,128).toNumber(),p=Lt(l.add(new B(Jt)),64,128).toNumber();return d==p?d:F.getSqrtPriceX64FromTick(p).lte(e)?p:d}},xe=class{static getTickWithPriceAndTickspacing(e,n,r,i){let s=F.getTickFromSqrtPriceX64(F.priceToSqrtPriceX64(e,r,i))/n;return s<0?s=Math.floor(s):s=Math.ceil(s),s*n}static roundPriceWithTickspacing(e,n,r,i){let o=xe.getTickWithPriceAndTickspacing(e,n,r,i),s=F.getSqrtPriceX64FromTick(o);return F.sqrtPriceX64ToPrice(s,r,i)}};var q=60,Ct=512,_=class{static getTickArrayAddressByTick(e,n,r,i){let o=_.getTickArrayStartIndexByTick(r,i),{publicKey:s}=de(e,n,o);return s}static getTickOffsetInArray(e,n){if(e%n!=0)throw new Error("tickIndex % tickSpacing not equal 0");let r=_.getTickArrayStartIndexByTick(e,n),i=Math.floor((e-r)/n);if(i<0||i>=q)throw new Error("tick offset in array overflow");return i}static getTickArrayBitIndex(e,n){let r=Z.tickCount(n),i=e/r;return e<0&&e%r!=0?i=Math.ceil(i)-1:i=Math.floor(i),i}static getTickArrayStartIndexByTick(e,n){return this.getTickArrayBitIndex(e,n)*Z.tickCount(n)}static getTickArrayOffsetInBitmapByTick(e,n){let r=n*q,i=Math.floor(e/r)+512;return Math.abs(i)}static checkTickArrayIsInitialized(e,n,r){let i=r*q,o=Math.floor(n/i)+512,s=Math.abs(o);return{isInitialized:e.testn(s),startIndex:(s-512)*i}}static getNextTickArrayStartIndex(e,n,r){return r?e-n*q:e+n*q}static mergeTickArrayBitmap(e){let n=new hi(0);for(let r=0;r<e.length;r++)n=n.add(e[r].shln(64*r));return n}static getInitializedTickArrayInRange(e,n,r,i,o){let s=Math.floor(i/(r*q));return[..._.searchLowBitFromStart(e,n,s-1,o,r),..._.searchHightBitFromStart(e,n,s,o,r)]}static getAllInitializedTickArrayStartIndex(e,n,r){return _.searchHightBitFromStart(e,n,-7680,Ct,r)}static getAllInitializedTickArrayInfo(e,n,r,i,o){let s=[],a=_.getAllInitializedTickArrayStartIndex(r,i,o);for(let c of a){let{publicKey:u}=de(e,n,c);s.push({tickArrayStartIndex:c,tickArrayAddress:u})}return s}static getAllInitializedTickInTickArray(e){return e.ticks.filter(n=>n.liquidityGross.gtn(0))}static searchLowBitFromStart(e,n,r,i,o){let s=[...[...n.negativeTickArrayBitmap].reverse(),e.slice(0,8),e.slice(8,16),...n.positiveTickArrayBitmap].map(u=>_.mergeTickArrayBitmap(u)),a=[];for(;r>=-7680;){let u=Math.floor((r+7680)/512),m=(r+7680)%512;if(s[u].testn(m)&&a.push(r),r--,a.length===i)break}let c=Z.tickCount(o);return a.map(u=>u*c)}static searchHightBitFromStart(e,n,r,i,o){let s=[...[...n.negativeTickArrayBitmap].reverse(),e.slice(0,8),e.slice(8,16),...n.positiveTickArrayBitmap].map(u=>_.mergeTickArrayBitmap(u)),a=[];for(;r<7680;){let u=Math.floor((r+7680)/512),m=(r+7680)%512;if(s[u].testn(m)&&a.push(r),r++,a.length===i)break}let c=Z.tickCount(o);return a.map(u=>u*c)}static checkIsOutOfBoundary(e){return e<ce||e>be}static nextInitTick(e,n,r,i,o){if(Z.getArrayStartIndex(n,r)!=e.startTickIndex)return null;let a=Math.floor((n-e.startTickIndex)/r);if(i)for(;a>=0;){if(e.ticks[a].liquidityGross.gtn(0))return e.ticks[a];a=a-1}else for(o||(a=a+1);a<q;){if(e.ticks[a].liquidityGross.gtn(0))return e.ticks[a];a=a+1}return null}static firstInitializedTick(e,n){if(n){let r=q-1;for(;r>=0;){if(e.ticks[r].liquidityGross.gtn(0))return e.ticks[r];r=r-1}}else{let r=0;for(;r<q;){if(e.ticks[r].liquidityGross.gtn(0))return e.ticks[r];r=r+1}}throw Error(`firstInitializedTick check error: ${e} - ${n}`)}static _getTickPriceLegacy({poolInfo:e,tick:n,baseIn:r}){let i=F.getSqrtPriceX64FromTick(n),o=F.sqrtPriceX64ToPrice(i,e.mintA.decimals,e.mintB.decimals);return r?{tick:n,price:o,tickSqrtPriceX64:i}:{tick:n,price:new W(1).div(o),tickSqrtPriceX64:i}}static _getPriceAndTickLegacy({poolInfo:e,price:n,baseIn:r}){let i=r?n:new W(1).div(n),o=xe.getTickWithPriceAndTickspacing(i,e.ammConfig.tickSpacing,e.mintA.decimals,e.mintB.decimals),s=F.getSqrtPriceX64FromTick(o),a=F.sqrtPriceX64ToPrice(s,e.mintA.decimals,e.mintB.decimals);return r?{tick:o,price:a}:{tick:o,price:new W(1).div(a)}}static getTickPrice({poolInfo:e,tick:n,baseIn:r}){let i=F.getSqrtPriceX64FromTick(n),o=F.sqrtPriceX64ToPrice(i,e.mintA.decimals,e.mintB.decimals);return r?{tick:n,price:o,tickSqrtPriceX64:i}:{tick:n,price:new W(1).div(o),tickSqrtPriceX64:i}}static getPriceAndTick({poolInfo:e,price:n,baseIn:r}){let i=r?n:new W(1).div(n),o=xe.getTickWithPriceAndTickspacing(i,e.config.tickSpacing,e.mintA.decimals,e.mintB.decimals),s=F.getSqrtPriceX64FromTick(o),a=F.sqrtPriceX64ToPrice(s,e.mintA.decimals,e.mintB.decimals);return r?{tick:o,price:a}:{tick:o,price:new W(1).div(a)}}};export{Ct as TICK_ARRAY_BITMAP_SIZE,q as TICK_ARRAY_SIZE,_ as TickUtils};
//# sourceMappingURL=tick.mjs.map