@lightprotocol/stateless.js 0.17.2-alpha.1 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/dist/cjs/browser/constants.d.ts +2 -0
  2. package/dist/cjs/browser/idl.d.ts +1015 -0
  3. package/dist/cjs/browser/index.cjs +1 -1
  4. package/dist/cjs/browser/index.cjs.map +1 -1
  5. package/dist/cjs/browser/index.d.ts +1 -0
  6. package/dist/cjs/browser/rpc-interface.d.ts +107 -114
  7. package/dist/cjs/browser/state/types.d.ts +5 -0
  8. package/dist/cjs/browser/utils/test-utils.d.ts +8 -0
  9. package/dist/cjs/node/constants.d.ts +2 -0
  10. package/dist/cjs/node/idl.d.ts +1015 -0
  11. package/dist/cjs/node/index.cjs +1 -1
  12. package/dist/cjs/node/index.cjs.map +1 -1
  13. package/dist/cjs/node/index.d.ts +1 -0
  14. package/dist/cjs/node/rpc-interface.d.ts +107 -114
  15. package/dist/cjs/node/state/types.d.ts +5 -0
  16. package/dist/cjs/node/utils/test-utils.d.ts +8 -0
  17. package/dist/types/index.d.ts +1032 -9
  18. package/package.json +6 -5
  19. package/dist/es/browser/actions/common.d.ts +0 -3
  20. package/dist/es/browser/actions/compress.d.ts +0 -16
  21. package/dist/es/browser/actions/create-account.d.ts +0 -41
  22. package/dist/es/browser/actions/decompress.d.ts +0 -16
  23. package/dist/es/browser/actions/index.d.ts +0 -5
  24. package/dist/es/browser/actions/transfer.d.ts +0 -20
  25. package/dist/es/browser/constants.d.ts +0 -63
  26. package/dist/es/browser/errors.d.ts +0 -74
  27. package/dist/es/browser/index.d.ts +0 -10
  28. package/dist/es/browser/index.js +0 -2
  29. package/dist/es/browser/index.js.map +0 -1
  30. package/dist/es/browser/instruction/index.d.ts +0 -1
  31. package/dist/es/browser/instruction/pack-compressed-accounts.d.ts +0 -35
  32. package/dist/es/browser/programs/index.d.ts +0 -2
  33. package/dist/es/browser/programs/layout.d.ts +0 -25
  34. package/dist/es/browser/programs/system.d.ts +0 -199
  35. package/dist/es/browser/rpc-interface.d.ts +0 -1179
  36. package/dist/es/browser/rpc.d.ts +0 -275
  37. package/dist/es/browser/state/BN254.d.ts +0 -14
  38. package/dist/es/browser/state/compressed-account.d.ts +0 -31
  39. package/dist/es/browser/state/index.d.ts +0 -3
  40. package/dist/es/browser/state/types.d.ts +0 -91
  41. package/dist/es/browser/test-helpers/index.d.ts +0 -2
  42. package/dist/es/browser/test-helpers/merkle-tree/index.d.ts +0 -2
  43. package/dist/es/browser/test-helpers/merkle-tree/indexed-array.d.ts +0 -85
  44. package/dist/es/browser/test-helpers/merkle-tree/merkle-tree.d.ts +0 -92
  45. package/dist/es/browser/test-helpers/test-rpc/get-compressed-accounts.d.ts +0 -7
  46. package/dist/es/browser/test-helpers/test-rpc/get-compressed-token-accounts.d.ts +0 -40
  47. package/dist/es/browser/test-helpers/test-rpc/get-parsed-events.d.ts +0 -13
  48. package/dist/es/browser/test-helpers/test-rpc/index.d.ts +0 -3
  49. package/dist/es/browser/test-helpers/test-rpc/test-rpc.d.ts +0 -249
  50. package/dist/es/browser/utils/address.d.ts +0 -63
  51. package/dist/es/browser/utils/airdrop.d.ts +0 -7
  52. package/dist/es/browser/utils/calculate-compute-unit-price.d.ts +0 -7
  53. package/dist/es/browser/utils/conversion.d.ts +0 -31
  54. package/dist/es/browser/utils/index.d.ts +0 -10
  55. package/dist/es/browser/utils/parse-validity-proof.d.ts +0 -20
  56. package/dist/es/browser/utils/pipe.d.ts +0 -2
  57. package/dist/es/browser/utils/send-and-confirm.d.ts +0 -52
  58. package/dist/es/browser/utils/sleep.d.ts +0 -1
  59. package/dist/es/browser/utils/test-utils.d.ts +0 -23
  60. package/dist/es/browser/utils/validation.d.ts +0 -4
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("@solana/web3.js"),t=require("buffer"),r=require("buffer-layout"),n=require("superstruct"),o="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function s(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var i={exports:{}};!function(e,t){function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function n(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function o(e,t,r){if(o.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var s;"object"==typeof i?i.exports=o:t.BN=o,o.BN=o,o.wordSize=26;try{s="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:require("buffer").Buffer}catch(e){}function a(e,t){var n=e.charCodeAt(t);return n>=48&&n<=57?n-48:n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:void r(0,"Invalid character in "+e)}function u(e,t,r){var n=a(e,r);return r-1>=t&&(n|=a(e,r-1)<<4),n}function l(e,t,n,o){for(var s=0,i=0,a=Math.min(e.length,n),u=t;u<a;u++){var l=e.charCodeAt(u)-48;s*=o,i=l>=49?l-49+10:l>=17?l-17+10:l,r(l>=0&&i<o,"Invalid character"),s+=i}return s}function h(e,t){e.words=t.words,e.length=t.length,e.negative=t.negative,e.red=t.red}if(o.isBN=function(e){return e instanceof o?1:null!==e&&"object"==typeof e&&e.constructor.wordSize===o.wordSize&&Array.isArray(e.words)},o.max=function(e,t){return e.cmp(t)>0?e:t},o.min=function(e,t){return e.cmp(t)<0?e:t},o.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o<e.length&&(16===t?this._parseHex(e,o,n):(this._parseBase(e,t,o),"le"===n&&this._initArray(this.toArray(),t,n)))},o.prototype._initNumber=function(e,t,n){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(r(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===n&&this._initArray(this.toArray(),t,n)},o.prototype._initArray=function(e,t,n){if(r("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var o=0;o<this.length;o++)this.words[o]=0;var s,i,a=0;if("be"===n)for(o=e.length-1,s=0;o>=0;o-=3)i=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[s]|=i<<a&67108863,this.words[s+1]=i>>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);else if("le"===n)for(o=0,s=0;o<e.length;o+=3)i=e[o]|e[o+1]<<8|e[o+2]<<16,this.words[s]|=i<<a&67108863,this.words[s+1]=i>>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);return this._strip()},o.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var o,s=0,i=0;if("be"===r)for(n=e.length-1;n>=t;n-=2)o=u(e,t,n)<<s,this.words[i]|=67108863&o,s>=18?(s-=18,i+=1,this.words[i]|=o>>>26):s+=8;else for(n=(e.length-t)%2==0?t+1:t;n<e.length;n+=2)o=u(e,t,n)<<s,this.words[i]|=67108863&o,s>=18?(s-=18,i+=1,this.words[i]|=o>>>26):s+=8;this._strip()},o.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,o=1;o<=67108863;o*=t)n++;n--,o=o/t|0;for(var s=e.length-r,i=s%n,a=Math.min(s,s-i)+r,u=0,h=r;h<a;h+=n)u=l(e,h,h+n,t),this.imuln(o),this.words[0]+u<67108864?this.words[0]+=u:this._iaddn(u);if(0!==i){var c=1;for(u=l(e,h,e.length,t),h=0;h<i;h++)c*=t;this.imuln(c),this.words[0]+u<67108864?this.words[0]+=u:this._iaddn(u)}this._strip()},o.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},o.prototype._move=function(e){h(e,this)},o.prototype.clone=function(){var e=new o(null);return this.copy(e),e},o.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},o.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{o.prototype[Symbol.for("nodejs.util.inspect.custom")]=c}catch(e){o.prototype.inspect=c}else o.prototype.inspect=c;function c(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],p=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],m=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function f(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var o=0|e.words[0],s=0|t.words[0],i=o*s,a=67108863&i,u=i/67108864|0;r.words[0]=a;for(var l=1;l<n;l++){for(var h=u>>>26,c=67108863&u,d=Math.min(l,t.length-1),p=Math.max(0,l-e.length+1);p<=d;p++){var m=l-p|0;h+=(i=(o=0|e.words[m])*(s=0|t.words[p])+c)/67108864|0,c=67108863&i}r.words[l]=0|c,u=0|h}return 0!==u?r.words[l]=0|u:r.length--,r._strip()}o.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var o=0,s=0,i=0;i<this.length;i++){var a=this.words[i],u=(16777215&(a<<o|s)).toString(16);s=a>>>24-o&16777215,(o+=2)>=26&&(o-=26,i--),n=0!==s||i!==this.length-1?d[6-u.length]+u+n:u+n}for(0!==s&&(n=s.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var l=p[e],h=m[e];n="";var c=this.clone();for(c.negative=0;!c.isZero();){var f=c.modrn(h).toString(e);n=(c=c.idivn(h)).isZero()?f+n:d[l-f.length]+f+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(0,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(0,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},o.prototype.toJSON=function(){return this.toString(16,2)},s&&(o.prototype.toBuffer=function(e,t){return this.toArrayLike(s,e,t)}),o.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},o.prototype.toArrayLike=function(e,t,n){this._strip();var o=this.byteLength(),s=n||Math.max(1,o);r(o<=s,"byte array longer than desired length"),r(s>0,"Requested array length <= 0");var i=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,s);return this["_toArrayLike"+("le"===t?"LE":"BE")](i,o),i},o.prototype._toArrayLikeLE=function(e){for(var t=0,r=0,n=0,o=0;n<this.length;n++){var s=this.words[n]<<o|r;e[t++]=255&s,t<e.length&&(e[t++]=s>>8&255),t<e.length&&(e[t++]=s>>16&255),6===o?(t<e.length&&(e[t++]=s>>24&255),r=0,o=0):(r=s>>>24,o+=2)}if(t<e.length)for(e[t++]=r;t<e.length;)e[t++]=0},o.prototype._toArrayLikeBE=function(e){for(var t=e.length-1,r=0,n=0,o=0;n<this.length;n++){var s=this.words[n]<<o|r;e[t--]=255&s,t>=0&&(e[t--]=s>>8&255),t>=0&&(e[t--]=s>>16&255),6===o?(t>=0&&(e[t--]=s>>24&255),r=0,o=0):(r=s>>>24,o+=2)}if(t>=0)for(e[t--]=r;t>=0;)e[t--]=0},Math.clz32?o.prototype._countBits=function(e){return 32-Math.clz32(e)}:o.prototype._countBits=function(e){var t=e,r=0;return t>=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},o.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},o.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var r=this._zeroBits(this.words[t]);if(e+=r,26!==r)break}return e},o.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},o.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},o.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},o.prototype.isNeg=function(){return 0!==this.negative},o.prototype.neg=function(){return this.clone().ineg()},o.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},o.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this._strip()},o.prototype.ior=function(e){return r(0==(this.negative|e.negative)),this.iuor(e)},o.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},o.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},o.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;r<t.length;r++)this.words[r]=this.words[r]&e.words[r];return this.length=t.length,this._strip()},o.prototype.iand=function(e){return r(0==(this.negative|e.negative)),this.iuand(e)},o.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},o.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},o.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;n<r.length;n++)this.words[n]=t.words[n]^r.words[n];if(this!==t)for(;n<t.length;n++)this.words[n]=t.words[n];return this.length=t.length,this._strip()},o.prototype.ixor=function(e){return r(0==(this.negative|e.negative)),this.iuxor(e)},o.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},o.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},o.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var o=0;o<t;o++)this.words[o]=67108863&~this.words[o];return n>0&&(this.words[o]=~this.words[o]&67108863>>26-n),this._strip()},o.prototype.notn=function(e){return this.clone().inotn(e)},o.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,o=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<<o:this.words[n]&~(1<<o),this._strip()},o.prototype.iadd=function(e){var t,r,n;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(r=this,n=e):(r=e,n=this);for(var o=0,s=0;s<n.length;s++)t=(0|r.words[s])+(0|n.words[s])+o,this.words[s]=67108863&t,o=t>>>26;for(;0!==o&&s<r.length;s++)t=(0|r.words[s])+o,this.words[s]=67108863&t,o=t>>>26;if(this.length=r.length,0!==o)this.words[this.length]=o,this.length++;else if(r!==this)for(;s<r.length;s++)this.words[s]=r.words[s];return this},o.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},o.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(r=this,n=e):(r=e,n=this);for(var s=0,i=0;i<n.length;i++)s=(t=(0|r.words[i])-(0|n.words[i])+s)>>26,this.words[i]=67108863&t;for(;0!==s&&i<r.length;i++)s=(t=(0|r.words[i])+s)>>26,this.words[i]=67108863&t;if(0===s&&i<r.length&&r!==this)for(;i<r.length;i++)this.words[i]=r.words[i];return this.length=Math.max(this.length,i),r!==this&&(this.negative=1),this._strip()},o.prototype.sub=function(e){return this.clone().isub(e)};var g=function(e,t,r){var n,o,s,i=e.words,a=t.words,u=r.words,l=0,h=0|i[0],c=8191&h,d=h>>>13,p=0|i[1],m=8191&p,f=p>>>13,g=0|i[2],w=8191&g,y=g>>>13,v=0|i[3],M=8191&v,E=v>>>13,b=0|i[4],x=8191&b,A=b>>>13,I=0|i[5],T=8191&I,_=I>>>13,k=0|i[6],S=8191&k,C=k>>>13,P=0|i[7],N=8191&P,O=P>>>13,R=0|i[8],L=8191&R,B=R>>>13,U=0|i[9],D=8191&U,F=U>>>13,H=0|a[0],V=8191&H,K=H>>>13,q=0|a[1],Q=8191&q,j=q>>>13,W=0|a[2],$=8191&W,z=W>>>13,Z=0|a[3],J=8191&Z,X=Z>>>13,G=0|a[4],Y=8191&G,ee=G>>>13,te=0|a[5],re=8191&te,ne=te>>>13,oe=0|a[6],se=8191&oe,ie=oe>>>13,ae=0|a[7],ue=8191&ae,le=ae>>>13,he=0|a[8],ce=8191&he,de=he>>>13,pe=0|a[9],me=8191&pe,fe=pe>>>13;r.negative=e.negative^t.negative,r.length=19;var ge=(l+(n=Math.imul(c,V))|0)+((8191&(o=(o=Math.imul(c,K))+Math.imul(d,V)|0))<<13)|0;l=((s=Math.imul(d,K))+(o>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(m,V),o=(o=Math.imul(m,K))+Math.imul(f,V)|0,s=Math.imul(f,K);var we=(l+(n=n+Math.imul(c,Q)|0)|0)+((8191&(o=(o=o+Math.imul(c,j)|0)+Math.imul(d,Q)|0))<<13)|0;l=((s=s+Math.imul(d,j)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(w,V),o=(o=Math.imul(w,K))+Math.imul(y,V)|0,s=Math.imul(y,K),n=n+Math.imul(m,Q)|0,o=(o=o+Math.imul(m,j)|0)+Math.imul(f,Q)|0,s=s+Math.imul(f,j)|0;var ye=(l+(n=n+Math.imul(c,$)|0)|0)+((8191&(o=(o=o+Math.imul(c,z)|0)+Math.imul(d,$)|0))<<13)|0;l=((s=s+Math.imul(d,z)|0)+(o>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(M,V),o=(o=Math.imul(M,K))+Math.imul(E,V)|0,s=Math.imul(E,K),n=n+Math.imul(w,Q)|0,o=(o=o+Math.imul(w,j)|0)+Math.imul(y,Q)|0,s=s+Math.imul(y,j)|0,n=n+Math.imul(m,$)|0,o=(o=o+Math.imul(m,z)|0)+Math.imul(f,$)|0,s=s+Math.imul(f,z)|0;var ve=(l+(n=n+Math.imul(c,J)|0)|0)+((8191&(o=(o=o+Math.imul(c,X)|0)+Math.imul(d,J)|0))<<13)|0;l=((s=s+Math.imul(d,X)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(x,V),o=(o=Math.imul(x,K))+Math.imul(A,V)|0,s=Math.imul(A,K),n=n+Math.imul(M,Q)|0,o=(o=o+Math.imul(M,j)|0)+Math.imul(E,Q)|0,s=s+Math.imul(E,j)|0,n=n+Math.imul(w,$)|0,o=(o=o+Math.imul(w,z)|0)+Math.imul(y,$)|0,s=s+Math.imul(y,z)|0,n=n+Math.imul(m,J)|0,o=(o=o+Math.imul(m,X)|0)+Math.imul(f,J)|0,s=s+Math.imul(f,X)|0;var Me=(l+(n=n+Math.imul(c,Y)|0)|0)+((8191&(o=(o=o+Math.imul(c,ee)|0)+Math.imul(d,Y)|0))<<13)|0;l=((s=s+Math.imul(d,ee)|0)+(o>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(T,V),o=(o=Math.imul(T,K))+Math.imul(_,V)|0,s=Math.imul(_,K),n=n+Math.imul(x,Q)|0,o=(o=o+Math.imul(x,j)|0)+Math.imul(A,Q)|0,s=s+Math.imul(A,j)|0,n=n+Math.imul(M,$)|0,o=(o=o+Math.imul(M,z)|0)+Math.imul(E,$)|0,s=s+Math.imul(E,z)|0,n=n+Math.imul(w,J)|0,o=(o=o+Math.imul(w,X)|0)+Math.imul(y,J)|0,s=s+Math.imul(y,X)|0,n=n+Math.imul(m,Y)|0,o=(o=o+Math.imul(m,ee)|0)+Math.imul(f,Y)|0,s=s+Math.imul(f,ee)|0;var Ee=(l+(n=n+Math.imul(c,re)|0)|0)+((8191&(o=(o=o+Math.imul(c,ne)|0)+Math.imul(d,re)|0))<<13)|0;l=((s=s+Math.imul(d,ne)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(S,V),o=(o=Math.imul(S,K))+Math.imul(C,V)|0,s=Math.imul(C,K),n=n+Math.imul(T,Q)|0,o=(o=o+Math.imul(T,j)|0)+Math.imul(_,Q)|0,s=s+Math.imul(_,j)|0,n=n+Math.imul(x,$)|0,o=(o=o+Math.imul(x,z)|0)+Math.imul(A,$)|0,s=s+Math.imul(A,z)|0,n=n+Math.imul(M,J)|0,o=(o=o+Math.imul(M,X)|0)+Math.imul(E,J)|0,s=s+Math.imul(E,X)|0,n=n+Math.imul(w,Y)|0,o=(o=o+Math.imul(w,ee)|0)+Math.imul(y,Y)|0,s=s+Math.imul(y,ee)|0,n=n+Math.imul(m,re)|0,o=(o=o+Math.imul(m,ne)|0)+Math.imul(f,re)|0,s=s+Math.imul(f,ne)|0;var be=(l+(n=n+Math.imul(c,se)|0)|0)+((8191&(o=(o=o+Math.imul(c,ie)|0)+Math.imul(d,se)|0))<<13)|0;l=((s=s+Math.imul(d,ie)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(N,V),o=(o=Math.imul(N,K))+Math.imul(O,V)|0,s=Math.imul(O,K),n=n+Math.imul(S,Q)|0,o=(o=o+Math.imul(S,j)|0)+Math.imul(C,Q)|0,s=s+Math.imul(C,j)|0,n=n+Math.imul(T,$)|0,o=(o=o+Math.imul(T,z)|0)+Math.imul(_,$)|0,s=s+Math.imul(_,z)|0,n=n+Math.imul(x,J)|0,o=(o=o+Math.imul(x,X)|0)+Math.imul(A,J)|0,s=s+Math.imul(A,X)|0,n=n+Math.imul(M,Y)|0,o=(o=o+Math.imul(M,ee)|0)+Math.imul(E,Y)|0,s=s+Math.imul(E,ee)|0,n=n+Math.imul(w,re)|0,o=(o=o+Math.imul(w,ne)|0)+Math.imul(y,re)|0,s=s+Math.imul(y,ne)|0,n=n+Math.imul(m,se)|0,o=(o=o+Math.imul(m,ie)|0)+Math.imul(f,se)|0,s=s+Math.imul(f,ie)|0;var xe=(l+(n=n+Math.imul(c,ue)|0)|0)+((8191&(o=(o=o+Math.imul(c,le)|0)+Math.imul(d,ue)|0))<<13)|0;l=((s=s+Math.imul(d,le)|0)+(o>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(L,V),o=(o=Math.imul(L,K))+Math.imul(B,V)|0,s=Math.imul(B,K),n=n+Math.imul(N,Q)|0,o=(o=o+Math.imul(N,j)|0)+Math.imul(O,Q)|0,s=s+Math.imul(O,j)|0,n=n+Math.imul(S,$)|0,o=(o=o+Math.imul(S,z)|0)+Math.imul(C,$)|0,s=s+Math.imul(C,z)|0,n=n+Math.imul(T,J)|0,o=(o=o+Math.imul(T,X)|0)+Math.imul(_,J)|0,s=s+Math.imul(_,X)|0,n=n+Math.imul(x,Y)|0,o=(o=o+Math.imul(x,ee)|0)+Math.imul(A,Y)|0,s=s+Math.imul(A,ee)|0,n=n+Math.imul(M,re)|0,o=(o=o+Math.imul(M,ne)|0)+Math.imul(E,re)|0,s=s+Math.imul(E,ne)|0,n=n+Math.imul(w,se)|0,o=(o=o+Math.imul(w,ie)|0)+Math.imul(y,se)|0,s=s+Math.imul(y,ie)|0,n=n+Math.imul(m,ue)|0,o=(o=o+Math.imul(m,le)|0)+Math.imul(f,ue)|0,s=s+Math.imul(f,le)|0;var Ae=(l+(n=n+Math.imul(c,ce)|0)|0)+((8191&(o=(o=o+Math.imul(c,de)|0)+Math.imul(d,ce)|0))<<13)|0;l=((s=s+Math.imul(d,de)|0)+(o>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(D,V),o=(o=Math.imul(D,K))+Math.imul(F,V)|0,s=Math.imul(F,K),n=n+Math.imul(L,Q)|0,o=(o=o+Math.imul(L,j)|0)+Math.imul(B,Q)|0,s=s+Math.imul(B,j)|0,n=n+Math.imul(N,$)|0,o=(o=o+Math.imul(N,z)|0)+Math.imul(O,$)|0,s=s+Math.imul(O,z)|0,n=n+Math.imul(S,J)|0,o=(o=o+Math.imul(S,X)|0)+Math.imul(C,J)|0,s=s+Math.imul(C,X)|0,n=n+Math.imul(T,Y)|0,o=(o=o+Math.imul(T,ee)|0)+Math.imul(_,Y)|0,s=s+Math.imul(_,ee)|0,n=n+Math.imul(x,re)|0,o=(o=o+Math.imul(x,ne)|0)+Math.imul(A,re)|0,s=s+Math.imul(A,ne)|0,n=n+Math.imul(M,se)|0,o=(o=o+Math.imul(M,ie)|0)+Math.imul(E,se)|0,s=s+Math.imul(E,ie)|0,n=n+Math.imul(w,ue)|0,o=(o=o+Math.imul(w,le)|0)+Math.imul(y,ue)|0,s=s+Math.imul(y,le)|0,n=n+Math.imul(m,ce)|0,o=(o=o+Math.imul(m,de)|0)+Math.imul(f,ce)|0,s=s+Math.imul(f,de)|0;var Ie=(l+(n=n+Math.imul(c,me)|0)|0)+((8191&(o=(o=o+Math.imul(c,fe)|0)+Math.imul(d,me)|0))<<13)|0;l=((s=s+Math.imul(d,fe)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(D,Q),o=(o=Math.imul(D,j))+Math.imul(F,Q)|0,s=Math.imul(F,j),n=n+Math.imul(L,$)|0,o=(o=o+Math.imul(L,z)|0)+Math.imul(B,$)|0,s=s+Math.imul(B,z)|0,n=n+Math.imul(N,J)|0,o=(o=o+Math.imul(N,X)|0)+Math.imul(O,J)|0,s=s+Math.imul(O,X)|0,n=n+Math.imul(S,Y)|0,o=(o=o+Math.imul(S,ee)|0)+Math.imul(C,Y)|0,s=s+Math.imul(C,ee)|0,n=n+Math.imul(T,re)|0,o=(o=o+Math.imul(T,ne)|0)+Math.imul(_,re)|0,s=s+Math.imul(_,ne)|0,n=n+Math.imul(x,se)|0,o=(o=o+Math.imul(x,ie)|0)+Math.imul(A,se)|0,s=s+Math.imul(A,ie)|0,n=n+Math.imul(M,ue)|0,o=(o=o+Math.imul(M,le)|0)+Math.imul(E,ue)|0,s=s+Math.imul(E,le)|0,n=n+Math.imul(w,ce)|0,o=(o=o+Math.imul(w,de)|0)+Math.imul(y,ce)|0,s=s+Math.imul(y,de)|0;var Te=(l+(n=n+Math.imul(m,me)|0)|0)+((8191&(o=(o=o+Math.imul(m,fe)|0)+Math.imul(f,me)|0))<<13)|0;l=((s=s+Math.imul(f,fe)|0)+(o>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(D,$),o=(o=Math.imul(D,z))+Math.imul(F,$)|0,s=Math.imul(F,z),n=n+Math.imul(L,J)|0,o=(o=o+Math.imul(L,X)|0)+Math.imul(B,J)|0,s=s+Math.imul(B,X)|0,n=n+Math.imul(N,Y)|0,o=(o=o+Math.imul(N,ee)|0)+Math.imul(O,Y)|0,s=s+Math.imul(O,ee)|0,n=n+Math.imul(S,re)|0,o=(o=o+Math.imul(S,ne)|0)+Math.imul(C,re)|0,s=s+Math.imul(C,ne)|0,n=n+Math.imul(T,se)|0,o=(o=o+Math.imul(T,ie)|0)+Math.imul(_,se)|0,s=s+Math.imul(_,ie)|0,n=n+Math.imul(x,ue)|0,o=(o=o+Math.imul(x,le)|0)+Math.imul(A,ue)|0,s=s+Math.imul(A,le)|0,n=n+Math.imul(M,ce)|0,o=(o=o+Math.imul(M,de)|0)+Math.imul(E,ce)|0,s=s+Math.imul(E,de)|0;var _e=(l+(n=n+Math.imul(w,me)|0)|0)+((8191&(o=(o=o+Math.imul(w,fe)|0)+Math.imul(y,me)|0))<<13)|0;l=((s=s+Math.imul(y,fe)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(D,J),o=(o=Math.imul(D,X))+Math.imul(F,J)|0,s=Math.imul(F,X),n=n+Math.imul(L,Y)|0,o=(o=o+Math.imul(L,ee)|0)+Math.imul(B,Y)|0,s=s+Math.imul(B,ee)|0,n=n+Math.imul(N,re)|0,o=(o=o+Math.imul(N,ne)|0)+Math.imul(O,re)|0,s=s+Math.imul(O,ne)|0,n=n+Math.imul(S,se)|0,o=(o=o+Math.imul(S,ie)|0)+Math.imul(C,se)|0,s=s+Math.imul(C,ie)|0,n=n+Math.imul(T,ue)|0,o=(o=o+Math.imul(T,le)|0)+Math.imul(_,ue)|0,s=s+Math.imul(_,le)|0,n=n+Math.imul(x,ce)|0,o=(o=o+Math.imul(x,de)|0)+Math.imul(A,ce)|0,s=s+Math.imul(A,de)|0;var ke=(l+(n=n+Math.imul(M,me)|0)|0)+((8191&(o=(o=o+Math.imul(M,fe)|0)+Math.imul(E,me)|0))<<13)|0;l=((s=s+Math.imul(E,fe)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(D,Y),o=(o=Math.imul(D,ee))+Math.imul(F,Y)|0,s=Math.imul(F,ee),n=n+Math.imul(L,re)|0,o=(o=o+Math.imul(L,ne)|0)+Math.imul(B,re)|0,s=s+Math.imul(B,ne)|0,n=n+Math.imul(N,se)|0,o=(o=o+Math.imul(N,ie)|0)+Math.imul(O,se)|0,s=s+Math.imul(O,ie)|0,n=n+Math.imul(S,ue)|0,o=(o=o+Math.imul(S,le)|0)+Math.imul(C,ue)|0,s=s+Math.imul(C,le)|0,n=n+Math.imul(T,ce)|0,o=(o=o+Math.imul(T,de)|0)+Math.imul(_,ce)|0,s=s+Math.imul(_,de)|0;var Se=(l+(n=n+Math.imul(x,me)|0)|0)+((8191&(o=(o=o+Math.imul(x,fe)|0)+Math.imul(A,me)|0))<<13)|0;l=((s=s+Math.imul(A,fe)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(D,re),o=(o=Math.imul(D,ne))+Math.imul(F,re)|0,s=Math.imul(F,ne),n=n+Math.imul(L,se)|0,o=(o=o+Math.imul(L,ie)|0)+Math.imul(B,se)|0,s=s+Math.imul(B,ie)|0,n=n+Math.imul(N,ue)|0,o=(o=o+Math.imul(N,le)|0)+Math.imul(O,ue)|0,s=s+Math.imul(O,le)|0,n=n+Math.imul(S,ce)|0,o=(o=o+Math.imul(S,de)|0)+Math.imul(C,ce)|0,s=s+Math.imul(C,de)|0;var Ce=(l+(n=n+Math.imul(T,me)|0)|0)+((8191&(o=(o=o+Math.imul(T,fe)|0)+Math.imul(_,me)|0))<<13)|0;l=((s=s+Math.imul(_,fe)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(D,se),o=(o=Math.imul(D,ie))+Math.imul(F,se)|0,s=Math.imul(F,ie),n=n+Math.imul(L,ue)|0,o=(o=o+Math.imul(L,le)|0)+Math.imul(B,ue)|0,s=s+Math.imul(B,le)|0,n=n+Math.imul(N,ce)|0,o=(o=o+Math.imul(N,de)|0)+Math.imul(O,ce)|0,s=s+Math.imul(O,de)|0;var Pe=(l+(n=n+Math.imul(S,me)|0)|0)+((8191&(o=(o=o+Math.imul(S,fe)|0)+Math.imul(C,me)|0))<<13)|0;l=((s=s+Math.imul(C,fe)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(D,ue),o=(o=Math.imul(D,le))+Math.imul(F,ue)|0,s=Math.imul(F,le),n=n+Math.imul(L,ce)|0,o=(o=o+Math.imul(L,de)|0)+Math.imul(B,ce)|0,s=s+Math.imul(B,de)|0;var Ne=(l+(n=n+Math.imul(N,me)|0)|0)+((8191&(o=(o=o+Math.imul(N,fe)|0)+Math.imul(O,me)|0))<<13)|0;l=((s=s+Math.imul(O,fe)|0)+(o>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,n=Math.imul(D,ce),o=(o=Math.imul(D,de))+Math.imul(F,ce)|0,s=Math.imul(F,de);var Oe=(l+(n=n+Math.imul(L,me)|0)|0)+((8191&(o=(o=o+Math.imul(L,fe)|0)+Math.imul(B,me)|0))<<13)|0;l=((s=s+Math.imul(B,fe)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863;var Re=(l+(n=Math.imul(D,me))|0)+((8191&(o=(o=Math.imul(D,fe))+Math.imul(F,me)|0))<<13)|0;return l=((s=Math.imul(F,fe))+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863,u[0]=ge,u[1]=we,u[2]=ye,u[3]=ve,u[4]=Me,u[5]=Ee,u[6]=be,u[7]=xe,u[8]=Ae,u[9]=Ie,u[10]=Te,u[11]=_e,u[12]=ke,u[13]=Se,u[14]=Ce,u[15]=Pe,u[16]=Ne,u[17]=Oe,u[18]=Re,0!==l&&(u[19]=l,r.length++),r};function w(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,o=0,s=0;s<r.length-1;s++){var i=o;o=0;for(var a=67108863&n,u=Math.min(s,t.length-1),l=Math.max(0,s-e.length+1);l<=u;l++){var h=s-l,c=(0|e.words[h])*(0|t.words[l]),d=67108863&c;a=67108863&(d=d+a|0),o+=(i=(i=i+(c/67108864|0)|0)+(d>>>26)|0)>>>26,i&=67108863}r.words[s]=a,n=i,i=o}return 0!==n?r.words[s]=n:r.length--,r._strip()}function y(e,t,r){return w(e,t,r)}Math.imul||(g=f),o.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?g(this,e,t):r<63?f(this,e,t):r<1024?w(this,e,t):y(this,e,t)},o.prototype.mul=function(e){var t=new o(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},o.prototype.mulf=function(e){var t=new o(null);return t.words=new Array(this.length+e.length),y(this,e,t)},o.prototype.imul=function(e){return this.clone().mulTo(e,this)},o.prototype.imuln=function(e){var t=e<0;t&&(e=-e),r("number"==typeof e),r(e<67108864);for(var n=0,o=0;o<this.length;o++){var s=(0|this.words[o])*e,i=(67108863&s)+(67108863&n);n>>=26,n+=s/67108864|0,n+=i>>>26,this.words[o]=67108863&i}return 0!==n&&(this.words[o]=n,this.length++),t?this.ineg():this},o.prototype.muln=function(e){return this.clone().imuln(e)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r<t.length;r++){var n=r/26|0,o=r%26;t[r]=e.words[n]>>>o&1}return t}(e);if(0===t.length)return new o(1);for(var r=this,n=0;n<t.length&&0===t[n];n++,r=r.sqr());if(++n<t.length)for(var s=r.sqr();n<t.length;n++,s=s.sqr())0!==t[n]&&(r=r.mul(s));return r},o.prototype.iushln=function(e){r("number"==typeof e&&e>=0);var t,n=e%26,o=(e-n)/26,s=67108863>>>26-n<<26-n;if(0!==n){var i=0;for(t=0;t<this.length;t++){var a=this.words[t]&s,u=(0|this.words[t])-a<<n;this.words[t]=u|i,i=a>>>26-n}i&&(this.words[t]=i,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t<o;t++)this.words[t]=0;this.length+=o}return this._strip()},o.prototype.ishln=function(e){return r(0===this.negative),this.iushln(e)},o.prototype.iushrn=function(e,t,n){var o;r("number"==typeof e&&e>=0),o=t?(t-t%26)/26:0;var s=e%26,i=Math.min((e-s)/26,this.length),a=67108863^67108863>>>s<<s,u=n;if(o-=i,o=Math.max(0,o),u){for(var l=0;l<i;l++)u.words[l]=this.words[l];u.length=i}if(0===i);else if(this.length>i)for(this.length-=i,l=0;l<this.length;l++)this.words[l]=this.words[l+i];else this.words[0]=0,this.length=1;var h=0;for(l=this.length-1;l>=0&&(0!==h||l>=o);l--){var c=0|this.words[l];this.words[l]=h<<26-s|c>>>s,h=c&a}return u&&0!==h&&(u.words[u.length++]=h),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},o.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},o.prototype.shln=function(e){return this.clone().ishln(e)},o.prototype.ushln=function(e){return this.clone().iushln(e)},o.prototype.shrn=function(e){return this.clone().ishrn(e)},o.prototype.ushrn=function(e){return this.clone().iushrn(e)},o.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,o=1<<t;return this.length<=n?0:!!(this.words[n]&o)},o.prototype.imaskn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var o=67108863^67108863>>>t<<t;this.words[this.length-1]&=o}return this._strip()},o.prototype.maskn=function(e){return this.clone().imaskn(e)},o.prototype.iaddn=function(e){return r("number"==typeof e),r(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<=e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},o.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},o.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this._strip()},o.prototype.addn=function(e){return this.clone().iaddn(e)},o.prototype.subn=function(e){return this.clone().isubn(e)},o.prototype.iabs=function(){return this.negative=0,this},o.prototype.abs=function(){return this.clone().iabs()},o.prototype._ishlnsubmul=function(e,t,n){var o,s,i=e.length+n;this._expand(i);var a=0;for(o=0;o<e.length;o++){s=(0|this.words[o+n])+a;var u=(0|e.words[o])*t;a=((s-=67108863&u)>>26)-(u/67108864|0),this.words[o+n]=67108863&s}for(;o<this.length-n;o++)a=(s=(0|this.words[o+n])+a)>>26,this.words[o+n]=67108863&s;if(0===a)return this._strip();for(r(-1===a),a=0,o=0;o<this.length;o++)a=(s=-(0|this.words[o])+a)>>26,this.words[o]=67108863&s;return this.negative=1,this._strip()},o.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),s=e,i=0|s.words[s.length-1];0!=(r=26-this._countBits(i))&&(s=s.ushln(r),n.iushln(r),i=0|s.words[s.length-1]);var a,u=n.length-s.length;if("mod"!==t){(a=new o(null)).length=u+1,a.words=new Array(a.length);for(var l=0;l<a.length;l++)a.words[l]=0}var h=n.clone()._ishlnsubmul(s,1,u);0===h.negative&&(n=h,a&&(a.words[u]=1));for(var c=u-1;c>=0;c--){var d=67108864*(0|n.words[s.length+c])+(0|n.words[s.length+c-1]);for(d=Math.min(d/i|0,67108863),n._ishlnsubmul(s,d,c);0!==n.negative;)d--,n.negative=0,n._ishlnsubmul(s,1,c),n.isZero()||(n.negative^=1);a&&(a.words[c]=d)}return a&&a._strip(),n._strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},o.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(s=a.div.neg()),"div"!==t&&(i=a.mod.neg(),n&&0!==i.negative&&i.iadd(e)),{div:s,mod:i}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(s=a.div.neg()),{div:s,mod:a.mod}):0!=(this.negative&e.negative)?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(i=a.mod.neg(),n&&0!==i.negative&&i.isub(e)),{div:a.div,mod:i}):e.length>this.length||this.cmp(e)<0?{div:new o(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new o(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new o(this.modrn(e.words[0]))}:this._wordDiv(e,t);var s,i,a},o.prototype.div=function(e){return this.divmod(e,"div",0).div},o.prototype.mod=function(e){return this.divmod(e,"mod",0).mod},o.prototype.umod=function(e){return this.divmod(e,"mod",1).mod},o.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),o=e.andln(1),s=r.cmp(n);return s<0||1===o&&0===s?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},o.prototype.modrn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=(1<<26)%e,o=0,s=this.length-1;s>=0;s--)o=(n*o+(0|this.words[s]))%e;return t?-o:o},o.prototype.modn=function(e){return this.modrn(e)},o.prototype.idivn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=0,o=this.length-1;o>=0;o--){var s=(0|this.words[o])+67108864*n;this.words[o]=s/e|0,n=s%e}return this._strip(),t?this.ineg():this},o.prototype.divn=function(e){return this.clone().idivn(e)},o.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var s=new o(1),i=new o(0),a=new o(0),u=new o(1),l=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++l;for(var h=n.clone(),c=t.clone();!t.isZero();){for(var d=0,p=1;0==(t.words[0]&p)&&d<26;++d,p<<=1);if(d>0)for(t.iushrn(d);d-- >0;)(s.isOdd()||i.isOdd())&&(s.iadd(h),i.isub(c)),s.iushrn(1),i.iushrn(1);for(var m=0,f=1;0==(n.words[0]&f)&&m<26;++m,f<<=1);if(m>0)for(n.iushrn(m);m-- >0;)(a.isOdd()||u.isOdd())&&(a.iadd(h),u.isub(c)),a.iushrn(1),u.iushrn(1);t.cmp(n)>=0?(t.isub(n),s.isub(a),i.isub(u)):(n.isub(t),a.isub(s),u.isub(i))}return{a:a,b:u,gcd:n.iushln(l)}},o.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var s,i=new o(1),a=new o(0),u=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var l=0,h=1;0==(t.words[0]&h)&&l<26;++l,h<<=1);if(l>0)for(t.iushrn(l);l-- >0;)i.isOdd()&&i.iadd(u),i.iushrn(1);for(var c=0,d=1;0==(n.words[0]&d)&&c<26;++c,d<<=1);if(c>0)for(n.iushrn(c);c-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(a)):(n.isub(t),a.isub(i))}return(s=0===t.cmpn(1)?i:a).cmpn(0)<0&&s.iadd(e),s},o.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var o=t.cmp(r);if(o<0){var s=t;t=r,r=s}else if(0===o||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},o.prototype.invm=function(e){return this.egcd(e).a.umod(e)},o.prototype.isEven=function(){return 0==(1&this.words[0])},o.prototype.isOdd=function(){return 1==(1&this.words[0])},o.prototype.andln=function(e){return this.words[0]&e},o.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,o=1<<t;if(this.length<=n)return this._expand(n+1),this.words[n]|=o,this;for(var s=o,i=n;0!==s&&i<this.length;i++){var a=0|this.words[i];s=(a+=s)>>>26,a&=67108863,this.words[i]=a}return 0!==s&&(this.words[i]=s,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this._strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:o<e?-1:1}return 0!==this.negative?0|-t:t},o.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},o.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,r=this.length-1;r>=0;r--){var n=0|this.words[r],o=0|e.words[r];if(n!==o){n<o?t=-1:n>o&&(t=1);break}}return t},o.prototype.gtn=function(e){return 1===this.cmpn(e)},o.prototype.gt=function(e){return 1===this.cmp(e)},o.prototype.gten=function(e){return this.cmpn(e)>=0},o.prototype.gte=function(e){return this.cmp(e)>=0},o.prototype.ltn=function(e){return-1===this.cmpn(e)},o.prototype.lt=function(e){return-1===this.cmp(e)},o.prototype.lten=function(e){return this.cmpn(e)<=0},o.prototype.lte=function(e){return this.cmp(e)<=0},o.prototype.eqn=function(e){return 0===this.cmpn(e)},o.prototype.eq=function(e){return 0===this.cmp(e)},o.red=function(e){return new I(e)},o.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(e){return this.red=e,this},o.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},o.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},o.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},o.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},o.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},o.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},o.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},o.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var v={k256:null,p224:null,p192:null,p25519:null};function M(e,t){this.name=e,this.p=new o(t,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function E(){M.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function b(){M.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function x(){M.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function A(){M.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function I(e){if("string"==typeof e){var t=o._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function T(e){I.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}M.prototype._tmp=function(){var e=new o(null);return e.words=new Array(Math.ceil(this.n/13)),e},M.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t<this.n?-1:r.ucmp(this.p);return 0===n?(r.words[0]=0,r.length=1):n>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},M.prototype.split=function(e,t){e.iushrn(this.n,0,t)},M.prototype.imulK=function(e){return e.imul(this.k)},n(E,M),E.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),o=0;o<n;o++)t.words[o]=e.words[o];if(t.length=n,e.length<=9)return e.words[0]=0,void(e.length=1);var s=e.words[9];for(t.words[t.length++]=s&r,o=10;o<e.length;o++){var i=0|e.words[o];e.words[o-10]=(i&r)<<4|s>>>22,s=i}s>>>=22,e.words[o-10]=s,0===s&&e.length>10?e.length-=10:e.length-=9},E.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r<e.length;r++){var n=0|e.words[r];t+=977*n,e.words[r]=67108863&t,t=64*n+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},n(b,M),n(x,M),n(A,M),A.prototype.imulK=function(e){for(var t=0,r=0;r<e.length;r++){var n=19*(0|e.words[r])+t,o=67108863&n;n>>>=26,e.words[r]=o,t=n}return 0!==t&&(e.words[e.length++]=t),e},o._prime=function(e){if(v[e])return v[e];var t;if("k256"===e)t=new E;else if("p224"===e)t=new b;else if("p192"===e)t=new x;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new A}return v[e]=t,t},I.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},I.prototype._verify2=function(e,t){r(0==(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},I.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(h(e,e.umod(this.m)._forceRed(this)),e)},I.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},I.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},I.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},I.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},I.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},I.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},I.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},I.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},I.prototype.isqr=function(e){return this.imul(e,e.clone())},I.prototype.sqr=function(e){return this.mul(e,e)},I.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new o(1)).iushrn(2);return this.pow(e,n)}for(var s=this.m.subn(1),i=0;!s.isZero()&&0===s.andln(1);)i++,s.iushrn(1);r(!s.isZero());var a=new o(1).toRed(this),u=a.redNeg(),l=this.m.subn(1).iushrn(1),h=this.m.bitLength();for(h=new o(2*h*h).toRed(this);0!==this.pow(h,l).cmp(u);)h.redIAdd(u);for(var c=this.pow(h,s),d=this.pow(e,s.addn(1).iushrn(1)),p=this.pow(e,s),m=i;0!==p.cmp(a);){for(var f=p,g=0;0!==f.cmp(a);g++)f=f.redSqr();r(g<m);var w=this.pow(c,new o(1).iushln(m-g-1));d=d.redMul(w),c=w.redSqr(),p=p.redMul(c),m=g}return d},I.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},I.prototype.pow=function(e,t){if(t.isZero())return new o(1).toRed(this);if(0===t.cmpn(1))return e.clone();var r=new Array(16);r[0]=new o(1).toRed(this),r[1]=e;for(var n=2;n<r.length;n++)r[n]=this.mul(r[n-1],e);var s=r[0],i=0,a=0,u=t.bitLength()%26;for(0===u&&(u=26),n=t.length-1;n>=0;n--){for(var l=t.words[n],h=u-1;h>=0;h--){var c=l>>h&1;s!==r[0]&&(s=this.sqr(s)),0!==c||0!==i?(i<<=1,i|=c,(4==++a||0===n&&0===h)&&(s=this.mul(s,r[i]),a=0,i=0)):a=0}u=26}return s},I.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},I.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},o.mont=function(e){return new T(e)},n(T,I),T.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},T.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},T.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),s=o;return o.cmp(this.m)>=0?s=o.isub(this.m):o.cmpn(0)<0&&(s=o.iadd(this.m)),s._forceRed(this)},T.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new o(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),s=r.isub(n).iushrn(this.shift),i=s;return s.cmp(this.m)>=0?i=s.isub(this.m):s.cmpn(0)<0&&(i=s.iadd(this.m)),i._forceRed(this)},T.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(0,o);var a=i.exports,u=s(a);const l=new u("21888242871839275222246405745257275088548364400416034343698204186575808495617"),h=new u("452312848583266388373324160190187140051835877600158453279131187530910662655"),c="noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV",d="SySTEM1eSU2p4BGQfQpimFEWWSC1XDFeun3Nqzz3rT7",p="compr6CUsB5m2jS4Y3831ztGSTnDpnKJTKS95d64XVq",m=()=>new e.PublicKey("35hkDgaAKwMCaxRz2ocSZ6NaUrtKkyNqU6c4RV3tYJRh"),f=()=>e.PublicKey.findProgramAddressSync([t.Buffer.from("cpi_authority")],new e.PublicKey(d))[0],g=()=>({registeredProgramPda:new e.PublicKey(m()),noopProgram:new e.PublicKey(c),accountCompressionProgram:new e.PublicKey(p),accountCompressionAuthority:new e.PublicKey(f()),cpiSignatureAccount:null}),w=()=>({nullifierQueue:new e.PublicKey(y),merkleTree:new e.PublicKey(v),merkleTreeHeight:b,addressTree:new e.PublicKey(M),addressQueue:new e.PublicKey(E)}),y="nfq1NvQDJ2GEgnS8zt9prAe8rjjpAW1zFkrvZoBR148",v="smt1NamzXdq4AMqS2fS2F1i5KTYPZRhoHgWx38d8WsT",M="amt1Ayt45jfbdw5YSo7iz6WZxUmnZsQTYXy82hVwyC2",E="aq1S9z4reTSQAdgWHGD2zDaS39sjGrAxbR31vxJ2F4F",b=26,x=new u(Math.floor(2**b*.95)),A=new u(300),I=new u(392),T=new u(5e3),_=new u(5e3);var k=function(e){const t=new Uint8Array(256);for(let e=0;e<t.length;e++)t[e]=255;for(let r=0;r<58;r++){const n=e.charAt(r),o=n.charCodeAt(0);if(255!==t[o])throw new TypeError(n+" is ambiguous");t[o]=r}const r=e.charAt(0),n=Math.log(58)/Math.log(256),o=Math.log(256)/Math.log(58);function s(e){if("string"!=typeof e)throw new TypeError("Expected String");if(0===e.length)return new Uint8Array;let o=0,s=0,i=0;for(;e[o]===r;)s++,o++;const a=(e.length-o)*n+1>>>0,u=new Uint8Array(a);for(;e[o];){let r=t[e.charCodeAt(o)];if(255===r)return;let n=0;for(let e=a-1;(0!==r||n<i)&&-1!==e;e--,n++)r+=58*u[e]>>>0,u[e]=r%256>>>0,r=r/256>>>0;if(0!==r)throw new Error("Non-zero carry");i=n,o++}let l=a-i;for(;l!==a&&0===u[l];)l++;const h=new Uint8Array(s+(a-l));let c=s;for(;l!==a;)h[c++]=u[l++];return h}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";let n=0,s=0,i=0;const a=t.length;for(;i!==a&&0===t[i];)i++,n++;const u=(a-i)*o+1>>>0,l=new Uint8Array(u);for(;i!==a;){let e=t[i],r=0;for(let t=u-1;(0!==e||r<s)&&-1!==t;t--,r++)e+=256*l[t]>>>0,l[t]=e%58>>>0,e=e/58>>>0;if(0!==e)throw new Error("Non-zero carry");s=r,i++}let h=u-s;for(;h!==u&&0===l[h];)h++;let c=r.repeat(n);for(;h<u;++h)c+=e.charAt(l[h]);return c},decodeUnsafe:s,decode:function(e){const t=s(e);if(t)return t;throw new Error("Non-base58 character")}}}("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");const S=(e,t,r)=>new u(e,t,r),C=(e,t)=>{if("base58"===t){if("string"!=typeof e)throw new Error("Must be a base58 string");return C(k.decode(e))}return function(e){if(e.gte(l))throw new Error("Value is too large. Max <254 bits");return e}(new u(e,t))};function P(e){const r=C(e).toArrayLike(t.Buffer,void 0,32);return k.encode(r)}const N=(e,t,r,n)=>({owner:e,lamports:null!=t?t:S(0),address:null!=n?n:null,data:null!=r?r:null}),O=(e,t,r,n,o)=>Object.assign(Object.assign(Object.assign({},N(t,r,n,o)),e),{readOnly:0}),R=(e,t,r,n)=>({merkleTree:e,nullifierQueue:t,hash:r,leafIndex:n});function L(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`positive integer expected, not ${e}`)}function B(e,...t){if(!((r=e)instanceof Uint8Array||null!=r&&"object"==typeof r&&"Uint8Array"===r.constructor.name))throw new Error("Uint8Array expected");var r;if(t.length>0&&!t.includes(e.length))throw new Error(`Uint8Array expected of length ${t}, not of length=${e.length}`)}function U(e,t=1){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}const D=BigInt(2**32-1),F=BigInt(32);function H(e,t=0){return t?{h:Number(e&D),l:Number(e>>F&D)}:{h:0|Number(e>>F&D),l:0|Number(e&D)}}function V(e,t=0){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let o=0;o<e.length;o++){const{h:s,l:i}=H(e[o],t);[r[o],n[o]]=[s,i]}return[r,n]}const K=68===new Uint8Array(new Uint32Array([287454020]).buffer)[0];function q(e){for(let r=0;r<e.length;r++)e[r]=(t=e[r])<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255;var t}function Q(e){return"string"==typeof e&&(e=function(e){if("string"!=typeof e)throw new Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array((new TextEncoder).encode(e))}(e)),B(e),e}class j{clone(){return this._cloneInto()}}const W=[],$=[],z=[],Z=BigInt(0),J=BigInt(1),X=BigInt(2),G=BigInt(7),Y=BigInt(256),ee=BigInt(113);for(let e=0,t=J,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],W.push(2*(5*n+r)),$.push((e+1)*(e+2)/2%64);let o=Z;for(let e=0;e<7;e++)t=(t<<J^(t>>G)*ee)%Y,t&X&&(o^=J<<(J<<BigInt(e))-J);z.push(o)}const[te,re]=V(z,1),ne=(e,t,r)=>r>32?((e,t,r)=>t<<r-32|e>>>64-r)(e,t,r):((e,t,r)=>e<<r|t>>>32-r)(e,t,r),oe=(e,t,r)=>r>32?((e,t,r)=>e<<r-32|t>>>64-r)(e,t,r):((e,t,r)=>t<<r|e>>>32-r)(e,t,r);class se extends j{constructor(e,t,r,n=0,o=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=r,this.enableXOF=n,this.rounds=o,this.pos=0,this.posOut=0,this.finished=0,this.destroyed=0,L(r),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");var s;this.state=new Uint8Array(200),this.state32=(s=this.state,new Uint32Array(s.buffer,s.byteOffset,Math.floor(s.byteLength/4)))}keccak(){K||q(this.state32),function(e,t=24){const r=new Uint32Array(10);for(let n=24-t;n<24;n++){for(let t=0;t<10;t++)r[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){const n=(t+8)%10,o=(t+2)%10,s=r[o],i=r[o+1],a=ne(s,i,1)^r[n],u=oe(s,i,1)^r[n+1];for(let r=0;r<50;r+=10)e[t+r]^=a,e[t+r+1]^=u}let t=e[2],o=e[3];for(let r=0;r<24;r++){const n=$[r],s=ne(t,o,n),i=oe(t,o,n),a=W[r];t=e[a],o=e[a+1],e[a]=s,e[a+1]=i}for(let t=0;t<50;t+=10){for(let n=0;n<10;n++)r[n]=e[t+n];for(let n=0;n<10;n++)e[t+n]^=~r[(n+2)%10]&r[(n+4)%10]}e[0]^=te[n],e[1]^=re[n]}r.fill(0)}(this.state32,this.rounds),K||q(this.state32),this.posOut=0,this.pos=0}update(e){U(this);const{blockLen:t,state:r}=this,n=(e=Q(e)).length;for(let o=0;o<n;){const s=Math.min(t-this.pos,n-o);for(let t=0;t<s;t++)r[this.pos++]^=e[o++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=1;const{state:e,suffix:t,pos:r,blockLen:n}=this;e[r]^=t,0!=(128&t)&&r===n-1&&this.keccak(),e[n-1]^=128,this.keccak()}writeInto(e){U(this,0),B(e),this.finish();const t=this.state,{blockLen:r}=this;for(let n=0,o=e.length;n<o;){this.posOut>=r&&this.keccak();const s=Math.min(r-this.posOut,o-n);e.set(t.subarray(this.posOut,this.posOut+s),n),this.posOut+=s,n+=s}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return L(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(function(e,t){B(e);const r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=1,this.state.fill(0)}_cloneInto(e){const{blockLen:t,suffix:r,outputLen:n,rounds:o,enableXOF:s}=this;return e||(e=new se(t,r,n,s,o)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=o,e.suffix=r,e.outputLen=n,e.enableXOF=s,e.destroyed=this.destroyed,e}}const ie=(()=>function(e){const t=t=>e().update(Q(t)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}((()=>new se(136,1,32))))();function ae(e){return"0x"+e.toString("hex")}const ue=e=>Array.isArray(e)?e:[e];function le(e){return S(e,void 0,"be").lt(l)}function he(e){let r=255;for(;r>=0;){const n=t.Buffer.concat([e,t.Buffer.from([r])]),o=ie(n);if(32!==o.length)throw new Error("Invalid hash length");if(o[0]=0,le(t.Buffer.from(o)))return[t.Buffer.from(o),r];r-=1}return null}function ce(e){const t=ie.create();for(const r of e)t.update(r);const r=t.digest();return r[0]=0,r}function de(e){return Array.isArray(e)?e.map((e=>de(e))):null!==e&&e.constructor===Object?Object.keys(e).reduce(((t,r)=>(t[r.replace(/([-_][a-z])/gi,(e=>e.toUpperCase().replace("-","").replace("_","")))]=de(e[r]),t)),{}):e}function pe(e,t){const r=e.findIndex((e=>e.equals(t)));return-1===r?(e.push(t),e.length-1):r}function me(e,t,r){if(t<=0)return[];if(void 0===e)return 0===r.length?new Array(t).fill(w().merkleTree):new Array(t).fill(r[0].merkleTree);{const r=ue(e);return r.length>=t?r.slice(0,t):r.concat(new Array(t-r.length).fill(r[0]))}}function fe(e){return e.map((e=>({pubkey:e,isWritable:1,isSigner:0})))}function ge(e,t,r,n,o=[]){const s=o.slice(),i=[],a=[];e.forEach(((e,r)=>{const n=pe(s,e.merkleTree),o=pe(s,e.nullifierQueue);i.push({compressedAccount:{owner:e.owner,lamports:e.lamports,address:e.address,data:e.data},merkleContext:{merkleTreePubkeyIndex:n,nullifierQueuePubkeyIndex:o,leafIndex:e.leafIndex,queueIndex:null},rootIndex:t[r],readOnly:0})}));const u=me(n,r.length,e);return r.forEach(((e,t)=>{const r=pe(s,u[t]);a.push({compressedAccount:{owner:e.owner,lamports:e.lamports,address:e.address,data:e.data},merkleTreeIndex:r})})),{packedInputCompressedAccounts:i,packedOutputCompressedAccounts:a,remainingAccounts:s}}const we=e=>{if(e.lt(S(0)))throw new Error("Not enough balance for transfer")},ye=e=>{if(0===e.length)throw new Error("No accounts provided for validation");const t=e[0].owner;if(!e.every((e=>e.owner.equals(t))))throw new Error("All input accounts must have the same owner")};function ve(e,t){return ce([t.toBytes(),...e])}function Me(t,r=w().addressTree){if(32!=t.length)throw new Error("Seed length is not 32 bytes.");const n=r.toBytes(),o=he(Buffer.from([...n,...t]));if(null===o)throw new Error("DeriveAddressError");const s=o[0];return new e.PublicKey(s)}function Ee(e,t){const r=t.slice(),n=e.map((e=>({seed:Array.from(e.seed),addressMerkleTreeRootIndex:e.addressMerkleTreeRootIndex,addressMerkleTreeAccountIndex:0,addressQueueAccountIndex:0})));return e.forEach(((e,t)=>{n[t].addressMerkleTreeAccountIndex=pe(r,e.addressMerkleTreePubkey)})),e.forEach(((e,t)=>{n[t].addressQueueAccountIndex=pe(r,e.addressQueuePubkey)})),{newAddressParamsPacked:n,remainingAccounts:r}}async function be(e,t,r="confirmed"){const n=await e.getLatestBlockhash(r),o={signature:t.toString(),lastValidBlockHeight:n.lastValidBlockHeight,blockhash:n.blockhash};return await e.confirmTransaction(o,r)}function xe(e){const t=Ie(e.ar[0]),r=Ie(e.ar[1]),n=new Uint8Array([...t,...r]),o=Ie(e.bs[0][0]),s=Ie(e.bs[0][1]),i=Ie(e.bs[1][0]),a=Ie(e.bs[1][1]),u=new Uint8Array([...o,...s,...i,...a]),l=Ie(e.krs[0]),h=Ie(e.krs[1]);return{a:n,b:u,c:new Uint8Array([...l,...h])}}function Ae(e){const t=e.a,r=e.b,n=e.c,o=t.slice(0,32),s=Te(new u(t.slice(32,64),32,"be"))?0:1;o[0]=_e(o[0],s);const i=r.slice(0,64),a=r.slice(64,128),h=function(e,t){const r=l.div(new u(2));return e.lt(r)?1:e.gt(r)?0:t.lt(r)}(new u(a.slice(0,32),32,"be"),new u(a.slice(32,64),32,"be"));i[0]=_e(i[0],h);const c=n.slice(0,32),d=n.slice(32,64),p=Te(new u(d,32,"be"));return c[0]=_e(c[0],p),{a:Array.from(o),b:Array.from(i),c:Array.from(c)}}function Ie(e){const t=new u(e.startsWith("0x")?e.substring(2):e,"hex");return new Uint8Array(t.toArray("be",32))}function Te(e){return e.lte(l.sub(e))}function _e(e,t){return t?e:128|e}function ke(t,r,n,o){const s=new e.TransactionMessage({payerKey:r,recentBlockhash:n,instructions:t}).compileToV0Message(o);return new e.VersionedTransaction(s)}async function Se(e,t,r,n){const o=await e.sendTransaction(t,r);n||(n=await e.getLatestBlockhash());const s={signature:o,blockhash:n.blockhash,lastValidBlockHeight:n.lastValidBlockHeight},i=(await e.confirmTransaction(s,(null==r?void 0:r.commitment)||e.commitment||"confirmed")).context.slot;return await e.confirmTransactionIndexed(i),o}async function Ce(e,t,r,n){n||(n=await e.getLatestBlockhash());const o={signature:t,blockhash:n.blockhash,lastValidBlockHeight:n.lastValidBlockHeight},s=await e.confirmTransaction(o,(null==r?void 0:r.commitment)||e.commitment||"confirmed"),i=s.context.slot;return await e.confirmTransactionIndexed(i),s}function Pe(e,t,r,n=[],o){if(n.includes(t))throw new Error("payer must not be in additionalSigners");const s=[t,...n],i=ke(e,t.publicKey,r,o);return i.sign(s),i}let Ne=1;const Oe=Ue(255),Re=Ue(254),Le=Ue(253),Be=Ue(252);function Ue(t){if(t||(t=Ne,Ne++),t>255)return e.Keypair.generate();const r=new Uint8Array(32);return r[31]=t,e.Keypair.fromSeed(r)}var De={};!function(t){var n=o&&o.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:1}),t.map=t.array=t.rustEnum=t.str=t.vecU8=t.tagged=t.vec=t.bool=t.option=t.publicKey=t.i256=t.u256=t.i128=t.u128=t.i64=t.u64=t.struct=t.f64=t.f32=t.i32=t.u32=t.i16=t.u16=t.i8=t.u8=void 0;const s=r,i=e,u=n(a);var l=r;Object.defineProperty(t,"u8",{enumerable:1,get:function(){return l.u8}}),Object.defineProperty(t,"i8",{enumerable:1,get:function(){return l.s8}}),Object.defineProperty(t,"u16",{enumerable:1,get:function(){return l.u16}}),Object.defineProperty(t,"i16",{enumerable:1,get:function(){return l.s16}}),Object.defineProperty(t,"u32",{enumerable:1,get:function(){return l.u32}}),Object.defineProperty(t,"i32",{enumerable:1,get:function(){return l.s32}}),Object.defineProperty(t,"f32",{enumerable:1,get:function(){return l.f32}}),Object.defineProperty(t,"f64",{enumerable:1,get:function(){return l.f64}}),Object.defineProperty(t,"struct",{enumerable:1,get:function(){return l.struct}});class h extends s.Layout{constructor(e,t,r){super(e,r),this.blob=(0,s.blob)(e),this.signed=t}decode(e,t=0){const r=new u.default(this.blob.decode(e,t),10,"le");return this.signed?r.fromTwos(8*this.span).clone():r}encode(e,t,r=0){return this.signed&&(e=e.toTwos(8*this.span)),this.blob.encode(e.toArrayLike(Buffer,"le",this.span),t,r)}}function c(e){return new h(8,0,e)}t.u64=c,t.i64=function(e){return new h(8,1,e)},t.u128=function(e){return new h(16,0,e)},t.i128=function(e){return new h(16,1,e)},t.u256=function(e){return new h(32,0,e)},t.i256=function(e){return new h(32,1,e)};class d extends s.Layout{constructor(e,t,r,n){super(e.span,n),this.layout=e,this.decoder=t,this.encoder=r}decode(e,t){return this.decoder(this.layout.decode(e,t))}encode(e,t,r){return this.layout.encode(this.encoder(e),t,r)}getSpan(e,t){return this.layout.getSpan(e,t)}}t.publicKey=function(e){return new d((0,s.blob)(32),(e=>new i.PublicKey(e)),(e=>e.toBuffer()),e)};class p extends s.Layout{constructor(e,t){super(-1,t),this.layout=e,this.discriminator=(0,s.u8)()}encode(e,t,r=0){return null==e?this.discriminator.encode(0,t,r):(this.discriminator.encode(1,t,r),this.layout.encode(e,t,r+1)+1)}decode(e,t=0){const r=this.discriminator.decode(e,t);if(0===r)return null;if(1===r)return this.layout.decode(e,t+1);throw new Error("Invalid option "+this.property)}getSpan(e,t=0){const r=this.discriminator.decode(e,t);if(0===r)return 1;if(1===r)return this.layout.getSpan(e,t+1)+1;throw new Error("Invalid option "+this.property)}}function m(e){if(0===e)return 0;if(1===e)return 1;throw new Error("Invalid bool: "+e)}function f(e){return e?1:0}function g(e){const t=(0,s.u32)("length"),r=(0,s.struct)([t,(0,s.blob)((0,s.offset)(t,-t.span),"data")]);return new d(r,(({data:e})=>e),(e=>({data:e})),e)}t.option=function(e,t){return new p(e,t)},t.bool=function(e){return new d((0,s.u8)(),m,f,e)},t.vec=function(e,t){const r=(0,s.u32)("length"),n=(0,s.struct)([r,(0,s.seq)(e,(0,s.offset)(r,-r.span),"values")]);return new d(n,(({values:e})=>e),(e=>({values:e})),t)},t.tagged=function(e,t,r){const n=(0,s.struct)([c("tag"),t.replicate("data")]);return new d(n,(function({tag:t,data:r}){if(!t.eq(e))throw new Error("Invalid tag, expected: "+e.toString("hex")+", got: "+t.toString("hex"));return r}),(t=>({tag:e,data:t})),r)},t.vecU8=g,t.str=function(e){return new d(g(),(e=>e.toString("utf-8")),(e=>Buffer.from(e,"utf-8")),e)},t.rustEnum=function(e,t,r){const n=(0,s.union)(null!=r?r:(0,s.u8)(),t);return e.forEach(((e,t)=>n.addVariant(t,e,e.property))),n},t.array=function(e,t,r){const n=(0,s.struct)([(0,s.seq)(e,t,"values")]);return new d(n,(({values:e})=>e),(e=>({values:e})),r)};class w extends s.Layout{constructor(e,t,r){super(e.span+t.span,r),this.keyLayout=e,this.valueLayout=t}decode(e,t){return t=t||0,[this.keyLayout.decode(e,t),this.valueLayout.decode(e,t+this.keyLayout.getSpan(e,t))]}encode(e,t,r){r=r||0;const n=this.keyLayout.encode(e[0],t,r);return n+this.valueLayout.encode(e[1],t,r+n)}getSpan(e,t){return this.keyLayout.getSpan(e,t)+this.valueLayout.getSpan(e,t)}}t.map=function(e,t,r){const n=(0,s.u32)("length"),o=(0,s.struct)([n,(0,s.seq)(new w(e,t),(0,s.offset)(n,-n.span),"values")]);return new d(o,(({values:e})=>new Map(e)),(e=>({values:Array.from(e.entries())})),r)}}(De);const Fe=De.struct([De.publicKey("owner"),De.u64("lamports"),De.option(De.array(De.u8(),32),"address"),De.option(De.struct([De.array(De.u8(),8,"discriminator"),De.vecU8("data"),De.array(De.u8(),32,"dataHash")]),"data")],"compressedAccount"),He=De.struct([De.u8("merkleTreePubkeyIndex"),De.u8("nullifierQueuePubkeyIndex"),De.u32("leafIndex"),De.option(De.struct([De.u8("queueId"),De.u16("index")]),"queueIndex")],"merkleContext"),Ve=De.struct([De.array(De.u8(),32,"seed"),De.u8("addressQueueAccountIndex"),De.u8("addressMerkleTreeAccountIndex"),De.u16("addressMerkleTreeRootIndex")],"newAddressParams"),Ke=De.struct([De.option(De.struct([De.array(De.u8(),32,"a"),De.array(De.u8(),64,"b"),De.array(De.u8(),32,"c")]),"proof"),De.vec(De.struct([Fe,He,De.u16("rootIndex"),De.bool("readOnly")]),"inputCompressedAccountsWithMerkleContext"),De.vec(De.struct([Fe,De.u8("merkleTreeIndex")]),"outputCompressedAccounts"),De.option(De.u64(),"relayFee"),De.vec(Ve,"newAddressParams"),De.option(De.u64(),"compressOrDecompressLamports"),De.bool("isCompress")]);function qe(e){const r=t.Buffer.alloc(1e3),n=Ke.encode(e,r),o=t.Buffer.from(r.slice(0,n)),s=t.Buffer.alloc(4);return s.writeUInt32LE(n,0),t.Buffer.concat([t.Buffer.from([26,16,169,7,21,202,242,25]),s,o])}const Qe=e=>{const t=Ze.programId,{feePayer:r,authority:n,registeredProgramPda:o,noopProgram:s,accountCompressionAuthority:i,accountCompressionProgram:a,solPoolPda:u,decompressionRecipient:l,systemProgram:h}=e;return[{pubkey:r,isSigner:1,isWritable:1},{pubkey:n,isSigner:1,isWritable:0},{pubkey:o,isSigner:0,isWritable:0},{pubkey:s,isSigner:0,isWritable:0},{pubkey:i,isSigner:0,isWritable:0},{pubkey:a,isSigner:0,isWritable:0},{pubkey:null!=u?u:t,isSigner:0,isWritable:null!==u},{pubkey:null!=l?l:t,isSigner:0,isWritable:1},{pubkey:h,isSigner:0,isWritable:0}]},je=De.struct([De.vec(De.array(De.u8(),32),"inputCompressedAccountHashes"),De.vec(De.array(De.u8(),32),"outputCompressedAccountHashes"),De.vec(De.struct([De.struct([De.publicKey("owner"),De.u64("lamports"),De.option(De.array(De.u8(),32),"address"),De.option(De.struct([De.array(De.u8(),8,"discriminator"),De.vecU8("data"),De.array(De.u8(),32,"dataHash")]),"data")],"compressedAccount"),De.u8("merkleTreeIndex")]),"outputCompressedAccounts"),De.vec(De.u32(),"outputLeafIndices"),De.vec(De.struct([De.publicKey("pubkey"),De.u64("seq")]),"sequenceNumbers"),De.option(De.u64(),"relayFee"),De.bool("isCompress"),De.option(De.u64(),"compressOrDecompressLamports"),De.vec(De.publicKey(),"pubkeyArray"),De.option(De.vecU8(),"message")]);function We(e){return je.decode(e)}const $e=e=>e.reduce(((e,t)=>e.add(S(t.lamports))),S(0)),ze=t.Buffer.from("sol_pool_pda");class Ze{constructor(){}static deriveCompressedSolPda(){const t=[ze],[r,n]=e.PublicKey.findProgramAddressSync(t,this.programId);return r}static createTransferOutputState(e,t,r){r=S(r);const n=$e(e).sub(r);return we(n),n.eq(S(0))?[N(t,r)]:(ye(e),[N(e[0].owner,n),N(t,r)])}static createDecompressOutputState(e,t){t=S(t);const r=$e(e).sub(t);return we(r),r.eq(S(0))?[]:(ye(e),[N(e[0].owner,r)])}static createNewAddressOutputState(e,t,r,n){r=S(null!=r?r:0);const o=$e(null!=n?n:[]).sub(r);return we(o),o.eq(S(0))||!n?[N(t,r,void 0,e)]:(ye(n),[N(n[0].owner,o),N(t,r,void 0,e)])}static async createAccount({payer:t,newAddressParams:r,newAddress:n,recentValidityProof:o,outputStateTree:s,inputCompressedAccounts:i,inputStateRootIndices:a,lamports:u}){const l=this.createNewAddressOutputState(n,t,u,i),{packedInputCompressedAccounts:h,packedOutputCompressedAccounts:c,remainingAccounts:d}=ge(null!=i?i:[],null!=a?a:[],l,s),{newAddressParamsPacked:p,remainingAccounts:m}=Ee([r],d),f=qe({proof:o,inputCompressedAccountsWithMerkleContext:h,outputCompressedAccounts:c,relayFee:null,newAddressParams:p,compressOrDecompressLamports:null,isCompress:0}),w=[...Qe(Object.assign(Object.assign({},g()),{feePayer:t,authority:t,solPoolPda:null,decompressionRecipient:null,systemProgram:e.SystemProgram.programId})),...fe(m)];return new e.TransactionInstruction({programId:this.programId,keys:w,data:f})}static async transfer({payer:t,inputCompressedAccounts:r,toAddress:n,lamports:o,recentInputStateRootIndices:s,recentValidityProof:i,outputStateTrees:a}){const u=this.createTransferOutputState(r,n,o),{packedInputCompressedAccounts:l,packedOutputCompressedAccounts:h,remainingAccounts:c}=ge(r,s,u,a),d=qe({proof:i,inputCompressedAccountsWithMerkleContext:l,outputCompressedAccounts:h,relayFee:null,newAddressParams:[],compressOrDecompressLamports:null,isCompress:0}),p=[...Qe(Object.assign(Object.assign({},g()),{feePayer:t,authority:t,solPoolPda:null,decompressionRecipient:null,systemProgram:e.SystemProgram.programId})),...fe(c)];return new e.TransactionInstruction({programId:this.programId,keys:p,data:d})}static async compress({payer:t,toAddress:r,lamports:n,outputStateTree:o}){n=S(n);const s=N(r,n),{packedInputCompressedAccounts:i,packedOutputCompressedAccounts:a,remainingAccounts:u}=ge([],[],[s],o),l=qe({proof:null,inputCompressedAccountsWithMerkleContext:i,outputCompressedAccounts:a,relayFee:null,newAddressParams:[],compressOrDecompressLamports:n,isCompress:1}),h=[...Qe(Object.assign(Object.assign({},g()),{feePayer:t,authority:t,solPoolPda:this.deriveCompressedSolPda(),decompressionRecipient:null,systemProgram:e.SystemProgram.programId})),...fe(u)];return new e.TransactionInstruction({programId:this.programId,keys:h,data:l})}static async decompress({payer:t,inputCompressedAccounts:r,toAddress:n,lamports:o,recentInputStateRootIndices:s,recentValidityProof:i,outputStateTree:a}){o=S(o);const u=this.createDecompressOutputState(r,o),{packedInputCompressedAccounts:l,packedOutputCompressedAccounts:h,remainingAccounts:c}=ge(r,s,u,a),d=qe({proof:i,inputCompressedAccountsWithMerkleContext:l,outputCompressedAccounts:h,relayFee:null,newAddressParams:[],compressOrDecompressLamports:o,isCompress:0}),p=[...Qe(Object.assign(Object.assign({},g()),{feePayer:t,authority:t,solPoolPda:this.deriveCompressedSolPda(),decompressionRecipient:n,systemProgram:e.SystemProgram.programId})),...fe(c)];return new e.TransactionInstruction({programId:this.programId,keys:p,data:d})}}function Je(e,t){let r=S(0);t=S(t);const n=[];e.sort(((e,t)=>t.lamports.cmp(e.lamports)));for(const o of e){if(r.gte(S(t)))break;r=r.add(o.lamports),n.push(o)}if(r.lt(S(t)))throw new Error(`Not enough balance for transfer. Required: ${t.toString()}, available: ${r.toString()}`);return[n,r]}var Xe,Ge,Ye,et,tt,rt,nt,ot;Ze.programId=new e.PublicKey("SySTEM1eSU2p4BGQfQpimFEWWSC1XDFeun3Nqzz3rT7"),exports.UtxoErrorCode=void 0,(Xe=exports.UtxoErrorCode||(exports.UtxoErrorCode={})).NEGATIVE_LAMPORTS="NEGATIVE_LAMPORTS",Xe.NOT_U64="NOT_U64",Xe.BLINDING_EXCEEDS_FIELD_SIZE="BLINDING_EXCEEDS_FIELD_SIZE",exports.SelectInUtxosErrorCode=void 0,(Ge=exports.SelectInUtxosErrorCode||(exports.SelectInUtxosErrorCode={})).FAILED_TO_FIND_UTXO_COMBINATION="FAILED_TO_FIND_UTXO_COMBINATION",Ge.INVALID_NUMBER_OF_IN_UTXOS="INVALID_NUMBER_OF_IN_UTXOS",exports.CreateUtxoErrorCode=void 0,(Ye=exports.CreateUtxoErrorCode||(exports.CreateUtxoErrorCode={})).OWNER_UNDEFINED="OWNER_UNDEFINED",Ye.INVALID_OUTPUT_UTXO_LENGTH="INVALID_OUTPUT_UTXO_LENGTH",Ye.UTXO_DATA_UNDEFINED="UTXO_DATA_UNDEFINED",exports.RpcErrorCode=void 0,(et=exports.RpcErrorCode||(exports.RpcErrorCode={})).CONNECTION_UNDEFINED="CONNECTION_UNDEFINED",et.RPC_PUBKEY_UNDEFINED="RPC_PUBKEY_UNDEFINED",et.RPC_METHOD_NOT_IMPLEMENTED="RPC_METHOD_NOT_IMPLEMENTED",et.RPC_INVALID="RPC_INVALID",exports.LookupTableErrorCode=void 0,(tt=exports.LookupTableErrorCode||(exports.LookupTableErrorCode={})).LOOK_UP_TABLE_UNDEFINED="LOOK_UP_TABLE_UNDEFINED",tt.LOOK_UP_TABLE_NOT_INITIALIZED="LOOK_UP_TABLE_NOT_INITIALIZED",exports.HashErrorCode=void 0,(exports.HashErrorCode||(exports.HashErrorCode={})).NO_POSEIDON_HASHER_PROVIDED="NO_POSEIDON_HASHER_PROVIDED",exports.ProofErrorCode=void 0,(rt=exports.ProofErrorCode||(exports.ProofErrorCode={})).INVALID_PROOF="INVALID_PROOF",rt.PROOF_INPUT_UNDEFINED="PROOF_INPUT_UNDEFINED",rt.PROOF_GENERATION_FAILED="PROOF_GENERATION_FAILED",exports.MerkleTreeErrorCode=void 0,(nt=exports.MerkleTreeErrorCode||(exports.MerkleTreeErrorCode={})).MERKLE_TREE_NOT_INITIALIZED="MERKLE_TREE_NOT_INITIALIZED",nt.SOL_MERKLE_TREE_UNDEFINED="SOL_MERKLE_TREE_UNDEFINED",nt.MERKLE_TREE_UNDEFINED="MERKLE_TREE_UNDEFINED",nt.INPUT_UTXO_NOT_INSERTED_IN_MERKLE_TREE="INPUT_UTXO_NOT_INSERTED_IN_MERKLE_TREE",nt.MERKLE_TREE_INDEX_UNDEFINED="MERKLE_TREE_INDEX_UNDEFINED",nt.MERKLE_TREE_SET_SPACE_UNDEFINED="MERKLE_TREE_SET_SPACE_UNDEFINED",exports.UtilsErrorCode=void 0,(ot=exports.UtilsErrorCode||(exports.UtilsErrorCode={})).ACCOUNT_NAME_UNDEFINED_IN_IDL="ACCOUNT_NAME_UNDEFINED_IN_IDL",ot.PROPERTY_UNDEFINED="PROPERTY_UNDEFINED",ot.LOOK_UP_TABLE_CREATION_FAILED="LOOK_UP_TABLE_CREATION_FAILED",ot.UNSUPPORTED_ARCHITECTURE="UNSUPPORTED_ARCHITECTURE",ot.UNSUPPORTED_PLATFORM="UNSUPPORTED_PLATFORM",ot.ACCOUNTS_UNDEFINED="ACCOUNTS_UNDEFINED",ot.INVALID_NUMBER="INVALID_NUMBER";class st extends Error{constructor(e,t,r){super(`${e}: ${r}`),this.code=e,this.functionName=t,this.codeMessage=r}}const it=n.coerce(n.instance(e.PublicKey),n.string(),(t=>new e.PublicKey(t))),at=n.coerce(n.instance(Array),n.string(),(t=>Array.from(new e.PublicKey(t).toBytes()))),ut=n.coerce(n.instance(u),n.string(),(e=>C(e,"base58"))),lt=n.coerce(n.instance(u),n.number(),(e=>Number.isSafeInteger(e)?S(e):S(e.toString(),10))),ht=n.coerce(n.string(),n.string(),(e=>""===e?null:e));function ct(e){return n.union([n.type({jsonrpc:n.literal("2.0"),id:n.string(),result:e}),n.type({jsonrpc:n.literal("2.0"),id:n.string(),error:n.type({code:n.unknown(),message:n.string(),data:n.nullable(n.any())})})])}const dt=ct(n.unknown());function pt(e){return n.coerce(ct(e),dt,(t=>"error"in t?t:Object.assign(Object.assign({},t),{result:n.create(t.result,e)})))}function mt(e){return pt(n.type({context:n.type({slot:n.number()}),value:e}))}const ft=n.type({address:n.nullable(at),hash:ut,data:n.nullable(n.type({data:ht,dataHash:ut,discriminator:lt})),lamports:lt,owner:it,leafIndex:n.number(),tree:it,seq:n.nullable(lt),slotCreated:lt}),gt=n.type({mint:it,owner:it,amount:lt,delegate:n.nullable(it),state:n.string()}),wt=n.type({tokenData:gt,account:ft}),yt=n.type({items:n.array(ft)}),vt=n.type({items:n.array(ft),cursor:n.nullable(n.string())}),Mt=n.type({items:n.array(wt),cursor:n.nullable(n.string())}),Et=n.number(),bt=n.string(),xt=n.type({items:n.array(n.type({signature:n.string(),slot:n.number(),blockTime:n.number(),error:n.nullable(n.string())}))}),At=n.type({items:n.array(n.type({signature:n.string(),slot:n.number(),blockTime:n.number()})),cursor:n.nullable(n.string())}),It=n.type({hash:ut,leafIndex:n.number(),merkleTree:it,proof:n.array(ut),rootSeq:n.number(),root:ut}),Tt=n.type({address:ut,nextIndex:n.number(),merkleTree:it,proof:n.array(ut),rootSeq:n.number(),root:ut,lowerRangeAddress:ut,higherRangeAddress:ut,lowElementLeafIndex:n.number()}),_t=n.type({a:n.array(n.number()),b:n.array(n.number()),c:n.array(n.number())}),kt=n.type({compressedProof:_t,leafIndices:n.array(n.number()),leaves:n.array(ut),rootIndices:n.array(n.number()),roots:n.array(ut),merkleTrees:n.array(it)}),St=n.array(It),Ct=n.type({amount:lt}),Pt=lt,Nt=n.type({balance:lt,mint:it}),Ot=n.type({tokenBalances:n.array(Nt),cursor:n.nullable(n.string())}),Rt=n.type({items:n.array(Nt),cursor:n.nullable(n.string())}),Lt=n.type({cursor:n.nullable(n.string()),items:n.array(n.type({balance:lt,owner:it}))}),Bt=n.type({hash:n.array(n.number()),root:n.array(n.number()),proof:n.array(n.array(n.number()))}),Ut=n.type({items:n.array(n.type({blockTime:n.number(),signature:n.string(),slot:n.number()}))}),Dt=n.type({items:n.array(n.type({blockTime:n.number(),signature:n.string(),slot:n.number()})),cursor:n.nullable(n.string())}),Ft=n.type({compressionInfo:n.type({closedAccounts:n.array(n.type({account:ft,optionalTokenData:n.nullable(gt)})),openedAccounts:n.array(n.type({account:ft,optionalTokenData:n.nullable(gt)}))}),transaction:n.any()});function Ht({discriminator:e,data:r,dataHash:n}){return{discriminator:e.toArray("le",8),data:t.Buffer.from(r,"base64"),dataHash:n.toArray("le",32)}}async function Vt(t,r,o,s=0){var i,a;const u=s?"getCompressedTokenAccountsByDelegate":"getCompressedTokenAccountsByOwner",l=s?"delegate":"owner",h=await qt(t.compressionApiEndpoint,u,{[l]:r.toBase58(),mint:null===(i=o.mint)||void 0===i?void 0:i.toBase58(),limit:null===(a=o.limit)||void 0===a?void 0:a.toNumber(),cursor:o.cursor}),c=n.create(h,mt(Mt));if("error"in c)throw new e.SolanaJSONRPCError(c.error,`failed to get info for compressed accounts by ${l} ${r.toBase58()}`);if(null===c.result.value)throw new Error("not implemented: NULL result");const d=[];return c.result.value.items.map((e=>{var t;const n=e.account,o=e.tokenData,s=O(R(n.tree,zt,n.hash.toArray("be",32),n.leafIndex),n.owner,S(n.lamports),n.data?Ht(n.data):void 0,n.address||void 0),i={mint:o.mint,owner:o.owner,amount:o.amount,delegate:o.delegate,state:["uninitialized","initialized","frozen"].indexOf(o.state),tlv:null};if((null===(t=i[l])||void 0===t?void 0:t.toBase58())!==r.toBase58())throw new Error(`RPC returned token account with ${l} different from requested ${l}`);d.push({compressedAccount:s,parsed:i})})),{items:d.sort(((e,t)=>t.compressedAccount.leafIndex-e.compressedAccount.leafIndex)),cursor:c.result.value.cursor}}function Kt(e){const t=e.account,r=e.optionalTokenData,n=O(R(t.merkleTree,zt,t.hash.toArray("be",32),t.leafIndex),t.owner,S(t.lamports),t.data?Ht(t.data):void 0,t.address||void 0);return null===r?{account:n,maybeTokenData:null}:{account:n,maybeTokenData:{mint:r.mint,owner:r.owner,amount:r.amount,delegate:r.delegate,state:["uninitialized","initialized","frozen"].indexOf(r.state),tlv:null}}}const qt=async(e,t,r=[],n=1)=>{const o=JSON.stringify({jsonrpc:"2.0",id:"test-account",method:t,params:r}),s=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:o});if(!s.ok)throw new Error(`HTTP error! status: ${s.status}`);return n?de(await s.json()):await s.json()},Qt=async(e,t,r=[])=>{let n;"inclusion"===t?n=JSON.stringify({circuitType:"inclusion",stateTreeHeight:26,inputCompressedAccounts:r}):"new-address"===t?n=JSON.stringify({circuitType:"non-inclusion",addressTreeHeight:26,newAddresses:r}):"combined"===t&&(n=JSON.stringify({circuitType:"combined",stateTreeHeight:26,addressTreeHeight:26,inputCompressedAccounts:r[0],newAddresses:r[1]}));const o=await fetch(`${e}/prove`,{method:"POST",headers:{"Content-Type":"application/json"},body:n});if(!o.ok)throw new Error(`Error fetching proof: ${o.statusText}`);return Ae(xe(await o.json()))};function jt(e){const t=[];for(let r=0;r<e.length;r++){const n={root:ae(e[r].root),pathIndex:e[r].leafIndex,pathElements:e[r].merkleProof.map((e=>ae(e))),leaf:ae(S(e[r].hash))};t.push(n)}return t}function Wt(e){const t=[];for(let r=0;r<e.length;r++){const n={root:ae(e[r].root),value:ae(e[r].value),pathIndex:e[r].indexHashedIndexedElementLeaf.toNumber(),pathElements:e[r].merkleProofHashedIndexedElementLeaf.map((e=>ae(e))),nextIndex:e[r].nextIndex.toNumber(),leafLowerRangeValue:ae(e[r].leafLowerRangeValue),leafHigherRangeValue:ae(e[r].leafHigherRangeValue)};t.push(n)}return t}function $t(e,t,r){if(e.length!==t.length)throw new Error("Input lengths must match.");if(0===e.length)return new u(0);let n=r.poseidonHashBN([e[0].toString(),t[0].toString()]);for(let o=1;o<e.length;o++)n=r.poseidonHashBN([n.toString(),e[o].toString(),t[o].toString()]);return n}const zt=w().nullifierQueue,Zt=w().addressQueue;class Jt extends e.Connection{constructor(e,t,r,n){super(e,n||"confirmed"),this.compressionApiEndpoint=t,this.proverEndpoint=r}async getCompressedAccount(t,r){if(!r&&!t)throw new Error("Either hash or address must be provided");if(r&&t)throw new Error("Only one of hash or address must be provided");const o=await qt(this.compressionApiEndpoint,"getCompressedAccount",{hash:r?P(r):void 0,address:t?P(t):void 0}),s=n.create(o,mt(n.nullable(ft)));if("error"in s)throw new e.SolanaJSONRPCError(s.error,`failed to get info for compressed account ${r?r.toString():t?t.toString():""}`);if(null===s.result.value)return null;const i=s.result.value;return O(R(i.tree,zt,i.hash.toArray("be",32),i.leafIndex),i.owner,S(i.lamports),i.data?Ht(i.data):void 0,i.address||void 0)}async getCompressedBalance(t,r){if(!r&&!t)throw new Error("Either hash or address must be provided");if(r&&t)throw new Error("Only one of hash or address must be provided");const o=await qt(this.compressionApiEndpoint,"getCompressedBalance",{hash:r?P(r):void 0,address:t?P(t):void 0}),s=n.create(o,mt(Pt));if("error"in s)throw new e.SolanaJSONRPCError(s.error,`failed to get balance for compressed account ${r?r.toString():t?t.toString():""}`);return null===s.result.value?S(0):S(s.result.value)}async getCompressedBalanceByOwner(t){const r=await qt(this.compressionApiEndpoint,"getCompressedBalanceByOwner",{owner:t.toBase58()}),o=n.create(r,mt(Pt));if("error"in o)throw new e.SolanaJSONRPCError(o.error,`failed to get balance for compressed account ${t.toBase58()}`);return null===o.result.value?S(0):S(o.result.value)}async getCompressedAccountProof(t){const r=await qt(this.compressionApiEndpoint,"getCompressedAccountProof",{hash:P(t)}),o=n.create(r,mt(It));if("error"in o)throw new e.SolanaJSONRPCError(o.error,`failed to get proof for compressed account ${t.toString()}`);if(null===o.result.value)throw new Error(`failed to get proof for compressed account ${t.toString()}`);return{hash:o.result.value.hash.toArray("be",32),merkleTree:o.result.value.merkleTree,leafIndex:o.result.value.leafIndex,merkleProof:o.result.value.proof,nullifierQueue:zt,rootIndex:o.result.value.rootSeq%2400,root:o.result.value.root}}async getMultipleCompressedAccounts(t){const r=await qt(this.compressionApiEndpoint,"getMultipleCompressedAccounts",{hashes:t.map((e=>P(e)))}),o=n.create(r,mt(yt));if("error"in o)throw new e.SolanaJSONRPCError(o.error,`failed to get info for compressed accounts ${t.map((e=>P(e))).join(", ")}`);if(null===o.result.value)throw new Error(`failed to get info for compressed accounts ${t.map((e=>P(e))).join(", ")}`);const s=[];return o.result.value.items.map((e=>{const t=O(R(e.tree,zt,e.hash.toArray("be",32),e.leafIndex),e.owner,S(e.lamports),e.data?Ht(e.data):void 0,e.address||void 0);s.push(t)})),s.sort(((e,t)=>t.leafIndex-e.leafIndex))}async getMultipleCompressedAccountProofs(t){const r=await qt(this.compressionApiEndpoint,"getMultipleCompressedAccountProofs",t.map((e=>P(e)))),o=n.create(r,mt(n.array(It)));if("error"in o)throw new e.SolanaJSONRPCError(o.error,`failed to get proofs for compressed accounts ${t.map((e=>P(e))).join(", ")}`);if(null===o.result.value)throw new Error(`failed to get proofs for compressed accounts ${t.map((e=>P(e))).join(", ")}`);const s=[];for(const e of o.result.value){const t={hash:e.hash.toArray("be",32),merkleTree:e.merkleTree,leafIndex:e.leafIndex,merkleProof:e.proof,nullifierQueue:Zt,rootIndex:e.rootSeq%2400,root:e.root};s.push(t)}return s}async getCompressedAccountsByOwner(t,r){var o;const s=await qt(this.compressionApiEndpoint,"getCompressedAccountsByOwner",{owner:t.toBase58(),filters:(null==r?void 0:r.filters)||[],dataSlice:null==r?void 0:r.dataSlice,cursor:null==r?void 0:r.cursor,limit:null===(o=null==r?void 0:r.limit)||void 0===o?void 0:o.toNumber()}),i=n.create(s,mt(vt));if("error"in i)throw new e.SolanaJSONRPCError(i.error,`failed to get info for compressed accounts owned by ${t.toBase58()}`);if(null===i.result.value)return{items:[],cursor:null};const a=[];return i.result.value.items.map((e=>{const t=O(R(e.tree,zt,e.hash.toArray("be",32),e.leafIndex),e.owner,S(e.lamports),e.data?Ht(e.data):void 0,e.address||void 0);a.push(t)})),{items:a.sort(((e,t)=>t.leafIndex-e.leafIndex)),cursor:i.result.value.cursor}}async getCompressedTokenAccountsByOwner(e,t){return t||(t={}),await Vt(this,e,t,0)}async getCompressedTokenAccountsByDelegate(e,t){return t||(t={}),Vt(this,e,t,1)}async getCompressedTokenAccountBalance(t){const r=await qt(this.compressionApiEndpoint,"getCompressedTokenAccountBalance",{hash:P(t)}),o=n.create(r,mt(Ct));if("error"in o)throw new e.SolanaJSONRPCError(o.error,`failed to get balance for compressed token account ${t.toString()}`);if(null===o.result.value)throw new Error(`failed to get balance for compressed token account ${t.toString()}`);return{amount:S(o.result.value.amount)}}async getCompressedTokenBalancesByOwner(t,r){var o,s;r||(r={});const i=await qt(this.compressionApiEndpoint,"getCompressedTokenBalancesByOwner",{owner:t.toBase58(),mint:null===(o=r.mint)||void 0===o?void 0:o.toBase58(),limit:null===(s=r.limit)||void 0===s?void 0:s.toNumber(),cursor:r.cursor}),a=n.create(i,mt(Ot));if("error"in a)throw new e.SolanaJSONRPCError(a.error,`failed to get compressed token balances for owner ${t.toBase58()}`);if(null===a.result.value)throw new Error(`failed to get compressed token balances for owner ${t.toBase58()}`);return{items:r.mint?a.result.value.tokenBalances.filter((e=>e.mint.toBase58()===r.mint.toBase58())):a.result.value.tokenBalances,cursor:a.result.value.cursor}}async getCompressedTokenBalancesByOwnerV2(t,r){var o,s;r||(r={});const i=await qt(this.compressionApiEndpoint,"getCompressedTokenBalancesByOwnerV2",{owner:t.toBase58(),mint:null===(o=r.mint)||void 0===o?void 0:o.toBase58(),limit:null===(s=r.limit)||void 0===s?void 0:s.toNumber(),cursor:r.cursor}),a=n.create(i,mt(Rt));if("error"in a)throw new e.SolanaJSONRPCError(a.error,`failed to get compressed token balances for owner ${t.toBase58()}`);if(null===a.result.value)throw new Error(`failed to get compressed token balances for owner ${t.toBase58()}`);const u=r.mint?a.result.value.items.filter((e=>e.mint.toBase58()===r.mint.toBase58())):a.result.value.items;return{context:a.result.context,value:{items:u,cursor:a.result.value.cursor}}}async getCompressionSignaturesForAccount(t){const r=await qt(this.compressionApiEndpoint,"getCompressionSignaturesForAccount",{hash:P(t)}),o=n.create(r,mt(Ut));if("error"in o)throw new e.SolanaJSONRPCError(o.error,`failed to get signatures for compressed account ${t.toString()}`);return o.result.value.items}async getTransactionWithCompressionInfo(t){const r=await qt(this.compressionApiEndpoint,"getTransactionWithCompressionInfo",{signature:t}),o=n.create(r,pt(Ft));if("error"in o)throw new e.SolanaJSONRPCError(o.error,"failed to get slot");if(null===o.result.transaction)return null;const s=[],i=[];o.result.compressionInfo.closedAccounts.map((e=>{s.push(Kt(e))})),o.result.compressionInfo.openedAccounts.map((e=>{i.push(Kt(e))}));const a=e=>{const t=Object.values(e.reduce(((e,{maybeTokenData:t})=>{if(t){const{owner:r,mint:n,amount:o}=t,s=`${r.toBase58()}_${n.toBase58()}`;s in e?e[s].amount=e[s].amount.add(o):e[s]={owner:r,mint:n,amount:o}}return e}),{}));return t.length>0?t:void 0},u=a(s),l=a(i);return{compressionInfo:{closedAccounts:s,openedAccounts:i,preTokenBalances:u,postTokenBalances:l},transaction:o.result.transaction}}async getCompressionSignaturesForAddress(t,r){var o;const s=await qt(this.compressionApiEndpoint,"getCompressionSignaturesForAddress",{address:t.toBase58(),cursor:null==r?void 0:r.cursor,limit:null===(o=null==r?void 0:r.limit)||void 0===o?void 0:o.toNumber()}),i=n.create(s,mt(Dt));if("error"in i)throw new e.SolanaJSONRPCError(i.error,`failed to get signatures for address ${t.toBase58()}`);if(null===i.result.value)throw new Error(`failed to get signatures for address ${t.toBase58()}`);return i.result.value}async getCompressionSignaturesForOwner(t,r){var o;const s=await qt(this.compressionApiEndpoint,"getCompressionSignaturesForOwner",{owner:t.toBase58(),cursor:null==r?void 0:r.cursor,limit:null===(o=null==r?void 0:r.limit)||void 0===o?void 0:o.toNumber()}),i=n.create(s,mt(Dt));if("error"in i)throw new e.SolanaJSONRPCError(i.error,`failed to get signatures for owner ${t.toBase58()}`);if(null===i.result.value)throw new Error(`failed to get signatures for owner ${t.toBase58()}`);return i.result.value}async getCompressionSignaturesForTokenOwner(t,r){var o;const s=await qt(this.compressionApiEndpoint,"getCompressionSignaturesForTokenOwner",{owner:t.toBase58(),cursor:null==r?void 0:r.cursor,limit:null===(o=null==r?void 0:r.limit)||void 0===o?void 0:o.toNumber()}),i=n.create(s,mt(Dt));if("error"in i)throw new e.SolanaJSONRPCError(i.error,`failed to get signatures for owner ${t.toBase58()}`);if(null===i.result.value)throw new Error(`failed to get signatures for owner ${t.toBase58()}`);return i.result.value}async getIndexerHealth(){const t=await qt(this.compressionApiEndpoint,"getIndexerHealth"),r=n.create(t,pt(bt));if("error"in r)throw new e.SolanaJSONRPCError(r.error,"failed to get health");return r.result}async confirmTransactionIndexed(e){const t=Date.now();for(;;){if(await this.getIndexerSlot()>=e)return 1;if(Date.now()-t>2e4)throw new Error("Timeout: Indexer slot did not reach the required slot within 20 seconds");await new Promise((e=>setTimeout(e,200)))}}async getIndexerSlot(){const t=await qt(this.compressionApiEndpoint,"getIndexerSlot"),r=n.create(t,pt(Et));if("error"in r)throw new e.SolanaJSONRPCError(r.error,"failed to get slot");return r.result}async getCompressedMintTokenHolders(t,r){var o;const s=await qt(this.compressionApiEndpoint,"getCompressedMintTokenHolders",{mint:t.toBase58(),cursor:null==r?void 0:r.cursor,limit:null===(o=null==r?void 0:r.limit)||void 0===o?void 0:o.toNumber()}),i=n.create(s,mt(Lt));if("error"in i)throw new e.SolanaJSONRPCError(i.error,"failed to get mint token holders");return i.result}async getLatestCompressionSignatures(t,r){const o=await qt(this.compressionApiEndpoint,"getLatestCompressionSignatures",{limit:r,cursor:t}),s=n.create(o,mt(At));if("error"in s)throw new e.SolanaJSONRPCError(s.error,"failed to get latest non-voting signatures");return s.result}async getLatestNonVotingSignatures(t,r){const o=await qt(this.compressionApiEndpoint,"getLatestNonVotingSignatures",{limit:t,cursor:r}),s=n.create(o,mt(xt));if("error"in s)throw new e.SolanaJSONRPCError(s.error,"failed to get latest non-voting signatures");return s.result}async getMultipleNewAddressProofs(t){const r=await qt(this.compressionApiEndpoint,"getMultipleNewAddressProofs",t.map((e=>P(e)))),o=n.create(r,mt(n.array(Tt)));if("error"in o)throw new e.SolanaJSONRPCError(o.error,`failed to get proofs for new addresses ${t.map((e=>P(e))).join(", ")}`);if(null===o.result.value)throw new Error(`failed to get proofs for new addresses ${t.map((e=>P(e))).join(", ")}`);const s=[];for(const e of o.result.value){const t={root:e.root,rootIndex:e.rootSeq%2400,value:e.address,leafLowerRangeValue:e.lowerRangeAddress,leafHigherRangeValue:e.higherRangeAddress,nextIndex:S(e.nextIndex),merkleProofHashedIndexedElementLeaf:e.proof,indexHashedIndexedElementLeaf:S(e.lowElementLeafIndex),merkleTree:e.merkleTree,nullifierQueue:Zt};s.push(t)}return s}async getValidityProofDirect(e=[],t=[]){let r;if(0===e.length&&0===t.length)throw new Error("Empty input. Provide hashes and/or new addresses.");if(e.length>0&&0===t.length){const t=await this.getMultipleCompressedAccountProofs(e),n=jt(t);r={compressedProof:await Qt(this.proverEndpoint,"inclusion",n),roots:t.map((e=>e.root)),rootIndices:t.map((e=>e.rootIndex)),leafIndices:t.map((e=>e.leafIndex)),leaves:t.map((e=>S(e.hash))),merkleTrees:t.map((e=>e.merkleTree)),nullifierQueues:t.map((e=>e.nullifierQueue))}}else if(0===e.length&&t.length>0){const e=await this.getMultipleNewAddressProofs(t),n=Wt(e);r={compressedProof:await Qt(this.proverEndpoint,"new-address",n),roots:e.map((e=>e.root)),rootIndices:e.map((e=>e.rootIndex)),leafIndices:e.map((e=>e.nextIndex.toNumber())),leaves:e.map((e=>S(e.value))),merkleTrees:e.map((e=>e.merkleTree)),nullifierQueues:e.map((e=>e.nullifierQueue))}}else{if(!(e.length>0&&t.length>0))throw new Error("Invalid input");{const n=await this.getMultipleCompressedAccountProofs(e),o=jt(n),s=await this.getMultipleNewAddressProofs(t),i=Wt(s);r={compressedProof:await Qt(this.proverEndpoint,"combined",[o,i]),roots:n.map((e=>e.root)).concat(s.map((e=>e.root))),rootIndices:n.map((e=>e.rootIndex)).concat(s.map((e=>e.rootIndex))),leafIndices:n.map((e=>e.leafIndex)).concat(s.map((e=>e.nextIndex.toNumber()))),leaves:n.map((e=>S(e.hash))).concat(s.map((e=>S(e.value)))),merkleTrees:n.map((e=>e.merkleTree)).concat(s.map((e=>e.merkleTree))),nullifierQueues:n.map((e=>e.nullifierQueue)).concat(s.map((e=>e.nullifierQueue)))}}}return r}async getValidityProof(e=[],t=[]){const r=w().addressTree,n=w().addressQueue,o=w().merkleTree,s=w().nullifierQueue,i=e.map((e=>({hash:e,tree:o,queue:s}))),a=t.map((e=>({address:e,tree:r,queue:n})));return this.getValidityProofV0(i,a)}async getValidityProofV0(e=[],t=[]){const{value:r}=await this.getValidityProofAndRpcContext(e,t);return r}async getValidityProofAndRpcContext(t=[],r=[]){const o=await qt(this.compressionApiEndpoint,"getValidityProof",{hashes:t.map((({hash:e})=>P(e))),newAddressesWithTrees:r.map((({address:e,tree:t})=>({address:P(e),tree:t.toBase58()})))}),s=n.create(o,mt(kt));if("error"in s)throw new e.SolanaJSONRPCError(s.error,`failed to get ValidityProof for compressed accounts ${t.map((e=>e.toString()))}`);const i=s.result.value;if(null===i)throw new Error(`failed to get ValidityProof for compressed accounts ${t.map((e=>e.toString()))}`);return{value:{compressedProof:i.compressedProof,merkleTrees:i.merkleTrees,leafIndices:i.leafIndices,nullifierQueues:[...t.map((({queue:e})=>e)),...r.map((({queue:e})=>e))],rootIndices:i.rootIndices,roots:i.roots,leaves:i.leaves},context:s.result.context}}}class Xt{constructor(e,t,r){this.index=e,this.value=t,this.nextIndex=r}equals(e){return this.value.eq(e.value)}compareTo(e){return this.value.cmp(e.value)}hash(e,t){try{return e.poseidonHash([S(this.value.toArray("be",32)).toString(),S(this.nextIndex).toString(),S(t.toArray("be",32)).toString()])}catch(e){throw new Error("Hashing failed")}}}class Gt{constructor(e,t,r){this.newLowElement=e,this.newElement=t,this.newElementNextValue=r}}class Yt{constructor(e,t,r){this.elements=e,this.currentNodeIndex=t,this.highestElementIndex=r}static default(){return new Yt([new Xt(0,S(0),0)],0,0)}get(e){return this.elements[e]}length(){return Number(this.currentNodeIndex)}isEmpty(){return 0===this.currentNodeIndex}findElement(e){return this.elements.slice(0,this.length()+1).find((t=>t.value===e))}init(){try{const e=h;return this.append(e)}catch(e){throw new Error(`Failed to initialize IndexedArray: ${e}`)}}findLowElementIndex(e){for(let t=0;t<=this.length();t++){const r=this.elements[t];if(this.elements[r.nextIndex].value.gt(e)&&r.value.lt(e))return t;if(r.value.eq(e))throw new Error("Element already exists in the array")}return this.highestElementIndex}findLowElement(e){const t=this.findLowElementIndex(e);if(void 0===t)return[void 0,void 0];const r=this.elements[t];return[r,this.elements[r.nextIndex].value]}hashElement(e,t){const r=this.elements[t];if(!r)return;const n=this.elements[r.nextIndex];return n?e.poseidonHash([S(r.value.toArray("be",32)).toString(),S(r.nextIndex).toString(),S(n.value.toArray("be",32)).toString()]):void 0}append(e){const t=this.findLowElementIndex(e);if(void 0===t)throw new Error("Low element index not found.");return this.appendWithLowElementIndex(t,e)}appendWithLowElementIndex(e,t){const r=this.elements[e];if(0===r.nextIndex){if(t.lte(r.value))throw new Error("New element value must be greater than the low element value.")}else{const e=this.elements[r.nextIndex];if(t.lte(r.value))throw new Error("New element value must be greater than the low element value.");if(t.gte(e.value))throw new Error("New element value must be less than the next element value.")}const n=this.newElementWithLowElementIndex(e,t);return 0===r.nextIndex&&(this.highestElementIndex=n.newElement.index),this.currentNodeIndex=n.newElement.index,this.elements[this.length()]=n.newElement,this.elements[e]=n.newLowElement,n}lowest(){return this.elements.length>0?this.elements[0]:void 0}newElementWithLowElementIndex(e,t){const r=this.elements[e],n=this.currentNodeIndex+1,o=new Xt(n,t,r.nextIndex);r.nextIndex=n;const s=this.elements[o.nextIndex].value;return new Gt(r,o,s)}newElement(e){const t=this.findLowElementIndex(e);if(void 0===t)throw new Error("Low element index not found.");return this.newElementWithLowElementIndex(t,e)}}class er{constructor(e,t,r=[],{zeroElement:n="0"}={}){if(this.levels=e,this.capacity=2**e,this.zeroElement=n,this._lightWasm=t,r.length>this.capacity)throw new Error("Tree is full");this._zeros=[],this._layers=[],this._layers[0]=r,this._zeros[0]=this.zeroElement;for(let t=1;t<=e;t++)this._zeros[t]=this._lightWasm.poseidonHashString([this._zeros[t-1],this._zeros[t-1]]);this._rebuild()}_rebuild(){for(let e=1;e<=this.levels;e++){this._layers[e]=[];for(let t=0;t<Math.ceil(this._layers[e-1].length/2);t++)this._layers[e][t]=this._lightWasm.poseidonHashString([this._layers[e-1][2*t],2*t+1<this._layers[e-1].length?this._layers[e-1][2*t+1]:this._zeros[e-1]])}}root(){return this._layers[this.levels].length>0?this._layers[this.levels][0]:this._zeros[this.levels]}insert(e){if(this._layers[0].length>=this.capacity)throw new Error("Tree is full");this.update(this._layers[0].length,e)}bulkInsert(e){if(this._layers[0].length+e.length>this.capacity)throw new Error("Tree is full");this._layers[0].push(...e),this._rebuild()}update(e,t){if(isNaN(Number(e))||e<0||e>this._layers[0].length||e>=this.capacity)throw new Error("Insert index out of bounds: "+e);this._layers[0][e]=t;for(let t=1;t<=this.levels;t++)e>>=1,this._layers[t][e]=this._lightWasm.poseidonHashString([this._layers[t-1][2*e],2*e+1<this._layers[t-1].length?this._layers[t-1][2*e+1]:this._zeros[t-1]])}path(e){if(isNaN(Number(e))||e<0||e>=this._layers[0].length)throw new Error("Index out of bounds: "+e);const t=[],r=[];for(let n=0;n<this.levels;n++)r[n]=e%2,t[n]=(1^e)<this._layers[n].length?this._layers[n][1^e]:this._zeros[n],e>>=1;return{pathElements:t,pathIndices:r}}indexOf(e,t=null){return t?this._layers[0].findIndex((r=>t(e,r))):this._layers[0].indexOf(e)}elements(){return this._layers[0].slice()}serialize(){return{levels:this.levels,_zeros:this._zeros,_layers:this._layers}}static deserialize(e,t){const r=Object.assign(Object.create(this.prototype),e);return r._hash=t,r.capacity=2**r.levels,r.zeroElement=r._zeros[0],r}}async function tr(e){const{noopProgram:t,accountCompressionProgram:r}=g(),n=(await e.getConfirmedSignaturesForAddress2(r,void 0,"confirmed")).map((e=>e.signature)),o=(await e.getParsedTransactions(n,{maxSupportedTransactionVersion:0,commitment:"confirmed"})).filter((e=>e?e.transaction.message.accountKeys.some((e=>("string"==typeof e?e:e.pubkey.toBase58())===t.toBase58())):0));return rr(o,nr)}const rr=(e,t)=>{const{noopProgram:r}=g(),n=[];return e.forEach((e=>{!e||!e.meta||e.meta.err||!e.meta.innerInstructions||e.meta.innerInstructions.length<=0||e.meta.innerInstructions.forEach((o=>{if(o.instructions.length>0){const s=o.instructions[o.instructions.length-1];if("data"in s&&s.data&&s.programId.toBase58()===r.toBase58()){const r=k.decode(s.data),o=t(Buffer.from(r),e);null!=o&&n.push(o)}}}))})),n},nr=e=>{const t=Buffer.from(e.map((e=>e)));try{return We(t)}catch(e){return null}};async function or(e,t){return(await sr(e)).find((e=>S(e.hash).eq(t)))}async function sr(e){var t,r;const n=(await tr(e)).reverse(),o=[],s=[];for(const e of n){for(let n=0;n<e.outputCompressedAccounts.length;n++){const s=e.outputCompressedAccounts[n],i={merkleTree:w().merkleTree,nullifierQueue:w().nullifierQueue,hash:e.outputCompressedAccountHashes[n],leafIndex:e.outputLeafIndices[n]},a=O(i,s.compressedAccount.owner,s.compressedAccount.lamports,null!==(t=s.compressedAccount.data)&&void 0!==t?t:void 0,null!==(r=s.compressedAccount.address)&&void 0!==r?r:void 0);o.push(a)}for(let t=0;t<e.inputCompressedAccountHashes.length;t++){const r=e.inputCompressedAccountHashes[t];s.push(S(r))}}const i=o.filter((e=>!s.some((t=>t.eq(S(e.hash))))));return i.sort(((e,t)=>t.leafIndex-e.leafIndex)),i}const ir=new e.PublicKey("cTokenmWW8bLPjZEBAUgYy3zKxQZW6VKi7bqNFEVv3m"),ar=De.struct([De.publicKey("mint"),De.publicKey("owner"),De.u64("amount"),De.option(De.publicKey(),"delegate"),De.u8("state"),De.option(De.vecU8(),"tlv")]);function ur(e,t=ir){if(null===e.data)return null;const{data:r}=e.data;if(0===r.length)return null;if(e.owner.toBase58()!==t.toBase58())throw new Error(`Invalid owner ${e.owner.toBase58()} for token layout`);return ar.decode(Buffer.from(r))}async function lr(e){const t=await Promise.all(e.map((e=>async function(e){const t=e.pubkeyArray,r=e.outputCompressedAccountHashes,n=e.outputCompressedAccounts.map(((n,o)=>{var s;const i={merkleTree:t[e.outputCompressedAccounts[o].merkleTreeIndex],nullifierQueue:w().nullifierQueue,hash:r[o],leafIndex:e.outputLeafIndices[o]};if(!n.compressedAccount.data)throw new Error("No data");const a=ur(n.compressedAccount);if(!a)throw new Error("Invalid token data");return{compressedAccount:O(i,n.compressedAccount.owner,n.compressedAccount.lamports,n.compressedAccount.data,null!==(s=n.compressedAccount.address)&&void 0!==s?s:void 0),parsed:a}}));return{inputCompressedAccountHashes:e.inputCompressedAccountHashes,outputCompressedAccounts:n}}(e)))),r=t.flatMap((e=>e.outputCompressedAccounts)),n=t.flatMap((e=>e.inputCompressedAccountHashes));return r.filter((e=>!n.some((t=>JSON.stringify(t)===JSON.stringify(e.compressedAccount.hash)))))}async function hr(e,t,r){const n=await tr(e);return{items:(await lr(n)).filter((e=>e.parsed.owner.equals(t)&&e.parsed.mint.equals(r))).sort(((e,t)=>t.compressedAccount.leafIndex-e.compressedAccount.leafIndex)),cursor:null}}async function cr(e,t,r){const n=await tr(e);return{items:(await lr(n)).filter((e=>{var n;return(null===(n=e.parsed.delegate)||void 0===n?void 0:n.equals(t))&&e.parsed.mint.equals(r)})),cursor:null}}async function dr(e,t){const r=await tr(e),n=(await lr(r)).filter((e=>S(e.compressedAccount.hash).eq(t)));if(0===n.length)throw new Error("No compressed account found");return n[0]}class pr extends e.Connection{constructor(e,t,r,n,o,s){super(e,o||"confirmed"),this.log=0,this.compressionApiEndpoint=r,this.proverEndpoint=n;const{merkleTreeAddress:i,nullifierQueueAddress:a,depth:u,log:l,addressTreeAddress:h,addressQueueAddress:c}=null!=s?s:{},{merkleTree:d,nullifierQueue:p,merkleTreeHeight:m,addressQueue:f,addressTree:g}=w();this.lightWasm=t,this.merkleTreeAddress=null!=i?i:d,this.nullifierQueueAddress=null!=a?a:p,this.addressTreeAddress=null!=h?h:g,this.addressQueueAddress=null!=c?c:f,this.depth=null!=u?u:m,this.log=null!=l?l:0}async getCompressedAccount(e,t){if(e)throw new Error("address is not supported in test-rpc");if(!t)throw new Error("hash is required");const r=await or(this,t);return null!=r?r:null}async getCompressedBalance(e,t){if(e)throw new Error("address is not supported in test-rpc");if(!t)throw new Error("hash is required");const r=await or(this,t);if(!r)throw new Error("Account not found");return S(r.lamports)}async getCompressedBalanceByOwner(e){return(await this.getCompressedAccountsByOwner(e)).items.reduce(((e,t)=>e.add(t.lamports)),S(0))}async getCompressedAccountProof(e){return(await this.getMultipleCompressedAccountProofs([e]))[0]}async getMultipleCompressedAccounts(e){return await async function(e,t){return(await sr(e)).filter((e=>t.some((t=>S(e.hash).eq(t))))).sort(((e,t)=>t.leafIndex-e.leafIndex))}(this,e)}async confirmTransactionIndexed(e){return 1}async getMultipleCompressedAccountProofs(e){const t=await tr(this).then((e=>e.reverse())),r=[],n=[];for(const e of t)for(let t=0;t<e.outputCompressedAccounts.length;t++){const o=e.outputCompressedAccountHashes[t];r.push(o),n.push(e.outputLeafIndices[t])}const o=new er(this.depth,this.lightWasm,r.map((e=>S(e).toString()))),s=[];for(let t=0;t<e.length;t++){const n=o.indexOf(e[t].toString()),i=o.path(n).pathElements.map((e=>S(e))),a=S(o.root()),u={hash:e[t].toArray("be",32),merkleTree:this.merkleTreeAddress,leafIndex:n,merkleProof:i,nullifierQueue:this.nullifierQueueAddress,rootIndex:r.length,root:a};s.push(u)}return s.forEach(((e,t)=>{const r=e.leafIndex,n=o.elements()[r],s=S(n).toArray("be",32);if(!s.every(((t,r)=>t===e.hash[r])))throw new Error(`Mismatch at index ${t}: expected ${e.hash.toString()}, got ${s.toString()}`)})),s}async getCompressedAccountsByOwner(e,t){const r=await async function(e,t){return(await sr(e)).filter((e=>e.owner.equals(t)))}(this,e);return{items:r,cursor:null}}async getLatestCompressionSignatures(e,t){throw new Error("getLatestNonVotingSignaturesWithContext not supported in test-rpc")}async getLatestNonVotingSignatures(e){throw new Error("getLatestNonVotingSignaturesWithContext not supported in test-rpc")}async getCompressedTokenAccountsByOwner(e,t){return await hr(this,e,t.mint)}async getCompressedTokenAccountsByDelegate(e,t){return await cr(this,e,t.mint)}async getCompressedTokenAccountBalance(e){const t=await dr(this,e);return{amount:S(t.parsed.amount)}}async getCompressedTokenBalancesByOwner(e,t){return{items:(await hr(this,e,t.mint)).items.map((e=>({balance:S(e.parsed.amount),mint:e.parsed.mint}))),cursor:null}}async getCompressedTokenBalancesByOwnerV2(e,t){return{context:{slot:1},value:{items:(await hr(this,e,t.mint)).items.map((e=>({balance:S(e.parsed.amount),mint:e.parsed.mint}))),cursor:null}}}async getCompressionSignaturesForAccount(e){throw new Error("getCompressionSignaturesForAccount not implemented in test-rpc")}async getTransactionWithCompressionInfo(e){throw new Error("getCompressedTransaction not implemented in test-rpc")}async getCompressionSignaturesForAddress(e,t){throw new Error("getSignaturesForAddress3 not implemented")}async getCompressionSignaturesForOwner(e,t){throw new Error("getSignaturesForOwner not implemented")}async getCompressionSignaturesForTokenOwner(e,t){throw new Error("getSignaturesForTokenOwner not implemented")}async getIndexerHealth(){return"ok"}async getIndexerSlot(){return 1}async getMultipleNewAddressProofs(e){const t=Yt.default(),r=[];t.init();const n=[];for(let e=0;e<r.length;e++)t.append(S(r[e]));for(let e=0;e<t.elements.length;e++){const r=t.hashElement(this.lightWasm,e);n.push(S(r))}const o=new er(this.depth,this.lightWasm,n.map((e=>S(e).toString()))),s=[];for(let r=0;r<e.length;r++){const[n]=t.findLowElement(e[r]);if(!n)throw new Error("Address not found");const i=n.index,a=o.path(i).pathElements.map((e=>S(e))),u=t.get(n.nextIndex).value,l={root:S(o.root()),rootIndex:3,value:e[r],leafLowerRangeValue:n.value,leafHigherRangeValue:u,nextIndex:S(n.nextIndex),merkleProofHashedIndexedElementLeaf:a,indexHashedIndexedElementLeaf:S(n.index),merkleTree:this.addressTreeAddress,nullifierQueue:this.addressQueueAddress};s.push(l)}return s}async getCompressedMintTokenHolders(e,t){throw new Error("getCompressedMintTokenHolders not implemented in test-rpc")}async getValidityProofDirect(e=[],t=[]){return this.getValidityProof(e,t)}async getValidityProofAndRpcContext(e=[],t=[]){if(t.some((e=>!(e instanceof u))))throw new Error("AddressWithTree is not supported in test-rpc");return{value:await this.getValidityProofV0(e,t),context:{slot:1}}}async getValidityProof(e=[],t=[]){if(t.some((e=>!(e instanceof u))))throw new Error("AddressWithTree is not supported in test-rpc");let r;if(0===e.length&&0===t.length)throw new Error("Empty input. Provide hashes and/or new addresses.");if(e.length>0&&0===t.length){const t=await this.getMultipleCompressedAccountProofs(e),n=jt(t);r={compressedProof:await Qt(this.proverEndpoint,"inclusion",n,this.log),roots:t.map((e=>e.root)),rootIndices:t.map((e=>e.rootIndex)),leafIndices:t.map((e=>e.leafIndex)),leaves:t.map((e=>S(e.hash))),merkleTrees:t.map((e=>e.merkleTree)),nullifierQueues:t.map((e=>e.nullifierQueue))}}else if(0===e.length&&t.length>0){const e=await this.getMultipleNewAddressProofs(t),n=Wt(e);r={compressedProof:await Qt(this.proverEndpoint,"new-address",n,this.log),roots:e.map((e=>e.root)),rootIndices:e.map((()=>3)),leafIndices:e.map((e=>e.indexHashedIndexedElementLeaf.toNumber())),leaves:e.map((e=>S(e.value))),merkleTrees:e.map((e=>e.merkleTree)),nullifierQueues:e.map((e=>e.nullifierQueue))}}else{if(!(e.length>0&&t.length>0))throw new Error("Invalid input");{const n=await this.getMultipleCompressedAccountProofs(e),o=jt(n),s=await this.getMultipleNewAddressProofs(t),i=Wt(s);r={compressedProof:await Qt(this.proverEndpoint,"combined",[o,i],this.log),roots:n.map((e=>e.root)).concat(s.map((e=>e.root))),rootIndices:n.map((e=>e.rootIndex)).concat(s.map((()=>3))),leafIndices:n.map((e=>e.leafIndex)).concat(s.map((e=>e.indexHashedIndexedElementLeaf.toNumber()))),leaves:n.map((e=>S(e.hash))).concat(s.map((e=>S(e.value)))),merkleTrees:n.map((e=>e.merkleTree)).concat(s.map((e=>e.merkleTree))),nullifierQueues:n.map((e=>e.nullifierQueue)).concat(s.map((e=>e.nullifierQueue)))}}}return r}async getValidityProofV0(e=[],t=[]){return this.getValidityProof(e.map((e=>e.hash)),t.map((e=>e.address)))}}exports.ADDRESS_QUEUE_ROLLOVER_FEE=I,exports.ADDRESS_TREE_NETWORK_FEE=_,exports.ALICE=Oe,exports.AccountProofResult=Bt,exports.BOB=Re,exports.BalanceResult=Ct,exports.BaseRpc=class{async getCancellationPromise(){throw new Error("getCancellationPromise not supported in rpc. it is a stub that is marked as private in web3.js Connection")}async getTransactionConfirmationPromise(){throw new Error("getTransactionConfirmationPromise not supported in rpc. it is a stub that is marked as private in web3.js Connection")}async confirmTransactionUsingBlockHeightExceedanceStrategy(){throw new Error("confirmTransactionUsingBlockHeightExceedanceStrategy not supported in rpc. it is a stub that is marked as private in web3.js Connection")}async confirmTransactionUsingDurableNonceStrategy(){throw new Error("confirmTransactionUsingDurableNonceStrategy not supported in rpc. it is a stub that is marked as private in web3.js Connection")}async confirmTransactionUsingLegacyTimeoutStrategy({commitment:e,signature:t}){throw new Error("confirmTransactionUsingLegacyTimeoutStrategy not supported in rpc. it is a stub that is marked as private in web3.js Connection")}},exports.CHARLIE=Le,exports.CompressedAccountLayout=Fe,exports.CompressedAccountResult=ft,exports.CompressedAccountsByOwnerResult=vt,exports.CompressedMintTokenHoldersResult=Lt,exports.CompressedTokenAccountResult=wt,exports.CompressedTokenAccountsByOwnerOrDelegateResult=Mt,exports.CompressedTransactionResult=Ft,exports.CreateUtxoError=class extends st{},exports.DAVE=Be,exports.DEFAULT_MERKLE_TREE_HEIGHT=b,exports.DEFAULT_MERKLE_TREE_ROOTS=2800,exports.DEFAULT_ZERO="0",exports.FIELD_SIZE=l,exports.HIGHEST_ADDRESS_PLUS_ONE=h,exports.HashError=class extends st{},exports.HealthResult=bt,exports.IndexedArray=Yt,exports.IndexedElement=Xt,exports.IndexedElementBundle=Gt,exports.InstructionDataInvokeLayout=Ke,exports.LatestNonVotingSignaturesResult=xt,exports.LatestNonVotingSignaturesResultPaginated=At,exports.LightSystemProgram=Ze,exports.LookupTableError=class extends st{},exports.MerkeProofResult=It,exports.MerkleContextLayout=He,exports.MerkleTree=er,exports.MerkleTreeError=class extends st{},exports.MultipleCompressedAccountsResult=yt,exports.MultipleMerkleProofsResult=St,exports.NativeBalanceResult=Pt,exports.NewAddressParamsLayout=Ve,exports.NewAddressProofResult=Tt,exports.ProofError=class extends st{},exports.PublicTransactionEventLayout=je,exports.Rpc=Jt,exports.RpcError=class extends st{},exports.STATE_MERKLE_TREE_NETWORK_FEE=T,exports.STATE_MERKLE_TREE_ROLLOVER_FEE=A,exports.SelectInUtxosError=class extends st{},exports.SignatureListResult=Ut,exports.SignatureListWithCursorResult=Dt,exports.SlotResult=Et,exports.TRANSACTION_MERKLE_TREE_ROLLOVER_THRESHOLD=x,exports.TestRpc=pr,exports.TokenBalanceListResult=Ot,exports.TokenBalanceListResultV2=Rt,exports.TokenBalanceResult=Nt,exports.TokenDataLayout=ar,exports.TokenDataResult=gt,exports.UTXO_MERGE_MAXIMUM=10,exports.UTXO_MERGE_THRESHOLD=20,exports.UtilsError=class extends st{},exports.UtxoError=class extends st{},exports.ValidityProofResult=kt,exports.accountCompressionProgram=p,exports.addressQueue=E,exports.addressTree=M,exports.airdropSol=async function({connection:e,lamports:t,recipientPublicKey:r}){const n=await e.requestAirdrop(r,t);return await be(e,n),n},exports.bn=S,exports.bufToDecStr=e=>C(e).toString(),exports.buildAndSignTx=Pe,exports.buildTx=ke,exports.byteArrayToKeypair=function(t){return e.Keypair.fromSecretKey(Uint8Array.from(t))},exports.calculateComputeUnitPrice=function(e,t){return Math.ceil(1e6*e/t)},exports.checkValidityProofShape=e=>{if(32!==e.a.length||64!==e.b.length||32!==e.c.length)throw new Error("ValidityProof has invalid shape")},exports.compress=async function(t,r,n,o,s,i){const{blockhash:a}=await t.getLatestBlockhash(),u=await Ze.compress({payer:r.publicKey,toAddress:o,lamports:n,outputStateTree:s}),l=Pe([e.ComputeBudgetProgram.setComputeUnitLimit({units:1e6}),u],r,a,[]);return await Se(t,l,i)},exports.confirmConfig={commitment:"confirmed",preflightCommitment:"confirmed"},exports.confirmTransaction=be,exports.confirmTx=Ce,exports.convertMerkleProofsWithContextToHex=jt,exports.convertNonInclusionMerkleProofInputsToHex=Wt,exports.createAccount=async function(t,r,n,o,s,i,a,u){const{blockhash:l}=await t.getLatestBlockhash();s=null!=s?s:w().addressTree,i=null!=i?i:w().addressQueue;const h=ve(n,o),c=Me(h,s),d=await t.getValidityProofV0(void 0,[{address:S(c.toBytes()),tree:s,queue:i}]),p={seed:h,addressMerkleTreeRootIndex:d.rootIndices[0],addressMerkleTreePubkey:d.merkleTrees[0],addressQueuePubkey:d.nullifierQueues[0]},m=await Ze.createAccount({payer:r.publicKey,newAddressParams:p,newAddress:Array.from(c.toBytes()),recentValidityProof:d.compressedProof,programId:o,outputStateTree:a}),f=Pe([e.ComputeBudgetProgram.setComputeUnitLimit({units:1e6}),m],r,l,[]);return await Se(t,f,u)},exports.createAccountWithLamports=async function(t,r,n,o,s,i,a,u,l){o=S(o);const h=await t.getCompressedAccountsByOwner(r.publicKey),[c]=Je(h.items,o),{blockhash:d}=await t.getLatestBlockhash();i=null!=i?i:w().addressTree,a=null!=a?a:w().addressQueue;const p=ve(n,s),m=Me(p,i),f=await t.getValidityProof(c.map((e=>S(e.hash))),[S(m.toBytes())]),g={seed:p,addressMerkleTreeRootIndex:f.rootIndices[f.rootIndices.length-1],addressMerkleTreePubkey:f.merkleTrees[f.merkleTrees.length-1],addressQueuePubkey:f.nullifierQueues[f.nullifierQueues.length-1]},y=await Ze.createAccount({payer:r.publicKey,newAddressParams:g,newAddress:Array.from(m.toBytes()),recentValidityProof:f.compressedProof,inputCompressedAccounts:c,inputStateRootIndices:f.rootIndices,programId:s,outputStateTree:u}),v=Pe([e.ComputeBudgetProgram.setComputeUnitLimit({units:1e6}),y],r,d,[]);return await Se(t,v,l)},exports.createBN254=C,exports.createCompressedAccount=N,exports.createCompressedAccountWithMerkleContext=O,exports.createMerkleContext=R,exports.createRpc=function(e="http://127.0.0.1:8899",t="http://127.0.0.1:8784",r="http://127.0.0.1:3001",n){const o="string"==typeof e?e:e.rpcEndpoint;return new Jt(o,t,r,n)},exports.createRpcResult=ct,exports.decodeInstructionDataInvoke=function(e){return Ke.decode(e)},exports.decodePublicTransactionEvent=We,exports.decompress=async function(t,r,n,o,s,i){const a=(await t.getCompressedAccountsByOwner(r.publicKey)).items;n=S(n);const u=$e(a);if(n.gt(u))throw new Error(`Not enough compressed lamports. Expected ${n}, got ${u}`);const l=await t.getValidityProof(a.map((e=>S(e.hash)))),{blockhash:h}=await t.getLatestBlockhash(),c=await Ze.decompress({payer:r.publicKey,toAddress:o,outputStateTree:s,inputCompressedAccounts:a,recentValidityProof:l.compressedProof,recentInputStateRootIndices:l.rootIndices,lamports:n}),d=Pe([e.ComputeBudgetProgram.setComputeUnitLimit({units:1e6}),c],r,h,[]);return await Se(t,d,i)},exports.dedupeSigner=function(e,t){return t.includes(e)?t.filter((t=>t.publicKey.toString()!==e.publicKey.toString())):t},exports.defaultStaticAccounts=()=>[new e.PublicKey(m()),new e.PublicKey(c),new e.PublicKey(p),new e.PublicKey(f())],exports.defaultStaticAccountsStruct=g,exports.defaultTestStateTreeAccounts=w,exports.deriveAddress=Me,exports.deriveAddressSeed=ve,exports.encodeBN254toBase58=P,exports.encodeInstructionDataInvoke=qe,exports.encodePublicTransactionEvent=function(e){const r=t.Buffer.alloc(1e3),n=je.encode(e,r);return r.slice(0,n)},exports.getAccountCompressionAuthority=f,exports.getCompressedTokenAccountByHashTest=dr,exports.getCompressedTokenAccounts=lr,exports.getCompressedTokenAccountsByDelegateTest=cr,exports.getCompressedTokenAccountsByOwnerTest=hr,exports.getConnection=function(){return new e.Connection("http://127.0.0.1:8899","confirmed")},exports.getIndexOrAdd=pe,exports.getParsedEvents=tr,exports.getPublicInputHash=function(e,t,r,n){const o=$t(e.map((e=>e.root)),t,n),s=r.map((e=>e.value)),i=$t(r.map((e=>e.root)),s,n);return i.isZero()?o.isZero()?$t([o],[i],n):o:i},exports.getRegisteredProgramPda=m,exports.getTestKeypair=Ue,exports.getTestRpc=async function(e,t="http://127.0.0.1:8899",r="http://127.0.0.1:8784",n="http://127.0.0.1:3001",o,s,i,a=0){const u=w();return new pr(t,e,r,n,void 0,{merkleTreeAddress:o||u.merkleTree,nullifierQueueAddress:s||u.nullifierQueue,depth:i||u.merkleTreeHeight,log:a})},exports.hashToBn254FieldSizeBe=he,exports.hashvToBn254FieldSizeBe=ce,exports.invokeAccountsLayout=Qe,exports.jsonRpcResult=pt,exports.jsonRpcResultAndContext=mt,exports.lightProgram=d,exports.merkletreePubkey=v,exports.negateAndCompressProof=Ae,exports.newAccountWithLamports=async function(e,t=1e9,r){(void 0===r||r>255)&&(r=256);const n=Ue(r),o=await e.requestAirdrop(n.publicKey,t);return await Ce(e,o),n},exports.noopProgram=c,exports.nullifierQueuePubkey=y,exports.packCompressedAccounts=ge,exports.packNewAddressParams=Ee,exports.padOutputStateMerkleTrees=me,exports.parseAccountData=Ht,exports.parseEvents=rr,exports.parsePublicTransactionEventWithIdl=nr,exports.parseTokenLayoutWithIdl=ur,exports.pipe=function(e,...t){return r=>t.reduce(((e,t)=>t(e)),e(r))},exports.placeholderValidityProof=()=>({a:Array.from({length:32},((e,t)=>t+1)),b:Array.from({length:64},((e,t)=>t+1)),c:Array.from({length:32},((e,t)=>t+1))}),exports.proofFromJsonStruct=xe,exports.proverRequest=Qt,exports.pushUniqueItems=function(e,t){e.forEach((e=>{t.includes(e)||t.push(e)}))},exports.rpcRequest=qt,exports.selectMinCompressedSolAccountsForTransfer=Je,exports.sendAndConfirmTx=Se,exports.sleep=function(e){return new Promise((t=>setTimeout(t,e)))},exports.sumUpLamports=$e,exports.toAccountMetas=fe,exports.toArray=ue,exports.toCamelCase=de,exports.toHex=ae,exports.toUnixTimestamp=e=>new Date(e).getTime(),exports.transfer=async function(t,r,n,o,s,i,a){var l;let h=S(0);const c=[];let d;for(n=S(n);h.lt(n);){const e={filters:void 0,dataSlice:void 0,cursor:d,limit:new u(1e3)},r=await t.getCompressedAccountsByOwner(o.publicKey,e);for(const e of r.items)e.lamports.gt(new u(0))&&(c.push(e),h=h.add(e.lamports));if(d=null!==(l=r.cursor)&&void 0!==l?l:void 0,r.items.length<1e3||h.gte(n))break}if(h.lt(n))throw new Error(`Not enough balance for transfer. Required: ${n.toString()}, available: ${h.toString()}`);const[p]=Je(c,n),m=await t.getValidityProof(p.map((e=>S(e.hash)))),f=await Ze.transfer({payer:r.publicKey,inputCompressedAccounts:p,toAddress:s,lamports:n,recentInputStateRootIndices:m.rootIndices,recentValidityProof:m.compressedProof,outputStateTrees:i}),{blockhash:g}=await t.getLatestBlockhash(),w=Pe([e.ComputeBudgetProgram.setComputeUnitLimit({units:1e6}),f],r,g);return await Se(t,w,a)},exports.validateSameOwner=ye,exports.validateSufficientBalance=we;
1
+ "use strict";var e=require("@solana/web3.js"),t="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},r=[],n=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,s=0;function i(){s=1;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0;t<64;++t)r[t]=e[t],n[e.charCodeAt(t)]=t;n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63}function a(e,t,n){for(var o,s,i=[],a=t;a<n;a+=3)o=(e[a]<<16)+(e[a+1]<<8)+e[a+2],i.push(r[(s=o)>>18&63]+r[s>>12&63]+r[s>>6&63]+r[63&s]);return i.join("")}function u(e){var t;s||i();for(var n=e.length,o=n%3,u="",l=[],c=16383,h=0,d=n-o;h<d;h+=c)l.push(a(e,h,h+c>d?d:h+c));return 1===o?(t=e[n-1],u+=r[t>>2],u+=r[t<<4&63],u+="=="):2===o&&(t=(e[n-2]<<8)+e[n-1],u+=r[t>>10],u+=r[t>>4&63],u+=r[t<<2&63],u+="="),l.push(u),l.join("")}function l(e,t,r,n,o){var s,i,a=8*o-n-1,u=(1<<a)-1,l=u>>1,c=-7,h=r?o-1:0,d=r?-1:1,p=e[t+h];for(h+=d,s=p&(1<<-c)-1,p>>=-c,c+=a;c>0;s=256*s+e[t+h],h+=d,c-=8);for(i=s&(1<<-c)-1,s>>=-c,c+=n;c>0;i=256*i+e[t+h],h+=d,c-=8);if(0===s)s=1-l;else{if(s===u)return i?NaN:Infinity*(p?-1:1);i+=Math.pow(2,n),s-=l}return(p?-1:1)*i*Math.pow(2,s-n)}function c(e,t,r,n,o,s){var i,a,u,l=8*s-o-1,c=(1<<l)-1,h=c>>1,d=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:s-1,f=n?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||Infinity===t?(a=isNaN(t)?1:0,i=c):(i=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-i))<1&&(i--,u*=2),(t+=i+h>=1?d/u:d*Math.pow(2,1-h))*u>=2&&(i++,u/=2),i+h>=c?(a=0,i=c):i+h>=1?(a=(t*u-1)*Math.pow(2,o),i+=h):(a=t*Math.pow(2,h-1)*Math.pow(2,o),i=0));o>=8;e[r+p]=255&a,p+=f,a/=256,o-=8);for(i=i<<o|a,l+=o;l>0;e[r+p]=255&i,p+=f,i/=256,l-=8);e[r+p-f]|=128*m}var h={}.toString,d=Array.isArray||function(e){return"[object Array]"==h.call(e)};g.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:1;var p=f();function f(){return g.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function m(e,t){if(f()<t)throw new RangeError("Invalid typed array length");return g.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=g.prototype:(null===e&&(e=new g(t)),e.length=t),e}function g(e,t,r){if(!(g.TYPED_ARRAY_SUPPORT||this instanceof g))return new g(e,t,r);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return v(this,e)}return y(this,e,t,r)}function y(e,t,r,n){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,r,n){if(t.byteLength,r<0||t.byteLength<r)throw new RangeError("'offset' is out of bounds");if(t.byteLength<r+(n||0))throw new RangeError("'length' is out of bounds");return t=void 0===r&&void 0===n?new Uint8Array(t):void 0===n?new Uint8Array(t,r):new Uint8Array(t,r,n),g.TYPED_ARRAY_SUPPORT?(e=t).__proto__=g.prototype:e=E(e,t),e}(e,t,r,n):"string"==typeof t?function(e,t,r){if("string"==typeof r&&""!==r||(r="utf8"),!g.isEncoding(r))throw new TypeError('"encoding" must be a valid string encoding');var n=0|x(t,r),o=(e=m(e,n)).write(t,r);return o!==n&&(e=e.slice(0,o)),e}(e,t,r):function(e,t){if(M(t)){var r=0|b(t.length);return 0===(e=m(e,r)).length||t.copy(e,0,0,r),e}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(n=t.length)!=n?m(e,0):E(e,t);if("Buffer"===t.type&&d(t.data))return E(e,t.data)}var n;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function w(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function v(e,t){if(w(t),e=m(e,t<0?0:0|b(t)),!g.TYPED_ARRAY_SUPPORT)for(var r=0;r<t;++r)e[r]=0;return e}function E(e,t){var r=t.length<0?0:0|b(t.length);e=m(e,r);for(var n=0;n<r;n+=1)e[n]=255&t[n];return e}function b(e){if(e>=f())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+f().toString(16)+" bytes");return 0|e}function M(e){return!(null==e||!e._isBuffer)}function x(e,t){if(M(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=0;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return Y(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return Z(e).length;default:if(n)return Y(e).length;t=(""+t).toLowerCase(),n=1}}function A(e,t,r){var n=0;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return F(this,t,r);case"utf8":case"utf-8":return L(this,t,r);case"ascii":return U(this,t,r);case"latin1":case"binary":return D(this,t,r);case"base64":return N(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return V(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=1}}function I(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function S(e,t,r,n,o){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=o?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(o)return-1;r=e.length-1}else if(r<0){if(!o)return-1;r=0}if("string"==typeof t&&(t=g.from(t,n)),M(t))return 0===t.length?-1:T(e,t,r,n,o);if("number"==typeof t)return t&=255,g.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):T(e,[t],r,n,o);throw new TypeError("val must be string, number or Buffer")}function T(e,t,r,n,o){var s,i=1,a=e.length,u=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;i=2,a/=2,u/=2,r/=2}function l(e,t){return 1===i?e[t]:e.readUInt16BE(t*i)}if(o){var c=-1;for(s=r;s<a;s++)if(l(e,s)===l(t,-1===c?0:s-c)){if(-1===c&&(c=s),s-c+1===u)return c*i}else-1!==c&&(s-=s-c),c=-1}else for(r+u>a&&(r=a-u),s=r;s>=0;s--){for(var h=1,d=0;d<u;d++)if(l(e,s+d)!==l(t,d)){h=0;break}if(h)return s}return-1}function P(e,t,r,n){r=Number(r)||0;var o=e.length-r;n?(n=Number(n))>o&&(n=o):n=o;var s=t.length;if(s%2!=0)throw new TypeError("Invalid hex string");n>s/2&&(n=s/2);for(var i=0;i<n;++i){var a=parseInt(t.substr(2*i,2),16);if(isNaN(a))return i;e[r+i]=a}return i}function _(e,t,r,n){return J(Y(t,e.length-r),e,r,n)}function k(e,t,r,n){return J(function(e){for(var t=[],r=0;r<e.length;++r)t.push(255&e.charCodeAt(r));return t}(t),e,r,n)}function C(e,t,r,n){return k(e,t,r,n)}function O(e,t,r,n){return J(Z(t),e,r,n)}function R(e,t,r,n){return J(function(e,t){for(var r,n,o,s=[],i=0;i<e.length&&!((t-=2)<0);++i)n=(r=e.charCodeAt(i))>>8,o=r%256,s.push(o),s.push(n);return s}(t,e.length-r),e,r,n)}function N(e,t,r){return 0===t&&r===e.length?u(e):u(e.slice(t,r))}function L(e,t,r){r=Math.min(e.length,r);for(var n=[],o=t;o<r;){var s,i,a,u,l=e[o],c=null,h=l>239?4:l>223?3:l>191?2:1;if(o+h<=r)switch(h){case 1:l<128&&(c=l);break;case 2:128==(192&(s=e[o+1]))&&(u=(31&l)<<6|63&s)>127&&(c=u);break;case 3:s=e[o+1],i=e[o+2],128==(192&s)&&128==(192&i)&&(u=(15&l)<<12|(63&s)<<6|63&i)>2047&&(u<55296||u>57343)&&(c=u);break;case 4:s=e[o+1],i=e[o+2],a=e[o+3],128==(192&s)&&128==(192&i)&&128==(192&a)&&(u=(15&l)<<18|(63&s)<<12|(63&i)<<6|63&a)>65535&&u<1114112&&(c=u)}null===c?(c=65533,h=1):c>65535&&(c-=65536,n.push(c>>>10&1023|55296),c=56320|1023&c),n.push(c),o+=h}return function(e){var t=e.length;if(t<=B)return String.fromCharCode.apply(String,e);for(var r="",n=0;n<t;)r+=String.fromCharCode.apply(String,e.slice(n,n+=B));return r}(n)}g.poolSize=8192,g._augment=function(e){return e.__proto__=g.prototype,e},g.from=function(e,t,r){return y(null,e,t,r)},g.TYPED_ARRAY_SUPPORT&&(g.prototype.__proto__=Uint8Array.prototype,g.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&g[Symbol.species]),g.alloc=function(e,t,r){return function(e,t,r,n){return w(t),t<=0?m(e,t):void 0!==r?"string"==typeof n?m(e,t).fill(r,n):m(e,t).fill(r):m(e,t)}(null,e,t,r)},g.allocUnsafe=function(e){return v(null,e)},g.allocUnsafeSlow=function(e){return v(null,e)},g.isBuffer=X,g.compare=function(e,t){if(!M(e)||!M(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var r=e.length,n=t.length,o=0,s=Math.min(r,n);o<s;++o)if(e[o]!==t[o]){r=e[o],n=t[o];break}return r<n?-1:n<r?1:0},g.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 1;default:return 0}},g.concat=function(e,t){if(!d(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return g.alloc(0);var r;if(void 0===t)for(t=0,r=0;r<e.length;++r)t+=e[r].length;var n=g.allocUnsafe(t),o=0;for(r=0;r<e.length;++r){var s=e[r];if(!M(s))throw new TypeError('"list" argument must be an Array of Buffers');s.copy(n,o),o+=s.length}return n},g.byteLength=x,g.prototype._isBuffer=1,g.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)I(this,t,t+1);return this},g.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)I(this,t,t+3),I(this,t+1,t+2);return this},g.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)I(this,t,t+7),I(this,t+1,t+6),I(this,t+2,t+5),I(this,t+3,t+4);return this},g.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?L(this,0,e):A.apply(this,arguments)},g.prototype.equals=function(e){if(!M(e))throw new TypeError("Argument must be a Buffer");return this===e?1:0===g.compare(this,e)},g.prototype.inspect=function(){var e="";return this.length>0&&(e=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(e+=" ... ")),"<Buffer "+e+">"},g.prototype.compare=function(e,t,r,n,o){if(!M(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===o&&(o=this.length),t<0||r>e.length||n<0||o>this.length)throw new RangeError("out of range index");if(n>=o&&t>=r)return 0;if(n>=o)return-1;if(t>=r)return 1;if(this===e)return 0;for(var s=(o>>>=0)-(n>>>=0),i=(r>>>=0)-(t>>>=0),a=Math.min(s,i),u=this.slice(n,o),l=e.slice(t,r),c=0;c<a;++c)if(u[c]!==l[c]){s=u[c],i=l[c];break}return s<i?-1:i<s?1:0},g.prototype.includes=function(e,t,r){return-1!==this.indexOf(e,t,r)},g.prototype.indexOf=function(e,t,r){return S(this,e,t,r,1)},g.prototype.lastIndexOf=function(e,t,r){return S(this,e,t,r,0)},g.prototype.write=function(e,t,r,n){if(void 0===t)n="utf8",r=this.length,t=0;else if(void 0===r&&"string"==typeof t)n=t,r=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(r)?(r|=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var o=this.length-t;if((void 0===r||r>o)&&(r=o),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var s=0;;)switch(n){case"hex":return P(this,e,t,r);case"utf8":case"utf-8":return _(this,e,t,r);case"ascii":return k(this,e,t,r);case"latin1":case"binary":return C(this,e,t,r);case"base64":return O(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,e,t,r);default:if(s)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),s=1}},g.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var B=4096;function U(e,t,r){var n="";r=Math.min(e.length,r);for(var o=t;o<r;++o)n+=String.fromCharCode(127&e[o]);return n}function D(e,t,r){var n="";r=Math.min(e.length,r);for(var o=t;o<r;++o)n+=String.fromCharCode(e[o]);return n}function F(e,t,r){var n,o=e.length;(!t||t<0)&&(t=0),(!r||r<0||r>o)&&(r=o);for(var s="",i=t;i<r;++i)s+=(n=e[i])<16?"0"+n.toString(16):n.toString(16);return s}function V(e,t,r){for(var n=e.slice(t,r),o="",s=0;s<n.length;s+=2)o+=String.fromCharCode(n[s]+256*n[s+1]);return o}function q(e,t,r){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>r)throw new RangeError("Trying to access beyond buffer length")}function H(e,t,r,n,o,s){if(!M(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||t<s)throw new RangeError('"value" argument is out of bounds');if(r+n>e.length)throw new RangeError("Index out of range")}function K(e,t,r,n){t<0&&(t=65535+t+1);for(var o=0,s=Math.min(e.length-r,2);o<s;++o)e[r+o]=(t&255<<8*(n?o:1-o))>>>8*(n?o:1-o)}function j(e,t,r,n){t<0&&(t=4294967295+t+1);for(var o=0,s=Math.min(e.length-r,4);o<s;++o)e[r+o]=t>>>8*(n?o:3-o)&255}function W(e,t,r,n){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function Q(e,t,r,n,o){return o||W(e,0,r,4),c(e,t,r,n,23,4),r+4}function $(e,t,r,n,o){return o||W(e,0,r,8),c(e,t,r,n,52,8),r+8}g.prototype.slice=function(e,t){var r,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t<e&&(t=e),g.TYPED_ARRAY_SUPPORT)(r=this.subarray(e,t)).__proto__=g.prototype;else{var o=t-e;r=new g(o,void 0);for(var s=0;s<o;++s)r[s]=this[s+e]}return r},g.prototype.readUIntLE=function(e,t,r){e|=0,t|=0,r||q(e,t,this.length);for(var n=this[e],o=1,s=0;++s<t&&(o*=256);)n+=this[e+s]*o;return n},g.prototype.readUIntBE=function(e,t,r){e|=0,t|=0,r||q(e,t,this.length);for(var n=this[e+--t],o=1;t>0&&(o*=256);)n+=this[e+--t]*o;return n},g.prototype.readUInt8=function(e,t){return t||q(e,1,this.length),this[e]},g.prototype.readUInt16LE=function(e,t){return t||q(e,2,this.length),this[e]|this[e+1]<<8},g.prototype.readUInt16BE=function(e,t){return t||q(e,2,this.length),this[e]<<8|this[e+1]},g.prototype.readUInt32LE=function(e,t){return t||q(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},g.prototype.readUInt32BE=function(e,t){return t||q(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},g.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||q(e,t,this.length);for(var n=this[e],o=1,s=0;++s<t&&(o*=256);)n+=this[e+s]*o;return n>=(o*=128)&&(n-=Math.pow(2,8*t)),n},g.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||q(e,t,this.length);for(var n=t,o=1,s=this[e+--n];n>0&&(o*=256);)s+=this[e+--n]*o;return s>=(o*=128)&&(s-=Math.pow(2,8*t)),s},g.prototype.readInt8=function(e,t){return t||q(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},g.prototype.readInt16LE=function(e,t){t||q(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},g.prototype.readInt16BE=function(e,t){t||q(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},g.prototype.readInt32LE=function(e,t){return t||q(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},g.prototype.readInt32BE=function(e,t){return t||q(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},g.prototype.readFloatLE=function(e,t){return t||q(e,4,this.length),l(this,e,1,23,4)},g.prototype.readFloatBE=function(e,t){return t||q(e,4,this.length),l(this,e,0,23,4)},g.prototype.readDoubleLE=function(e,t){return t||q(e,8,this.length),l(this,e,1,52,8)},g.prototype.readDoubleBE=function(e,t){return t||q(e,8,this.length),l(this,e,0,52,8)},g.prototype.writeUIntLE=function(e,t,r,n){e=+e,t|=0,r|=0,n||H(this,e,t,r,Math.pow(2,8*r)-1,0);var o=1,s=0;for(this[t]=255&e;++s<r&&(o*=256);)this[t+s]=e/o&255;return t+r},g.prototype.writeUIntBE=function(e,t,r,n){e=+e,t|=0,r|=0,n||H(this,e,t,r,Math.pow(2,8*r)-1,0);var o=r-1,s=1;for(this[t+o]=255&e;--o>=0&&(s*=256);)this[t+o]=e/s&255;return t+r},g.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||H(this,e,t,1,255,0),g.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},g.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||H(this,e,t,2,65535,0),g.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):K(this,e,t,1),t+2},g.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||H(this,e,t,2,65535,0),g.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):K(this,e,t,0),t+2},g.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||H(this,e,t,4,4294967295,0),g.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):j(this,e,t,1),t+4},g.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||H(this,e,t,4,4294967295,0),g.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):j(this,e,t,0),t+4},g.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var o=Math.pow(2,8*r-1);H(this,e,t,r,o-1,-o)}var s=0,i=1,a=0;for(this[t]=255&e;++s<r&&(i*=256);)e<0&&0===a&&0!==this[t+s-1]&&(a=1),this[t+s]=(e/i>>0)-a&255;return t+r},g.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var o=Math.pow(2,8*r-1);H(this,e,t,r,o-1,-o)}var s=r-1,i=1,a=0;for(this[t+s]=255&e;--s>=0&&(i*=256);)e<0&&0===a&&0!==this[t+s+1]&&(a=1),this[t+s]=(e/i>>0)-a&255;return t+r},g.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||H(this,e,t,1,127,-128),g.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},g.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||H(this,e,t,2,32767,-32768),g.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):K(this,e,t,1),t+2},g.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||H(this,e,t,2,32767,-32768),g.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):K(this,e,t,0),t+2},g.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||H(this,e,t,4,2147483647,-2147483648),g.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):j(this,e,t,1),t+4},g.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||H(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),g.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):j(this,e,t,0),t+4},g.prototype.writeFloatLE=function(e,t,r){return Q(this,e,t,1,r)},g.prototype.writeFloatBE=function(e,t,r){return Q(this,e,t,0,r)},g.prototype.writeDoubleLE=function(e,t,r){return $(this,e,t,1,r)},g.prototype.writeDoubleBE=function(e,t,r){return $(this,e,t,0,r)},g.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n<r&&(n=r),n===r)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(r<0||r>=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t<n-r&&(n=e.length-t+r);var o,s=n-r;if(this===e&&r<t&&t<n)for(o=s-1;o>=0;--o)e[o+t]=this[o+r];else if(s<1e3||!g.TYPED_ARRAY_SUPPORT)for(o=0;o<s;++o)e[o+t]=this[o+r];else Uint8Array.prototype.set.call(e,this.subarray(r,r+s),t);return s},g.prototype.fill=function(e,t,r,n){if("string"==typeof e){if("string"==typeof t?(n=t,t=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),1===e.length){var o=e.charCodeAt(0);o<256&&(e=o)}if(void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!g.isEncoding(n))throw new TypeError("Unknown encoding: "+n)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<r)throw new RangeError("Out of range index");if(r<=t)return this;var s;if(t>>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(s=t;s<r;++s)this[s]=e;else{var i=M(e)?e:Y(new g(e,n).toString()),a=i.length;for(s=0;s<r-t;++s)this[s+t]=i[s%a]}return this};var z=/[^+\/0-9A-Za-z-_]/g;function Y(e,t){var r;t=t||Infinity;for(var n=e.length,o=null,s=[],i=0;i<n;++i){if((r=e.charCodeAt(i))>55295&&r<57344){if(!o){if(r>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(i+1===n){(t-=3)>-1&&s.push(239,191,189);continue}o=r;continue}if(r<56320){(t-=3)>-1&&s.push(239,191,189),o=r;continue}r=65536+(o-55296<<10|r-56320)}else o&&(t-=3)>-1&&s.push(239,191,189);if(o=null,r<128){if((t-=1)<0)break;s.push(r)}else if(r<2048){if((t-=2)<0)break;s.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;s.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;s.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return s}function Z(e){return function(e){var t,r,a,u,l,c;s||i();var h=e.length;if(h%4>0)throw new Error("Invalid string. Length must be a multiple of 4");l="="===e[h-2]?2:"="===e[h-1]?1:0,c=new o(3*h/4-l),a=l>0?h-4:h;var d=0;for(t=0,r=0;t<a;t+=4,r+=3)u=n[e.charCodeAt(t)]<<18|n[e.charCodeAt(t+1)]<<12|n[e.charCodeAt(t+2)]<<6|n[e.charCodeAt(t+3)],c[d++]=u>>16&255,c[d++]=u>>8&255,c[d++]=255&u;return 2===l?(u=n[e.charCodeAt(t)]<<2|n[e.charCodeAt(t+1)]>>4,c[d++]=255&u):1===l&&(u=n[e.charCodeAt(t)]<<10|n[e.charCodeAt(t+1)]<<4|n[e.charCodeAt(t+2)]>>2,c[d++]=u>>8&255,c[d++]=255&u),c}(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(z,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function J(e,t,r,n){for(var o=0;o<n&&!(o+r>=t.length||o>=e.length);++o)t[o+r]=e[o];return o}function X(e){return null!=e&&(!!e._isBuffer||G(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&G(e.slice(0,0))}(e))}function G(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}var ee="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function te(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function re(e){if(e.__esModule)return e;var t=e.default;if("function"==typeof t){var r=function e(){return this instanceof e?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};r.prototype=t.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:1}),Object.keys(e).forEach((function(t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:1,get:function(){return e[t]}})})),r}var ne={exports:{}},oe=re(Object.freeze({__proto__:null,Buffer:g,INSPECT_MAX_BYTES:50,SlowBuffer:function(e){return+e!=e&&(e=0),g.alloc(+e)},isBuffer:X,kMaxLength:p}));!function(e,t){function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function n(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function o(e,t,r){if(o.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var s;"object"==typeof ne?ne.exports=o:t.BN=o,o.BN=o,o.wordSize=26;try{s="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:oe.Buffer}catch(e){}function i(e,t){var n=e.charCodeAt(t);return n>=48&&n<=57?n-48:n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:void r(0,"Invalid character in "+e)}function a(e,t,r){var n=i(e,r);return r-1>=t&&(n|=i(e,r-1)<<4),n}function u(e,t,n,o){for(var s=0,i=0,a=Math.min(e.length,n),u=t;u<a;u++){var l=e.charCodeAt(u)-48;s*=o,i=l>=49?l-49+10:l>=17?l-17+10:l,r(l>=0&&i<o,"Invalid character"),s+=i}return s}function l(e,t){e.words=t.words,e.length=t.length,e.negative=t.negative,e.red=t.red}if(o.isBN=function(e){return e instanceof o?1:null!==e&&"object"==typeof e&&e.constructor.wordSize===o.wordSize&&Array.isArray(e.words)},o.max=function(e,t){return e.cmp(t)>0?e:t},o.min=function(e,t){return e.cmp(t)<0?e:t},o.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o<e.length&&(16===t?this._parseHex(e,o,n):(this._parseBase(e,t,o),"le"===n&&this._initArray(this.toArray(),t,n)))},o.prototype._initNumber=function(e,t,n){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(r(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===n&&this._initArray(this.toArray(),t,n)},o.prototype._initArray=function(e,t,n){if(r("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var o=0;o<this.length;o++)this.words[o]=0;var s,i,a=0;if("be"===n)for(o=e.length-1,s=0;o>=0;o-=3)i=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[s]|=i<<a&67108863,this.words[s+1]=i>>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);else if("le"===n)for(o=0,s=0;o<e.length;o+=3)i=e[o]|e[o+1]<<8|e[o+2]<<16,this.words[s]|=i<<a&67108863,this.words[s+1]=i>>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);return this._strip()},o.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var o,s=0,i=0;if("be"===r)for(n=e.length-1;n>=t;n-=2)o=a(e,t,n)<<s,this.words[i]|=67108863&o,s>=18?(s-=18,i+=1,this.words[i]|=o>>>26):s+=8;else for(n=(e.length-t)%2==0?t+1:t;n<e.length;n+=2)o=a(e,t,n)<<s,this.words[i]|=67108863&o,s>=18?(s-=18,i+=1,this.words[i]|=o>>>26):s+=8;this._strip()},o.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,o=1;o<=67108863;o*=t)n++;n--,o=o/t|0;for(var s=e.length-r,i=s%n,a=Math.min(s,s-i)+r,l=0,c=r;c<a;c+=n)l=u(e,c,c+n,t),this.imuln(o),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l);if(0!==i){var h=1;for(l=u(e,c,e.length,t),c=0;c<i;c++)h*=t;this.imuln(h),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l)}this._strip()},o.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},o.prototype._move=function(e){l(e,this)},o.prototype.clone=function(){var e=new o(null);return this.copy(e),e},o.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},o.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{o.prototype[Symbol.for("nodejs.util.inspect.custom")]=c}catch(e){o.prototype.inspect=c}else o.prototype.inspect=c;function c(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],d=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],p=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function f(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var o=0|e.words[0],s=0|t.words[0],i=o*s,a=67108863&i,u=i/67108864|0;r.words[0]=a;for(var l=1;l<n;l++){for(var c=u>>>26,h=67108863&u,d=Math.min(l,t.length-1),p=Math.max(0,l-e.length+1);p<=d;p++){var f=l-p|0;c+=(i=(o=0|e.words[f])*(s=0|t.words[p])+h)/67108864|0,h=67108863&i}r.words[l]=0|h,u=0|c}return 0!==u?r.words[l]=0|u:r.length--,r._strip()}o.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var o=0,s=0,i=0;i<this.length;i++){var a=this.words[i],u=(16777215&(a<<o|s)).toString(16);s=a>>>24-o&16777215,(o+=2)>=26&&(o-=26,i--),n=0!==s||i!==this.length-1?h[6-u.length]+u+n:u+n}for(0!==s&&(n=s.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var l=d[e],c=p[e];n="";var f=this.clone();for(f.negative=0;!f.isZero();){var m=f.modrn(c).toString(e);n=(f=f.idivn(c)).isZero()?m+n:h[l-m.length]+m+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(0,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(0,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},o.prototype.toJSON=function(){return this.toString(16,2)},s&&(o.prototype.toBuffer=function(e,t){return this.toArrayLike(s,e,t)}),o.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},o.prototype.toArrayLike=function(e,t,n){this._strip();var o=this.byteLength(),s=n||Math.max(1,o);r(o<=s,"byte array longer than desired length"),r(s>0,"Requested array length <= 0");var i=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,s);return this["_toArrayLike"+("le"===t?"LE":"BE")](i,o),i},o.prototype._toArrayLikeLE=function(e){for(var t=0,r=0,n=0,o=0;n<this.length;n++){var s=this.words[n]<<o|r;e[t++]=255&s,t<e.length&&(e[t++]=s>>8&255),t<e.length&&(e[t++]=s>>16&255),6===o?(t<e.length&&(e[t++]=s>>24&255),r=0,o=0):(r=s>>>24,o+=2)}if(t<e.length)for(e[t++]=r;t<e.length;)e[t++]=0},o.prototype._toArrayLikeBE=function(e){for(var t=e.length-1,r=0,n=0,o=0;n<this.length;n++){var s=this.words[n]<<o|r;e[t--]=255&s,t>=0&&(e[t--]=s>>8&255),t>=0&&(e[t--]=s>>16&255),6===o?(t>=0&&(e[t--]=s>>24&255),r=0,o=0):(r=s>>>24,o+=2)}if(t>=0)for(e[t--]=r;t>=0;)e[t--]=0},Math.clz32?o.prototype._countBits=function(e){return 32-Math.clz32(e)}:o.prototype._countBits=function(e){var t=e,r=0;return t>=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},o.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},o.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var r=this._zeroBits(this.words[t]);if(e+=r,26!==r)break}return e},o.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},o.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},o.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},o.prototype.isNeg=function(){return 0!==this.negative},o.prototype.neg=function(){return this.clone().ineg()},o.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},o.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this._strip()},o.prototype.ior=function(e){return r(0==(this.negative|e.negative)),this.iuor(e)},o.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},o.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},o.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;r<t.length;r++)this.words[r]=this.words[r]&e.words[r];return this.length=t.length,this._strip()},o.prototype.iand=function(e){return r(0==(this.negative|e.negative)),this.iuand(e)},o.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},o.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},o.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;n<r.length;n++)this.words[n]=t.words[n]^r.words[n];if(this!==t)for(;n<t.length;n++)this.words[n]=t.words[n];return this.length=t.length,this._strip()},o.prototype.ixor=function(e){return r(0==(this.negative|e.negative)),this.iuxor(e)},o.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},o.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},o.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var o=0;o<t;o++)this.words[o]=67108863&~this.words[o];return n>0&&(this.words[o]=~this.words[o]&67108863>>26-n),this._strip()},o.prototype.notn=function(e){return this.clone().inotn(e)},o.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,o=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<<o:this.words[n]&~(1<<o),this._strip()},o.prototype.iadd=function(e){var t,r,n;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(r=this,n=e):(r=e,n=this);for(var o=0,s=0;s<n.length;s++)t=(0|r.words[s])+(0|n.words[s])+o,this.words[s]=67108863&t,o=t>>>26;for(;0!==o&&s<r.length;s++)t=(0|r.words[s])+o,this.words[s]=67108863&t,o=t>>>26;if(this.length=r.length,0!==o)this.words[this.length]=o,this.length++;else if(r!==this)for(;s<r.length;s++)this.words[s]=r.words[s];return this},o.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},o.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(r=this,n=e):(r=e,n=this);for(var s=0,i=0;i<n.length;i++)s=(t=(0|r.words[i])-(0|n.words[i])+s)>>26,this.words[i]=67108863&t;for(;0!==s&&i<r.length;i++)s=(t=(0|r.words[i])+s)>>26,this.words[i]=67108863&t;if(0===s&&i<r.length&&r!==this)for(;i<r.length;i++)this.words[i]=r.words[i];return this.length=Math.max(this.length,i),r!==this&&(this.negative=1),this._strip()},o.prototype.sub=function(e){return this.clone().isub(e)};var m=function(e,t,r){var n,o,s,i=e.words,a=t.words,u=r.words,l=0,c=0|i[0],h=8191&c,d=c>>>13,p=0|i[1],f=8191&p,m=p>>>13,g=0|i[2],y=8191&g,w=g>>>13,v=0|i[3],E=8191&v,b=v>>>13,M=0|i[4],x=8191&M,A=M>>>13,I=0|i[5],S=8191&I,T=I>>>13,P=0|i[6],_=8191&P,k=P>>>13,C=0|i[7],O=8191&C,R=C>>>13,N=0|i[8],L=8191&N,B=N>>>13,U=0|i[9],D=8191&U,F=U>>>13,V=0|a[0],q=8191&V,H=V>>>13,K=0|a[1],j=8191&K,W=K>>>13,Q=0|a[2],$=8191&Q,z=Q>>>13,Y=0|a[3],Z=8191&Y,J=Y>>>13,X=0|a[4],G=8191&X,ee=X>>>13,te=0|a[5],re=8191&te,ne=te>>>13,oe=0|a[6],se=8191&oe,ie=oe>>>13,ae=0|a[7],ue=8191&ae,le=ae>>>13,ce=0|a[8],he=8191&ce,de=ce>>>13,pe=0|a[9],fe=8191&pe,me=pe>>>13;r.negative=e.negative^t.negative,r.length=19;var ge=(l+(n=Math.imul(h,q))|0)+((8191&(o=(o=Math.imul(h,H))+Math.imul(d,q)|0))<<13)|0;l=((s=Math.imul(d,H))+(o>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(f,q),o=(o=Math.imul(f,H))+Math.imul(m,q)|0,s=Math.imul(m,H);var ye=(l+(n=n+Math.imul(h,j)|0)|0)+((8191&(o=(o=o+Math.imul(h,W)|0)+Math.imul(d,j)|0))<<13)|0;l=((s=s+Math.imul(d,W)|0)+(o>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(y,q),o=(o=Math.imul(y,H))+Math.imul(w,q)|0,s=Math.imul(w,H),n=n+Math.imul(f,j)|0,o=(o=o+Math.imul(f,W)|0)+Math.imul(m,j)|0,s=s+Math.imul(m,W)|0;var we=(l+(n=n+Math.imul(h,$)|0)|0)+((8191&(o=(o=o+Math.imul(h,z)|0)+Math.imul(d,$)|0))<<13)|0;l=((s=s+Math.imul(d,z)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(E,q),o=(o=Math.imul(E,H))+Math.imul(b,q)|0,s=Math.imul(b,H),n=n+Math.imul(y,j)|0,o=(o=o+Math.imul(y,W)|0)+Math.imul(w,j)|0,s=s+Math.imul(w,W)|0,n=n+Math.imul(f,$)|0,o=(o=o+Math.imul(f,z)|0)+Math.imul(m,$)|0,s=s+Math.imul(m,z)|0;var ve=(l+(n=n+Math.imul(h,Z)|0)|0)+((8191&(o=(o=o+Math.imul(h,J)|0)+Math.imul(d,Z)|0))<<13)|0;l=((s=s+Math.imul(d,J)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(x,q),o=(o=Math.imul(x,H))+Math.imul(A,q)|0,s=Math.imul(A,H),n=n+Math.imul(E,j)|0,o=(o=o+Math.imul(E,W)|0)+Math.imul(b,j)|0,s=s+Math.imul(b,W)|0,n=n+Math.imul(y,$)|0,o=(o=o+Math.imul(y,z)|0)+Math.imul(w,$)|0,s=s+Math.imul(w,z)|0,n=n+Math.imul(f,Z)|0,o=(o=o+Math.imul(f,J)|0)+Math.imul(m,Z)|0,s=s+Math.imul(m,J)|0;var Ee=(l+(n=n+Math.imul(h,G)|0)|0)+((8191&(o=(o=o+Math.imul(h,ee)|0)+Math.imul(d,G)|0))<<13)|0;l=((s=s+Math.imul(d,ee)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(S,q),o=(o=Math.imul(S,H))+Math.imul(T,q)|0,s=Math.imul(T,H),n=n+Math.imul(x,j)|0,o=(o=o+Math.imul(x,W)|0)+Math.imul(A,j)|0,s=s+Math.imul(A,W)|0,n=n+Math.imul(E,$)|0,o=(o=o+Math.imul(E,z)|0)+Math.imul(b,$)|0,s=s+Math.imul(b,z)|0,n=n+Math.imul(y,Z)|0,o=(o=o+Math.imul(y,J)|0)+Math.imul(w,Z)|0,s=s+Math.imul(w,J)|0,n=n+Math.imul(f,G)|0,o=(o=o+Math.imul(f,ee)|0)+Math.imul(m,G)|0,s=s+Math.imul(m,ee)|0;var be=(l+(n=n+Math.imul(h,re)|0)|0)+((8191&(o=(o=o+Math.imul(h,ne)|0)+Math.imul(d,re)|0))<<13)|0;l=((s=s+Math.imul(d,ne)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(_,q),o=(o=Math.imul(_,H))+Math.imul(k,q)|0,s=Math.imul(k,H),n=n+Math.imul(S,j)|0,o=(o=o+Math.imul(S,W)|0)+Math.imul(T,j)|0,s=s+Math.imul(T,W)|0,n=n+Math.imul(x,$)|0,o=(o=o+Math.imul(x,z)|0)+Math.imul(A,$)|0,s=s+Math.imul(A,z)|0,n=n+Math.imul(E,Z)|0,o=(o=o+Math.imul(E,J)|0)+Math.imul(b,Z)|0,s=s+Math.imul(b,J)|0,n=n+Math.imul(y,G)|0,o=(o=o+Math.imul(y,ee)|0)+Math.imul(w,G)|0,s=s+Math.imul(w,ee)|0,n=n+Math.imul(f,re)|0,o=(o=o+Math.imul(f,ne)|0)+Math.imul(m,re)|0,s=s+Math.imul(m,ne)|0;var Me=(l+(n=n+Math.imul(h,se)|0)|0)+((8191&(o=(o=o+Math.imul(h,ie)|0)+Math.imul(d,se)|0))<<13)|0;l=((s=s+Math.imul(d,ie)|0)+(o>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(O,q),o=(o=Math.imul(O,H))+Math.imul(R,q)|0,s=Math.imul(R,H),n=n+Math.imul(_,j)|0,o=(o=o+Math.imul(_,W)|0)+Math.imul(k,j)|0,s=s+Math.imul(k,W)|0,n=n+Math.imul(S,$)|0,o=(o=o+Math.imul(S,z)|0)+Math.imul(T,$)|0,s=s+Math.imul(T,z)|0,n=n+Math.imul(x,Z)|0,o=(o=o+Math.imul(x,J)|0)+Math.imul(A,Z)|0,s=s+Math.imul(A,J)|0,n=n+Math.imul(E,G)|0,o=(o=o+Math.imul(E,ee)|0)+Math.imul(b,G)|0,s=s+Math.imul(b,ee)|0,n=n+Math.imul(y,re)|0,o=(o=o+Math.imul(y,ne)|0)+Math.imul(w,re)|0,s=s+Math.imul(w,ne)|0,n=n+Math.imul(f,se)|0,o=(o=o+Math.imul(f,ie)|0)+Math.imul(m,se)|0,s=s+Math.imul(m,ie)|0;var xe=(l+(n=n+Math.imul(h,ue)|0)|0)+((8191&(o=(o=o+Math.imul(h,le)|0)+Math.imul(d,ue)|0))<<13)|0;l=((s=s+Math.imul(d,le)|0)+(o>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(L,q),o=(o=Math.imul(L,H))+Math.imul(B,q)|0,s=Math.imul(B,H),n=n+Math.imul(O,j)|0,o=(o=o+Math.imul(O,W)|0)+Math.imul(R,j)|0,s=s+Math.imul(R,W)|0,n=n+Math.imul(_,$)|0,o=(o=o+Math.imul(_,z)|0)+Math.imul(k,$)|0,s=s+Math.imul(k,z)|0,n=n+Math.imul(S,Z)|0,o=(o=o+Math.imul(S,J)|0)+Math.imul(T,Z)|0,s=s+Math.imul(T,J)|0,n=n+Math.imul(x,G)|0,o=(o=o+Math.imul(x,ee)|0)+Math.imul(A,G)|0,s=s+Math.imul(A,ee)|0,n=n+Math.imul(E,re)|0,o=(o=o+Math.imul(E,ne)|0)+Math.imul(b,re)|0,s=s+Math.imul(b,ne)|0,n=n+Math.imul(y,se)|0,o=(o=o+Math.imul(y,ie)|0)+Math.imul(w,se)|0,s=s+Math.imul(w,ie)|0,n=n+Math.imul(f,ue)|0,o=(o=o+Math.imul(f,le)|0)+Math.imul(m,ue)|0,s=s+Math.imul(m,le)|0;var Ae=(l+(n=n+Math.imul(h,he)|0)|0)+((8191&(o=(o=o+Math.imul(h,de)|0)+Math.imul(d,he)|0))<<13)|0;l=((s=s+Math.imul(d,de)|0)+(o>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(D,q),o=(o=Math.imul(D,H))+Math.imul(F,q)|0,s=Math.imul(F,H),n=n+Math.imul(L,j)|0,o=(o=o+Math.imul(L,W)|0)+Math.imul(B,j)|0,s=s+Math.imul(B,W)|0,n=n+Math.imul(O,$)|0,o=(o=o+Math.imul(O,z)|0)+Math.imul(R,$)|0,s=s+Math.imul(R,z)|0,n=n+Math.imul(_,Z)|0,o=(o=o+Math.imul(_,J)|0)+Math.imul(k,Z)|0,s=s+Math.imul(k,J)|0,n=n+Math.imul(S,G)|0,o=(o=o+Math.imul(S,ee)|0)+Math.imul(T,G)|0,s=s+Math.imul(T,ee)|0,n=n+Math.imul(x,re)|0,o=(o=o+Math.imul(x,ne)|0)+Math.imul(A,re)|0,s=s+Math.imul(A,ne)|0,n=n+Math.imul(E,se)|0,o=(o=o+Math.imul(E,ie)|0)+Math.imul(b,se)|0,s=s+Math.imul(b,ie)|0,n=n+Math.imul(y,ue)|0,o=(o=o+Math.imul(y,le)|0)+Math.imul(w,ue)|0,s=s+Math.imul(w,le)|0,n=n+Math.imul(f,he)|0,o=(o=o+Math.imul(f,de)|0)+Math.imul(m,he)|0,s=s+Math.imul(m,de)|0;var Ie=(l+(n=n+Math.imul(h,fe)|0)|0)+((8191&(o=(o=o+Math.imul(h,me)|0)+Math.imul(d,fe)|0))<<13)|0;l=((s=s+Math.imul(d,me)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(D,j),o=(o=Math.imul(D,W))+Math.imul(F,j)|0,s=Math.imul(F,W),n=n+Math.imul(L,$)|0,o=(o=o+Math.imul(L,z)|0)+Math.imul(B,$)|0,s=s+Math.imul(B,z)|0,n=n+Math.imul(O,Z)|0,o=(o=o+Math.imul(O,J)|0)+Math.imul(R,Z)|0,s=s+Math.imul(R,J)|0,n=n+Math.imul(_,G)|0,o=(o=o+Math.imul(_,ee)|0)+Math.imul(k,G)|0,s=s+Math.imul(k,ee)|0,n=n+Math.imul(S,re)|0,o=(o=o+Math.imul(S,ne)|0)+Math.imul(T,re)|0,s=s+Math.imul(T,ne)|0,n=n+Math.imul(x,se)|0,o=(o=o+Math.imul(x,ie)|0)+Math.imul(A,se)|0,s=s+Math.imul(A,ie)|0,n=n+Math.imul(E,ue)|0,o=(o=o+Math.imul(E,le)|0)+Math.imul(b,ue)|0,s=s+Math.imul(b,le)|0,n=n+Math.imul(y,he)|0,o=(o=o+Math.imul(y,de)|0)+Math.imul(w,he)|0,s=s+Math.imul(w,de)|0;var Se=(l+(n=n+Math.imul(f,fe)|0)|0)+((8191&(o=(o=o+Math.imul(f,me)|0)+Math.imul(m,fe)|0))<<13)|0;l=((s=s+Math.imul(m,me)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(D,$),o=(o=Math.imul(D,z))+Math.imul(F,$)|0,s=Math.imul(F,z),n=n+Math.imul(L,Z)|0,o=(o=o+Math.imul(L,J)|0)+Math.imul(B,Z)|0,s=s+Math.imul(B,J)|0,n=n+Math.imul(O,G)|0,o=(o=o+Math.imul(O,ee)|0)+Math.imul(R,G)|0,s=s+Math.imul(R,ee)|0,n=n+Math.imul(_,re)|0,o=(o=o+Math.imul(_,ne)|0)+Math.imul(k,re)|0,s=s+Math.imul(k,ne)|0,n=n+Math.imul(S,se)|0,o=(o=o+Math.imul(S,ie)|0)+Math.imul(T,se)|0,s=s+Math.imul(T,ie)|0,n=n+Math.imul(x,ue)|0,o=(o=o+Math.imul(x,le)|0)+Math.imul(A,ue)|0,s=s+Math.imul(A,le)|0,n=n+Math.imul(E,he)|0,o=(o=o+Math.imul(E,de)|0)+Math.imul(b,he)|0,s=s+Math.imul(b,de)|0;var Te=(l+(n=n+Math.imul(y,fe)|0)|0)+((8191&(o=(o=o+Math.imul(y,me)|0)+Math.imul(w,fe)|0))<<13)|0;l=((s=s+Math.imul(w,me)|0)+(o>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(D,Z),o=(o=Math.imul(D,J))+Math.imul(F,Z)|0,s=Math.imul(F,J),n=n+Math.imul(L,G)|0,o=(o=o+Math.imul(L,ee)|0)+Math.imul(B,G)|0,s=s+Math.imul(B,ee)|0,n=n+Math.imul(O,re)|0,o=(o=o+Math.imul(O,ne)|0)+Math.imul(R,re)|0,s=s+Math.imul(R,ne)|0,n=n+Math.imul(_,se)|0,o=(o=o+Math.imul(_,ie)|0)+Math.imul(k,se)|0,s=s+Math.imul(k,ie)|0,n=n+Math.imul(S,ue)|0,o=(o=o+Math.imul(S,le)|0)+Math.imul(T,ue)|0,s=s+Math.imul(T,le)|0,n=n+Math.imul(x,he)|0,o=(o=o+Math.imul(x,de)|0)+Math.imul(A,he)|0,s=s+Math.imul(A,de)|0;var Pe=(l+(n=n+Math.imul(E,fe)|0)|0)+((8191&(o=(o=o+Math.imul(E,me)|0)+Math.imul(b,fe)|0))<<13)|0;l=((s=s+Math.imul(b,me)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(D,G),o=(o=Math.imul(D,ee))+Math.imul(F,G)|0,s=Math.imul(F,ee),n=n+Math.imul(L,re)|0,o=(o=o+Math.imul(L,ne)|0)+Math.imul(B,re)|0,s=s+Math.imul(B,ne)|0,n=n+Math.imul(O,se)|0,o=(o=o+Math.imul(O,ie)|0)+Math.imul(R,se)|0,s=s+Math.imul(R,ie)|0,n=n+Math.imul(_,ue)|0,o=(o=o+Math.imul(_,le)|0)+Math.imul(k,ue)|0,s=s+Math.imul(k,le)|0,n=n+Math.imul(S,he)|0,o=(o=o+Math.imul(S,de)|0)+Math.imul(T,he)|0,s=s+Math.imul(T,de)|0;var _e=(l+(n=n+Math.imul(x,fe)|0)|0)+((8191&(o=(o=o+Math.imul(x,me)|0)+Math.imul(A,fe)|0))<<13)|0;l=((s=s+Math.imul(A,me)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(D,re),o=(o=Math.imul(D,ne))+Math.imul(F,re)|0,s=Math.imul(F,ne),n=n+Math.imul(L,se)|0,o=(o=o+Math.imul(L,ie)|0)+Math.imul(B,se)|0,s=s+Math.imul(B,ie)|0,n=n+Math.imul(O,ue)|0,o=(o=o+Math.imul(O,le)|0)+Math.imul(R,ue)|0,s=s+Math.imul(R,le)|0,n=n+Math.imul(_,he)|0,o=(o=o+Math.imul(_,de)|0)+Math.imul(k,he)|0,s=s+Math.imul(k,de)|0;var ke=(l+(n=n+Math.imul(S,fe)|0)|0)+((8191&(o=(o=o+Math.imul(S,me)|0)+Math.imul(T,fe)|0))<<13)|0;l=((s=s+Math.imul(T,me)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(D,se),o=(o=Math.imul(D,ie))+Math.imul(F,se)|0,s=Math.imul(F,ie),n=n+Math.imul(L,ue)|0,o=(o=o+Math.imul(L,le)|0)+Math.imul(B,ue)|0,s=s+Math.imul(B,le)|0,n=n+Math.imul(O,he)|0,o=(o=o+Math.imul(O,de)|0)+Math.imul(R,he)|0,s=s+Math.imul(R,de)|0;var Ce=(l+(n=n+Math.imul(_,fe)|0)|0)+((8191&(o=(o=o+Math.imul(_,me)|0)+Math.imul(k,fe)|0))<<13)|0;l=((s=s+Math.imul(k,me)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(D,ue),o=(o=Math.imul(D,le))+Math.imul(F,ue)|0,s=Math.imul(F,le),n=n+Math.imul(L,he)|0,o=(o=o+Math.imul(L,de)|0)+Math.imul(B,he)|0,s=s+Math.imul(B,de)|0;var Oe=(l+(n=n+Math.imul(O,fe)|0)|0)+((8191&(o=(o=o+Math.imul(O,me)|0)+Math.imul(R,fe)|0))<<13)|0;l=((s=s+Math.imul(R,me)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(D,he),o=(o=Math.imul(D,de))+Math.imul(F,he)|0,s=Math.imul(F,de);var Re=(l+(n=n+Math.imul(L,fe)|0)|0)+((8191&(o=(o=o+Math.imul(L,me)|0)+Math.imul(B,fe)|0))<<13)|0;l=((s=s+Math.imul(B,me)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863;var Ne=(l+(n=Math.imul(D,fe))|0)+((8191&(o=(o=Math.imul(D,me))+Math.imul(F,fe)|0))<<13)|0;return l=((s=Math.imul(F,me))+(o>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,u[0]=ge,u[1]=ye,u[2]=we,u[3]=ve,u[4]=Ee,u[5]=be,u[6]=Me,u[7]=xe,u[8]=Ae,u[9]=Ie,u[10]=Se,u[11]=Te,u[12]=Pe,u[13]=_e,u[14]=ke,u[15]=Ce,u[16]=Oe,u[17]=Re,u[18]=Ne,0!==l&&(u[19]=l,r.length++),r};function g(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,o=0,s=0;s<r.length-1;s++){var i=o;o=0;for(var a=67108863&n,u=Math.min(s,t.length-1),l=Math.max(0,s-e.length+1);l<=u;l++){var c=s-l,h=(0|e.words[c])*(0|t.words[l]),d=67108863&h;a=67108863&(d=d+a|0),o+=(i=(i=i+(h/67108864|0)|0)+(d>>>26)|0)>>>26,i&=67108863}r.words[s]=a,n=i,i=o}return 0!==n?r.words[s]=n:r.length--,r._strip()}function y(e,t,r){return g(e,t,r)}Math.imul||(m=f),o.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?m(this,e,t):r<63?f(this,e,t):r<1024?g(this,e,t):y(this,e,t)},o.prototype.mul=function(e){var t=new o(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},o.prototype.mulf=function(e){var t=new o(null);return t.words=new Array(this.length+e.length),y(this,e,t)},o.prototype.imul=function(e){return this.clone().mulTo(e,this)},o.prototype.imuln=function(e){var t=e<0;t&&(e=-e),r("number"==typeof e),r(e<67108864);for(var n=0,o=0;o<this.length;o++){var s=(0|this.words[o])*e,i=(67108863&s)+(67108863&n);n>>=26,n+=s/67108864|0,n+=i>>>26,this.words[o]=67108863&i}return 0!==n&&(this.words[o]=n,this.length++),t?this.ineg():this},o.prototype.muln=function(e){return this.clone().imuln(e)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r<t.length;r++){var n=r/26|0,o=r%26;t[r]=e.words[n]>>>o&1}return t}(e);if(0===t.length)return new o(1);for(var r=this,n=0;n<t.length&&0===t[n];n++,r=r.sqr());if(++n<t.length)for(var s=r.sqr();n<t.length;n++,s=s.sqr())0!==t[n]&&(r=r.mul(s));return r},o.prototype.iushln=function(e){r("number"==typeof e&&e>=0);var t,n=e%26,o=(e-n)/26,s=67108863>>>26-n<<26-n;if(0!==n){var i=0;for(t=0;t<this.length;t++){var a=this.words[t]&s,u=(0|this.words[t])-a<<n;this.words[t]=u|i,i=a>>>26-n}i&&(this.words[t]=i,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t<o;t++)this.words[t]=0;this.length+=o}return this._strip()},o.prototype.ishln=function(e){return r(0===this.negative),this.iushln(e)},o.prototype.iushrn=function(e,t,n){var o;r("number"==typeof e&&e>=0),o=t?(t-t%26)/26:0;var s=e%26,i=Math.min((e-s)/26,this.length),a=67108863^67108863>>>s<<s,u=n;if(o-=i,o=Math.max(0,o),u){for(var l=0;l<i;l++)u.words[l]=this.words[l];u.length=i}if(0===i);else if(this.length>i)for(this.length-=i,l=0;l<this.length;l++)this.words[l]=this.words[l+i];else this.words[0]=0,this.length=1;var c=0;for(l=this.length-1;l>=0&&(0!==c||l>=o);l--){var h=0|this.words[l];this.words[l]=c<<26-s|h>>>s,c=h&a}return u&&0!==c&&(u.words[u.length++]=c),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},o.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},o.prototype.shln=function(e){return this.clone().ishln(e)},o.prototype.ushln=function(e){return this.clone().iushln(e)},o.prototype.shrn=function(e){return this.clone().ishrn(e)},o.prototype.ushrn=function(e){return this.clone().iushrn(e)},o.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,o=1<<t;return this.length<=n?0:!!(this.words[n]&o)},o.prototype.imaskn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var o=67108863^67108863>>>t<<t;this.words[this.length-1]&=o}return this._strip()},o.prototype.maskn=function(e){return this.clone().imaskn(e)},o.prototype.iaddn=function(e){return r("number"==typeof e),r(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<=e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},o.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},o.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this._strip()},o.prototype.addn=function(e){return this.clone().iaddn(e)},o.prototype.subn=function(e){return this.clone().isubn(e)},o.prototype.iabs=function(){return this.negative=0,this},o.prototype.abs=function(){return this.clone().iabs()},o.prototype._ishlnsubmul=function(e,t,n){var o,s,i=e.length+n;this._expand(i);var a=0;for(o=0;o<e.length;o++){s=(0|this.words[o+n])+a;var u=(0|e.words[o])*t;a=((s-=67108863&u)>>26)-(u/67108864|0),this.words[o+n]=67108863&s}for(;o<this.length-n;o++)a=(s=(0|this.words[o+n])+a)>>26,this.words[o+n]=67108863&s;if(0===a)return this._strip();for(r(-1===a),a=0,o=0;o<this.length;o++)a=(s=-(0|this.words[o])+a)>>26,this.words[o]=67108863&s;return this.negative=1,this._strip()},o.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),s=e,i=0|s.words[s.length-1];0!=(r=26-this._countBits(i))&&(s=s.ushln(r),n.iushln(r),i=0|s.words[s.length-1]);var a,u=n.length-s.length;if("mod"!==t){(a=new o(null)).length=u+1,a.words=new Array(a.length);for(var l=0;l<a.length;l++)a.words[l]=0}var c=n.clone()._ishlnsubmul(s,1,u);0===c.negative&&(n=c,a&&(a.words[u]=1));for(var h=u-1;h>=0;h--){var d=67108864*(0|n.words[s.length+h])+(0|n.words[s.length+h-1]);for(d=Math.min(d/i|0,67108863),n._ishlnsubmul(s,d,h);0!==n.negative;)d--,n.negative=0,n._ishlnsubmul(s,1,h),n.isZero()||(n.negative^=1);a&&(a.words[h]=d)}return a&&a._strip(),n._strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},o.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(s=a.div.neg()),"div"!==t&&(i=a.mod.neg(),n&&0!==i.negative&&i.iadd(e)),{div:s,mod:i}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(s=a.div.neg()),{div:s,mod:a.mod}):0!=(this.negative&e.negative)?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(i=a.mod.neg(),n&&0!==i.negative&&i.isub(e)),{div:a.div,mod:i}):e.length>this.length||this.cmp(e)<0?{div:new o(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new o(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new o(this.modrn(e.words[0]))}:this._wordDiv(e,t);var s,i,a},o.prototype.div=function(e){return this.divmod(e,"div",0).div},o.prototype.mod=function(e){return this.divmod(e,"mod",0).mod},o.prototype.umod=function(e){return this.divmod(e,"mod",1).mod},o.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),o=e.andln(1),s=r.cmp(n);return s<0||1===o&&0===s?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},o.prototype.modrn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=(1<<26)%e,o=0,s=this.length-1;s>=0;s--)o=(n*o+(0|this.words[s]))%e;return t?-o:o},o.prototype.modn=function(e){return this.modrn(e)},o.prototype.idivn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=0,o=this.length-1;o>=0;o--){var s=(0|this.words[o])+67108864*n;this.words[o]=s/e|0,n=s%e}return this._strip(),t?this.ineg():this},o.prototype.divn=function(e){return this.clone().idivn(e)},o.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var s=new o(1),i=new o(0),a=new o(0),u=new o(1),l=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++l;for(var c=n.clone(),h=t.clone();!t.isZero();){for(var d=0,p=1;0==(t.words[0]&p)&&d<26;++d,p<<=1);if(d>0)for(t.iushrn(d);d-- >0;)(s.isOdd()||i.isOdd())&&(s.iadd(c),i.isub(h)),s.iushrn(1),i.iushrn(1);for(var f=0,m=1;0==(n.words[0]&m)&&f<26;++f,m<<=1);if(f>0)for(n.iushrn(f);f-- >0;)(a.isOdd()||u.isOdd())&&(a.iadd(c),u.isub(h)),a.iushrn(1),u.iushrn(1);t.cmp(n)>=0?(t.isub(n),s.isub(a),i.isub(u)):(n.isub(t),a.isub(s),u.isub(i))}return{a:a,b:u,gcd:n.iushln(l)}},o.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var s,i=new o(1),a=new o(0),u=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var l=0,c=1;0==(t.words[0]&c)&&l<26;++l,c<<=1);if(l>0)for(t.iushrn(l);l-- >0;)i.isOdd()&&i.iadd(u),i.iushrn(1);for(var h=0,d=1;0==(n.words[0]&d)&&h<26;++h,d<<=1);if(h>0)for(n.iushrn(h);h-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(a)):(n.isub(t),a.isub(i))}return(s=0===t.cmpn(1)?i:a).cmpn(0)<0&&s.iadd(e),s},o.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var o=t.cmp(r);if(o<0){var s=t;t=r,r=s}else if(0===o||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},o.prototype.invm=function(e){return this.egcd(e).a.umod(e)},o.prototype.isEven=function(){return 0==(1&this.words[0])},o.prototype.isOdd=function(){return 1==(1&this.words[0])},o.prototype.andln=function(e){return this.words[0]&e},o.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,o=1<<t;if(this.length<=n)return this._expand(n+1),this.words[n]|=o,this;for(var s=o,i=n;0!==s&&i<this.length;i++){var a=0|this.words[i];s=(a+=s)>>>26,a&=67108863,this.words[i]=a}return 0!==s&&(this.words[i]=s,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this._strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:o<e?-1:1}return 0!==this.negative?0|-t:t},o.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},o.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,r=this.length-1;r>=0;r--){var n=0|this.words[r],o=0|e.words[r];if(n!==o){n<o?t=-1:n>o&&(t=1);break}}return t},o.prototype.gtn=function(e){return 1===this.cmpn(e)},o.prototype.gt=function(e){return 1===this.cmp(e)},o.prototype.gten=function(e){return this.cmpn(e)>=0},o.prototype.gte=function(e){return this.cmp(e)>=0},o.prototype.ltn=function(e){return-1===this.cmpn(e)},o.prototype.lt=function(e){return-1===this.cmp(e)},o.prototype.lten=function(e){return this.cmpn(e)<=0},o.prototype.lte=function(e){return this.cmp(e)<=0},o.prototype.eqn=function(e){return 0===this.cmpn(e)},o.prototype.eq=function(e){return 0===this.cmp(e)},o.red=function(e){return new A(e)},o.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(e){return this.red=e,this},o.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},o.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},o.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},o.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},o.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},o.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},o.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},o.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var w={k256:null,p224:null,p192:null,p25519:null};function v(e,t){this.name=e,this.p=new o(t,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function E(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function b(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function M(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function x(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function A(e){if("string"==typeof e){var t=o._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function I(e){A.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var e=new o(null);return e.words=new Array(Math.ceil(this.n/13)),e},v.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t<this.n?-1:r.ucmp(this.p);return 0===n?(r.words[0]=0,r.length=1):n>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},v.prototype.split=function(e,t){e.iushrn(this.n,0,t)},v.prototype.imulK=function(e){return e.imul(this.k)},n(E,v),E.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),o=0;o<n;o++)t.words[o]=e.words[o];if(t.length=n,e.length<=9)return e.words[0]=0,void(e.length=1);var s=e.words[9];for(t.words[t.length++]=s&r,o=10;o<e.length;o++){var i=0|e.words[o];e.words[o-10]=(i&r)<<4|s>>>22,s=i}s>>>=22,e.words[o-10]=s,0===s&&e.length>10?e.length-=10:e.length-=9},E.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r<e.length;r++){var n=0|e.words[r];t+=977*n,e.words[r]=67108863&t,t=64*n+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},n(b,v),n(M,v),n(x,v),x.prototype.imulK=function(e){for(var t=0,r=0;r<e.length;r++){var n=19*(0|e.words[r])+t,o=67108863&n;n>>>=26,e.words[r]=o,t=n}return 0!==t&&(e.words[e.length++]=t),e},o._prime=function(e){if(w[e])return w[e];var t;if("k256"===e)t=new E;else if("p224"===e)t=new b;else if("p192"===e)t=new M;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new x}return w[e]=t,t},A.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},A.prototype._verify2=function(e,t){r(0==(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},A.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(l(e,e.umod(this.m)._forceRed(this)),e)},A.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},A.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},A.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},A.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},A.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},A.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},A.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},A.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},A.prototype.isqr=function(e){return this.imul(e,e.clone())},A.prototype.sqr=function(e){return this.mul(e,e)},A.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new o(1)).iushrn(2);return this.pow(e,n)}for(var s=this.m.subn(1),i=0;!s.isZero()&&0===s.andln(1);)i++,s.iushrn(1);r(!s.isZero());var a=new o(1).toRed(this),u=a.redNeg(),l=this.m.subn(1).iushrn(1),c=this.m.bitLength();for(c=new o(2*c*c).toRed(this);0!==this.pow(c,l).cmp(u);)c.redIAdd(u);for(var h=this.pow(c,s),d=this.pow(e,s.addn(1).iushrn(1)),p=this.pow(e,s),f=i;0!==p.cmp(a);){for(var m=p,g=0;0!==m.cmp(a);g++)m=m.redSqr();r(g<f);var y=this.pow(h,new o(1).iushln(f-g-1));d=d.redMul(y),h=y.redSqr(),p=p.redMul(h),f=g}return d},A.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},A.prototype.pow=function(e,t){if(t.isZero())return new o(1).toRed(this);if(0===t.cmpn(1))return e.clone();var r=new Array(16);r[0]=new o(1).toRed(this),r[1]=e;for(var n=2;n<r.length;n++)r[n]=this.mul(r[n-1],e);var s=r[0],i=0,a=0,u=t.bitLength()%26;for(0===u&&(u=26),n=t.length-1;n>=0;n--){for(var l=t.words[n],c=u-1;c>=0;c--){var h=l>>c&1;s!==r[0]&&(s=this.sqr(s)),0!==h||0!==i?(i<<=1,i|=h,(4==++a||0===n&&0===c)&&(s=this.mul(s,r[i]),a=0,i=0)):a=0}u=26}return s},A.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},A.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},o.mont=function(e){return new I(e)},n(I,A),I.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},I.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},I.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),s=o;return o.cmp(this.m)>=0?s=o.isub(this.m):o.cmpn(0)<0&&(s=o.iadd(this.m)),s._forceRed(this)},I.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new o(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),s=r.isub(n).iushrn(this.shift),i=s;return s.cmp(this.m)>=0?i=s.isub(this.m):s.cmpn(0)<0&&(i=s.iadd(this.m)),i._forceRed(this)},I.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(0,ee);var se=ne.exports,ie=te(se);const ae=new ie("21888242871839275222246405745257275088548364400416034343698204186575808495617"),ue=new ie("452312848583266388373324160190187140051835877600158453279131187530910662655"),le=g.from([26,16,169,7,21,202,242,25]),ce="noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV",he="SySTEM1eSU2p4BGQfQpimFEWWSC1XDFeun3Nqzz3rT7",de="compr6CUsB5m2jS4Y3831ztGSTnDpnKJTKS95d64XVq",pe=()=>new e.PublicKey("35hkDgaAKwMCaxRz2ocSZ6NaUrtKkyNqU6c4RV3tYJRh"),fe=()=>e.PublicKey.findProgramAddressSync([g.from("cpi_authority")],new e.PublicKey(he))[0],me=()=>({registeredProgramPda:new e.PublicKey(pe()),noopProgram:new e.PublicKey(ce),accountCompressionProgram:new e.PublicKey(de),accountCompressionAuthority:new e.PublicKey(fe()),cpiSignatureAccount:null}),ge=()=>({nullifierQueue:new e.PublicKey(ye),merkleTree:new e.PublicKey(we),merkleTreeHeight:be,addressTree:new e.PublicKey(ve),addressQueue:new e.PublicKey(Ee)}),ye="nfq1NvQDJ2GEgnS8zt9prAe8rjjpAW1zFkrvZoBR148",we="smt1NamzXdq4AMqS2fS2F1i5KTYPZRhoHgWx38d8WsT",ve="amt1Ayt45jfbdw5YSo7iz6WZxUmnZsQTYXy82hVwyC2",Ee="aq1S9z4reTSQAdgWHGD2zDaS39sjGrAxbR31vxJ2F4F",be=26,Me=new ie(Math.floor(2**be*.95)),xe=new ie(300),Ae=new ie(392),Ie=new ie(5e3),Se=new ie(5e3);var Te=function(e){const t=new Uint8Array(256);for(let e=0;e<t.length;e++)t[e]=255;for(let r=0;r<58;r++){const n=e.charAt(r),o=n.charCodeAt(0);if(255!==t[o])throw new TypeError(n+" is ambiguous");t[o]=r}const r=e.charAt(0),n=Math.log(58)/Math.log(256),o=Math.log(256)/Math.log(58);function s(e){if("string"!=typeof e)throw new TypeError("Expected String");if(0===e.length)return new Uint8Array;let o=0,s=0,i=0;for(;e[o]===r;)s++,o++;const a=(e.length-o)*n+1>>>0,u=new Uint8Array(a);for(;e[o];){let r=t[e.charCodeAt(o)];if(255===r)return;let n=0;for(let e=a-1;(0!==r||n<i)&&-1!==e;e--,n++)r+=58*u[e]>>>0,u[e]=r%256>>>0,r=r/256>>>0;if(0!==r)throw new Error("Non-zero carry");i=n,o++}let l=a-i;for(;l!==a&&0===u[l];)l++;const c=new Uint8Array(s+(a-l));let h=s;for(;l!==a;)c[h++]=u[l++];return c}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";let n=0,s=0,i=0;const a=t.length;for(;i!==a&&0===t[i];)i++,n++;const u=(a-i)*o+1>>>0,l=new Uint8Array(u);for(;i!==a;){let e=t[i],r=0;for(let t=u-1;(0!==e||r<s)&&-1!==t;t--,r++)e+=256*l[t]>>>0,l[t]=e%58>>>0,e=e/58>>>0;if(0!==e)throw new Error("Non-zero carry");s=r,i++}let c=u-s;for(;c!==u&&0===l[c];)c++;let h=r.repeat(n);for(;c<u;++c)h+=e.charAt(l[c]);return h},decodeUnsafe:s,decode:function(e){const t=s(e);if(t)return t;throw new Error("Non-base58 character")}}}("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");const Pe=(e,t,r)=>new ie(e,t,r),_e=(e,t)=>{if("base58"===t){if("string"!=typeof e)throw new Error("Must be a base58 string");return _e(Te.decode(e))}return function(e){if(e.gte(ae))throw new Error("Value is too large. Max <254 bits");return e}(new ie(e,t))};function ke(e){const t=_e(e).toArrayLike(g,void 0,32);return Te.encode(t)}const Ce=(e,t,r,n)=>({owner:e,lamports:null!=t?t:Pe(0),address:null!=n?n:null,data:null!=r?r:null}),Oe=(e,t,r,n,o)=>Object.assign(Object.assign(Object.assign({},Ce(t,r,n,o)),e),{readOnly:0}),Re=(e,t,r,n)=>({merkleTree:e,nullifierQueue:t,hash:r,leafIndex:n});function Ne(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`positive integer expected, not ${e}`)}function Le(e,...t){if(!((r=e)instanceof Uint8Array||null!=r&&"object"==typeof r&&"Uint8Array"===r.constructor.name))throw new Error("Uint8Array expected");var r;if(t.length>0&&!t.includes(e.length))throw new Error(`Uint8Array expected of length ${t}, not of length=${e.length}`)}function Be(e,t=1){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}const Ue=BigInt(2**32-1),De=BigInt(32);function Fe(e,t=0){return t?{h:Number(e&Ue),l:Number(e>>De&Ue)}:{h:0|Number(e>>De&Ue),l:0|Number(e&Ue)}}function Ve(e,t=0){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let o=0;o<e.length;o++){const{h:s,l:i}=Fe(e[o],t);[r[o],n[o]]=[s,i]}return[r,n]}const qe=68===new Uint8Array(new Uint32Array([287454020]).buffer)[0];function He(e){for(let r=0;r<e.length;r++)e[r]=(t=e[r])<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255;var t}function Ke(e){return"string"==typeof e&&(e=function(e){if("string"!=typeof e)throw new Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array((new TextEncoder).encode(e))}(e)),Le(e),e}class je{clone(){return this._cloneInto()}}const We=[],Qe=[],$e=[],ze=BigInt(0),Ye=BigInt(1),Ze=BigInt(2),Je=BigInt(7),Xe=BigInt(256),Ge=BigInt(113);for(let e=0,t=Ye,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],We.push(2*(5*n+r)),Qe.push((e+1)*(e+2)/2%64);let o=ze;for(let e=0;e<7;e++)t=(t<<Ye^(t>>Je)*Ge)%Xe,t&Ze&&(o^=Ye<<(Ye<<BigInt(e))-Ye);$e.push(o)}const[et,tt]=Ve($e,1),rt=(e,t,r)=>r>32?((e,t,r)=>t<<r-32|e>>>64-r)(e,t,r):((e,t,r)=>e<<r|t>>>32-r)(e,t,r),nt=(e,t,r)=>r>32?((e,t,r)=>e<<r-32|t>>>64-r)(e,t,r):((e,t,r)=>t<<r|e>>>32-r)(e,t,r);class ot extends je{constructor(e,t,r,n=0,o=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=r,this.enableXOF=n,this.rounds=o,this.pos=0,this.posOut=0,this.finished=0,this.destroyed=0,Ne(r),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");var s;this.state=new Uint8Array(200),this.state32=(s=this.state,new Uint32Array(s.buffer,s.byteOffset,Math.floor(s.byteLength/4)))}keccak(){qe||He(this.state32),function(e,t=24){const r=new Uint32Array(10);for(let n=24-t;n<24;n++){for(let t=0;t<10;t++)r[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){const n=(t+8)%10,o=(t+2)%10,s=r[o],i=r[o+1],a=rt(s,i,1)^r[n],u=nt(s,i,1)^r[n+1];for(let r=0;r<50;r+=10)e[t+r]^=a,e[t+r+1]^=u}let t=e[2],o=e[3];for(let r=0;r<24;r++){const n=Qe[r],s=rt(t,o,n),i=nt(t,o,n),a=We[r];t=e[a],o=e[a+1],e[a]=s,e[a+1]=i}for(let t=0;t<50;t+=10){for(let n=0;n<10;n++)r[n]=e[t+n];for(let n=0;n<10;n++)e[t+n]^=~r[(n+2)%10]&r[(n+4)%10]}e[0]^=et[n],e[1]^=tt[n]}r.fill(0)}(this.state32,this.rounds),qe||He(this.state32),this.posOut=0,this.pos=0}update(e){Be(this);const{blockLen:t,state:r}=this,n=(e=Ke(e)).length;for(let o=0;o<n;){const s=Math.min(t-this.pos,n-o);for(let t=0;t<s;t++)r[this.pos++]^=e[o++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=1;const{state:e,suffix:t,pos:r,blockLen:n}=this;e[r]^=t,0!=(128&t)&&r===n-1&&this.keccak(),e[n-1]^=128,this.keccak()}writeInto(e){Be(this,0),Le(e),this.finish();const t=this.state,{blockLen:r}=this;for(let n=0,o=e.length;n<o;){this.posOut>=r&&this.keccak();const s=Math.min(r-this.posOut,o-n);e.set(t.subarray(this.posOut,this.posOut+s),n),this.posOut+=s,n+=s}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return Ne(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(function(e,t){Le(e);const r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=1,this.state.fill(0)}_cloneInto(e){const{blockLen:t,suffix:r,outputLen:n,rounds:o,enableXOF:s}=this;return e||(e=new ot(t,r,n,s,o)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=o,e.suffix=r,e.outputLen=n,e.enableXOF=s,e.destroyed=this.destroyed,e}}const st=(()=>function(e){const t=t=>e().update(Ke(t)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}((()=>new ot(136,1,32))))();function it(e){return"0x"+e.toString("hex")}const at=e=>Array.isArray(e)?e:[e];function ut(e){return Pe(e,void 0,"be").lt(ae)}function lt(e){let t=255;for(;t>=0;){const r=g.concat([e,g.from([t])]),n=st(r);if(32!==n.length)throw new Error("Invalid hash length");if(n[0]=0,ut(g.from(n)))return[g.from(n),t];t-=1}return null}function ct(e){const t=st.create();for(const r of e)t.update(r);const r=t.digest();return r[0]=0,r}function ht(e){return Array.isArray(e)?e.map((e=>ht(e))):null!==e&&e.constructor===Object?Object.keys(e).reduce(((t,r)=>(t[r.replace(/([-_][a-z])/gi,(e=>e.toUpperCase().replace("-","").replace("_","")))]=ht(e[r]),t)),{}):e}function dt(e,t){const r=e.findIndex((e=>e.equals(t)));return-1===r?(e.push(t),e.length-1):r}function pt(e,t,r){if(t<=0)return[];if(void 0===e)return 0===r.length?new Array(t).fill(ge().merkleTree):new Array(t).fill(r[0].merkleTree);{const r=at(e);return r.length>=t?r.slice(0,t):r.concat(new Array(t-r.length).fill(r[0]))}}function ft(e){return e.map((e=>({pubkey:e,isWritable:1,isSigner:0})))}function mt(e,t,r,n,o=[]){const s=o.slice(),i=[],a=[];e.forEach(((e,r)=>{const n=dt(s,e.merkleTree),o=dt(s,e.nullifierQueue);i.push({compressedAccount:{owner:e.owner,lamports:e.lamports,address:e.address,data:e.data},merkleContext:{merkleTreePubkeyIndex:n,nullifierQueuePubkeyIndex:o,leafIndex:e.leafIndex,queueIndex:null},rootIndex:t[r],readOnly:0})}));const u=pt(n,r.length,e);return r.forEach(((e,t)=>{const r=dt(s,u[t]);a.push({compressedAccount:{owner:e.owner,lamports:e.lamports,address:e.address,data:e.data},merkleTreeIndex:r})})),{packedInputCompressedAccounts:i,packedOutputCompressedAccounts:a,remainingAccounts:s}}const gt=e=>{if(e.lt(Pe(0)))throw new Error("Not enough balance for transfer")},yt=e=>{if(0===e.length)throw new Error("No accounts provided for validation");const t=e[0].owner;if(!e.every((e=>e.owner.equals(t))))throw new Error("All input accounts must have the same owner")};function wt(e,t){return ct([t.toBytes(),...e])}function vt(t,r=ge().addressTree){if(32!=t.length)throw new Error("Seed length is not 32 bytes.");const n=r.toBytes(),o=lt(Buffer.from([...n,...t]));if(null===o)throw new Error("DeriveAddressError");const s=o[0];return new e.PublicKey(s)}function Et(e,t){const r=t.slice(),n=e.map((e=>({seed:Array.from(e.seed),addressMerkleTreeRootIndex:e.addressMerkleTreeRootIndex,addressMerkleTreeAccountIndex:0,addressQueueAccountIndex:0})));return e.forEach(((e,t)=>{n[t].addressMerkleTreeAccountIndex=dt(r,e.addressMerkleTreePubkey)})),e.forEach(((e,t)=>{n[t].addressQueueAccountIndex=dt(r,e.addressQueuePubkey)})),{newAddressParamsPacked:n,remainingAccounts:r}}async function bt(e,t,r="confirmed"){const n=await e.getLatestBlockhash(r),o={signature:t.toString(),lastValidBlockHeight:n.lastValidBlockHeight,blockhash:n.blockhash};return await e.confirmTransaction(o,r)}function Mt(e){const t=At(e.ar[0]),r=At(e.ar[1]),n=new Uint8Array([...t,...r]),o=At(e.bs[0][0]),s=At(e.bs[0][1]),i=At(e.bs[1][0]),a=At(e.bs[1][1]),u=new Uint8Array([...o,...s,...i,...a]),l=At(e.krs[0]),c=At(e.krs[1]);return{a:n,b:u,c:new Uint8Array([...l,...c])}}function xt(e){const t=e.a,r=e.b,n=e.c,o=t.slice(0,32),s=It(new ie(t.slice(32,64),32,"be"))?0:1;o[0]=St(o[0],s);const i=r.slice(0,64),a=r.slice(64,128),u=function(e,t){const r=ae.div(new ie(2));return e.lt(r)?1:e.gt(r)?0:t.lt(r)}(new ie(a.slice(0,32),32,"be"),new ie(a.slice(32,64),32,"be"));i[0]=St(i[0],u);const l=n.slice(0,32),c=n.slice(32,64),h=It(new ie(c,32,"be"));return l[0]=St(l[0],h),{a:Array.from(o),b:Array.from(i),c:Array.from(l)}}function At(e){const t=new ie(e.startsWith("0x")?e.substring(2):e,"hex");return new Uint8Array(t.toArray("be",32))}function It(e){return e.lte(ae.sub(e))}function St(e,t){return t?e:128|e}function Tt(t,r,n,o){const s=new e.TransactionMessage({payerKey:r,recentBlockhash:n,instructions:t}).compileToV0Message(o);return new e.VersionedTransaction(s)}async function Pt(e,t,r,n){const o=await e.sendTransaction(t,r);n||(n=await e.getLatestBlockhash());const s={signature:o,blockhash:n.blockhash,lastValidBlockHeight:n.lastValidBlockHeight},i=(await e.confirmTransaction(s,(null==r?void 0:r.commitment)||e.commitment||"confirmed")).context.slot;return await e.confirmTransactionIndexed(i),o}async function _t(e,t,r,n){n||(n=await e.getLatestBlockhash());const o={signature:t,blockhash:n.blockhash,lastValidBlockHeight:n.lastValidBlockHeight},s=await e.confirmTransaction(o,(null==r?void 0:r.commitment)||e.commitment||"confirmed"),i=s.context.slot;return await e.confirmTransactionIndexed(i),s}function kt(e,t,r,n=[],o){if(n.includes(t))throw new Error("payer must not be in additionalSigners");const s=[t,...n],i=Tt(e,t.publicKey,r,o);return i.sign(s),i}let Ct=1;const Ot=Bt(255),Rt=Bt(254),Nt=Bt(253),Lt=Bt(252);function Bt(t){if(t||(t=Ct,Ct++),t>255)return e.Keypair.generate();const r=new Uint8Array(32);return r[31]=t,e.Keypair.fromSeed(r)}var Ut={},Dt={};class Ft{constructor(e,t){if(!Number.isInteger(e))throw new TypeError("span must be an integer");this.span=e,this.property=t}makeDestinationObject(){return{}}decode(e,t){throw new Error("Layout is abstract")}encode(e,t,r){throw new Error("Layout is abstract")}getSpan(e,t){if(0>this.span)throw new RangeError("indeterminate span");return this.span}replicate(e){const t=Object.create(this.constructor.prototype);return Object.assign(t,this),t.property=e,t}fromArray(e){}}function Vt(e,t){return t.property?e+"["+t.property+"]":e}Dt.Layout=Ft,Dt.nameWithProperty=Vt,Dt.bindConstructorLayout=function(e,t){if("function"!=typeof e)throw new TypeError("Class must be constructor");if(e.hasOwnProperty("layout_"))throw new Error("Class is already bound to a layout");if(!(t&&t instanceof Ft))throw new TypeError("layout must be a Layout");if(t.hasOwnProperty("boundConstructor_"))throw new Error("layout is already bound to a constructor");e.layout_=t,t.boundConstructor_=e,t.makeDestinationObject=()=>new e,Object.defineProperty(e.prototype,"encode",{value:function(e,r){return t.encode(this,e,r)},writable:1}),Object.defineProperty(e,"decode",{value:function(e,r){return t.decode(e,r)},writable:1})};class qt extends Ft{isCount(){throw new Error("ExternalLayout is abstract")}}class Ht extends qt{constructor(e,t){if(void 0===e&&(e=1),!Number.isInteger(e)||0>=e)throw new TypeError("elementSpan must be a (positive) integer");super(-1,t),this.elementSpan=e}isCount(){return 1}decode(e,t){void 0===t&&(t=0);const r=e.length-t;return Math.floor(r/this.elementSpan)}encode(e,t,r){return 0}}class Kt extends qt{constructor(e,t,r){if(!(e instanceof Ft))throw new TypeError("layout must be a Layout");if(void 0===t)t=0;else if(!Number.isInteger(t))throw new TypeError("offset must be integer or undefined");super(e.span,r||e.property),this.layout=e,this.offset=t}isCount(){return this.layout instanceof jt||this.layout instanceof Wt}decode(e,t){return void 0===t&&(t=0),this.layout.decode(e,t+this.offset)}encode(e,t,r){return void 0===r&&(r=0),this.layout.encode(e,t,r+this.offset)}}class jt extends Ft{constructor(e,t){if(super(e,t),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,t){return void 0===t&&(t=0),e.readUIntLE(t,this.span)}encode(e,t,r){return void 0===r&&(r=0),t.writeUIntLE(e,r,this.span),this.span}}class Wt extends Ft{constructor(e,t){if(super(e,t),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,t){return void 0===t&&(t=0),e.readUIntBE(t,this.span)}encode(e,t,r){return void 0===r&&(r=0),t.writeUIntBE(e,r,this.span),this.span}}class Qt extends Ft{constructor(e,t){if(super(e,t),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,t){return void 0===t&&(t=0),e.readIntLE(t,this.span)}encode(e,t,r){return void 0===r&&(r=0),t.writeIntLE(e,r,this.span),this.span}}class $t extends Ft{constructor(e,t){if(super(e,t),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,t){return void 0===t&&(t=0),e.readIntBE(t,this.span)}encode(e,t,r){return void 0===r&&(r=0),t.writeIntBE(e,r,this.span),this.span}}const zt=Math.pow(2,32);function Yt(e){const t=Math.floor(e/zt);return{hi32:t,lo32:e-t*zt}}function Zt(e,t){return e*zt+t}class Jt extends Ft{constructor(e){super(8,e)}decode(e,t){void 0===t&&(t=0);const r=e.readUInt32LE(t);return Zt(e.readUInt32LE(t+4),r)}encode(e,t,r){void 0===r&&(r=0);const n=Yt(e);return t.writeUInt32LE(n.lo32,r),t.writeUInt32LE(n.hi32,r+4),8}}class Xt extends Ft{constructor(e){super(8,e)}decode(e,t){return void 0===t&&(t=0),Zt(e.readUInt32BE(t),e.readUInt32BE(t+4))}encode(e,t,r){void 0===r&&(r=0);const n=Yt(e);return t.writeUInt32BE(n.hi32,r),t.writeUInt32BE(n.lo32,r+4),8}}class Gt extends Ft{constructor(e){super(8,e)}decode(e,t){void 0===t&&(t=0);const r=e.readUInt32LE(t);return Zt(e.readInt32LE(t+4),r)}encode(e,t,r){void 0===r&&(r=0);const n=Yt(e);return t.writeUInt32LE(n.lo32,r),t.writeInt32LE(n.hi32,r+4),8}}class er extends Ft{constructor(e){super(8,e)}decode(e,t){return void 0===t&&(t=0),Zt(e.readInt32BE(t),e.readUInt32BE(t+4))}encode(e,t,r){void 0===r&&(r=0);const n=Yt(e);return t.writeInt32BE(n.hi32,r),t.writeUInt32BE(n.lo32,r+4),8}}class tr extends Ft{constructor(e){super(4,e)}decode(e,t){return void 0===t&&(t=0),e.readFloatLE(t)}encode(e,t,r){return void 0===r&&(r=0),t.writeFloatLE(e,r),4}}class rr extends Ft{constructor(e){super(4,e)}decode(e,t){return void 0===t&&(t=0),e.readFloatBE(t)}encode(e,t,r){return void 0===r&&(r=0),t.writeFloatBE(e,r),4}}class nr extends Ft{constructor(e){super(8,e)}decode(e,t){return void 0===t&&(t=0),e.readDoubleLE(t)}encode(e,t,r){return void 0===r&&(r=0),t.writeDoubleLE(e,r),8}}class or extends Ft{constructor(e){super(8,e)}decode(e,t){return void 0===t&&(t=0),e.readDoubleBE(t)}encode(e,t,r){return void 0===r&&(r=0),t.writeDoubleBE(e,r),8}}class sr extends Ft{constructor(e,t,r){if(!(e instanceof Ft))throw new TypeError("elementLayout must be a Layout");if(!(t instanceof qt&&t.isCount()||Number.isInteger(t)&&0<=t))throw new TypeError("count must be non-negative integer or an unsigned integer ExternalLayout");let n=-1;!(t instanceof qt)&&0<e.span&&(n=t*e.span),super(n,r),this.elementLayout=e,this.count=t}getSpan(e,t){if(0<=this.span)return this.span;void 0===t&&(t=0);let r=0,n=this.count;if(n instanceof qt&&(n=n.decode(e,t)),0<this.elementLayout.span)r=n*this.elementLayout.span;else{let o=0;for(;o<n;)r+=this.elementLayout.getSpan(e,t+r),++o}return r}decode(e,t){void 0===t&&(t=0);const r=[];let n=0,o=this.count;for(o instanceof qt&&(o=o.decode(e,t));n<o;)r.push(this.elementLayout.decode(e,t)),t+=this.elementLayout.getSpan(e,t),n+=1;return r}encode(e,t,r){void 0===r&&(r=0);const n=this.elementLayout,o=e.reduce(((e,o)=>e+n.encode(o,t,r+e)),0);return this.count instanceof qt&&this.count.encode(e.length,t,r),o}}class ir extends Ft{constructor(e,t,r){if(!Array.isArray(e)||!e.reduce(((e,t)=>e&&t instanceof Ft),1))throw new TypeError("fields must be array of Layout instances");"boolean"==typeof t&&void 0===r&&(r=t,t=void 0);for(const t of e)if(0>t.span&&void 0===t.property)throw new Error("fields cannot contain unnamed variable-length layout");let n=-1;try{n=e.reduce(((e,t)=>e+t.getSpan()),0)}catch(e){}super(n,t),this.fields=e,this.decodePrefixes=!!r}getSpan(e,t){if(0<=this.span)return this.span;void 0===t&&(t=0);let r=0;try{r=this.fields.reduce(((r,n)=>{const o=n.getSpan(e,t);return t+=o,r+o}),0)}catch(e){throw new RangeError("indeterminate span")}return r}decode(e,t){void 0===t&&(t=0);const r=this.makeDestinationObject();for(const n of this.fields)if(void 0!==n.property&&(r[n.property]=n.decode(e,t)),t+=n.getSpan(e,t),this.decodePrefixes&&e.length===t)break;return r}encode(e,t,r){void 0===r&&(r=0);const n=r;let o=0,s=0;for(const n of this.fields){let i=n.span;if(s=0<i?i:0,void 0!==n.property){const o=e[n.property];void 0!==o&&(s=n.encode(o,t,r),0>i&&(i=n.getSpan(t,r)))}o=r,r+=i}return o+s-n}fromArray(e){const t=this.makeDestinationObject();for(const r of this.fields)void 0!==r.property&&0<e.length&&(t[r.property]=e.shift());return t}layoutFor(e){if("string"!=typeof e)throw new TypeError("property must be string");for(const t of this.fields)if(t.property===e)return t}offsetOf(e){if("string"!=typeof e)throw new TypeError("property must be string");let t=0;for(const r of this.fields){if(r.property===e)return t;0>r.span?t=-1:0<=t&&(t+=r.span)}}}class ar{constructor(e){this.property=e}decode(){throw new Error("UnionDiscriminator is abstract")}encode(){throw new Error("UnionDiscriminator is abstract")}}class ur extends ar{constructor(e,t){if(!(e instanceof qt&&e.isCount()))throw new TypeError("layout must be an unsigned integer ExternalLayout");super(t||e.property||"variant"),this.layout=e}decode(e,t){return this.layout.decode(e,t)}encode(e,t,r){return this.layout.encode(e,t,r)}}class lr extends Ft{constructor(e,t,r){const n=e instanceof jt||e instanceof Wt;if(n)e=new ur(new Kt(e));else if(e instanceof qt&&e.isCount())e=new ur(e);else if(!(e instanceof ar))throw new TypeError("discr must be a UnionDiscriminator or an unsigned integer layout");if(void 0===t&&(t=null),!(null===t||t instanceof Ft))throw new TypeError("defaultLayout must be null or a Layout");if(null!==t){if(0>t.span)throw new Error("defaultLayout must have constant span");void 0===t.property&&(t=t.replicate("content"))}let o=-1;t&&(o=t.span,0<=o&&n&&(o+=e.layout.span)),super(o,r),this.discriminator=e,this.usesPrefixDiscriminator=n,this.defaultLayout=t,this.registry={};let s=this.defaultGetSourceVariant.bind(this);this.getSourceVariant=function(e){return s(e)},this.configGetSourceVariant=function(e){s=e.bind(this)}}getSpan(e,t){if(0<=this.span)return this.span;void 0===t&&(t=0);const r=this.getVariant(e,t);if(!r)throw new Error("unable to determine span for unrecognized variant");return r.getSpan(e,t)}defaultGetSourceVariant(e){if(e.hasOwnProperty(this.discriminator.property)){if(this.defaultLayout&&e.hasOwnProperty(this.defaultLayout.property))return;const t=this.registry[e[this.discriminator.property]];if(t&&(!t.layout||e.hasOwnProperty(t.property)))return t}else for(const t in this.registry){const r=this.registry[t];if(e.hasOwnProperty(r.property))return r}throw new Error("unable to infer src variant")}decode(e,t){let r;void 0===t&&(t=0);const n=this.discriminator,o=n.decode(e,t);let s=this.registry[o];if(void 0===s){let i=0;s=this.defaultLayout,this.usesPrefixDiscriminator&&(i=n.layout.span),r=this.makeDestinationObject(),r[n.property]=o,r[s.property]=this.defaultLayout.decode(e,t+i)}else r=s.decode(e,t);return r}encode(e,t,r){void 0===r&&(r=0);const n=this.getSourceVariant(e);if(void 0===n){const n=this.discriminator,o=this.defaultLayout;let s=0;return this.usesPrefixDiscriminator&&(s=n.layout.span),n.encode(e[n.property],t,r),s+o.encode(e[o.property],t,r+s)}return n.encode(e,t,r)}addVariant(e,t,r){const n=new cr(this,e,t,r);return this.registry[e]=n,n}getVariant(e,t){let r=e;return Buffer.isBuffer(e)&&(void 0===t&&(t=0),r=this.discriminator.decode(e,t)),this.registry[r]}}class cr extends Ft{constructor(e,t,r,n){if(!(e instanceof lr))throw new TypeError("union must be a Union");if(!Number.isInteger(t)||0>t)throw new TypeError("variant must be a (non-negative) integer");if("string"==typeof r&&void 0===n&&(n=r,r=null),r){if(!(r instanceof Ft))throw new TypeError("layout must be a Layout");if(null!==e.defaultLayout&&0<=r.span&&r.span>e.defaultLayout.span)throw new Error("variant span exceeds span of containing union");if("string"!=typeof n)throw new TypeError("variant must have a String property")}let o=e.span;0>e.span&&(o=r?r.span:0,0<=o&&e.usesPrefixDiscriminator&&(o+=e.discriminator.layout.span)),super(o,n),this.union=e,this.variant=t,this.layout=r||null}getSpan(e,t){if(0<=this.span)return this.span;void 0===t&&(t=0);let r=0;return this.union.usesPrefixDiscriminator&&(r=this.union.discriminator.layout.span),r+this.layout.getSpan(e,t+r)}decode(e,t){const r=this.makeDestinationObject();if(void 0===t&&(t=0),this!==this.union.getVariant(e,t))throw new Error("variant mismatch");let n=0;return this.union.usesPrefixDiscriminator&&(n=this.union.discriminator.layout.span),this.layout?r[this.property]=this.layout.decode(e,t+n):this.property?r[this.property]=1:this.union.usesPrefixDiscriminator&&(r[this.union.discriminator.property]=this.variant),r}encode(e,t,r){void 0===r&&(r=0);let n=0;if(this.union.usesPrefixDiscriminator&&(n=this.union.discriminator.layout.span),this.layout&&!e.hasOwnProperty(this.property))throw new TypeError("variant lacks property "+this.property);this.union.discriminator.encode(this.variant,t,r);let o=n;if(this.layout&&(this.layout.encode(e[this.property],t,r+n),o+=this.layout.getSpan(t,r+n),0<=this.union.span&&o>this.union.span))throw new Error("encoded variant overruns containing union");return o}fromArray(e){if(this.layout)return this.layout.fromArray(e)}}function hr(e){return 0>e&&(e+=4294967296),e}class dr extends Ft{constructor(e,t,r){if(!(e instanceof jt||e instanceof Wt))throw new TypeError("word must be a UInt or UIntBE layout");if("string"==typeof t&&void 0===r&&(r=t,t=void 0),4<e.span)throw new RangeError("word cannot exceed 32 bits");super(e.span,r),this.word=e,this.msb=!!t,this.fields=[];let n=0;this._packedSetValue=function(e){return n=hr(e),this},this._packedGetValue=function(){return n}}decode(e,t){const r=this.makeDestinationObject();void 0===t&&(t=0);const n=this.word.decode(e,t);this._packedSetValue(n);for(const e of this.fields)void 0!==e.property&&(r[e.property]=e.decode(n));return r}encode(e,t,r){void 0===r&&(r=0);const n=this.word.decode(t,r);this._packedSetValue(n);for(const t of this.fields)if(void 0!==t.property){const r=e[t.property];void 0!==r&&t.encode(r)}return this.word.encode(this._packedGetValue(),t,r)}addField(e,t){const r=new pr(this,e,t);return this.fields.push(r),r}addBoolean(e){const t=new fr(this,e);return this.fields.push(t),t}fieldFor(e){if("string"!=typeof e)throw new TypeError("property must be string");for(const t of this.fields)if(t.property===e)return t}}class pr{constructor(e,t,r){if(!(e instanceof dr))throw new TypeError("container must be a BitStructure");if(!Number.isInteger(t)||0>=t)throw new TypeError("bits must be positive integer");const n=8*e.span,o=e.fields.reduce(((e,t)=>e+t.bits),0);if(t+o>n)throw new Error("bits too long for span remainder ("+(n-o)+" of "+n+" remain)");this.container=e,this.bits=t,this.valueMask=(1<<t)-1,32===t&&(this.valueMask=4294967295),this.start=o,this.container.msb&&(this.start=n-o-t),this.wordMask=hr(this.valueMask<<this.start),this.property=r}decode(){return hr(this.container._packedGetValue()&this.wordMask)>>>this.start}encode(e){if(!Number.isInteger(e)||e!==hr(e&this.valueMask))throw new TypeError(Vt("BitField.encode",this)+" value must be integer not exceeding "+this.valueMask);const t=this.container._packedGetValue(),r=hr(e<<this.start);this.container._packedSetValue(hr(t&~this.wordMask)|r)}}class fr extends pr{constructor(e,t){super(e,1,t)}decode(e,t){return!!pr.prototype.decode.call(this,e,t)}encode(e){return"boolean"==typeof e&&(e=+e),pr.prototype.encode.call(this,e)}}class mr extends Ft{constructor(e,t){if(!(e instanceof qt&&e.isCount()||Number.isInteger(e)&&0<=e))throw new TypeError("length must be positive integer or an unsigned integer ExternalLayout");let r=-1;e instanceof qt||(r=e),super(r,t),this.length=e}getSpan(e,t){let r=this.span;return 0>r&&(r=this.length.decode(e,t)),r}decode(e,t){void 0===t&&(t=0);let r=this.span;return 0>r&&(r=this.length.decode(e,t)),e.slice(t,t+r)}encode(e,t,r){let n=this.length;if(this.length instanceof qt&&(n=e.length),!Buffer.isBuffer(e)||n!==e.length)throw new TypeError(Vt("Blob.encode",this)+" requires (length "+n+") Buffer as src");if(r+n>t.length)throw new RangeError("encoding overruns Buffer");return t.write(e.toString("hex"),r,n,"hex"),this.length instanceof qt&&this.length.encode(n,t,r),n}}class gr extends Ft{constructor(e){super(-1,e)}getSpan(e,t){if(!Buffer.isBuffer(e))throw new TypeError("b must be a Buffer");void 0===t&&(t=0);let r=t;for(;r<e.length&&0!==e[r];)r+=1;return 1+r-t}decode(e,t,r){void 0===t&&(t=0);let n=this.getSpan(e,t);return e.slice(t,t+n-1).toString("utf-8")}encode(e,t,r){void 0===r&&(r=0),"string"!=typeof e&&(e=e.toString());const n=new Buffer(e,"utf8"),o=n.length;if(r+o>t.length)throw new RangeError("encoding overruns Buffer");return n.copy(t,r),t[r+o]=0,o+1}}class yr extends Ft{constructor(e,t){if("string"==typeof e&&void 0===t&&(t=e,e=void 0),void 0===e)e=-1;else if(!Number.isInteger(e))throw new TypeError("maxSpan must be an integer");super(-1,t),this.maxSpan=e}getSpan(e,t){if(!Buffer.isBuffer(e))throw new TypeError("b must be a Buffer");return void 0===t&&(t=0),e.length-t}decode(e,t,r){void 0===t&&(t=0);let n=this.getSpan(e,t);if(0<=this.maxSpan&&this.maxSpan<n)throw new RangeError("text length exceeds maxSpan");return e.slice(t,t+n).toString("utf-8")}encode(e,t,r){void 0===r&&(r=0),"string"!=typeof e&&(e=e.toString());const n=new Buffer(e,"utf8"),o=n.length;if(0<=this.maxSpan&&this.maxSpan<o)throw new RangeError("text length exceeds maxSpan");if(r+o>t.length)throw new RangeError("encoding overruns Buffer");return n.copy(t,r),o}}class wr extends Ft{constructor(e,t){super(0,t),this.value=e}decode(e,t,r){return this.value}encode(e,t,r){return 0}}Dt.ExternalLayout=qt,Dt.GreedyCount=Ht,Dt.OffsetLayout=Kt,Dt.UInt=jt,Dt.UIntBE=Wt,Dt.Int=Qt,Dt.IntBE=$t,Dt.Float=tr,Dt.FloatBE=rr,Dt.Double=nr,Dt.DoubleBE=or,Dt.Sequence=sr,Dt.Structure=ir,Dt.UnionDiscriminator=ar,Dt.UnionLayoutDiscriminator=ur,Dt.Union=lr,Dt.VariantLayout=cr,Dt.BitStructure=dr,Dt.BitField=pr,Dt.Boolean=fr,Dt.Blob=mr,Dt.CString=gr,Dt.UTF8=yr,Dt.Constant=wr,Dt.greedy=(e,t)=>new Ht(e,t),Dt.offset=(e,t,r)=>new Kt(e,t,r),Dt.u8=e=>new jt(1,e),Dt.u16=e=>new jt(2,e),Dt.u24=e=>new jt(3,e),Dt.u32=e=>new jt(4,e),Dt.u40=e=>new jt(5,e),Dt.u48=e=>new jt(6,e),Dt.nu64=e=>new Jt(e),Dt.u16be=e=>new Wt(2,e),Dt.u24be=e=>new Wt(3,e),Dt.u32be=e=>new Wt(4,e),Dt.u40be=e=>new Wt(5,e),Dt.u48be=e=>new Wt(6,e),Dt.nu64be=e=>new Xt(e),Dt.s8=e=>new Qt(1,e),Dt.s16=e=>new Qt(2,e),Dt.s24=e=>new Qt(3,e),Dt.s32=e=>new Qt(4,e),Dt.s40=e=>new Qt(5,e),Dt.s48=e=>new Qt(6,e),Dt.ns64=e=>new Gt(e),Dt.s16be=e=>new $t(2,e),Dt.s24be=e=>new $t(3,e),Dt.s32be=e=>new $t(4,e),Dt.s40be=e=>new $t(5,e),Dt.s48be=e=>new $t(6,e),Dt.ns64be=e=>new er(e),Dt.f32=e=>new tr(e),Dt.f32be=e=>new rr(e),Dt.f64=e=>new nr(e),Dt.f64be=e=>new or(e),Dt.struct=(e,t,r)=>new ir(e,t,r),Dt.bits=(e,t,r)=>new dr(e,t,r),Dt.seq=(e,t,r)=>new sr(e,t,r),Dt.union=(e,t,r)=>new lr(e,t,r),Dt.unionLayoutDiscriminator=(e,t)=>new ur(e,t),Dt.blob=(e,t)=>new mr(e,t),Dt.cstr=e=>new gr(e),Dt.utf8=(e,t)=>new yr(e,t),Dt.const=(e,t)=>new wr(e,t),function(t){var r=ee&&ee.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:1}),t.map=t.array=t.rustEnum=t.str=t.vecU8=t.tagged=t.vec=t.bool=t.option=t.publicKey=t.i256=t.u256=t.i128=t.u128=t.i64=t.u64=t.struct=t.f64=t.f32=t.i32=t.u32=t.i16=t.u16=t.i8=t.u8=void 0;const n=Dt,o=e,s=r(se);var i=Dt;Object.defineProperty(t,"u8",{enumerable:1,get:function(){return i.u8}}),Object.defineProperty(t,"i8",{enumerable:1,get:function(){return i.s8}}),Object.defineProperty(t,"u16",{enumerable:1,get:function(){return i.u16}}),Object.defineProperty(t,"i16",{enumerable:1,get:function(){return i.s16}}),Object.defineProperty(t,"u32",{enumerable:1,get:function(){return i.u32}}),Object.defineProperty(t,"i32",{enumerable:1,get:function(){return i.s32}}),Object.defineProperty(t,"f32",{enumerable:1,get:function(){return i.f32}}),Object.defineProperty(t,"f64",{enumerable:1,get:function(){return i.f64}}),Object.defineProperty(t,"struct",{enumerable:1,get:function(){return i.struct}});class a extends n.Layout{constructor(e,t,r){super(e,r),this.blob=(0,n.blob)(e),this.signed=t}decode(e,t=0){const r=new s.default(this.blob.decode(e,t),10,"le");return this.signed?r.fromTwos(8*this.span).clone():r}encode(e,t,r=0){return this.signed&&(e=e.toTwos(8*this.span)),this.blob.encode(e.toArrayLike(Buffer,"le",this.span),t,r)}}function u(e){return new a(8,0,e)}t.u64=u,t.i64=function(e){return new a(8,1,e)},t.u128=function(e){return new a(16,0,e)},t.i128=function(e){return new a(16,1,e)},t.u256=function(e){return new a(32,0,e)},t.i256=function(e){return new a(32,1,e)};class l extends n.Layout{constructor(e,t,r,n){super(e.span,n),this.layout=e,this.decoder=t,this.encoder=r}decode(e,t){return this.decoder(this.layout.decode(e,t))}encode(e,t,r){return this.layout.encode(this.encoder(e),t,r)}getSpan(e,t){return this.layout.getSpan(e,t)}}t.publicKey=function(e){return new l((0,n.blob)(32),(e=>new o.PublicKey(e)),(e=>e.toBuffer()),e)};class c extends n.Layout{constructor(e,t){super(-1,t),this.layout=e,this.discriminator=(0,n.u8)()}encode(e,t,r=0){return null==e?this.discriminator.encode(0,t,r):(this.discriminator.encode(1,t,r),this.layout.encode(e,t,r+1)+1)}decode(e,t=0){const r=this.discriminator.decode(e,t);if(0===r)return null;if(1===r)return this.layout.decode(e,t+1);throw new Error("Invalid option "+this.property)}getSpan(e,t=0){const r=this.discriminator.decode(e,t);if(0===r)return 1;if(1===r)return this.layout.getSpan(e,t+1)+1;throw new Error("Invalid option "+this.property)}}function h(e){if(0===e)return 0;if(1===e)return 1;throw new Error("Invalid bool: "+e)}function d(e){return e?1:0}function p(e){const t=(0,n.u32)("length"),r=(0,n.struct)([t,(0,n.blob)((0,n.offset)(t,-t.span),"data")]);return new l(r,(({data:e})=>e),(e=>({data:e})),e)}t.option=function(e,t){return new c(e,t)},t.bool=function(e){return new l((0,n.u8)(),h,d,e)},t.vec=function(e,t){const r=(0,n.u32)("length"),o=(0,n.struct)([r,(0,n.seq)(e,(0,n.offset)(r,-r.span),"values")]);return new l(o,(({values:e})=>e),(e=>({values:e})),t)},t.tagged=function(e,t,r){const o=(0,n.struct)([u("tag"),t.replicate("data")]);return new l(o,(function({tag:t,data:r}){if(!t.eq(e))throw new Error("Invalid tag, expected: "+e.toString("hex")+", got: "+t.toString("hex"));return r}),(t=>({tag:e,data:t})),r)},t.vecU8=p,t.str=function(e){return new l(p(),(e=>e.toString("utf-8")),(e=>Buffer.from(e,"utf-8")),e)},t.rustEnum=function(e,t,r){const o=(0,n.union)(null!=r?r:(0,n.u8)(),t);return e.forEach(((e,t)=>o.addVariant(t,e,e.property))),o},t.array=function(e,t,r){const o=(0,n.struct)([(0,n.seq)(e,t,"values")]);return new l(o,(({values:e})=>e),(e=>({values:e})),r)};class f extends n.Layout{constructor(e,t,r){super(e.span+t.span,r),this.keyLayout=e,this.valueLayout=t}decode(e,t){return t=t||0,[this.keyLayout.decode(e,t),this.valueLayout.decode(e,t+this.keyLayout.getSpan(e,t))]}encode(e,t,r){r=r||0;const n=this.keyLayout.encode(e[0],t,r);return n+this.valueLayout.encode(e[1],t,r+n)}getSpan(e,t){return this.keyLayout.getSpan(e,t)+this.valueLayout.getSpan(e,t)}}t.map=function(e,t,r){const o=(0,n.u32)("length"),s=(0,n.struct)([o,(0,n.seq)(new f(e,t),(0,n.offset)(o,-o.span),"values")]);return new l(s,(({values:e})=>new Map(e)),(e=>({values:Array.from(e.entries())})),r)}}(Ut);const vr=Ut.struct([Ut.publicKey("owner"),Ut.u64("lamports"),Ut.option(Ut.array(Ut.u8(),32),"address"),Ut.option(Ut.struct([Ut.array(Ut.u8(),8,"discriminator"),Ut.vecU8("data"),Ut.array(Ut.u8(),32,"dataHash")]),"data")],"compressedAccount"),Er=Ut.struct([Ut.u8("merkleTreePubkeyIndex"),Ut.u8("nullifierQueuePubkeyIndex"),Ut.u32("leafIndex"),Ut.option(Ut.struct([Ut.u8("queueId"),Ut.u16("index")]),"queueIndex")],"merkleContext"),br=Ut.struct([Ut.array(Ut.u8(),32,"seed"),Ut.u8("addressQueueAccountIndex"),Ut.u8("addressMerkleTreeAccountIndex"),Ut.u16("addressMerkleTreeRootIndex")],"newAddressParams"),Mr=Ut.struct([Ut.option(Ut.struct([Ut.array(Ut.u8(),32,"a"),Ut.array(Ut.u8(),64,"b"),Ut.array(Ut.u8(),32,"c")]),"proof"),Ut.vec(Ut.struct([vr,Er,Ut.u16("rootIndex"),Ut.bool("readOnly")]),"inputCompressedAccountsWithMerkleContext"),Ut.vec(Ut.struct([vr,Ut.u8("merkleTreeIndex")]),"outputCompressedAccounts"),Ut.option(Ut.u64(),"relayFee"),Ut.vec(br,"newAddressParams"),Ut.option(Ut.u64(),"compressOrDecompressLamports"),Ut.bool("isCompress")]);function xr(e){const t=g.alloc(1e3),r=Mr.encode(e,t),n=g.from(t.slice(0,r)),o=g.alloc(4);return o.writeUInt32LE(r,0),g.concat([le,o,n])}const Ar=e=>{const t=_r.programId,{feePayer:r,authority:n,registeredProgramPda:o,noopProgram:s,accountCompressionAuthority:i,accountCompressionProgram:a,solPoolPda:u,decompressionRecipient:l,systemProgram:c}=e;return[{pubkey:r,isSigner:1,isWritable:1},{pubkey:n,isSigner:1,isWritable:0},{pubkey:o,isSigner:0,isWritable:0},{pubkey:s,isSigner:0,isWritable:0},{pubkey:i,isSigner:0,isWritable:0},{pubkey:a,isSigner:0,isWritable:0},{pubkey:null!=u?u:t,isSigner:0,isWritable:null!==u},{pubkey:null!=l?l:t,isSigner:0,isWritable:1},{pubkey:c,isSigner:0,isWritable:0}]},Ir=Ut.struct([Ut.vec(Ut.array(Ut.u8(),32),"inputCompressedAccountHashes"),Ut.vec(Ut.array(Ut.u8(),32),"outputCompressedAccountHashes"),Ut.vec(Ut.struct([Ut.struct([Ut.publicKey("owner"),Ut.u64("lamports"),Ut.option(Ut.array(Ut.u8(),32),"address"),Ut.option(Ut.struct([Ut.array(Ut.u8(),8,"discriminator"),Ut.vecU8("data"),Ut.array(Ut.u8(),32,"dataHash")]),"data")],"compressedAccount"),Ut.u8("merkleTreeIndex")]),"outputCompressedAccounts"),Ut.vec(Ut.u32(),"outputLeafIndices"),Ut.vec(Ut.struct([Ut.publicKey("pubkey"),Ut.u64("seq")]),"sequenceNumbers"),Ut.option(Ut.u64(),"relayFee"),Ut.bool("isCompress"),Ut.option(Ut.u64(),"compressOrDecompressLamports"),Ut.vec(Ut.publicKey(),"pubkeyArray"),Ut.option(Ut.vecU8(),"message")]);function Sr(e){return Ir.decode(e)}const Tr=e=>e.reduce(((e,t)=>e.add(Pe(t.lamports))),Pe(0)),Pr=g.from("sol_pool_pda");class _r{constructor(){}static deriveCompressedSolPda(){const t=[Pr],[r,n]=e.PublicKey.findProgramAddressSync(t,this.programId);return r}static createTransferOutputState(e,t,r){r=Pe(r);const n=Tr(e).sub(r);return gt(n),n.eq(Pe(0))?[Ce(t,r)]:(yt(e),[Ce(e[0].owner,n),Ce(t,r)])}static createDecompressOutputState(e,t){t=Pe(t);const r=Tr(e).sub(t);return gt(r),r.eq(Pe(0))?[]:(yt(e),[Ce(e[0].owner,r)])}static createNewAddressOutputState(e,t,r,n){r=Pe(null!=r?r:0);const o=Tr(null!=n?n:[]).sub(r);return gt(o),o.eq(Pe(0))||!n?[Ce(t,r,void 0,e)]:(yt(n),[Ce(n[0].owner,o),Ce(t,r,void 0,e)])}static async createAccount({payer:t,newAddressParams:r,newAddress:n,recentValidityProof:o,outputStateTree:s,inputCompressedAccounts:i,inputStateRootIndices:a,lamports:u}){const l=this.createNewAddressOutputState(n,t,u,i),{packedInputCompressedAccounts:c,packedOutputCompressedAccounts:h,remainingAccounts:d}=mt(null!=i?i:[],null!=a?a:[],l,s),{newAddressParamsPacked:p,remainingAccounts:f}=Et([r],d),m=xr({proof:o,inputCompressedAccountsWithMerkleContext:c,outputCompressedAccounts:h,relayFee:null,newAddressParams:p,compressOrDecompressLamports:null,isCompress:0}),g=[...Ar(Object.assign(Object.assign({},me()),{feePayer:t,authority:t,solPoolPda:null,decompressionRecipient:null,systemProgram:e.SystemProgram.programId})),...ft(f)];return new e.TransactionInstruction({programId:this.programId,keys:g,data:m})}static async transfer({payer:t,inputCompressedAccounts:r,toAddress:n,lamports:o,recentInputStateRootIndices:s,recentValidityProof:i,outputStateTrees:a}){const u=this.createTransferOutputState(r,n,o),{packedInputCompressedAccounts:l,packedOutputCompressedAccounts:c,remainingAccounts:h}=mt(r,s,u,a),d=xr({proof:i,inputCompressedAccountsWithMerkleContext:l,outputCompressedAccounts:c,relayFee:null,newAddressParams:[],compressOrDecompressLamports:null,isCompress:0}),p=[...Ar(Object.assign(Object.assign({},me()),{feePayer:t,authority:t,solPoolPda:null,decompressionRecipient:null,systemProgram:e.SystemProgram.programId})),...ft(h)];return new e.TransactionInstruction({programId:this.programId,keys:p,data:d})}static async compress({payer:t,toAddress:r,lamports:n,outputStateTree:o}){n=Pe(n);const s=Ce(r,n),{packedInputCompressedAccounts:i,packedOutputCompressedAccounts:a,remainingAccounts:u}=mt([],[],[s],o),l=xr({proof:null,inputCompressedAccountsWithMerkleContext:i,outputCompressedAccounts:a,relayFee:null,newAddressParams:[],compressOrDecompressLamports:n,isCompress:1}),c=[...Ar(Object.assign(Object.assign({},me()),{feePayer:t,authority:t,solPoolPda:this.deriveCompressedSolPda(),decompressionRecipient:null,systemProgram:e.SystemProgram.programId})),...ft(u)];return new e.TransactionInstruction({programId:this.programId,keys:c,data:l})}static async decompress({payer:t,inputCompressedAccounts:r,toAddress:n,lamports:o,recentInputStateRootIndices:s,recentValidityProof:i,outputStateTree:a}){o=Pe(o);const u=this.createDecompressOutputState(r,o),{packedInputCompressedAccounts:l,packedOutputCompressedAccounts:c,remainingAccounts:h}=mt(r,s,u,a),d=xr({proof:i,inputCompressedAccountsWithMerkleContext:l,outputCompressedAccounts:c,relayFee:null,newAddressParams:[],compressOrDecompressLamports:o,isCompress:0}),p=[...Ar(Object.assign(Object.assign({},me()),{feePayer:t,authority:t,solPoolPda:this.deriveCompressedSolPda(),decompressionRecipient:n,systemProgram:e.SystemProgram.programId})),...ft(h)];return new e.TransactionInstruction({programId:this.programId,keys:p,data:d})}}function kr(e,t){let r=Pe(0);t=Pe(t);const n=[];e.sort(((e,t)=>t.lamports.cmp(e.lamports)));for(const o of e){if(r.gte(Pe(t)))break;r=r.add(o.lamports),n.push(o)}if(r.lt(Pe(t)))throw new Error(`Not enough balance for transfer. Required: ${t.toString()}, available: ${r.toString()}`);return[n,r]}var Cr,Or,Rr,Nr,Lr,Br,Ur,Dr;_r.programId=new e.PublicKey("SySTEM1eSU2p4BGQfQpimFEWWSC1XDFeun3Nqzz3rT7"),exports.UtxoErrorCode=void 0,(Cr=exports.UtxoErrorCode||(exports.UtxoErrorCode={})).NEGATIVE_LAMPORTS="NEGATIVE_LAMPORTS",Cr.NOT_U64="NOT_U64",Cr.BLINDING_EXCEEDS_FIELD_SIZE="BLINDING_EXCEEDS_FIELD_SIZE",exports.SelectInUtxosErrorCode=void 0,(Or=exports.SelectInUtxosErrorCode||(exports.SelectInUtxosErrorCode={})).FAILED_TO_FIND_UTXO_COMBINATION="FAILED_TO_FIND_UTXO_COMBINATION",Or.INVALID_NUMBER_OF_IN_UTXOS="INVALID_NUMBER_OF_IN_UTXOS",exports.CreateUtxoErrorCode=void 0,(Rr=exports.CreateUtxoErrorCode||(exports.CreateUtxoErrorCode={})).OWNER_UNDEFINED="OWNER_UNDEFINED",Rr.INVALID_OUTPUT_UTXO_LENGTH="INVALID_OUTPUT_UTXO_LENGTH",Rr.UTXO_DATA_UNDEFINED="UTXO_DATA_UNDEFINED",exports.RpcErrorCode=void 0,(Nr=exports.RpcErrorCode||(exports.RpcErrorCode={})).CONNECTION_UNDEFINED="CONNECTION_UNDEFINED",Nr.RPC_PUBKEY_UNDEFINED="RPC_PUBKEY_UNDEFINED",Nr.RPC_METHOD_NOT_IMPLEMENTED="RPC_METHOD_NOT_IMPLEMENTED",Nr.RPC_INVALID="RPC_INVALID",exports.LookupTableErrorCode=void 0,(Lr=exports.LookupTableErrorCode||(exports.LookupTableErrorCode={})).LOOK_UP_TABLE_UNDEFINED="LOOK_UP_TABLE_UNDEFINED",Lr.LOOK_UP_TABLE_NOT_INITIALIZED="LOOK_UP_TABLE_NOT_INITIALIZED",exports.HashErrorCode=void 0,(exports.HashErrorCode||(exports.HashErrorCode={})).NO_POSEIDON_HASHER_PROVIDED="NO_POSEIDON_HASHER_PROVIDED",exports.ProofErrorCode=void 0,(Br=exports.ProofErrorCode||(exports.ProofErrorCode={})).INVALID_PROOF="INVALID_PROOF",Br.PROOF_INPUT_UNDEFINED="PROOF_INPUT_UNDEFINED",Br.PROOF_GENERATION_FAILED="PROOF_GENERATION_FAILED",exports.MerkleTreeErrorCode=void 0,(Ur=exports.MerkleTreeErrorCode||(exports.MerkleTreeErrorCode={})).MERKLE_TREE_NOT_INITIALIZED="MERKLE_TREE_NOT_INITIALIZED",Ur.SOL_MERKLE_TREE_UNDEFINED="SOL_MERKLE_TREE_UNDEFINED",Ur.MERKLE_TREE_UNDEFINED="MERKLE_TREE_UNDEFINED",Ur.INPUT_UTXO_NOT_INSERTED_IN_MERKLE_TREE="INPUT_UTXO_NOT_INSERTED_IN_MERKLE_TREE",Ur.MERKLE_TREE_INDEX_UNDEFINED="MERKLE_TREE_INDEX_UNDEFINED",Ur.MERKLE_TREE_SET_SPACE_UNDEFINED="MERKLE_TREE_SET_SPACE_UNDEFINED",exports.UtilsErrorCode=void 0,(Dr=exports.UtilsErrorCode||(exports.UtilsErrorCode={})).ACCOUNT_NAME_UNDEFINED_IN_IDL="ACCOUNT_NAME_UNDEFINED_IN_IDL",Dr.PROPERTY_UNDEFINED="PROPERTY_UNDEFINED",Dr.LOOK_UP_TABLE_CREATION_FAILED="LOOK_UP_TABLE_CREATION_FAILED",Dr.UNSUPPORTED_ARCHITECTURE="UNSUPPORTED_ARCHITECTURE",Dr.UNSUPPORTED_PLATFORM="UNSUPPORTED_PLATFORM",Dr.ACCOUNTS_UNDEFINED="ACCOUNTS_UNDEFINED",Dr.INVALID_NUMBER="INVALID_NUMBER";class Fr extends Error{constructor(e,t,r){super(`${e}: ${r}`),this.code=e,this.functionName=t,this.codeMessage=r}}class Vr extends TypeError{constructor(e,t){let r;const{message:n,explanation:o,...s}=e,{path:i}=e,a=0===i.length?n:`At path: ${i.join(".")} -- ${n}`;super(o??a),null!=o&&(this.cause=a),Object.assign(this,s),this.name=this.constructor.name,this.failures=()=>r??(r=[e,...t()])}}function qr(e){return"object"==typeof e&&null!=e}function Hr(e){return qr(e)&&!Array.isArray(e)}function Kr(e){return"symbol"==typeof e?e.toString():"string"==typeof e?JSON.stringify(e):`${e}`}function jr(e,t,r,n){if(1==e)return;0==e?e={}:"string"==typeof e&&(e={message:e});const{path:o,branch:s}=t,{type:i}=r,{refinement:a,message:u=`Expected a value of type \`${i}\`${a?` with refinement \`${a}\``:""}, but received: \`${Kr(n)}\``}=e;return{value:n,type:i,refinement:a,key:o[o.length-1],path:o,branch:s,...e,message:u}}function*Wr(e,t,r,n){var o;qr(o=e)&&"function"==typeof o[Symbol.iterator]||(e=[e]);for(const o of e){const e=jr(o,t,r,n);e&&(yield e)}}function*Qr(e,t,r={}){const{path:n=[],branch:o=[e],coerce:s=0,mask:i=0}=r,a={path:n,branch:o,mask:i};s&&(e=t.coercer(e,a));let u="valid";for(const n of t.validator(e,a))n.explanation=r.message,u="not_valid",yield[n,void 0];for(let[l,c,h]of t.entries(e,a)){const t=Qr(c,h,{path:void 0===l?n:[...n,l],branch:void 0===l?o:[...o,c],coerce:s,mask:i,message:r.message});for(const r of t)r[0]?(u=null!=r[0].refinement?"not_refined":"not_valid",yield[r[0],void 0]):s&&(c=r[1],void 0===l?e=c:e instanceof Map?e.set(l,c):e instanceof Set?e.add(c):qr(e)&&(void 0!==c||l in e)&&(e[l]=c))}if("not_valid"!==u)for(const n of t.refiner(e,a))n.explanation=r.message,u="not_refined",yield[n,void 0];"valid"===u&&(yield[void 0,e])}class $r{constructor(e){const{type:t,schema:r,validator:n,refiner:o,coercer:s=(e=>e),entries:i=function*(){}}=e;this.type=t,this.schema=r,this.entries=i,this.coercer=s,this.validator=n?(e,t)=>Wr(n(e,t),t,this,e):()=>[],this.refiner=o?(e,t)=>Wr(o(e,t),t,this,e):()=>[]}assert(e,t){return function(e,t,r){const n=Zr(e,t,{message:r});if(n[0])throw n[0]}(e,this,t)}create(e,t){return zr(e,this,t)}is(e){return Yr(e,this)}mask(e,t){return function(e,t,r){const n=Zr(e,t,{coerce:1,mask:1,message:r});if(n[0])throw n[0];return n[1]}(e,this,t)}validate(e,t={}){return Zr(e,this,t)}}function zr(e,t,r){const n=Zr(e,t,{coerce:1,message:r});if(n[0])throw n[0];return n[1]}function Yr(e,t){return!Zr(e,t)[0]}function Zr(e,t,r={}){const n=Qr(e,t,r),o=function(e){const{done:t,value:r}=e.next();return t?void 0:r}(n);return o[0]?[new Vr(o[0],(function*(){for(const e of n)e[0]&&(yield e[0])})),void 0]:[void 0,o[1]]}function Jr(e,t){return new $r({type:e,schema:null,validator:t})}function Xr(){return Jr("any",(()=>1))}function Gr(e){return new $r({type:"array",schema:e,*entries(t){if(e&&Array.isArray(t))for(const[r,n]of t.entries())yield[r,n,e]},coercer:e=>Array.isArray(e)?e.slice():e,validator:e=>Array.isArray(e)||`Expected an array value, but received: ${Kr(e)}`})}function en(e){return Jr("instance",(t=>t instanceof e||`Expected a \`${e.name}\` instance, but received: ${Kr(t)}`))}function tn(e){const t=Kr(e);return new $r({type:"literal",schema:e,validator:r=>r===e||`Expected the literal \`${t}\`, but received: ${Kr(r)}`})}function rn(e){return new $r({...e,validator:(t,r)=>null===t||e.validator(t,r),refiner:(t,r)=>null===t||e.refiner(t,r)})}function nn(){return Jr("number",(e=>"number"==typeof e&&!isNaN(e)||`Expected a number, but received: ${Kr(e)}`))}function on(){return Jr("string",(e=>"string"==typeof e||`Expected a string, but received: ${Kr(e)}`))}function sn(e){const t=Object.keys(e);return new $r({type:"type",schema:e,*entries(r){if(qr(r))for(const n of t)yield[n,r[n],e[n]]},validator:e=>Hr(e)||`Expected an object, but received: ${Kr(e)}`,coercer:e=>Hr(e)?{...e}:e})}function an(){return Jr("unknown",(()=>1))}function un(e,t,r){return new $r({...e,coercer:(n,o)=>Yr(n,t)?e.coercer(r(n,o),o):e.coercer(n,o)})}const ln=un(en(e.PublicKey),on(),(t=>new e.PublicKey(t))),cn=un(en(Array),on(),(t=>Array.from(new e.PublicKey(t).toBytes()))),hn=un(en(ie),on(),(e=>_e(e,"base58"))),dn=un(en(ie),nn(),(e=>Number.isSafeInteger(e)?Pe(e):Pe(e.toString(),10))),pn=un(on(),on(),(e=>""===e?null:e));function fn(e){return function(e){const t=e.map((e=>e.type)).join(" | ");return new $r({type:"union",schema:null,coercer(t,r){for(const n of e){const[e,o]=n.validate(t,{coerce:1,mask:r.mask});if(!e)return o}return t},validator(r,n){const o=[];for(const t of e){const[...e]=Qr(r,t,n),[s]=e;if(!s[0])return[];for(const[t]of e)t&&o.push(t)}return[`Expected the value to satisfy a union of \`${t}\`, but received: ${Kr(r)}`,...o]}})}([sn({jsonrpc:tn("2.0"),id:on(),result:e}),sn({jsonrpc:tn("2.0"),id:on(),error:sn({code:an(),message:on(),data:rn(Xr())})})])}const mn=fn(an());function gn(e){return un(fn(e),mn,(t=>"error"in t?t:Object.assign(Object.assign({},t),{result:zr(t.result,e)})))}function yn(e){return gn(sn({context:sn({slot:nn()}),value:e}))}const wn=sn({address:rn(cn),hash:hn,data:rn(sn({data:pn,dataHash:hn,discriminator:dn})),lamports:dn,owner:ln,leafIndex:nn(),tree:ln,seq:rn(dn),slotCreated:dn}),vn=sn({mint:ln,owner:ln,amount:dn,delegate:rn(ln),state:on()}),En=sn({tokenData:vn,account:wn}),bn=sn({items:Gr(wn)}),Mn=sn({items:Gr(wn),cursor:rn(on())}),xn=sn({items:Gr(En),cursor:rn(on())}),An=nn(),In=on(),Sn=sn({items:Gr(sn({signature:on(),slot:nn(),blockTime:nn(),error:rn(on())}))}),Tn=sn({items:Gr(sn({signature:on(),slot:nn(),blockTime:nn()})),cursor:rn(on())}),Pn=sn({hash:hn,leafIndex:nn(),merkleTree:ln,proof:Gr(hn),rootSeq:nn(),root:hn}),_n=sn({address:hn,nextIndex:nn(),merkleTree:ln,proof:Gr(hn),rootSeq:nn(),root:hn,lowerRangeAddress:hn,higherRangeAddress:hn,lowElementLeafIndex:nn()}),kn=sn({a:Gr(nn()),b:Gr(nn()),c:Gr(nn())}),Cn=sn({compressedProof:kn,leafIndices:Gr(nn()),leaves:Gr(hn),rootIndices:Gr(nn()),roots:Gr(hn),merkleTrees:Gr(ln)}),On=Gr(Pn),Rn=sn({amount:dn}),Nn=dn,Ln=sn({balance:dn,mint:ln}),Bn=sn({tokenBalances:Gr(Ln),cursor:rn(on())}),Un=sn({items:Gr(Ln),cursor:rn(on())}),Dn=sn({cursor:rn(on()),items:Gr(sn({balance:dn,owner:ln}))}),Fn=sn({hash:Gr(nn()),root:Gr(nn()),proof:Gr(Gr(nn()))}),Vn=sn({items:Gr(sn({blockTime:nn(),signature:on(),slot:nn()}))}),qn=sn({items:Gr(sn({blockTime:nn(),signature:on(),slot:nn()})),cursor:rn(on())}),Hn=sn({compressionInfo:sn({closedAccounts:Gr(sn({account:wn,optionalTokenData:rn(vn)})),openedAccounts:Gr(sn({account:wn,optionalTokenData:rn(vn)}))}),transaction:Xr()});function Kn({discriminator:e,data:t,dataHash:r}){return{discriminator:e.toArray("le",8),data:g.from(t,"base64"),dataHash:r.toArray("le",32)}}async function jn(t,r,n,o=0){var s,i;const a=o?"getCompressedTokenAccountsByDelegate":"getCompressedTokenAccountsByOwner",u=o?"delegate":"owner",l=zr(await Qn(t.compressionApiEndpoint,a,{[u]:r.toBase58(),mint:null===(s=n.mint)||void 0===s?void 0:s.toBase58(),limit:null===(i=n.limit)||void 0===i?void 0:i.toNumber(),cursor:n.cursor}),yn(xn));if("error"in l)throw new e.SolanaJSONRPCError(l.error,`failed to get info for compressed accounts by ${u} ${r.toBase58()}`);if(null===l.result.value)throw new Error("not implemented: NULL result");const c=[];return l.result.value.items.map((e=>{var t;const n=e.account,o=e.tokenData,s=Oe(Re(n.tree,Jn,n.hash.toArray("be",32),n.leafIndex),n.owner,Pe(n.lamports),n.data?Kn(n.data):void 0,n.address||void 0),i={mint:o.mint,owner:o.owner,amount:o.amount,delegate:o.delegate,state:["uninitialized","initialized","frozen"].indexOf(o.state),tlv:null};if((null===(t=i[u])||void 0===t?void 0:t.toBase58())!==r.toBase58())throw new Error(`RPC returned token account with ${u} different from requested ${u}`);c.push({compressedAccount:s,parsed:i})})),{items:c.sort(((e,t)=>t.compressedAccount.leafIndex-e.compressedAccount.leafIndex)),cursor:l.result.value.cursor}}function Wn(e){const t=e.account,r=e.optionalTokenData,n=Oe(Re(t.merkleTree,Jn,t.hash.toArray("be",32),t.leafIndex),t.owner,Pe(t.lamports),t.data?Kn(t.data):void 0,t.address||void 0);return null===r?{account:n,maybeTokenData:null}:{account:n,maybeTokenData:{mint:r.mint,owner:r.owner,amount:r.amount,delegate:r.delegate,state:["uninitialized","initialized","frozen"].indexOf(r.state),tlv:null}}}const Qn=async(e,t,r=[],n=1)=>{const o=JSON.stringify({jsonrpc:"2.0",id:"test-account",method:t,params:r}),s=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:o});if(!s.ok)throw new Error(`HTTP error! status: ${s.status}`);return n?ht(await s.json()):await s.json()},$n=async(e,t,r=[])=>{let n;"inclusion"===t?n=JSON.stringify({circuitType:"inclusion",stateTreeHeight:26,inputCompressedAccounts:r}):"new-address"===t?n=JSON.stringify({circuitType:"non-inclusion",addressTreeHeight:26,newAddresses:r}):"combined"===t&&(n=JSON.stringify({circuitType:"combined",stateTreeHeight:26,addressTreeHeight:26,inputCompressedAccounts:r[0],newAddresses:r[1]}));const o=await fetch(`${e}/prove`,{method:"POST",headers:{"Content-Type":"application/json"},body:n});if(!o.ok)throw new Error(`Error fetching proof: ${o.statusText}`);return xt(Mt(await o.json()))};function zn(e){const t=[];for(let r=0;r<e.length;r++){const n={root:it(e[r].root),pathIndex:e[r].leafIndex,pathElements:e[r].merkleProof.map((e=>it(e))),leaf:it(Pe(e[r].hash))};t.push(n)}return t}function Yn(e){const t=[];for(let r=0;r<e.length;r++){const n={root:it(e[r].root),value:it(e[r].value),pathIndex:e[r].indexHashedIndexedElementLeaf.toNumber(),pathElements:e[r].merkleProofHashedIndexedElementLeaf.map((e=>it(e))),nextIndex:e[r].nextIndex.toNumber(),leafLowerRangeValue:it(e[r].leafLowerRangeValue),leafHigherRangeValue:it(e[r].leafHigherRangeValue)};t.push(n)}return t}function Zn(e,t,r){if(e.length!==t.length)throw new Error("Input lengths must match.");if(0===e.length)return new ie(0);let n=r.poseidonHashBN([e[0].toString(),t[0].toString()]);for(let o=1;o<e.length;o++)n=r.poseidonHashBN([n.toString(),e[o].toString(),t[o].toString()]);return n}const Jn=ge().nullifierQueue,Xn=ge().addressQueue;class Gn extends e.Connection{constructor(e,t,r,n){super(e,n||"confirmed"),this.compressionApiEndpoint=t,this.proverEndpoint=r}async getCompressedAccount(t,r){if(!r&&!t)throw new Error("Either hash or address must be provided");if(r&&t)throw new Error("Only one of hash or address must be provided");const n=zr(await Qn(this.compressionApiEndpoint,"getCompressedAccount",{hash:r?ke(r):void 0,address:t?ke(t):void 0}),yn(rn(wn)));if("error"in n)throw new e.SolanaJSONRPCError(n.error,`failed to get info for compressed account ${r?r.toString():t?t.toString():""}`);if(null===n.result.value)return null;const o=n.result.value;return Oe(Re(o.tree,Jn,o.hash.toArray("be",32),o.leafIndex),o.owner,Pe(o.lamports),o.data?Kn(o.data):void 0,o.address||void 0)}async getCompressedBalance(t,r){if(!r&&!t)throw new Error("Either hash or address must be provided");if(r&&t)throw new Error("Only one of hash or address must be provided");const n=zr(await Qn(this.compressionApiEndpoint,"getCompressedBalance",{hash:r?ke(r):void 0,address:t?ke(t):void 0}),yn(Nn));if("error"in n)throw new e.SolanaJSONRPCError(n.error,`failed to get balance for compressed account ${r?r.toString():t?t.toString():""}`);return null===n.result.value?Pe(0):Pe(n.result.value)}async getCompressedBalanceByOwner(t){const r=zr(await Qn(this.compressionApiEndpoint,"getCompressedBalanceByOwner",{owner:t.toBase58()}),yn(Nn));if("error"in r)throw new e.SolanaJSONRPCError(r.error,`failed to get balance for compressed account ${t.toBase58()}`);return null===r.result.value?Pe(0):Pe(r.result.value)}async getCompressedAccountProof(t){const r=zr(await Qn(this.compressionApiEndpoint,"getCompressedAccountProof",{hash:ke(t)}),yn(Pn));if("error"in r)throw new e.SolanaJSONRPCError(r.error,`failed to get proof for compressed account ${t.toString()}`);if(null===r.result.value)throw new Error(`failed to get proof for compressed account ${t.toString()}`);return{hash:r.result.value.hash.toArray("be",32),merkleTree:r.result.value.merkleTree,leafIndex:r.result.value.leafIndex,merkleProof:r.result.value.proof,nullifierQueue:Jn,rootIndex:r.result.value.rootSeq%2400,root:r.result.value.root}}async getMultipleCompressedAccounts(t){const r=zr(await Qn(this.compressionApiEndpoint,"getMultipleCompressedAccounts",{hashes:t.map((e=>ke(e)))}),yn(bn));if("error"in r)throw new e.SolanaJSONRPCError(r.error,`failed to get info for compressed accounts ${t.map((e=>ke(e))).join(", ")}`);if(null===r.result.value)throw new Error(`failed to get info for compressed accounts ${t.map((e=>ke(e))).join(", ")}`);const n=[];return r.result.value.items.map((e=>{const t=Oe(Re(e.tree,Jn,e.hash.toArray("be",32),e.leafIndex),e.owner,Pe(e.lamports),e.data?Kn(e.data):void 0,e.address||void 0);n.push(t)})),n.sort(((e,t)=>t.leafIndex-e.leafIndex))}async getMultipleCompressedAccountProofs(t){const r=zr(await Qn(this.compressionApiEndpoint,"getMultipleCompressedAccountProofs",t.map((e=>ke(e)))),yn(Gr(Pn)));if("error"in r)throw new e.SolanaJSONRPCError(r.error,`failed to get proofs for compressed accounts ${t.map((e=>ke(e))).join(", ")}`);if(null===r.result.value)throw new Error(`failed to get proofs for compressed accounts ${t.map((e=>ke(e))).join(", ")}`);const n=[];for(const e of r.result.value){const t={hash:e.hash.toArray("be",32),merkleTree:e.merkleTree,leafIndex:e.leafIndex,merkleProof:e.proof,nullifierQueue:Xn,rootIndex:e.rootSeq%2400,root:e.root};n.push(t)}return n}async getCompressedAccountsByOwner(t,r){var n;const o=zr(await Qn(this.compressionApiEndpoint,"getCompressedAccountsByOwner",{owner:t.toBase58(),filters:(null==r?void 0:r.filters)||[],dataSlice:null==r?void 0:r.dataSlice,cursor:null==r?void 0:r.cursor,limit:null===(n=null==r?void 0:r.limit)||void 0===n?void 0:n.toNumber()}),yn(Mn));if("error"in o)throw new e.SolanaJSONRPCError(o.error,`failed to get info for compressed accounts owned by ${t.toBase58()}`);if(null===o.result.value)return{items:[],cursor:null};const s=[];return o.result.value.items.map((e=>{const t=Oe(Re(e.tree,Jn,e.hash.toArray("be",32),e.leafIndex),e.owner,Pe(e.lamports),e.data?Kn(e.data):void 0,e.address||void 0);s.push(t)})),{items:s.sort(((e,t)=>t.leafIndex-e.leafIndex)),cursor:o.result.value.cursor}}async getCompressedTokenAccountsByOwner(e,t){return t||(t={}),await jn(this,e,t,0)}async getCompressedTokenAccountsByDelegate(e,t){return t||(t={}),jn(this,e,t,1)}async getCompressedTokenAccountBalance(t){const r=zr(await Qn(this.compressionApiEndpoint,"getCompressedTokenAccountBalance",{hash:ke(t)}),yn(Rn));if("error"in r)throw new e.SolanaJSONRPCError(r.error,`failed to get balance for compressed token account ${t.toString()}`);if(null===r.result.value)throw new Error(`failed to get balance for compressed token account ${t.toString()}`);return{amount:Pe(r.result.value.amount)}}async getCompressedTokenBalancesByOwner(t,r){var n,o;r||(r={});const s=zr(await Qn(this.compressionApiEndpoint,"getCompressedTokenBalancesByOwner",{owner:t.toBase58(),mint:null===(n=r.mint)||void 0===n?void 0:n.toBase58(),limit:null===(o=r.limit)||void 0===o?void 0:o.toNumber(),cursor:r.cursor}),yn(Bn));if("error"in s)throw new e.SolanaJSONRPCError(s.error,`failed to get compressed token balances for owner ${t.toBase58()}`);if(null===s.result.value)throw new Error(`failed to get compressed token balances for owner ${t.toBase58()}`);return{items:r.mint?s.result.value.tokenBalances.filter((e=>e.mint.toBase58()===r.mint.toBase58())):s.result.value.tokenBalances,cursor:s.result.value.cursor}}async getCompressedTokenBalancesByOwnerV2(t,r){var n,o;r||(r={});const s=zr(await Qn(this.compressionApiEndpoint,"getCompressedTokenBalancesByOwnerV2",{owner:t.toBase58(),mint:null===(n=r.mint)||void 0===n?void 0:n.toBase58(),limit:null===(o=r.limit)||void 0===o?void 0:o.toNumber(),cursor:r.cursor}),yn(Un));if("error"in s)throw new e.SolanaJSONRPCError(s.error,`failed to get compressed token balances for owner ${t.toBase58()}`);if(null===s.result.value)throw new Error(`failed to get compressed token balances for owner ${t.toBase58()}`);const i=r.mint?s.result.value.items.filter((e=>e.mint.toBase58()===r.mint.toBase58())):s.result.value.items;return{context:s.result.context,value:{items:i,cursor:s.result.value.cursor}}}async getCompressionSignaturesForAccount(t){const r=zr(await Qn(this.compressionApiEndpoint,"getCompressionSignaturesForAccount",{hash:ke(t)}),yn(Vn));if("error"in r)throw new e.SolanaJSONRPCError(r.error,`failed to get signatures for compressed account ${t.toString()}`);return r.result.value.items}async getTransactionWithCompressionInfo(t){const r=zr(await Qn(this.compressionApiEndpoint,"getTransactionWithCompressionInfo",{signature:t}),gn(Hn));if("error"in r)throw new e.SolanaJSONRPCError(r.error,"failed to get slot");if(null===r.result.transaction)return null;const n=[],o=[];r.result.compressionInfo.closedAccounts.map((e=>{n.push(Wn(e))})),r.result.compressionInfo.openedAccounts.map((e=>{o.push(Wn(e))}));const s=e=>{const t=Object.values(e.reduce(((e,{maybeTokenData:t})=>{if(t){const{owner:r,mint:n,amount:o}=t,s=`${r.toBase58()}_${n.toBase58()}`;s in e?e[s].amount=e[s].amount.add(o):e[s]={owner:r,mint:n,amount:o}}return e}),{}));return t.length>0?t:void 0},i=s(n),a=s(o);return{compressionInfo:{closedAccounts:n,openedAccounts:o,preTokenBalances:i,postTokenBalances:a},transaction:r.result.transaction}}async getCompressionSignaturesForAddress(t,r){var n;const o=zr(await Qn(this.compressionApiEndpoint,"getCompressionSignaturesForAddress",{address:t.toBase58(),cursor:null==r?void 0:r.cursor,limit:null===(n=null==r?void 0:r.limit)||void 0===n?void 0:n.toNumber()}),yn(qn));if("error"in o)throw new e.SolanaJSONRPCError(o.error,`failed to get signatures for address ${t.toBase58()}`);if(null===o.result.value)throw new Error(`failed to get signatures for address ${t.toBase58()}`);return o.result.value}async getCompressionSignaturesForOwner(t,r){var n;const o=zr(await Qn(this.compressionApiEndpoint,"getCompressionSignaturesForOwner",{owner:t.toBase58(),cursor:null==r?void 0:r.cursor,limit:null===(n=null==r?void 0:r.limit)||void 0===n?void 0:n.toNumber()}),yn(qn));if("error"in o)throw new e.SolanaJSONRPCError(o.error,`failed to get signatures for owner ${t.toBase58()}`);if(null===o.result.value)throw new Error(`failed to get signatures for owner ${t.toBase58()}`);return o.result.value}async getCompressionSignaturesForTokenOwner(t,r){var n;const o=zr(await Qn(this.compressionApiEndpoint,"getCompressionSignaturesForTokenOwner",{owner:t.toBase58(),cursor:null==r?void 0:r.cursor,limit:null===(n=null==r?void 0:r.limit)||void 0===n?void 0:n.toNumber()}),yn(qn));if("error"in o)throw new e.SolanaJSONRPCError(o.error,`failed to get signatures for owner ${t.toBase58()}`);if(null===o.result.value)throw new Error(`failed to get signatures for owner ${t.toBase58()}`);return o.result.value}async getIndexerHealth(){const t=zr(await Qn(this.compressionApiEndpoint,"getIndexerHealth"),gn(In));if("error"in t)throw new e.SolanaJSONRPCError(t.error,"failed to get health");return t.result}async confirmTransactionIndexed(e){const t=Date.now();for(;;){if(await this.getIndexerSlot()>=e)return 1;if(Date.now()-t>2e4)throw new Error("Timeout: Indexer slot did not reach the required slot within 20 seconds");await new Promise((e=>setTimeout(e,200)))}}async getIndexerSlot(){const t=zr(await Qn(this.compressionApiEndpoint,"getIndexerSlot"),gn(An));if("error"in t)throw new e.SolanaJSONRPCError(t.error,"failed to get slot");return t.result}async getCompressedMintTokenHolders(t,r){var n;const o=zr(await Qn(this.compressionApiEndpoint,"getCompressedMintTokenHolders",{mint:t.toBase58(),cursor:null==r?void 0:r.cursor,limit:null===(n=null==r?void 0:r.limit)||void 0===n?void 0:n.toNumber()}),yn(Dn));if("error"in o)throw new e.SolanaJSONRPCError(o.error,"failed to get mint token holders");return o.result}async getLatestCompressionSignatures(t,r){const n=zr(await Qn(this.compressionApiEndpoint,"getLatestCompressionSignatures",{limit:r,cursor:t}),yn(Tn));if("error"in n)throw new e.SolanaJSONRPCError(n.error,"failed to get latest non-voting signatures");return n.result}async getLatestNonVotingSignatures(t,r){const n=zr(await Qn(this.compressionApiEndpoint,"getLatestNonVotingSignatures",{limit:t,cursor:r}),yn(Sn));if("error"in n)throw new e.SolanaJSONRPCError(n.error,"failed to get latest non-voting signatures");return n.result}async getMultipleNewAddressProofs(t){const r=zr(await Qn(this.compressionApiEndpoint,"getMultipleNewAddressProofs",t.map((e=>ke(e)))),yn(Gr(_n)));if("error"in r)throw new e.SolanaJSONRPCError(r.error,`failed to get proofs for new addresses ${t.map((e=>ke(e))).join(", ")}`);if(null===r.result.value)throw new Error(`failed to get proofs for new addresses ${t.map((e=>ke(e))).join(", ")}`);const n=[];for(const e of r.result.value){const t={root:e.root,rootIndex:e.rootSeq%2400,value:e.address,leafLowerRangeValue:e.lowerRangeAddress,leafHigherRangeValue:e.higherRangeAddress,nextIndex:Pe(e.nextIndex),merkleProofHashedIndexedElementLeaf:e.proof,indexHashedIndexedElementLeaf:Pe(e.lowElementLeafIndex),merkleTree:e.merkleTree,nullifierQueue:Xn};n.push(t)}return n}async getValidityProofDirect(e=[],t=[]){let r;if(0===e.length&&0===t.length)throw new Error("Empty input. Provide hashes and/or new addresses.");if(e.length>0&&0===t.length){const t=await this.getMultipleCompressedAccountProofs(e),n=zn(t);r={compressedProof:await $n(this.proverEndpoint,"inclusion",n),roots:t.map((e=>e.root)),rootIndices:t.map((e=>e.rootIndex)),leafIndices:t.map((e=>e.leafIndex)),leaves:t.map((e=>Pe(e.hash))),merkleTrees:t.map((e=>e.merkleTree)),nullifierQueues:t.map((e=>e.nullifierQueue))}}else if(0===e.length&&t.length>0){const e=await this.getMultipleNewAddressProofs(t),n=Yn(e);r={compressedProof:await $n(this.proverEndpoint,"new-address",n),roots:e.map((e=>e.root)),rootIndices:e.map((e=>e.rootIndex)),leafIndices:e.map((e=>e.nextIndex.toNumber())),leaves:e.map((e=>Pe(e.value))),merkleTrees:e.map((e=>e.merkleTree)),nullifierQueues:e.map((e=>e.nullifierQueue))}}else{if(!(e.length>0&&t.length>0))throw new Error("Invalid input");{const n=await this.getMultipleCompressedAccountProofs(e),o=zn(n),s=await this.getMultipleNewAddressProofs(t),i=Yn(s);r={compressedProof:await $n(this.proverEndpoint,"combined",[o,i]),roots:n.map((e=>e.root)).concat(s.map((e=>e.root))),rootIndices:n.map((e=>e.rootIndex)).concat(s.map((e=>e.rootIndex))),leafIndices:n.map((e=>e.leafIndex)).concat(s.map((e=>e.nextIndex.toNumber()))),leaves:n.map((e=>Pe(e.hash))).concat(s.map((e=>Pe(e.value)))),merkleTrees:n.map((e=>e.merkleTree)).concat(s.map((e=>e.merkleTree))),nullifierQueues:n.map((e=>e.nullifierQueue)).concat(s.map((e=>e.nullifierQueue)))}}}return r}async getValidityProof(e=[],t=[]){const r=ge().addressTree,n=ge().addressQueue,o=ge().merkleTree,s=ge().nullifierQueue,i=e.map((e=>({hash:e,tree:o,queue:s}))),a=t.map((e=>({address:e,tree:r,queue:n})));return this.getValidityProofV0(i,a)}async getValidityProofV0(e=[],t=[]){const{value:r}=await this.getValidityProofAndRpcContext(e,t);return r}async getValidityProofAndRpcContext(t=[],r=[]){const n=zr(await Qn(this.compressionApiEndpoint,"getValidityProof",{hashes:t.map((({hash:e})=>ke(e))),newAddressesWithTrees:r.map((({address:e,tree:t})=>({address:ke(e),tree:t.toBase58()})))}),yn(Cn));if("error"in n)throw new e.SolanaJSONRPCError(n.error,`failed to get ValidityProof for compressed accounts ${t.map((e=>e.toString()))}`);const o=n.result.value;if(null===o)throw new Error(`failed to get ValidityProof for compressed accounts ${t.map((e=>e.toString()))}`);return{value:{compressedProof:o.compressedProof,merkleTrees:o.merkleTrees,leafIndices:o.leafIndices,nullifierQueues:[...t.map((({queue:e})=>e)),...r.map((({queue:e})=>e))],rootIndices:o.rootIndices,roots:o.roots,leaves:o.leaves},context:n.result.context}}}class eo{constructor(e,t,r){this.index=e,this.value=t,this.nextIndex=r}equals(e){return this.value.eq(e.value)}compareTo(e){return this.value.cmp(e.value)}hash(e,t){try{return e.poseidonHash([Pe(this.value.toArray("be",32)).toString(),Pe(this.nextIndex).toString(),Pe(t.toArray("be",32)).toString()])}catch(e){throw new Error("Hashing failed")}}}class to{constructor(e,t,r){this.newLowElement=e,this.newElement=t,this.newElementNextValue=r}}class ro{constructor(e,t,r){this.elements=e,this.currentNodeIndex=t,this.highestElementIndex=r}static default(){return new ro([new eo(0,Pe(0),0)],0,0)}get(e){return this.elements[e]}length(){return Number(this.currentNodeIndex)}isEmpty(){return 0===this.currentNodeIndex}findElement(e){return this.elements.slice(0,this.length()+1).find((t=>t.value===e))}init(){try{const e=ue;return this.append(e)}catch(e){throw new Error(`Failed to initialize IndexedArray: ${e}`)}}findLowElementIndex(e){for(let t=0;t<=this.length();t++){const r=this.elements[t];if(this.elements[r.nextIndex].value.gt(e)&&r.value.lt(e))return t;if(r.value.eq(e))throw new Error("Element already exists in the array")}return this.highestElementIndex}findLowElement(e){const t=this.findLowElementIndex(e);if(void 0===t)return[void 0,void 0];const r=this.elements[t];return[r,this.elements[r.nextIndex].value]}hashElement(e,t){const r=this.elements[t];if(!r)return;const n=this.elements[r.nextIndex];return n?e.poseidonHash([Pe(r.value.toArray("be",32)).toString(),Pe(r.nextIndex).toString(),Pe(n.value.toArray("be",32)).toString()]):void 0}append(e){const t=this.findLowElementIndex(e);if(void 0===t)throw new Error("Low element index not found.");return this.appendWithLowElementIndex(t,e)}appendWithLowElementIndex(e,t){const r=this.elements[e];if(0===r.nextIndex){if(t.lte(r.value))throw new Error("New element value must be greater than the low element value.")}else{const e=this.elements[r.nextIndex];if(t.lte(r.value))throw new Error("New element value must be greater than the low element value.");if(t.gte(e.value))throw new Error("New element value must be less than the next element value.")}const n=this.newElementWithLowElementIndex(e,t);return 0===r.nextIndex&&(this.highestElementIndex=n.newElement.index),this.currentNodeIndex=n.newElement.index,this.elements[this.length()]=n.newElement,this.elements[e]=n.newLowElement,n}lowest(){return this.elements.length>0?this.elements[0]:void 0}newElementWithLowElementIndex(e,t){const r=this.elements[e],n=this.currentNodeIndex+1,o=new eo(n,t,r.nextIndex);r.nextIndex=n;const s=this.elements[o.nextIndex].value;return new to(r,o,s)}newElement(e){const t=this.findLowElementIndex(e);if(void 0===t)throw new Error("Low element index not found.");return this.newElementWithLowElementIndex(t,e)}}class no{constructor(e,t,r=[],{zeroElement:n="0"}={}){if(this.levels=e,this.capacity=2**e,this.zeroElement=n,this._lightWasm=t,r.length>this.capacity)throw new Error("Tree is full");this._zeros=[],this._layers=[],this._layers[0]=r,this._zeros[0]=this.zeroElement;for(let t=1;t<=e;t++)this._zeros[t]=this._lightWasm.poseidonHashString([this._zeros[t-1],this._zeros[t-1]]);this._rebuild()}_rebuild(){for(let e=1;e<=this.levels;e++){this._layers[e]=[];for(let t=0;t<Math.ceil(this._layers[e-1].length/2);t++)this._layers[e][t]=this._lightWasm.poseidonHashString([this._layers[e-1][2*t],2*t+1<this._layers[e-1].length?this._layers[e-1][2*t+1]:this._zeros[e-1]])}}root(){return this._layers[this.levels].length>0?this._layers[this.levels][0]:this._zeros[this.levels]}insert(e){if(this._layers[0].length>=this.capacity)throw new Error("Tree is full");this.update(this._layers[0].length,e)}bulkInsert(e){if(this._layers[0].length+e.length>this.capacity)throw new Error("Tree is full");this._layers[0].push(...e),this._rebuild()}update(e,t){if(isNaN(Number(e))||e<0||e>this._layers[0].length||e>=this.capacity)throw new Error("Insert index out of bounds: "+e);this._layers[0][e]=t;for(let t=1;t<=this.levels;t++)e>>=1,this._layers[t][e]=this._lightWasm.poseidonHashString([this._layers[t-1][2*e],2*e+1<this._layers[t-1].length?this._layers[t-1][2*e+1]:this._zeros[t-1]])}path(e){if(isNaN(Number(e))||e<0||e>=this._layers[0].length)throw new Error("Index out of bounds: "+e);const t=[],r=[];for(let n=0;n<this.levels;n++)r[n]=e%2,t[n]=(1^e)<this._layers[n].length?this._layers[n][1^e]:this._zeros[n],e>>=1;return{pathElements:t,pathIndices:r}}indexOf(e,t=null){return t?this._layers[0].findIndex((r=>t(e,r))):this._layers[0].indexOf(e)}elements(){return this._layers[0].slice()}serialize(){return{levels:this.levels,_zeros:this._zeros,_layers:this._layers}}static deserialize(e,t){const r=Object.assign(Object.create(this.prototype),e);return r._hash=t,r.capacity=2**r.levels,r.zeroElement=r._zeros[0],r}}async function oo(e){const{noopProgram:t,accountCompressionProgram:r}=me(),n=(await e.getConfirmedSignaturesForAddress2(r,void 0,"confirmed")).map((e=>e.signature)),o=(await e.getParsedTransactions(n,{maxSupportedTransactionVersion:0,commitment:"confirmed"})).filter((e=>e?e.transaction.message.accountKeys.some((e=>("string"==typeof e?e:e.pubkey.toBase58())===t.toBase58())):0));return so(o,io)}const so=(e,t)=>{const{noopProgram:r}=me(),n=[];return e.forEach((e=>{!e||!e.meta||e.meta.err||!e.meta.innerInstructions||e.meta.innerInstructions.length<=0||e.meta.innerInstructions.forEach((o=>{if(o.instructions.length>0){const s=o.instructions[o.instructions.length-1];if("data"in s&&s.data&&s.programId.toBase58()===r.toBase58()){const r=Te.decode(s.data),o=t(Buffer.from(r),e);null!=o&&n.push(o)}}}))})),n},io=e=>{const t=Buffer.from(e.map((e=>e)));try{return Sr(t)}catch(e){return null}};async function ao(e,t){return(await uo(e)).find((e=>Pe(e.hash).eq(t)))}async function uo(e){var t,r;const n=(await oo(e)).reverse(),o=[],s=[];for(const e of n){for(let n=0;n<e.outputCompressedAccounts.length;n++){const s=e.outputCompressedAccounts[n],i={merkleTree:ge().merkleTree,nullifierQueue:ge().nullifierQueue,hash:e.outputCompressedAccountHashes[n],leafIndex:e.outputLeafIndices[n]},a=Oe(i,s.compressedAccount.owner,s.compressedAccount.lamports,null!==(t=s.compressedAccount.data)&&void 0!==t?t:void 0,null!==(r=s.compressedAccount.address)&&void 0!==r?r:void 0);o.push(a)}for(let t=0;t<e.inputCompressedAccountHashes.length;t++){const r=e.inputCompressedAccountHashes[t];s.push(Pe(r))}}const i=o.filter((e=>!s.some((t=>t.eq(Pe(e.hash))))));return i.sort(((e,t)=>t.leafIndex-e.leafIndex)),i}const lo=new e.PublicKey("cTokenmWW8bLPjZEBAUgYy3zKxQZW6VKi7bqNFEVv3m"),co=Ut.struct([Ut.publicKey("mint"),Ut.publicKey("owner"),Ut.u64("amount"),Ut.option(Ut.publicKey(),"delegate"),Ut.u8("state"),Ut.option(Ut.vecU8(),"tlv")]);function ho(e,t=lo){if(null===e.data)return null;const{data:r}=e.data;if(0===r.length)return null;if(e.owner.toBase58()!==t.toBase58())throw new Error(`Invalid owner ${e.owner.toBase58()} for token layout`);return co.decode(Buffer.from(r))}async function po(e){const t=await Promise.all(e.map((e=>async function(e){const t=e.pubkeyArray,r=e.outputCompressedAccountHashes,n=e.outputCompressedAccounts.map(((n,o)=>{var s;const i={merkleTree:t[e.outputCompressedAccounts[o].merkleTreeIndex],nullifierQueue:ge().nullifierQueue,hash:r[o],leafIndex:e.outputLeafIndices[o]};if(!n.compressedAccount.data)throw new Error("No data");const a=ho(n.compressedAccount);if(!a)throw new Error("Invalid token data");return{compressedAccount:Oe(i,n.compressedAccount.owner,n.compressedAccount.lamports,n.compressedAccount.data,null!==(s=n.compressedAccount.address)&&void 0!==s?s:void 0),parsed:a}}));return{inputCompressedAccountHashes:e.inputCompressedAccountHashes,outputCompressedAccounts:n}}(e)))),r=t.flatMap((e=>e.outputCompressedAccounts)),n=t.flatMap((e=>e.inputCompressedAccountHashes));return r.filter((e=>!n.some((t=>JSON.stringify(t)===JSON.stringify(e.compressedAccount.hash)))))}async function fo(e,t,r){const n=await oo(e);return{items:(await po(n)).filter((e=>e.parsed.owner.equals(t)&&e.parsed.mint.equals(r))).sort(((e,t)=>t.compressedAccount.leafIndex-e.compressedAccount.leafIndex)),cursor:null}}async function mo(e,t,r){const n=await oo(e);return{items:(await po(n)).filter((e=>{var n;return(null===(n=e.parsed.delegate)||void 0===n?void 0:n.equals(t))&&e.parsed.mint.equals(r)})),cursor:null}}async function go(e,t){const r=await oo(e),n=(await po(r)).filter((e=>Pe(e.compressedAccount.hash).eq(t)));if(0===n.length)throw new Error("No compressed account found");return n[0]}class yo extends e.Connection{constructor(e,t,r,n,o,s){super(e,o||"confirmed"),this.log=0,this.compressionApiEndpoint=r,this.proverEndpoint=n;const{merkleTreeAddress:i,nullifierQueueAddress:a,depth:u,log:l,addressTreeAddress:c,addressQueueAddress:h}=null!=s?s:{},{merkleTree:d,nullifierQueue:p,merkleTreeHeight:f,addressQueue:m,addressTree:g}=ge();this.lightWasm=t,this.merkleTreeAddress=null!=i?i:d,this.nullifierQueueAddress=null!=a?a:p,this.addressTreeAddress=null!=c?c:g,this.addressQueueAddress=null!=h?h:m,this.depth=null!=u?u:f,this.log=null!=l?l:0}async getCompressedAccount(e,t){if(e)throw new Error("address is not supported in test-rpc");if(!t)throw new Error("hash is required");const r=await ao(this,t);return null!=r?r:null}async getCompressedBalance(e,t){if(e)throw new Error("address is not supported in test-rpc");if(!t)throw new Error("hash is required");const r=await ao(this,t);if(!r)throw new Error("Account not found");return Pe(r.lamports)}async getCompressedBalanceByOwner(e){return(await this.getCompressedAccountsByOwner(e)).items.reduce(((e,t)=>e.add(t.lamports)),Pe(0))}async getCompressedAccountProof(e){return(await this.getMultipleCompressedAccountProofs([e]))[0]}async getMultipleCompressedAccounts(e){return await async function(e,t){return(await uo(e)).filter((e=>t.some((t=>Pe(e.hash).eq(t))))).sort(((e,t)=>t.leafIndex-e.leafIndex))}(this,e)}async confirmTransactionIndexed(e){return 1}async getMultipleCompressedAccountProofs(e){const t=await oo(this).then((e=>e.reverse())),r=[],n=[];for(const e of t)for(let t=0;t<e.outputCompressedAccounts.length;t++){const o=e.outputCompressedAccountHashes[t];r.push(o),n.push(e.outputLeafIndices[t])}const o=new no(this.depth,this.lightWasm,r.map((e=>Pe(e).toString()))),s=[];for(let t=0;t<e.length;t++){const n=o.indexOf(e[t].toString()),i=o.path(n).pathElements.map((e=>Pe(e))),a=Pe(o.root()),u={hash:e[t].toArray("be",32),merkleTree:this.merkleTreeAddress,leafIndex:n,merkleProof:i,nullifierQueue:this.nullifierQueueAddress,rootIndex:r.length,root:a};s.push(u)}return s.forEach(((e,t)=>{const r=e.leafIndex,n=o.elements()[r],s=Pe(n).toArray("be",32);if(!s.every(((t,r)=>t===e.hash[r])))throw new Error(`Mismatch at index ${t}: expected ${e.hash.toString()}, got ${s.toString()}`)})),s}async getCompressedAccountsByOwner(e,t){const r=await async function(e,t){return(await uo(e)).filter((e=>e.owner.equals(t)))}(this,e);return{items:r,cursor:null}}async getLatestCompressionSignatures(e,t){throw new Error("getLatestNonVotingSignaturesWithContext not supported in test-rpc")}async getLatestNonVotingSignatures(e){throw new Error("getLatestNonVotingSignaturesWithContext not supported in test-rpc")}async getCompressedTokenAccountsByOwner(e,t){return await fo(this,e,t.mint)}async getCompressedTokenAccountsByDelegate(e,t){return await mo(this,e,t.mint)}async getCompressedTokenAccountBalance(e){const t=await go(this,e);return{amount:Pe(t.parsed.amount)}}async getCompressedTokenBalancesByOwner(e,t){return{items:(await fo(this,e,t.mint)).items.map((e=>({balance:Pe(e.parsed.amount),mint:e.parsed.mint}))),cursor:null}}async getCompressedTokenBalancesByOwnerV2(e,t){return{context:{slot:1},value:{items:(await fo(this,e,t.mint)).items.map((e=>({balance:Pe(e.parsed.amount),mint:e.parsed.mint}))),cursor:null}}}async getCompressionSignaturesForAccount(e){throw new Error("getCompressionSignaturesForAccount not implemented in test-rpc")}async getTransactionWithCompressionInfo(e){throw new Error("getCompressedTransaction not implemented in test-rpc")}async getCompressionSignaturesForAddress(e,t){throw new Error("getSignaturesForAddress3 not implemented")}async getCompressionSignaturesForOwner(e,t){throw new Error("getSignaturesForOwner not implemented")}async getCompressionSignaturesForTokenOwner(e,t){throw new Error("getSignaturesForTokenOwner not implemented")}async getIndexerHealth(){return"ok"}async getIndexerSlot(){return 1}async getMultipleNewAddressProofs(e){const t=ro.default(),r=[];t.init();const n=[];for(let e=0;e<r.length;e++)t.append(Pe(r[e]));for(let e=0;e<t.elements.length;e++){const r=t.hashElement(this.lightWasm,e);n.push(Pe(r))}const o=new no(this.depth,this.lightWasm,n.map((e=>Pe(e).toString()))),s=[];for(let r=0;r<e.length;r++){const[n]=t.findLowElement(e[r]);if(!n)throw new Error("Address not found");const i=n.index,a=o.path(i).pathElements.map((e=>Pe(e))),u=t.get(n.nextIndex).value,l={root:Pe(o.root()),rootIndex:3,value:e[r],leafLowerRangeValue:n.value,leafHigherRangeValue:u,nextIndex:Pe(n.nextIndex),merkleProofHashedIndexedElementLeaf:a,indexHashedIndexedElementLeaf:Pe(n.index),merkleTree:this.addressTreeAddress,nullifierQueue:this.addressQueueAddress};s.push(l)}return s}async getCompressedMintTokenHolders(e,t){throw new Error("getCompressedMintTokenHolders not implemented in test-rpc")}async getValidityProofDirect(e=[],t=[]){return this.getValidityProof(e,t)}async getValidityProofAndRpcContext(e=[],t=[]){if(t.some((e=>!(e instanceof ie))))throw new Error("AddressWithTree is not supported in test-rpc");return{value:await this.getValidityProofV0(e,t),context:{slot:1}}}async getValidityProof(e=[],t=[]){if(t.some((e=>!(e instanceof ie))))throw new Error("AddressWithTree is not supported in test-rpc");let r;if(0===e.length&&0===t.length)throw new Error("Empty input. Provide hashes and/or new addresses.");if(e.length>0&&0===t.length){const t=await this.getMultipleCompressedAccountProofs(e),n=zn(t);r={compressedProof:await $n(this.proverEndpoint,"inclusion",n,this.log),roots:t.map((e=>e.root)),rootIndices:t.map((e=>e.rootIndex)),leafIndices:t.map((e=>e.leafIndex)),leaves:t.map((e=>Pe(e.hash))),merkleTrees:t.map((e=>e.merkleTree)),nullifierQueues:t.map((e=>e.nullifierQueue))}}else if(0===e.length&&t.length>0){const e=await this.getMultipleNewAddressProofs(t),n=Yn(e);r={compressedProof:await $n(this.proverEndpoint,"new-address",n,this.log),roots:e.map((e=>e.root)),rootIndices:e.map((()=>3)),leafIndices:e.map((e=>e.indexHashedIndexedElementLeaf.toNumber())),leaves:e.map((e=>Pe(e.value))),merkleTrees:e.map((e=>e.merkleTree)),nullifierQueues:e.map((e=>e.nullifierQueue))}}else{if(!(e.length>0&&t.length>0))throw new Error("Invalid input");{const n=await this.getMultipleCompressedAccountProofs(e),o=zn(n),s=await this.getMultipleNewAddressProofs(t),i=Yn(s);r={compressedProof:await $n(this.proverEndpoint,"combined",[o,i],this.log),roots:n.map((e=>e.root)).concat(s.map((e=>e.root))),rootIndices:n.map((e=>e.rootIndex)).concat(s.map((()=>3))),leafIndices:n.map((e=>e.leafIndex)).concat(s.map((e=>e.indexHashedIndexedElementLeaf.toNumber()))),leaves:n.map((e=>Pe(e.hash))).concat(s.map((e=>Pe(e.value)))),merkleTrees:n.map((e=>e.merkleTree)).concat(s.map((e=>e.merkleTree))),nullifierQueues:n.map((e=>e.nullifierQueue)).concat(s.map((e=>e.nullifierQueue)))}}}return r}async getValidityProofV0(e=[],t=[]){return this.getValidityProof(e.map((e=>e.hash)),t.map((e=>e.address)))}}exports.ADDRESS_QUEUE_ROLLOVER_FEE=Ae,exports.ADDRESS_TREE_NETWORK_FEE=Se,exports.ALICE=Ot,exports.AccountProofResult=Fn,exports.BOB=Rt,exports.BalanceResult=Rn,exports.CHARLIE=Nt,exports.CompressedAccountLayout=vr,exports.CompressedAccountResult=wn,exports.CompressedAccountsByOwnerResult=Mn,exports.CompressedMintTokenHoldersResult=Dn,exports.CompressedTokenAccountResult=En,exports.CompressedTokenAccountsByOwnerOrDelegateResult=xn,exports.CompressedTransactionResult=Hn,exports.CreateUtxoError=class extends Fr{},exports.DAVE=Lt,exports.DEFAULT_MERKLE_TREE_HEIGHT=be,exports.DEFAULT_MERKLE_TREE_ROOTS=2800,exports.DEFAULT_ZERO="0",exports.FIELD_SIZE=ae,exports.HIGHEST_ADDRESS_PLUS_ONE=ue,exports.HashError=class extends Fr{},exports.HealthResult=In,exports.IDL={version:"1.2.0",name:"light_system_program",constants:[{name:"SOL_POOL_PDA_SEED",type:"bytes",value:"[115, 111, 108, 95, 112, 111, 111, 108, 95, 112, 100, 97]"}],instructions:[{name:"initCpiContextAccount",accounts:[{name:"feePayer",isMut:1,isSigner:1},{name:"cpiContextAccount",isMut:1,isSigner:0},{name:"associatedMerkleTree",isMut:0,isSigner:0}],args:[]},{name:"invoke",accounts:[{name:"feePayer",isMut:1,isSigner:1,docs:["Fee payer needs to be mutable to pay rollover and protocol fees."]},{name:"authority",isMut:0,isSigner:1},{name:"registeredProgramPda",isMut:0,isSigner:0},{name:"noopProgram",isMut:0,isSigner:0},{name:"accountCompressionAuthority",isMut:0,isSigner:0,docs:["This pda is used to invoke the account compression program."]},{name:"accountCompressionProgram",isMut:0,isSigner:0,docs:["Merkle trees."]},{name:"solPoolPda",isMut:1,isSigner:0,isOptional:1,docs:["Sol pool pda is used to store the native sol that has been compressed.","It's only required when compressing or decompressing sol."]},{name:"decompressionRecipient",isMut:1,isSigner:0,isOptional:1,docs:["Only needs to be provided for decompression as a recipient for the","decompressed sol.","Compressed sol originate from authority."]},{name:"systemProgram",isMut:0,isSigner:0}],args:[{name:"inputs",type:"bytes"}]},{name:"invokeCpi",accounts:[{name:"feePayer",isMut:1,isSigner:1,docs:["Fee payer needs to be mutable to pay rollover and protocol fees."]},{name:"authority",isMut:0,isSigner:1},{name:"registeredProgramPda",isMut:0,isSigner:0},{name:"noopProgram",isMut:0,isSigner:0},{name:"accountCompressionAuthority",isMut:0,isSigner:0},{name:"accountCompressionProgram",isMut:0,isSigner:0},{name:"invokingProgram",isMut:0,isSigner:0},{name:"solPoolPda",isMut:1,isSigner:0,isOptional:1},{name:"decompressionRecipient",isMut:1,isSigner:0,isOptional:1},{name:"systemProgram",isMut:0,isSigner:0},{name:"cpiContextAccount",isMut:1,isSigner:0,isOptional:1}],args:[{name:"inputs",type:"bytes"}]},{name:"invokeCpiWithReadOnly",accounts:[{name:"feePayer",isMut:1,isSigner:1,docs:["Fee payer needs to be mutable to pay rollover and protocol fees."]},{name:"authority",isMut:0,isSigner:1},{name:"registeredProgramPda",isMut:0,isSigner:0},{name:"noopProgram",isMut:0,isSigner:0},{name:"accountCompressionAuthority",isMut:0,isSigner:0},{name:"accountCompressionProgram",isMut:0,isSigner:0},{name:"invokingProgram",isMut:0,isSigner:0},{name:"solPoolPda",isMut:1,isSigner:0,isOptional:1},{name:"decompressionRecipient",isMut:1,isSigner:0,isOptional:1},{name:"systemProgram",isMut:0,isSigner:0},{name:"cpiContextAccount",isMut:1,isSigner:0,isOptional:1}],args:[{name:"inputs",type:"bytes"}]},{name:"stubIdlBuild",docs:["This function is a stub to allow Anchor to include the input types in","the IDL. It should not be included in production builds nor be called in","practice."],accounts:[{name:"feePayer",isMut:1,isSigner:1,docs:["Fee payer needs to be mutable to pay rollover and protocol fees."]},{name:"authority",isMut:0,isSigner:1},{name:"registeredProgramPda",isMut:0,isSigner:0},{name:"noopProgram",isMut:0,isSigner:0},{name:"accountCompressionAuthority",isMut:0,isSigner:0,docs:["This pda is used to invoke the account compression program."]},{name:"accountCompressionProgram",isMut:0,isSigner:0,docs:["Merkle trees."]},{name:"solPoolPda",isMut:1,isSigner:0,isOptional:1,docs:["Sol pool pda is used to store the native sol that has been compressed.","It's only required when compressing or decompressing sol."]},{name:"decompressionRecipient",isMut:1,isSigner:0,isOptional:1,docs:["Only needs to be provided for decompression as a recipient for the","decompressed sol.","Compressed sol originate from authority."]},{name:"systemProgram",isMut:0,isSigner:0}],args:[{name:"inputs1",type:{defined:"InstructionDataInvoke"}},{name:"inputs2",type:{defined:"InstructionDataInvokeCpi"}},{name:"inputs3",type:{defined:"PublicTransactionEvent"}}]}],accounts:[{name:"cpiContextAccount",docs:["Collects instruction data without executing a compressed transaction.","Signer checks are performed on instruction data.","Collected instruction data is combined with the instruction data of the executing cpi,","and executed as a single transaction.","This enables to use input compressed accounts that are owned by multiple programs,","with one zero-knowledge proof."],type:{kind:"struct",fields:[{name:"feePayer",type:"publicKey"},{name:"associatedMerkleTree",type:"publicKey"},{name:"context",type:{vec:{defined:"InstructionDataInvokeCpi"}}}]}}],types:[{name:"InstructionDataInvoke",type:{kind:"struct",fields:[{name:"proof",type:{option:{defined:"CompressedProof"}}},{name:"inputCompressedAccountsWithMerkleContext",type:{vec:{defined:"PackedCompressedAccountWithMerkleContext"}}},{name:"outputCompressedAccounts",type:{vec:{defined:"OutputCompressedAccountWithPackedContext"}}},{name:"relayFee",type:{option:"u64"}},{name:"newAddressParams",type:{vec:{defined:"NewAddressParamsPacked"}}},{name:"compressOrDecompressLamports",type:{option:"u64"}},{name:"isCompress",type:"bool"}]}},{name:"NewAddressParamsPacked",type:{kind:"struct",fields:[{name:"seed",type:{array:["u8",32]}},{name:"addressQueueAccountIndex",type:"u8"},{name:"addressMerkleTreeAccountIndex",type:"u8"},{name:"addressMerkleTreeRootIndex",type:"u16"}]}},{name:"OutputCompressedAccountWithPackedContext",type:{kind:"struct",fields:[{name:"compressedAccount",type:{defined:"CompressedAccount"}},{name:"merkleTreeIndex",type:"u8"}]}},{name:"CompressedProof",type:{kind:"struct",fields:[{name:"a",type:{array:["u8",32]}},{name:"b",type:{array:["u8",64]}},{name:"c",type:{array:["u8",32]}}]}},{name:"InstructionDataInvokeCpi",type:{kind:"struct",fields:[{name:"proof",type:{option:{defined:"CompressedProof"}}},{name:"newAddressParams",type:{vec:{defined:"NewAddressParamsPacked"}}},{name:"inputCompressedAccountsWithMerkleContext",type:{vec:{defined:"PackedCompressedAccountWithMerkleContext"}}},{name:"outputCompressedAccounts",type:{vec:{defined:"OutputCompressedAccountWithPackedContext"}}},{name:"relayFee",type:{option:"u64"}},{name:"compressOrDecompressLamports",type:{option:"u64"}},{name:"isCompress",type:"bool"},{name:"cpiContext",type:{option:{defined:"CompressedCpiContext"}}}]}},{name:"CompressedCpiContext",type:{kind:"struct",fields:[{name:"setContext",docs:["Is set by the program that is invoking the CPI to signal that is should","set the cpi context."],type:"bool"},{name:"firstSetContext",docs:["Is set to wipe the cpi context since someone could have set it before","with unrelated data."],type:"bool"},{name:"cpiContextAccountIndex",docs:["Index of cpi context account in remaining accounts."],type:"u8"}]}},{name:"CompressedAccount",type:{kind:"struct",fields:[{name:"owner",type:"publicKey"},{name:"lamports",type:"u64"},{name:"address",type:{option:{array:["u8",32]}}},{name:"data",type:{option:{defined:"CompressedAccountData"}}}]}},{name:"CompressedAccountData",type:{kind:"struct",fields:[{name:"discriminator",type:{array:["u8",8]}},{name:"data",type:"bytes"},{name:"dataHash",type:{array:["u8",32]}}]}},{name:"PackedCompressedAccountWithMerkleContext",type:{kind:"struct",fields:[{name:"compressedAccount",type:{defined:"CompressedAccount"}},{name:"merkleContext",type:{defined:"PackedMerkleContext"}},{name:"rootIndex",docs:["Index of root used in inclusion validity proof."],type:"u16"},{name:"readOnly",docs:["Placeholder to mark accounts read-only unimplemented set to false."],type:"bool"}]}},{name:"PackedMerkleContext",type:{kind:"struct",fields:[{name:"merkleTreePubkeyIndex",type:"u8"},{name:"nullifierQueuePubkeyIndex",type:"u8"},{name:"leafIndex",type:"u32"},{name:"queueIndex",type:{option:{defined:"QueueIndex"}}}]}},{name:"QueueIndex",type:{kind:"struct",fields:[{name:"queueId",docs:["Id of queue in queue account."],type:"u8"},{name:"index",docs:["Index of compressed account hash in queue."],type:"u16"}]}},{name:"MerkleTreeSequenceNumber",type:{kind:"struct",fields:[{name:"pubkey",type:"publicKey"},{name:"seq",type:"u64"}]}},{name:"PublicTransactionEvent",type:{kind:"struct",fields:[{name:"inputCompressedAccountHashes",type:{vec:{array:["u8",32]}}},{name:"outputCompressedAccountHashes",type:{vec:{array:["u8",32]}}},{name:"outputCompressedAccounts",type:{vec:{defined:"OutputCompressedAccountWithPackedContext"}}},{name:"outputLeafIndices",type:{vec:"u32"}},{name:"sequenceNumbers",type:{vec:{defined:"MerkleTreeSequenceNumber"}}},{name:"relayFee",type:{option:"u64"}},{name:"isCompress",type:"bool"},{name:"compressOrDecompressLamports",type:{option:"u64"}},{name:"pubkeyArray",type:{vec:"publicKey"}},{name:"message",type:{option:"bytes"}}]}}],errors:[{code:6e3,name:"SumCheckFailed",msg:"Sum check failed"},{code:6001,name:"SignerCheckFailed",msg:"Signer check failed"},{code:6002,name:"CpiSignerCheckFailed",msg:"Cpi signer check failed"},{code:6003,name:"ComputeInputSumFailed",msg:"Computing input sum failed."},{code:6004,name:"ComputeOutputSumFailed",msg:"Computing output sum failed."},{code:6005,name:"ComputeRpcSumFailed",msg:"Computing rpc sum failed."},{code:6006,name:"InvalidAddress",msg:"InvalidAddress"},{code:6007,name:"DeriveAddressError",msg:"DeriveAddressError"},{code:6008,name:"CompressedSolPdaUndefinedForCompressSol",msg:"CompressedSolPdaUndefinedForCompressSol"},{code:6009,name:"DeCompressLamportsUndefinedForCompressSol",msg:"DeCompressLamportsUndefinedForCompressSol"},{code:6010,name:"CompressedSolPdaUndefinedForDecompressSol",msg:"CompressedSolPdaUndefinedForDecompressSol"},{code:6011,name:"DeCompressLamportsUndefinedForDecompressSol",msg:"DeCompressLamportsUndefinedForDecompressSol"},{code:6012,name:"DecompressRecipientUndefinedForDecompressSol",msg:"DecompressRecipientUndefinedForDecompressSol"},{code:6013,name:"WriteAccessCheckFailed",msg:"WriteAccessCheckFailed"},{code:6014,name:"InvokingProgramNotProvided",msg:"InvokingProgramNotProvided"},{code:6015,name:"InvalidCapacity",msg:"InvalidCapacity"},{code:6016,name:"InvalidMerkleTreeOwner",msg:"InvalidMerkleTreeOwner"},{code:6017,name:"ProofIsNone",msg:"ProofIsNone"},{code:6018,name:"ProofIsSome",msg:"Proof is some but no input compressed accounts or new addresses provided."},{code:6019,name:"EmptyInputs",msg:"EmptyInputs"},{code:6020,name:"CpiContextAccountUndefined",msg:"CpiContextAccountUndefined"},{code:6021,name:"CpiContextEmpty",msg:"CpiContextEmpty"},{code:6022,name:"CpiContextMissing",msg:"CpiContextMissing"},{code:6023,name:"DecompressionRecipientDefined",msg:"DecompressionRecipientDefined"},{code:6024,name:"SolPoolPdaDefined",msg:"SolPoolPdaDefined"},{code:6025,name:"AppendStateFailed",msg:"AppendStateFailed"},{code:6026,name:"InstructionNotCallable",msg:"The instruction is not callable"},{code:6027,name:"CpiContextFeePayerMismatch",msg:"CpiContextFeePayerMismatch"},{code:6028,name:"CpiContextAssociatedMerkleTreeMismatch",msg:"CpiContextAssociatedMerkleTreeMismatch"},{code:6029,name:"NoInputs",msg:"NoInputs"},{code:6030,name:"InputMerkleTreeIndicesNotInOrder",msg:"Input merkle tree indices are not in ascending order."},{code:6031,name:"OutputMerkleTreeIndicesNotInOrder",msg:"Output merkle tree indices are not in ascending order."},{code:6032,name:"OutputMerkleTreeNotUnique"},{code:6033,name:"DataFieldUndefined"},{code:6034,name:"ReadOnlyAddressAlreadyExists"},{code:6035,name:"ReadOnlyAccountDoesNotExist"},{code:6036,name:"HashChainInputsLenghtInconsistent"},{code:6037,name:"InvalidAddressTreeHeight"}]},exports.INVOKE_DISCRIMINATOR=le,exports.IndexedArray=ro,exports.IndexedElement=eo,exports.IndexedElementBundle=to,exports.InstructionDataInvokeLayout=Mr,exports.LatestNonVotingSignaturesResult=Sn,exports.LatestNonVotingSignaturesResultPaginated=Tn,exports.LightSystemProgram=_r,exports.LookupTableError=class extends Fr{},exports.MerkeProofResult=Pn,exports.MerkleContextLayout=Er,exports.MerkleTree=no,exports.MerkleTreeError=class extends Fr{},exports.MultipleCompressedAccountsResult=bn,exports.MultipleMerkleProofsResult=On,exports.NativeBalanceResult=Nn,exports.NewAddressParamsLayout=br,exports.NewAddressProofResult=_n,exports.ProofError=class extends Fr{},exports.PublicTransactionEventLayout=Ir,exports.Rpc=Gn,exports.RpcError=class extends Fr{},exports.STATE_MERKLE_TREE_NETWORK_FEE=Ie,exports.STATE_MERKLE_TREE_ROLLOVER_FEE=xe,exports.SelectInUtxosError=class extends Fr{},exports.SignatureListResult=Vn,exports.SignatureListWithCursorResult=qn,exports.SlotResult=An,exports.TRANSACTION_MERKLE_TREE_ROLLOVER_THRESHOLD=Me,exports.TestRpc=yo,exports.TokenBalanceListResult=Bn,exports.TokenBalanceListResultV2=Un,exports.TokenBalanceResult=Ln,exports.TokenDataLayout=co,exports.TokenDataResult=vn,exports.UTXO_MERGE_MAXIMUM=10,exports.UTXO_MERGE_THRESHOLD=20,exports.UtilsError=class extends Fr{},exports.UtxoError=class extends Fr{},exports.ValidityProofResult=Cn,exports.accountCompressionProgram=de,exports.addressQueue=Ee,exports.addressTree=ve,exports.airdropSol=async function({connection:e,lamports:t,recipientPublicKey:r}){const n=await e.requestAirdrop(r,t);return await bt(e,n),n},exports.bn=Pe,exports.bufToDecStr=e=>_e(e).toString(),exports.buildAndSignTx=kt,exports.buildTx=Tt,exports.byteArrayToKeypair=function(t){return e.Keypair.fromSecretKey(Uint8Array.from(t))},exports.calculateComputeUnitPrice=function(e,t){return Math.ceil(1e6*e/t)},exports.checkValidityProofShape=e=>{if(32!==e.a.length||64!==e.b.length||32!==e.c.length)throw new Error("ValidityProof has invalid shape")},exports.compress=async function(t,r,n,o,s,i){const{blockhash:a}=await t.getLatestBlockhash(),u=await _r.compress({payer:r.publicKey,toAddress:o,lamports:n,outputStateTree:s}),l=kt([e.ComputeBudgetProgram.setComputeUnitLimit({units:1e6}),u],r,a,[]);return await Pt(t,l,i)},exports.confirmConfig={commitment:"confirmed",preflightCommitment:"confirmed"},exports.confirmTransaction=bt,exports.confirmTx=_t,exports.convertMerkleProofsWithContextToHex=zn,exports.convertNonInclusionMerkleProofInputsToHex=Yn,exports.createAccount=async function(t,r,n,o,s,i,a,u){const{blockhash:l}=await t.getLatestBlockhash();s=null!=s?s:ge().addressTree,i=null!=i?i:ge().addressQueue;const c=wt(n,o),h=vt(c,s),d=await t.getValidityProofV0(void 0,[{address:Pe(h.toBytes()),tree:s,queue:i}]),p={seed:c,addressMerkleTreeRootIndex:d.rootIndices[0],addressMerkleTreePubkey:d.merkleTrees[0],addressQueuePubkey:d.nullifierQueues[0]},f=await _r.createAccount({payer:r.publicKey,newAddressParams:p,newAddress:Array.from(h.toBytes()),recentValidityProof:d.compressedProof,programId:o,outputStateTree:a}),m=kt([e.ComputeBudgetProgram.setComputeUnitLimit({units:1e6}),f],r,l,[]);return await Pt(t,m,u)},exports.createAccountWithLamports=async function(t,r,n,o,s,i,a,u,l){o=Pe(o);const c=await t.getCompressedAccountsByOwner(r.publicKey),[h]=kr(c.items,o),{blockhash:d}=await t.getLatestBlockhash();i=null!=i?i:ge().addressTree,a=null!=a?a:ge().addressQueue;const p=wt(n,s),f=vt(p,i),m=await t.getValidityProof(h.map((e=>Pe(e.hash))),[Pe(f.toBytes())]),g={seed:p,addressMerkleTreeRootIndex:m.rootIndices[m.rootIndices.length-1],addressMerkleTreePubkey:m.merkleTrees[m.merkleTrees.length-1],addressQueuePubkey:m.nullifierQueues[m.nullifierQueues.length-1]},y=await _r.createAccount({payer:r.publicKey,newAddressParams:g,newAddress:Array.from(f.toBytes()),recentValidityProof:m.compressedProof,inputCompressedAccounts:h,inputStateRootIndices:m.rootIndices,programId:s,outputStateTree:u}),w=kt([e.ComputeBudgetProgram.setComputeUnitLimit({units:1e6}),y],r,d,[]);return await Pt(t,w,l)},exports.createBN254=_e,exports.createCompressedAccount=Ce,exports.createCompressedAccountWithMerkleContext=Oe,exports.createMerkleContext=Re,exports.createRpc=function(e="http://127.0.0.1:8899",t="http://127.0.0.1:8784",r="http://127.0.0.1:3001",n){const o="string"==typeof e?e:e.rpcEndpoint;return new Gn(o,t,r,n)},exports.createRpcResult=fn,exports.decodeInstructionDataInvoke=function(e){return Mr.decode(e.slice(le.length+4))},exports.decodePublicTransactionEvent=Sr,exports.decompress=async function(t,r,n,o,s,i){const a=(await t.getCompressedAccountsByOwner(r.publicKey)).items;n=Pe(n);const u=Tr(a);if(n.gt(u))throw new Error(`Not enough compressed lamports. Expected ${n}, got ${u}`);const l=await t.getValidityProof(a.map((e=>Pe(e.hash)))),{blockhash:c}=await t.getLatestBlockhash(),h=await _r.decompress({payer:r.publicKey,toAddress:o,outputStateTree:s,inputCompressedAccounts:a,recentValidityProof:l.compressedProof,recentInputStateRootIndices:l.rootIndices,lamports:n}),d=kt([e.ComputeBudgetProgram.setComputeUnitLimit({units:1e6}),h],r,c,[]);return await Pt(t,d,i)},exports.dedupeSigner=function(e,t){return t.includes(e)?t.filter((t=>t.publicKey.toString()!==e.publicKey.toString())):t},exports.deepEqual=function e(t,r){if(typeof t!=typeof r)return 0;if(t instanceof ie&&r instanceof ie)return t.eq(r);if("object"==typeof t&&null!==t&&null!==r){const n=Object.keys(t),o=Object.keys(r);if(n.length!==o.length)return 0;for(const s of n){if(!o.includes(s))return 0;if(!e(t[s],r[s]))return 0}return 1}return t===r},exports.defaultStaticAccounts=()=>[new e.PublicKey(pe()),new e.PublicKey(ce),new e.PublicKey(de),new e.PublicKey(fe())],exports.defaultStaticAccountsStruct=me,exports.defaultTestStateTreeAccounts=ge,exports.deriveAddress=vt,exports.deriveAddressSeed=wt,exports.encodeBN254toBase58=ke,exports.encodeInstructionDataInvoke=xr,exports.encodePublicTransactionEvent=function(e){const t=g.alloc(1e3),r=Ir.encode(e,t);return t.slice(0,r)},exports.getAccountCompressionAuthority=fe,exports.getCompressedTokenAccountByHashTest=go,exports.getCompressedTokenAccounts=po,exports.getCompressedTokenAccountsByDelegateTest=mo,exports.getCompressedTokenAccountsByOwnerTest=fo,exports.getConnection=function(){return new e.Connection("http://127.0.0.1:8899","confirmed")},exports.getIndexOrAdd=dt,exports.getParsedEvents=oo,exports.getPublicInputHash=function(e,t,r,n){const o=Zn(e.map((e=>e.root)),t,n),s=r.map((e=>e.value)),i=Zn(r.map((e=>e.root)),s,n);return i.isZero()?o.isZero()?Zn([o],[i],n):o:i},exports.getRegisteredProgramPda=pe,exports.getTestKeypair=Bt,exports.getTestRpc=async function(e,t="http://127.0.0.1:8899",r="http://127.0.0.1:8784",n="http://127.0.0.1:3001",o,s,i,a=0){const u=ge();return new yo(t,e,r,n,void 0,{merkleTreeAddress:o||u.merkleTree,nullifierQueueAddress:s||u.nullifierQueue,depth:i||u.merkleTreeHeight,log:a})},exports.hashToBn254FieldSizeBe=lt,exports.hashvToBn254FieldSizeBe=ct,exports.invokeAccountsLayout=Ar,exports.jsonRpcResult=gn,exports.jsonRpcResultAndContext=yn,exports.lightProgram=he,exports.merkletreePubkey=we,exports.negateAndCompressProof=xt,exports.newAccountWithLamports=async function(e,t=1e9,r){(void 0===r||r>255)&&(r=256);const n=Bt(r),o=await e.requestAirdrop(n.publicKey,t);return await _t(e,o),n},exports.noopProgram=ce,exports.nullifierQueuePubkey=ye,exports.packCompressedAccounts=mt,exports.packNewAddressParams=Et,exports.padOutputStateMerkleTrees=pt,exports.parseAccountData=Kn,exports.parseEvents=so,exports.parsePublicTransactionEventWithIdl=io,exports.parseTokenLayoutWithIdl=ho,exports.pipe=function(e,...t){return r=>t.reduce(((e,t)=>t(e)),e(r))},exports.placeholderValidityProof=()=>({a:Array.from({length:32},((e,t)=>t+1)),b:Array.from({length:64},((e,t)=>t+1)),c:Array.from({length:32},((e,t)=>t+1))}),exports.proofFromJsonStruct=Mt,exports.proverRequest=$n,exports.pushUniqueItems=function(e,t){e.forEach((e=>{t.includes(e)||t.push(e)}))},exports.rpcRequest=Qn,exports.selectMinCompressedSolAccountsForTransfer=kr,exports.sendAndConfirmTx=Pt,exports.sleep=function(e){return new Promise((t=>setTimeout(t,e)))},exports.sumUpLamports=Tr,exports.toAccountMetas=ft,exports.toArray=at,exports.toCamelCase=ht,exports.toHex=it,exports.toUnixTimestamp=e=>new Date(e).getTime(),exports.transfer=async function(t,r,n,o,s,i,a){var u;let l=Pe(0);const c=[];let h;for(n=Pe(n);l.lt(n);){const e={filters:void 0,dataSlice:void 0,cursor:h,limit:new ie(1e3)},r=await t.getCompressedAccountsByOwner(o.publicKey,e);for(const e of r.items)e.lamports.gt(new ie(0))&&(c.push(e),l=l.add(e.lamports));if(h=null!==(u=r.cursor)&&void 0!==u?u:void 0,r.items.length<1e3||l.gte(n))break}if(l.lt(n))throw new Error(`Not enough balance for transfer. Required: ${n.toString()}, available: ${l.toString()}`);const[d]=kr(c,n),p=await t.getValidityProof(d.map((e=>Pe(e.hash)))),f=await _r.transfer({payer:r.publicKey,inputCompressedAccounts:d,toAddress:s,lamports:n,recentInputStateRootIndices:p.rootIndices,recentValidityProof:p.compressedProof,outputStateTrees:i}),{blockhash:m}=await t.getLatestBlockhash(),g=kt([e.ComputeBudgetProgram.setComputeUnitLimit({units:1e6}),f],r,m);return await Pt(t,g,a)},exports.validateSameOwner=yt,exports.validateSufficientBalance=gt;
2
2
  //# sourceMappingURL=index.cjs.map