@bwalletx/connect 0.3.0 → 0.4.1

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.
@@ -1,4 +1,27 @@
1
- "use strict";var bWalletXConnect=(()=>{var ht=Object.defineProperty;var fi=Object.getOwnPropertyDescriptor;var di=Object.getOwnPropertyNames;var li=Object.prototype.hasOwnProperty;var Xn=r=>{throw TypeError(r)};var hi=(r,e,t)=>e in r?ht(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var ui=(r,e)=>{for(var t in e)ht(r,t,{get:e[t],enumerable:!0})},bi=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of di(e))!li.call(r,i)&&i!==t&&ht(r,i,{get:()=>e[i],enumerable:!(n=fi(e,i))||n.enumerable});return r};var pi=r=>bi(ht({},"__esModule",{value:!0}),r);var p=(r,e,t)=>hi(r,typeof e!="symbol"?e+"":e,t),Vt=(r,e,t)=>e.has(r)||Xn("Cannot "+t);var u=(r,e,t)=>(Vt(r,e,"read from private field"),t?t.call(r):e.get(r)),P=(r,e,t)=>e.has(r)?Xn("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(r):e.set(r,t),I=(r,e,t,n)=>(Vt(r,e,"write to private field"),n?n.call(r,t):e.set(r,t),t),d=(r,e,t)=>(Vt(r,e,"access private method"),t);var Zs={};ui(Zs,{BWALLETX_RDNS:()=>jt,GET_URL:()=>Un,LOGIN_PROTOCOL:()=>Mn,LOGO_URL:()=>Fn,RDNS_EXTENSION:()=>ut,RDNS_MOBILE:()=>Yt,SIGNIN_CSS:()=>zn,SIGNIN_TAG:()=>Pn,WEB_WALLET_URL:()=>Cn,buildAuthorizeUrl:()=>On,clearPairing:()=>ni,connectBwalletX:()=>Tn,defineBwalletxSignin:()=>Gt,discoverBwalletX:()=>pe,findBwalletX:()=>qn,inOrder:()=>ft,markSvg:()=>_n,pairBwalletX:()=>qt,renderButton:()=>ai,restorePairing:()=>Dt,signInWithBwalletX:()=>$t,signinText:()=>Hn});var ut="com.bwalletx.extension",Yt="space.bwallet.mobile",jt=[ut,Yt];function pe(r=1200){return typeof window>"u"?Promise.resolve(null):new Promise(e=>{let t=!1,n=s=>{t||(t=!0,window.removeEventListener("brc100:announceWallet",i),e(s))},i=s=>{let o=s.detail,a=o?.info?.rdns??"";o?.wallet&&jt.includes(a)&&n({wallet:o.wallet,method:a===ut?"extension":"in-app",rdns:a})};window.addEventListener("brc100:announceWallet",i),window.dispatchEvent(new Event("brc100:requestWallet")),setTimeout(()=>{let s=window.CWI;n(s?{wallet:s,method:"in-app",rdns:null}:null)},r)})}async function qn(r=1200){return(await pe(r))?.wallet??null}var Jt=globalThis.Buffer,gi=Jt!=null&&typeof Jt.from=="function",Ze=new Int8Array(256).fill(-1);for(let r=0;r<10;r++)Ze[48+r]=r;for(let r=0;r<6;r++)Ze[65+r]=10+r,Ze[97+r]=10+r;var Ge,Ke,pt,gt,ae,mt,Ve,S,E,M,l,Dn,$n,Zn,Gn,Kn,Vn,Qt,G,te,A,Yn,qe,De,jn,Jn,me,Qn,er,tr,U,z,$e,bt,ge,en,nr,tn,v=class v{constructor(e=0,t=10,n="be"){P(this,l);P(this,S,0n);P(this,E,0);P(this,M,1);p(this,"red",null);if(e??(e=0),typeof e=="bigint"){d(this,l,G).call(this,e<0n?-e:e,e<0n?1:0),this.normSign();return}let i=t==="le"||t==="be",s=i?10:t,o=i?t:n;if(typeof e=="number"){d(this,l,Yn).call(this,e,o);return}if(Array.isArray(e)){d(this,l,qe).call(this,e,o);return}if(typeof e=="string"){d(this,l,$n).call(this,e,s,o);return}e!==0?d(this,l,A).call(this,!1,"Unsupported input type for BigNumber constructor"):d(this,l,G).call(this,0n,0)}get negative(){return u(this,E)}set negative(e){d(this,l,A).call(this,e===0||e===1,"Negative property must be 0 or 1");let t=e===1?1:0;u(this,S)===0n?I(this,E,0):I(this,E,t)}get words(){if(!Number.isSafeInteger(u(this,M))||u(this,M)<1||u(this,M)>u(v,Ve))throw new Error("BigNumber word length exceeds the supported limit");let e=u(this,l,Dn);if(u(this,M)<=e.length)return e;let t=Array.from({length:u(this,M)}).fill(0);for(let n=0;n<e.length;n++)t[n]=e[n];return t}set words(e){let t=u(this,E),n=0n,i=e.length>0?e.length:1;for(let s=i-1;s>=0;s--){let o=e[s]??0;n=n<<u(v,Ge)|BigInt(o&Number(u(v,Ke)))}I(this,S,n),I(this,E,t),I(this,M,i),this.normSign()}get length(){return Math.max(1,u(this,M))}static isBN(e){return e instanceof v?!0:e!==null&&typeof e=="object"&&e.constructor?.wordSize===v.wordSize&&Array.isArray(e.words)}static max(e,t){return e.cmp(t)>0?e:t}static min(e,t){return e.cmp(t)<0?e:t}copy(e){I(e,S,u(this,S)),I(e,E,u(this,E)),I(e,M,u(this,M)),e.red=this.red}static move(e,t){I(e,S,u(t,S)),I(e,E,u(t,E)),I(e,M,u(t,M)),e.red=t.red}clone(){let e=new v(0n);return this.copy(e),e}expand(e){return d(this,l,A).call(this,Number.isSafeInteger(e)&&e>=0&&e<=u(v,Ve),"Expand size must be a non-negative safe integer within the supported word limit"),I(this,M,Math.max(u(this,M),e,1)),this}strip(){return d(this,l,te).call(this),this.normSign()}normSign(){return u(this,S)===0n&&I(this,E,0),this}inspect(){return(this.red===null?"<BN: ":"<BN-R: ")+this.toString(16)+">"}toString(e=10,t=1){if(e===16||e==="hex")return d(this,l,jn).call(this,t);if(typeof e!="number"||e<2||e>36||e%1!==0)throw new Error("Base should be an integer between 2 and 36");return d(this,l,Jn).call(this,e,t)}toNumber(){let e=d(this,l,U).call(this);if(e>u(v,pt)||e<u(v,gt))throw new Error("Number can only safely store up to 53 bits");return Number(e)}toBigInt(){return d(this,l,U).call(this)}toJSON(){let e=d(this,l,De).call(this);return(this.isNeg()?"-":"")+e}toArray(e="be",t){this.strip();let n=this.byteLength(),i=t??Math.max(1,n);d(this,l,A).call(this,n<=i,"byte array longer than desired length"),d(this,l,A).call(this,i>0,"Requested array length <= 0");let s=Array.from({length:i}).fill(0);return u(this,S)===0n&&i>0?s:u(this,S)===0n&&i===0?[]:(d(this,l,tr).call(this,s,e==="le"),s)}bitLength(){return u(this,S)===0n?0:u(this,S).toString(2).length}static toBitArray(e){let t=e.bitLength();if(t===0)return[];let n=Array.from({length:t}),i=u(e,S);for(let s=0;s<t;s++)n[s]=(i>>BigInt(s)&1n)===0n?0:1;return n}toBitArray(){return v.toBitArray(this)}zeroBits(){if(u(this,S)===0n)return 0;let e=0,t=u(this,S);for(;(t&1n)===0n&&t!==0n;)e++,t>>=1n;return e}byteLength(){return u(this,S)===0n?0:Math.ceil(this.bitLength()/8)}toTwos(e){var o;d(this,l,A).call(this,e>=0);let t=BigInt(e),n=d(this,l,U).call(this);u(this,E)===1&&u(this,S)!==0n&&(n=(1n<<t)+n);let i=(1n<<t)-1n;n&=i;let s=new v(0n);return d(o=s,l,G).call(o,n,0),s}fromTwos(e){var i;d(this,l,A).call(this,e>=0);let t=BigInt(e),n=u(this,S);if(e>0&&(n>>t-1n&1n)!==0n&&u(this,E)===0){let s=n-(1n<<t),o=new v(0n);return d(i=o,l,z).call(i,s),o}return this.clone()}isNeg(){return u(this,E)===1&&u(this,S)!==0n}neg(){return this.clone().ineg()}ineg(){return u(this,S)!==0n&&I(this,E,u(this,E)===1?0:1),this}iuor(e){return d(this,l,$e).call(this,e,(t,n)=>t|n)}iuand(e){return d(this,l,$e).call(this,e,(t,n)=>t&n)}iuxor(e){return d(this,l,$e).call(this,e,(t,n)=>t^n,!0)}ior(e){return d(this,l,bt).call(this,e,(t,n)=>t|n)}iand(e){return d(this,l,bt).call(this,e,(t,n)=>t&n)}ixor(e){return d(this,l,bt).call(this,e,(t,n)=>t^n,!0)}or(e){return d(this,l,A).call(this,u(this,E)===0&&u(e,E)===0),d(this,l,ge).call(this,e,"iuor")}uor(e){return d(this,l,ge).call(this,e,"iuor")}and(e){return d(this,l,A).call(this,u(this,E)===0&&u(e,E)===0),d(this,l,ge).call(this,e,"iuand")}uand(e){return d(this,l,ge).call(this,e,"iuand")}xor(e){return d(this,l,A).call(this,u(this,E)===0&&u(e,E)===0),d(this,l,ge).call(this,e,"iuxor")}uxor(e){return d(this,l,ge).call(this,e,"iuxor")}inotn(e){d(this,l,A).call(this,typeof e=="number"&&e>=0);let n=(1n<<BigInt(e))-1n;I(this,S,~u(this,S)&n);let i=e===0?1:Math.ceil(e/v.wordSize);return I(this,M,Math.max(1,i)),this.strip(),I(this,M,Math.max(u(this,M),Math.max(1,i))),this}notn(e){return this.clone().inotn(e)}setn(e,t){d(this,l,A).call(this,typeof e=="number"&&e>=0);let n=BigInt(e);t===1||t===!0?I(this,S,u(this,S)|1n<<n):I(this,S,u(this,S)&~(1n<<n));let i=Math.floor(e/v.wordSize)+1;return I(this,M,Math.max(u(this,M),i)),d(this,l,te).call(this),this.strip()}iadd(e){var t;return d(this,l,z).call(this,d(this,l,U).call(this)+d(t=e,l,U).call(t)),this}add(e){var n,i;let t=new v(0n);return d(i=t,l,z).call(i,d(this,l,U).call(this)+d(n=e,l,U).call(n)),t}isub(e){var t;return d(this,l,z).call(this,d(this,l,U).call(this)-d(t=e,l,U).call(t)),this}sub(e){var n,i;let t=new v(0n);return d(i=t,l,z).call(i,d(this,l,U).call(this)-d(n=e,l,U).call(n)),t}mul(e){let t=new v(0n);return I(t,S,u(this,S)*u(e,S)),I(t,E,u(t,S)===0n?0:u(this,E)^u(e,E)),I(t,M,this.length+e.length),t.red=null,t.normSign()}imul(e){return I(this,S,u(this,S)*u(e,S)),I(this,E,u(this,S)===0n?0:u(this,E)^u(e,E)),I(this,M,this.length+e.length),this.red=null,this.normSign()}imuln(e){return d(this,l,A).call(this,typeof e=="number","Assertion failed"),d(this,l,A).call(this,Math.abs(e)<=u(v,ae),"Assertion failed"),d(this,l,z).call(this,d(this,l,U).call(this)*BigInt(e)),this}muln(e){return this.clone().imuln(e)}sqr(){let e=new v(0n);return I(e,S,u(this,S)*u(this,S)),I(e,E,0),I(e,M,this.length*2),e.red=null,e}isqr(){return I(this,S,u(this,S)*u(this,S)),I(this,E,0),I(this,M,this.length*2),this.red=null,this}pow(e){if(d(this,l,A).call(this,u(e,E)===0,"Exponent for pow must be non-negative"),e.isZero())return new v(1n);let t=new v(1n),n=this.clone(),i=e.clone(),s=n.isNeg(),o=i.isOdd();for(s&&n.ineg();!i.isZero();)i.isOdd()&&t.imul(n),n.isqr(),i.iushrn(1);return s&&o&&t.ineg(),t}iushln(e){var n;let t=d(n=v,me,en).call(n,e,"Shift bits");return t===0n?this:(I(this,S,u(this,S)<<t),d(this,l,te).call(this),this.strip())}ishln(e){return d(this,l,A).call(this,u(this,E)===0,"ishln requires positive number"),this.iushln(e)}iushrn(e,t,n){var s,o,a;let i=d(s=v,me,en).call(s,e,"Shift bits");if(i===0n)return n!=null&&d(o=n,l,G).call(o,0n,0),this;if(n!=null){let c=(1n<<i)-1n,f=u(this,S)&c;d(a=n,l,G).call(a,f,0)}return I(this,S,u(this,S)>>i),d(this,l,te).call(this),this.strip()}ishrn(e,t,n){return d(this,l,A).call(this,u(this,E)===0,"ishrn requires positive number"),this.iushrn(e,t,n)}shln(e){return this.clone().ishln(e)}ushln(e){return this.clone().iushln(e)}shrn(e){return this.clone().ishrn(e)}ushrn(e){return this.clone().iushrn(e)}testn(e){return d(this,l,A).call(this,typeof e=="number"&&e>=0),(u(this,S)>>BigInt(e)&1n)!==0n}imaskn(e){d(this,l,A).call(this,typeof e=="number"&&e>=0),d(this,l,A).call(this,u(this,E)===0,"imaskn works only with positive numbers");let t=BigInt(e),n=t===0n?0n:(1n<<t)-1n;I(this,S,u(this,S)&n);let i=e===0?1:Math.max(1,Math.ceil(e/v.wordSize));return I(this,M,i),d(this,l,te).call(this),I(this,M,Math.max(u(this,M),i)),this.strip()}maskn(e){return this.clone().imaskn(e)}iaddn(e){return d(this,l,A).call(this,typeof e=="number"),d(this,l,A).call(this,Math.abs(e)<=u(v,ae),"num is too large"),d(this,l,z).call(this,d(this,l,U).call(this)+BigInt(e)),this}_iaddn(e){return this.iaddn(e)}isubn(e){return d(this,l,A).call(this,typeof e=="number"),d(this,l,A).call(this,Math.abs(e)<=u(v,ae),"Assertion failed"),d(this,l,z).call(this,d(this,l,U).call(this)-BigInt(e)),this}addn(e){return this.clone().iaddn(e)}subn(e){return this.clone().isubn(e)}iabs(){return I(this,E,0),this}abs(){return this.clone().iabs()}divmod(e,t,n){var c;if(d(this,l,A).call(this,!e.isZero(),"Division by zero"),this.isZero()){let f=new v(0n);return{div:t==="mod"?null:f,mod:t==="div"?null:f}}let i=d(this,l,U).call(this),s=d(c=e,l,U).call(c),o=t!=="mod"?i/s:null,a=d(this,l,nr).call(this,i,s,t,n);return{div:d(this,l,tn).call(this,o),mod:d(this,l,tn).call(this,a)}}div(e){return this.divmod(e,"div",!1).div}mod(e){return this.divmod(e,"mod",!1).mod}umod(e){return this.divmod(e,"mod",!0).mod}divRound(e){var f,h,b;d(this,l,A).call(this,!e.isZero());let t=d(this,l,U).call(this),n=d(f=e,l,U).call(f),i=t/n,s=t%n;if(s===0n){let g=new v(0n);return d(h=g,l,z).call(h,i),g}let o=s<0n?-s:s,a=n<0n?-n:n;o*2n>=a&&(t>0n&&n>0n||t<0n&&n<0n?i+=1n:i-=1n);let c=new v(0n);return d(b=c,l,z).call(b,i),c}modrn(e){d(this,l,A).call(this,e!==0,"Division by zero in modrn");let t=BigInt(Math.abs(e));if(t===0n)throw new Error("Division by zero in modrn");let n=u(this,S)%t;return e<0?Number(-n):Number(n)}idivn(e){return d(this,l,A).call(this,e!==0),d(this,l,A).call(this,Math.abs(e)<=u(v,ae),"num is too large"),d(this,l,z).call(this,d(this,l,U).call(this)/BigInt(e)),this}divn(e){return this.clone().idivn(e)}egcd(e){var b,g,y;d(this,l,A).call(this,e.negative===0,"p must not be negative"),d(this,l,A).call(this,!e.isZero(),"p must not be zero");let t=d(this,l,U).call(this),n=u(e,S),i=1n,s=0n,o=0n,a=1n;for(;n!==0n;){let w=t/n,x=n;n=t%n,t=x,x=s,s=i-w*s,i=x,x=a,a=o-w*a,o=x}let c=new v(0n);d(b=c,l,z).call(b,i);let f=new v(0n);d(g=f,l,z).call(g,o);let h=new v(0n);return d(y=h,l,G).call(y,t<0n?-t:t,0),{a:c,b:f,gcd:h}}gcd(e){var s,o,a;let t=u(this,S),n=u(e,S);if(t===0n){let c=new v(0n);return d(s=c,l,z).call(s,n),c.iabs()}if(n===0n){let c=new v(0n);return d(o=c,l,z).call(o,t),c.iabs()}for(;n!==0n;){let c=t%n;t=n,n=c}let i=new v(0n);return d(a=i,l,G).call(a,t,0),i}invm(e){d(this,l,A).call(this,!e.isZero()&&u(e,E)===0,"Modulus for invm must be positive and non-zero");let t=this.egcd(e);if(!t.gcd.eqn(1))throw new Error("Inverse does not exist (numbers are not coprime).");return t.a.umod(e)}isEven(){return u(this,S)%2n===0n}isOdd(){return u(this,S)%2n===1n}andln(e){return d(this,l,A).call(this,e>=0),Number(u(this,S)&BigInt(e))}bincn(e){d(this,l,A).call(this,typeof e=="number"&&e>=0);let t=1n<<BigInt(e);return d(this,l,z).call(this,d(this,l,U).call(this)+t),this}isZero(){return u(this,S)===0n}cmpn(e){d(this,l,A).call(this,Math.abs(e)<=u(v,ae),"Number is too big");let t=d(this,l,U).call(this),n=BigInt(e);return t<n?-1:t>n?1:0}cmp(e){var i;let t=d(this,l,U).call(this),n=d(i=e,l,U).call(i);return t<n?-1:t>n?1:0}ucmp(e){return u(this,S)<u(e,S)?-1:u(this,S)>u(e,S)?1:0}gtn(e){return this.cmpn(e)===1}gt(e){return this.cmp(e)===1}gten(e){return this.cmpn(e)>=0}gte(e){return this.cmp(e)>=0}ltn(e){return this.cmpn(e)===-1}lt(e){return this.cmp(e)===-1}lten(e){return this.cmpn(e)<=0}lte(e){return this.cmp(e)<=0}eqn(e){return this.cmpn(e)===0}eq(e){return this.cmp(e)===0}toRed(e){return d(this,l,A).call(this,this.red==null,"Already a number in reduction context"),d(this,l,A).call(this,u(this,E)===0,"toRed works only with positives"),e.convertTo(this).forceRed(e)}fromRed(){return d(this,l,A).call(this,this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)}forceRed(e){return this.red=e,this}redAdd(e){return d(this,l,A).call(this,this.red,"redAdd works only with red numbers"),this.red.add(this,e)}redIAdd(e){return d(this,l,A).call(this,this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)}redSub(e){return d(this,l,A).call(this,this.red,"redSub works only with red numbers"),this.red.sub(this,e)}redISub(e){return d(this,l,A).call(this,this.red,"redISub works only with red numbers"),this.red.isub(this,e)}redShl(e){return d(this,l,A).call(this,this.red,"redShl works only with red numbers"),this.red.shl(this,e)}redMul(e){return d(this,l,A).call(this,this.red,"redMul works only with red numbers"),this.red.verify2(this,e),this.red.mul(this,e)}redIMul(e){return d(this,l,A).call(this,this.red,"redIMul works only with red numbers"),this.red.verify2(this,e),this.red.imul(this,e)}redSqr(){return d(this,l,A).call(this,this.red,"redSqr works only with red numbers"),this.red.verify1(this),this.red.sqr(this)}redISqr(){return d(this,l,A).call(this,this.red,"redISqr works only with red numbers"),this.red.verify1(this),this.red.isqr(this)}redSqrt(){return d(this,l,A).call(this,this.red,"redSqrt works only with red numbers"),this.red.verify1(this),this.red.sqrt(this)}redInvm(){return d(this,l,A).call(this,this.red,"redInvm works only with red numbers"),this.red.verify1(this),this.red.invm(this)}redNeg(){return d(this,l,A).call(this,this.red,"redNeg works only with red numbers"),this.red.verify1(this),this.red.neg(this)}redPow(e){return d(this,l,A).call(this,this.red!=null&&e.red==null,"redPow(normalNum)"),this.red.verify1(this),this.red.pow(this,e)}static fromHex(e,t){let n="be";return(t==="little"||t==="le")&&(n="le"),new v(e,16,n)}toHex(e=0){if(this.isZero()&&e===0)return"";let t=d(this,l,De).call(this);t!=="0"&&t.length%2!==0&&(t="0"+t);let n=e*2;for(;t.length<n;)t="0"+t;return(this.isNeg()?"-":"")+t}static fromJSON(e){return new v(e,16)}static fromNumber(e){return new v(e)}static fromString(e,t){return new v(e,t)}static fromSm(e,t="big"){var c;if(e.length===0)return new v(0n);let n=e.slice();t==="little"&&n.reverse();let i=0;n.length>0&&(n[0]&128)!==0&&(i=1,n[0]&=127);let s;if(gi)s=Jt.from(n).toString("hex");else{s="";for(let f of n)s+=f<16?"0"+f.toString(16):f.toString(16)}let o=s.length===0?0n:BigInt("0x"+s),a=new v(0n);return d(c=a,l,G).call(c,o,i),a}toSm(e="big"){if(u(this,S)===0n)return u(this,E)===1?[128]:[];let t=d(this,l,De).call(this);t.length%2!==0&&(t="0"+t);let n=t.length/2,i=Array.from({length:n});for(let o=0,a=0;o<t.length;o+=2){let c=Ze[t.codePointAt(o)],f=Ze[t.codePointAt(o+1)];i[a++]=(c&15)<<4|f&15}let s;return u(this,E)===1?(i[0]&128)===0?(s=i.slice(),s[0]|=128):s=[128,...i]:(i[0]&128)===0?s=i.slice():s=[0,...i],e==="little"?s.reverse():s}static fromBits(e,t=!1){let n=e>>>24,i=e&8388607,s=(e&8388608)!==0;if(t&&s)throw new Error("negative bit set");if(n===0&&i===0){if(s&&t)throw new Error("negative bit set for zero value");return new v(0n)}let o=new v(i);return n<=3?o.iushrn((3-n)*8):o.iushln((n-3)*8),s&&o.ineg(),o}toBits(){if(this.strip(),this.isZero()&&!this.isNeg())return 0;let e=this.isNeg(),n=this.abs().toArray("be"),i=0;for(;i<n.length-1&&n[i]===0;)i++;n=n.slice(i);let s=n.length,o;if(s===0)o=0;else if(s<=3){o=0;for(let c=0;c<s;c++)o=o<<8|n[c]}else o=n[0]<<16|n[1]<<8|n[2];(o&8388608)!==0&&s<=255&&(o>>>=8,s++);let a=s<<24|o;return e&&(a|=8388608),a>>>0}static fromScriptNum(e,t=!1,n){if(n!==void 0&&e.length>n)throw new Error("script number overflow");if(e.length===0)return new v(0n);if(t&&(e.at(-1)&127)===0&&(e.length<=1||(e.at(-2)&128)===0))throw new Error("non-minimally encoded script number");return v.fromSm(e,"little")}toScriptNum(){return this.toSm("little")}_invmp(e){d(this,l,A).call(this,u(e,E)===0,"p must not be negative for _invmp"),d(this,l,A).call(this,!e.isZero(),"p must not be zero for _invmp");let t=this.umod(e),n=e.subn(2);if(t.red!==null)return t.redPow(n);let i=new v(1n),s=t.clone(),o=n.clone();for(;!o.isZero();)o.isOdd()&&(i=i.mul(s).umod(e)),s=s.sqr().umod(e),o.iushrn(1);return i}mulTo(e,t){return I(t,S,u(this,S)*u(e,S)),I(t,E,u(t,S)===0n?0:u(this,E)^u(e,E)),I(t,M,this.length+e.length),t.red=null,t.normSign(),t}};Ge=new WeakMap,Ke=new WeakMap,pt=new WeakMap,gt=new WeakMap,ae=new WeakMap,mt=new WeakMap,Ve=new WeakMap,S=new WeakMap,E=new WeakMap,M=new WeakMap,l=new WeakSet,Dn=function(){if(u(this,S)===0n)return[0];let e=[],t=u(this,S);for(;t>0n;)e.push(Number(t&u(v,Ke))),t>>=u(v,Ge);return e.length>0?e:[0]},$n=function(e,t,n){t==="hex"&&(t=16),d(this,l,A).call(this,typeof t=="number"&&t===Math.trunc(t)&&t>=2&&t<=36,"Base must be an integer between 2 and 36");let i=e.toString().replace(/\s+/g,""),s=0,o=0;i.startsWith("-")?(s++,o=1):i.startsWith("+")&&s++;let a=i.substring(s);if(a.length===0){d(this,l,G).call(this,0n,o===1&&i.startsWith("-")?1:0),this.normSign();return}t===16?d(this,l,Zn).call(this,a,o,n):d(this,l,Gn).call(this,a,t,o,n)},Zn=function(e,t,n){if(n==="le"){let i=[],s=e;s.length%2!==0&&(s="0"+s);for(let o=0;o<s.length;o+=2){let a=s.substring(o,o+2),c=Number.parseInt(a,16);if(Number.isNaN(c))throw new Error("Invalid character in "+s);i.push(c)}d(this,l,qe).call(this,i,"le"),I(this,E,t),this.normSign()}else{let i;try{i=BigInt("0x"+e)}catch{throw new Error("Invalid character in "+e)}d(this,l,G).call(this,i,t),this.normSign()}},Gn=function(e,t,n,i){try{if(d(this,l,Vn).call(this,e,t),I(this,E,n),this.normSign(),i==="le"){let s=u(this,E);d(this,l,qe).call(this,this.toArray("be"),"le"),I(this,E,s),this.normSign()}}catch(s){let o=s;throw o.message.includes("Invalid character in string")||o.message.includes("Invalid digit for base")||o.message.startsWith("Invalid character:")?new Error("Invalid character"):o}},Kn=function(e,t){if(e===0n)return"0";if(t<2||t>36)throw new Error("Base must be between 2 and 36");let n="0123456789abcdefghijklmnopqrstuvwxyz",i="",s=e>0n?e:-e,o=BigInt(t);for(;s>0n;)i=n[Number(s%o)]+i,s/=o;return i},Vn=function(e,t){I(this,S,0n);let n=BigInt(t),i=v.groupSizes[t],s=BigInt(v.groupBases[t]);(i===0||s===0n)&&(i=Math.floor(Math.log(67108863)/Math.log(t)),i===0&&(i=1),s=n**BigInt(i));let o=0,a=e.length,c=a%i;if(c===0&&a>0&&(c=i),c>0){let f=e.substring(o,o+c);I(this,S,BigInt(d(this,l,Qt).call(this,f,t))),o+=c}for(;o<a;){let f=e.substring(o,o+i),h=BigInt(d(this,l,Qt).call(this,f,t));I(this,S,u(this,S)*s+h),o+=i}d(this,l,te).call(this)},Qt=function(e,t){let n=0;for(let i=0;i<e.length;i++){let s=e.codePointAt(i),o;if(s>=48&&s<=57)o=s-48;else if(s>=65&&s<=90)o=s-65+10;else if(s>=97&&s<=122)o=s-97+10;else throw new Error("Invalid character: "+e[i]);if(o>=t)throw new Error("Invalid character");n=n*t+o}return n},G=function(e,t){I(this,S,e),I(this,E,e===0n?0:t),d(this,l,te).call(this)},te=function(){if(u(this,S)===0n)I(this,M,1),I(this,E,0);else{let e=u(this,S).toString(2).length;I(this,M,Math.max(1,Math.ceil(e/v.wordSize)))}},A=function(e,t="Assertion failed"){if(!e)throw new Error(t)},Yn=function(e,t="be"){if(d(this,l,A).call(this,BigInt(Math.abs(e))<=u(v,mt),"The number is larger than 2 ^ 53 (unsafe)"),d(this,l,A).call(this,e%1===0,"Number must be an integer for BigNumber conversion"),d(this,l,G).call(this,BigInt(Math.abs(e)),e<0?1:0),t==="le"){let n=u(this,E),i=this.toArray("be");d(this,l,qe).call(this,i,"le"),I(this,E,n),this.normSign()}return this},qe=function(e,t){if(e.length===0)return d(this,l,G).call(this,0n,0),this;let n=0n;if(t==="be")for(let i of e)n=n<<8n|BigInt(i&255);else for(let i=e.length-1;i>=0;i--)n=n<<8n|BigInt(e[i]&255);return d(this,l,G).call(this,n,0),this},De=function(){return u(this,S)===0n?"0":u(this,S).toString(16)},jn=function(e){let t=d(this,l,De).call(this);if(e>1)for(t!=="0"&&t.length%2!==0&&(t="0"+t);t.length%e!==0;)t="0"+t;return(this.isNeg()?"-":"")+t},Jn=function(e,t){var a;if(u(this,S)===0n)return d(a=v,me,Qn).call(a,t);let n=v.groupSizes[e],i=BigInt(v.groupBases[e]);(n===0||i===0n)&&(n=Math.floor(Math.log(Number.MAX_SAFE_INTEGER)/Math.log(e)),n===0&&(n=1),i=BigInt(e)**BigInt(n));let s="",o=u(this,S);for(;o>0n;){let c=o%i;o/=i;let f=d(this,l,Kn).call(this,c,e);s=(o>0n?d(this,l,er).call(this,f,n):f)+s}if(t>0)for(;s.length<t;)s="0"+s;return(u(this,E)===1?"-":"")+s},me=new WeakSet,Qn=function(e){let t="0";if(e>1)for(;t.length<e;)t="0"+t;return t},er=function(e,t){let n=t-e.length;return n<=0?e:n<v.zeros.length?v.zeros[n]+e:"0".repeat(n)+e},tr=function(e,t){let n=u(this,S),i=t?0:e.length-1,s=t?1:-1;for(let o of e){if(n===0n&&i>=0&&i<e.length)e[i]=0;else if(i>=0&&i<e.length)e[i]=Number(n&0xffn);else break;n>>=8n,i+=s}},U=function(){return u(this,E)===1?-u(this,S):u(this,S)},z=function(e){e<0n?(I(this,S,-e),I(this,E,1)):(I(this,S,e),I(this,E,0)),d(this,l,te).call(this),this.normSign()},$e=function(e,t,n=!1){let i=t(u(this,S),u(e,S)),s=u(this,M);return n&&(s=Math.max(this.length,e.length)),I(this,S,i),d(this,l,te).call(this),n&&I(this,M,Math.max(u(this,M),s)),this.strip()},bt=function(e,t,n=!1){return d(this,l,A).call(this,u(this,E)===0&&u(e,E)===0),d(this,l,$e).call(this,e,t,n)},ge=function(e,t){return this.length>=e.length?this.clone()[t](e):e.clone()[t](this)},en=function(e,t){if(typeof e=="number"){if(!Number.isFinite(e)||!Number.isInteger(e)||e<0)throw new Error(`${t} must be a non-negative integer`);return BigInt(e)}if(e<0n)throw new Error(`${t} must be a non-negative integer`);return e},nr=function(e,t,n,i){if(n==="div")return null;let s=e%t;return i===!0&&s<0n&&(s+=t<0n?-t:t),s},tn=function(e){var n;if(e===null)return null;let t=new v(0n);return d(n=t,l,z).call(n,e),t},P(v,me),p(v,"zeros",["","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(v,"groupSizes",[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(v,"groupBases",[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]),p(v,"wordSize",26),P(v,Ge,26n),P(v,Ke,(1n<<26n)-1n),P(v,pt,BigInt(Number.MAX_SAFE_INTEGER)),P(v,gt,BigInt(Number.MIN_SAFE_INTEGER)),P(v,ae,67108863),P(v,mt,(1n<<53n)-1n),P(v,Ve,1048576);var m=v;var Ye=class{constructor(e,t){p(this,"name");p(this,"p");p(this,"k");p(this,"n");p(this,"tmp");this.name=e,this.p=new m(t,16),this.n=this.p.bitLength(),this.k=new m(BigInt(1)).iushln(this.n).isub(this.p),this.tmp=this._tmp()}_tmp(){let e=new m(BigInt(0)),t=Math.ceil(this.n/m.wordSize);return e.expand(Math.max(1,t)),e}ireduce(e){let t=e,n;do this.split(t,this.tmp),this.imulK(t),t.iadd(this.tmp),n=t.bitLength();while(n>this.n);let i=n<this.n?-1:t.ucmp(this.p);return i===0?t.words=[0]:i>0&&t.isub(this.p),t.strip(),t}split(e,t){e.iushrn(this.n,0,t)}imulK(e){return e.imul(this.k)}};var je=class extends Ye{constructor(){super("k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}split(e,t){let i=e.words,s=e.length,o=Math.min(s,9),a=Array.from({length:o+(s>9?1:0)},()=>0);for(let w=0;w<o;w++)a[w]=i[w];let c=o;if(s<=9){let w=Array.from({length:c},()=>0);for(let x=0;x<c;++x)w[x]=a[x];t.words=w,e.words=[0];return}let f=i[9];a[c++]=f&4194303;let h=Array.from({length:c},()=>0);for(let w=0;w<c;++w)h[w]=a[w];t.words=h;let b=Array.from({length:Math.max(1,s-9)},()=>0),g=0;for(let w=10;w<s;w++){let x=Math.trunc(i[w]);g<b.length&&(b[g++]=(x&4194303)<<4|f>>>22),f=x}f>>>=22,g<b.length?b[g++]=f:f!==0&&b.length>0;let y=Array.from({length:g},()=>0);for(let w=0;w<g;++w)y[w]=b[w];e.words=y}imulK(e){let t=e.words,n=e.length,i=n+2,s=Array.from({length:i},()=>0);for(let a=0;a<n;a++)s[a]=t[a];let o=0;for(let a=0;a<i;a++){let c=Math.trunc(s[a]);o+=c*977,s[a]=o&67108863,o=c*64+Math.trunc(o/67108864)}return e.words=s,e}};var we=class{constructor(e){p(this,"prime");p(this,"m");if(e==="k256"){let t=new je;this.m=t.p,this.prime=t}else this.assert(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}assert(e,t="Assertion failed"){if(!e)throw new Error(t)}verify1(e){this.assert(e.negative===0,"red works only with positives"),this.assert(e.red,"red works only with red numbers")}verify2(e,t){this.assert((e.negative|t.negative)===0,"red works only with positives"),this.assert(e.red!=null&&e.red===t.red,"red works only with red numbers")}imod(e){return this.prime!=null?this.prime.ireduce(e).forceRed(this):(m.move(e,e.umod(this.m).forceRed(this)),e)}neg(e){return e.isZero()?e.clone():this.m.sub(e).forceRed(this)}add(e,t){this.verify2(e,t);let n=e.clone();return n.iadd(t),n.isub(this.m),n.isNeg()&&n.iadd(this.m),n}iadd(e,t){return this.verify2(e,t),e.iadd(t),e.isub(this.m),e.isNeg()&&e.iadd(this.m),e}sub(e,t){this.verify2(e,t);let n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n.forceRed(this)}isub(e,t){this.verify2(e,t);let n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n}shl(e,t){return this.verify1(e),this.imod(e.ushln(t))}imul(e,t){return this.verify2(e,t),this.imod(e.imul(t))}mul(e,t){return this.verify2(e,t),this.imod(e.mul(t))}isqr(e){return this.imul(e,e.clone())}sqr(e){return this.mul(e,e)}sqrt(e){if(e.isZero())return e.clone();let t=this.m.andln(3);if(this.assert(t%2===1),t===3){let w=this.m.add(new m(1)).iushrn(2);return this.pow(e,w)}let n=this.m.subn(1),i=0;for(;!n.isZero()&&n.andln(1)===0;)i++,n.iushrn(1);this.assert(!n.isZero());let s=new m(1).toRed(this),o=s.redNeg(),a=this.m.subn(1).iushrn(1),c=this.m.bitLength(),f=new m(2*c*c).toRed(this);for(;this.pow(f,a).cmp(o)!==0;)f.redIAdd(o);let h=this.pow(f,n),b=this.pow(e,n.addn(1).iushrn(1)),g=this.pow(e,n),y=i;for(;g.cmp(s)!==0;){let w=g,x=0;for(;w.cmp(s)!==0;)w=w.redSqr(),x++;this.assert(x<y);let k=this.pow(h,new m(1).iushln(y-x-1));b=b.redMul(k),h=k.redSqr(),g=g.redMul(h),y=x}return b}invm(e){let t=e._invmp(this.m);return t.negative!==0?(t.negative=0,this.imod(t).redNeg()):this.imod(t)}pow(e,t){if(this.verify1(e),t.isZero())return new m(1).toRed(this);let n=new m(1).toRed(this),i=e.clone(),s=t.bitLength();for(let o=s-1;o>=0;o--)n=this.sqr(n),t.testn(o)&&(n=this.mul(n,i));return n}convertTo(e){let t=e.umod(this.m);return t===e?t.clone():t}convertFrom(e){let t=e.clone();return t.red=null,t}};var Je=class extends we{constructor(t){super(t);p(this,"shift");p(this,"r");p(this,"r2");p(this,"rinv");p(this,"minv");this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new m(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)}convertTo(t){return this.imod(t.ushln(this.shift))}convertFrom(t){let n=this.imod(t.mul(this.rinv));return n.red=null,n}imul(t,n){if(t.isZero()||n.isZero())return t.words[0]=0,t.length=1,t;let i=t.imul(n),s=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=i.isub(s).iushrn(this.shift),a=o;return o.cmp(this.m)>=0?a=o.isub(this.m):o.cmpn(0)<0&&(a=o.iadd(this.m)),a.forceRed(this)}mul(t,n){if(t.isZero()||n.isZero())return new m(0).forceRed(this);let i=t.mul(n),s=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=i.isub(s).iushrn(this.shift),a=o;return o.cmp(this.m)>=0?a=o.isub(this.m):o.cmpn(0)<0&&(a=o.iadd(this.m)),a.forceRed(this)}invm(t){return this.imod(t._invmp(this.m).mul(this.r2)).forceRed(this)}};var mi=new TextEncoder;function wt(r){return mi.encode(r)}var wi=/^[0-9a-fA-F]*$/;function Qe(r){if(typeof r!="string")throw new TypeError("Invalid hex string");if(r.length!==0&&!wi.test(r))throw new Error("Invalid hex string")}function rr(r){if(Qe(r),r.length===0)return"";let e=r.toLowerCase();return e.length%2!==0&&(e="0"+e),e}var rn=(r,e="Hash assertion failed")=>{if(!r)throw new Error(e)},sn=class{constructor(e,t,n,i){p(this,"pending",null);p(this,"pendingTotal",0);p(this,"blockSize");p(this,"outSize");p(this,"endian");p(this,"_delta8");p(this,"_delta32");p(this,"padLength");p(this,"hmacStrength");this.blockSize=e,this.outSize=t,this.hmacStrength=n,this.padLength=i/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}_update(e,t){throw new Error("Not implemented")}_digest(){throw new Error("Not implemented")}_digestHex(){throw new Error("Not implemented")}update(e,t){if(e=lr(e,t),this.pending==null?this.pending=e:this.pending=this.pending.concat(e),this.pendingTotal+=e.length,this.pending.length>=this._delta8){e=this.pending;let n=e.length%this._delta8;this.pending=e.slice(e.length-n,e.length),this.pending.length===0&&(this.pending=null),e=Ri(e,0,e.length-n,this.endian);for(let i=0;i<e.length;i+=this._delta32)this._update(e,i)}return this}digest(){return this.update(this._pad()),rn(this.pending===null),this._digest()}digestHex(){return this.update(this._pad()),rn(this.pending===null),this._digestHex()}_pad(){let e=this.pendingTotal;if(!Number.isSafeInteger(e)||e<0)throw new Error("Message too long for this hash function");let t=this._delta8,n=t-(e+this.padLength)%t,i=Array.from({length:n+this.padLength});i[0]=128;let s;for(s=1;s<n;s++)i[s]=0;let o=this.padLength,a=1n<<BigInt(o*8),c=BigInt(e)*8n;if(c>=a)throw new Error("Message too long for this hash function");if(this.endian==="big"){let f=Array.from({length:o});for(let h=o-1;h>=0;h--)f[h]=Number(c&0xffn),c>>=8n;for(let h=0;h<o;h++)i[s++]=f[h]}else for(let f=0;f<o;f++)i[s++]=Number(c&0xffn),c>>=8n;return i}};function xi(r,e,t){let n=r.codePointAt(e);return n<128?(t.push(n),e):n<2048?(t.push(n>>6|192,n&63|128),e):n>65535?(t.push(n>>18|240,n>>12&63|128,n>>6&63|128,n&63|128),e+1):(t.push(n>>12|224,n>>6&63|128,n&63|128),e)}function yi(r){let e=[],t=0;for(;t<r.length;)t=xi(r,t,e)+1;return e}function Si(r){Qe(r);let e=rr(r),t=[];for(let n=0;n<e.length;n+=2)t.push(Number.parseInt(e[n]+e[n+1],16));return t}function vi(r){let e=[];for(let t=0;t<r.length;t++)e[t]=Math.trunc(r[t]);return e}function lr(r,e){return Array.isArray(r)?r.slice():r?typeof r=="string"?e==="hex"?Si(r):yi(r):vi(r):[]}function Ii(r){return ds(r)}function Ei(r,e){let t="";for(let n of r)e==="little"&&(n=Ii(n)),t+=Ai(n.toString(16));return t}function Ai(r){return r.length===7?"0"+r:r.length===6?"00"+r:r.length===5?"000"+r:r.length===4?"0000"+r:r.length===3?"00000"+r:r.length===2?"000000"+r:r.length===1?"0000000"+r:r}var on=typeof globalThis>"u"?void 0:globalThis.Buffer,Bi=on!=null&&typeof on.from=="function",ir="0123456789abcdef",an=Array.from({length:256});for(let r=0;r<an.length;r++)an[r]=ir[r>>4&15]+ir[r&15];function Ni(r){if(Bi)return on.from(r).toString("hex");let e=Array.from({length:r.length});for(let t=0;t<r.length;t++)e[t]=an[r[t]];return e.join("")}var hr=(()=>{let r=typeof globalThis>"u"?void 0:globalThis.process,e=r?.getBuiltinModule;if(typeof e=="function")try{let t=e.call(r,"node:crypto");if(t!=null)return t}catch{}})();function Se(r,e){return r instanceof Uint8Array?r:Array.isArray(r)?new Uint8Array(r):Uint8Array.from(lr(r,e))}function ln(r){return typeof r=="string"?Se(r,"hex"):Se(r)}function ur(r,e,t){r!=null?r.update(t):e?.update(t)}function br(r,e){return r!=null?Array.from(r.digest()):e!=null?Array.from(e.digest()):[]}function pr(r,e){return r!=null?r.digest("hex"):e!=null?Ni(e.digest()):""}function ki(r){let e=hr?.createHash;if(typeof e=="function")try{return e(r)}catch{return}}function hn(r,e){let t=hr?.createHmac;if(typeof t=="function")try{return t(r,e)}catch{return}}function gr(r,e,t){let n=ki(r);if(n!=null)return n.update(Se(e,t)),n.digest()}function mr(r,e,t,n){let i=hn(r,ln(e));if(i!=null)return i.update(Se(t,n)),i.digest()}function Ri(r,e,t,n){let i=t-e;rn(i%4===0);let s=Array.from({length:i/4});for(let o=0,a=e;o<s.length;o++,a+=4){let c;n==="big"?c=r[a]<<24|r[a+1]<<16|r[a+2]<<8|r[a+3]:c=r[a+3]<<24|r[a+2]<<16|r[a+1]<<8|r[a],s[o]=c>>>0}return s}function Mi(r,e){let t=Array.from({length:r.length*4});for(let n=0,i=0;n<r.length;n++,i+=4){let s=r[n];e==="big"?(t[i]=s>>>24,t[i+1]=s>>>16&255,t[i+2]=s>>>8&255,t[i+3]=s&255):(t[i+3]=s>>>24,t[i+2]=s>>>16&255,t[i+1]=s>>>8&255,t[i]=s&255)}return t}function ne(r,e){return r>>>e|r<<32-e}function xt(r,e){return r<<e|r>>>32-e}function X(r,e){return r+e>>>0}function et(r,e,t){return r+e+t>>>0}function sr(r,e,t,n){return r+e+t+n>>>0}function Ti(r,e,t,n,i){return r+e+t+n+i>>>0}function Li(r,e,t){return r&e^~r&t}function Pi(r,e,t){return r&e^r&t^e&t}function Ui(r){return ne(r,2)^ne(r,13)^ne(r,22)}function Ci(r){return ne(r,6)^ne(r,11)^ne(r,25)}function Hi(r){return ne(r,7)^ne(r,18)^r>>>3}function _i(r){return ne(r,17)^ne(r,19)^r>>>10}var zi=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],Oi=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],Fi=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],Wi=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11];function or(r,e,t,n){return r<=15?e^t^n:r<=31?e&t|~e&n:r<=47?(e|~t)^n:r<=63?e&n|t&~n:e^(t|~n)}function Xi(r){return r<=15?0:r<=31?1518500249:r<=47?1859775393:r<=63?2400959708:2840853838}function qi(r){return r<=15?1352829926:r<=31?1548603684:r<=47?1836072691:r<=63?2053994217:0}var cn=class extends sn{constructor(){super(512,160,192,64);p(this,"h");this.endian="little",this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}_update(t,n){let i=this.h[0],s=this.h[1],o=this.h[2],a=this.h[3],c=this.h[4],f=i,h=s,b=o,g=a,y=c,w;for(let x=0;x<80;x++)w=X(xt(sr(i,or(x,s,o,a),t[zi[x]+n],Xi(x)),Fi[x]),c),i=c,c=a,a=xt(o,10),o=s,s=w,w=X(xt(sr(f,or(79-x,h,b,g),t[Oi[x]+n],qi(x)),Wi[x]),y),f=y,y=g,g=xt(b,10),b=h,h=w;w=et(this.h[1],o,g),this.h[1]=et(this.h[2],a,y),this.h[2]=et(this.h[3],c,f),this.h[3]=et(this.h[4],i,h),this.h[4]=et(this.h[0],s,b),this.h[0]=w}_digest(){return Mi(this.h,"little")}_digestHex(){return Ei(this.h,"little")}};var xe,he,tt=class{constructor(e){P(this,xe);P(this,he);p(this,"blockSize",64);p(this,"outSize",32);let t=ln(e);I(this,he,hn("sha256",t)),u(this,he)==null&&I(this,xe,new He(ss,t))}update(e,t){return ur(u(this,he),u(this,xe),Se(e,t)),this}digest(){return br(u(this,he),u(this,xe))}digestHex(){return pr(u(this,he),u(this,xe))}};xe=new WeakMap,he=new WeakMap;var ye,ue,fn=class{constructor(e){P(this,ye);P(this,ue);p(this,"blockSize",128);p(this,"outSize",32);let t=ln(e);I(this,ue,hn("sha512",t)),u(this,ue)==null&&I(this,ye,new He(cs,t))}update(e,t){return ur(u(this,ue),u(this,ye),Se(e,t)),this}digest(){return br(u(this,ue),u(this,ye))}digestHex(){return pr(u(this,ue),u(this,ye))}};ye=new WeakMap,ue=new WeakMap;function It(r,e){let t=gr("sha256",r,e);return t??new Nt().update(Se(r,e)).digest()}function Di(r,e){return gr("ripemd160",r,e)}var ve=(r,e)=>Array.from(It(r,e));var un=(r,e)=>Array.from(It(It(r,e))),wr=(r,e)=>{let t=It(r,e),n=Di(t);return n!=null?Array.from(n):new cn().update(t).digest()},kt=(r,e,t)=>{let n=mr("sha256",r,e,t);return n!=null?Array.from(n):new tt(r).update(e,t).digest()},xr=(r,e,t)=>{let n=mr("sha512",r,e,t);return n!=null?Array.from(n):new fn(r).update(e,t).digest()};function $i(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"}function ar(r){if(!Number.isSafeInteger(r)||r<0)throw new Error(`positive integer expected, got ${r}`)}function Rt(r,...e){if(!$i(r))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(r.length)){let t=e.join(",");throw new Error(`Uint8Array expected of length ${t}, got length=${r.length}`)}}function Zi(r){if(typeof r!="function"||typeof r.create!="function")throw new TypeError("Hash should be wrapped by utils.createHasher");ar(r.outputLen),ar(r.blockLen)}function Et(r,e=!0){if(r.destroyed===!0)throw new Error("Hash instance has been destroyed");if(e&&r.finished===!0)throw new Error("Hash#digest() has already been called")}function Gi(r,e){Rt(r);let t=e.outputLen;if(r.length<t)throw new Error(`digestInto() expects output buffer of length at least ${t}`)}function Ce(...r){for(let e of r)e.fill(0)}function nn(r){return new DataView(r.buffer,r.byteOffset,r.byteLength)}function bn(r){return typeof r=="string"&&(r=Ki(r)),Rt(r),r}function Ki(r){if(typeof r!="string")throw new Error("string expected");return wt(r)}var At=class{};function yr(r){let e=n=>r().update(bn(n)).digest(),t=r();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>r(),e}var yt=BigInt(2**32-1),cr=BigInt(32);function Vi(r,e=!1){return e?{h:Number(r&yt),l:Number(r>>cr&yt)}:{h:Number(r>>cr&yt)|0,l:Number(r&yt)|0}}function Yi(r,e=!1){let t=r.length,n=new Uint32Array(t),i=new Uint32Array(t);for(let s=0;s<t;s++){let{h:o,l:a}=Vi(r[s],e);n[s]=o,i[s]=a}return[n,i]}var fr=(r,e,t)=>r>>>t,dr=(r,e,t)=>r<<32-t|e>>>t,Pe=(r,e,t)=>r>>>t|e<<32-t,Ue=(r,e,t)=>r<<32-t|e>>>t,St=(r,e,t)=>r<<64-t|e>>>t-32,vt=(r,e,t)=>r>>>t-32|e<<64-t;function oe(r,e,t,n){let i=(e>>>0)+(n>>>0);return{h:r+t+(i/2**32|0)|0,l:i|0}}var ji=(r,e,t)=>(r>>>0)+(e>>>0)+(t>>>0),Ji=(r,e,t,n)=>Math.trunc(e+t+n+Math.trunc(r/2**32)),Qi=(r,e,t,n)=>(r>>>0)+(e>>>0)+(t>>>0)+(n>>>0),es=(r,e,t,n,i)=>Math.trunc(e+t+n+i+Math.trunc(r/2**32)),ts=(r,e,t,n,i)=>(r>>>0)+(e>>>0)+(t>>>0)+(n>>>0)+(i>>>0),ns=(r,e,t,n,i,s)=>e+t+n+i+s+(r/2**32|0)|0,Bt=class extends At{constructor(t,n,i,s){super();p(this,"blockLen");p(this,"outputLen");p(this,"padOffset");p(this,"isLE");p(this,"buffer");p(this,"view");p(this,"finished",!1);p(this,"length",0);p(this,"pos",0);p(this,"destroyed",!1);this.blockLen=t,this.outputLen=n,this.padOffset=i,this.isLE=s,this.buffer=new Uint8Array(t),this.view=nn(this.buffer)}update(t){Et(this),t=bn(t),Rt(t);let{view:n,buffer:i,blockLen:s}=this,o=t.length;for(let a=0;a<o;){let c=Math.min(s-this.pos,o-a);if(c===s){let f=nn(t);for(;s<=o-a;a+=s)this.process(f,a);continue}i.set(t.subarray(a,a+c),this.pos),this.pos+=c,a+=c,this.pos===s&&(this.process(n,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){Et(this),Gi(t,this),this.finished=!0;let{buffer:n,view:i,blockLen:s,isLE:o}=this,{pos:a}=this;n[a++]=128,Ce(this.buffer.subarray(a)),this.padOffset>s-a&&(this.process(i,0),a=0);for(let g=a;g<s;g++)n[g]=0;rs(i,s-8,BigInt(this.length*8),o),this.process(i,0);let c=nn(t),f=this.outputLen;if(f%4!==0)throw new Error("_sha2: outputLen should be aligned to 32bit");let h=f/4,b=this.get();if(h>b.length)throw new Error("_sha2: outputLen bigger than state");for(let g=0;g<h;g++)c.setUint32(4*g,b[g],o)}digest(){let{buffer:t,outputLen:n}=this;this.digestInto(t);let i=t.slice(0,n);return this.destroy(),i}_cloneInto(t){t??(t=new this.constructor),t.set(...this.get());let{blockLen:n,buffer:i,length:s,finished:o,destroyed:a,pos:c}=this;return t.destroyed=a,t.finished=o,t.length=s,t.pos=c,s%n!==0&&t.buffer.set(i),t}clone(){return this._cloneInto()}};function rs(r,e,t,n){if(typeof r.setBigUint64=="function")return r.setBigUint64(e,t,n);let i=BigInt(32),s=BigInt(4294967295),o=Number(t>>i&s),a=Number(t&s),c=n?4:0,f=n?0:4;r.setUint32(e+c,o,n),r.setUint32(e+f,a,n)}var ce=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),is=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),fe=new Uint32Array(64),Nt=class extends Bt{constructor(t=32){super(64,t,8,!1);p(this,"A",ce[0]|0);p(this,"B",ce[1]|0);p(this,"C",ce[2]|0);p(this,"D",ce[3]|0);p(this,"E",ce[4]|0);p(this,"F",ce[5]|0);p(this,"G",ce[6]|0);p(this,"H",ce[7]|0)}get(){let{A:t,B:n,C:i,D:s,E:o,F:a,G:c,H:f}=this;return[t,n,i,s,o,a,c,f]}set(...[t,n,i,s,o,a,c,f]){this.A=t|0,this.B=n|0,this.C=i|0,this.D=s|0,this.E=o|0,this.F=a|0,this.G=c|0,this.H=f|0}process(t,n){for(let g=0;g<16;g++,n+=4)fe[g]=t.getUint32(n);for(let g=16;g<64;g++){let y=fe[g-15],w=fe[g-2],x=Hi(y),k=_i(w);fe[g]=X(X(x,fe[g-7]),X(k,fe[g-16]))}let{A:i,B:s,C:o,D:a,E:c,F:f,G:h,H:b}=this;for(let g=0;g<64;g++){let y=Ti(b,Ci(c),Li(c,f,h),is[g],fe[g]),w=X(Ui(i),Pi(i,s,o));b=h,h=f,f=c,c=X(a,y),a=o,o=s,s=i,i=X(y,w)}this.A=X(this.A,i),this.B=X(this.B,s),this.C=X(this.C,o),this.D=X(this.D,a),this.E=X(this.E,c),this.F=X(this.F,f),this.G=X(this.G,h),this.H=X(this.H,b)}roundClean(){Ce(fe)}destroy(){Ce(this.buffer),this.set(0,0,0,0,0,0,0,0)}},ss=yr(()=>new Nt),W=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),Sr=Yi(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(BigInt)),os=Sr[0],as=Sr[1],de=new Uint32Array(80),le=new Uint32Array(80),dn=class extends Bt{constructor(t=64){super(128,t,16,!1);p(this,"Ah",W[0]|0);p(this,"Al",W[1]|0);p(this,"Bh",W[2]|0);p(this,"Bl",W[3]|0);p(this,"Ch",W[4]|0);p(this,"Cl",W[5]|0);p(this,"Dh",W[6]|0);p(this,"Dl",W[7]|0);p(this,"Eh",W[8]|0);p(this,"El",W[9]|0);p(this,"Fh",W[10]|0);p(this,"Fl",W[11]|0);p(this,"Gh",W[12]|0);p(this,"Gl",W[13]|0);p(this,"Hh",W[14]|0);p(this,"Hl",W[15]|0)}get(){let{Ah:t,Al:n,Bh:i,Bl:s,Ch:o,Cl:a,Dh:c,Dl:f,Eh:h,El:b,Fh:g,Fl:y,Gh:w,Gl:x,Hh:k,Hl:N}=this;return[t,n,i,s,o,a,c,f,h,b,g,y,w,x,k,N]}set(...[t,n,i,s,o,a,c,f,h,b,g,y,w,x,k,N]){this.Ah=t|0,this.Al=n|0,this.Bh=i|0,this.Bl=s|0,this.Ch=o|0,this.Cl=a|0,this.Dh=c|0,this.Dl=f|0,this.Eh=h|0,this.El=b|0,this.Fh=g|0,this.Fl=y|0,this.Gh=w|0,this.Gl=x|0,this.Hh=k|0,this.Hl=N|0}process(t,n){for(let R=0;R<16;R++,n+=8)de[R]=t.getUint32(n),le[R]=t.getUint32(n+4);for(let R=16;R<80;R++){let O=de[R-15]|0,V=le[R-15]|0,We=Pe(O,V,1)^Pe(O,V,8)^fr(O,V,7),ee=Ue(O,V,1)^Ue(O,V,8)^dr(O,V,7),J=de[R-2]|0,Q=le[R-2]|0,Te=Pe(J,Q,19)^St(J,Q,61)^fr(J,Q,6),Xe=Ue(J,Q,19)^vt(J,Q,61)^dr(J,Q,6),Le=Qi(ee,Xe,le[R-7],le[R-16]),Kt=es(Le,We,Te,de[R-7],de[R-16]);de[R]=Kt|0,le[R]=Le|0}let{Ah:i,Al:s,Bh:o,Bl:a,Ch:c,Cl:f,Dh:h,Dl:b,Eh:g,El:y,Fh:w,Fl:x,Gh:k,Gl:N,Hh:L,Hl:_}=this;for(let R=0;R<80;R++){let O=Pe(g,y,14)^Pe(g,y,18)^St(g,y,41),V=Ue(g,y,14)^Ue(g,y,18)^vt(g,y,41),We=g&w^~g&k,ee=y&x^~y&N,J=ts(_,V,ee,as[R],le[R]),Q=ns(J,L,O,We,os[R],de[R]),Te=J|0,Xe=Pe(i,s,28)^St(i,s,34)^St(i,s,39),Le=Ue(i,s,28)^vt(i,s,34)^vt(i,s,39),Kt=i&o^i&c^o&c,ci=s&a^s&f^a&f;L=k|0,_=N|0,k=w|0,N=x|0,w=g|0,x=y|0,{h:g,l:y}=oe(h|0,b|0,Q|0,Te|0),h=c|0,b=f|0,c=o|0,f=a|0,o=i|0,a=s|0;let Wn=ji(Le,ci,Te);i=Ji(Wn,Xe,Kt,Q),s=Wn|0}({h:i,l:s}=oe(i,s,this.Ah,this.Al)),{h:o,l:a}=oe(o,a,this.Bh,this.Bl),{h:c,l:f}=oe(c,f,this.Ch,this.Cl),{h,l:b}=oe(h,b,this.Dh,this.Dl),{h:g,l:y}=oe(g,y,this.Eh,this.El),{h:w,l:x}=oe(w,x,this.Fh,this.Fl),{h:k,l:N}=oe(k,N,this.Gh,this.Gl),{h:L,l:_}=oe(L,_,this.Hh,this.Hl),this.set(i,s,o,a,c,f,h,b,g,y,w,x,k,N,L,_)}roundClean(){Ce(de,le)}destroy(){Ce(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},cs=yr(()=>new dn),He=class extends At{constructor(t,n){super();p(this,"oHash");p(this,"iHash");p(this,"blockLen");p(this,"outputLen");p(this,"finished",!1);p(this,"destroyed",!1);Zi(t);let i=bn(n);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new TypeError("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let s=this.blockLen,o=new Uint8Array(s);o.set(i.length>s?t.create().update(i).digest():i);for(let a=0;a<o.length;a++)o[a]^=54;this.iHash.update(o),this.oHash=t.create();for(let a=0;a<o.length;a++)o[a]^=106;this.oHash.update(o),Ce(o)}update(t){return Et(this),this.iHash.update(t),this}digestInto(t){Et(this),Rt(t,this.outputLen),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){let t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t??(t=Object.create(Object.getPrototypeOf(this),{}));let{oHash:n,iHash:i,finished:s,destroyed:o,blockLen:a,outputLen:c}=this;return t=t,t.finished=s,t.destroyed=o,t.blockLen=a,t.outputLen=c,t.oHash=n._cloneInto(t.oHash??void 0),t.iHash=i._cloneInto(t.iHash??void 0),t}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}};var fs=(r,e,t)=>new He(r,e).update(t).digest();fs.create=(r,e)=>new He(r,e);function ds(r){return(r>>>24|r>>>8&65280|r<<8&16711680|(r&255)<<24)>>>0}var po=(()=>{let r=new ArrayBuffer(4),e=new Uint32Array(r),t=new Uint8Array(r);return e[0]=16909060,t[0]===4})();var Mt=globalThis.Buffer,Ir=Mt!=null&&typeof Mt.from=="function";var vr="0123456789abcdef",Er=Array.from({length:256},()=>"");for(let r=0;r<256;r++)Er[r]=vr[r>>4&15]+vr[r&15];var Y=r=>Ir?Mt.from(r).toString("hex"):r.length===0?"":Array.from(r,e=>Er[e&255]).join("");var $=(r,e)=>{if(Array.isArray(r))return r.slice();if(r===void 0)return[];if(typeof r!="string")return Array.from(r,t=>Math.trunc(t));switch(e){case"hex":return ls(r);case"base64":return ps(r);default:return gs(r)}},rt=new Int8Array(256).fill(-1);for(let r=0;r<10;r++)rt[48+r]=r;for(let r=0;r<6;r++)rt[65+r]=10+r,rt[97+r]=10+r;var ls=r=>Array.from(hs(r)),hs=r=>{Qe(r);let e=r.length%2===0?r:"0"+r;if(Ir){let i=Mt.from(e,"hex");return new Uint8Array(i.buffer,i.byteOffset,i.byteLength)}let t=new Uint8Array(e.length/2),n=0;for(let i=0;i<e.length;i+=2){let s=rt[e.codePointAt(i)],o=rt[e.codePointAt(i+1)];t[n++]=s<<4|o}return t},us=r=>{if(typeof r!="string")throw new TypeError("msg must be a string");let e=r.trim().replaceAll(/[\r\n\t\f\v ]+/g,"").replaceAll("-","+").replaceAll("_","/"),t=e.indexOf("=");if(t===-1)return e;let n=e.slice(t);if(!/^={1,2}$/.test(n)||e.slice(0,t).includes("="))throw new Error("Invalid base64 padding");return e.slice(0,t)},bs=(r,e)=>{if(r>=65&&r<=90)return r-65;if(r>=97&&r<=122)return r-97+26;if(r>=48&&r<=57)return r-48+52;if(r===43)return 62;if(r===47)return 63;throw new Error(`Invalid base64 character at index ${e}`)};function ps(r){let e=us(r),t=[],n=0,i=0;for(let s=0;s<e.length;s++){let o=e.codePointAt(s),a=bs(o,s);for(n=n<<6|a,i+=6;i>=8;)i-=8,t.push(n>>i&255),n&=(1<<i)-1}return t}function gs(r){return Array.from(wt(r))}function pn(r){let e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t="",n;for(n=0;n<r.length;n+=3){let i=r[n],s=n+1<r.length?r[n+1]:0,o=n+2<r.length?r[n+2]:0,a=i>>2,c=(i&3)<<4|s>>4,f=(s&15)<<2|o>>6,h=o&63;t+=e.charAt(a)+e.charAt(c),t+=n+1<r.length?e.charAt(f):"=",t+=n+2<r.length?e.charAt(h):"="}return t}var nt="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",Tt=r=>{if(r===""||typeof r!="string")throw new Error(`Expected base58 string but got \u201C${r}\u201D`);let e=r.match(/[^1-9A-HJ-NP-Za-km-z]/gmu);if(e!==null)throw new Error(`Invalid base58 character \u201C${e.join("")}\u201D`);let t=r.match(/^1+/gmu),n=t===null?0:t[0].length,i=(r.length-n)*(Math.log(58)/Math.log(256))+1>>>0;return[...new Uint8Array([...new Uint8Array(n),...Array.from(r).map(o=>nt.indexOf(o)).reduce((o,a)=>(o=o.map(c=>{let f=c*58+a;return a=f>>8,f}),o),new Uint8Array(i)).reverse().filter((o=>a=>o=o||a)(!1))])]},Lt=r=>{let e=Array.from({length:256},()=>-1);for(let n=0;n<nt.length;++n)e[nt.codePointAt(n)]=n;let t=[];for(let n of r){let i=n;for(let s=0;s<t.length;++s){let o=(e[t[s]]<<8)+i,a=Math.trunc(o/58),c=o-a*58;t[s]=nt.codePointAt(c),i=a}for(;i!==0;){let s=Math.trunc(i/58),o=i-s*58;t.push(nt.codePointAt(o)),i=s}}for(let n of r)if(n===0)t.push("1".codePointAt(0));else break;return t.reverse(),String.fromCodePoint(...t)},Pt=(r,e=[0])=>{let t=un([...e,...r]);return t=[...e,...r,...t.slice(0,4)],Lt(t)},Ar=(r,e,t=1)=>{let n=Tt(r),i=n.slice(0,t),s=n.slice(t,-4),o=[...i,...s];return o=un(o),n.slice(-4).forEach((a,c)=>{if(a!==o[c])throw new Error("Invalid checksum")}),e==="hex"&&(i=Y(i),s=Y(s)),{prefix:i,data:s}};var vo=new m(2).pow(new m(63)),Io=new m(2).pow(new m(64));var gn;function Br(r,e){let t=r.andln(3)+e&3;return t===3?-1:t}function Nr(r,e,t,n){if((t&1)===0)return 0;let i=r.andln(7)+e&7;return(i===3||i===5)&&n===2?-t:t}function kr(r,e){return 2*r===e+1?1-r:r}var Ut,Rr,mn=class mn{constructor(){P(this,Ut);p(this,"p");p(this,"red");p(this,"redN");p(this,"zero");p(this,"one");p(this,"two");p(this,"g");p(this,"n");p(this,"a");p(this,"b");p(this,"tinv");p(this,"zeroA");p(this,"threeA");p(this,"endo");p(this,"_endoWnafT1");p(this,"_endoWnafT2");p(this,"_wnafT1");p(this,"_wnafT2");p(this,"_wnafT3");p(this,"_wnafT4");p(this,"_bitLength");if(gn===void 0)gn=this;else return gn;let t={prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",{doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}]};this.p=new m(t.p,16),this.red=new we(t.prime),this.zero=new m(0).toRed(this.red),this.one=new m(1).toRed(this.red),this.two=new m(2).toRed(this.red),this.n=new m(t.n,16),this.g=Z.fromJSON(t.g,t.gRed),this._wnafT1=Array.from({length:4},()=>{}),this._wnafT2=Array.from({length:4},()=>{}),this._wnafT3=Array.from({length:4},()=>{}),this._wnafT4=Array.from({length:4},()=>{}),this._bitLength=this.n.bitLength(),this.redN=this.n.toRed(this.red),this.a=new m(t.a,16).toRed(this.red),this.b=new m(t.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=this.a.fromRed().cmpn(0)===0,this.threeA=this.a.fromRed().sub(this.p).cmpn(-3)===0,this.endo=this._getEndomorphism(t),this._endoWnafT1=Array.from({length:4},()=>{}),this._endoWnafT2=Array.from({length:4},()=>{})}static assert(e,t="Elliptic curve assertion failed"){if(!e)throw new Error(t)}getNAF(e,t,n){let i=Array.from({length:Math.max(e.bitLength(),n)+1},()=>0);i.fill(0);let s=1<<t+1,o=e.clone();for(let a=0;a<i.length;a++){let c,f=o.andln(s-1);o.isOdd()?(f>(s>>1)-1?c=(s>>1)-f:c=f,o.isubn(c)):c=0,i[a]=c,o.iushrn(1)}return i}getJSF(e,t){let n=[[],[]];e=e.clone(),t=t.clone();let i=0,s=0;for(;e.cmpn(-i)>0||t.cmpn(-s)>0;){let o=Br(e,i),a=Br(t,s),c=Nr(e,i,o,a);n[0].push(c);let f=Nr(t,s,a,o);n[1].push(f),i=kr(i,c),s=kr(s,f),e.iushrn(1),t.iushrn(1)}return n}static cachedProperty(e,t,n){let i="_"+t;e.prototype[t]=function(){return this[i]===void 0&&(this[i]=n.call(this)),this[i]}}static parseBytes(e){return typeof e=="string"?$(e,"hex"):e}static intFromLE(e){return new m(e,"hex","le")}_getEndomorphism(e){if(!this.zeroA||this.p.modrn(3)!==1)return;let t=this._resolveEndomorphismBeta(e),n=this._resolveEndomorphismLambda(e,t);return{beta:t,lambda:n,basis:d(this,Ut,Rr).call(this,e,n)}}_resolveEndomorphismBeta(e){if(e.beta!==void 0)return new m(e.beta,16).toRed(this.red);let t=this._getEndoRoots(this.p);if(t==null)throw new Error("Failed to get endomorphism roots for beta.");return(t[0].cmp(t[1])<0?t[0]:t[1]).toRed(this.red)}_endomorphismLambdaMatches(e,t,n=!1){if(this.g==null)throw new Error("Curve generator point (g) is not defined.");let i=this.g.mul(e)?.x,s=this.g.x==null?void 0:this.g.x.redMul(t);if(i==null||s==null){if(n)throw new Error("Lambda computation failed: g.mul(lambda).x or g.x.redMul(beta) is undefined.");return!1}return i.cmp(s)===0}_resolveEndomorphismLambda(e,t){if(e.lambda!==void 0)return new m(e.lambda,16);let n=this._getEndoRoots(this.n);if(n==null)throw new Error("Failed to get endomorphism roots for lambda.");return this._endomorphismLambdaMatches(n[0],t)?n[0]:(mn.assert(this._endomorphismLambdaMatches(n[1],t,!0),"Lambda selection does not match computed beta."),n[1])}_getEndoRoots(e){let t=e===this.p?this.red:new Je(e),n=new m(2).toRed(t).redInvm(),i=n.redNeg(),s=new m(3).toRed(t).redNeg().redSqrt().redMul(n),o=i.redAdd(s).fromRed(),a=i.redSub(s).fromRed();return[o,a]}_getEndoBasis(e){let t=this.n.ushrn(Math.floor(this.n.bitLength()/2)),n=e,i=this.n.clone(),s=new m(1),o=new m(0),a=new m(0),c=new m(1),f,h,b,g,y,w,x=new m(0),k=0,N=new m(0),L=new m(0);for(;n.cmpn(0)!==0;){let O=i.div(n);N=i.sub(O.mul(n)),L=a.sub(O.mul(s));let V=c.sub(O.mul(o));if(b===void 0&&N.cmp(t)<0)f=x.neg(),h=s,b=N.neg(),g=L;else if(b!==void 0&&++k===2)break;x=N,i=n,n=N,a=s,s=L,c=o,o=V}if(f===void 0||h===void 0||b===void 0||g===void 0)throw new Error("Failed to compute Endo Basis values");y=N.neg(),w=L;let _=b.sqr().add(g.sqr());return y.sqr().add(w.sqr()).cmp(_)>=0&&(y=f,w=h),b.negative!==0&&(b=b.neg(),g=g.neg()),y.negative!==0&&(y=y.neg(),w=w.neg()),[{a:b,b:g},{a:y,b:w}]}_endoSplit(e){if(this.endo==null)throw new Error("Endomorphism is not defined.");let t=this.endo.basis,n=t[0],i=t[1],s=i.b.mul(e).divRound(this.n),o=n.b.neg().mul(e).divRound(this.n),a=s.mul(n.a),c=o.mul(i.a),f=s.mul(n.b),h=o.mul(i.b),b=e.sub(a).sub(c),g=f.add(h).neg();return{k1:b,k2:g}}validate(e){if(e.inf)return!0;let t=e.x,n=e.y;if(t===null||n===null)throw new Error("Point coordinates cannot be null");let i=this.a.redMul(t),s=t.redSqr().redMul(t).redIAdd(i).redIAdd(this.b);return n.redSqr().redISub(s).cmpn(0)===0}};Ut=new WeakSet,Rr=function(e,t){return typeof e.basis!="object"||e.basis===null?this._getEndoBasis(t):e.basis.map(n=>({a:new m(n.a,16),b:new m(n.b,16)}))};var H=mn;var Ie=class{constructor(e){p(this,"curve");p(this,"type");p(this,"precomputed");this.curve=new H,this.type=e,this.precomputed=null}};var Ee=class r extends Ie{constructor(t,n,i){super("jacobian");p(this,"x");p(this,"y");p(this,"z");p(this,"zOne");t===null&&n===null&&i===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new m(0)):(m.isBN(t)||(t=new m(t,16)),this.x=t,m.isBN(n)||(n=new m(n,16)),this.y=n,m.isBN(i)||(i=new m(i,16)),this.z=i),this.x.red==null&&(this.x=this.x.toRed(this.curve.red)),this.y.red==null&&(this.y=this.y.toRed(this.curve.red)),this.z.red==null&&(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.isInfinity()&&(this.x=this.curve.one,this.y=this.curve.one,this.z=new m(0).toRed(this.curve.red),this.zOne=!1)}toP(){if(this.isInfinity())return new Z(null,null);let t=this.z.redInvm(),n=t.redSqr(),i=this.x.redMul(n),s=this.y.redMul(n).redMul(t);return new Z(i,s)}neg(){return new r(this.x,this.y.redNeg(),this.z)}add(t){if(this.isInfinity())return t;if(t.isInfinity())return this;let n=t.z.redSqr(),i=this.z.redSqr(),s=this.x.redMul(n),o=t.x.redMul(i),a=this.y.redMul(n.redMul(t.z)),c=t.y.redMul(i.redMul(this.z)),f=s.redSub(o),h=a.redSub(c);if(f.cmpn(0)===0)return h.cmpn(0)===0?this.dbl():new r(null,null,null);let b=f.redSqr(),g=b.redMul(f),y=s.redMul(b),w=h.redSqr().redIAdd(g).redISub(y).redISub(y),x=h.redMul(y.redISub(w)).redISub(a.redMul(g)),k=this.z.redMul(t.z).redMul(f);return new r(w,x,k)}mixedAdd(t){if(this.isInfinity())return t.toJ();if(t.isInfinity())return this;if(t.x===null||t.y===null)throw new Error("Point coordinates cannot be null");let n=this.z.redSqr(),i=this.x,s=t.x.redMul(n),o=this.y,a=t.y.redMul(n).redMul(this.z),c=i.redSub(s),f=o.redSub(a);if(c.cmpn(0)===0)return f.cmpn(0)===0?this.dbl():new r(null,null,null);let h=c.redSqr(),b=h.redMul(c),g=i.redMul(h),y=f.redSqr().redIAdd(b).redISub(g).redISub(g),w=f.redMul(g.redISub(y)).redISub(o.redMul(b)),x=this.z.redMul(c);return new r(y,w,x)}dblp(t){if(t===0)return this;if(this.isInfinity())return this;if(t===void 0)return this.dbl();let n=this;for(let i=0;i<t;i++)n=n.dbl();return n}dbl(){if(this.isInfinity())return this;let t,n,i;if(this.zOne){let s=this.x.redSqr(),o=this.y.redSqr(),a=o.redSqr(),c=this.x.redAdd(o).redSqr().redISub(s).redISub(a);c=c.redIAdd(c);let f=s.redAdd(s).redIAdd(s),h=f.redSqr().redISub(c).redISub(c),b=a.redIAdd(a);b=b.redIAdd(b),b=b.redIAdd(b),t=h,n=f.redMul(c.redISub(h)).redISub(b),i=this.y.redAdd(this.y)}else{let s=this.x.redSqr(),o=this.y.redSqr(),a=o.redSqr(),c=this.x.redAdd(o).redSqr().redISub(s).redISub(a);c=c.redIAdd(c);let f=s.redAdd(s).redIAdd(s),h=f.redSqr(),b=a.redIAdd(a);b=b.redIAdd(b),b=b.redIAdd(b),t=h.redISub(c).redISub(c),n=f.redMul(c.redISub(t)).redISub(b),i=this.y.redMul(this.z),i=i.redIAdd(i)}return new r(t,n,i)}eq(t){if(t.type==="affine")return this.eq(t.toJ());if(this===t||(t=t,this.isInfinity()&&t.isInfinity()))return!0;if(this.isInfinity()!==t.isInfinity())return!1;let n=this.z.redSqr(),i=t.z.redSqr();if(this.x.redMul(i).redISub(t.x.redMul(n)).cmpn(0)!==0)return!1;let s=n.redMul(this.z),o=i.redMul(t.z);return this.y.redMul(o).redISub(t.y.redMul(s)).cmpn(0)===0}eqXToP(t){let n=this.z.redSqr(),i=t.toRed(this.curve?.red).redMul(n);if(this.x.cmp(i)===0)return!0;let s=t.clone();if(this.curve?.redN==null)throw new Error("Curve or redN is not initialized.");let o=this.curve.redN.redMul(n);for(;s.cmp(this.curve.p)<0;){if(s.iadd(this.curve.n),s.cmp(this.curve.p)>=0)return!1;if(i.redIAdd(o),this.x.cmp(i)===0)return!0}return!1}inspect(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"}isInfinity(){return this.z.cmpn(0)===0}};function Mr(r,e,t){let n=-r,i=(e.X^t.X)&n,s=(e.Y^t.Y)&n,o=(e.Z^t.Z)&n;e.X^=i,t.X^=i,e.Y^=s,t.Y^=s,e.Z^=o,t.Z^=o}var C=0n,K=1n,wn=2n,ms=3n,ws=4n,xs=8n,ie=0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn,be=0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141n,Tr=(1n<<256n)-1n;function yn(r){let e=r>>256n;return r=(r&Tr)+(e<<32n)+e*977n,e=r>>256n,r=(r&Tr)+(e<<32n)+e*977n,r>=ie&&(r-=ie),r}var Ae=r=>yn((r%ie+ie)%ie),re=(r,e)=>r>=e?r-e:ie-(e-r),B=(r,e)=>yn(r*e),Lr=(r,e)=>yn(r+e),_e=r=>{let e=K,t=C,n=Ae(r),i=ie;for(;n>K;){let s=i/n;[e,t]=[t-e*s,e],[n,i]=[i-n*s,n]}return Ae(e)},ys=r=>B(r,r),Ss=(r,e)=>{let t=1n;for(r=Ae(r);e>0n;)(e&1n)!==0n&&(t=B(t,r)),r=B(r,r),e>>=1n;return t},vs=ie+1n>>2n,Is=r=>{let e=Ss(r,vs);return B(e,e)!==Ae(r)?null:e},Es=r=>m.isBN(r)?BigInt("0x"+r.toString(16)):typeof r=="string"?BigInt("0x"+r):Array.isArray(r)?BigInt("0x"+Y(r)):BigInt(r),Ct=BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Ht=BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"),Pr=new Map,it=r=>{let{X:e,Y:t,Z:n}=r;if(t===C)return{X:C,Y:K,Z:C};let i=B(t,t),s=B(ws,B(e,i)),o=B(ms,B(e,e)),a=re(B(o,o),B(wn,s)),c=re(B(o,re(s,a)),B(xs,B(i,i))),f=B(wn,B(t,n));return{X:a,Y:c,Z:f}},ze=(r,e)=>{if(r.Z===C)return e;if(e.Z===C)return r;let t=B(r.Z,r.Z),n=B(e.Z,e.Z),i=B(r.X,n),s=B(e.X,t),o=B(r.Y,B(n,e.Z)),a=B(e.Y,B(t,r.Z)),c=re(s,i),f=re(a,o);if(c===C)return f===C?it(r):{X:C,Y:K,Z:C};let h=B(c,c),b=B(c,h),g=B(i,h),y=re(re(B(f,f),b),B(wn,g)),w=re(B(f,re(g,y)),B(o,b)),x=B(c,B(r.Z,e.Z));return{X:y,Y:w,Z:x}},As=r=>r.Z===C?r:{X:r.X,Y:ie-r.Y,Z:r.Z},Bs=(r,e)=>{let t=`${r}:${e.x.toString(16)}:${e.y.toString(16)}`,n=Pr.get(t);if(n!==void 0)return n;let i=Array.from({length:1<<r-1},()=>({X:C,Y:K,Z:C})),s={X:e.x,Y:e.y,Z:K};i[0]=s;let o=it(s);for(let a=1;a<i.length;a++)i[a]=ze(i[a-1],o);return Pr.set(t,i),i},Ns=(r,e)=>{let t=[],n=1n<<BigInt(e),i=n>>1n,s=r;for(;s>0n;){if((s&K)===C)t.push(0);else{let o=s&n-1n;o>i&&(o-=n),t.push(Number(o)),s-=o}s>>=K}return t},_t=(r,e,t=5)=>{let n=Bs(t,e),i=Ns(r,t),s={X:C,Y:K,Z:C};for(let o=i.length-1;o>=0;o--){s=it(s);let a=i[o];if(a!==0){let c=Math.abs(a)>>1,f=a>0?n[c]:As(n[c]);s=ze(s,f)}}return s},Be=r=>{let e=r%be;return e<0n&&(e+=be),e},st=(r,e)=>Be(r*e),Sn=r=>{let e=1n,t=0n,n=Be(r),i=be;for(;n>1n;){let s=i/n;[e,t]=[t-e*s,e],[n,i]=[i-n*s,n]}return Be(e)},F,Ur,Cr,Hr,_r,zr,xn,Or,T=class T extends Ie{constructor(t,n,i=!0){super("affine");P(this,F);p(this,"x");p(this,"y");p(this,"inf");this.precomputed=null,t===null&&n===null?(this.x=null,this.y=null,this.inf=!0):(m.isBN(t)||(t=new m(t,16)),this.x=t,m.isBN(n)||(n=new m(n,16)),this.y=n,i&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red===null&&(this.x=this.x.toRed(this.curve.red)),this.y.red===null&&(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}static _assertOnCurve(t){if(!t.validate())throw new Error("Invalid point");return t}static fromDER(t){if((t[0]===4||t[0]===6||t[0]===7)&&t.length-1===64){if(t[0]===6){if(t.at(-1)%2!==0)throw new Error("Point string value is wrong length")}else if(t[0]===7&&t.at(-1)%2!==1)throw new Error("Point string value is wrong length");let i=new T(t.slice(1,33),t.slice(33,65));return T._assertOnCurve(i)}else if((t[0]===2||t[0]===3)&&t.length-1===32)return T._assertOnCurve(T.fromX(t.slice(1,33),t[0]===3));throw new Error("Unknown point format")}static fromString(t){let n=$(t,"hex");return T._assertOnCurve(T.fromDER(n))}static fromX(t,n){let i=Es(t);i=Ae(i);let s=Lr(B(ys(i),i),7n),o=Is(s);if(o===null)throw new Error("Invalid point");let a=o;(a&K)!==(n?K:C)&&(a=re(ie,a));let c=new m(i.toString(16),16),f=new m(a.toString(16),16);return T._assertOnCurve(new T(c,f))}static fromJSON(t,n){typeof t=="string"&&(t=JSON.parse(t));let i=new T(t[0],t[1],n);if(i=T._assertOnCurve(i),typeof t[2]!="object"||t[2]===null)return i;let s=t[2],o=a=>{let c=new T(a[0],a[1],n);return T._assertOnCurve(c)};return i.precomputed={beta:null,doubles:typeof s.doubles=="object"&&s.doubles!==null?{step:s.doubles.step,points:[i].concat(s.doubles.points.map(o))}:void 0,naf:typeof s.naf=="object"&&s.naf!==null?{wnd:s.naf.wnd,points:[i].concat(s.naf.points.map(o))}:void 0},i}validate(){if(this.inf||this.x==null||this.y==null)return!1;try{let t=BigInt("0x"+this.x.fromRed().toString(16)),n=BigInt("0x"+this.y.fromRed().toString(16)),i=B(n,n),s=Lr(B(B(t,t),t),7n);return i===s}catch{return!1}}encode(t=!0,n){if(this.inf)return n==="hex"?"00":[0];let i=this.curve.p.byteLength(),s=this.getX().toArray("be",i),o;return t?o=[this.getY().isEven()?2:3].concat(s):o=[4].concat(s,this.getY().toArray("be",i)),n==="hex"?Y(o):o}toString(){return this.encode(!0,"hex")}toJSON(){return this.precomputed==null?[this.x,this.y]:[this.x,this.y,typeof this.precomputed=="object"&&this.precomputed!==null?{doubles:this.precomputed.doubles==null?void 0:{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf==null?void 0:{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}:void 0]}inspect(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+(this.x?.fromRed()?.toString(16,2)??"undefined")+" y: "+(this.y?.fromRed()?.toString(16,2)??"undefined")+">"}isInfinity(){return this.inf}add(t){if(this.inf)return t;if(t.inf)return this;if(this.eq(t))return this.dbl();if(this.neg().eq(t))return new T(null,null);if(this.x?.cmp(t.x??new m(0))===0)return new T(null,null);let n={X:BigInt("0x"+this.x.fromRed().toString(16)),Y:BigInt("0x"+this.y.fromRed().toString(16)),Z:K},i={X:BigInt("0x"+t.x.fromRed().toString(16)),Y:BigInt("0x"+t.y.fromRed().toString(16)),Z:K},s=ze(n,i);if(s.Z===C)return new T(null,null);let o=_e(s.Z),a=B(o,o),c=B(s.X,a),f=B(s.Y,B(a,o));return new T(c.toString(16),f.toString(16))}dbl(){if(this.inf)return this;if(this.x===null||this.y===null)throw new Error("Point coordinates cannot be null");let t=BigInt("0x"+this.x.fromRed().toString(16)),n=BigInt("0x"+this.y.fromRed().toString(16));if(n===C)return new T(null,null);let i=it({X:t,Y:n,Z:K}),s=_e(i.Z),o=B(s,s),a=B(i.X,o),c=B(i.Y,B(o,s));return new T(a.toString(16),c.toString(16))}getX(){return(this.x??new m(0)).fromRed()}getY(){return(this.y??new m(0)).fromRed()}mul(t){if(m.isBN(t)||(t=new m(t,16)),t=t,this.inf)return this;let n=t.isNeg(),i=n?t.neg():t,s=BigInt("0x"+i.toString(16));if(s=Ae(s),s===C)return new T(null,null);if(s===C)return new T(null,null);if(this.x===null||this.y===null)throw new Error("Point coordinates cannot be null");let o,a;this===this.curve.g?(o=Ct,a=Ht):(o=BigInt("0x"+this.x.fromRed().toString(16)),a=BigInt("0x"+this.y.fromRed().toString(16)));let c=_t(s,{x:o,y:a});if(c.Z===C)return new T(null,null);let f=_e(c.Z),h=B(f,f),b=B(c.X,h),g=B(c.Y,B(h,f)),y=new m(b.toString(16),16),w=new m(g.toString(16),16),x=new T(y,w);return n?x.neg():x}mulCT(t){if(m.isBN(t)||(t=new m(t,16)),t=t,this.inf)return new T(null,null);let n=t.isNeg(),i=n?t.neg():t,s=BigInt("0x"+i.toString(16));if(s=Ae(s),s===0n)return new T(null,null);let o=this===this.curve.g?Ct:BigInt("0x"+this.getX().toString(16)),a=this===this.curve.g?Ht:BigInt("0x"+this.getY().toString(16)),c={X:0n,Y:1n,Z:0n},f={X:o,Y:a,Z:1n},h=s.toString(2);for(let k of h){let N=k==="1"?1n:0n;Mr(N,c,f),f=ze(c,f),c=it(c),Mr(N,c,f)}if(c.Z===0n)return new T(null,null);let b=_e(c.Z),g=B(b,b),y=B(c.X,g),w=B(c.Y,B(g,b)),x=new T(y.toString(16),w.toString(16));return n?x.neg():x}mulAdd(t,n,i){let s=[this,n],o=[t,i];return d(this,F,xn).call(this,s,o)}jmulAdd(t,n,i){let s=[this,n],o=[t,i];return d(this,F,xn).call(this,s,o,!0)}eq(t){return this===t||this.inf===t.inf&&(this.inf||(this.x??new m(0)).cmp(t.x??new m(0))===0&&(this.y??new m(0)).cmp(t.y??new m(0))===0)}neg(t){if(this.inf)return this;let n=new T(this.x,(this.y??new m(0)).redNeg());if(t===!0&&this.precomputed!=null){let i=this.precomputed,s=o=>o.neg();n.precomputed={naf:i.naf==null?void 0:{wnd:i.naf.wnd,points:i.naf.points.map(s)},doubles:i.doubles==null?void 0:{step:i.doubles.step,points:i.doubles.points.map(o=>o.neg())},beta:void 0}}return n}dblp(t){let n;for(let i=0;i<t;i++)n=(n??this).dbl();return n??this}toJ(){return this.inf?new Ee(null,null,null):new Ee(this.x,this.y,this.curve.one)}_combineWnafPair(t,n,i){let{points:s,coeffs:o,wndWidth:a,wnd:c,naf:f,currentMax:h}=i;if(a[t]!==1||a[n]!==1)return f[t]=this.curve.getNAF(o[t],a[t],this.curve._bitLength),f[n]=this.curve.getNAF(o[n],a[n],this.curve._bitLength),Math.max(h,f[t].length,f[n].length);let b=[s[t],null,null,s[n]],g=s[t].y??new m(0),y=s[n].y??new m(0);g.cmp(y)===0?(b[1]=s[t].add(s[n]),b[2]=s[t].toJ().mixedAdd(s[n].neg())):g.cmp(y.redNeg())===0?(b[1]=s[t].toJ().mixedAdd(s[n]),b[2]=s[t].add(s[n].neg())):(b[1]=s[t].toJ().mixedAdd(s[n]),b[2]=s[t].toJ().mixedAdd(s[n].neg()));let w=[-3,-1,-5,-7,0,7,5,1,3],x=this.curve.getJSF(o[t],o[n]),k=Math.max(h,x[0].length);f[t]=Array.from({length:k}),f[n]=Array.from({length:k});for(let N=0;N<k;N++){let L=Math.trunc(x[0][N]),_=Math.trunc(x[1][N]);f[t][N]=w[(L+1)*3+(_+1)],f[n][N]=0,c[t]=b}return k}_collectWnafStep(t,n,i,s){let o=t,a=0;for(;o>=0;){let c=!0;for(let f=0;f<n;f++)s[f]=new m(typeof i[f][o]=="number"?i[f][o]:0),s[f].isZero()||(c=!1);if(!c)break;a++,o--}return o>=0&&a++,{index:o,doubles:a}}_getDoubles(t,n){if(typeof this.precomputed=="object"&&this.precomputed!==null&&typeof this.precomputed.doubles=="object"&&this.precomputed.doubles!==null)return this.precomputed.doubles;let i=[this],s;for(let o=0;o<(n??0);o+=t??1){for(let a=0;a<(t??1);a++)s=(s??this).dbl();i.push(s)}return{step:t??1,points:i}}};F=new WeakSet,Ur=function(){if(typeof this.curve.endo!="object")return;let t=this.precomputed;if(typeof t=="object"&&t!==null&&typeof t.beta=="object"&&t.beta!==null)return t.beta;let n=new T((this.x??new m(0)).redMul(this.curve.endo.beta),this.y);if(t!=null){let i=this.curve,s=o=>{let a=o;if(a.x===null)throw new Error("p.x is null");if(i.endo===void 0||i.endo===null)throw new Error("curve.endo is undefined");return new T(a.x.redMul(i.endo.beta),a.y)};t.beta=n,n.precomputed={beta:null,naf:t.naf==null?void 0:{wnd:t.naf.wnd,points:t.naf.points.map(s)},doubles:t.doubles==null?void 0:{step:t.doubles.step,points:t.doubles.points.map(s)}}}return n},Cr=function(t,n,i,s,o){var a;for(let c=0;c<i;c++){let f=d(a=n[c],F,Or).call(a,t);s[c]=f.wnd,o[c]=f.points}},Hr=function(t,n,i,s,o,a){let c=0;for(let f=i-1;f>=1;f-=2)c=this._combineWnafPair(f-1,f,{points:t,coeffs:n,wndWidth:s,wnd:o,naf:a,currentMax:c});return c},_r=function(t,n,i,s){let o=new m(1),a=new m(2),c=t;for(let f=0;f<n;f++){let h=i[f];if(h.cmpn(0)===0)continue;let b=h.isNeg()?s[f][h.neg().sub(o).div(a).toNumber()].neg():s[f][h.sub(o).div(a).toNumber()];c=b.type==="affine"?c.mixedAdd(b):c.add(b)}return c},zr=function(t,n,i,s,o){let a=this.curve._wnafT1.length,c=Array.from({length:a}),f=Array.from({length:a},()=>[]),h=Array.from({length:a},()=>[]);d(this,F,Cr).call(this,t,n,s,c,f);let b=d(this,F,Hr).call(this,n,i,s,c,f,h),g=new Ee(null,null,null),y=this.curve._wnafT4,w=b;for(;w>=0;){let x=this._collectWnafStep(w,s,h,y);if(w=x.index,g=g.dblp(x.doubles),w<0)break;g=d(this,F,_r).call(this,g,s,y,f),w--}for(let x=0;x<s;x++)f[x]=[];return o===!0?g:g.toP()},xn=function(t,n,i){var f;let s=Array.from({length:t.length*2}),o=Array.from({length:t.length*2}),a;for(a=0;a<t.length;a++){let h=this.curve._endoSplit(n[a]),b=t[a],g=d(f=b,F,Ur).call(f)??new T(null,null);h.k1.negative!==0&&(h.k1.ineg(),b=b.neg(!0)),h.k2.negative!==0&&(h.k2.ineg(),g=g.neg(!0)),s[a*2]=b,s[a*2+1]=g,o[a*2]=h.k1,o[a*2+1]=h.k2}let c=d(this,F,zr).call(this,1,s,o,a*2,i);for(let h=0;h<a*2;h++)s[h]=null,o[h]=null;return c},Or=function(t){if(typeof this.precomputed=="object"&&this.precomputed!==null&&typeof this.precomputed.naf=="object"&&this.precomputed.naf!==null)return this.precomputed.naf;let n=[this],i=(1<<t)-1,s=i===1?null:this.dbl();for(let o=1;o<i;o++)s!==null&&(n[o]=n[o-1].add(s));return{wnd:t,points:n}};var Z=T;var se=class r extends Z{static fromPrivateKey(e){let n=new H().g.mul(e);return new r(n.x,n.y)}static fromString(e){let t=Z.fromString(e);return new r(t.x,t.y)}static fromDER(e){let t=Z.fromDER(e);return new r(t.x,t.y)}constructor(e,t=null,n=!0){if(e instanceof Z)super(e.getX(),e.getY());else{if(t===null&&n&&typeof e=="string"&&(e.length===66||e.length===130))throw new Error('You are using the "new PublicKey()" constructor with a DER hex string. You need to use "PublicKey.fromString()" instead.');super(e,t,n)}}deriveSharedSecret(e){if(!this.validate())throw new Error("Public key not valid for ECDH secret derivation");return this.mulCT(e)}verify(e,t,n){let i=new m(ve(e,n),16);return Oe(i,t,this)}toDER(e){return e==="hex"?this.encode(!0,e):this.encode(!0)}toHash(e){let t=wr(this.encode(!0));return e==="hex"?Y(t):t}toAddress(e=[0]){if(typeof e=="string")if(e==="testnet"||e==="test")e=[111];else if(e==="mainnet"||e==="main")e=[0];else throw new Error(`Invalid prefix ${e}`);return Pt(this.toHash(),e)}deriveChild(e,t,n,i){let s;if(typeof i=="function"){let b=i(e,this);b===void 0?(s=this.deriveSharedSecret(e),typeof n=="function"&&n(e,this,s)):s=b}else s=this.deriveSharedSecret(e);let o=$(t,"utf8"),a=kt(s.encode(!0),o),f=new H().g.mul(new m(a)),h=this.add(f);return new r(h.x,h.y)}static fromMsgHashAndCompactSignature(e,t,n){let i=$(t,n);if(i.length!==65)throw new Error("Invalid Compact Signature");let s=i[0];if(s<27||s>=35)throw new Error("Invalid Compact Byte");let o=i[0]-27;return o>3&&(o-=4),new Ne(new m(i.slice(1,33)),new m(i.slice(33,65))).RecoverPublicKey(o,e)}};var Ne=class r{constructor(e,t){p(this,"r");p(this,"s");this.r=e,this.s=t}static fromDER(e,t){let n=(b,g)=>{let y=b[g.place++];if((y&128)===0)return y;throw new Error("Invalid DER entity length")};class i{constructor(){p(this,"place",0)}}e=$(e,t);let s=new i;if(e[s.place++]!==48)throw new Error("Signature DER must start with 0x30");if(n(e,s)+s.place!==e.length)throw new Error("Signature DER invalid");if(e[s.place++]!==2)throw new Error("Signature DER invalid");let a=n(e,s),c=e.slice(s.place,a+s.place);if(s.place+=a,e[s.place++]!==2)throw new Error("Signature DER invalid");let f=n(e,s);if(e.length!==f+s.place)throw new Error("Invalid R-length in signature DER");let h=e.slice(s.place,f+s.place);if(c[0]===0){if((c[1]&128)===0)throw new Error("Invalid R-value in signature DER");c=c.slice(1)}if(h[0]===0){if((h[1]&128)===0)throw new Error("Invalid S-value in signature DER");h=h.slice(1)}return new r(new m(c),new m(h))}static fromCompact(e,t){if(e=$(e,t),e.length!==65)throw new Error("Invalid Compact Signature");let n=e[0];if(n<27||n>=35)throw new Error("Invalid Compact Byte");return new r(new m(e.slice(1,33)),new m(e.slice(33,65)))}verify(e,t,n){let i=new m(ve(e,n),16);return Oe(i,this,t)}toString(e){return this.toDER(e)}toDER(e){let t=(f,h)=>{if(h<128)f.push(h);else throw new Error("len must be < 0x80")},n=f=>{let h=0,b=f.length-1;for(;f[h]===0&&(f[h+1]&128)===0&&h<b;)h++;return h===0?f:f.slice(h)},i=this.r.toArray(),s=this.s.toArray();for((i[0]&128)!==0&&(i=[0].concat(i)),(s[0]&128)!==0&&(s=[0].concat(s)),i=n(i),s=n(s);s[0]===0&&(s[1]&128)===0;)s=s.slice(1);let o=[2];t(o,i.length),o=o.concat(i),o.push(2),t(o,s.length);let a=o.concat(s),c=[48];return t(c,a.length),c=c.concat(a),e==="hex"?Y(c):e==="base64"?pn(c):c}toCompact(e,t,n){if(e<0||e>3)throw new Error("Invalid recovery param");if(typeof t!="boolean")throw new TypeError("Invalid compressed param");let i=27+e;t&&(i+=4);let s=[i];return s=s.concat(this.r.toArray("be",32)),s=s.concat(this.s.toArray("be",32)),n==="hex"?Y(s):n==="base64"?pn(s):s}RecoverPublicKey(e,t){let n=this.r,i=this.s,s=(e&1)!==0,o=e>>1,a=new H,c=a.n,f=a.g,h=o===0?n:n.add(c),b=Z.fromX(h,s);if(!b.mul(c).isInfinity())throw new Error("nR is not at infinity");let y=t.neg().umod(c),w=n.invm(c),x=w.mul(i).umod(c),k=w.mul(y).umod(c),N=f.mul(k).add(b.mul(x)),L=new se(N);return L.validate(),L}CalculateRecoveryFactor(e,t){for(let n=0;n<4;n++){let i;try{i=this.RecoverPublicKey(n,t)}catch{continue}if(e.eq(i))return n}throw new Error("Unable to find valid recovery factor")}};var ot=class{constructor(e,t){p(this,"K");p(this,"V");let n=$(e,"hex"),i=$(t,"hex");if(n.length!==32)throw new Error("Entropy must be exactly 32 bytes (256 bits)");if(i.length!==32)throw new Error("Nonce must be exactly 32 bytes (256 bits)");let s=n.concat(i);this.K=Array.from({length:32}),this.V=Array.from({length:32});for(let o=0;o<32;o++)this.K[o]=0,this.V[o]=1;this.update(s)}hmac(){return new tt(this.K)}update(e){let t=this.hmac().update(this.V).update([0]);e!==void 0&&(t=t.update(e)),this.K=t.digest(),this.V=this.hmac().update(this.V).digest(),e!==void 0&&(this.K=this.hmac().update(this.V).update([1]).update(e).digest(),this.V=this.hmac().update(this.V).digest())}generate(e){let t=[];for(;t.length<e;)this.V=this.hmac().update(this.V).digest(),t=t.concat(this.V);let n=t.slice(0,e);return this.update(),Y(n)}};function Fr(r,e,t=new H){let n=r.byteLength()*8-t.n.bitLength();return n>0&&r.iushrn(n),e!==!0&&r.cmp(t.n)>=0?r.sub(t.n):r}function ke(r){let e=r.toArray("be"),t=0n;for(let n of e)t=t<<8n|BigInt(n);return t}var at=new H,vn=at.n.byteLength(),ks=at.n.subn(1),Rs=be>>1n;function Ms(r,e,t){let n;if(typeof r=="function"?n=r(e):r!==void 0&&m.isBN(r)?n=r:n=new m(t.generate(vn),16),n==null)throw new Error("k is undefined");return Fr(n,!0)}function zt(r,e){if(r)throw new Error(e)}function Ts(r,e,t,n,i){if(r.cmpn(1)<0||r.cmp(ks)>0)return zt(i,"Invalid fixed custom K value (must be >1 and <N-1)");let s=at.g.mulCT(r);if(s.isInfinity())return zt(i,"Invalid fixed custom K value (k\xB7G at infinity)");let o=Be(BigInt("0x"+s.getX().toString(16)));if(o===0n)return zt(i,"Invalid fixed custom K value (r == 0)");let a=Sn(BigInt("0x"+r.toString(16))),c=Be(e+st(o,t)),f=st(a,c);return f===0n?zt(i,"Invalid fixed custom K value (s == 0)"):(n&&f>Rs&&(f=be-f),new Ne(new m(o.toString(16),16),new m(f.toString(16),16)))}var Wr=(r,e,t=!1,n)=>{let i=at.n.bitLength();if(r.bitLength()>i)throw new Error(`ECDSA message is too large: expected <= ${i} bits. Callers must hash messages before signing.`);r=Fr(r);let s=ke(r),o=ke(e),a=e.toArray("be",vn),c=r.toArray("be",vn),f=new ot(a,c),h=m.isBN(n);for(let b=0;;b++){let g=Ts(Ms(n,b,f),s,o,t,h);if(g!=null)return g}},Oe=(r,e,t)=>{let n=at.n.bitLength();if(r.bitLength()>n)return!1;let i=ke(r);if(t.x==null||t.y==null)throw new Error("Invalid public key: missing coordinates.");let s={x:ke(t.x),y:ke(t.y)},o={r:ke(e.r),s:ke(e.s)},{r:a,s:c}=o,f=i;if(a<=C||a>=be||c<=C||c>=be)return!1;let h=Sn(c);if(h===0n)return!1;let b=st(f,h),g=st(a,h),y=_t(b,{x:Ct,y:Ht}),w=_t(g,s),x=ze(y,w);if(x.Z===0n)return!1;let k=_e(x.Z),N=B(k,k),L=B(x.X,N);return Be(L)===a};var In=class{constructor(){p(this,"_rand");let e=()=>{throw new Error("No secure random number generator is available in this environment.")};if(this._rand=e,typeof globalThis<"u"&&typeof globalThis.crypto?.getRandomValues=="function"){this._rand=t=>this.getRandomValues(globalThis,t);return}if(globalThis.self!==void 0&&typeof globalThis.self.crypto?.getRandomValues=="function"){this._rand=t=>this.getRandomValues(globalThis.self,t);return}if(globalThis.window!==void 0&&typeof globalThis.window.crypto?.getRandomValues=="function"){this._rand=t=>this.getRandomValues(globalThis.window,t);return}if(typeof process<"u"&&typeof process.getBuiltinModule=="function"){let t=process.getBuiltinModule("node:crypto");if(typeof t?.randomBytes=="function"){this._rand=n=>Array.from(t.randomBytes(n));return}}this._rand=e}getRandomValues(e,t){let n=new Uint8Array(t);return e.crypto.getRandomValues(n),Array.from(n)}generate(e){return this._rand(e)}},Xr=null,Ls=r=>(Xr??(Xr=new In),Xr.generate(r)),Re=Ls;var q=255,Ps=129,qr=/^[1-9A-HJ-NP-Za-km-z]{1,64}$/;function Dr(r,e,t){if(!Number.isSafeInteger(r)||r<t||r>q)throw new TypeError(`threshold must be a safe integer from ${t} to ${q}`);if(r>e)throw new Error("threshold cannot exceed the number of points")}var j=class r{constructor(e,t){p(this,"x");p(this,"y");let n=new H().p;this.x=e.umod(n),this.y=t.umod(n)}toString(){return Lt(this.x.toArray())+"."+Lt(this.y.toArray())}static fromString(e){if(typeof e!="string"||e.length>Ps)throw new TypeError("Finite-field point must use a bounded canonical Base58 representation");let[t,n,i]=e.split(".");if(i!==void 0||t===void 0||n===void 0||!qr.test(t)||!qr.test(n))throw new TypeError("Finite-field point must use a bounded canonical Base58 representation");let s=new r(new m(Tt(t)),new m(Tt(n)));if(s.toString()!==e)throw new TypeError("Finite-field point must use a bounded canonical Base58 representation");return s}},Fe=class r{constructor(e,t){p(this,"points");p(this,"threshold");if(!Array.isArray(e)||e.length===0||e.length>q)throw new TypeError(`points must contain from 1 to ${q} entries`);let n=t??e.length;Dr(n,e.length,1),this.points=e.slice(),this.threshold=n}static fromPrivateKey(e,t){if(!Number.isSafeInteger(t)||t<2||t>q)throw new TypeError(`threshold must be a safe integer from 2 to ${q}`);let n=new H().p,i=[new j(new m(0),new m(e.toArray()))];for(let s=1;s<t;s++){let o=new m(Re(32)).umod(n),a=new m(Re(32)).umod(n);i.push(new j(o,a))}return new r(i)}valueAt(e){if(Dr(this.threshold,this.points.length,1),!(e instanceof m))throw new TypeError("x must be a BigNumber");let t=new H().p,n=new Set;for(let o=0;o<this.threshold;o++){let a=this.points[o];if(!(a instanceof j)||!(a.x instanceof m)||!(a.y instanceof m))throw new TypeError("points must contain finite-field points");if(a.x.isNeg()||a.y.isNeg()||a.x.gte(t)||a.y.gte(t))throw new TypeError("point coordinates must be canonical field elements");let c=a.x.toString(16);if(n.has(c))throw new Error("Polynomial points must have unique x coordinates");n.add(c)}let i=e.umod(t),s=new m(0);for(let o=0;o<this.threshold;o++){let a=this.points[o].y;for(let c=0;c<this.threshold;c++)if(o!==c){let f=this.points[c].x,h=this.points[o].x,b=i.sub(f).umod(t),y=h.sub(f).umod(t).invm(t),w=b.mul(y).umod(t);a=a.mul(w).umod(t)}s=s.add(a).umod(t)}return s}};var Us=256,$r=/^[1-9A-HJ-NP-Za-km-z]{1,64}$/,Cs=/^(?:[2-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$/,Zr=/^[0-9a-f]{8}$/;function En(r,e,t){if(!Array.isArray(r)||r.length===0||r.length>q)throw new TypeError(`shares must contain from 1 to ${q} entries`);if(!Number.isSafeInteger(e)||e<2||e>q)throw new TypeError(`threshold must be a safe integer from 2 to ${q}`);if(typeof t!="string"||!Zr.test(t))throw new TypeError("integrity must be an 8-character lowercase hexadecimal string")}var ct=class r{constructor(e,t,n){p(this,"points");p(this,"threshold");p(this,"integrity");this.points=e,this.threshold=t,this.integrity=n}static fromBackupFormat(e){if(!Array.isArray(e)||e.length===0||e.length>q)throw new TypeError(`shares must contain from 1 to ${q} entries`);let t=0,n="",i=[];for(let s=0;s<e.length;s++){if(!Object.prototype.hasOwnProperty.call(e,s))throw new TypeError("shares must be a dense array");let o=e[s];if(typeof o!="string"||o.length>Us)throw new TypeError(`Invalid share format in share ${s.toString()}`);let a=o.split(".");if(a.length!==4)throw new Error(`Invalid share format in share ${s.toString()}. Expected format: "x.y.t.i"`);let[c,f,h,b]=a;if(c===void 0||f===void 0||h===void 0||b===void 0||!$r.test(c)||!$r.test(f)||!Cs.test(h)||!Zr.test(b))throw new TypeError(`Invalid canonical share data in share ${s.toString()}`);let g=Number(h);if(s!==0&&t!==g)throw new Error("Threshold mismatch in share "+s.toString());if(s!==0&&n!==b)throw new Error("Integrity mismatch in share "+s.toString());t=g,n=b,i.push(j.fromString(`${c}.${f}`))}return En(i,t,n),new r(i,t,n)}toBackupFormat(){En(this.points,this.threshold,this.integrity);let e=[];for(let t=0;t<this.points.length;t++){if(!Object.prototype.hasOwnProperty.call(this.points,t))throw new TypeError("shares must be a dense array");let n=this.points[t];if(!(n instanceof j))throw new TypeError("shares must contain finite-field points");let i=n.toString();if(j.fromString(i).toString()!==i)throw new TypeError("shares must contain canonical finite-field points");e.push(`${i}.${this.threshold.toString()}.${this.integrity}`)}return e}},Me=class r extends m{static fromRandom(){return new r(Re(32))}static fromString(e,t="hex"){return new r(super.fromString(e,t).toArray())}static fromHex(e){return new r(super.fromHex(e,"big"))}static fromWif(e,t=1){let n=Ar(e,void 0,t);if(n.data.length!==33)throw new Error("Invalid WIF length");if(n.data[32]!==1)throw new Error("Invalid WIF padding");return new r(n.data.slice(0,32))}constructor(e=0,t=10,n="be",i="apply"){if(e instanceof m?(super(),e.copy(this)):super(e,t,n),i!=="nocheck"){let s=this.checkInField();if(!s.inField){if(i==="error")throw new Error("Input is out of field");m.move(this,s.modN)}}}checkInField(){let e=new H,t=this.mod(e.n);return{inField:this.cmp(t)===0,modN:t}}isValid(){return this.checkInField().inField}sign(e,t,n=!0,i){let s=new m(ve(e,t),16);return Wr(s,this,n,i)}verify(e,t,n){let i=new m(ve(e,n),16);return Oe(i,t,this.toPublicKey())}toPublicKey(){let t=new H().g.mulCT(this);return new se(t.x,t.y)}toWif(e=[128]){if(!this.isValid())throw new Error("Value is out of field");return Pt([...this.toArray("be",32),1],e)}toAddress(e=[0]){return this.toPublicKey().toAddress(e)}toHex(){return super.toHex(32)}toString(e="hex",t=64){return super.toString(e,t)}deriveSharedSecret(e){if(!e.validate())throw new Error("Public key not valid for ECDH secret derivation");return e.mulCT(this)}deriveChild(e,t,n,i){let s;if(typeof i=="function"){let f=i(this,e);f===void 0?(s=this.deriveSharedSecret(e),typeof n=="function"&&n(this,e,s)):s=f}else s=this.deriveSharedSecret(e);let o=$(t,"utf8"),a=kt(s.encode(!0),o),c=new H;return new r(this.add(new m(a)).mod(c.n).toArray())}toKeyShares(e,t){if(typeof e!="number"||typeof t!="number")throw new TypeError("threshold and totalShares must be numbers");if(!Number.isSafeInteger(e)||!Number.isSafeInteger(t))throw new TypeError("threshold and totalShares must be safe integers");if(e<2)throw new Error("threshold must be at least 2");if(t<2)throw new Error("totalShares must be at least 2");if(e>t)throw new Error("threshold should be less than or equal to totalShares");if(e>q||t>q)throw new RangeError(`threshold and totalShares cannot exceed ${q}`);let n=Fe.fromPrivateKey(this,e),i=[],s=new Set,o=new H,a=Re(64);for(let f=0;f<t;f++){let h,b=0;do{let y=[f,b,...Re(32)],w=xr(a,y);if(h=new m(w).umod(o.p),b++,b>5)throw new Error("Failed to generate unique x coordinate after 5 attempts")}while(h.isZero()||s.has(h.toString()));s.add(h.toString());let g=n.valueAt(h);i.push(new j(h,g))}let c=this.toPublicKey().toHash("hex").slice(0,8);return new ct(i,e,c)}toBackupShares(e,t){return this.toKeyShares(e,t).toBackupFormat()}static fromBackupShares(e){return r.fromKeyShares(ct.fromBackupFormat(e))}static fromKeyShares(e){if(e===null||typeof e!="object")throw new TypeError("keyShares must be an object");let t=e.points,n=e.threshold,i=e.integrity;if(En(t,n,i),t.length<n)throw new Error(`At least ${n} shares are required to reconstruct the private key`);let s=[],o=new H().p;for(let h=0;h<n;h++){if(!Object.prototype.hasOwnProperty.call(t,h))throw new TypeError("shares must be a dense array");let b=t[h];if(!(b instanceof j)||!(b.x instanceof m)||!(b.y instanceof m))throw new TypeError("shares must contain finite-field points");if(b.x.isNeg()||b.y.isNeg()||b.x.gte(o)||b.y.gte(o))throw new TypeError("share coordinates must be canonical field elements");s.push(new j(new m(b.x.toArray()),new m(b.y.toArray())))}for(let h=0;h<n;h++)for(let b=h+1;b<n;b++)if(s[h].x.eq(s[b].x))throw new Error("Duplicate share detected, each must be unique.");let a=new Fe(s,n),c=new r(a.valueAt(new m(0)).toArray());if(c.toPublicKey().toHash("hex").slice(0,8)!==i)throw new Error("Integrity hash mismatch");return c}};function ft(r,e){let t=Promise.resolve();return n=>(t=t.then(()=>r(n)).catch(i=>e?.(i)),t)}var Vr="1",Hs="bwallet-pair-v1",_s="www.bwallet.space";var Yr="relay.bwallet.space",Ft=120,Ot=new TextEncoder,zs=new TextDecoder,jr=r=>{let e="";for(let t=0;t<r.length;t+=32768)e+=String.fromCharCode(...r.subarray(t,t+32768));return e},Os=r=>btoa(jr(r)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),Fs=r=>{let e=r.replace(/-/g,"+").replace(/_/g,"/"),t=atob(e+"=".repeat((4-e.length%4)%4));return Uint8Array.from(t,n=>n.charCodeAt(0))},Gr=r=>btoa(jr(r)),Kr=r=>Uint8Array.from(atob(r),e=>e.charCodeAt(0)),Jr=()=>Os(crypto.getRandomValues(new Uint8Array(16)));function Qr(r){let e=new URLSearchParams({v:r.v,r:r.r,c:r.c,k:r.k,o:r.o,e:String(r.e)});return`https://${_s}/pair?${e}`}var An=(r,e,t,n)=>{let i=/^(localhost|127\.0\.0\.1)(:\d+)?$/.test(r),s=new URLSearchParams({role:t});return n&&s.set("e",String(n)),`${i?"ws":"wss"}://${r}/v1/c/${e}?${s}`};async function Bn(r,e,t){let n=r.deriveSharedSecret(se.fromString(e)),i=new Uint8Array(n.encode(!0)),s=await crypto.subtle.importKey("raw",i,"HKDF",!1,["deriveBits"]),o=new Uint8Array(await crypto.subtle.deriveBits({name:"HKDF",hash:"SHA-256",salt:Fs(t),info:Ot.encode(Hs)},s,256)),a=await crypto.subtle.importKey("raw",o,"AES-GCM",!1,["encrypt","decrypt"]),c=new Uint8Array(await crypto.subtle.digest("SHA-256",o)),f=String((c[0]<<8|c[1])%1e4).padStart(4,"0");return{key:a,code:f}}var dt=class{constructor(e,t){p(this,"key",e);p(this,"me",t);p(this,"sent",0);p(this,"lastSeen",0)}async seal(e){let t=++this.sent,n=crypto.getRandomValues(new Uint8Array(12)),i=new Uint8Array(await crypto.subtle.encrypt({name:"AES-GCM",iv:n,additionalData:Ot.encode(`${this.me}|${t}`)},this.key,Ot.encode(JSON.stringify(e))));return{s:t,n:Gr(n),d:Gr(i)}}async open(e){if(!Number.isInteger(e.s)||e.s<=this.lastSeen)return null;let t=this.me==="site"?"wallet":"site";try{let n=await crypto.subtle.decrypt({name:"AES-GCM",iv:Kr(e.n),additionalData:Ot.encode(`${t}|${e.s}`)},this.key,Kr(e.d));return this.lastSeen=e.s,JSON.parse(zs.decode(n))}catch{return null}}get counters(){return{sent:this.sent,lastSeen:this.lastSeen}}restore(e){this.sent=e.sent,this.lastSeen=e.lastSeen}},Nn=r=>!!r&&typeof r=="object"&&"d"in r&&"n"in r&&"s"in r;var kn="bwalletx.connect.pairing.v1",ei=1;function Xt(){let r=new Map;return{getItem:e=>r.get(e)??null,setItem:(e,t)=>{r.set(e,t)},removeItem:e=>{r.delete(e)}}}function Rn(){try{if(typeof localStorage<"u")return localStorage}catch{}return Xt()}function ti(){return r=>{if(typeof WebSocket>"u")throw new Error("No WebSocket here. Pass options.socket.");return new WebSocket(r)}}function Ws(r){if(!r)return null;try{let e=JSON.parse(r),t=n=>Number.isInteger(n)&&n>=0;return e.v!==1||typeof e.c!="string"||!/^[A-Za-z0-9_-]{22}$/.test(e.c)||typeof e.r!="string"||!/^[a-z0-9.-]+(:\d+)?$/i.test(e.r)||typeof e.s!="string"||!/^[0-9a-f]{64}$/i.test(e.s)||typeof e.k!="string"||!/^0[23][0-9a-f]{64}$/i.test(e.k)||!t(e.sent)||!t(e.lastSeen)||!t(e.pairedAt)?null:e}catch{return null}}var Wt=class{constructor(e,t,n,i,s,o){p(this,"p",e);p(this,"sealer",t);p(this,"storage",n);p(this,"key",i);p(this,"socket",s);p(this,"timeoutMs",o);p(this,"ws",null);p(this,"opening",null);p(this,"waiting",new Map);p(this,"forgotten",!1)}adopt(e){this.ws=e,this.wire(e)}wire(e){e.onmessage=ft(t=>this.onFrame(String(t.data))),e.onerror=null,e.onclose=()=>{this.ws===e&&(this.ws=null),this.failAll(new Error("The connection to bWalletX closed"))}}persist(){this.forgotten||(this.p={...this.p,...this.sealer.counters},Promise.resolve(this.storage.setItem(this.key,JSON.stringify(this.p))).catch(()=>{}))}failAll(e){for(let t of this.waiting.values())clearTimeout(t.timer),t.reject(e);this.waiting.clear()}async ensure(){if(this.forgotten)throw new Error("This pairing was removed. Pair again.");this.ws&&this.ws.readyState===ei||(this.opening??(this.opening=this.reopen().finally(()=>this.opening=null)),await this.opening)}reopen(){let e=this.socket(An(this.p.r,this.p.c,"site",Math.floor(Date.now()/1e3)+Ft-10));return new Promise((t,n)=>{e.onopen=()=>{this.ws=e,this.wire(e),t()},e.onerror=()=>n(new Error("Could not reach the bWalletX pairing service")),e.onclose=()=>n(new Error("Could not reach the bWalletX pairing service"))})}async onFrame(e){let t;try{t=JSON.parse(e)}catch{return}if(t.t==="relay"&&t.error)return this.failAll(new Error(`bWalletX pairing service: ${t.error}`));if(!Nn(t))return;let i=await this.sealer.open(t);if(i)if(this.persist(),i.t==="res"){let s=this.waiting.get(i.id);if(!s)return;clearTimeout(s.timer),this.waiting.delete(i.id),i.error?s.reject(Object.assign(new Error(i.error.message),{code:i.error.code})):s.resolve(i.result)}else i.t==="close"&&(this.drop(),this.failAll(new Error("bWalletX disconnected this site. Pair again.")))}async call(e,t){await this.ensure();let n=this.ws,i=`${e}-${Date.now()}-${Math.random().toString(36).slice(2,10)}`,s=new Promise((o,a)=>{let c=setTimeout(()=>{this.waiting.delete(i)&&a(new Error("No answer from bWalletX. Open it, unlocked, and approve."))},this.timeoutMs);this.waiting.set(i,{resolve:o,reject:a,timer:c})});return n.send(JSON.stringify(await this.sealer.seal({t:"req",id:i,action:e,params:t}))),this.persist(),s}close(){let e=this.ws;this.ws=null,e?.close()}drop(){this.forgotten=!0,Promise.resolve(this.storage.removeItem(this.key)).catch(()=>{}),this.close()}async forget(){if(!this.forgotten){try{this.ws&&this.ws.readyState===ei&&this.ws.send(JSON.stringify(await this.sealer.seal({t:"close",reason:"site unpaired"})))}catch{}this.drop()}}wallet(){return new Proxy({},{get:(e,t)=>{if(t==="close")return()=>this.close();if(t==="forget")return()=>this.forget();if(!(typeof t!="string"||t==="then"||t==="toJSON"))return n=>this.call(t,n??{})}})}};function qt(r){let e=r.storage===void 0?Rn():r.storage??Xt(),t=r.storageKey??kn,n=r.socket??ti(),i=r.relay??Yr,s=r.origin??(typeof location<"u"?location.origin:"");if(!s)return Promise.reject(new Error("pairBwalletX needs options.origin outside a browser"));let o=Me.fromRandom(),a=Jr(),c=Math.floor(Date.now()/1e3)+Ft;return new Promise((f,h)=>{if(r.signal?.aborted)return h(new Error("cancelled"));let b;try{b=n(An(i,a,"site",c))}catch(N){return h(N)}let g=null,y="",w=!1,x=N=>{w||(w=!0,clearTimeout(k),b.close(),h(N))},k=setTimeout(()=>x(new Error("The pairing code expired. Show a new one.")),Ft*1e3);r.signal?.addEventListener("abort",()=>x(new Error("cancelled"))),b.onerror=()=>x(new Error("Could not reach the bWalletX pairing service")),b.onclose=()=>x(new Error("The connection to bWalletX closed before pairing finished")),b.onmessage=ft(async N=>{if(w)return;let L;try{L=JSON.parse(String(N.data))}catch{return}if(L.t==="hello"&&!g){y=L.k;let R=await Bn(o,y,a);g=new dt(R.key,"site"),r.onCode(R.code);return}if(!g||!Nn(L))return;let _=await g.open(L);if(_)if(_.t==="ready"){w=!0,clearTimeout(k);let R={v:1,c:a,r:i,s:o.toHex(),k:y,...g.counters,pairedAt:Date.now()};await Promise.resolve(e.setItem(t,JSON.stringify(R))).catch(()=>{});let O=new Wt(R,g,e,t,n,r.callTimeoutMs??12e4);O.adopt(b),f(O.wallet())}else _.t==="close"&&x(new Error("Pairing was declined in bWalletX"))}),r.onLink(Qr({v:Vr,r:i,c:a,k:o.toPublicKey().toString(),o:s,e:c}))})}async function Dt(r={}){let e=r.storage===void 0?Rn():r.storage??Xt(),t=r.storageKey??kn,n=Ws(await Promise.resolve(e.getItem(t)).catch(()=>null));if(!n)return null;let{key:i}=await Bn(Me.fromHex(n.s),n.k,n.c),s=new dt(i,"site");return s.restore({sent:n.sent,lastSeen:n.lastSeen}),new Wt(n,s,e,t,r.socket??ti(),r.callTimeoutMs??12e4).wallet()}async function ni(r={}){let e=r.storage===void 0?Rn():r.storage??Xt();await Promise.resolve(e.removeItem(r.storageKey??kn)).catch(()=>{})}var Mn=[2,"bwallet sign in"];async function Tn(r={}){if(r.wallet)return{wallet:r.wallet,method:"wallet"};let e=await pe(r.discoverMs);if(e)return{wallet:e.wallet,method:e.method};if(r.reusePairing!==!1){let t=await Dt(r.pairing??{});if(t)return{wallet:t,method:"pairing"}}if(!r.pairing)throw Object.assign(new Error("bWalletX was not found in this browser"),{code:"NOT_FOUND"});return{wallet:await qt(r.pairing),method:"pairing"}}async function $t(r){let{wallet:e,method:t}=await Tn(r);t!=="pairing"&&await e.waitForAuthentication({}).catch(()=>{});let{publicKey:n}=await e.getPublicKey({identityKey:!0}),i=await r.challenge(n),{signature:s}=await e.createSignature({protocolID:i.protocolID??Mn,keyID:i.keyID,counterparty:"anyone",data:Array.from(new TextEncoder().encode(i.message))});return{identityKey:n,signature:Array.from(s),nonce:i.nonce,method:t,wallet:e}}var Pn="bwalletx-signin",Un="https://bwalletx.com/get",Cn="https://web.bwalletx.com",ri={signin:"Sign in with",continue:"Continue with",connect:"Connect"};function Hn(r="signin",e="bWalletX"){return`${ri[r]??ri.signin} ${e}`}var Xs=0;function _n(r=20){let e=++Xs;return`<svg viewBox="23 8 74 100" width="${Math.round(r*.74)}" height="${r}" aria-hidden="true" focusable="false"><defs><linearGradient id="bwxg${e}" gradientUnits="userSpaceOnUse" x1="0" y1="12" x2="0" y2="105"><stop offset="0" stop-color="#FFE58A"/><stop offset=".55" stop-color="#FFD24D"/><stop offset="1" stop-color="#C98F00"/></linearGradient><mask id="bwxh${e}"><rect width="140" height="140" fill="#fff"/><circle cx="60" cy="72" r="15" fill="#000"/></mask></defs><g fill="url(#bwxg${e})" mask="url(#bwxh${e})"><polygon points="45,12 45,76 27,76 27,30"/><circle cx="60" cy="72" r="33"/></g></svg>`}var zn=`
1
+ "use strict";var bWalletXConnect=(()=>{var jb=Object.create;var Ts=Object.defineProperty;var Gb=Object.getOwnPropertyDescriptor;var Yb=Object.getOwnPropertyNames;var Zb=Object.getPrototypeOf,Jb=Object.prototype.hasOwnProperty;var Ud=i=>{throw TypeError(i)};var Qb=(i,t,e)=>t in i?Ts(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e;var Zc=(i=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(i,{get:(t,e)=>(typeof require<"u"?require:t)[e]}):i)(function(i){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+i+'" is not supported')});var tm=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports),Md=(i,t)=>{for(var e in t)Ts(i,e,{get:t[e],enumerable:!0})},Dd=(i,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Yb(t))!Jb.call(i,r)&&r!==e&&Ts(i,r,{get:()=>t[r],enumerable:!(n=Gb(t,r))||n.enumerable});return i};var em=(i,t,e)=>(e=i!=null?jb(Zb(i)):{},Dd(t||!i||!i.__esModule?Ts(e,"default",{value:i,enumerable:!0}):e,i)),nm=i=>Dd(Ts({},"__esModule",{value:!0}),i);var m=(i,t,e)=>Qb(i,typeof t!="symbol"?t+"":t,e),Jc=(i,t,e)=>t.has(i)||Ud("Cannot "+e);var w=(i,t,e)=>(Jc(i,t,"read from private field"),e?e.call(i):t.get(i)),G=(i,t,e)=>t.has(i)?Ud("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(i):t.set(i,e),N=(i,t,e,n)=>(Jc(i,t,"write to private field"),n?n.call(i,e):t.set(i,e),e),a=(i,t,e)=>(Jc(i,t,"access private method"),e);var Wb=tm((Fb,qb)=>{"use strict";var $b=(function(){var i=function(E,A){var T=236,B=17,_=E,$=e[A],R=null,I=0,D=null,U=[],q={},it=function(H,W){I=_*4+17,R=(function(M){for(var V=new Array(M),X=0;X<M;X+=1){V[X]=new Array(M);for(var J=0;J<M;J+=1)V[X][J]=null}return V})(I),ot(0,0),ot(I-7,0),ot(0,I-7),tt(),z(),se(H,W),_>=7&&It(H),D==null&&(D=Ee(_,$,U)),Nt(D,W)},ot=function(H,W){for(var M=-1;M<=7;M+=1)if(!(H+M<=-1||I<=H+M))for(var V=-1;V<=7;V+=1)W+V<=-1||I<=W+V||(0<=M&&M<=6&&(V==0||V==6)||0<=V&&V<=6&&(M==0||M==6)||2<=M&&M<=4&&2<=V&&V<=4?R[H+M][W+V]=!0:R[H+M][W+V]=!1)},F=function(){for(var H=0,W=0,M=0;M<8;M+=1){it(!0,M);var V=r.getLostPoint(q);(M==0||H>V)&&(H=V,W=M)}return W},z=function(){for(var H=8;H<I-8;H+=1)R[H][6]==null&&(R[H][6]=H%2==0);for(var W=8;W<I-8;W+=1)R[6][W]==null&&(R[6][W]=W%2==0)},tt=function(){for(var H=r.getPatternPosition(_),W=0;W<H.length;W+=1)for(var M=0;M<H.length;M+=1){var V=H[W],X=H[M];if(R[V][X]==null)for(var J=-2;J<=2;J+=1)for(var dt=-2;dt<=2;dt+=1)J==-2||J==2||dt==-2||dt==2||J==0&&dt==0?R[V+J][X+dt]=!0:R[V+J][X+dt]=!1}},It=function(H){for(var W=r.getBCHTypeNumber(_),M=0;M<18;M+=1){var V=!H&&(W>>M&1)==1;R[Math.floor(M/3)][M%3+I-8-3]=V}for(var M=0;M<18;M+=1){var V=!H&&(W>>M&1)==1;R[M%3+I-8-3][Math.floor(M/3)]=V}},se=function(H,W){for(var M=$<<3|W,V=r.getBCHTypeInfo(M),X=0;X<15;X+=1){var J=!H&&(V>>X&1)==1;X<6?R[X][8]=J:X<8?R[X+1][8]=J:R[I-15+X][8]=J}for(var X=0;X<15;X+=1){var J=!H&&(V>>X&1)==1;X<8?R[8][I-X-1]=J:X<9?R[8][15-X-1+1]=J:R[8][15-X-1]=J}R[I-8][8]=!H},Nt=function(H,W){for(var M=-1,V=I-1,X=7,J=0,dt=r.getMaskFunction(W),ft=I-1;ft>0;ft-=2)for(ft==6&&(ft-=1);;){for(var _t=0;_t<2;_t+=1)if(R[V][ft-_t]==null){var ee=!1;J<H.length&&(ee=(H[J]>>>X&1)==1);var pt=dt(V,ft-_t);pt&&(ee=!ee),R[V][ft-_t]=ee,X-=1,X==-1&&(J+=1,X=7)}if(V+=M,V<0||I<=V){V-=M,M=-M;break}}},un=function(H,W){for(var M=0,V=0,X=0,J=new Array(W.length),dt=new Array(W.length),ft=0;ft<W.length;ft+=1){var _t=W[ft].dataCount,ee=W[ft].totalCount-_t;V=Math.max(V,_t),X=Math.max(X,ee),J[ft]=new Array(_t);for(var pt=0;pt<J[ft].length;pt+=1)J[ft][pt]=255&H.getBuffer()[pt+M];M+=_t;var Je=r.getErrorCorrectPolynomial(ee),Qe=o(J[ft],Je.getLength()-1),_d=Qe.mod(Je);dt[ft]=new Array(Je.getLength()-1);for(var pt=0;pt<dt[ft].length;pt+=1){var Cd=pt+_d.getLength()-dt[ft].length;dt[ft][pt]=Cd>=0?_d.getAt(Cd):0}}for(var Ld=0,pt=0;pt<W.length;pt+=1)Ld+=W[pt].totalCount;for(var Yc=new Array(Ld),Wo=0,pt=0;pt<V;pt+=1)for(var ft=0;ft<W.length;ft+=1)pt<J[ft].length&&(Yc[Wo]=J[ft][pt],Wo+=1);for(var pt=0;pt<X;pt+=1)for(var ft=0;ft<W.length;ft+=1)pt<dt[ft].length&&(Yc[Wo]=dt[ft][pt],Wo+=1);return Yc},Ee=function(H,W,M){for(var V=c.getRSBlocks(H,W),X=u(),J=0;J<M.length;J+=1){var dt=M[J];X.put(dt.getMode(),4),X.put(dt.getLength(),r.getLengthInBits(dt.getMode(),H)),dt.write(X)}for(var ft=0,J=0;J<V.length;J+=1)ft+=V[J].dataCount;if(X.getLengthInBits()>ft*8)throw"code length overflow. ("+X.getLengthInBits()+">"+ft*8+")";for(X.getLengthInBits()+4<=ft*8&&X.put(0,4);X.getLengthInBits()%8!=0;)X.putBit(!1);for(;!(X.getLengthInBits()>=ft*8||(X.put(T,8),X.getLengthInBits()>=ft*8));)X.put(B,8);return un(X,V)};q.addData=function(H,W){W=W||"Byte";var M=null;switch(W){case"Numeric":M=f(H);break;case"Alphanumeric":M=d(H);break;case"Byte":M=l(H);break;case"Kanji":M=p(H);break;default:throw"mode:"+W}U.push(M),D=null},q.isDark=function(H,W){if(H<0||I<=H||W<0||I<=W)throw H+","+W;return R[H][W]},q.getModuleCount=function(){return I},q.make=function(){if(_<1){for(var H=1;H<40;H++){for(var W=c.getRSBlocks(H,$),M=u(),V=0;V<U.length;V++){var X=U[V];M.put(X.getMode(),4),M.put(X.getLength(),r.getLengthInBits(X.getMode(),H)),X.write(M)}for(var J=0,V=0;V<W.length;V++)J+=W[V].dataCount;if(M.getLengthInBits()<=J*8)break}_=H}it(!1,F())},q.createTableTag=function(H,W){H=H||2,W=typeof W>"u"?H*4:W;var M="";M+='<table style="',M+=" border-width: 0px; border-style: none;",M+=" border-collapse: collapse;",M+=" padding: 0px; margin: "+W+"px;",M+='">',M+="<tbody>";for(var V=0;V<q.getModuleCount();V+=1){M+="<tr>";for(var X=0;X<q.getModuleCount();X+=1)M+='<td style="',M+=" border-width: 0px; border-style: none;",M+=" border-collapse: collapse;",M+=" padding: 0px; margin: 0px;",M+=" width: "+H+"px;",M+=" height: "+H+"px;",M+=" background-color: ",M+=q.isDark(V,X)?"#000000":"#ffffff",M+=";",M+='"/>';M+="</tr>"}return M+="</tbody>",M+="</table>",M},q.createSvgTag=function(H,W,M,V){var X={};typeof arguments[0]=="object"&&(X=arguments[0],H=X.cellSize,W=X.margin,M=X.alt,V=X.title),H=H||2,W=typeof W>"u"?H*4:W,M=typeof M=="string"?{text:M}:M||{},M.text=M.text||null,M.id=M.text?M.id||"qrcode-description":null,V=typeof V=="string"?{text:V}:V||{},V.text=V.text||null,V.id=V.text?V.id||"qrcode-title":null;var J=q.getModuleCount()*H+W*2,dt,ft,_t,ee,pt="",Je;for(Je="l"+H+",0 0,"+H+" -"+H+",0 0,-"+H+"z ",pt+='<svg version="1.1" xmlns="http://www.w3.org/2000/svg"',pt+=X.scalable?"":' width="'+J+'px" height="'+J+'px"',pt+=' viewBox="0 0 '+J+" "+J+'" ',pt+=' preserveAspectRatio="xMinYMin meet"',pt+=V.text||M.text?' role="img" aria-labelledby="'+me([V.id,M.id].join(" ").trim())+'"':"",pt+=">",pt+=V.text?'<title id="'+me(V.id)+'">'+me(V.text)+"</title>":"",pt+=M.text?'<description id="'+me(M.id)+'">'+me(M.text)+"</description>":"",pt+='<rect width="100%" height="100%" fill="white" cx="0" cy="0"/>',pt+='<path d="',_t=0;_t<q.getModuleCount();_t+=1)for(ee=_t*H+W,dt=0;dt<q.getModuleCount();dt+=1)q.isDark(_t,dt)&&(ft=dt*H+W,pt+="M"+ft+","+ee+Je);return pt+='" stroke="transparent" fill="black"/>',pt+="</svg>",pt},q.createDataURL=function(H,W){H=H||2,W=typeof W>"u"?H*4:W;var M=q.getModuleCount()*H+W*2,V=W,X=M-W;return C(M,M,function(J,dt){if(V<=J&&J<X&&V<=dt&&dt<X){var ft=Math.floor((J-V)/H),_t=Math.floor((dt-V)/H);return q.isDark(_t,ft)?0:1}else return 1})},q.createImgTag=function(H,W,M){H=H||2,W=typeof W>"u"?H*4:W;var V=q.getModuleCount()*H+W*2,X="";return X+="<img",X+=' src="',X+=q.createDataURL(H,W),X+='"',X+=' width="',X+=V,X+='"',X+=' height="',X+=V,X+='"',M&&(X+=' alt="',X+=me(M),X+='"'),X+="/>",X};var me=function(H){for(var W="",M=0;M<H.length;M+=1){var V=H.charAt(M);switch(V){case"<":W+="&lt;";break;case">":W+="&gt;";break;case"&":W+="&amp;";break;case'"':W+="&quot;";break;default:W+=V;break}}return W},In=function(H){var W=1;H=typeof H>"u"?W*2:H;var M=q.getModuleCount()*W+H*2,V=H,X=M-H,J,dt,ft,_t,ee,pt={"\u2588\u2588":"\u2588","\u2588 ":"\u2580"," \u2588":"\u2584"," ":" "},Je={"\u2588\u2588":"\u2580","\u2588 ":"\u2580"," \u2588":" "," ":" "},Qe="";for(J=0;J<M;J+=2){for(ft=Math.floor((J-V)/W),_t=Math.floor((J+1-V)/W),dt=0;dt<M;dt+=1)ee="\u2588",V<=dt&&dt<X&&V<=J&&J<X&&q.isDark(ft,Math.floor((dt-V)/W))&&(ee=" "),V<=dt&&dt<X&&V<=J+1&&J+1<X&&q.isDark(_t,Math.floor((dt-V)/W))?ee+=" ":ee+="\u2588",Qe+=H<1&&J+1>=X?Je[ee]:pt[ee];Qe+=`
2
+ `}return M%2&&H>0?Qe.substring(0,Qe.length-M-1)+Array(M+1).join("\u2580"):Qe.substring(0,Qe.length-1)};return q.createASCII=function(H,W){if(H=H||1,H<2)return In(W);H-=1,W=typeof W>"u"?H*2:W;var M=q.getModuleCount()*H+W*2,V=W,X=M-W,J,dt,ft,_t,ee=Array(H+1).join("\u2588\u2588"),pt=Array(H+1).join(" "),Je="",Qe="";for(J=0;J<M;J+=1){for(ft=Math.floor((J-V)/H),Qe="",dt=0;dt<M;dt+=1)_t=1,V<=dt&&dt<X&&V<=J&&J<X&&q.isDark(ft,Math.floor((dt-V)/H))&&(_t=0),Qe+=_t?ee:pt;for(ft=0;ft<H;ft+=1)Je+=Qe+`
3
+ `}return Je.substring(0,Je.length-1)},q.renderTo2dContext=function(H,W){W=W||2;for(var M=q.getModuleCount(),V=0;V<M;V++)for(var X=0;X<M;X++)H.fillStyle=q.isDark(V,X)?"black":"white",H.fillRect(V*W,X*W,W,W)},q};i.stringToBytesFuncs={default:function(E){for(var A=[],T=0;T<E.length;T+=1){var B=E.charCodeAt(T);A.push(B&255)}return A}},i.stringToBytes=i.stringToBytesFuncs.default,i.createStringToBytes=function(E,A){var T=(function(){for(var _=y(E),$=function(){var z=_.read();if(z==-1)throw"eof";return z},R=0,I={};;){var D=_.read();if(D==-1)break;var U=$(),q=$(),it=$(),ot=String.fromCharCode(D<<8|U),F=q<<8|it;I[ot]=F,R+=1}if(R!=A)throw R+" != "+A;return I})(),B=63;return function(_){for(var $=[],R=0;R<_.length;R+=1){var I=_.charCodeAt(R);if(I<128)$.push(I);else{var D=T[_.charAt(R)];typeof D=="number"?(D&255)==D?$.push(D):($.push(D>>>8),$.push(D&255)):$.push(B)}}return $}};var t={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8},e={L:1,M:0,Q:3,H:2},n={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7},r=(function(){var E=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],A=1335,T=7973,B=21522,_={},$=function(R){for(var I=0;R!=0;)I+=1,R>>>=1;return I};return _.getBCHTypeInfo=function(R){for(var I=R<<10;$(I)-$(A)>=0;)I^=A<<$(I)-$(A);return(R<<10|I)^B},_.getBCHTypeNumber=function(R){for(var I=R<<12;$(I)-$(T)>=0;)I^=T<<$(I)-$(T);return R<<12|I},_.getPatternPosition=function(R){return E[R-1]},_.getMaskFunction=function(R){switch(R){case n.PATTERN000:return function(I,D){return(I+D)%2==0};case n.PATTERN001:return function(I,D){return I%2==0};case n.PATTERN010:return function(I,D){return D%3==0};case n.PATTERN011:return function(I,D){return(I+D)%3==0};case n.PATTERN100:return function(I,D){return(Math.floor(I/2)+Math.floor(D/3))%2==0};case n.PATTERN101:return function(I,D){return I*D%2+I*D%3==0};case n.PATTERN110:return function(I,D){return(I*D%2+I*D%3)%2==0};case n.PATTERN111:return function(I,D){return(I*D%3+(I+D)%2)%2==0};default:throw"bad maskPattern:"+R}},_.getErrorCorrectPolynomial=function(R){for(var I=o([1],0),D=0;D<R;D+=1)I=I.multiply(o([1,s.gexp(D)],0));return I},_.getLengthInBits=function(R,I){if(1<=I&&I<10)switch(R){case t.MODE_NUMBER:return 10;case t.MODE_ALPHA_NUM:return 9;case t.MODE_8BIT_BYTE:return 8;case t.MODE_KANJI:return 8;default:throw"mode:"+R}else if(I<27)switch(R){case t.MODE_NUMBER:return 12;case t.MODE_ALPHA_NUM:return 11;case t.MODE_8BIT_BYTE:return 16;case t.MODE_KANJI:return 10;default:throw"mode:"+R}else if(I<41)switch(R){case t.MODE_NUMBER:return 14;case t.MODE_ALPHA_NUM:return 13;case t.MODE_8BIT_BYTE:return 16;case t.MODE_KANJI:return 12;default:throw"mode:"+R}else throw"type:"+I},_.getLostPoint=function(R){for(var I=R.getModuleCount(),D=0,U=0;U<I;U+=1)for(var q=0;q<I;q+=1){for(var it=0,ot=R.isDark(U,q),F=-1;F<=1;F+=1)if(!(U+F<0||I<=U+F))for(var z=-1;z<=1;z+=1)q+z<0||I<=q+z||F==0&&z==0||ot==R.isDark(U+F,q+z)&&(it+=1);it>5&&(D+=3+it-5)}for(var U=0;U<I-1;U+=1)for(var q=0;q<I-1;q+=1){var tt=0;R.isDark(U,q)&&(tt+=1),R.isDark(U+1,q)&&(tt+=1),R.isDark(U,q+1)&&(tt+=1),R.isDark(U+1,q+1)&&(tt+=1),(tt==0||tt==4)&&(D+=3)}for(var U=0;U<I;U+=1)for(var q=0;q<I-6;q+=1)R.isDark(U,q)&&!R.isDark(U,q+1)&&R.isDark(U,q+2)&&R.isDark(U,q+3)&&R.isDark(U,q+4)&&!R.isDark(U,q+5)&&R.isDark(U,q+6)&&(D+=40);for(var q=0;q<I;q+=1)for(var U=0;U<I-6;U+=1)R.isDark(U,q)&&!R.isDark(U+1,q)&&R.isDark(U+2,q)&&R.isDark(U+3,q)&&R.isDark(U+4,q)&&!R.isDark(U+5,q)&&R.isDark(U+6,q)&&(D+=40);for(var It=0,q=0;q<I;q+=1)for(var U=0;U<I;U+=1)R.isDark(U,q)&&(It+=1);var se=Math.abs(100*It/I/I-50)/5;return D+=se*10,D},_})(),s=(function(){for(var E=new Array(256),A=new Array(256),T=0;T<8;T+=1)E[T]=1<<T;for(var T=8;T<256;T+=1)E[T]=E[T-4]^E[T-5]^E[T-6]^E[T-8];for(var T=0;T<255;T+=1)A[E[T]]=T;var B={};return B.glog=function(_){if(_<1)throw"glog("+_+")";return A[_]},B.gexp=function(_){for(;_<0;)_+=255;for(;_>=256;)_-=255;return E[_]},B})();function o(E,A){if(typeof E.length>"u")throw E.length+"/"+A;var T=(function(){for(var _=0;_<E.length&&E[_]==0;)_+=1;for(var $=new Array(E.length-_+A),R=0;R<E.length-_;R+=1)$[R]=E[R+_];return $})(),B={};return B.getAt=function(_){return T[_]},B.getLength=function(){return T.length},B.multiply=function(_){for(var $=new Array(B.getLength()+_.getLength()-1),R=0;R<B.getLength();R+=1)for(var I=0;I<_.getLength();I+=1)$[R+I]^=s.gexp(s.glog(B.getAt(R))+s.glog(_.getAt(I)));return o($,0)},B.mod=function(_){if(B.getLength()-_.getLength()<0)return B;for(var $=s.glog(B.getAt(0))-s.glog(_.getAt(0)),R=new Array(B.getLength()),I=0;I<B.getLength();I+=1)R[I]=B.getAt(I);for(var I=0;I<_.getLength();I+=1)R[I]^=s.gexp(s.glog(_.getAt(I))+$);return o(R,0).mod(_)},B}var c=(function(){var E=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],A=function(_,$){var R={};return R.totalCount=_,R.dataCount=$,R},T={},B=function(_,$){switch($){case e.L:return E[(_-1)*4+0];case e.M:return E[(_-1)*4+1];case e.Q:return E[(_-1)*4+2];case e.H:return E[(_-1)*4+3];default:return}};return T.getRSBlocks=function(_,$){var R=B(_,$);if(typeof R>"u")throw"bad rs block @ typeNumber:"+_+"/errorCorrectionLevel:"+$;for(var I=R.length/3,D=[],U=0;U<I;U+=1)for(var q=R[U*3+0],it=R[U*3+1],ot=R[U*3+2],F=0;F<q;F+=1)D.push(A(it,ot));return D},T})(),u=function(){var E=[],A=0,T={};return T.getBuffer=function(){return E},T.getAt=function(B){var _=Math.floor(B/8);return(E[_]>>>7-B%8&1)==1},T.put=function(B,_){for(var $=0;$<_;$+=1)T.putBit((B>>>_-$-1&1)==1)},T.getLengthInBits=function(){return A},T.putBit=function(B){var _=Math.floor(A/8);E.length<=_&&E.push(0),B&&(E[_]|=128>>>A%8),A+=1},T},f=function(E){var A=t.MODE_NUMBER,T=E,B={};B.getMode=function(){return A},B.getLength=function(R){return T.length},B.write=function(R){for(var I=T,D=0;D+2<I.length;)R.put(_(I.substring(D,D+3)),10),D+=3;D<I.length&&(I.length-D==1?R.put(_(I.substring(D,D+1)),4):I.length-D==2&&R.put(_(I.substring(D,D+2)),7))};var _=function(R){for(var I=0,D=0;D<R.length;D+=1)I=I*10+$(R.charAt(D));return I},$=function(R){if("0"<=R&&R<="9")return R.charCodeAt(0)-48;throw"illegal char :"+R};return B},d=function(E){var A=t.MODE_ALPHA_NUM,T=E,B={};B.getMode=function(){return A},B.getLength=function($){return T.length},B.write=function($){for(var R=T,I=0;I+1<R.length;)$.put(_(R.charAt(I))*45+_(R.charAt(I+1)),11),I+=2;I<R.length&&$.put(_(R.charAt(I)),6)};var _=function($){if("0"<=$&&$<="9")return $.charCodeAt(0)-48;if("A"<=$&&$<="Z")return $.charCodeAt(0)-65+10;switch($){case" ":return 36;case"$":return 37;case"%":return 38;case"*":return 39;case"+":return 40;case"-":return 41;case".":return 42;case"/":return 43;case":":return 44;default:throw"illegal char :"+$}};return B},l=function(E){var A=t.MODE_8BIT_BYTE,T=E,B=i.stringToBytes(E),_={};return _.getMode=function(){return A},_.getLength=function($){return B.length},_.write=function($){for(var R=0;R<B.length;R+=1)$.put(B[R],8)},_},p=function(E){var A=t.MODE_KANJI,T=E,B=i.stringToBytesFuncs.SJIS;if(!B)throw"sjis not supported.";(function(R,I){var D=B(R);if(D.length!=2||(D[0]<<8|D[1])!=I)throw"sjis not supported."})("\u53CB",38726);var _=B(E),$={};return $.getMode=function(){return A},$.getLength=function(R){return~~(_.length/2)},$.write=function(R){for(var I=_,D=0;D+1<I.length;){var U=(255&I[D])<<8|255&I[D+1];if(33088<=U&&U<=40956)U-=33088;else if(57408<=U&&U<=60351)U-=49472;else throw"illegal char at "+(D+1)+"/"+U;U=(U>>>8&255)*192+(U&255),R.put(U,13),D+=2}if(D<I.length)throw"illegal char at "+(D+1)},$},b=function(){var E=[],A={};return A.writeByte=function(T){E.push(T&255)},A.writeShort=function(T){A.writeByte(T),A.writeByte(T>>>8)},A.writeBytes=function(T,B,_){B=B||0,_=_||T.length;for(var $=0;$<_;$+=1)A.writeByte(T[$+B])},A.writeString=function(T){for(var B=0;B<T.length;B+=1)A.writeByte(T.charCodeAt(B))},A.toByteArray=function(){return E},A.toString=function(){var T="";T+="[";for(var B=0;B<E.length;B+=1)B>0&&(T+=","),T+=E[B];return T+="]",T},A},g=function(){var E=0,A=0,T=0,B="",_={},$=function(I){B+=String.fromCharCode(R(I&63))},R=function(I){if(!(I<0)){if(I<26)return 65+I;if(I<52)return 97+(I-26);if(I<62)return 48+(I-52);if(I==62)return 43;if(I==63)return 47}throw"n:"+I};return _.writeByte=function(I){for(E=E<<8|I&255,A+=8,T+=1;A>=6;)$(E>>>A-6),A-=6},_.flush=function(){if(A>0&&($(E<<6-A),E=0,A=0),T%3!=0)for(var I=3-T%3,D=0;D<I;D+=1)B+="="},_.toString=function(){return B},_},y=function(E){var A=E,T=0,B=0,_=0,$={};$.read=function(){for(;_<8;){if(T>=A.length){if(_==0)return-1;throw"unexpected end of file./"+_}var I=A.charAt(T);if(T+=1,I=="=")return _=0,-1;if(I.match(/^\s$/))continue;B=B<<6|R(I.charCodeAt(0)),_+=6}var D=B>>>_-8&255;return _-=8,D};var R=function(I){if(65<=I&&I<=90)return I-65;if(97<=I&&I<=122)return I-97+26;if(48<=I&&I<=57)return I-48+52;if(I==43)return 62;if(I==47)return 63;throw"c:"+I};return $},v=function(E,A){var T=E,B=A,_=new Array(E*A),$={};$.setPixel=function(U,q,it){_[q*T+U]=it},$.write=function(U){U.writeString("GIF87a"),U.writeShort(T),U.writeShort(B),U.writeByte(128),U.writeByte(0),U.writeByte(0),U.writeByte(0),U.writeByte(0),U.writeByte(0),U.writeByte(255),U.writeByte(255),U.writeByte(255),U.writeString(","),U.writeShort(0),U.writeShort(0),U.writeShort(T),U.writeShort(B),U.writeByte(0);var q=2,it=I(q);U.writeByte(q);for(var ot=0;it.length-ot>255;)U.writeByte(255),U.writeBytes(it,ot,255),ot+=255;U.writeByte(it.length-ot),U.writeBytes(it,ot,it.length-ot),U.writeByte(0),U.writeString(";")};var R=function(U){var q=U,it=0,ot=0,F={};return F.write=function(z,tt){if(z>>>tt)throw"length over";for(;it+tt>=8;)q.writeByte(255&(z<<it|ot)),tt-=8-it,z>>>=8-it,ot=0,it=0;ot=z<<it|ot,it=it+tt},F.flush=function(){it>0&&q.writeByte(ot)},F},I=function(U){for(var q=1<<U,it=(1<<U)+1,ot=U+1,F=D(),z=0;z<q;z+=1)F.add(String.fromCharCode(z));F.add(String.fromCharCode(q)),F.add(String.fromCharCode(it));var tt=b(),It=R(tt);It.write(q,ot);var se=0,Nt=String.fromCharCode(_[se]);for(se+=1;se<_.length;){var un=String.fromCharCode(_[se]);se+=1,F.contains(Nt+un)?Nt=Nt+un:(It.write(F.indexOf(Nt),ot),F.size()<4095&&(F.size()==1<<ot&&(ot+=1),F.add(Nt+un)),Nt=un)}return It.write(F.indexOf(Nt),ot),It.write(it,ot),It.flush(),tt.toByteArray()},D=function(){var U={},q=0,it={};return it.add=function(ot){if(it.contains(ot))throw"dup key:"+ot;U[ot]=q,q+=1},it.size=function(){return q},it.indexOf=function(ot){return U[ot]},it.contains=function(ot){return typeof U[ot]<"u"},it};return $},C=function(E,A,T){for(var B=v(E,A),_=0;_<A;_+=1)for(var $=0;$<E;$+=1)B.setPixel($,_,T($,_));var R=b();B.write(R);for(var I=g(),D=R.toByteArray(),U=0;U<D.length;U+=1)I.writeByte(D[U]);return I.flush(),"data:image/gif;base64,"+I};return i})();(function(){$b.stringToBytesFuncs["UTF-8"]=function(i){function t(e){for(var n=[],r=0;r<e.length;r++){var s=e.charCodeAt(r);s<128?n.push(s):s<2048?n.push(192|s>>6,128|s&63):s<55296||s>=57344?n.push(224|s>>12,128|s>>6&63,128|s&63):(r++,s=65536+((s&1023)<<10|e.charCodeAt(r)&1023),n.push(240|s>>18,128|s>>12&63,128|s>>6&63,128|s&63))}return n}return t(i)}})();(function(i){typeof define=="function"&&define.amd?define([],i):typeof Fb=="object"&&(qb.exports=i())})(function(){return $b})});var y2={};Md(y2,{BRC29_PROTOCOL:()=>Ad,BWALLETX_RDNS:()=>ks,GET_URL:()=>md,LOGIN_PROTOCOL:()=>hd,LOGO_URL:()=>vd,PaymentError:()=>fe,RDNS_EXTENSION:()=>Pr,RDNS_MOBILE:()=>Qc,SIGNIN_CSS:()=>Id,SIGNIN_TAG:()=>bd,WEB_WALLET_URL:()=>yd,amountInSats:()=>Od,brc100Option:()=>Es,buildAuthorizeUrl:()=>Sd,buyToken:()=>Lb,clearPairing:()=>Ab,connectBwalletX:()=>pd,defineBwalletxSignin:()=>Gc,discoverBwalletX:()=>Mi,discoverWallets:()=>Hb,findBwalletX:()=>Hd,handcashAdapter:()=>Db,inOrder:()=>$o,isIdentityKeyHex:()=>Ed,isPaymail:()=>Td,markSvg:()=>xd,pairBwalletX:()=>vs,pairingModal:()=>zb,pairingOption:()=>Nd,pay:()=>Rd,pickWallet:()=>Xb,qrSvg:()=>Bd,renderButton:()=>Pb,resolvePaymailP2P:()=>Pd,restorePairing:()=>As,signInWithBwalletX:()=>Xc,signinText:()=>wd,tip:()=>Cb});var Pr="com.bwalletx.extension",Qc="space.bwallet.mobile",ks=[Pr,Qc];function Mi(i=1200){return typeof window>"u"?Promise.resolve(null):new Promise(t=>{let e=!1,n=s=>{e||(e=!0,window.removeEventListener("brc100:announceWallet",r),t(s))},r=s=>{let o=s.detail,c=o?.info?.rdns??"";o?.wallet&&ks.includes(c)&&n({wallet:o.wallet,method:c===Pr?"extension":"in-app",rdns:c})};window.addEventListener("brc100:announceWallet",r),window.dispatchEvent(new Event("brc100:requestWallet")),setTimeout(()=>{let s=window.CWI;n(s?{wallet:s,method:"in-app",rdns:null}:null)},i)})}async function Hd(i=1200){return(await Mi(i))?.wallet??null}var tu=globalThis.Buffer,im=tu!=null&&typeof tu.from=="function",Ns=new Int8Array(256).fill(-1);for(let i=0;i<10;i++)Ns[48+i]=i;for(let i=0;i<6;i++)Ns[65+i]=10+i,Ns[97+i]=10+i;var Bs,_s,Ko,zo,ai,Xo,Cs,Y,rt,St,P,$d,Fd,qd,Wd,Vd,Kd,eu,Ne,Sn,st,zd,Os,Ps,Xd,jd,Hi,Gd,Yd,Zd,Ct,oe,Rs,Vo,Di,nu,Jd,iu,Z=class Z{constructor(t=0,e=10,n="be"){G(this,P);G(this,Y,0n);G(this,rt,0);G(this,St,1);m(this,"red",null);if(t??(t=0),typeof t=="bigint"){a(this,P,Ne).call(this,t<0n?-t:t,t<0n?1:0),this.normSign();return}let r=e==="le"||e==="be",s=r?10:e,o=r?e:n;if(typeof t=="number"){a(this,P,zd).call(this,t,o);return}if(Array.isArray(t)){a(this,P,Os).call(this,t,o);return}if(typeof t=="string"){a(this,P,Fd).call(this,t,s,o);return}t!==0?a(this,P,st).call(this,!1,"Unsupported input type for BigNumber constructor"):a(this,P,Ne).call(this,0n,0)}get negative(){return w(this,rt)}set negative(t){a(this,P,st).call(this,t===0||t===1,"Negative property must be 0 or 1");let e=t===1?1:0;w(this,Y)===0n?N(this,rt,0):N(this,rt,e)}get words(){if(!Number.isSafeInteger(w(this,St))||w(this,St)<1||w(this,St)>w(Z,Cs))throw new Error("BigNumber word length exceeds the supported limit");let t=w(this,P,$d);if(w(this,St)<=t.length)return t;let e=Array.from({length:w(this,St)}).fill(0);for(let n=0;n<t.length;n++)e[n]=t[n];return e}set words(t){let e=w(this,rt),n=0n,r=t.length>0?t.length:1;for(let s=r-1;s>=0;s--){let o=t[s]??0;n=n<<w(Z,Bs)|BigInt(o&Number(w(Z,_s)))}N(this,Y,n),N(this,rt,e),N(this,St,r),this.normSign()}get length(){return Math.max(1,w(this,St))}static isBN(t){return t instanceof Z?!0:t!==null&&typeof t=="object"&&t.constructor?.wordSize===Z.wordSize&&Array.isArray(t.words)}static max(t,e){return t.cmp(e)>0?t:e}static min(t,e){return t.cmp(e)<0?t:e}copy(t){N(t,Y,w(this,Y)),N(t,rt,w(this,rt)),N(t,St,w(this,St)),t.red=this.red}static move(t,e){N(t,Y,w(e,Y)),N(t,rt,w(e,rt)),N(t,St,w(e,St)),t.red=e.red}clone(){let t=new Z(0n);return this.copy(t),t}expand(t){return a(this,P,st).call(this,Number.isSafeInteger(t)&&t>=0&&t<=w(Z,Cs),"Expand size must be a non-negative safe integer within the supported word limit"),N(this,St,Math.max(w(this,St),t,1)),this}strip(){return a(this,P,Sn).call(this),this.normSign()}normSign(){return w(this,Y)===0n&&N(this,rt,0),this}inspect(){return(this.red===null?"<BN: ":"<BN-R: ")+this.toString(16)+">"}toString(t=10,e=1){if(t===16||t==="hex")return a(this,P,Xd).call(this,e);if(typeof t!="number"||t<2||t>36||t%1!==0)throw new Error("Base should be an integer between 2 and 36");return a(this,P,jd).call(this,t,e)}toNumber(){let t=a(this,P,Ct).call(this);if(t>w(Z,Ko)||t<w(Z,zo))throw new Error("Number can only safely store up to 53 bits");return Number(t)}toBigInt(){return a(this,P,Ct).call(this)}toJSON(){let t=a(this,P,Ps).call(this);return(this.isNeg()?"-":"")+t}toArray(t="be",e){this.strip();let n=this.byteLength(),r=e??Math.max(1,n);a(this,P,st).call(this,n<=r,"byte array longer than desired length"),a(this,P,st).call(this,r>0,"Requested array length <= 0");let s=Array.from({length:r}).fill(0);return w(this,Y)===0n&&r>0?s:w(this,Y)===0n&&r===0?[]:(a(this,P,Zd).call(this,s,t==="le"),s)}bitLength(){return w(this,Y)===0n?0:w(this,Y).toString(2).length}static toBitArray(t){let e=t.bitLength();if(e===0)return[];let n=Array.from({length:e}),r=w(t,Y);for(let s=0;s<e;s++)n[s]=(r>>BigInt(s)&1n)===0n?0:1;return n}toBitArray(){return Z.toBitArray(this)}zeroBits(){if(w(this,Y)===0n)return 0;let t=0,e=w(this,Y);for(;(e&1n)===0n&&e!==0n;)t++,e>>=1n;return t}byteLength(){return w(this,Y)===0n?0:Math.ceil(this.bitLength()/8)}toTwos(t){var o;a(this,P,st).call(this,t>=0);let e=BigInt(t),n=a(this,P,Ct).call(this);w(this,rt)===1&&w(this,Y)!==0n&&(n=(1n<<e)+n);let r=(1n<<e)-1n;n&=r;let s=new Z(0n);return a(o=s,P,Ne).call(o,n,0),s}fromTwos(t){var r;a(this,P,st).call(this,t>=0);let e=BigInt(t),n=w(this,Y);if(t>0&&(n>>e-1n&1n)!==0n&&w(this,rt)===0){let s=n-(1n<<e),o=new Z(0n);return a(r=o,P,oe).call(r,s),o}return this.clone()}isNeg(){return w(this,rt)===1&&w(this,Y)!==0n}neg(){return this.clone().ineg()}ineg(){return w(this,Y)!==0n&&N(this,rt,w(this,rt)===1?0:1),this}iuor(t){return a(this,P,Rs).call(this,t,(e,n)=>e|n)}iuand(t){return a(this,P,Rs).call(this,t,(e,n)=>e&n)}iuxor(t){return a(this,P,Rs).call(this,t,(e,n)=>e^n,!0)}ior(t){return a(this,P,Vo).call(this,t,(e,n)=>e|n)}iand(t){return a(this,P,Vo).call(this,t,(e,n)=>e&n)}ixor(t){return a(this,P,Vo).call(this,t,(e,n)=>e^n,!0)}or(t){return a(this,P,st).call(this,w(this,rt)===0&&w(t,rt)===0),a(this,P,Di).call(this,t,"iuor")}uor(t){return a(this,P,Di).call(this,t,"iuor")}and(t){return a(this,P,st).call(this,w(this,rt)===0&&w(t,rt)===0),a(this,P,Di).call(this,t,"iuand")}uand(t){return a(this,P,Di).call(this,t,"iuand")}xor(t){return a(this,P,st).call(this,w(this,rt)===0&&w(t,rt)===0),a(this,P,Di).call(this,t,"iuxor")}uxor(t){return a(this,P,Di).call(this,t,"iuxor")}inotn(t){a(this,P,st).call(this,typeof t=="number"&&t>=0);let n=(1n<<BigInt(t))-1n;N(this,Y,~w(this,Y)&n);let r=t===0?1:Math.ceil(t/Z.wordSize);return N(this,St,Math.max(1,r)),this.strip(),N(this,St,Math.max(w(this,St),Math.max(1,r))),this}notn(t){return this.clone().inotn(t)}setn(t,e){a(this,P,st).call(this,typeof t=="number"&&t>=0);let n=BigInt(t);e===1||e===!0?N(this,Y,w(this,Y)|1n<<n):N(this,Y,w(this,Y)&~(1n<<n));let r=Math.floor(t/Z.wordSize)+1;return N(this,St,Math.max(w(this,St),r)),a(this,P,Sn).call(this),this.strip()}iadd(t){var e;return a(this,P,oe).call(this,a(this,P,Ct).call(this)+a(e=t,P,Ct).call(e)),this}add(t){var n,r;let e=new Z(0n);return a(r=e,P,oe).call(r,a(this,P,Ct).call(this)+a(n=t,P,Ct).call(n)),e}isub(t){var e;return a(this,P,oe).call(this,a(this,P,Ct).call(this)-a(e=t,P,Ct).call(e)),this}sub(t){var n,r;let e=new Z(0n);return a(r=e,P,oe).call(r,a(this,P,Ct).call(this)-a(n=t,P,Ct).call(n)),e}mul(t){let e=new Z(0n);return N(e,Y,w(this,Y)*w(t,Y)),N(e,rt,w(e,Y)===0n?0:w(this,rt)^w(t,rt)),N(e,St,this.length+t.length),e.red=null,e.normSign()}imul(t){return N(this,Y,w(this,Y)*w(t,Y)),N(this,rt,w(this,Y)===0n?0:w(this,rt)^w(t,rt)),N(this,St,this.length+t.length),this.red=null,this.normSign()}imuln(t){return a(this,P,st).call(this,typeof t=="number","Assertion failed"),a(this,P,st).call(this,Math.abs(t)<=w(Z,ai),"Assertion failed"),a(this,P,oe).call(this,a(this,P,Ct).call(this)*BigInt(t)),this}muln(t){return this.clone().imuln(t)}sqr(){let t=new Z(0n);return N(t,Y,w(this,Y)*w(this,Y)),N(t,rt,0),N(t,St,this.length*2),t.red=null,t}isqr(){return N(this,Y,w(this,Y)*w(this,Y)),N(this,rt,0),N(this,St,this.length*2),this.red=null,this}pow(t){if(a(this,P,st).call(this,w(t,rt)===0,"Exponent for pow must be non-negative"),t.isZero())return new Z(1n);let e=new Z(1n),n=this.clone(),r=t.clone(),s=n.isNeg(),o=r.isOdd();for(s&&n.ineg();!r.isZero();)r.isOdd()&&e.imul(n),n.isqr(),r.iushrn(1);return s&&o&&e.ineg(),e}iushln(t){var n;let e=a(n=Z,Hi,nu).call(n,t,"Shift bits");return e===0n?this:(N(this,Y,w(this,Y)<<e),a(this,P,Sn).call(this),this.strip())}ishln(t){return a(this,P,st).call(this,w(this,rt)===0,"ishln requires positive number"),this.iushln(t)}iushrn(t,e,n){var s,o,c;let r=a(s=Z,Hi,nu).call(s,t,"Shift bits");if(r===0n)return n!=null&&a(o=n,P,Ne).call(o,0n,0),this;if(n!=null){let u=(1n<<r)-1n,f=w(this,Y)&u;a(c=n,P,Ne).call(c,f,0)}return N(this,Y,w(this,Y)>>r),a(this,P,Sn).call(this),this.strip()}ishrn(t,e,n){return a(this,P,st).call(this,w(this,rt)===0,"ishrn requires positive number"),this.iushrn(t,e,n)}shln(t){return this.clone().ishln(t)}ushln(t){return this.clone().iushln(t)}shrn(t){return this.clone().ishrn(t)}ushrn(t){return this.clone().iushrn(t)}testn(t){return a(this,P,st).call(this,typeof t=="number"&&t>=0),(w(this,Y)>>BigInt(t)&1n)!==0n}imaskn(t){a(this,P,st).call(this,typeof t=="number"&&t>=0),a(this,P,st).call(this,w(this,rt)===0,"imaskn works only with positive numbers");let e=BigInt(t),n=e===0n?0n:(1n<<e)-1n;N(this,Y,w(this,Y)&n);let r=t===0?1:Math.max(1,Math.ceil(t/Z.wordSize));return N(this,St,r),a(this,P,Sn).call(this),N(this,St,Math.max(w(this,St),r)),this.strip()}maskn(t){return this.clone().imaskn(t)}iaddn(t){return a(this,P,st).call(this,typeof t=="number"),a(this,P,st).call(this,Math.abs(t)<=w(Z,ai),"num is too large"),a(this,P,oe).call(this,a(this,P,Ct).call(this)+BigInt(t)),this}_iaddn(t){return this.iaddn(t)}isubn(t){return a(this,P,st).call(this,typeof t=="number"),a(this,P,st).call(this,Math.abs(t)<=w(Z,ai),"Assertion failed"),a(this,P,oe).call(this,a(this,P,Ct).call(this)-BigInt(t)),this}addn(t){return this.clone().iaddn(t)}subn(t){return this.clone().isubn(t)}iabs(){return N(this,rt,0),this}abs(){return this.clone().iabs()}divmod(t,e,n){var u;if(a(this,P,st).call(this,!t.isZero(),"Division by zero"),this.isZero()){let f=new Z(0n);return{div:e==="mod"?null:f,mod:e==="div"?null:f}}let r=a(this,P,Ct).call(this),s=a(u=t,P,Ct).call(u),o=e!=="mod"?r/s:null,c=a(this,P,Jd).call(this,r,s,e,n);return{div:a(this,P,iu).call(this,o),mod:a(this,P,iu).call(this,c)}}div(t){return this.divmod(t,"div",!1).div}mod(t){return this.divmod(t,"mod",!1).mod}umod(t){return this.divmod(t,"mod",!0).mod}divRound(t){var f,d,l;a(this,P,st).call(this,!t.isZero());let e=a(this,P,Ct).call(this),n=a(f=t,P,Ct).call(f),r=e/n,s=e%n;if(s===0n){let p=new Z(0n);return a(d=p,P,oe).call(d,r),p}let o=s<0n?-s:s,c=n<0n?-n:n;o*2n>=c&&(e>0n&&n>0n||e<0n&&n<0n?r+=1n:r-=1n);let u=new Z(0n);return a(l=u,P,oe).call(l,r),u}modrn(t){a(this,P,st).call(this,t!==0,"Division by zero in modrn");let e=BigInt(Math.abs(t));if(e===0n)throw new Error("Division by zero in modrn");let n=w(this,Y)%e;return t<0?Number(-n):Number(n)}idivn(t){return a(this,P,st).call(this,t!==0),a(this,P,st).call(this,Math.abs(t)<=w(Z,ai),"num is too large"),a(this,P,oe).call(this,a(this,P,Ct).call(this)/BigInt(t)),this}divn(t){return this.clone().idivn(t)}egcd(t){var l,p,b;a(this,P,st).call(this,t.negative===0,"p must not be negative"),a(this,P,st).call(this,!t.isZero(),"p must not be zero");let e=a(this,P,Ct).call(this),n=w(t,Y),r=1n,s=0n,o=0n,c=1n;for(;n!==0n;){let g=e/n,y=n;n=e%n,e=y,y=s,s=r-g*s,r=y,y=c,c=o-g*c,o=y}let u=new Z(0n);a(l=u,P,oe).call(l,r);let f=new Z(0n);a(p=f,P,oe).call(p,o);let d=new Z(0n);return a(b=d,P,Ne).call(b,e<0n?-e:e,0),{a:u,b:f,gcd:d}}gcd(t){var s,o,c;let e=w(this,Y),n=w(t,Y);if(e===0n){let u=new Z(0n);return a(s=u,P,oe).call(s,n),u.iabs()}if(n===0n){let u=new Z(0n);return a(o=u,P,oe).call(o,e),u.iabs()}for(;n!==0n;){let u=e%n;e=n,n=u}let r=new Z(0n);return a(c=r,P,Ne).call(c,e,0),r}invm(t){a(this,P,st).call(this,!t.isZero()&&w(t,rt)===0,"Modulus for invm must be positive and non-zero");let e=this.egcd(t);if(!e.gcd.eqn(1))throw new Error("Inverse does not exist (numbers are not coprime).");return e.a.umod(t)}isEven(){return w(this,Y)%2n===0n}isOdd(){return w(this,Y)%2n===1n}andln(t){return a(this,P,st).call(this,t>=0),Number(w(this,Y)&BigInt(t))}bincn(t){a(this,P,st).call(this,typeof t=="number"&&t>=0);let e=1n<<BigInt(t);return a(this,P,oe).call(this,a(this,P,Ct).call(this)+e),this}isZero(){return w(this,Y)===0n}cmpn(t){a(this,P,st).call(this,Math.abs(t)<=w(Z,ai),"Number is too big");let e=a(this,P,Ct).call(this),n=BigInt(t);return e<n?-1:e>n?1:0}cmp(t){var r;let e=a(this,P,Ct).call(this),n=a(r=t,P,Ct).call(r);return e<n?-1:e>n?1:0}ucmp(t){return w(this,Y)<w(t,Y)?-1:w(this,Y)>w(t,Y)?1:0}gtn(t){return this.cmpn(t)===1}gt(t){return this.cmp(t)===1}gten(t){return this.cmpn(t)>=0}gte(t){return this.cmp(t)>=0}ltn(t){return this.cmpn(t)===-1}lt(t){return this.cmp(t)===-1}lten(t){return this.cmpn(t)<=0}lte(t){return this.cmp(t)<=0}eqn(t){return this.cmpn(t)===0}eq(t){return this.cmp(t)===0}toRed(t){return a(this,P,st).call(this,this.red==null,"Already a number in reduction context"),a(this,P,st).call(this,w(this,rt)===0,"toRed works only with positives"),t.convertTo(this).forceRed(t)}fromRed(){return a(this,P,st).call(this,this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)}forceRed(t){return this.red=t,this}redAdd(t){return a(this,P,st).call(this,this.red,"redAdd works only with red numbers"),this.red.add(this,t)}redIAdd(t){return a(this,P,st).call(this,this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)}redSub(t){return a(this,P,st).call(this,this.red,"redSub works only with red numbers"),this.red.sub(this,t)}redISub(t){return a(this,P,st).call(this,this.red,"redISub works only with red numbers"),this.red.isub(this,t)}redShl(t){return a(this,P,st).call(this,this.red,"redShl works only with red numbers"),this.red.shl(this,t)}redMul(t){return a(this,P,st).call(this,this.red,"redMul works only with red numbers"),this.red.verify2(this,t),this.red.mul(this,t)}redIMul(t){return a(this,P,st).call(this,this.red,"redIMul works only with red numbers"),this.red.verify2(this,t),this.red.imul(this,t)}redSqr(){return a(this,P,st).call(this,this.red,"redSqr works only with red numbers"),this.red.verify1(this),this.red.sqr(this)}redISqr(){return a(this,P,st).call(this,this.red,"redISqr works only with red numbers"),this.red.verify1(this),this.red.isqr(this)}redSqrt(){return a(this,P,st).call(this,this.red,"redSqrt works only with red numbers"),this.red.verify1(this),this.red.sqrt(this)}redInvm(){return a(this,P,st).call(this,this.red,"redInvm works only with red numbers"),this.red.verify1(this),this.red.invm(this)}redNeg(){return a(this,P,st).call(this,this.red,"redNeg works only with red numbers"),this.red.verify1(this),this.red.neg(this)}redPow(t){return a(this,P,st).call(this,this.red!=null&&t.red==null,"redPow(normalNum)"),this.red.verify1(this),this.red.pow(this,t)}static fromHex(t,e){let n="be";return(e==="little"||e==="le")&&(n="le"),new Z(t,16,n)}toHex(t=0){if(this.isZero()&&t===0)return"";let e=a(this,P,Ps).call(this);e!=="0"&&e.length%2!==0&&(e="0"+e);let n=t*2;for(;e.length<n;)e="0"+e;return(this.isNeg()?"-":"")+e}static fromJSON(t){return new Z(t,16)}static fromNumber(t){return new Z(t)}static fromString(t,e){return new Z(t,e)}static fromSm(t,e="big"){var u;if(t.length===0)return new Z(0n);let n=t.slice();e==="little"&&n.reverse();let r=0;n.length>0&&(n[0]&128)!==0&&(r=1,n[0]&=127);let s;if(im)s=tu.from(n).toString("hex");else{s="";for(let f of n)s+=f<16?"0"+f.toString(16):f.toString(16)}let o=s.length===0?0n:BigInt("0x"+s),c=new Z(0n);return a(u=c,P,Ne).call(u,o,r),c}toSm(t="big"){if(w(this,Y)===0n)return w(this,rt)===1?[128]:[];let e=a(this,P,Ps).call(this);e.length%2!==0&&(e="0"+e);let n=e.length/2,r=Array.from({length:n});for(let o=0,c=0;o<e.length;o+=2){let u=Ns[e.codePointAt(o)],f=Ns[e.codePointAt(o+1)];r[c++]=(u&15)<<4|f&15}let s;return w(this,rt)===1?(r[0]&128)===0?(s=r.slice(),s[0]|=128):s=[128,...r]:(r[0]&128)===0?s=r.slice():s=[0,...r],t==="little"?s.reverse():s}static fromBits(t,e=!1){let n=t>>>24,r=t&8388607,s=(t&8388608)!==0;if(e&&s)throw new Error("negative bit set");if(n===0&&r===0){if(s&&e)throw new Error("negative bit set for zero value");return new Z(0n)}let o=new Z(r);return n<=3?o.iushrn((3-n)*8):o.iushln((n-3)*8),s&&o.ineg(),o}toBits(){if(this.strip(),this.isZero()&&!this.isNeg())return 0;let t=this.isNeg(),n=this.abs().toArray("be"),r=0;for(;r<n.length-1&&n[r]===0;)r++;n=n.slice(r);let s=n.length,o;if(s===0)o=0;else if(s<=3){o=0;for(let u=0;u<s;u++)o=o<<8|n[u]}else o=n[0]<<16|n[1]<<8|n[2];(o&8388608)!==0&&s<=255&&(o>>>=8,s++);let c=s<<24|o;return t&&(c|=8388608),c>>>0}static fromScriptNum(t,e=!1,n){if(n!==void 0&&t.length>n)throw new Error("script number overflow");if(t.length===0)return new Z(0n);if(e&&(t.at(-1)&127)===0&&(t.length<=1||(t.at(-2)&128)===0))throw new Error("non-minimally encoded script number");return Z.fromSm(t,"little")}toScriptNum(){return this.toSm("little")}_invmp(t){a(this,P,st).call(this,w(t,rt)===0,"p must not be negative for _invmp"),a(this,P,st).call(this,!t.isZero(),"p must not be zero for _invmp");let e=this.umod(t),n=t.subn(2);if(e.red!==null)return e.redPow(n);let r=new Z(1n),s=e.clone(),o=n.clone();for(;!o.isZero();)o.isOdd()&&(r=r.mul(s).umod(t)),s=s.sqr().umod(t),o.iushrn(1);return r}mulTo(t,e){return N(e,Y,w(this,Y)*w(t,Y)),N(e,rt,w(e,Y)===0n?0:w(this,rt)^w(t,rt)),N(e,St,this.length+t.length),e.red=null,e.normSign(),e}};Bs=new WeakMap,_s=new WeakMap,Ko=new WeakMap,zo=new WeakMap,ai=new WeakMap,Xo=new WeakMap,Cs=new WeakMap,Y=new WeakMap,rt=new WeakMap,St=new WeakMap,P=new WeakSet,$d=function(){if(w(this,Y)===0n)return[0];let t=[],e=w(this,Y);for(;e>0n;)t.push(Number(e&w(Z,_s))),e>>=w(Z,Bs);return t.length>0?t:[0]},Fd=function(t,e,n){e==="hex"&&(e=16),a(this,P,st).call(this,typeof e=="number"&&e===Math.trunc(e)&&e>=2&&e<=36,"Base must be an integer between 2 and 36");let r=t.toString().replace(/\s+/g,""),s=0,o=0;r.startsWith("-")?(s++,o=1):r.startsWith("+")&&s++;let c=r.substring(s);if(c.length===0){a(this,P,Ne).call(this,0n,o===1&&r.startsWith("-")?1:0),this.normSign();return}e===16?a(this,P,qd).call(this,c,o,n):a(this,P,Wd).call(this,c,e,o,n)},qd=function(t,e,n){if(n==="le"){let r=[],s=t;s.length%2!==0&&(s="0"+s);for(let o=0;o<s.length;o+=2){let c=s.substring(o,o+2),u=Number.parseInt(c,16);if(Number.isNaN(u))throw new Error("Invalid character in "+s);r.push(u)}a(this,P,Os).call(this,r,"le"),N(this,rt,e),this.normSign()}else{let r;try{r=BigInt("0x"+t)}catch{throw new Error("Invalid character in "+t)}a(this,P,Ne).call(this,r,e),this.normSign()}},Wd=function(t,e,n,r){try{if(a(this,P,Kd).call(this,t,e),N(this,rt,n),this.normSign(),r==="le"){let s=w(this,rt);a(this,P,Os).call(this,this.toArray("be"),"le"),N(this,rt,s),this.normSign()}}catch(s){let o=s;throw o.message.includes("Invalid character in string")||o.message.includes("Invalid digit for base")||o.message.startsWith("Invalid character:")?new Error("Invalid character"):o}},Vd=function(t,e){if(t===0n)return"0";if(e<2||e>36)throw new Error("Base must be between 2 and 36");let n="0123456789abcdefghijklmnopqrstuvwxyz",r="",s=t>0n?t:-t,o=BigInt(e);for(;s>0n;)r=n[Number(s%o)]+r,s/=o;return r},Kd=function(t,e){N(this,Y,0n);let n=BigInt(e),r=Z.groupSizes[e],s=BigInt(Z.groupBases[e]);(r===0||s===0n)&&(r=Math.floor(Math.log(67108863)/Math.log(e)),r===0&&(r=1),s=n**BigInt(r));let o=0,c=t.length,u=c%r;if(u===0&&c>0&&(u=r),u>0){let f=t.substring(o,o+u);N(this,Y,BigInt(a(this,P,eu).call(this,f,e))),o+=u}for(;o<c;){let f=t.substring(o,o+r),d=BigInt(a(this,P,eu).call(this,f,e));N(this,Y,w(this,Y)*s+d),o+=r}a(this,P,Sn).call(this)},eu=function(t,e){let n=0;for(let r=0;r<t.length;r++){let s=t.codePointAt(r),o;if(s>=48&&s<=57)o=s-48;else if(s>=65&&s<=90)o=s-65+10;else if(s>=97&&s<=122)o=s-97+10;else throw new Error("Invalid character: "+t[r]);if(o>=e)throw new Error("Invalid character");n=n*e+o}return n},Ne=function(t,e){N(this,Y,t),N(this,rt,t===0n?0:e),a(this,P,Sn).call(this)},Sn=function(){if(w(this,Y)===0n)N(this,St,1),N(this,rt,0);else{let t=w(this,Y).toString(2).length;N(this,St,Math.max(1,Math.ceil(t/Z.wordSize)))}},st=function(t,e="Assertion failed"){if(!t)throw new Error(e)},zd=function(t,e="be"){if(a(this,P,st).call(this,BigInt(Math.abs(t))<=w(Z,Xo),"The number is larger than 2 ^ 53 (unsafe)"),a(this,P,st).call(this,t%1===0,"Number must be an integer for BigNumber conversion"),a(this,P,Ne).call(this,BigInt(Math.abs(t)),t<0?1:0),e==="le"){let n=w(this,rt),r=this.toArray("be");a(this,P,Os).call(this,r,"le"),N(this,rt,n),this.normSign()}return this},Os=function(t,e){if(t.length===0)return a(this,P,Ne).call(this,0n,0),this;let n=0n;if(e==="be")for(let r of t)n=n<<8n|BigInt(r&255);else for(let r=t.length-1;r>=0;r--)n=n<<8n|BigInt(t[r]&255);return a(this,P,Ne).call(this,n,0),this},Ps=function(){return w(this,Y)===0n?"0":w(this,Y).toString(16)},Xd=function(t){let e=a(this,P,Ps).call(this);if(t>1)for(e!=="0"&&e.length%2!==0&&(e="0"+e);e.length%t!==0;)e="0"+e;return(this.isNeg()?"-":"")+e},jd=function(t,e){var c;if(w(this,Y)===0n)return a(c=Z,Hi,Gd).call(c,e);let n=Z.groupSizes[t],r=BigInt(Z.groupBases[t]);(n===0||r===0n)&&(n=Math.floor(Math.log(Number.MAX_SAFE_INTEGER)/Math.log(t)),n===0&&(n=1),r=BigInt(t)**BigInt(n));let s="",o=w(this,Y);for(;o>0n;){let u=o%r;o/=r;let f=a(this,P,Vd).call(this,u,t);s=(o>0n?a(this,P,Yd).call(this,f,n):f)+s}if(e>0)for(;s.length<e;)s="0"+s;return(w(this,rt)===1?"-":"")+s},Hi=new WeakSet,Gd=function(t){let e="0";if(t>1)for(;e.length<t;)e="0"+e;return e},Yd=function(t,e){let n=e-t.length;return n<=0?t:n<Z.zeros.length?Z.zeros[n]+t:"0".repeat(n)+t},Zd=function(t,e){let n=w(this,Y),r=e?0:t.length-1,s=e?1:-1;for(let o of t){if(n===0n&&r>=0&&r<t.length)t[r]=0;else if(r>=0&&r<t.length)t[r]=Number(n&0xffn);else break;n>>=8n,r+=s}},Ct=function(){return w(this,rt)===1?-w(this,Y):w(this,Y)},oe=function(t){t<0n?(N(this,Y,-t),N(this,rt,1)):(N(this,Y,t),N(this,rt,0)),a(this,P,Sn).call(this),this.normSign()},Rs=function(t,e,n=!1){let r=e(w(this,Y),w(t,Y)),s=w(this,St);return n&&(s=Math.max(this.length,t.length)),N(this,Y,r),a(this,P,Sn).call(this),n&&N(this,St,Math.max(w(this,St),s)),this.strip()},Vo=function(t,e,n=!1){return a(this,P,st).call(this,w(this,rt)===0&&w(t,rt)===0),a(this,P,Rs).call(this,t,e,n)},Di=function(t,e){return this.length>=t.length?this.clone()[e](t):t.clone()[e](this)},nu=function(t,e){if(typeof t=="number"){if(!Number.isFinite(t)||!Number.isInteger(t)||t<0)throw new Error(`${e} must be a non-negative integer`);return BigInt(t)}if(t<0n)throw new Error(`${e} must be a non-negative integer`);return t},Jd=function(t,e,n,r){if(n==="div")return null;let s=t%e;return r===!0&&s<0n&&(s+=e<0n?-e:e),s},iu=function(t){var n;if(t===null)return null;let e=new Z(0n);return a(n=e,P,oe).call(n,t),e},G(Z,Hi),m(Z,"zeros",["","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"]),m(Z,"groupSizes",[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(Z,"groupBases",[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]),m(Z,"wordSize",26),G(Z,Bs,26n),G(Z,_s,(1n<<26n)-1n),G(Z,Ko,BigInt(Number.MAX_SAFE_INTEGER)),G(Z,zo,BigInt(Number.MIN_SAFE_INTEGER)),G(Z,ai,67108863),G(Z,Xo,(1n<<53n)-1n),G(Z,Cs,1048576);var k=Z;var Ls=class{constructor(t,e){m(this,"name");m(this,"p");m(this,"k");m(this,"n");m(this,"tmp");this.name=t,this.p=new k(e,16),this.n=this.p.bitLength(),this.k=new k(BigInt(1)).iushln(this.n).isub(this.p),this.tmp=this._tmp()}_tmp(){let t=new k(BigInt(0)),e=Math.ceil(this.n/k.wordSize);return t.expand(Math.max(1,e)),t}ireduce(t){let e=t,n;do this.split(e,this.tmp),this.imulK(e),e.iadd(this.tmp),n=e.bitLength();while(n>this.n);let r=n<this.n?-1:e.ucmp(this.p);return r===0?e.words=[0]:r>0&&e.isub(this.p),e.strip(),e}split(t,e){t.iushrn(this.n,0,e)}imulK(t){return t.imul(this.k)}};var Us=class extends Ls{constructor(){super("k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}split(t,e){let r=t.words,s=t.length,o=Math.min(s,9),c=Array.from({length:o+(s>9?1:0)},()=>0);for(let g=0;g<o;g++)c[g]=r[g];let u=o;if(s<=9){let g=Array.from({length:u},()=>0);for(let y=0;y<u;++y)g[y]=c[y];e.words=g,t.words=[0];return}let f=r[9];c[u++]=f&4194303;let d=Array.from({length:u},()=>0);for(let g=0;g<u;++g)d[g]=c[g];e.words=d;let l=Array.from({length:Math.max(1,s-9)},()=>0),p=0;for(let g=10;g<s;g++){let y=Math.trunc(r[g]);p<l.length&&(l[p++]=(y&4194303)<<4|f>>>22),f=y}f>>>=22,p<l.length?l[p++]=f:f!==0&&l.length>0;let b=Array.from({length:p},()=>0);for(let g=0;g<p;++g)b[g]=l[g];t.words=b}imulK(t){let e=t.words,n=t.length,r=n+2,s=Array.from({length:r},()=>0);for(let c=0;c<n;c++)s[c]=e[c];let o=0;for(let c=0;c<r;c++){let u=Math.trunc(s[c]);o+=u*977,s[c]=o&67108863,o=u*64+Math.trunc(o/67108864)}return t.words=s,t}};var $i=class{constructor(t){m(this,"prime");m(this,"m");if(t==="k256"){let e=new Us;this.m=e.p,this.prime=e}else this.assert(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}assert(t,e="Assertion failed"){if(!t)throw new Error(e)}verify1(t){this.assert(t.negative===0,"red works only with positives"),this.assert(t.red,"red works only with red numbers")}verify2(t,e){this.assert((t.negative|e.negative)===0,"red works only with positives"),this.assert(t.red!=null&&t.red===e.red,"red works only with red numbers")}imod(t){return this.prime!=null?this.prime.ireduce(t).forceRed(this):(k.move(t,t.umod(this.m).forceRed(this)),t)}neg(t){return t.isZero()?t.clone():this.m.sub(t).forceRed(this)}add(t,e){this.verify2(t,e);let n=t.clone();return n.iadd(e),n.isub(this.m),n.isNeg()&&n.iadd(this.m),n}iadd(t,e){return this.verify2(t,e),t.iadd(e),t.isub(this.m),t.isNeg()&&t.iadd(this.m),t}sub(t,e){this.verify2(t,e);let n=t.sub(e);return n.cmpn(0)<0&&n.iadd(this.m),n.forceRed(this)}isub(t,e){this.verify2(t,e);let n=t.isub(e);return n.cmpn(0)<0&&n.iadd(this.m),n}shl(t,e){return this.verify1(t),this.imod(t.ushln(e))}imul(t,e){return this.verify2(t,e),this.imod(t.imul(e))}mul(t,e){return this.verify2(t,e),this.imod(t.mul(e))}isqr(t){return this.imul(t,t.clone())}sqr(t){return this.mul(t,t)}sqrt(t){if(t.isZero())return t.clone();let e=this.m.andln(3);if(this.assert(e%2===1),e===3){let g=this.m.add(new k(1)).iushrn(2);return this.pow(t,g)}let n=this.m.subn(1),r=0;for(;!n.isZero()&&n.andln(1)===0;)r++,n.iushrn(1);this.assert(!n.isZero());let s=new k(1).toRed(this),o=s.redNeg(),c=this.m.subn(1).iushrn(1),u=this.m.bitLength(),f=new k(2*u*u).toRed(this);for(;this.pow(f,c).cmp(o)!==0;)f.redIAdd(o);let d=this.pow(f,n),l=this.pow(t,n.addn(1).iushrn(1)),p=this.pow(t,n),b=r;for(;p.cmp(s)!==0;){let g=p,y=0;for(;g.cmp(s)!==0;)g=g.redSqr(),y++;this.assert(y<b);let v=this.pow(d,new k(1).iushln(b-y-1));l=l.redMul(v),d=v.redSqr(),p=p.redMul(d),b=y}return l}invm(t){let e=t._invmp(this.m);return e.negative!==0?(e.negative=0,this.imod(e).redNeg()):this.imod(e)}pow(t,e){if(this.verify1(t),e.isZero())return new k(1).toRed(this);let n=new k(1).toRed(this),r=t.clone(),s=e.bitLength();for(let o=s-1;o>=0;o--)n=this.sqr(n),e.testn(o)&&(n=this.mul(n,r));return n}convertTo(t){let e=t.umod(this.m);return e===t?e.clone():e}convertFrom(t){let e=t.clone();return e.red=null,e}};var Ms=class extends $i{constructor(e){super(e);m(this,"shift");m(this,"r");m(this,"r2");m(this,"rinv");m(this,"minv");this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new k(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)}convertTo(e){return this.imod(e.ushln(this.shift))}convertFrom(e){let n=this.imod(e.mul(this.rinv));return n.red=null,n}imul(e,n){if(e.isZero()||n.isZero())return e.words[0]=0,e.length=1,e;let r=e.imul(n),s=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(s).iushrn(this.shift),c=o;return o.cmp(this.m)>=0?c=o.isub(this.m):o.cmpn(0)<0&&(c=o.iadd(this.m)),c.forceRed(this)}mul(e,n){if(e.isZero()||n.isZero())return new k(0).forceRed(this);let r=e.mul(n),s=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(s).iushrn(this.shift),c=o;return o.cmp(this.m)>=0?c=o.isub(this.m):o.cmpn(0)<0&&(c=o.iadd(this.m)),c.forceRed(this)}invm(e){return this.imod(e._invmp(this.m).mul(this.r2)).forceRed(this)}};var Cr={};Md(Cr,{Reader:()=>qs,ReaderUint8Array:()=>mt,Writer:()=>ae,WriterUint8Array:()=>ht,base64ToArray:()=>Ol,constantTimeEquals:()=>r1,encode:()=>ca,fromBase58:()=>zs,fromBase58Check:()=>Gs,hexToUint8Array:()=>Ks,minimallyEncode:()=>ua,toArray:()=>at,toBase58:()=>Xs,toBase58Check:()=>js,toBase64:()=>xe,toHex:()=>nt,toSafeString:()=>Zm,toUTF8:()=>Pl,toUTF8Strict:()=>Pt,toUint8Array:()=>et,verifyNotNull:()=>Xi,zero2:()=>Jm});var rm=new TextEncoder;function ye(i){return rm.encode(i)}function Fe(i){return ye(i).byteLength}function Fi(i){for(let t of i){let e=t.codePointAt(0);if(e<=31||e>=127&&e<=159)return!0}return!1}var sm=/^[0-9a-fA-F]*$/;function Ds(i){if(typeof i!="string")throw new TypeError("Invalid hex string");if(i.length!==0&&!sm.test(i))throw new Error("Invalid hex string")}function Qd(i){if(Ds(i),i.length===0)return"";let t=i.toLowerCase();return t.length%2!==0&&(t="0"+t),t}var su=(i,t="Hash assertion failed")=>{if(!i)throw new Error(t)},Zo=class{constructor(t,e,n,r){m(this,"pending",null);m(this,"pendingTotal",0);m(this,"blockSize");m(this,"outSize");m(this,"endian");m(this,"_delta8");m(this,"_delta32");m(this,"padLength");m(this,"hmacStrength");this.blockSize=t,this.outSize=e,this.hmacStrength=n,this.padLength=r/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}_update(t,e){throw new Error("Not implemented")}_digest(){throw new Error("Not implemented")}_digestHex(){throw new Error("Not implemented")}update(t,e){if(t=al(t,e),this.pending==null?this.pending=t:this.pending=this.pending.concat(t),this.pendingTotal+=t.length,this.pending.length>=this._delta8){t=this.pending;let n=t.length%this._delta8;this.pending=t.slice(t.length-n,t.length),this.pending.length===0&&(this.pending=null),t=gm(t,0,t.length-n,this.endian);for(let r=0;r<t.length;r+=this._delta32)this._update(t,r)}return this}digest(){return this.update(this._pad()),su(this.pending===null),this._digest()}digestHex(){return this.update(this._pad()),su(this.pending===null),this._digestHex()}_pad(){let t=this.pendingTotal;if(!Number.isSafeInteger(t)||t<0)throw new Error("Message too long for this hash function");let e=this._delta8,n=e-(t+this.padLength)%e,r=Array.from({length:n+this.padLength});r[0]=128;let s;for(s=1;s<n;s++)r[s]=0;let o=this.padLength,c=1n<<BigInt(o*8),u=BigInt(t)*8n;if(u>=c)throw new Error("Message too long for this hash function");if(this.endian==="big"){let f=Array.from({length:o});for(let d=o-1;d>=0;d--)f[d]=Number(u&0xffn),u>>=8n;for(let d=0;d<o;d++)r[s++]=f[d]}else for(let f=0;f<o;f++)r[s++]=Number(u&0xffn),u>>=8n;return r}};function om(i,t,e){let n=i.codePointAt(t);return n<128?(e.push(n),t):n<2048?(e.push(n>>6|192,n&63|128),t):n>65535?(e.push(n>>18|240,n>>12&63|128,n>>6&63|128,n&63|128),t+1):(e.push(n>>12|224,n>>6&63|128,n&63|128),t)}function am(i){let t=[],e=0;for(;e<i.length;)e=om(i,e,t)+1;return t}function cm(i){Ds(i);let t=Qd(i),e=[];for(let n=0;n<t.length;n+=2)e.push(Number.parseInt(t[n]+t[n+1],16));return e}function um(i){let t=[];for(let e=0;e<i.length;e++)t[e]=Math.trunc(i[e]);return t}function al(i,t){return Array.isArray(i)?i.slice():i?typeof i=="string"?t==="hex"?cm(i):am(i):um(i):[]}function fm(i){return Xm(i)}function cl(i,t){let e="";for(let n of i)t==="little"&&(n=fm(n)),e+=dm(n.toString(16));return e}function dm(i){return i.length===7?"0"+i:i.length===6?"00"+i:i.length===5?"000"+i:i.length===4?"0000"+i:i.length===3?"00000"+i:i.length===2?"000000"+i:i.length===1?"0000000"+i:i}var ou=typeof globalThis>"u"?void 0:globalThis.Buffer,lm=ou!=null&&typeof ou.from=="function",tl="0123456789abcdef",au=Array.from({length:256});for(let i=0;i<au.length;i++)au[i]=tl[i>>4&15]+tl[i&15];function hm(i){if(lm)return ou.from(i).toString("hex");let t=Array.from({length:i.length});for(let e=0;e<i.length;e++)t[e]=au[i[e]];return t.join("")}var ul=(()=>{let i=typeof globalThis>"u"?void 0:globalThis.process,t=i?.getBuiltinModule;if(typeof t=="function")try{let e=t.call(i,"node:crypto");if(e!=null)return e}catch{}})();function Ki(i,t){return i instanceof Uint8Array?i:Array.isArray(i)?new Uint8Array(i):Uint8Array.from(al(i,t))}function du(i){return typeof i=="string"?Ki(i,"hex"):Ki(i)}function fl(i,t,e){i!=null?i.update(e):t?.update(e)}function dl(i,t){return i!=null?Array.from(i.digest()):t!=null?Array.from(t.digest()):[]}function ll(i,t){return i!=null?i.digest("hex"):t!=null?hm(t.digest()):""}function pm(i){let t=ul?.createHash;if(typeof t=="function")try{return t(i)}catch{return}}function lu(i,t){let e=ul?.createHmac;if(typeof e=="function")try{return e(i,t)}catch{return}}function hl(i,t,e){let n=pm(i);if(n!=null)return n.update(Ki(t,e)),n.digest()}function pl(i,t,e,n){let r=lu(i,du(t));if(r!=null)return r.update(Ki(e,n)),r.digest()}function gm(i,t,e,n){let r=e-t;su(r%4===0);let s=Array.from({length:r/4});for(let o=0,c=t;o<s.length;o++,c+=4){let u;n==="big"?u=i[c]<<24|i[c+1]<<16|i[c+2]<<8|i[c+3]:u=i[c+3]<<24|i[c+2]<<16|i[c+1]<<8|i[c],s[o]=u>>>0}return s}function gl(i,t){let e=Array.from({length:i.length*4});for(let n=0,r=0;n<i.length;n++,r+=4){let s=i[n];t==="big"?(e[r]=s>>>24,e[r+1]=s>>>16&255,e[r+2]=s>>>8&255,e[r+3]=s&255):(e[r+3]=s>>>24,e[r+2]=s>>>16&255,e[r+1]=s>>>8&255,e[r]=s&255)}return e}function vn(i,t){return i>>>t|i<<32-t}function qi(i,t){return i<<t|i>>>32-t}function jt(i,t){return i+t>>>0}function Hs(i,t,e){return i+t+e>>>0}function el(i,t,e,n){return i+t+e+n>>>0}function bl(i,t,e,n,r){return i+t+e+n+r>>>0}function bm(i,t,e,n){return i===0?ml(t,e,n):i===1||i===3?mm(t,e,n):i===2?yl(t,e,n):0}function ml(i,t,e){return i&t^~i&e}function yl(i,t,e){return i&t^i&e^t&e}function mm(i,t,e){return i^t^e}function ym(i){return vn(i,2)^vn(i,13)^vn(i,22)}function wm(i){return vn(i,6)^vn(i,11)^vn(i,25)}function xm(i){return vn(i,7)^vn(i,18)^i>>>3}function Im(i){return vn(i,17)^vn(i,19)^i>>>10}var Sm=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],vm=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],Am=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],Em=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11];function nl(i,t,e,n){return i<=15?t^e^n:i<=31?t&e|~t&n:i<=47?(t|~e)^n:i<=63?t&n|e&~n:t^(e|~n)}function Tm(i){return i<=15?0:i<=31?1518500249:i<=47?1859775393:i<=63?2400959708:2840853838}function km(i){return i<=15?1352829926:i<=31?1548603684:i<=47?1836072691:i<=63?2053994217:0}var Jo=class extends Zo{constructor(){super(512,160,192,64);m(this,"h");this.endian="little",this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}_update(e,n){let r=this.h[0],s=this.h[1],o=this.h[2],c=this.h[3],u=this.h[4],f=r,d=s,l=o,p=c,b=u,g;for(let y=0;y<80;y++)g=jt(qi(el(r,nl(y,s,o,c),e[Sm[y]+n],Tm(y)),Am[y]),u),r=u,u=c,c=qi(o,10),o=s,s=g,g=jt(qi(el(f,nl(79-y,d,l,p),e[vm[y]+n],km(y)),Em[y]),b),f=b,b=p,p=qi(l,10),l=d,d=g;g=Hs(this.h[1],o,p),this.h[1]=Hs(this.h[2],c,b),this.h[2]=Hs(this.h[3],u,f),this.h[3]=Hs(this.h[4],r,d),this.h[4]=Hs(this.h[0],s,l),this.h[0]=g}_digest(){return gl(this.h,"little")}_digestHex(){return cl(this.h,"little")}};var cu=class extends Zo{constructor(){super(512,160,80,64);m(this,"h");m(this,"W");m(this,"k");this.k=[1518500249,1859775393,2400959708,3395469782],this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=Array.from({length:80})}_update(e,n){let r=this.W;n??(n=0);let s;for(s=0;s<16;s++)r[s]=e[n+s];for(;s<r.length;s++)r[s]=qi(r[s-3]^r[s-8]^r[s-14]^r[s-16],1);let o=this.h[0],c=this.h[1],u=this.h[2],f=this.h[3],d=this.h[4];for(s=0;s<r.length;s++){let l=Math.trunc(s/20),p=bl(qi(o,5),bm(l,c,u,f),d,r[s],this.k[l]);d=f,f=u,u=qi(c,30),c=o,o=p}this.h[0]=jt(this.h[0],o),this.h[1]=jt(this.h[1],c),this.h[2]=jt(this.h[2],u),this.h[3]=jt(this.h[3],f),this.h[4]=jt(this.h[4],d)}_digest(){return gl(this.h,"big")}_digestHex(){return cl(this.h,"big")}};var Wi,li,$s=class{constructor(t){G(this,Wi);G(this,li);m(this,"blockSize",64);m(this,"outSize",32);let e=du(t);N(this,li,lu("sha256",e)),w(this,li)==null&&N(this,Wi,new _r(qm,e))}update(t,e){return fl(w(this,li),w(this,Wi),Ki(t,e)),this}digest(){return dl(w(this,li),w(this,Wi))}digestHex(){return ll(w(this,li),w(this,Wi))}};Wi=new WeakMap,li=new WeakMap;var Vi,hi,uu=class{constructor(t){G(this,Vi);G(this,hi);m(this,"blockSize",128);m(this,"outSize",32);let e=du(t);N(this,hi,lu("sha512",e)),w(this,hi)==null&&N(this,Vi,new _r(Km,e))}update(t,e){return fl(w(this,hi),w(this,Vi),Ki(t,e)),this}digest(){return dl(w(this,hi),w(this,Vi))}digestHex(){return ll(w(this,hi),w(this,Vi))}};Vi=new WeakMap,hi=new WeakMap;function Qo(i,t){let e=hl("sha256",i,t);return e??new ia().update(Ki(i,t)).digest()}function wl(i,t){return hl("ripemd160",i,t)}var xl=(i,t)=>{let e=wl(i,t);return e!=null?Array.from(e):new Jo().update(i,t).digest()},Il=(i,t)=>new cu().update(i,t).digest(),Be=(i,t)=>Array.from(Qo(i,t));var Gt=(i,t)=>Array.from(Qo(Qo(i,t))),ra=(i,t)=>{let e=Qo(i,t),n=wl(e);return n!=null?Array.from(n):new Jo().update(e).digest()},sa=(i,t,e)=>{let n=pl("sha256",i,t,e);return n!=null?Array.from(n):new $s(i).update(t,e).digest()},Sl=(i,t,e)=>{let n=pl("sha512",i,t,e);return n!=null?Array.from(n):new uu(i).update(t,e).digest()};function Om(i){return i instanceof Uint8Array||ArrayBuffer.isView(i)&&i.constructor.name==="Uint8Array"}function il(i){if(!Number.isSafeInteger(i)||i<0)throw new Error(`positive integer expected, got ${i}`)}function oa(i,...t){if(!Om(i))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(i.length)){let e=t.join(",");throw new Error(`Uint8Array expected of length ${e}, got length=${i.length}`)}}function Pm(i){if(typeof i!="function"||typeof i.create!="function")throw new TypeError("Hash should be wrapped by utils.createHasher");il(i.outputLen),il(i.blockLen)}function ta(i,t=!0){if(i.destroyed===!0)throw new Error("Hash instance has been destroyed");if(t&&i.finished===!0)throw new Error("Hash#digest() has already been called")}function Rm(i,t){oa(i);let e=t.outputLen;if(i.length<e)throw new Error(`digestInto() expects output buffer of length at least ${e}`)}function Br(...i){for(let t of i)t.fill(0)}function ru(i){return new DataView(i.buffer,i.byteOffset,i.byteLength)}function hu(i){return typeof i=="string"&&(i=Nm(i)),oa(i),i}function Nm(i){if(typeof i!="string")throw new Error("string expected");return ye(i)}var ea=class{};function vl(i){let t=n=>i().update(hu(n)).digest(),e=i();return t.outputLen=e.outputLen,t.blockLen=e.blockLen,t.create=()=>i(),t}var jo=BigInt(2**32-1),rl=BigInt(32);function Bm(i,t=!1){return t?{h:Number(i&jo),l:Number(i>>rl&jo)}:{h:Number(i>>rl&jo)|0,l:Number(i&jo)|0}}function _m(i,t=!1){let e=i.length,n=new Uint32Array(e),r=new Uint32Array(e);for(let s=0;s<e;s++){let{h:o,l:c}=Bm(i[s],t);n[s]=o,r[s]=c}return[n,r]}var sl=(i,t,e)=>i>>>e,ol=(i,t,e)=>i<<32-e|t>>>e,Rr=(i,t,e)=>i>>>e|t<<32-e,Nr=(i,t,e)=>i<<32-e|t>>>e,Go=(i,t,e)=>i<<64-e|t>>>e-32,Yo=(i,t,e)=>i>>>e-32|t<<64-e;function $n(i,t,e,n){let r=(t>>>0)+(n>>>0);return{h:i+e+(r/2**32|0)|0,l:r|0}}var Cm=(i,t,e)=>(i>>>0)+(t>>>0)+(e>>>0),Lm=(i,t,e,n)=>Math.trunc(t+e+n+Math.trunc(i/2**32)),Um=(i,t,e,n)=>(i>>>0)+(t>>>0)+(e>>>0)+(n>>>0),Mm=(i,t,e,n,r)=>Math.trunc(t+e+n+r+Math.trunc(i/2**32)),Dm=(i,t,e,n,r)=>(i>>>0)+(t>>>0)+(e>>>0)+(n>>>0)+(r>>>0),Hm=(i,t,e,n,r,s)=>t+e+n+r+s+(i/2**32|0)|0,na=class extends ea{constructor(e,n,r,s){super();m(this,"blockLen");m(this,"outputLen");m(this,"padOffset");m(this,"isLE");m(this,"buffer");m(this,"view");m(this,"finished",!1);m(this,"length",0);m(this,"pos",0);m(this,"destroyed",!1);this.blockLen=e,this.outputLen=n,this.padOffset=r,this.isLE=s,this.buffer=new Uint8Array(e),this.view=ru(this.buffer)}update(e){ta(this),e=hu(e),oa(e);let{view:n,buffer:r,blockLen:s}=this,o=e.length;for(let c=0;c<o;){let u=Math.min(s-this.pos,o-c);if(u===s){let f=ru(e);for(;s<=o-c;c+=s)this.process(f,c);continue}r.set(e.subarray(c,c+u),this.pos),this.pos+=u,c+=u,this.pos===s&&(this.process(n,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){ta(this),Rm(e,this),this.finished=!0;let{buffer:n,view:r,blockLen:s,isLE:o}=this,{pos:c}=this;n[c++]=128,Br(this.buffer.subarray(c)),this.padOffset>s-c&&(this.process(r,0),c=0);for(let p=c;p<s;p++)n[p]=0;$m(r,s-8,BigInt(this.length*8),o),this.process(r,0);let u=ru(e),f=this.outputLen;if(f%4!==0)throw new Error("_sha2: outputLen should be aligned to 32bit");let d=f/4,l=this.get();if(d>l.length)throw new Error("_sha2: outputLen bigger than state");for(let p=0;p<d;p++)u.setUint32(4*p,l[p],o)}digest(){let{buffer:e,outputLen:n}=this;this.digestInto(e);let r=e.slice(0,n);return this.destroy(),r}_cloneInto(e){e??(e=new this.constructor),e.set(...this.get());let{blockLen:n,buffer:r,length:s,finished:o,destroyed:c,pos:u}=this;return e.destroyed=c,e.finished=o,e.length=s,e.pos=u,s%n!==0&&e.buffer.set(r),e}clone(){return this._cloneInto()}};function $m(i,t,e,n){if(typeof i.setBigUint64=="function")return i.setBigUint64(t,e,n);let r=BigInt(32),s=BigInt(4294967295),o=Number(e>>r&s),c=Number(e&s),u=n?4:0,f=n?0:4;i.setUint32(t+u,o,n),i.setUint32(t+f,c,n)}var ci=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Fm=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),ui=new Uint32Array(64),ia=class extends na{constructor(e=32){super(64,e,8,!1);m(this,"A",ci[0]|0);m(this,"B",ci[1]|0);m(this,"C",ci[2]|0);m(this,"D",ci[3]|0);m(this,"E",ci[4]|0);m(this,"F",ci[5]|0);m(this,"G",ci[6]|0);m(this,"H",ci[7]|0)}get(){let{A:e,B:n,C:r,D:s,E:o,F:c,G:u,H:f}=this;return[e,n,r,s,o,c,u,f]}set(...[e,n,r,s,o,c,u,f]){this.A=e|0,this.B=n|0,this.C=r|0,this.D=s|0,this.E=o|0,this.F=c|0,this.G=u|0,this.H=f|0}process(e,n){for(let p=0;p<16;p++,n+=4)ui[p]=e.getUint32(n);for(let p=16;p<64;p++){let b=ui[p-15],g=ui[p-2],y=xm(b),v=Im(g);ui[p]=jt(jt(y,ui[p-7]),jt(v,ui[p-16]))}let{A:r,B:s,C:o,D:c,E:u,F:f,G:d,H:l}=this;for(let p=0;p<64;p++){let b=bl(l,wm(u),ml(u,f,d),Fm[p],ui[p]),g=jt(ym(r),yl(r,s,o));l=d,d=f,f=u,u=jt(c,b),c=o,o=s,s=r,r=jt(b,g)}this.A=jt(this.A,r),this.B=jt(this.B,s),this.C=jt(this.C,o),this.D=jt(this.D,c),this.E=jt(this.E,u),this.F=jt(this.F,f),this.G=jt(this.G,d),this.H=jt(this.H,l)}roundClean(){Br(ui)}destroy(){Br(this.buffer),this.set(0,0,0,0,0,0,0,0)}},qm=vl(()=>new ia),we=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),Al=_m(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(BigInt)),Wm=Al[0],Vm=Al[1],fi=new Uint32Array(80),di=new Uint32Array(80),fu=class extends na{constructor(e=64){super(128,e,16,!1);m(this,"Ah",we[0]|0);m(this,"Al",we[1]|0);m(this,"Bh",we[2]|0);m(this,"Bl",we[3]|0);m(this,"Ch",we[4]|0);m(this,"Cl",we[5]|0);m(this,"Dh",we[6]|0);m(this,"Dl",we[7]|0);m(this,"Eh",we[8]|0);m(this,"El",we[9]|0);m(this,"Fh",we[10]|0);m(this,"Fl",we[11]|0);m(this,"Gh",we[12]|0);m(this,"Gl",we[13]|0);m(this,"Hh",we[14]|0);m(this,"Hl",we[15]|0)}get(){let{Ah:e,Al:n,Bh:r,Bl:s,Ch:o,Cl:c,Dh:u,Dl:f,Eh:d,El:l,Fh:p,Fl:b,Gh:g,Gl:y,Hh:v,Hl:C}=this;return[e,n,r,s,o,c,u,f,d,l,p,b,g,y,v,C]}set(...[e,n,r,s,o,c,u,f,d,l,p,b,g,y,v,C]){this.Ah=e|0,this.Al=n|0,this.Bh=r|0,this.Bl=s|0,this.Ch=o|0,this.Cl=c|0,this.Dh=u|0,this.Dl=f|0,this.Eh=d|0,this.El=l|0,this.Fh=p|0,this.Fl=b|0,this.Gh=g|0,this.Gl=y|0,this.Hh=v|0,this.Hl=C|0}process(e,n){for(let T=0;T<16;T++,n+=8)fi[T]=e.getUint32(n),di[T]=e.getUint32(n+4);for(let T=16;T<80;T++){let B=fi[T-15]|0,_=di[T-15]|0,$=Rr(B,_,1)^Rr(B,_,8)^sl(B,_,7),R=Nr(B,_,1)^Nr(B,_,8)^ol(B,_,7),I=fi[T-2]|0,D=di[T-2]|0,U=Rr(I,D,19)^Go(I,D,61)^sl(I,D,6),q=Nr(I,D,19)^Yo(I,D,61)^ol(I,D,6),it=Um(R,q,di[T-7],di[T-16]),ot=Mm(it,$,U,fi[T-7],fi[T-16]);fi[T]=ot|0,di[T]=it|0}let{Ah:r,Al:s,Bh:o,Bl:c,Ch:u,Cl:f,Dh:d,Dl:l,Eh:p,El:b,Fh:g,Fl:y,Gh:v,Gl:C,Hh:E,Hl:A}=this;for(let T=0;T<80;T++){let B=Rr(p,b,14)^Rr(p,b,18)^Go(p,b,41),_=Nr(p,b,14)^Nr(p,b,18)^Yo(p,b,41),$=p&g^~p&v,R=b&y^~b&C,I=Dm(A,_,R,Vm[T],di[T]),D=Hm(I,E,B,$,Wm[T],fi[T]),U=I|0,q=Rr(r,s,28)^Go(r,s,34)^Go(r,s,39),it=Nr(r,s,28)^Yo(r,s,34)^Yo(r,s,39),ot=r&o^r&u^o&u,F=s&c^s&f^c&f;E=v|0,A=C|0,v=g|0,C=y|0,g=p|0,y=b|0,{h:p,l:b}=$n(d|0,l|0,D|0,U|0),d=u|0,l=f|0,u=o|0,f=c|0,o=r|0,c=s|0;let z=Cm(it,F,U);r=Lm(z,q,ot,D),s=z|0}({h:r,l:s}=$n(r,s,this.Ah,this.Al)),{h:o,l:c}=$n(o,c,this.Bh,this.Bl),{h:u,l:f}=$n(u,f,this.Ch,this.Cl),{h:d,l}=$n(d,l,this.Dh,this.Dl),{h:p,l:b}=$n(p,b,this.Eh,this.El),{h:g,l:y}=$n(g,y,this.Fh,this.Fl),{h:v,l:C}=$n(v,C,this.Gh,this.Gl),{h:E,l:A}=$n(E,A,this.Hh,this.Hl),this.set(r,s,o,c,u,f,d,l,p,b,g,y,v,C,E,A)}roundClean(){Br(fi,di)}destroy(){Br(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},Km=vl(()=>new fu),_r=class extends ea{constructor(e,n){super();m(this,"oHash");m(this,"iHash");m(this,"blockLen");m(this,"outputLen");m(this,"finished",!1);m(this,"destroyed",!1);Pm(e);let r=hu(n);if(this.iHash=e.create(),typeof this.iHash.update!="function")throw new TypeError("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let s=this.blockLen,o=new Uint8Array(s);o.set(r.length>s?e.create().update(r).digest():r);for(let c=0;c<o.length;c++)o[c]^=54;this.iHash.update(o),this.oHash=e.create();for(let c=0;c<o.length;c++)o[c]^=106;this.oHash.update(o),Br(o)}update(e){return ta(this),this.iHash.update(e),this}digestInto(e){ta(this),oa(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e??(e=Object.create(Object.getPrototypeOf(this),{}));let{oHash:n,iHash:r,finished:s,destroyed:o,blockLen:c,outputLen:u}=this;return e=e,e.finished=s,e.destroyed=o,e.blockLen=c,e.outputLen=u,e.oHash=n._cloneInto(e.oHash??void 0),e.iHash=r._cloneInto(e.iHash??void 0),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}};var zm=(i,t,e)=>new _r(i,t).update(e).digest();zm.create=(i,t)=>new _r(i,t);function Xm(i){return(i>>>24|i>>>8&65280|i<<8&16711680|(i&255)<<24)>>>0}var $2=(()=>{let i=new ArrayBuffer(4),t=new Uint32Array(i),e=new Uint8Array(i);return t[0]=16909060,e[0]===4})();var jm=new k(4294967295),Gm=new k(2).pow(new k(64)).sub(new k(1)),Ym=new k(Number.MAX_SAFE_INTEGER);function Fs(i,t=!0){let e=i.readUInt8();if(e<253)return e;if(e===253){let r=i.readUInt16LE();if(r<253)throw new Error("non-canonical varInt");return r}if(e===254){let r=i.readUInt32LE();if(r<=65535)throw new Error("non-canonical varInt");return r}let n=i.readUInt64LEBn();if(n.lte(jm))throw new Error("non-canonical varInt");if(t&&n.eq(Gm))return-1;if(n.gt(Ym))throw new Error("number too large to retain precision - use readVarIntBn");return n.toNumber()}var Ft,Tt,zi,fn,Fn,ht=class{constructor(t,e=256){G(this,fn);G(this,Ft);G(this,Tt);G(this,zi);if(!Number.isSafeInteger(e)||e<0)throw new RangeError("WriterUint8Array initial capacity must be a non-negative safe integer");if(t!=null&&t.length>0){let n=t.reduce((r,s)=>r+s.length,0);e=Math.max(e,n)}if(e=Math.max(1,e),N(this,Ft,new Uint8Array(e)),N(this,Tt,0),N(this,zi,e),t!=null)for(let n of t)this.write(n)}getLength(){return w(this,Tt)}toUint8Array(){return w(this,Ft).slice(0,w(this,Tt))}toArray(){return Array.from(this.toUint8Array())}toUint8ArrayZeroCopy(){return w(this,Ft).subarray(0,w(this,Tt))}reserve(t){if(!Number.isSafeInteger(t)||t<0)throw new RangeError("WriterUint8Array reserve requires a non-negative safe integer");a(this,fn,Fn).call(this,t)}write(t){let e=t instanceof Uint8Array?t:new Uint8Array(t);return a(this,fn,Fn).call(this,e.length),w(this,Ft).set(e,w(this,Tt)),N(this,Tt,w(this,Tt)+e.length),this}writeReverse(t){let e=t instanceof Uint8Array?t:new Uint8Array(t);a(this,fn,Fn).call(this,e.length);for(let n=e.length-1;n>=0;n--)w(this,Ft)[w(this,Tt)]=e[n],N(this,Tt,w(this,Tt)+1);return this}writeUInt8(t){return a(this,fn,Fn).call(this,1),w(this,Ft)[w(this,Tt)]=t&255,N(this,Tt,w(this,Tt)+1),this}writeInt8(t){return this.writeUInt8(t),this}writeUInt16LE(t){return a(this,fn,Fn).call(this,2),w(this,Ft)[w(this,Tt)]=t&255,w(this,Ft)[w(this,Tt)+1]=t>>8&255,N(this,Tt,w(this,Tt)+2),this}writeUInt16BE(t){return a(this,fn,Fn).call(this,2),w(this,Ft)[w(this,Tt)]=t>>8&255,w(this,Ft)[w(this,Tt)+1]=t&255,N(this,Tt,w(this,Tt)+2),this}writeInt16LE(t){return this.writeUInt16LE(t&65535),this}writeInt16BE(t){return this.writeUInt16BE(t&65535),this}writeUInt32LE(t){return a(this,fn,Fn).call(this,4),w(this,Ft)[w(this,Tt)]=t&255,w(this,Ft)[w(this,Tt)+1]=t>>8&255,w(this,Ft)[w(this,Tt)+2]=t>>16&255,w(this,Ft)[w(this,Tt)+3]=t>>24&255,N(this,Tt,w(this,Tt)+4),this}writeUInt32BE(t){return a(this,fn,Fn).call(this,4),w(this,Ft)[w(this,Tt)]=t>>24&255,w(this,Ft)[w(this,Tt)+1]=t>>16&255,w(this,Ft)[w(this,Tt)+2]=t>>8&255,w(this,Ft)[w(this,Tt)+3]=t&255,N(this,Tt,w(this,Tt)+4),this}writeInt32LE(t){return this.writeUInt32LE(t>>>0),this}writeInt32BE(t){return this.writeUInt32BE(t>>>0),this}writeUInt64BEBn(t){let e=t.toArray("be",8);return this.write(e),this}writeUInt64LEBn(t){let e=t.toArray("be",8);return this.writeReverse(e),this}writeUInt64LE(t){let e=new k(t).toArray("be",8);return this.writeReverse(e),this}writeVarIntNum(t){let e=ae.varIntNum(t);return this.write(e),this}writeVarIntBn(t){let e=ae.varIntBn(t);return this.write(e),this}reset(){N(this,Tt,0)}};Ft=new WeakMap,Tt=new WeakMap,zi=new WeakMap,fn=new WeakSet,Fn=function(t){if(w(this,Tt)+t>w(this,zi)){let e=w(this,zi)*2;for(;w(this,Tt)+t>e;)e*=2;let n=new Uint8Array(e);n.set(w(this,Ft)),N(this,Ft,n),N(this,zi,e)}};var ln,qe,dn,pu=class pu{constructor(t=new Uint8Array(0),e=0){G(this,qe);m(this,"bin");m(this,"pos");G(this,ln);if(t instanceof Uint8Array)this.bin=t;else if(Array.isArray(t))this.bin=new Uint8Array(t);else throw new TypeError("ReaderUint8Array constructor: bin must be Uint8Array or number[]");if(N(this,ln,this.bin.length),!Number.isSafeInteger(e)||e<0||e>w(this,ln))throw new RangeError("ReaderUint8Array position exceeds available data");this.pos=e}static makeReader(t,e=0){if(t instanceof Uint8Array)return new pu(t,e);if(Array.isArray(t))return new qs(t,e);throw new Error("ReaderUint8Array.makeReader: bin must be Uint8Array or number[]")}eof(){return this.pos>=w(this,ln)}read(t=w(this,ln)-this.pos){a(this,qe,dn).call(this,t);let e=this.pos,n=this.pos+t;return this.pos=n,this.bin.slice(e,n)}readView(t=w(this,ln)-this.pos){a(this,qe,dn).call(this,t);let e=this.pos;return this.pos+=t,this.bin.subarray(e,this.pos)}skip(t){a(this,qe,dn).call(this,t),this.pos+=t}remaining(){return w(this,ln)-this.pos}readReverse(t=w(this,ln)-this.pos){a(this,qe,dn).call(this,t);let e=new Uint8Array(t);for(let n=0;n<t;n++)e[n]=this.bin[this.pos+t-1-n];return this.pos+=t,e}readUInt8(){a(this,qe,dn).call(this,1);let t=this.bin[this.pos];return this.pos+=1,t}readInt8(){let t=this.readUInt8();return(t&128)===0?t:t-256}readUInt16BE(){a(this,qe,dn).call(this,2);let t=this.bin[this.pos]<<8|this.bin[this.pos+1];return this.pos+=2,t}readInt16BE(){let t=this.readUInt16BE();return(t&32768)===0?t:t-65536}readUInt16LE(){a(this,qe,dn).call(this,2);let t=this.bin[this.pos]|this.bin[this.pos+1]<<8;return this.pos+=2,t}readInt16LE(){let t=this.readUInt16LE();return(t&32768)===0?t:t-65536}readUInt32BE(){a(this,qe,dn).call(this,4);let t=this.bin[this.pos]*16777216+(this.bin[this.pos+1]<<16|this.bin[this.pos+2]<<8|this.bin[this.pos+3]);return this.pos+=4,t}readInt32BE(){let t=this.readUInt32BE();return(t&2147483648)===0?t:t-4294967296}readUInt32LE(){a(this,qe,dn).call(this,4);let t=(this.bin[this.pos]|this.bin[this.pos+1]<<8|this.bin[this.pos+2]<<16|this.bin[this.pos+3]<<24)>>>0;return this.pos+=4,t}readInt32LE(){let t=this.readUInt32LE();return(t&2147483648)===0?t:t-4294967296}readUInt64BEBn(){a(this,qe,dn).call(this,8);let t=Array.from(this.bin.slice(this.pos,this.pos+8)),e=new k(t);return this.pos=this.pos+8,e}readUInt64LEBn(){let t=Array.from(this.readReverse(8));return new k(t)}readInt64LEBn(){let t=new k(2).pow(new k(63)),e=new k(2).pow(new k(64)),n=Array.from(this.readReverse(8)),r=new k(n);return r.gte(t)&&(r=r.sub(e)),r}readVarIntNum(t=!0){let e=this.readUInt8(),n;switch(e){case 253:return this.readUInt16LE();case 254:return this.readUInt32LE();case 255:if(n=t?this.readInt64LEBn():this.readUInt64LEBn(),n.lte(new k(2).pow(new k(53))))return n.toNumber();throw new Error("number too large to retain precision - use readVarIntBn");default:return e}}readVarIntNumStrict(t=!0){return Fs(this,t)}readVarInt(){switch(this.bin[this.pos]){case 253:return this.read(3);case 254:return this.read(5);case 255:return this.read(9);default:return this.read(1)}}readVarIntBn(){let t=this.readUInt8();switch(t){case 253:return new k(this.readUInt16LE());case 254:return new k(this.readUInt32LE());case 255:return this.readUInt64LEBn();default:return new k(t)}}};ln=new WeakMap,qe=new WeakSet,dn=function(t){if(!Number.isSafeInteger(t)||t<0||!Number.isSafeInteger(this.pos)||this.pos<0||this.pos+t>w(this,ln))throw new RangeError("ReaderUint8Array read exceeds available data")};var mt=pu;var aa=globalThis.Buffer,Tl=aa!=null&&typeof aa.from=="function",Zm=(i,t="Unknown value")=>{if(i===null)return"null";if(i===void 0)return"undefined";if(typeof i=="string")return i;if(typeof i=="number"||typeof i=="bigint")return i.toString();if(typeof i=="boolean")return i?"true":"false";if(typeof i=="symbol")return i.description??i.toString();if(i instanceof Error&&i.message.length>0)return i.message;let e=i.message;if(typeof e=="string"&&e.length>0)return e;try{return JSON.stringify(i)??t}catch{return t}},Jm=i=>i.length%2===1?"0"+i:i,El="0123456789abcdef",kl=Array.from({length:256},()=>"");for(let i=0;i<256;i++)kl[i]=El[i>>4&15]+El[i&15];var nt=i=>Tl?aa.from(i).toString("hex"):i.length===0?"":Array.from(i,t=>kl[t&255]).join(""),et=(i,t)=>i instanceof Uint8Array?i:typeof i=="string"&&t==="hex"?Ks(i):new Uint8Array(at(i,t)),at=(i,t)=>{if(Array.isArray(i))return i.slice();if(i===void 0)return[];if(typeof i!="string")return Array.from(i,e=>Math.trunc(e));switch(t){case"hex":return Qm(i);case"base64":return Ol(i);default:return n1(i)}},Vs=new Int8Array(256).fill(-1);for(let i=0;i<10;i++)Vs[48+i]=i;for(let i=0;i<6;i++)Vs[65+i]=10+i,Vs[97+i]=10+i;var Qm=i=>Array.from(Ks(i)),Ks=i=>{Ds(i);let t=i.length%2===0?i:"0"+i;if(Tl){let r=aa.from(t,"hex");return new Uint8Array(r.buffer,r.byteOffset,r.byteLength)}let e=new Uint8Array(t.length/2),n=0;for(let r=0;r<t.length;r+=2){let s=Vs[t.codePointAt(r)],o=Vs[t.codePointAt(r+1)];e[n++]=s<<4|o}return e},t1=i=>{if(typeof i!="string")throw new TypeError("msg must be a string");let t=i.trim().replaceAll(/[\r\n\t\f\v ]+/g,"").replaceAll("-","+").replaceAll("_","/"),e=t.indexOf("=");if(e===-1)return t;let n=t.slice(e);if(!/^={1,2}$/.test(n)||t.slice(0,e).includes("="))throw new Error("Invalid base64 padding");return t.slice(0,e)},e1=(i,t)=>{if(i>=65&&i<=90)return i-65;if(i>=97&&i<=122)return i-97+26;if(i>=48&&i<=57)return i-48+52;if(i===43)return 62;if(i===47)return 63;throw new Error(`Invalid base64 character at index ${t}`)};function Ol(i){let t=t1(i),e=[],n=0,r=0;for(let s=0;s<t.length;s++){let o=t.codePointAt(s),c=e1(o,s);for(n=n<<6|c,r+=6;r>=8;)r-=8,e.push(n>>r&255),n&=(1<<r)-1}return e}function n1(i){return Array.from(ye(i))}var Pl=i=>new TextDecoder().decode(i instanceof Uint8Array?i:new Uint8Array(i)),Pt=i=>new TextDecoder("utf-8",{fatal:!0}).decode(i instanceof Uint8Array?i:new Uint8Array(i)),ca=(i,t)=>{switch(t){case"hex":return nt(i);case"utf8":return Pl(i);default:return i}};function xe(i){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",e="",n;for(n=0;n<i.length;n+=3){let r=i[n],s=n+1<i.length?i[n+1]:0,o=n+2<i.length?i[n+2]:0,c=r>>2,u=(r&3)<<4|s>>4,f=(s&15)<<2|o>>6,d=o&63;e+=t.charAt(c)+t.charAt(u),e+=n+1<i.length?t.charAt(f):"=",e+=n+2<i.length?t.charAt(d):"="}return e}var Ws="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",zs=i=>{if(i===""||typeof i!="string")throw new Error(`Expected base58 string but got \u201C${i}\u201D`);let t=i.match(/[^1-9A-HJ-NP-Za-km-z]/gmu);if(t!==null)throw new Error(`Invalid base58 character \u201C${t.join("")}\u201D`);let e=i.match(/^1+/gmu),n=e===null?0:e[0].length,r=(i.length-n)*(Math.log(58)/Math.log(256))+1>>>0;return[...new Uint8Array([...new Uint8Array(n),...Array.from(i).map(o=>Ws.indexOf(o)).reduce((o,c)=>(o=o.map(u=>{let f=u*58+c;return c=f>>8,f}),o),new Uint8Array(r)).reverse().filter((o=>c=>o=o||c)(!1))])]},Xs=i=>{let t=Array.from({length:256},()=>-1);for(let n=0;n<Ws.length;++n)t[Ws.codePointAt(n)]=n;let e=[];for(let n of i){let r=n;for(let s=0;s<e.length;++s){let o=(t[e[s]]<<8)+r,c=Math.trunc(o/58),u=o-c*58;e[s]=Ws.codePointAt(u),r=c}for(;r!==0;){let s=Math.trunc(r/58),o=r-s*58;e.push(Ws.codePointAt(o)),r=s}}for(let n of i)if(n===0)e.push("1".codePointAt(0));else break;return e.reverse(),String.fromCodePoint(...e)},js=(i,t=[0])=>{let e=Gt([...t,...i]);return e=[...t,...i,...e.slice(0,4)],Xs(e)},Gs=(i,t,e=1)=>{let n=zs(i),r=n.slice(0,e),s=n.slice(e,-4),o=[...r,...s];return o=Gt(o),n.slice(-4).forEach((c,u)=>{if(c!==o[u])throw new Error("Invalid checksum")}),t==="hex"&&(r=nt(r),s=nt(s)),{prefix:r,data:s}},ae=class i{constructor(t){m(this,"bufs");m(this,"length");this.bufs=t??[],this.length=0;for(let e of this.bufs)this.length+=e.length}getLength(){return this.length}toUint8Array(){let t=new Uint8Array(this.length),e=0;for(let n of this.bufs)t.set(n,e),e+=n.length;return t}toArray(){let t=this.length,e=Array.from({length:t},()=>0),n=0;for(let r of this.bufs)if(r instanceof Uint8Array)for(let s of r)e[n++]=s;else{let s=r;for(let o of s)e[n++]=o}return e}toHex(){return this.toArray().map(t=>t.toString(16).padStart(2,"0")).join("")}write(t){return this.bufs.push(t),this.length+=t.length,this}writeReverse(t){let e=Array.from({length:t.length},()=>0);for(let n=0;n<e.length;n++)e[n]=t[t.length-1-n];return this.write(e)}writeUInt8(t){let e=Array.from({length:1},()=>0);return e[0]=t&255,this.write(e),this}writeInt8(t){return this.writeUInt8(t)}writeUInt16BE(t){let e=[t>>8&255,t&255];return this.write(e)}writeInt16BE(t){return this.writeUInt16BE(t&65535)}writeUInt16LE(t){let e=[t&255,t>>8&255];return this.write(e)}writeInt16LE(t){return this.writeUInt16LE(t&65535)}writeUInt32BE(t){let e=[t>>24&255,t>>16&255,t>>8&255,t&255];return this.write(e)}writeInt32BE(t){return this.writeUInt32BE(t>>>0)}writeUInt32LE(t){let e=[t&255,t>>8&255,t>>16&255,t>>24&255];return this.write(e)}writeInt32LE(t){return this.writeUInt32LE(t>>>0)}writeUInt64BEBn(t){let e=t.toArray("be",8);return this.write(e),this}writeUInt64LEBn(t){let e=t.toArray("be",8);return this.writeReverse(e),this}writeUInt64LE(t){if(t===-1)this.write(Array.from({length:8},()=>255));else{let e=new k(t).toArray("be",8);this.writeReverse(e)}return this}writeVarIntNum(t){let e=i.varIntNum(t);return this.write(e),this}writeVarIntBn(t){let e=i.varIntBn(t);return this.write(e),this}static varIntNum(t){if(!Number.isFinite(t)||!Number.isInteger(t))throw new RangeError("CompactSize value must be a finite integer");let e;if(t<0)return this.varIntBn(new k(t));if(t<253)e=[t];else if(t<65536)e=[253,t&255,t>>8&255];else if(t<4294967296)e=[254,t&255,t>>8&255,t>>16&255,t>>24&255];else{let n=t&4294967295,r=Math.floor(t/4294967296)&4294967295;e=[255,n&255,n>>8&255,n>>16&255,n>>24&255,r&255,r>>8&255,r>>16&255,r>>24&255]}return e}static varIntBn(t){let e;if(t.isNeg()&&(t=t.add(Rl)),t.ltn(253))e=[t.toNumber()];else if(t.ltn(65536)){let n=t.toNumber();e=[253,n&255,n>>8&255]}else if(t.lt(new k(4294967296))){let n=t.toNumber();e=[254,n&255,n>>8&255,n>>16&255,n>>24&255]}else{let n=new i;n.writeUInt8(255),n.writeUInt64LEBn(t),e=n.toArray()}return e}},qs=class{constructor(t=[],e=0){m(this,"bin");m(this,"pos");m(this,"length");if(this.bin=t,this.length=t.length,!Number.isSafeInteger(e)||e<0||e>this.length)throw new RangeError("Reader position exceeds available data");this.pos=e}ensureAvailable(t){if(!Number.isSafeInteger(t)||t<0||!Number.isSafeInteger(this.pos)||this.pos<0||this.pos+t>this.length)throw new RangeError("Reader read exceeds available data")}eof(){return this.pos>=this.length}read(t=this.length-this.pos){this.ensureAvailable(t);let e=this.pos,n=this.pos+t;return this.pos=n,this.bin.slice(e,n)}readReverse(t=this.length-this.pos){this.ensureAvailable(t);let e=Array.from({length:t},()=>0);for(let n=0;n<t;n++)e[n]=this.bin[this.pos+t-1-n];return this.pos+=t,e}readUInt8(){this.ensureAvailable(1);let t=this.bin[this.pos];return this.pos+=1,t}readInt8(){let t=this.readUInt8();return(t&128)===0?t:t-256}readUInt16BE(){this.ensureAvailable(2);let t=this.bin[this.pos]<<8|this.bin[this.pos+1];return this.pos+=2,t}readInt16BE(){let t=this.readUInt16BE();return(t&32768)===0?t:t-65536}readUInt16LE(){this.ensureAvailable(2);let t=this.bin[this.pos]|this.bin[this.pos+1]<<8;return this.pos+=2,t}readInt16LE(){let t=this.readUInt16LE();return(t&32768)===0?t:t-65536}readUInt32BE(){this.ensureAvailable(4);let t=this.bin[this.pos]*16777216+(this.bin[this.pos+1]<<16|this.bin[this.pos+2]<<8|this.bin[this.pos+3]);return this.pos+=4,t}readInt32BE(){let t=this.readUInt32BE();return(t&2147483648)===0?t:t-4294967296}readUInt32LE(){this.ensureAvailable(4);let t=(this.bin[this.pos]|this.bin[this.pos+1]<<8|this.bin[this.pos+2]<<16|this.bin[this.pos+3]<<24)>>>0;return this.pos+=4,t}readInt32LE(){let t=this.readUInt32LE();return(t&2147483648)===0?t:t-4294967296}readUInt64BEBn(){let t=this.read(8);return new k(t)}readUInt64LEBn(){let t=this.readReverse(8);return new k(t)}readInt64LEBn(){let t=this.readReverse(8),e=new k(t);return e.gte(i1)&&(e=e.sub(Rl)),e}readVarIntNum(t=!0){let e=this.readUInt8(),n;switch(e){case 253:return this.readUInt16LE();case 254:return this.readUInt32LE();case 255:if(n=t?this.readInt64LEBn():this.readUInt64LEBn(),n.lte(new k(2).pow(new k(53))))return n.toNumber();throw new Error("number too large to retain precision - use readVarIntBn");default:return e}}readVarIntNumStrict(t=!0){return Fs(this,t)}readVarInt(){switch(this.bin[this.pos]){case 253:return this.read(3);case 254:return this.read(5);case 255:return this.read(9);default:return this.read(1)}}readVarIntBn(){let t=this.readUInt8();switch(t){case 253:return new k(this.readUInt16LE());case 254:return new k(this.readUInt32LE());case 255:return this.readUInt64LEBn();default:return new k(t)}}},ua=i=>{if(i.length===0)return i;let t=i.at(-1);if((t&127)!==0)return i;if(i.length===1)return[];if((i.at(-2)&128)!==0)return i;for(let e=i.length-1;e>0;e--)if(i[e-1]!==0)return(i[e-1]&128)===0?(i[e-1]|=t,i.slice(0,e)):(i[e]=t,i.slice(0,e+1));return[]},i1=new k(2).pow(new k(63)),Rl=new k(2).pow(new k(64));function Xi(i,t="Expected a valid value, but got undefined or null."){if(i==null)throw new Error(t);return i}function r1(i,t){if(i.length!==t.length)return!1;let e=0;for(let n=0;n<i.length;n++)e|=i[n]^t[n];return e===0}var gu;function Nl(i,t){let e=i.andln(3)+t&3;return e===3?-1:e}function Bl(i,t,e,n){if((e&1)===0)return 0;let r=i.andln(7)+t&7;return(r===3||r===5)&&n===2?-e:e}function _l(i,t){return 2*i===t+1?1-i:i}var fa,Cl,bu=class bu{constructor(){G(this,fa);m(this,"p");m(this,"red");m(this,"redN");m(this,"zero");m(this,"one");m(this,"two");m(this,"g");m(this,"n");m(this,"a");m(this,"b");m(this,"tinv");m(this,"zeroA");m(this,"threeA");m(this,"endo");m(this,"_endoWnafT1");m(this,"_endoWnafT2");m(this,"_wnafT1");m(this,"_wnafT2");m(this,"_wnafT3");m(this,"_wnafT4");m(this,"_bitLength");if(gu===void 0)gu=this;else return gu;let e={prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",{doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}]};this.p=new k(e.p,16),this.red=new $i(e.prime),this.zero=new k(0).toRed(this.red),this.one=new k(1).toRed(this.red),this.two=new k(2).toRed(this.red),this.n=new k(e.n,16),this.g=Te.fromJSON(e.g,e.gRed),this._wnafT1=Array.from({length:4},()=>{}),this._wnafT2=Array.from({length:4},()=>{}),this._wnafT3=Array.from({length:4},()=>{}),this._wnafT4=Array.from({length:4},()=>{}),this._bitLength=this.n.bitLength(),this.redN=this.n.toRed(this.red),this.a=new k(e.a,16).toRed(this.red),this.b=new k(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=this.a.fromRed().cmpn(0)===0,this.threeA=this.a.fromRed().sub(this.p).cmpn(-3)===0,this.endo=this._getEndomorphism(e),this._endoWnafT1=Array.from({length:4},()=>{}),this._endoWnafT2=Array.from({length:4},()=>{})}static assert(t,e="Elliptic curve assertion failed"){if(!t)throw new Error(e)}getNAF(t,e,n){let r=Array.from({length:Math.max(t.bitLength(),n)+1},()=>0);r.fill(0);let s=1<<e+1,o=t.clone();for(let c=0;c<r.length;c++){let u,f=o.andln(s-1);o.isOdd()?(f>(s>>1)-1?u=(s>>1)-f:u=f,o.isubn(u)):u=0,r[c]=u,o.iushrn(1)}return r}getJSF(t,e){let n=[[],[]];t=t.clone(),e=e.clone();let r=0,s=0;for(;t.cmpn(-r)>0||e.cmpn(-s)>0;){let o=Nl(t,r),c=Nl(e,s),u=Bl(t,r,o,c);n[0].push(u);let f=Bl(e,s,c,o);n[1].push(f),r=_l(r,u),s=_l(s,f),t.iushrn(1),e.iushrn(1)}return n}static cachedProperty(t,e,n){let r="_"+e;t.prototype[e]=function(){return this[r]===void 0&&(this[r]=n.call(this)),this[r]}}static parseBytes(t){return typeof t=="string"?at(t,"hex"):t}static intFromLE(t){return new k(t,"hex","le")}_getEndomorphism(t){if(!this.zeroA||this.p.modrn(3)!==1)return;let e=this._resolveEndomorphismBeta(t),n=this._resolveEndomorphismLambda(t,e);return{beta:e,lambda:n,basis:a(this,fa,Cl).call(this,t,n)}}_resolveEndomorphismBeta(t){if(t.beta!==void 0)return new k(t.beta,16).toRed(this.red);let e=this._getEndoRoots(this.p);if(e==null)throw new Error("Failed to get endomorphism roots for beta.");return(e[0].cmp(e[1])<0?e[0]:e[1]).toRed(this.red)}_endomorphismLambdaMatches(t,e,n=!1){if(this.g==null)throw new Error("Curve generator point (g) is not defined.");let r=this.g.mul(t)?.x,s=this.g.x==null?void 0:this.g.x.redMul(e);if(r==null||s==null){if(n)throw new Error("Lambda computation failed: g.mul(lambda).x or g.x.redMul(beta) is undefined.");return!1}return r.cmp(s)===0}_resolveEndomorphismLambda(t,e){if(t.lambda!==void 0)return new k(t.lambda,16);let n=this._getEndoRoots(this.n);if(n==null)throw new Error("Failed to get endomorphism roots for lambda.");return this._endomorphismLambdaMatches(n[0],e)?n[0]:(bu.assert(this._endomorphismLambdaMatches(n[1],e,!0),"Lambda selection does not match computed beta."),n[1])}_getEndoRoots(t){let e=t===this.p?this.red:new Ms(t),n=new k(2).toRed(e).redInvm(),r=n.redNeg(),s=new k(3).toRed(e).redNeg().redSqrt().redMul(n),o=r.redAdd(s).fromRed(),c=r.redSub(s).fromRed();return[o,c]}_getEndoBasis(t){let e=this.n.ushrn(Math.floor(this.n.bitLength()/2)),n=t,r=this.n.clone(),s=new k(1),o=new k(0),c=new k(0),u=new k(1),f,d,l,p,b,g,y=new k(0),v=0,C=new k(0),E=new k(0);for(;n.cmpn(0)!==0;){let B=r.div(n);C=r.sub(B.mul(n)),E=c.sub(B.mul(s));let _=u.sub(B.mul(o));if(l===void 0&&C.cmp(e)<0)f=y.neg(),d=s,l=C.neg(),p=E;else if(l!==void 0&&++v===2)break;y=C,r=n,n=C,c=s,s=E,u=o,o=_}if(f===void 0||d===void 0||l===void 0||p===void 0)throw new Error("Failed to compute Endo Basis values");b=C.neg(),g=E;let A=l.sqr().add(p.sqr());return b.sqr().add(g.sqr()).cmp(A)>=0&&(b=f,g=d),l.negative!==0&&(l=l.neg(),p=p.neg()),b.negative!==0&&(b=b.neg(),g=g.neg()),[{a:l,b:p},{a:b,b:g}]}_endoSplit(t){if(this.endo==null)throw new Error("Endomorphism is not defined.");let e=this.endo.basis,n=e[0],r=e[1],s=r.b.mul(t).divRound(this.n),o=n.b.neg().mul(t).divRound(this.n),c=s.mul(n.a),u=o.mul(r.a),f=s.mul(n.b),d=o.mul(r.b),l=t.sub(c).sub(u),p=f.add(d).neg();return{k1:l,k2:p}}validate(t){if(t.inf)return!0;let e=t.x,n=t.y;if(e===null||n===null)throw new Error("Point coordinates cannot be null");let r=this.a.redMul(e),s=e.redSqr().redMul(e).redIAdd(r).redIAdd(this.b);return n.redSqr().redISub(s).cmpn(0)===0}};fa=new WeakSet,Cl=function(t,e){return typeof t.basis!="object"||t.basis===null?this._getEndoBasis(e):t.basis.map(n=>({a:new k(n.a,16),b:new k(n.b,16)}))};var qt=bu;var ji=class{constructor(t){m(this,"curve");m(this,"type");m(this,"precomputed");this.curve=new qt,this.type=t,this.precomputed=null}};var Gi=class i extends ji{constructor(e,n,r){super("jacobian");m(this,"x");m(this,"y");m(this,"z");m(this,"zOne");e===null&&n===null&&r===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new k(0)):(k.isBN(e)||(e=new k(e,16)),this.x=e,k.isBN(n)||(n=new k(n,16)),this.y=n,k.isBN(r)||(r=new k(r,16)),this.z=r),this.x.red==null&&(this.x=this.x.toRed(this.curve.red)),this.y.red==null&&(this.y=this.y.toRed(this.curve.red)),this.z.red==null&&(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.isInfinity()&&(this.x=this.curve.one,this.y=this.curve.one,this.z=new k(0).toRed(this.curve.red),this.zOne=!1)}toP(){if(this.isInfinity())return new Te(null,null);let e=this.z.redInvm(),n=e.redSqr(),r=this.x.redMul(n),s=this.y.redMul(n).redMul(e);return new Te(r,s)}neg(){return new i(this.x,this.y.redNeg(),this.z)}add(e){if(this.isInfinity())return e;if(e.isInfinity())return this;let n=e.z.redSqr(),r=this.z.redSqr(),s=this.x.redMul(n),o=e.x.redMul(r),c=this.y.redMul(n.redMul(e.z)),u=e.y.redMul(r.redMul(this.z)),f=s.redSub(o),d=c.redSub(u);if(f.cmpn(0)===0)return d.cmpn(0)===0?this.dbl():new i(null,null,null);let l=f.redSqr(),p=l.redMul(f),b=s.redMul(l),g=d.redSqr().redIAdd(p).redISub(b).redISub(b),y=d.redMul(b.redISub(g)).redISub(c.redMul(p)),v=this.z.redMul(e.z).redMul(f);return new i(g,y,v)}mixedAdd(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;if(e.x===null||e.y===null)throw new Error("Point coordinates cannot be null");let n=this.z.redSqr(),r=this.x,s=e.x.redMul(n),o=this.y,c=e.y.redMul(n).redMul(this.z),u=r.redSub(s),f=o.redSub(c);if(u.cmpn(0)===0)return f.cmpn(0)===0?this.dbl():new i(null,null,null);let d=u.redSqr(),l=d.redMul(u),p=r.redMul(d),b=f.redSqr().redIAdd(l).redISub(p).redISub(p),g=f.redMul(p.redISub(b)).redISub(o.redMul(l)),y=this.z.redMul(u);return new i(b,g,y)}dblp(e){if(e===0)return this;if(this.isInfinity())return this;if(e===void 0)return this.dbl();let n=this;for(let r=0;r<e;r++)n=n.dbl();return n}dbl(){if(this.isInfinity())return this;let e,n,r;if(this.zOne){let s=this.x.redSqr(),o=this.y.redSqr(),c=o.redSqr(),u=this.x.redAdd(o).redSqr().redISub(s).redISub(c);u=u.redIAdd(u);let f=s.redAdd(s).redIAdd(s),d=f.redSqr().redISub(u).redISub(u),l=c.redIAdd(c);l=l.redIAdd(l),l=l.redIAdd(l),e=d,n=f.redMul(u.redISub(d)).redISub(l),r=this.y.redAdd(this.y)}else{let s=this.x.redSqr(),o=this.y.redSqr(),c=o.redSqr(),u=this.x.redAdd(o).redSqr().redISub(s).redISub(c);u=u.redIAdd(u);let f=s.redAdd(s).redIAdd(s),d=f.redSqr(),l=c.redIAdd(c);l=l.redIAdd(l),l=l.redIAdd(l),e=d.redISub(u).redISub(u),n=f.redMul(u.redISub(e)).redISub(l),r=this.y.redMul(this.z),r=r.redIAdd(r)}return new i(e,n,r)}eq(e){if(e.type==="affine")return this.eq(e.toJ());if(this===e||(e=e,this.isInfinity()&&e.isInfinity()))return!0;if(this.isInfinity()!==e.isInfinity())return!1;let n=this.z.redSqr(),r=e.z.redSqr();if(this.x.redMul(r).redISub(e.x.redMul(n)).cmpn(0)!==0)return!1;let s=n.redMul(this.z),o=r.redMul(e.z);return this.y.redMul(o).redISub(e.y.redMul(s)).cmpn(0)===0}eqXToP(e){let n=this.z.redSqr(),r=e.toRed(this.curve?.red).redMul(n);if(this.x.cmp(r)===0)return!0;let s=e.clone();if(this.curve?.redN==null)throw new Error("Curve or redN is not initialized.");let o=this.curve.redN.redMul(n);for(;s.cmp(this.curve.p)<0;){if(s.iadd(this.curve.n),s.cmp(this.curve.p)>=0)return!1;if(r.redIAdd(o),this.x.cmp(r)===0)return!0}return!1}inspect(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"}isInfinity(){return this.z.cmpn(0)===0}};function Ll(i,t,e){let n=-i,r=(t.X^e.X)&n,s=(t.Y^e.Y)&n,o=(t.Z^e.Z)&n;t.X^=r,e.X^=r,t.Y^=s,e.Y^=s,t.Z^=o,e.Z^=o}var Lt=0n,_e=1n,mu=2n,s1=3n,o1=4n,a1=8n,En=0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn,pi=0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141n,Ul=(1n<<256n)-1n;function wu(i){let t=i>>256n;return i=(i&Ul)+(t<<32n)+t*977n,t=i>>256n,i=(i&Ul)+(t<<32n)+t*977n,i>=En&&(i-=En),i}var Yi=i=>wu((i%En+En)%En),An=(i,t)=>i>=t?i-t:En-(t-i),ct=(i,t)=>wu(i*t),Ml=(i,t)=>wu(i+t),Lr=i=>{let t=_e,e=Lt,n=Yi(i),r=En;for(;n>_e;){let s=r/n;[t,e]=[e-t*s,t],[n,r]=[r-n*s,n]}return Yi(t)},c1=i=>ct(i,i),u1=(i,t)=>{let e=1n;for(i=Yi(i);t>0n;)(t&1n)!==0n&&(e=ct(e,i)),i=ct(i,i),t>>=1n;return e},f1=En+1n>>2n,d1=i=>{let t=u1(i,f1);return ct(t,t)!==Yi(i)?null:t},l1=i=>k.isBN(i)?BigInt("0x"+i.toString(16)):typeof i=="string"?BigInt("0x"+i):Array.isArray(i)?BigInt("0x"+nt(i)):BigInt(i),da=BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),la=BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"),Dl=new Map,Ys=i=>{let{X:t,Y:e,Z:n}=i;if(e===Lt)return{X:Lt,Y:_e,Z:Lt};let r=ct(e,e),s=ct(o1,ct(t,r)),o=ct(s1,ct(t,t)),c=An(ct(o,o),ct(mu,s)),u=An(ct(o,An(s,c)),ct(a1,ct(r,r))),f=ct(mu,ct(e,n));return{X:c,Y:u,Z:f}},Ur=(i,t)=>{if(i.Z===Lt)return t;if(t.Z===Lt)return i;let e=ct(i.Z,i.Z),n=ct(t.Z,t.Z),r=ct(i.X,n),s=ct(t.X,e),o=ct(i.Y,ct(n,t.Z)),c=ct(t.Y,ct(e,i.Z)),u=An(s,r),f=An(c,o);if(u===Lt)return f===Lt?Ys(i):{X:Lt,Y:_e,Z:Lt};let d=ct(u,u),l=ct(u,d),p=ct(r,d),b=An(An(ct(f,f),l),ct(mu,p)),g=An(ct(f,An(p,b)),ct(o,l)),y=ct(u,ct(i.Z,t.Z));return{X:b,Y:g,Z:y}},h1=i=>i.Z===Lt?i:{X:i.X,Y:En-i.Y,Z:i.Z},p1=(i,t)=>{let e=`${i}:${t.x.toString(16)}:${t.y.toString(16)}`,n=Dl.get(e);if(n!==void 0)return n;let r=Array.from({length:1<<i-1},()=>({X:Lt,Y:_e,Z:Lt})),s={X:t.x,Y:t.y,Z:_e};r[0]=s;let o=Ys(s);for(let c=1;c<r.length;c++)r[c]=Ur(r[c-1],o);return Dl.set(e,r),r},g1=(i,t)=>{let e=[],n=1n<<BigInt(t),r=n>>1n,s=i;for(;s>0n;){if((s&_e)===Lt)e.push(0);else{let o=s&n-1n;o>r&&(o-=n),e.push(Number(o)),s-=o}s>>=_e}return e},ha=(i,t,e=5)=>{let n=p1(e,t),r=g1(i,e),s={X:Lt,Y:_e,Z:Lt};for(let o=r.length-1;o>=0;o--){s=Ys(s);let c=r[o];if(c!==0){let u=Math.abs(c)>>1,f=c>0?n[u]:h1(n[u]);s=Ur(s,f)}}return s},Zi=i=>{let t=i%pi;return t<0n&&(t+=pi),t},Zs=(i,t)=>Zi(i*t),xu=i=>{let t=1n,e=0n,n=Zi(i),r=pi;for(;n>1n;){let s=r/n;[t,e]=[e-t*s,t],[n,r]=[r-n*s,n]}return Zi(t)},de,Hl,$l,Fl,ql,Wl,yu,Vl,kt=class kt extends ji{constructor(e,n,r=!0){super("affine");G(this,de);m(this,"x");m(this,"y");m(this,"inf");this.precomputed=null,e===null&&n===null?(this.x=null,this.y=null,this.inf=!0):(k.isBN(e)||(e=new k(e,16)),this.x=e,k.isBN(n)||(n=new k(n,16)),this.y=n,r&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red===null&&(this.x=this.x.toRed(this.curve.red)),this.y.red===null&&(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}static _assertOnCurve(e){if(!e.validate())throw new Error("Invalid point");return e}static fromDER(e){if((e[0]===4||e[0]===6||e[0]===7)&&e.length-1===64){if(e[0]===6){if(e.at(-1)%2!==0)throw new Error("Point string value is wrong length")}else if(e[0]===7&&e.at(-1)%2!==1)throw new Error("Point string value is wrong length");let r=new kt(e.slice(1,33),e.slice(33,65));return kt._assertOnCurve(r)}else if((e[0]===2||e[0]===3)&&e.length-1===32)return kt._assertOnCurve(kt.fromX(e.slice(1,33),e[0]===3));throw new Error("Unknown point format")}static fromString(e){let n=at(e,"hex");return kt._assertOnCurve(kt.fromDER(n))}static fromX(e,n){let r=l1(e);r=Yi(r);let s=Ml(ct(c1(r),r),7n),o=d1(s);if(o===null)throw new Error("Invalid point");let c=o;(c&_e)!==(n?_e:Lt)&&(c=An(En,c));let u=new k(r.toString(16),16),f=new k(c.toString(16),16);return kt._assertOnCurve(new kt(u,f))}static fromJSON(e,n){typeof e=="string"&&(e=JSON.parse(e));let r=new kt(e[0],e[1],n);if(r=kt._assertOnCurve(r),typeof e[2]!="object"||e[2]===null)return r;let s=e[2],o=c=>{let u=new kt(c[0],c[1],n);return kt._assertOnCurve(u)};return r.precomputed={beta:null,doubles:typeof s.doubles=="object"&&s.doubles!==null?{step:s.doubles.step,points:[r].concat(s.doubles.points.map(o))}:void 0,naf:typeof s.naf=="object"&&s.naf!==null?{wnd:s.naf.wnd,points:[r].concat(s.naf.points.map(o))}:void 0},r}validate(){if(this.inf||this.x==null||this.y==null)return!1;try{let e=BigInt("0x"+this.x.fromRed().toString(16)),n=BigInt("0x"+this.y.fromRed().toString(16)),r=ct(n,n),s=Ml(ct(ct(e,e),e),7n);return r===s}catch{return!1}}encode(e=!0,n){if(this.inf)return n==="hex"?"00":[0];let r=this.curve.p.byteLength(),s=this.getX().toArray("be",r),o;return e?o=[this.getY().isEven()?2:3].concat(s):o=[4].concat(s,this.getY().toArray("be",r)),n==="hex"?nt(o):o}toString(){return this.encode(!0,"hex")}toJSON(){return this.precomputed==null?[this.x,this.y]:[this.x,this.y,typeof this.precomputed=="object"&&this.precomputed!==null?{doubles:this.precomputed.doubles==null?void 0:{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf==null?void 0:{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}:void 0]}inspect(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+(this.x?.fromRed()?.toString(16,2)??"undefined")+" y: "+(this.y?.fromRed()?.toString(16,2)??"undefined")+">"}isInfinity(){return this.inf}add(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return new kt(null,null);if(this.x?.cmp(e.x??new k(0))===0)return new kt(null,null);let n={X:BigInt("0x"+this.x.fromRed().toString(16)),Y:BigInt("0x"+this.y.fromRed().toString(16)),Z:_e},r={X:BigInt("0x"+e.x.fromRed().toString(16)),Y:BigInt("0x"+e.y.fromRed().toString(16)),Z:_e},s=Ur(n,r);if(s.Z===Lt)return new kt(null,null);let o=Lr(s.Z),c=ct(o,o),u=ct(s.X,c),f=ct(s.Y,ct(c,o));return new kt(u.toString(16),f.toString(16))}dbl(){if(this.inf)return this;if(this.x===null||this.y===null)throw new Error("Point coordinates cannot be null");let e=BigInt("0x"+this.x.fromRed().toString(16)),n=BigInt("0x"+this.y.fromRed().toString(16));if(n===Lt)return new kt(null,null);let r=Ys({X:e,Y:n,Z:_e}),s=Lr(r.Z),o=ct(s,s),c=ct(r.X,o),u=ct(r.Y,ct(o,s));return new kt(c.toString(16),u.toString(16))}getX(){return(this.x??new k(0)).fromRed()}getY(){return(this.y??new k(0)).fromRed()}mul(e){if(k.isBN(e)||(e=new k(e,16)),e=e,this.inf)return this;let n=e.isNeg(),r=n?e.neg():e,s=BigInt("0x"+r.toString(16));if(s=Yi(s),s===Lt)return new kt(null,null);if(s===Lt)return new kt(null,null);if(this.x===null||this.y===null)throw new Error("Point coordinates cannot be null");let o,c;this===this.curve.g?(o=da,c=la):(o=BigInt("0x"+this.x.fromRed().toString(16)),c=BigInt("0x"+this.y.fromRed().toString(16)));let u=ha(s,{x:o,y:c});if(u.Z===Lt)return new kt(null,null);let f=Lr(u.Z),d=ct(f,f),l=ct(u.X,d),p=ct(u.Y,ct(d,f)),b=new k(l.toString(16),16),g=new k(p.toString(16),16),y=new kt(b,g);return n?y.neg():y}mulCT(e){if(k.isBN(e)||(e=new k(e,16)),e=e,this.inf)return new kt(null,null);let n=e.isNeg(),r=n?e.neg():e,s=BigInt("0x"+r.toString(16));if(s=Yi(s),s===0n)return new kt(null,null);let o=this===this.curve.g?da:BigInt("0x"+this.getX().toString(16)),c=this===this.curve.g?la:BigInt("0x"+this.getY().toString(16)),u={X:0n,Y:1n,Z:0n},f={X:o,Y:c,Z:1n},d=s.toString(2);for(let v of d){let C=v==="1"?1n:0n;Ll(C,u,f),f=Ur(u,f),u=Ys(u),Ll(C,u,f)}if(u.Z===0n)return new kt(null,null);let l=Lr(u.Z),p=ct(l,l),b=ct(u.X,p),g=ct(u.Y,ct(p,l)),y=new kt(b.toString(16),g.toString(16));return n?y.neg():y}mulAdd(e,n,r){let s=[this,n],o=[e,r];return a(this,de,yu).call(this,s,o)}jmulAdd(e,n,r){let s=[this,n],o=[e,r];return a(this,de,yu).call(this,s,o,!0)}eq(e){return this===e||this.inf===e.inf&&(this.inf||(this.x??new k(0)).cmp(e.x??new k(0))===0&&(this.y??new k(0)).cmp(e.y??new k(0))===0)}neg(e){if(this.inf)return this;let n=new kt(this.x,(this.y??new k(0)).redNeg());if(e===!0&&this.precomputed!=null){let r=this.precomputed,s=o=>o.neg();n.precomputed={naf:r.naf==null?void 0:{wnd:r.naf.wnd,points:r.naf.points.map(s)},doubles:r.doubles==null?void 0:{step:r.doubles.step,points:r.doubles.points.map(o=>o.neg())},beta:void 0}}return n}dblp(e){let n;for(let r=0;r<e;r++)n=(n??this).dbl();return n??this}toJ(){return this.inf?new Gi(null,null,null):new Gi(this.x,this.y,this.curve.one)}_combineWnafPair(e,n,r){let{points:s,coeffs:o,wndWidth:c,wnd:u,naf:f,currentMax:d}=r;if(c[e]!==1||c[n]!==1)return f[e]=this.curve.getNAF(o[e],c[e],this.curve._bitLength),f[n]=this.curve.getNAF(o[n],c[n],this.curve._bitLength),Math.max(d,f[e].length,f[n].length);let l=[s[e],null,null,s[n]],p=s[e].y??new k(0),b=s[n].y??new k(0);p.cmp(b)===0?(l[1]=s[e].add(s[n]),l[2]=s[e].toJ().mixedAdd(s[n].neg())):p.cmp(b.redNeg())===0?(l[1]=s[e].toJ().mixedAdd(s[n]),l[2]=s[e].add(s[n].neg())):(l[1]=s[e].toJ().mixedAdd(s[n]),l[2]=s[e].toJ().mixedAdd(s[n].neg()));let g=[-3,-1,-5,-7,0,7,5,1,3],y=this.curve.getJSF(o[e],o[n]),v=Math.max(d,y[0].length);f[e]=Array.from({length:v}),f[n]=Array.from({length:v});for(let C=0;C<v;C++){let E=Math.trunc(y[0][C]),A=Math.trunc(y[1][C]);f[e][C]=g[(E+1)*3+(A+1)],f[n][C]=0,u[e]=l}return v}_collectWnafStep(e,n,r,s){let o=e,c=0;for(;o>=0;){let u=!0;for(let f=0;f<n;f++)s[f]=new k(typeof r[f][o]=="number"?r[f][o]:0),s[f].isZero()||(u=!1);if(!u)break;c++,o--}return o>=0&&c++,{index:o,doubles:c}}_getDoubles(e,n){if(typeof this.precomputed=="object"&&this.precomputed!==null&&typeof this.precomputed.doubles=="object"&&this.precomputed.doubles!==null)return this.precomputed.doubles;let r=[this],s;for(let o=0;o<(n??0);o+=e??1){for(let c=0;c<(e??1);c++)s=(s??this).dbl();r.push(s)}return{step:e??1,points:r}}};de=new WeakSet,Hl=function(){if(typeof this.curve.endo!="object")return;let e=this.precomputed;if(typeof e=="object"&&e!==null&&typeof e.beta=="object"&&e.beta!==null)return e.beta;let n=new kt((this.x??new k(0)).redMul(this.curve.endo.beta),this.y);if(e!=null){let r=this.curve,s=o=>{let c=o;if(c.x===null)throw new Error("p.x is null");if(r.endo===void 0||r.endo===null)throw new Error("curve.endo is undefined");return new kt(c.x.redMul(r.endo.beta),c.y)};e.beta=n,n.precomputed={beta:null,naf:e.naf==null?void 0:{wnd:e.naf.wnd,points:e.naf.points.map(s)},doubles:e.doubles==null?void 0:{step:e.doubles.step,points:e.doubles.points.map(s)}}}return n},$l=function(e,n,r,s,o){var c;for(let u=0;u<r;u++){let f=a(c=n[u],de,Vl).call(c,e);s[u]=f.wnd,o[u]=f.points}},Fl=function(e,n,r,s,o,c){let u=0;for(let f=r-1;f>=1;f-=2)u=this._combineWnafPair(f-1,f,{points:e,coeffs:n,wndWidth:s,wnd:o,naf:c,currentMax:u});return u},ql=function(e,n,r,s){let o=new k(1),c=new k(2),u=e;for(let f=0;f<n;f++){let d=r[f];if(d.cmpn(0)===0)continue;let l=d.isNeg()?s[f][d.neg().sub(o).div(c).toNumber()].neg():s[f][d.sub(o).div(c).toNumber()];u=l.type==="affine"?u.mixedAdd(l):u.add(l)}return u},Wl=function(e,n,r,s,o){let c=this.curve._wnafT1.length,u=Array.from({length:c}),f=Array.from({length:c},()=>[]),d=Array.from({length:c},()=>[]);a(this,de,$l).call(this,e,n,s,u,f);let l=a(this,de,Fl).call(this,n,r,s,u,f,d),p=new Gi(null,null,null),b=this.curve._wnafT4,g=l;for(;g>=0;){let y=this._collectWnafStep(g,s,d,b);if(g=y.index,p=p.dblp(y.doubles),g<0)break;p=a(this,de,ql).call(this,p,s,b,f),g--}for(let y=0;y<s;y++)f[y]=[];return o===!0?p:p.toP()},yu=function(e,n,r){var f;let s=Array.from({length:e.length*2}),o=Array.from({length:e.length*2}),c;for(c=0;c<e.length;c++){let d=this.curve._endoSplit(n[c]),l=e[c],p=a(f=l,de,Hl).call(f)??new kt(null,null);d.k1.negative!==0&&(d.k1.ineg(),l=l.neg(!0)),d.k2.negative!==0&&(d.k2.ineg(),p=p.neg(!0)),s[c*2]=l,s[c*2+1]=p,o[c*2]=d.k1,o[c*2+1]=d.k2}let u=a(this,de,Wl).call(this,1,s,o,c*2,r);for(let d=0;d<c*2;d++)s[d]=null,o[d]=null;return u},Vl=function(e){if(typeof this.precomputed=="object"&&this.precomputed!==null&&typeof this.precomputed.naf=="object"&&this.precomputed.naf!==null)return this.precomputed.naf;let n=[this],r=(1<<e)-1,s=r===1?null:this.dbl();for(let o=1;o<r;o++)s!==null&&(n[o]=n[o-1].add(s));return{wnd:e,points:n}};var Te=kt;var Vt=class i extends Te{static fromPrivateKey(t){let n=new qt().g.mul(t);return new i(n.x,n.y)}static fromString(t){let e=Te.fromString(t);return new i(e.x,e.y)}static fromDER(t){let e=Te.fromDER(t);return new i(e.x,e.y)}constructor(t,e=null,n=!0){if(t instanceof Te)super(t.getX(),t.getY());else{if(e===null&&n&&typeof t=="string"&&(t.length===66||t.length===130))throw new Error('You are using the "new PublicKey()" constructor with a DER hex string. You need to use "PublicKey.fromString()" instead.');super(t,e,n)}}deriveSharedSecret(t){if(!this.validate())throw new Error("Public key not valid for ECDH secret derivation");return this.mulCT(t)}verify(t,e,n){let r=new k(Be(t,n),16);return gi(r,e,this)}toDER(t){return t==="hex"?this.encode(!0,t):this.encode(!0)}toHash(t){let e=ra(this.encode(!0));return t==="hex"?nt(e):e}toAddress(t=[0]){if(typeof t=="string")if(t==="testnet"||t==="test")t=[111];else if(t==="mainnet"||t==="main")t=[0];else throw new Error(`Invalid prefix ${t}`);return js(this.toHash(),t)}deriveChild(t,e,n,r){let s;if(typeof r=="function"){let l=r(t,this);l===void 0?(s=this.deriveSharedSecret(t),typeof n=="function"&&n(t,this,s)):s=l}else s=this.deriveSharedSecret(t);let o=at(e,"utf8"),c=sa(s.encode(!0),o),f=new qt().g.mul(new k(c)),d=this.add(f);return new i(d.x,d.y)}static fromMsgHashAndCompactSignature(t,e,n){let r=at(e,n);if(r.length!==65)throw new Error("Invalid Compact Signature");let s=r[0];if(s<27||s>=35)throw new Error("Invalid Compact Byte");let o=r[0]-27;return o>3&&(o-=4),new le(new k(r.slice(1,33)),new k(r.slice(33,65))).RecoverPublicKey(o,t)}};var le=class i{constructor(t,e){m(this,"r");m(this,"s");this.r=t,this.s=e}static fromDER(t,e){let n=(l,p)=>{let b=l[p.place++];if((b&128)===0)return b;throw new Error("Invalid DER entity length")};class r{constructor(){m(this,"place",0)}}t=at(t,e);let s=new r;if(t[s.place++]!==48)throw new Error("Signature DER must start with 0x30");if(n(t,s)+s.place!==t.length)throw new Error("Signature DER invalid");if(t[s.place++]!==2)throw new Error("Signature DER invalid");let c=n(t,s),u=t.slice(s.place,c+s.place);if(s.place+=c,t[s.place++]!==2)throw new Error("Signature DER invalid");let f=n(t,s);if(t.length!==f+s.place)throw new Error("Invalid R-length in signature DER");let d=t.slice(s.place,f+s.place);if(u[0]===0){if((u[1]&128)===0)throw new Error("Invalid R-value in signature DER");u=u.slice(1)}if(d[0]===0){if((d[1]&128)===0)throw new Error("Invalid S-value in signature DER");d=d.slice(1)}return new i(new k(u),new k(d))}static fromCompact(t,e){if(t=at(t,e),t.length!==65)throw new Error("Invalid Compact Signature");let n=t[0];if(n<27||n>=35)throw new Error("Invalid Compact Byte");return new i(new k(t.slice(1,33)),new k(t.slice(33,65)))}verify(t,e,n){let r=new k(Be(t,n),16);return gi(r,this,e)}toString(t){return this.toDER(t)}toDER(t){let e=(f,d)=>{if(d<128)f.push(d);else throw new Error("len must be < 0x80")},n=f=>{let d=0,l=f.length-1;for(;f[d]===0&&(f[d+1]&128)===0&&d<l;)d++;return d===0?f:f.slice(d)},r=this.r.toArray(),s=this.s.toArray();for((r[0]&128)!==0&&(r=[0].concat(r)),(s[0]&128)!==0&&(s=[0].concat(s)),r=n(r),s=n(s);s[0]===0&&(s[1]&128)===0;)s=s.slice(1);let o=[2];e(o,r.length),o=o.concat(r),o.push(2),e(o,s.length);let c=o.concat(s),u=[48];return e(u,c.length),u=u.concat(c),t==="hex"?nt(u):t==="base64"?xe(u):u}toCompact(t,e,n){if(t<0||t>3)throw new Error("Invalid recovery param");if(typeof e!="boolean")throw new TypeError("Invalid compressed param");let r=27+t;e&&(r+=4);let s=[r];return s=s.concat(this.r.toArray("be",32)),s=s.concat(this.s.toArray("be",32)),n==="hex"?nt(s):n==="base64"?xe(s):s}RecoverPublicKey(t,e){let n=this.r,r=this.s,s=(t&1)!==0,o=t>>1,c=new qt,u=c.n,f=c.g,d=o===0?n:n.add(u),l=Te.fromX(d,s);if(!l.mul(u).isInfinity())throw new Error("nR is not at infinity");let b=e.neg().umod(u),g=n.invm(u),y=g.mul(r).umod(u),v=g.mul(b).umod(u),C=f.mul(v).add(l.mul(y)),E=new Vt(C);return E.validate(),E}CalculateRecoveryFactor(t,e){for(let n=0;n<4;n++){let r;try{r=this.RecoverPublicKey(n,e)}catch{continue}if(t.eq(r))return n}throw new Error("Unable to find valid recovery factor")}};var Js=class{constructor(t,e){m(this,"K");m(this,"V");let n=at(t,"hex"),r=at(e,"hex");if(n.length!==32)throw new Error("Entropy must be exactly 32 bytes (256 bits)");if(r.length!==32)throw new Error("Nonce must be exactly 32 bytes (256 bits)");let s=n.concat(r);this.K=Array.from({length:32}),this.V=Array.from({length:32});for(let o=0;o<32;o++)this.K[o]=0,this.V[o]=1;this.update(s)}hmac(){return new $s(this.K)}update(t){let e=this.hmac().update(this.V).update([0]);t!==void 0&&(e=e.update(t)),this.K=e.digest(),this.V=this.hmac().update(this.V).digest(),t!==void 0&&(this.K=this.hmac().update(this.V).update([1]).update(t).digest(),this.V=this.hmac().update(this.V).digest())}generate(t){let e=[];for(;e.length<t;)this.V=this.hmac().update(this.V).digest(),e=e.concat(this.V);let n=e.slice(0,t);return this.update(),nt(n)}};function Kl(i,t,e=new qt){let n=i.byteLength()*8-e.n.bitLength();return n>0&&i.iushrn(n),t!==!0&&i.cmp(e.n)>=0?i.sub(e.n):i}function Ji(i){let t=i.toArray("be"),e=0n;for(let n of t)e=e<<8n|BigInt(n);return e}var Qs=new qt,Iu=Qs.n.byteLength(),b1=Qs.n.subn(1),m1=pi>>1n;function y1(i,t,e){let n;if(typeof i=="function"?n=i(t):i!==void 0&&k.isBN(i)?n=i:n=new k(e.generate(Iu),16),n==null)throw new Error("k is undefined");return Kl(n,!0)}function pa(i,t){if(i)throw new Error(t)}function w1(i,t,e,n,r){if(i.cmpn(1)<0||i.cmp(b1)>0)return pa(r,"Invalid fixed custom K value (must be >1 and <N-1)");let s=Qs.g.mulCT(i);if(s.isInfinity())return pa(r,"Invalid fixed custom K value (k\xB7G at infinity)");let o=Zi(BigInt("0x"+s.getX().toString(16)));if(o===0n)return pa(r,"Invalid fixed custom K value (r == 0)");let c=xu(BigInt("0x"+i.toString(16))),u=Zi(t+Zs(o,e)),f=Zs(c,u);return f===0n?pa(r,"Invalid fixed custom K value (s == 0)"):(n&&f>m1&&(f=pi-f),new le(new k(o.toString(16),16),new k(f.toString(16),16)))}var zl=(i,t,e=!1,n)=>{let r=Qs.n.bitLength();if(i.bitLength()>r)throw new Error(`ECDSA message is too large: expected <= ${r} bits. Callers must hash messages before signing.`);i=Kl(i);let s=Ji(i),o=Ji(t),c=t.toArray("be",Iu),u=i.toArray("be",Iu),f=new Js(c,u),d=k.isBN(n);for(let l=0;;l++){let p=w1(y1(n,l,f),s,o,e,d);if(p!=null)return p}},gi=(i,t,e)=>{let n=Qs.n.bitLength();if(i.bitLength()>n)return!1;let r=Ji(i);if(e.x==null||e.y==null)throw new Error("Invalid public key: missing coordinates.");let s={x:Ji(e.x),y:Ji(e.y)},o={r:Ji(t.r),s:Ji(t.s)},{r:c,s:u}=o,f=r;if(c<=Lt||c>=pi||u<=Lt||u>=pi)return!1;let d=xu(u);if(d===0n)return!1;let l=Zs(f,d),p=Zs(c,d),b=ha(l,{x:da,y:la}),g=ha(p,s),y=Ur(b,g);if(y.Z===0n)return!1;let v=Lr(y.Z),C=ct(v,v),E=ct(y.X,C);return Zi(E)===c};var Su=class{constructor(){m(this,"_rand");let t=()=>{throw new Error("No secure random number generator is available in this environment.")};if(this._rand=t,typeof globalThis<"u"&&typeof globalThis.crypto?.getRandomValues=="function"){this._rand=e=>this.getRandomValues(globalThis,e);return}if(globalThis.self!==void 0&&typeof globalThis.self.crypto?.getRandomValues=="function"){this._rand=e=>this.getRandomValues(globalThis.self,e);return}if(globalThis.window!==void 0&&typeof globalThis.window.crypto?.getRandomValues=="function"){this._rand=e=>this.getRandomValues(globalThis.window,e);return}if(typeof process<"u"&&typeof process.getBuiltinModule=="function"){let e=process.getBuiltinModule("node:crypto");if(typeof e?.randomBytes=="function"){this._rand=n=>Array.from(e.randomBytes(n));return}}this._rand=t}getRandomValues(t,e){let n=new Uint8Array(e);return t.crypto.getRandomValues(n),Array.from(n)}generate(t){return this._rand(t)}},Xl=null,x1=i=>(Xl??(Xl=new Su),Xl.generate(i)),ke=x1;var Ie=255,I1=129,jl=/^[1-9A-HJ-NP-Za-km-z]{1,64}$/;function Gl(i,t,e){if(!Number.isSafeInteger(i)||i<e||i>Ie)throw new TypeError(`threshold must be a safe integer from ${e} to ${Ie}`);if(i>t)throw new Error("threshold cannot exceed the number of points")}var tn=class i{constructor(t,e){m(this,"x");m(this,"y");let n=new qt().p;this.x=t.umod(n),this.y=e.umod(n)}toString(){return Xs(this.x.toArray())+"."+Xs(this.y.toArray())}static fromString(t){if(typeof t!="string"||t.length>I1)throw new TypeError("Finite-field point must use a bounded canonical Base58 representation");let[e,n,r]=t.split(".");if(r!==void 0||e===void 0||n===void 0||!jl.test(e)||!jl.test(n))throw new TypeError("Finite-field point must use a bounded canonical Base58 representation");let s=new i(new k(zs(e)),new k(zs(n)));if(s.toString()!==t)throw new TypeError("Finite-field point must use a bounded canonical Base58 representation");return s}},Mr=class i{constructor(t,e){m(this,"points");m(this,"threshold");if(!Array.isArray(t)||t.length===0||t.length>Ie)throw new TypeError(`points must contain from 1 to ${Ie} entries`);let n=e??t.length;Gl(n,t.length,1),this.points=t.slice(),this.threshold=n}static fromPrivateKey(t,e){if(!Number.isSafeInteger(e)||e<2||e>Ie)throw new TypeError(`threshold must be a safe integer from 2 to ${Ie}`);let n=new qt().p,r=[new tn(new k(0),new k(t.toArray()))];for(let s=1;s<e;s++){let o=new k(ke(32)).umod(n),c=new k(ke(32)).umod(n);r.push(new tn(o,c))}return new i(r)}valueAt(t){if(Gl(this.threshold,this.points.length,1),!(t instanceof k))throw new TypeError("x must be a BigNumber");let e=new qt().p,n=new Set;for(let o=0;o<this.threshold;o++){let c=this.points[o];if(!(c instanceof tn)||!(c.x instanceof k)||!(c.y instanceof k))throw new TypeError("points must contain finite-field points");if(c.x.isNeg()||c.y.isNeg()||c.x.gte(e)||c.y.gte(e))throw new TypeError("point coordinates must be canonical field elements");let u=c.x.toString(16);if(n.has(u))throw new Error("Polynomial points must have unique x coordinates");n.add(u)}let r=t.umod(e),s=new k(0);for(let o=0;o<this.threshold;o++){let c=this.points[o].y;for(let u=0;u<this.threshold;u++)if(o!==u){let f=this.points[u].x,d=this.points[o].x,l=r.sub(f).umod(e),b=d.sub(f).umod(e).invm(e),g=l.mul(b).umod(e);c=c.mul(g).umod(e)}s=s.add(c).umod(e)}return s}};var S1=256,Yl=/^[1-9A-HJ-NP-Za-km-z]{1,64}$/,v1=/^(?:[2-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$/,Zl=/^[0-9a-f]{8}$/;function vu(i,t,e){if(!Array.isArray(i)||i.length===0||i.length>Ie)throw new TypeError(`shares must contain from 1 to ${Ie} entries`);if(!Number.isSafeInteger(t)||t<2||t>Ie)throw new TypeError(`threshold must be a safe integer from 2 to ${Ie}`);if(typeof e!="string"||!Zl.test(e))throw new TypeError("integrity must be an 8-character lowercase hexadecimal string")}var to=class i{constructor(t,e,n){m(this,"points");m(this,"threshold");m(this,"integrity");this.points=t,this.threshold=e,this.integrity=n}static fromBackupFormat(t){if(!Array.isArray(t)||t.length===0||t.length>Ie)throw new TypeError(`shares must contain from 1 to ${Ie} entries`);let e=0,n="",r=[];for(let s=0;s<t.length;s++){if(!Object.prototype.hasOwnProperty.call(t,s))throw new TypeError("shares must be a dense array");let o=t[s];if(typeof o!="string"||o.length>S1)throw new TypeError(`Invalid share format in share ${s.toString()}`);let c=o.split(".");if(c.length!==4)throw new Error(`Invalid share format in share ${s.toString()}. Expected format: "x.y.t.i"`);let[u,f,d,l]=c;if(u===void 0||f===void 0||d===void 0||l===void 0||!Yl.test(u)||!Yl.test(f)||!v1.test(d)||!Zl.test(l))throw new TypeError(`Invalid canonical share data in share ${s.toString()}`);let p=Number(d);if(s!==0&&e!==p)throw new Error("Threshold mismatch in share "+s.toString());if(s!==0&&n!==l)throw new Error("Integrity mismatch in share "+s.toString());e=p,n=l,r.push(tn.fromString(`${u}.${f}`))}return vu(r,e,n),new i(r,e,n)}toBackupFormat(){vu(this.points,this.threshold,this.integrity);let t=[];for(let e=0;e<this.points.length;e++){if(!Object.prototype.hasOwnProperty.call(this.points,e))throw new TypeError("shares must be a dense array");let n=this.points[e];if(!(n instanceof tn))throw new TypeError("shares must contain finite-field points");let r=n.toString();if(tn.fromString(r).toString()!==r)throw new TypeError("shares must contain canonical finite-field points");t.push(`${r}.${this.threshold.toString()}.${this.integrity}`)}return t}},Qi=class i extends k{static fromRandom(){return new i(ke(32))}static fromString(t,e="hex"){return new i(super.fromString(t,e).toArray())}static fromHex(t){return new i(super.fromHex(t,"big"))}static fromWif(t,e=1){let n=Gs(t,void 0,e);if(n.data.length!==33)throw new Error("Invalid WIF length");if(n.data[32]!==1)throw new Error("Invalid WIF padding");return new i(n.data.slice(0,32))}constructor(t=0,e=10,n="be",r="apply"){if(t instanceof k?(super(),t.copy(this)):super(t,e,n),r!=="nocheck"){let s=this.checkInField();if(!s.inField){if(r==="error")throw new Error("Input is out of field");k.move(this,s.modN)}}}checkInField(){let t=new qt,e=this.mod(t.n);return{inField:this.cmp(e)===0,modN:e}}isValid(){return this.checkInField().inField}sign(t,e,n=!0,r){let s=new k(Be(t,e),16);return zl(s,this,n,r)}verify(t,e,n){let r=new k(Be(t,n),16);return gi(r,e,this.toPublicKey())}toPublicKey(){let e=new qt().g.mulCT(this);return new Vt(e.x,e.y)}toWif(t=[128]){if(!this.isValid())throw new Error("Value is out of field");return js([...this.toArray("be",32),1],t)}toAddress(t=[0]){return this.toPublicKey().toAddress(t)}toHex(){return super.toHex(32)}toString(t="hex",e=64){return super.toString(t,e)}deriveSharedSecret(t){if(!t.validate())throw new Error("Public key not valid for ECDH secret derivation");return t.mulCT(this)}deriveChild(t,e,n,r){let s;if(typeof r=="function"){let f=r(this,t);f===void 0?(s=this.deriveSharedSecret(t),typeof n=="function"&&n(this,t,s)):s=f}else s=this.deriveSharedSecret(t);let o=at(e,"utf8"),c=sa(s.encode(!0),o),u=new qt;return new i(this.add(new k(c)).mod(u.n).toArray())}toKeyShares(t,e){if(typeof t!="number"||typeof e!="number")throw new TypeError("threshold and totalShares must be numbers");if(!Number.isSafeInteger(t)||!Number.isSafeInteger(e))throw new TypeError("threshold and totalShares must be safe integers");if(t<2)throw new Error("threshold must be at least 2");if(e<2)throw new Error("totalShares must be at least 2");if(t>e)throw new Error("threshold should be less than or equal to totalShares");if(t>Ie||e>Ie)throw new RangeError(`threshold and totalShares cannot exceed ${Ie}`);let n=Mr.fromPrivateKey(this,t),r=[],s=new Set,o=new qt,c=ke(64);for(let f=0;f<e;f++){let d,l=0;do{let b=[f,l,...ke(32)],g=Sl(c,b);if(d=new k(g).umod(o.p),l++,l>5)throw new Error("Failed to generate unique x coordinate after 5 attempts")}while(d.isZero()||s.has(d.toString()));s.add(d.toString());let p=n.valueAt(d);r.push(new tn(d,p))}let u=this.toPublicKey().toHash("hex").slice(0,8);return new to(r,t,u)}toBackupShares(t,e){return this.toKeyShares(t,e).toBackupFormat()}static fromBackupShares(t){return i.fromKeyShares(to.fromBackupFormat(t))}static fromKeyShares(t){if(t===null||typeof t!="object")throw new TypeError("keyShares must be an object");let e=t.points,n=t.threshold,r=t.integrity;if(vu(e,n,r),e.length<n)throw new Error(`At least ${n} shares are required to reconstruct the private key`);let s=[],o=new qt().p;for(let d=0;d<n;d++){if(!Object.prototype.hasOwnProperty.call(e,d))throw new TypeError("shares must be a dense array");let l=e[d];if(!(l instanceof tn)||!(l.x instanceof k)||!(l.y instanceof k))throw new TypeError("shares must contain finite-field points");if(l.x.isNeg()||l.y.isNeg()||l.x.gte(o)||l.y.gte(o))throw new TypeError("share coordinates must be canonical field elements");s.push(new tn(new k(l.x.toArray()),new k(l.y.toArray())))}for(let d=0;d<n;d++)for(let l=d+1;l<n;l++)if(s[d].x.eq(s[l].x))throw new Error("Duplicate share detected, each must be unique.");let c=new Mr(s,n),u=new i(c.valueAt(new k(0)).toArray());if(u.toPublicKey().toHash("hex").slice(0,8)!==r)throw new Error("Integrity hash mismatch");return u}};var Au={OP_0:0,OP_FALSE:0,OP_PUSHDATA1:76,OP_PUSHDATA2:77,OP_PUSHDATA4:78,OP_1NEGATE:79,OP_RESERVED:80,OP_1:81,OP_TRUE:81,OP_2:82,OP_3:83,OP_4:84,OP_5:85,OP_6:86,OP_7:87,OP_8:88,OP_9:89,OP_10:90,OP_11:91,OP_12:92,OP_13:93,OP_14:94,OP_15:95,OP_16:96,OP_NOP:97,OP_VER:98,OP_IF:99,OP_NOTIF:100,OP_VERIF:101,OP_VERNOTIF:102,OP_ELSE:103,OP_ENDIF:104,OP_VERIFY:105,OP_RETURN:106,OP_TOALTSTACK:107,OP_FROMALTSTACK:108,OP_2DROP:109,OP_2DUP:110,OP_3DUP:111,OP_2OVER:112,OP_2ROT:113,OP_2SWAP:114,OP_IFDUP:115,OP_DEPTH:116,OP_DROP:117,OP_DUP:118,OP_NIP:119,OP_OVER:120,OP_PICK:121,OP_ROLL:122,OP_ROT:123,OP_SWAP:124,OP_TUCK:125,OP_CAT:126,OP_SPLIT:127,OP_NUM2BIN:128,OP_BIN2NUM:129,OP_SIZE:130,OP_INVERT:131,OP_AND:132,OP_OR:133,OP_XOR:134,OP_EQUAL:135,OP_EQUALVERIFY:136,OP_RESERVED1:137,OP_RESERVED2:138,OP_1ADD:139,OP_1SUB:140,OP_2MUL:141,OP_2DIV:142,OP_NEGATE:143,OP_ABS:144,OP_NOT:145,OP_0NOTEQUAL:146,OP_ADD:147,OP_SUB:148,OP_MUL:149,OP_DIV:150,OP_MOD:151,OP_LSHIFT:152,OP_RSHIFT:153,OP_BOOLAND:154,OP_BOOLOR:155,OP_NUMEQUAL:156,OP_NUMEQUALVERIFY:157,OP_NUMNOTEQUAL:158,OP_LESSTHAN:159,OP_GREATERTHAN:160,OP_LESSTHANOREQUAL:161,OP_GREATERTHANOREQUAL:162,OP_MIN:163,OP_MAX:164,OP_WITHIN:165,OP_RIPEMD160:166,OP_SHA1:167,OP_SHA256:168,OP_HASH160:169,OP_HASH256:170,OP_CODESEPARATOR:171,OP_CHECKSIG:172,OP_CHECKSIGVERIFY:173,OP_CHECKMULTISIG:174,OP_CHECKMULTISIGVERIFY:175,OP_NOP1:176,OP_CHECKLOCKTIMEVERIFY:177,OP_NOP2:177,OP_CHECKSEQUENCEVERIFY:178,OP_NOP3:178,OP_SUBSTR:179,OP_NOP4:179,OP_LEFT:180,OP_NOP5:180,OP_RIGHT:181,OP_NOP6:181,OP_LSHIFTNUM:182,OP_NOP7:182,OP_RSHIFTNUM:183,OP_NOP8:183,OP_NOP9:184,OP_NOP10:185,OP_NOP11:186,OP_NOP12:187,OP_NOP13:188,OP_NOP14:189,OP_NOP15:190,OP_NOP16:191,OP_NOP17:192,OP_NOP18:193,OP_NOP19:194,OP_NOP20:195,OP_NOP21:196,OP_NOP22:197,OP_NOP23:198,OP_NOP24:199,OP_NOP25:200,OP_NOP26:201,OP_NOP27:202,OP_NOP28:203,OP_NOP29:204,OP_NOP30:205,OP_NOP31:206,OP_NOP32:207,OP_NOP33:208,OP_NOP34:209,OP_NOP35:210,OP_NOP36:211,OP_NOP37:212,OP_NOP38:213,OP_NOP39:214,OP_NOP40:215,OP_NOP41:216,OP_NOP42:217,OP_NOP43:218,OP_NOP44:219,OP_NOP45:220,OP_NOP46:221,OP_NOP47:222,OP_NOP48:223,OP_NOP49:224,OP_NOP50:225,OP_NOP51:226,OP_NOP52:227,OP_NOP53:228,OP_NOP54:229,OP_NOP55:230,OP_NOP56:231,OP_NOP57:232,OP_NOP58:233,OP_NOP59:234,OP_NOP60:235,OP_NOP61:236,OP_NOP62:237,OP_NOP63:238,OP_NOP64:239,OP_NOP65:240,OP_NOP66:241,OP_NOP67:242,OP_NOP68:243,OP_NOP69:244,OP_NOP70:245,OP_NOP71:246,OP_NOP72:247,OP_NOP73:248,OP_NOP77:252,OP_SMALLDATA:249,OP_SMALLINTEGER:250,OP_PUBKEYS:251,OP_PUBKEYHASH:253,OP_PUBKEY:254,OP_INVALIDOPCODE:255},ga=Au;for(let i of Object.keys(Au)){let t=Au[i];ga[t]??(ga[t]=i)}var x=ga;var Jl=typeof globalThis>"u"?void 0:globalThis.Buffer,Ql=Symbol();function er(i){return i[Ql]()}function A1(i){let t=i.data?.length??0;if(t===0||i.op===x.OP_RETURN||i.op<x.OP_PUSHDATA1)return[i.op];if(i.op===x.OP_PUSHDATA1)return[i.op,t&255];if(i.op===x.OP_PUSHDATA2)return[i.op,t&255,t>>8&255];if(i.op===x.OP_PUSHDATA4){let e=t>>>0;return[i.op,e&255,e>>8&255,e>>16&255,e>>24&255]}}function E1(i,t){let e=A1(i),n=i.data??[];if(e==null||t.length!==e.length+n.length)return!1;for(let r=0;r<e.length;r++)if(t[r]!==e[r])return!1;for(let r=0;r<n.length;r++)if(t[e.length+r]!==n[r])return!1;return!0}var We,Wn,Ve,Tn,tr,Jt,th,eh,Bt,Eu,nh,ih,qn,Tu,rh,ba,sh,ku,oh,ah,Ou,ch,ce=class ce{constructor(t=[],e,n,r=!0){G(this,Bt);G(this,We);G(this,Wn);G(this,Ve);G(this,Tn);G(this,tr);N(this,We,t),N(this,Wn,r),N(this,Ve,e),N(this,Tn,n)}static fromASM(t){var s;let e=[],n=t.split(" "),r=0;for(;r<n.length;){let{chunk:o,advance:c}=a(s=ce,Jt,eh).call(s,n,r);e.push(o),r+=c}return new ce(e)}static fromHex(t){if(t.length===0)return ce.fromBinary([]);if(t.length%2!==0)throw new Error("There is an uneven number of characters in the string which suggests it is not hex encoded.");let e;try{e=Ks(t)}catch{throw new Error("Some elements in this string are not hex encoded.")}return new ce([],e,t.toLowerCase(),!1)}static fromBinary(t){let e=Uint8Array.from(t);return new ce([],e,void 0,!1)}static fromBinaryView(t){return new ce([],t,void 0,!1)}get chunks(){return a(this,Bt,Eu).call(this),w(this,We)}set chunks(t){N(this,We,t),N(this,Wn,!0),a(this,Bt,qn).call(this)}toASM(){let t="";for(let e of this.chunks)t+=a(this,Bt,ch).call(this,e);return t.slice(1)}toHex(){let t=a(this,Bt,ba).call(this);if(w(this,Tn)!=null)return w(this,Tn);let e=Jl==null?ca(Array.from(t),"hex"):Jl.from(t).toString("hex");return N(this,Tn,e),e}toBinary(){return Array.from(this.toUint8Array())}toUint8Array(){return Uint8Array.from(a(this,Bt,ba).call(this))}[Ql](){return a(this,Bt,ba).call(this)}writeScript(t){return a(this,Bt,qn).call(this),this.chunks=this.chunks.concat(t.chunks),this}writeOpCode(t){return a(this,Bt,qn).call(this),this.chunks.push({op:t}),this}setChunkOpCode(t,e){return a(this,Bt,qn).call(this),this.chunks[t]={op:e},this}writeBn(t){if(a(this,Bt,qn).call(this),t.cmpn(0)===x.OP_0)this.chunks.push({op:x.OP_0});else if(t.cmpn(-1)===0)this.chunks.push({op:x.OP_1NEGATE});else if(t.cmpn(1)>=0&&t.cmpn(16)<=0)this.chunks.push({op:t.toNumber()+x.OP_1-1});else{let e=t.toSm("little");this.writeBin(e)}return this}writeBin(t){a(this,Bt,qn).call(this);let e,n=t.length>0?t:void 0;if(t.length>0&&t.length<x.OP_PUSHDATA1)e=t.length;else if(t.length===0)e=x.OP_0;else if(t.length<Math.pow(2,8))e=x.OP_PUSHDATA1;else if(t.length<Math.pow(2,16))e=x.OP_PUSHDATA2;else if(t.length<Math.pow(2,32))e=x.OP_PUSHDATA4;else throw new Error("You can't push that much data");return this.chunks.push({data:n,op:e}),this}writeNumber(t){return a(this,Bt,qn).call(this),this.writeBn(new k(t)),this}removeCodeseparators(){var e;let t=this.toUint8Array();return N(this,Ve,Uint8Array.from(a(e=ce,Jt,ah).call(e,t,x.OP_CODESEPARATOR))),N(this,Tn,void 0),N(this,We,[]),N(this,Wn,!1),this}findAndDelete(t){a(this,Bt,qn).call(this);let e=t.toUint8Array();if(e.length===0)return this;for(let n=0;n<this.chunks.length;)E1(this.chunks[n],e)?this.chunks.splice(n,1):n++;return this}isPushOnly(){for(let t of this.chunks)if(t.op>x.OP_16)return!1;return!0}isLockingScript(){throw new Error("Not implemented")}isUnlockingScript(){throw new Error("Not implemented")}};We=new WeakMap,Wn=new WeakMap,Ve=new WeakMap,Tn=new WeakMap,tr=new WeakMap,Jt=new WeakSet,th=function(t){return t>=0&&t<x.OP_PUSHDATA1?t:t<Math.pow(2,8)?x.OP_PUSHDATA1:t<Math.pow(2,16)?x.OP_PUSHDATA2:x.OP_PUSHDATA4},eh=function(t,e){var o;let n=t[e];if(n==="0")return{chunk:{op:0},advance:1};if(n==="-1")return{chunk:{op:x.OP_1NEGATE},advance:1};let r=n.startsWith("OP_")&&x[n]!==void 0,s=r?x[n]:0;if(s===x.OP_PUSHDATA1||s===x.OP_PUSHDATA2||s===x.OP_PUSHDATA4)return{chunk:{data:at(t[e+2],"hex"),op:s},advance:3};if(!r){let c=n;c.length%2!==0&&(c="0"+c);let u=at(c,"hex");if(ca(u,"hex")!==c)throw new Error("invalid hex string in script");return{chunk:{data:u,op:a(o=ce,Jt,th).call(o,u.length)},advance:1}}return{chunk:{op:s},advance:1}},Bt=new WeakSet,Eu=function(){var t;w(this,Wn)||(w(this,Ve)!=null?N(this,We,a(t=ce,Jt,oh).call(t,w(this,Ve))):N(this,We,[]),N(this,Wn,!0),a(this,Bt,Tu).call(this))},nh=function(t){let e=0;for(let n of t){if(e+=1,n.data==null)continue;let r=n.data.length;if(n.op===x.OP_RETURN){e+=r;break}n.op<x.OP_PUSHDATA1?e+=r:n.op===x.OP_PUSHDATA1?e+=1+r:n.op===x.OP_PUSHDATA2?e+=2+r:n.op===x.OP_PUSHDATA4&&(e+=4+r)}return e},ih=function(){var s,o;let t=this.chunks,e=a(s=ce,Jt,nh).call(s,t),n=new Uint8Array(e),r=0;for(let c of t)if(n[r++]=c.op,c.data!=null){if(c.op===x.OP_RETURN){n.set(c.data,r);break}r=a(o=ce,Jt,sh).call(o,n,r,c.op,c.data)}return n},qn=function(){N(this,Ve,void 0),N(this,Tn,void 0),N(this,tr,void 0)},Tu=function(){N(this,tr,w(this,We).map(t=>({ref:t,op:t.op,dataRef:t.data,data:t.data==null?void 0:Array.from(t.data)})))},rh=function(){if(w(this,tr)?.length!==w(this,We).length)return!1;for(let t=0;t<w(this,We).length;t++){let e=w(this,We)[t],n=w(this,tr)[t];if(n.ref!==e||n.op!==e.op||n.dataRef!==e.data||n.data?.length!==e.data?.length)return!1;if(n.data!=null&&e.data!=null){for(let r=0;r<n.data.length;r++)if(n.data[r]!==e.data[r])return!1}}return!0},ba=function(){return!w(this,Wn)&&w(this,Ve)!=null?w(this,Ve):(a(this,Bt,Eu).call(this),(w(this,Ve)==null||!a(this,Bt,rh).call(this))&&(N(this,Ve,a(this,Bt,ih).call(this)),N(this,Tn,void 0),a(this,Bt,Tu).call(this)),w(this,Ve))},sh=function(t,e,n,r){let s=r.length;if(n<x.OP_PUSHDATA1)return t.set(r,e),e+s;if(n===x.OP_PUSHDATA1)return t[e++]=s&255,t.set(r,e),e+s;if(n===x.OP_PUSHDATA2)return t[e++]=s&255,t[e++]=s>>8&255,t.set(r,e),e+s;if(n===x.OP_PUSHDATA4){let o=s>>>0;return t[e++]=o&255,t[e++]=o>>8&255,t[e++]=o>>16&255,t[e++]=o>>24&255,t.set(r,e),e+s}return e},ku=function(t,e,n,r){if(t>0&&t<x.OP_PUSHDATA1)return{len:t,newPos:n,hasLength:!0};if(t===x.OP_PUSHDATA1){let c=n<r;return{len:c?e[n++]??0:0,newPos:n,hasLength:c}}if(t===x.OP_PUSHDATA2){let c=n+1<r;return{len:(e[n]??0)|(e[n+1]??0)<<8,newPos:Math.min(n+2,r),hasLength:c}}let s=n+3<r;return{len:((e[n]??0)|(e[n+1]??0)<<8|(e[n+2]??0)<<16|(e[n+3]??0)<<24)>>>0,newPos:Math.min(n+4,r),hasLength:s}},oh=function(t){var o,c,u;let e=[],n=t.length,r=0,s=0;for(;r<n;){let f=t[r++]??0;if(f===x.OP_RETURN&&s===0){e.push({op:f,data:a(o=ce,Jt,Ou).call(o,t,r,n)});break}if(f===x.OP_IF||f===x.OP_NOTIF||f===x.OP_VERIF||f===x.OP_VERNOTIF?s++:f===x.OP_ENDIF&&s--,f>0&&f<=x.OP_PUSHDATA4){let{len:d,newPos:l,hasLength:p}=a(c=ce,Jt,ku).call(c,f,t,r,n);r=l;let b=Math.min(r+d,n),g=!p||b-r!==d;e.push({data:a(u=ce,Jt,Ou).call(u,t,r,b),op:f,invalidLength:g}),r=b}else e.push({op:f})}return e},ah=function(t,e){var o;let n=[],r=t.length,s=0;for(;s<r;){let c=s,u=t[s++]??0;if(u>0&&u<=x.OP_PUSHDATA4){let{len:f,newPos:d}=a(o=ce,Jt,ku).call(o,u,t,s,r);s=d;let l=Math.min(s+f,r);if(u!==e)for(let p=c;p<l;p++)n.push(t[p]??0);s=l}else u!==e&&n.push(u)}return n},Ou=function(t,e,n){let r=Math.max(n-e,0),s=Array.from({length:r},()=>0);for(let o=0;o<r;o++)s[o]=t[e+o]??0;return s},ch=function(t){let e=t.op,n="";if(t.data===void 0){let r=x[e];n=`${n} ${r}`}else n=`${n} ${nt(t.data)}`;return n},G(ce,Jt);var he=ce;var T1=new Uint8Array(0),Pu=Object.freeze(Array.from({length:32},()=>0));function k1(i,t,e){return e>0&&e<x.OP_PUSHDATA1?{length:e,nextPosition:t}:e===x.OP_PUSHDATA1?i.length-t<1?void 0:{length:i[t],nextPosition:t+1}:e===x.OP_PUSHDATA2?i.length-t<2?void 0:{length:i[t]|i[t+1]<<8,nextPosition:t+2}:e===x.OP_PUSHDATA4?i.length-t<4?void 0:{length:(i[t]|i[t+1]<<8|i[t+2]<<16|i[t+3]<<24)>>>0,nextPosition:t+4}:{length:0,nextPosition:t}}function O1(i){let t=i.toBinary(),e=[],n=0,r=0,s=0,o=c=>{for(let u=r;u<c;u++)e.push(t[u])};for(;n<t.length;){let c=n,u=t[n++],f=k1(t,n,u);if(f==null||(n=f.nextPosition,t.length-n<f.length))break;n+=f.length,u===x.OP_CODESEPARATOR&&(o(c),r=n,s++)}return o(n),{bytes:e,encodedLength:t.length-s}}function P1(i,t){if(i.allInputs!=null)return i.allInputs;let e=[...i.otherInputs];return e.splice(i.inputIndex,0,t),e}function dh(i,t,e,n){return n===t?e:i[n]}function R1(i,t,e){let n=new ae;for(let r=0;r<i.length;r++){let s=dh(i,t,e,r);if(s.sourceTXID==null){if(s.sourceTransaction==null)throw new Error("Missing sourceTransaction for input");n.write(s.sourceTransaction.hash())}else n.writeReverse(at(s.sourceTXID,"hex"));n.writeUInt32LE(s.sourceOutputIndex)}return Gt(n.toUint8Array())}function N1(i,t,e){let n=new ae;for(let r=0;r<i.length;r++){let s=dh(i,t,e,r);n.writeUInt32LE(s.sequence??4294967295)}return Gt(n.toUint8Array())}function uh(i,t){i.writeUInt64LE(t.satoshis??0);let e=t.lockingScript?.toUint8Array()??T1;i.writeVarIntNum(e.length),i.write(e)}function fh(i,t){let e=new ae;if(t==null)for(let n of i)uh(e,n);else{let n=i[t];if(n==null)throw new Error(`Output at index ${t} does not exist`);uh(e,n)}return Gt(e.toUint8Array())}function B1(i,t,e){if((i.scope&yt.SIGHASH_ANYONECANPAY)!==0)return[...Pu];if(i.cache?.hashPrevouts!=null)return i.cache.hashPrevouts;let n=R1(t,i.inputIndex,e);return i.cache!=null&&(i.cache.hashPrevouts=n),n}function _1(i,t,e){let n=i.scope&31;if((i.scope&yt.SIGHASH_ANYONECANPAY)!==0||n===yt.SIGHASH_SINGLE||n===yt.SIGHASH_NONE)return[...Pu];if(i.cache?.hashSequence!=null)return i.cache.hashSequence;let r=N1(t,i.inputIndex,e);return i.cache!=null&&(i.cache.hashSequence=r),r}function C1(i){var r;let t=i.scope&31;if(t!==yt.SIGHASH_SINGLE&&t!==yt.SIGHASH_NONE){if(i.cache?.hashOutputsAll!=null)return i.cache.hashOutputsAll;let s=fh(i.outputs);return i.cache!=null&&(i.cache.hashOutputsAll=s),s}if(t!==yt.SIGHASH_SINGLE||i.inputIndex>=i.outputs.length)return[...Pu];let e=i.cache?.hashOutputsSingle?.get(i.inputIndex);if(e!=null)return e;let n=fh(i.outputs,i.inputIndex);return i.cache!=null&&((r=i.cache).hashOutputsSingle??(r.hashOutputsSingle=new Map),i.cache.hashOutputsSingle.set(i.inputIndex,n)),n}var Kt=class Kt extends le{constructor(e,n,r){super(e,n);m(this,"scope");this.scope=r}static formatOTDA(e){let n=(e.scope&Kt.SIGHASH_ANYONECANPAY)===Kt.SIGHASH_ANYONECANPAY,r=(e.scope&31)===Kt.SIGHASH_SINGLE,s=(e.scope&31)===Kt.SIGHASH_NONE,o=(e.scope&31)===Kt.SIGHASH_ALL||!r&&!s,c=O1(e.subscript),u={sourceTXID:e.sourceTXID,sourceOutputIndex:e.sourceOutputIndex,sequence:e.inputSequence,script:c.bytes,scriptLength:c.encodedLength},f=new ae;function d(g){f.writeVarIntNum(g.length);for(let y of g)f.writeReverse(at(y.sourceTXID,"hex")),f.writeUInt32LE(y.sourceOutputIndex),f.writeVarIntNum(y.scriptLength??y.script.length),f.write(y.script),f.writeUInt32LE(y.sequence)}function l(g){f.writeVarIntNum(g.length);for(let y of g)f.writeUInt64LE(y.satoshis),f.writeVarIntNum(y.script.length),f.write(y.script)}f.writeInt32LE(e.transactionVersion);let p=new he().toBinary();if(n)n&&d([u]);else{let g=e.allInputs==null?e.otherInputs.map(y=>({sourceTXID:y.sourceTXID??y.sourceTransaction?.id("hex")??"",sourceOutputIndex:y.sourceOutputIndex,sequence:r||s?0:y.sequence??4294967295,script:p})):e.allInputs.map((y,v)=>v===e.inputIndex?u:{sourceTXID:y.sourceTXID??y.sourceTransaction?.id("hex")??"",sourceOutputIndex:y.sourceOutputIndex,sequence:r||s?0:y.sequence??4294967295,script:p});e.allInputs==null&&g.splice(e.inputIndex,0,u),d(g)}if(o){let g=e.outputs.map(y=>({satoshis:y.satoshis??0,script:y.lockingScript.toBinary()}));l(g)}else if(r){let g=[];for(let v=0;v<e.inputIndex;v++)g.push({satoshis:-1,script:p});let y=e.outputs[e.inputIndex];y!==void 0&&g.push({satoshis:y.satoshis??0,script:y.lockingScript.toBinary()}),l(g)}else s&&l([]);return f.writeUInt32LE(e.lockTime),f.writeUInt32LE(e.scope>>>0),f.toUint8Array()}static formatBip143(e){let n={sourceTXID:e.sourceTXID,sourceOutputIndex:e.sourceOutputIndex,sequence:e.inputSequence},r=P1(e,n),s=B1(e,r,n),o=_1(e,r,n),c=C1(e),u=new ae;u.writeInt32LE(e.transactionVersion),u.write(s),u.write(o),u.writeReverse(at(e.sourceTXID,"hex")),u.writeUInt32LE(e.sourceOutputIndex);let f=e.subscript.toUint8Array();u.writeVarIntNum(f.length),u.write(f),u.writeUInt64LE(e.sourceSatoshis);let d=n.sequence??4294967295;return u.writeUInt32LE(d),u.write(c),u.writeUInt32LE(e.lockTime),u.writeUInt32LE(e.scope>>>0),u.toUint8Array()}static format(e){return Array.from(this.formatBytes(e))}static formatBytes(e){let n=(e.scope&Kt.SIGHASH_FORKID)!==0,r=e.ignoreChronicle!==!0&&(e.scope&Kt.SIGHASH_CHRONICLE)!==0;return n&&e.sighashForkIdEnabled!==!1&&!r?Kt.formatBip143(e):e.sighashForkIdEnabled===!1||!n||r?Kt.formatOTDA(e):new Uint8Array(0)}static usesOtdaSingleBug(e){let n=(e.scope&Kt.SIGHASH_FORKID)!==0,r=e.ignoreChronicle!==!0&&(e.scope&Kt.SIGHASH_CHRONICLE)!==0;return(e.sighashForkIdEnabled===!1||!n||r)&&(e.scope&31)===Kt.SIGHASH_SINGLE&&e.inputIndex>=e.outputs.length}static fromChecksigFormat(e){if(e.length===0){let o=new k(1),c=new k(1),u=1;return new Kt(o,c,u)}let n=e.at(-1),r=e.slice(0,-1),s=le.fromDER(r);return new Kt(s.r,s.s,n)}hasLowS(){return!(this.s.ltn(1)||this.s.gt(new k("7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0","hex")))}toChecksigFormat(){return[...this.toDER(),this.scope]}};m(Kt,"SIGHASH_ALL",1),m(Kt,"SIGHASH_NONE",2),m(Kt,"SIGHASH_SINGLE",3),m(Kt,"SIGHASH_CHRONICLE",32),m(Kt,"SIGHASH_FORKID",64),m(Kt,"SIGHASH_ANYONECANPAY",128);var yt=Kt;function Ru(i,t,e){if(!(t instanceof Uint8Array))throw new TypeError(`${i} returned a non-byte result`);if(e!==void 0&&t.length!==e)throw new Error(`${i} returned ${t.length} bytes; expected ${e}`);return t}function L1(){return globalThis}function Nu(i){let t=L1().__bsvSdkAsyncCryptoBackendV1;if(t!==void 0){if(!t.isReady()){t.preload().catch(()=>{});return}return t.supportsCrypto(i)?t:void 0}}var Ce=class extends he{isLockingScript(){return!0}isUnlockingScript(){return!1}};var Le=class extends he{isLockingScript(){return!1}isUnlockingScript(){return!0}};function lh(i){return i==null?"null/undef":i.length===void 0?"INVALID_STACK_ITEM":nt(i)}var eo=class extends Error{constructor(e){let n=e.stackState.map(lh).join(", "),r=e.altStackState.map(lh).join(", "),s=`Context: ${e.context}, PC: ${e.programCounter}`,o=`Stack: [${n}] (len: ${e.stackState.length}, mem: ${e.stackMem})`,c=`AltStack: [${r}] (len: ${e.altStackState.length}, mem: ${e.altStackMem})`,u=`IfStack: [${e.ifStackState.join(", ")}]`,f=`Script evaluation error: ${e.message}
4
+ TXID: ${e.txid}, OutputIdx: ${e.outputIndex}
5
+ ${s}
6
+ ${o}
7
+ ${c}
8
+ ${u}`;super(f);m(this,"txid");m(this,"outputIndex");m(this,"context");m(this,"programCounter");m(this,"stackState");m(this,"altStackState");m(this,"ifStackState");m(this,"stackMem");m(this,"altStackMem");this.name=this.constructor.name,this.txid=e.txid,this.outputIndex=e.outputIndex,this.context=e.context,this.programCounter=e.programCounter,this.stackState=e.stackState.map(d=>d.slice()),this.altStackState=e.altStackState.map(d=>d.slice()),this.ifStackState=e.ifStackState.slice(),this.stackMem=e.stackMem,this.altStackMem=e.altStackMem}};var Vn=class extends Error{constructor(e,n,r){let o={stack:"Stack memory usage","alt-stack":"Alt stack memory usage","element-size":"Script element allocation"}[e];super(`${o} has exceeded ${n} bytes`);m(this,"resource");m(this,"limit");m(this,"attempted");this.resource=e,this.limit=n,this.attempted=r,this.name="ScriptResourceLimitError"}};var U1;function ma(){return U1}var M1=520,hh=1e4,ph=500,D1=0x7fffffffn,H1=75e4,$1=32e6,gh=1e3,F1=Math.pow(2,31)-1,q1=BigInt(F1),W1=20,bh=2147483648,Bu=4194304,V1=65535,mh=5e8,K1=Object.freeze(new k(-1).toScriptNum()),yh=Object.freeze(Array.from({length:17},(i,t)=>Object.freeze(new k(t).toScriptNum())));function wh(i,t){if(i.length!==t.length)return!1;for(let e=0;e<i.length;e++)if(i[e]!==t[e])return!1;return!0}function mi(i){return new k(i?1:0)}function z1(i,t){return mi(i&&t)}function X1(i,t){return mi(i||t)}function j1(i,t){return i.cmp(t)<0?i:t}function G1(i,t){return i.cmp(t)>0?i:t}function xh(i){if(typeof i.consensus!="boolean")throw new TypeError("Spend verification consensus must be boolean");for(let[e,n]of[["blockHeight",i.blockHeight],["utxoHeight",i.utxoHeight]])if(n!==void 0&&(!Number.isSafeInteger(n)||n<0||n>4294967295))throw new RangeError(`Spend verification ${e} must be an unsigned 32-bit integer`);let t=Array.isArray(i.verifyFlags)?Array.from(i.verifyFlags):i.verifyFlags;if(t!==void 0&&typeof t!="string"&&(!Array.isArray(t)||t.some(e=>typeof e!="string")))throw new TypeError("Spend verification flags must be a string or an array of strings");return{consensus:i.consensus,blockHeight:i.blockHeight,utxoHeight:i.utxoHeight,verifyFlags:t}}function Ih(i,t=Number.MAX_SAFE_INTEGER){return!(i.length>t||i.length>0&&(i.at(-1)&127)===0&&(i.length<=1||(i.at(-2)&128)===0))}function Y1(i){if(i.length<9||i.length>73||i[0]!==48||i[1]!==i.length-3)return!1;let t=i[2],e=i[3];if(t!==2||e===0||5+e>=i.length)return!1;let n=4+e,r=i[n],s=i[n+1];if(r!==2||s===0||(i[4]&128)!==0||e>1&&i[4]===0&&(i[5]&128)===0)return!1;let o=n+2;return!((i[o]&128)!==0||s>1&&i[o]===0&&(i[o+1]&128)===0||e+s+7!==i.length)}function Z1(i){let t=i.data,e=i.op;return Array.isArray(t)?t.length===0?e===x.OP_0:t.length===1&&t[0]>=1&&t[0]<=16?e===x.OP_1+(t[0]-1):t.length===1&&t[0]===129?e===x.OP_1NEGATE:t.length<=75?e===t.length:t.length<=255?e===x.OP_PUSHDATA1:t.length<=65535?e===x.OP_PUSHDATA2:!0:!0}var zn,ao,h,bi,Ut,Et,ne,no,Kn,io,Sh,vh,Ah,Eh,_u,Cu,ya,Dr,ro,Th,lt,Oe,Q,Wt,vt,kh,Oh,wa,Ph,Rh,ue,so,Lu,Nh,Bh,_h,Uu,Mu,Du,Hu,Ch,$u,Fu,Lh,Uh,Mh,Dh,Hh,$h,Fh,qh,Wh,Vh,Kh,qu,xa,zh,Wu,Hr,K,Vu=class Vu{constructor(t){G(this,h);m(this,"sourceTXID");m(this,"sourceOutputIndex");m(this,"sourceSatoshis");m(this,"lockingScript");m(this,"transactionVersion");m(this,"otherInputs");m(this,"allInputs");m(this,"outputs");m(this,"inputIndex");m(this,"unlockingScript");m(this,"inputSequence");m(this,"lockTime");m(this,"context");m(this,"programCounter");m(this,"lastCodeSeparator");m(this,"stack");m(this,"altStack");m(this,"ifStack");m(this,"elseStack");m(this,"memoryLimit");m(this,"hasExplicitMemoryLimit");m(this,"stackMem");m(this,"altStackMem");m(this,"isRelaxedOverride");m(this,"verifyFlags");m(this,"executedOpCount");m(this,"returningFromConditional");G(this,zn);G(this,ao);if(this.sourceTXID=t.sourceTXID,this.sourceOutputIndex=t.sourceOutputIndex,this.sourceSatoshis=t.sourceSatoshis,this.lockingScript=t.lockingScript,this.transactionVersion=t.transactionVersion,this.otherInputs=t.otherInputs,this.allInputs=t.allInputs,this.outputs=t.outputs,this.inputIndex=t.inputIndex,this.unlockingScript=t.unlockingScript,this.inputSequence=t.inputSequence,this.lockTime=t.lockTime,this.hasExplicitMemoryLimit=t.memoryLimit!==void 0,this.memoryLimit=t.memoryLimit??Number.POSITIVE_INFINITY,this.isRelaxedOverride=t.isRelaxed===!0,t.verifyFlags===void 0)this.verifyFlags=void 0;else{let e=Array.isArray(t.verifyFlags)?t.verifyFlags:t.verifyFlags.split(",");this.verifyFlags=new Set(e.map(n=>n.trim()).filter(n=>n.length>0))}this.stack=[],this.altStack=[],this.ifStack=[],this.elseStack=[],this.stackMem=0,this.altStackMem=0,this.executedOpCount=0,this.returningFromConditional=!1,N(this,ao,t.sigHashCache==null),N(this,zn,t.sigHashCache??{hashOutputsSingle:new Map}),this.reset()}reset(){w(this,ao)&&(delete w(this,zn).hashPrevouts,delete w(this,zn).hashSequence,delete w(this,zn).hashOutputsAll,w(this,zn).hashOutputsSingle?.clear()),this.context="UnlockingScript",this.programCounter=0,this.lastCodeSeparator=null,this.stack=[],this.altStack=[],this.ifStack=[],this.elseStack=[],this.stackMem=0,this.altStackMem=0,this.executedOpCount=0,this.returningFromConditional=!1}step(){a(this,h,Lh).call(this);let t=a(this,h,Uh).call(this);if(this.programCounter>=t.chunks.length)return!1;let e=t.chunks[this.programCounter],n=a(this,h,Mh).call(this,e),r=!this.returningFromConditional&&!this.ifStack.includes(!1);if(a(this,h,Dh).call(this,n),r&&n>=0&&n<=x.OP_PUSHDATA4)a(this,h,Hh).call(this,e);else if(r||n>=x.OP_IF&&n<=x.OP_ENDIF){let s,o,c,u,f,d,l,p,b,g,y,v,C,E,A,T,B,_,$,R,I,D,U,q,it,ot;if(a(this,h,$h).call(this,n,r),a(this,h,Fh).call(this,n,r))return!0;switch(a(this,h,qh).call(this,n,r),n){case x.OP_VER:{let F=this.transactionVersion;a(this,h,lt).call(this,[F&255,F>>>8&255,F>>>16&255,F>>>24&255]);break}case x.OP_SUBSTR:{(()=>{this.stack.length<3&&a(this,h,K).call(this,"OP_SUBSTR requires at least three items to be on the stack.");let F=a(this,h,so).call(this,a(this,h,Q).call(this)),z=a(this,h,so).call(this,a(this,h,Q).call(this));s=a(this,h,Q).call(this);let tt=s.length;(z<0||z>=tt||F<0||F>tt-z)&&a(this,h,K).call(this,`OP_SUBSTR offset (${z}) must be in range [0, ${tt}) and length (${F}) must be in range [0, ${tt-z}]`),a(this,h,lt).call(this,s.slice(z,z+F))})();break}case x.OP_LEFT:{(()=>{this.stack.length<2&&a(this,h,K).call(this,"OP_LEFT requires at least two items to be on the stack.");let F=a(this,h,so).call(this,a(this,h,Q).call(this));s=a(this,h,Q).call(this);let z=s.length;(F<0||F>z)&&a(this,h,K).call(this,`OP_LEFT length (${F}) must be in range [0, ${z}]`),a(this,h,lt).call(this,s.slice(0,F))})();break}case x.OP_RIGHT:{(()=>{this.stack.length<2&&a(this,h,K).call(this,"OP_RIGHT requires at least two items to be on the stack.");let F=a(this,h,so).call(this,a(this,h,Q).call(this));s=a(this,h,Q).call(this);let z=s.length;(F<0||F>z)&&a(this,h,K).call(this,`OP_RIGHT length (${F}) must be in range [0, ${z}]`),a(this,h,lt).call(this,s.slice(z-F))})();break}case x.OP_LSHIFTNUM:{(()=>{this.stack.length<2&&a(this,h,K).call(this,"OP_LSHIFTNUM requires at least two items to be on the stack.");let F=a(this,h,ue).call(this,a(this,h,Q).call(this)).toBigInt();F<0&&a(this,h,K).call(this,"OP_LSHIFTNUM bits to shift must not be negative."),F>0x7fffffffn&&a(this,h,K).call(this,"OP_LSHIFTNUM shift count exceeds INT_MAX.");let z=a(this,h,ue).call(this,a(this,h,Q).call(this)).toBigInt(),tt=a(this,h,ya).call(this);tt!==void 0&&z!==0n&&F>=BigInt(tt)*8n&&a(this,h,K).call(this,"script number overflow");let It=new k(z<<F).toScriptNum();tt!==void 0&&It.length>tt&&a(this,h,K).call(this,"script number overflow"),a(this,h,lt).call(this,It)})();break}case x.OP_RSHIFTNUM:{(()=>{this.stack.length<2&&a(this,h,K).call(this,"OP_RSHIFTNUM requires at least two items to be on the stack.");let F=a(this,h,ue).call(this,a(this,h,Q).call(this)).toBigInt();F<0&&a(this,h,K).call(this,"OP_RSHIFTNUM bits to shift must not be negative."),F>0x7fffffffn&&a(this,h,K).call(this,"OP_RSHIFTNUM shift count exceeds INT_MAX.");let z=a(this,h,ue).call(this,a(this,h,Q).call(this)).toBigInt(),tt;z<0?tt=new k(-(-z>>F)):tt=new k(z>>F),a(this,h,lt).call(this,tt.toScriptNum())})();break}case x.OP_1NEGATE:a(this,h,Oe).call(this,K1);break;case x.OP_0:a(this,h,Oe).call(this,yh[0]);break;case x.OP_1:case x.OP_2:case x.OP_3:case x.OP_4:case x.OP_5:case x.OP_6:case x.OP_7:case x.OP_8:case x.OP_9:case x.OP_10:case x.OP_11:case x.OP_12:case x.OP_13:case x.OP_14:case x.OP_15:case x.OP_16:v=n-(x.OP_1-1),a(this,h,Oe).call(this,yh[v]);break;case x.OP_NOP:case x.OP_NOP1:break;case x.OP_CHECKLOCKTIMEVERIFY:a(this,h,Wh).call(this);break;case x.OP_CHECKSEQUENCEVERIFY:a(this,h,Vh).call(this);break;case x.OP_NOP9:case x.OP_NOP10:break;case x.OP_VERIF:case x.OP_VERNOTIF:(()=>{if(E=!1,r){if(this.stack.length<1&&a(this,h,K).call(this,"OP_VERIF and OP_VERNOTIF require at least one item on the stack when they are used!"),o=a(this,h,Q).call(this),o.length===4){let F=this.transactionVersion;c=[F&255,F>>>8&255,F>>>16&255,F>>>24&255],E=wh(o,c)}n===x.OP_VERNOTIF&&(E=!E)}this.ifStack.push(E),this.elseStack.push(!1)})();break;case x.OP_IF:case x.OP_NOTIF:E=!1,r&&(this.stack.length<1&&a(this,h,K).call(this,"OP_IF and OP_NOTIF require at least one item on the stack when they are used!"),s=a(this,h,Q).call(this),a(this,h,Et).call(this,"MINIMALIF")&&a(this,h,Kn).call(this)&&s.length>0&&!(s.length===1&&s[0]===1)&&a(this,h,K).call(this,"OP_IF and OP_NOTIF require minimal truth values."),E=a(this,h,Hr).call(this,s),n===x.OP_NOTIF&&(E=!E)),this.ifStack.push(E),this.elseStack.push(!1);break;case x.OP_ELSE:this.ifStack.length===0&&a(this,h,K).call(this,"OP_ELSE requires a preceeding OP_IF."),a(this,h,Ut).call(this)&&a(this,h,ne).call(this)&&this.elseStack.at(-1)===!0&&a(this,h,K).call(this,"OP_ELSE may only be used once for each OP_IF or OP_NOTIF after Genesis."),this.elseStack[this.elseStack.length-1]=!0,this.ifStack[this.ifStack.length-1]=this.ifStack.at(-1)!==!0;break;case x.OP_ENDIF:this.ifStack.length===0&&a(this,h,K).call(this,"OP_ENDIF requires a preceeding OP_IF."),this.ifStack.pop(),this.elseStack.pop();break;case x.OP_VERIFY:this.stack.length<1&&a(this,h,K).call(this,"OP_VERIFY requires at least one item to be on the stack."),o=a(this,h,Wt).call(this),E=a(this,h,Hr).call(this,o),E||a(this,h,K).call(this,"OP_VERIFY requires the top stack value to be truthy."),a(this,h,Q).call(this);break;case x.OP_RETURN:a(this,h,Ut).call(this)&&!a(this,h,ne).call(this)&&a(this,h,K).call(this,"OP_RETURN is invalid before Genesis."),this.ifStack.length>0?this.returningFromConditional=!0:(this.context==="UnlockingScript"?this.programCounter=this.unlockingScript.chunks.length:this.programCounter=this.lockingScript.chunks.length,this.programCounter--);break;case x.OP_TOALTSTACK:a(this,h,vt).call(this,1,"OP_TOALTSTACK requires at oeast one item to be on the stack."),a(this,h,Ph).call(this,a(this,h,Q).call(this));break;case x.OP_FROMALTSTACK:a(this,h,kh).call(this,1,"OP_FROMALTSTACK requires at least one item to be on the stack."),a(this,h,lt).call(this,a(this,h,Rh).call(this));break;case x.OP_2DROP:a(this,h,vt).call(this,2,"OP_2DROP requires at least two items to be on the stack."),a(this,h,Q).call(this),a(this,h,Q).call(this);break;case x.OP_2DUP:a(this,h,vt).call(this,2,"OP_2DUP requires at least two items to be on the stack."),o=a(this,h,Wt).call(this,-2),c=a(this,h,Wt).call(this,-1),a(this,h,Oe).call(this,o),a(this,h,Oe).call(this,c);break;case x.OP_3DUP:a(this,h,vt).call(this,3,"OP_3DUP requires at least three items to be on the stack."),o=a(this,h,Wt).call(this,-3),c=a(this,h,Wt).call(this,-2),u=a(this,h,Wt).call(this,-1),a(this,h,Oe).call(this,o),a(this,h,Oe).call(this,c),a(this,h,Oe).call(this,u);break;case x.OP_2OVER:a(this,h,vt).call(this,4,"OP_2OVER requires at least four items to be on the stack."),o=a(this,h,Wt).call(this,-4),c=a(this,h,Wt).call(this,-3),a(this,h,Oe).call(this,o),a(this,h,Oe).call(this,c);break;case x.OP_2ROT:{a(this,h,vt).call(this,6,"OP_2ROT requires at least six items to be on the stack.");let F=a(this,h,Q).call(this),z=a(this,h,Q).call(this),tt=a(this,h,Q).call(this),It=a(this,h,Q).call(this),se=a(this,h,Q).call(this),Nt=a(this,h,Q).call(this);a(this,h,lt).call(this,It),a(this,h,lt).call(this,tt),a(this,h,lt).call(this,z),a(this,h,lt).call(this,F),a(this,h,lt).call(this,Nt),a(this,h,lt).call(this,se);break}case x.OP_2SWAP:{a(this,h,vt).call(this,4,"OP_2SWAP requires at least four items to be on the stack.");let F=a(this,h,Q).call(this),z=a(this,h,Q).call(this),tt=a(this,h,Q).call(this),It=a(this,h,Q).call(this);a(this,h,lt).call(this,z),a(this,h,lt).call(this,F),a(this,h,lt).call(this,It),a(this,h,lt).call(this,tt);break}case x.OP_IFDUP:a(this,h,vt).call(this,1,"OP_IFDUP requires at least one item to be on the stack."),o=a(this,h,Wt).call(this),a(this,h,Hr).call(this,o)&&a(this,h,Oe).call(this,o);break;case x.OP_DEPTH:a(this,h,lt).call(this,new k(this.stack.length).toScriptNum());break;case x.OP_DROP:a(this,h,vt).call(this,1,"OP_DROP requires at least one item to be on the stack."),a(this,h,Q).call(this);break;case x.OP_DUP:a(this,h,vt).call(this,1,"OP_DUP requires at least one item to be on the stack."),a(this,h,Oe).call(this,a(this,h,Wt).call(this));break;case x.OP_NIP:a(this,h,vt).call(this,2,"OP_NIP requires at least two items to be on the stack."),c=a(this,h,Q).call(this),a(this,h,Q).call(this),a(this,h,lt).call(this,c);break;case x.OP_OVER:a(this,h,vt).call(this,2,"OP_OVER requires at least two items to be on the stack."),a(this,h,Oe).call(this,a(this,h,Wt).call(this,-2));break;case x.OP_PICK:case x.OP_ROLL:{(()=>{a(this,h,vt).call(this,2,`${x[n]} requires at least two items to be on the stack.`),p=a(this,h,ue).call(this,a(this,h,Q).call(this));let F=p.toBigInt();(F<0n||F>=BigInt(this.stack.length))&&a(this,h,K).call(this,`${x[n]} requires the top stack element to be 0 or a positive number less than the current size of the stack.`);let z=Number(F),tt=this.stack[this.stack.length-1-z];n===x.OP_ROLL?(this.stack.splice(this.stack.length-1-z,1),this.stackMem-=tt.length,a(this,h,lt).call(this,tt)):a(this,h,Oe).call(this,tt)})();break}case x.OP_ROT:a(this,h,vt).call(this,3,"OP_ROT requires at least three items to be on the stack."),l=a(this,h,Q).call(this),d=a(this,h,Q).call(this),f=a(this,h,Q).call(this),a(this,h,lt).call(this,d),a(this,h,lt).call(this,l),a(this,h,lt).call(this,f);break;case x.OP_SWAP:a(this,h,vt).call(this,2,"OP_SWAP requires at least two items to be on the stack."),d=a(this,h,Q).call(this),f=a(this,h,Q).call(this),a(this,h,lt).call(this,d),a(this,h,lt).call(this,f);break;case x.OP_TUCK:a(this,h,vt).call(this,2,"OP_TUCK requires at least two items to be on the stack."),o=a(this,h,Wt).call(this,-1),a(this,h,ro).call(this,o.length),this.stack.splice(-2,0,o.slice()),this.stackMem+=o.length;break;case x.OP_SIZE:a(this,h,vt).call(this,1,"OP_SIZE requires at least one item to be on the stack."),a(this,h,lt).call(this,new k(a(this,h,Wt).call(this).length).toScriptNum());break;case x.OP_AND:case x.OP_OR:case x.OP_XOR:{(()=>{a(this,h,vt).call(this,2,`${x[n]} requires at least two items on the stack.`),c=a(this,h,Q).call(this),o=a(this,h,Q).call(this),o.length!==c.length&&a(this,h,K).call(this,`${x[n]} requires the top two stack items to be the same size.`);let F=Array.from({length:o.length},()=>0);for(let z=0;z<o.length;z++)n===x.OP_AND?F[z]=o[z]&c[z]:n===x.OP_OR?F[z]=o[z]|c[z]:F[z]=o[z]^c[z];a(this,h,lt).call(this,F)})();break}case x.OP_INVERT:{(()=>{a(this,h,vt).call(this,1,"OP_INVERT requires at least one item to be on the stack."),s=a(this,h,Q).call(this);let F=Array.from({length:s.length},()=>0);for(let z=0;z<s.length;z++)F[z]=~s[z]&255;a(this,h,lt).call(this,F)})();break}case x.OP_LSHIFT:case x.OP_RSHIFT:{(()=>{a(this,h,vt).call(this,2,`${x[n]} requires at least two items to be on the stack.`),g=a(this,h,ue).call(this,a(this,h,Q).call(this)),o=a(this,h,Q).call(this);let F=g.toBigInt();if(F<0n&&a(this,h,K).call(this,`${x[n]} requires the top item on the stack not to be negative.`),o.length===0){a(this,h,lt).call(this,[]);return}if(F>=BigInt(o.length)*8n){a(this,h,lt).call(this,Array.from({length:o.length},()=>0));return}b=new k(o);let z;if(n===x.OP_LSHIFT){z=b.ushln(F);let It=new k(1).ushln(o.length*8).isubn(1);z=z.iand(It)}else z=b.ushrn(F);let tt=z.toArray("be",o.length);a(this,h,lt).call(this,tt)})();break}case x.OP_EQUAL:case x.OP_EQUALVERIFY:a(this,h,vt).call(this,2,`${x[n]} requires at least two items to be on the stack.`),c=a(this,h,Q).call(this),o=a(this,h,Q).call(this),E=wh(o,c),a(this,h,lt).call(this,E?[1]:[]),n===x.OP_EQUALVERIFY&&(E||a(this,h,K).call(this,"OP_EQUALVERIFY requires the top two stack items to be equal."),a(this,h,Q).call(this));break;case x.OP_1ADD:case x.OP_1SUB:case x.OP_2MUL:case x.OP_2DIV:case x.OP_NEGATE:case x.OP_ABS:case x.OP_NOT:case x.OP_0NOTEQUAL:(()=>{switch(a(this,h,vt).call(this,1,`${x[n]} requires at least one item to be on the stack.`),p=a(this,h,ue).call(this,a(this,h,Q).call(this)),n){case x.OP_1ADD:p=p.add(new k(1));break;case x.OP_1SUB:p=p.sub(new k(1));break;case x.OP_2MUL:p=p.mul(new k(2));break;case x.OP_2DIV:p=p.div(new k(2));break;case x.OP_NEGATE:p=p.neg();break;case x.OP_ABS:p.isNeg()&&(p=p.neg());break;case x.OP_NOT:p=new k(p.cmpn(0)===0?1:0);break;case x.OP_0NOTEQUAL:p=new k(p.cmpn(0)===0?0:1);break}a(this,h,lt).call(this,p.toScriptNum())})();break;case x.OP_ADD:case x.OP_SUB:case x.OP_MUL:case x.OP_DIV:case x.OP_MOD:case x.OP_BOOLAND:case x.OP_BOOLOR:case x.OP_NUMEQUAL:case x.OP_NUMEQUALVERIFY:case x.OP_NUMNOTEQUAL:case x.OP_LESSTHAN:case x.OP_GREATERTHAN:case x.OP_LESSTHANOREQUAL:case x.OP_GREATERTHANOREQUAL:case x.OP_MIN:case x.OP_MAX:{(()=>{a(this,h,vt).call(this,2,`${x[n]} requires at least two items to be on the stack.`),c=a(this,h,Q).call(this),o=a(this,h,Q).call(this),g=a(this,h,ue).call(this,c),b=a(this,h,ue).call(this,o);let F=(()=>{switch(n){case x.OP_MUL:return b.byteLength()+g.byteLength();case x.OP_ADD:case x.OP_SUB:return Math.max(b.byteLength(),g.byteLength())+1;default:return Math.max(b.byteLength(),g.byteLength())}})();a(this,h,ro).call(this,F);let z=(()=>{switch(n){case x.OP_ADD:return b.add(g);case x.OP_SUB:return b.sub(g);case x.OP_MUL:return b.mul(g);case x.OP_DIV:return g.cmpn(0)===0&&a(this,h,K).call(this,"OP_DIV cannot divide by zero!"),b.div(g);case x.OP_MOD:return g.cmpn(0)===0&&a(this,h,K).call(this,"OP_MOD cannot divide by zero!"),b.mod(g);case x.OP_BOOLAND:return z1(b.cmpn(0)!==0,g.cmpn(0)!==0);case x.OP_BOOLOR:return X1(b.cmpn(0)!==0,g.cmpn(0)!==0);case x.OP_NUMEQUAL:case x.OP_NUMEQUALVERIFY:return mi(b.cmp(g)===0);case x.OP_NUMNOTEQUAL:return mi(b.cmp(g)!==0);case x.OP_LESSTHAN:return mi(b.cmp(g)<0);case x.OP_GREATERTHAN:return mi(b.cmp(g)>0);case x.OP_LESSTHANOREQUAL:return mi(b.cmp(g)<=0);case x.OP_GREATERTHANOREQUAL:return mi(b.cmp(g)>=0);case x.OP_MIN:return j1(b,g);case x.OP_MAX:return G1(b,g);default:return new k(0)}})();a(this,h,lt).call(this,z.toScriptNum()),n===x.OP_NUMEQUALVERIFY&&(a(this,h,Hr).call(this,a(this,h,Wt).call(this))||a(this,h,K).call(this,"OP_NUMEQUALVERIFY requires the top stack item to be truthy."),a(this,h,Q).call(this))})();break}case x.OP_WITHIN:a(this,h,vt).call(this,3,"OP_WITHIN requires at least three items to be on the stack."),y=a(this,h,ue).call(this,a(this,h,Q).call(this)),g=a(this,h,ue).call(this,a(this,h,Q).call(this)),b=a(this,h,ue).call(this,a(this,h,Q).call(this)),E=b.cmp(g)>=0&&b.cmp(y)<0,a(this,h,lt).call(this,E?[1]:[]);break;case x.OP_RIPEMD160:case x.OP_SHA1:case x.OP_SHA256:case x.OP_HASH160:case x.OP_HASH256:{(()=>{a(this,h,vt).call(this,1,`${x[n]} requires at least one item to be on the stack.`),s=a(this,h,Q).call(this);let F=[];n===x.OP_RIPEMD160?F=xl(s):n===x.OP_SHA1?F=Il(s):n===x.OP_SHA256?F=Be(s):n===x.OP_HASH160?F=ra(s):n===x.OP_HASH256&&(F=Gt(s)),a(this,h,lt).call(this,F)})();break}case x.OP_CODESEPARATOR:this.lastCodeSeparator=this.programCounter;break;case x.OP_CHECKSIG:case x.OP_CHECKSIGVERIFY:{a(this,h,vt).call(this,2,`${x[n]} requires at least two items to be on the stack.`),_=a(this,h,Q).call(this),B=a(this,h,Q).call(this),(!a(this,h,Uu).call(this,B)||!a(this,h,$u).call(this,_))&&a(this,h,K).call(this,`${x[n]} requires correct encoding for the public key and signature.`),A=(()=>{if(B.length===0)return!1;try{$=a(this,h,Mu).call(this,B);let z=(this.context==="UnlockingScript"?this.unlockingScript:this.lockingScript).chunks.slice(this.lastCodeSeparator===null?0:this.lastCodeSeparator+1);return this.context==="UnlockingScript"&&(z=z.concat(this.lockingScript.chunks)),T=new he(z),(($.scope&yt.SIGHASH_FORKID)===0||a(this,h,Ut).call(this)&&!a(this,h,Et).call(this,"SIGHASH_FORKID"))&&T.findAndDelete(new he().writeBin(B)),R=Vt.fromDER(_),a(this,h,Fu).call(this,$,R,T)}catch{return!1}})(),!A&&a(this,h,Et).call(this,"NULLFAIL")&&a(this,h,Kn).call(this)&&B.length>0&&a(this,h,K).call(this,`${x[n]} requires failing signatures to be empty.`),a(this,h,lt).call(this,A?[1]:[]),n===x.OP_CHECKSIGVERIFY&&(A||a(this,h,K).call(this,"OP_CHECKSIGVERIFY requires that a valid signature is provided."),a(this,h,Q).call(this));break}case x.OP_CHECKMULTISIG:case x.OP_CHECKMULTISIGVERIFY:{(()=>{I=1,this.stack.length<I&&a(this,h,K).call(this,`${x[n]} requires at least 1 item for nKeys.`);let z=a(this,h,ue).call(this,a(this,h,Wt).call(this,-I)).toBigInt(),tt=a(this,h,Ut).call(this)&&!a(this,h,ne).call(this)?BigInt(W1):q1;(z<0n||z>tt)&&a(this,h,K).call(this,`${x[n]} requires a key count between 0 and ${tt.toString()}.`),q=Number(z);let It=q;D=++I,I+=q,this.stack.length<I&&a(this,h,K).call(this,`${x[n]} stack too small for nKeys and keys. Need ${I}, have ${this.stack.length}.`);let Nt=a(this,h,ue).call(this,a(this,h,Wt).call(this,-I)).toBigInt();(Nt<0n||Nt>BigInt(q))&&a(this,h,K).call(this,`${x[n]} requires the number of signatures to be no greater than the number of keys.`),it=Number(Nt);let un=it;U=++I,I+=it,this.stack.length<I&&a(this,h,K).call(this,`${x[n]} stack too small for N, keys, M, sigs, and dummy. Need ${I}, have ${this.stack.length}.`);let me=(this.context==="UnlockingScript"?this.unlockingScript:this.lockingScript).chunks.slice(this.lastCodeSeparator===null?0:this.lastCodeSeparator+1);T=new he(me);let In=!1;for(let H=0;H<it;H++)B=a(this,h,Wt).call(this,-U-H),B.length>0&&(In=!0),((B.at(-1)&yt.SIGHASH_FORKID)===0||a(this,h,Ut).call(this)&&!a(this,h,Et).call(this,"SIGHASH_FORKID"))&&T.findAndDelete(new he().writeBin(B));(()=>{for(A=!0;A&&it>0;){if(q===0){A=!1;break}if(B=a(this,h,Wt).call(this,-U),_=a(this,h,Wt).call(this,-D),(!a(this,h,Uu).call(this,B)||!a(this,h,$u).call(this,_))&&a(this,h,K).call(this,`${x[n]} requires correct encoding for the public key and signature.`),ot=!1,B.length>0)try{$=a(this,h,Mu).call(this,B),R=Vt.fromDER(_),ot=a(this,h,Fu).call(this,$,R,T)}catch{ot=!1}ot&&(U++,it--),D++,q--,it>q&&(A=!1)}})(),(()=>{!A&&a(this,h,Et).call(this,"NULLFAIL")&&a(this,h,Kn).call(this)&&In&&a(this,h,K).call(this,`${x[n]} requires failing signatures to be empty.`);let W=1+It+1+un+1-1;for(;W>0;)a(this,h,Q).call(this),W--;a(this,h,vt).call(this,1,`${x[n]} requires an extra item (dummy) to be on the stack.`);let M=a(this,h,Q).call(this);a(this,h,vh).call(this)&&M.length>0&&a(this,h,K).call(this,`${x[n]} requires the extra stack item (dummy) to be empty.`),a(this,h,lt).call(this,A?[1]:[]),n===x.OP_CHECKMULTISIGVERIFY&&(A||a(this,h,K).call(this,"OP_CHECKMULTISIGVERIFY requires that a sufficient number of valid signatures are provided."),a(this,h,Q).call(this))})()})();break}case x.OP_CAT:{(()=>{a(this,h,vt).call(this,2,"OP_CAT requires at least two items to be on the stack."),c=a(this,h,Q).call(this),o=a(this,h,Q).call(this);let F=o.concat(c);F.length>a(this,h,Dr).call(this)&&a(this,h,K).call(this,`It's not currently possible to push data larger than ${a(this,h,Dr).call(this)} bytes.`),a(this,h,lt).call(this,F)})();break}case x.OP_SPLIT:{(()=>{a(this,h,vt).call(this,2,"OP_SPLIT requires at least two items to be on the stack.");let F=a(this,h,Q).call(this),z=a(this,h,Q).call(this),tt=a(this,h,ue).call(this,F).toBigInt();(tt<0n||tt>BigInt(z.length))&&a(this,h,K).call(this,"OP_SPLIT requires the first stack item to be a non-negative number less than or equal to the size of the second-from-top stack item.");let It=Number(tt);a(this,h,lt).call(this,z.slice(0,It)),a(this,h,lt).call(this,z.slice(It))})();break}case x.OP_NUM2BIN:{(()=>{a(this,h,vt).call(this,2,"OP_NUM2BIN requires at least two items to be on the stack.");let F=a(this,h,ue).call(this,a(this,h,Q).call(this)).toBigInt(),z=a(this,h,Dr).call(this);if((Number.isFinite(z)&&F>BigInt(z)||F<0n)&&a(this,h,K).call(this,`It's not currently possible to push data larger than ${z} bytes or negative size.`),F>D1&&a(this,h,K).call(this,"OP_NUM2BIN size exceeds the node int32 push limit."),this.hasExplicitMemoryLimit&&Number.isFinite(this.memoryLimit)){let Nt=Math.max(0,Math.floor(this.memoryLimit));if(F>BigInt(Nt))throw new Vn("element-size",Nt,F)}C=Number(F);let tt=a(this,h,Q).call(this);if(tt=ua(tt),tt.length>C&&a(this,h,K).call(this,"OP_NUM2BIN requires that the size expressed in the top stack item is large enough to hold the value expressed in the second-from-top stack item."),tt.length===C){a(this,h,lt).call(this,tt);return}let It=Array.from({length:C},()=>0),se=0;tt.length>0&&(se=tt.at(-1)&128,tt[tt.length-1]&=127);for(let Nt=0;Nt<tt.length;Nt++)It[Nt]=tt[Nt];se!==0&&(It[C-1]|=128),a(this,h,lt).call(this,It)})();break}case x.OP_BIN2NUM:{(()=>{a(this,h,vt).call(this,1,"OP_BIN2NUM requires at least one item to be on the stack."),o=a(this,h,Q).call(this);let F=ua(o);Ih(F)||a(this,h,K).call(this,"OP_BIN2NUM requires that the resulting number is valid."),a(this,h,lt).call(this,F)})();break}default:a(this,h,K).call(this,`Invalid opcode ${n} (pc=${this.programCounter}).`)}}return a(this,h,Kh).call(this,t),!0}validate(t){let e=ma(),n=a(this,h,qu).call(this),r=t===void 0?void 0:xh(t);return e?.verifySpendSync!==void 0&&(e.isReady?.()??!0)&&(r===void 0?e.shouldVerifySpend?.(n):e.shouldVerifySpend?.(n,r))!==!1?((r===void 0?e.verifySpendSync(n):e.verifySpendSync(n,r))!==!0&&a(this,h,K).call(this,"The selected script-verification backend rejected the spend."),!0):this.validateJavaScript()}validateJavaScript(){this.reset(),a(this,h,Ah).call(this)&&!this.unlockingScript.isPushOnly()&&a(this,h,K).call(this,"Unlocking scripts can only contain push operations, and no other opcodes.");let t=this.lockingScript,e=a(this,h,Et).call(this,"P2SH")&&!a(this,h,ne).call(this)&&a(this,h,zh).call(this,this.lockingScript);e&&!this.unlockingScript.isPushOnly()&&a(this,h,K).call(this,"P2SH unlocking scripts can only contain push operations."),a(this,h,xa).call(this,"UnlockingScript");let n=this.stack.map(r=>r.slice());a(this,h,xa).call(this,"LockingScript"),a(this,h,Wu).call(this);try{if(e){n.length===0&&a(this,h,K).call(this,"P2SH evaluation requires a redeem script on the stack.");let r=n.pop();if(r===void 0)return a(this,h,K).call(this,"P2SH evaluation requires a redeem script on the stack."),!1;a(this,h,Oh).call(this,n);let s=he.fromBinary(r);this.lockingScript=new Ce(s.chunks),a(this,h,xa).call(this,"LockingScript")}}finally{this.lockingScript=t}return a(this,h,Eh).call(this)&&this.stack.length!==1&&a(this,h,K).call(this,`The clean stack rule requires exactly one item to be on the stack after script execution, found ${this.stack.length}.`),a(this,h,Wu).call(this),!0}async validateWith(t,e){let n=a(this,h,qu).call(this),r=e===void 0?void 0:xh(e),s=r===void 0?t.shouldVerifySpend?.(n):t.shouldVerifySpend?.(n,r);if(s!==void 0&&typeof s!="boolean")throw new TypeError("Spend verifier selection must be boolean");if(s===!1)return n.validateJavaScript();let o=r===void 0?await t.verifySpend(n):await t.verifySpend(n,r);if(typeof o!="boolean")throw new TypeError("Spend verifier returned a non-boolean verdict");return o}toTransactionUint8Array(){let t={sourceTXID:this.sourceTXID,sourceOutputIndex:this.sourceOutputIndex,unlockingScript:this.unlockingScript,sequence:this.inputSequence},e=this.allInputs??[...this.otherInputs.slice(0,this.inputIndex),t,...this.otherInputs.slice(this.inputIndex)];if(this.inputIndex<0||this.inputIndex>=e.length)throw new RangeError("Spend input index is out of range");let n=new ht;n.writeUInt32LE(this.transactionVersion),n.writeVarIntNum(e.length);for(let r=0;r<e.length;r++){let s=r===this.inputIndex?t:e[r],o=s.sourceTXID??s.sourceTransaction?.id("hex");if(o===void 0)throw new Error(`Input ${r} is missing its source transaction ID`);if(s.unlockingScript===void 0)throw new Error(`Input ${r} is missing its unlocking script`);n.writeReverse(at(o,"hex")),n.writeUInt32LE(s.sourceOutputIndex);let c=s.unlockingScript.toUint8Array();n.writeVarIntNum(c.length),n.write(c),n.writeUInt32LE(s.sequence??4294967295)}n.writeVarIntNum(this.outputs.length);for(let r of this.outputs){n.writeUInt64LE(r.satoshis??0);let s=r.lockingScript.toUint8Array();n.writeVarIntNum(s.length),n.write(s)}return n.writeUInt32LE(this.lockTime),n.toUint8Array()}};zn=new WeakMap,ao=new WeakMap,h=new WeakSet,bi=function(){return this.isRelaxedOverride||this.transactionVersion>1},Ut=function(){return this.verifyFlags!==void 0},Et=function(t){return this.verifyFlags?.has(t)===!0},ne=function(){return a(this,h,Ut).call(this)?a(this,h,Et).call(this,"UTXO_AFTER_GENESIS")||a(this,h,Et).call(this,"UTXO_AFTER_CHRONICLE"):a(this,h,bi).call(this)},no=function(){return a(this,h,Ut).call(this)?a(this,h,Et).call(this,"UTXO_AFTER_CHRONICLE"):a(this,h,bi).call(this)},Kn=function(){return!(a(this,h,Et).call(this,"CHRONICLE")&&this.transactionVersion>1)},io=function(){return a(this,h,Ut).call(this)?a(this,h,Et).call(this,"MINIMALDATA")&&a(this,h,Kn).call(this):!a(this,h,bi).call(this)},Sh=function(){return a(this,h,Ut).call(this)?a(this,h,Et).call(this,"LOW_S")&&a(this,h,Kn).call(this):!a(this,h,bi).call(this)},vh=function(){return a(this,h,Ut).call(this)?a(this,h,Et).call(this,"NULLDUMMY")&&a(this,h,Kn).call(this):!a(this,h,bi).call(this)},Ah=function(){return a(this,h,Ut).call(this)?a(this,h,Et).call(this,"SIGPUSHONLY")&&a(this,h,Kn).call(this):!a(this,h,bi).call(this)},Eh=function(){return a(this,h,Ut).call(this)?a(this,h,Et).call(this,"CLEANSTACK")&&a(this,h,Kn).call(this):!a(this,h,bi).call(this)},_u=function(){return a(this,h,Ut).call(this)?a(this,h,Et).call(this,"DERSIG")||a(this,h,Et).call(this,"STRICTENC")||a(this,h,Et).call(this,"LOW_S")||a(this,h,Et).call(this,"SIGHASH_FORKID"):!0},Cu=function(){return a(this,h,Ut).call(this)?a(this,h,Et).call(this,"STRICTENC")||a(this,h,Et).call(this,"SIGHASH_FORKID"):!0},ya=function(){if(a(this,h,Ut).call(this))return a(this,h,ne).call(this)?a(this,h,no).call(this)?$1:H1:4},Dr=function(){return a(this,h,Ut).call(this)&&!a(this,h,ne).call(this)?M1:Number.POSITIVE_INFINITY},ro=function(t){if(this.stackMem+t>this.memoryLimit)throw new Vn("stack",this.memoryLimit,this.stackMem+t)},Th=function(t){if(this.altStackMem+t>this.memoryLimit)throw new Vn("alt-stack",this.memoryLimit,this.altStackMem+t)},lt=function(t){a(this,h,ro).call(this,t.length),this.stack.push(t),this.stackMem+=t.length},Oe=function(t){a(this,h,ro).call(this,t.length);let e=t.slice();this.stack.push(e),this.stackMem+=e.length},Q=function(){this.stack.length===0&&a(this,h,K).call(this,"Attempted to pop from an empty stack.");let t=this.stack.pop();return t===void 0?(a(this,h,K).call(this,"Attempted to pop from an empty stack."),[]):(this.stackMem-=t.length,t)},Wt=function(t=-1){return(this.stack.length===0||this.stack.length<Math.abs(t)||t>=0&&t>=this.stack.length)&&a(this,h,K).call(this,`Stack underflow accessing element at index ${t}. Stack length is ${this.stack.length}.`),this.stack[this.stack.length+t]},vt=function(t,e){this.stack.length<t&&a(this,h,K).call(this,e)},kh=function(t,e){this.altStack.length<t&&a(this,h,K).call(this,e)},Oh=function(t){this.stack=t.map(e=>e.slice()),this.stackMem=this.stack.reduce((e,n)=>e+n.length,0)},wa=function(){this.altStack=[],this.altStackMem=0},Ph=function(t){a(this,h,Th).call(this,t.length),this.altStack.push(t),this.altStackMem+=t.length},Rh=function(){this.altStack.length===0&&a(this,h,K).call(this,"Attempted to pop from an empty alt stack.");let t=this.altStack.pop();return t===void 0?(a(this,h,K).call(this,"Attempted to pop from an empty alt stack."),[]):(this.altStackMem-=t.length,t)},ue=function(t){try{return k.fromScriptNum(t,a(this,h,io).call(this),a(this,h,ya).call(this))}catch(e){let n=e instanceof Error?e.message:String(e);a(this,h,K).call(this,n)}return new k(0)},so=function(t){let e=a(this,h,ya).call(this);e!==void 0&&t.length>e&&a(this,h,K).call(this,"script number overflow"),a(this,h,io).call(this)&&!Ih(t)&&a(this,h,K).call(this,"non-minimally encoded script number");let n;if(t.length>8){n=0n;for(let r=0;r<8;r++)n|=BigInt(t[r])<<BigInt(r*8);n=BigInt.asIntN(64,n)}else n=a(this,h,ue).call(this,t).toBigInt();return n>0x7fffffffn?2147483647:n<-0x80000000n?-2147483648:Number(n)},Lu=function(t){try{return k.fromScriptNum(t,a(this,h,io).call(this),5).toBigInt()}catch(e){a(this,h,K).call(this,e instanceof Error?e.message:String(e))}return 0n},Nh=function(t){let e=t&31;return e>=yt.SIGHASH_ALL&&e<=yt.SIGHASH_SINGLE},Bh=function(t){if(!a(this,h,Cu).call(this))return;a(this,h,Nh).call(this,t.scope)||a(this,h,K).call(this,"The signature hash type is invalid.");let e=(t.scope&yt.SIGHASH_CHRONICLE)!==0,n=a(this,h,Ut).call(this)?a(this,h,Et).call(this,"CHRONICLE"):a(this,h,no).call(this);e&&!n&&a(this,h,K).call(this,"The signature hash type is invalid before Chronicle.")},_h=function(t){if(!a(this,h,Ut).call(this)||!a(this,h,Et).call(this,"STRICTENC"))return;let e=(t.scope&yt.SIGHASH_FORKID)!==0;a(this,h,Et).call(this,"SIGHASH_FORKID")&&!e&&a(this,h,K).call(this,"The signature must use SIGHASH_FORKID."),!a(this,h,Et).call(this,"SIGHASH_FORKID")&&!a(this,h,ne).call(this)&&e&&a(this,h,K).call(this,"The signature must not use SIGHASH_FORKID.")},Uu=function(t){if(t.length===0)return!0;let e=a(this,h,_u).call(this);if(e&&!Y1(t))return a(this,h,K).call(this,"The signature format is invalid."),!1;try{let n=yt.fromChecksigFormat(t);if(a(this,h,Bh).call(this,n),a(this,h,_h).call(this,n),a(this,h,Sh).call(this)&&!n.hasLowS())return a(this,h,K).call(this,"The signature must have a low S value."),!1}catch{if(e)return a(this,h,K).call(this,"The signature format is invalid."),!1}return!0},Mu=function(t){try{return yt.fromChecksigFormat(t)}catch(e){if(a(this,h,_u).call(this))throw e;return a(this,h,Ch).call(this,t)}},Du=function(t,e){let n=t[e.value++];if(n===void 0)throw new Error("Invalid DER length");if((n&128)===0)return n;let r=n&127;if(r===0||e.value+r>t.length)throw new Error("Invalid DER length");let s=0;for(let o=0;o<r;o++)s=s<<8|(t[e.value++]??0);return s},Hu=function(t,e,n){if(e.value>=n||t[e.value++]!==2)throw new Error("Invalid DER integer");let r=a(this,h,Du).call(this,t,e);if(e.value+r>n)throw new Error("Invalid DER integer length");let s=t.slice(e.value,e.value+r);for(e.value+=r;s.length>1&&s[0]===0;)s=s.slice(1);return s.length===0&&(s=[0]),new k(s)},Ch=function(t){if(t.length===0)return yt.fromChecksigFormat(t);let e=t.at(-1),n=t.slice(0,-1),r={value:0};if(n[r.value++]!==48)throw new Error("Signature DER must start with 0x30");let s=a(this,h,Du).call(this,n,r),o=Math.min(r.value+s,n.length),c=a(this,h,Hu).call(this,n,r,o),u=a(this,h,Hu).call(this,n,r,o);return new yt(c,u,e)},$u=function(t){if(!a(this,h,Cu).call(this))return!0;if(t.length===0)return a(this,h,K).call(this,"Public key is empty."),!1;if(t.length<33)return a(this,h,K).call(this,"The public key is too short, it must be at least 33 bytes."),!1;if(t[0]===4){if(t.length!==65)return a(this,h,K).call(this,"The non-compressed public key must be 65 bytes."),!1}else if(t[0]===2||t[0]===3){if(t.length!==33)return a(this,h,K).call(this,"The compressed public key must be 33 bytes."),!1}else return a(this,h,K).call(this,"The public key is in an unknown format."),!1;try{Vt.fromDER(t)}catch{return a(this,h,K).call(this,"The public key is in an unknown format."),!1}return!0},Fu=function(t,e,n){let r={sourceTXID:this.sourceTXID,sourceOutputIndex:this.sourceOutputIndex,sourceSatoshis:this.sourceSatoshis,transactionVersion:this.transactionVersion,otherInputs:this.otherInputs,allInputs:this.allInputs,outputs:this.outputs,inputIndex:this.inputIndex,subscript:n,inputSequence:this.inputSequence,lockTime:this.lockTime,scope:t.scope,sighashForkIdEnabled:!a(this,h,Ut).call(this)||a(this,h,Et).call(this,"SIGHASH_FORKID"),cache:w(this,zn)},s=yt.usesOtdaSingleBug(r)?new k([1,...Array.from({length:31},()=>0)]):new k(Gt(yt.formatBytes(r)));return gi(s,t,e)},Lh=function(){if(this.stackMem>this.memoryLimit)throw new Vn("stack",this.memoryLimit,this.stackMem);if(this.altStackMem>this.memoryLimit)throw new Vn("alt-stack",this.memoryLimit,this.altStackMem)},Uh=function(){return this.context==="UnlockingScript"&&this.programCounter>=this.unlockingScript.chunks.length&&(this.ifStack.length>0&&a(this,h,K).call(this,"Every OP_IF, OP_NOTIF, or OP_ELSE must be terminated with OP_ENDIF prior to the end of the unlocking script."),a(this,h,wa).call(this),this.ifStack=[],this.elseStack=[],this.returningFromConditional=!1,this.lastCodeSeparator=null,this.context="LockingScript",this.programCounter=0),this.context==="UnlockingScript"?this.unlockingScript:this.lockingScript},Mh=function(t){let e=t.op;return e===void 0?(a(this,h,K).call(this,`Missing opcode in ${this.context} at pc=${this.programCounter}.`),0):(t.invalidLength===!0&&a(this,h,K).call(this,`Malformed push data in ${this.context} at pc=${this.programCounter}.`),Array.isArray(t.data)&&t.data.length>a(this,h,Dr).call(this)&&a(this,h,K).call(this,`Data push > ${a(this,h,Dr).call(this)} bytes (pc=${this.programCounter}).`),e)},Dh=function(t){a(this,h,Ut).call(this)&&!a(this,h,ne).call(this)&&!a(this,h,no).call(this)&&(t===x.OP_2MUL||t===x.OP_2DIV||t===x.OP_VERIF||t===x.OP_VERNOTIF)&&a(this,h,K).call(this,`${x[t]} is disabled until Chronicle.`)},Hh=function(t){a(this,h,io).call(this)&&!Z1(t)&&a(this,h,K).call(this,`This data is not minimally-encoded. (PC: ${this.programCounter})`),a(this,h,lt).call(this,Array.isArray(t.data)?t.data:[])},$h=function(t,e){!e||t<=x.OP_16||(this.executedOpCount++,a(this,h,Ut).call(this)&&!a(this,h,ne).call(this)&&this.executedOpCount>ph&&a(this,h,K).call(this,`Script executed more than ${ph} opcodes.`))},Fh=function(t,e){return!a(this,h,Ut).call(this)||a(this,h,no).call(this)?!1:e&&(t===x.OP_SUBSTR||t===x.OP_LEFT||t===x.OP_RIGHT||t===x.OP_LSHIFTNUM||t===x.OP_RSHIFTNUM)?(a(this,h,Et).call(this,"DISCOURAGE_UPGRADABLE_NOPS")&&a(this,h,K).call(this,`${x[t]} is discouraged by verification flags.`),this.programCounter++,!0):((e||!a(this,h,ne).call(this))&&(t===x.OP_2MUL||t===x.OP_2DIV)&&a(this,h,K).call(this,`${x[t]} is disabled until Chronicle.`),(e||!a(this,h,ne).call(this))&&(t===x.OP_VER||t===x.OP_VERIF||t===x.OP_VERNOTIF)&&a(this,h,K).call(this,`${x[t]} is disabled until Chronicle.`),!e&&a(this,h,ne).call(this)&&(t===x.OP_VERIF||t===x.OP_VERNOTIF)?(this.programCounter++,!0):!1)},qh=function(t,e){let n=t===x.OP_CHECKLOCKTIMEVERIFY&&(!a(this,h,Et).call(this,"CHECKLOCKTIMEVERIFY")||a(this,h,ne).call(this)),r=t===x.OP_CHECKSEQUENCEVERIFY&&(!a(this,h,Et).call(this,"CHECKSEQUENCEVERIFY")||a(this,h,ne).call(this));e&&a(this,h,Et).call(this,"DISCOURAGE_UPGRADABLE_NOPS")&&(t===x.OP_NOP1||n||r||t===x.OP_NOP9||t===x.OP_NOP10)&&a(this,h,K).call(this,`${x[t]} is discouraged by verification flags.`)},Wh=function(){if(!a(this,h,Et).call(this,"CHECKLOCKTIMEVERIFY")||a(this,h,ne).call(this))return;a(this,h,vt).call(this,1,"OP_CHECKLOCKTIMEVERIFY requires one stack item.");let t=a(this,h,Lu).call(this,a(this,h,Wt).call(this));t<0n&&a(this,h,K).call(this,"Negative lock time.");let e=t<BigInt(mh),n=this.lockTime<mh;(e!==n||t>BigInt(this.lockTime)||this.inputSequence===4294967295)&&a(this,h,K).call(this,"OP_CHECKLOCKTIMEVERIFY lock time is unsatisfied.")},Vh=function(){if(!a(this,h,Et).call(this,"CHECKSEQUENCEVERIFY")||a(this,h,ne).call(this))return;a(this,h,vt).call(this,1,"OP_CHECKSEQUENCEVERIFY requires at least one item to be on the stack.");let t=a(this,h,Lu).call(this,a(this,h,Wt).call(this));if(t<0n&&a(this,h,K).call(this,"OP_CHECKSEQUENCEVERIFY requires a non-negative lock time."),(t&BigInt(bh))!==0n)return;let e=BigInt(this.inputSequence>>>0),n=BigInt(Bu|V1),r=t&n,s=e&n;(this.transactionVersion>>>0<2||(e&BigInt(bh))!==0n||(r&BigInt(Bu))!==(s&BigInt(Bu))||r>s)&&a(this,h,K).call(this,"OP_CHECKSEQUENCEVERIFY lock time is unsatisfied.")},Kh=function(t){this.returningFromConditional&&this.ifStack.length===0?this.programCounter=t.chunks.length:this.programCounter++,a(this,h,Ut).call(this)&&!a(this,h,ne).call(this)&&this.stack.length+this.altStack.length>gh&&a(this,h,K).call(this,`Stack item count has exceeded ${gh}.`)},qu=function(){let t=r=>new Ce(r.chunks.map(s=>({op:s.op,data:s.data===void 0?void 0:Array.from(s.data),invalidLength:s.invalidLength}))),e=r=>new Le(r.chunks.map(s=>({op:s.op,data:s.data===void 0?void 0:Array.from(s.data),invalidLength:s.invalidLength}))),n=r=>({sourceTXID:r.sourceTXID??r.sourceTransaction?.id("hex"),sourceOutputIndex:r.sourceOutputIndex,unlockingScript:r.unlockingScript===void 0?void 0:e(r.unlockingScript),sequence:r.sequence});return new Vu({sourceTXID:this.sourceTXID,sourceOutputIndex:this.sourceOutputIndex,sourceSatoshis:this.sourceSatoshis,lockingScript:t(this.lockingScript),transactionVersion:this.transactionVersion,otherInputs:this.otherInputs.map(n),allInputs:this.allInputs?.map(n),outputs:this.outputs.map(r=>({satoshis:r.satoshis,lockingScript:t(r.lockingScript),change:r.change})),inputIndex:this.inputIndex,unlockingScript:e(this.unlockingScript),inputSequence:this.inputSequence,lockTime:this.lockTime,memoryLimit:this.hasExplicitMemoryLimit?this.memoryLimit:void 0,isRelaxed:this.isRelaxedOverride,verifyFlags:this.verifyFlags===void 0?void 0:Array.from(this.verifyFlags)})},xa=function(t){this.context=t,this.programCounter=0,this.ifStack=[],this.elseStack=[],this.returningFromConditional=!1,a(this,h,wa).call(this),this.lastCodeSeparator=null;let e=t==="UnlockingScript"?this.unlockingScript:this.lockingScript;for(a(this,h,Ut).call(this)&&!a(this,h,ne).call(this)&&e.toUint8Array().length>hh&&a(this,h,K).call(this,`Script size exceeds ${hh} bytes.`);this.programCounter<e.chunks.length;)this.step();this.ifStack.length>0&&a(this,h,K).call(this,"Every OP_IF, OP_NOTIF, or OP_ELSE must be terminated with OP_ENDIF prior to the end of the script."),this.ifStack=[],this.elseStack=[],a(this,h,wa).call(this),this.lastCodeSeparator=null},zh=function(t){let e=t.chunks;return e.length===3&&e[0].op===x.OP_HASH160&&e[1].op===20&&Array.isArray(e[1].data)&&e[1].data.length===20&&e[2].op===x.OP_EQUAL},Wu=function(){this.stack.length===0?a(this,h,K).call(this,"The top stack element must be truthy after script evaluation (stack is empty)."):a(this,h,Hr).call(this,a(this,h,Wt).call(this))||a(this,h,K).call(this,"The top stack element must be truthy after script evaluation.")},Hr=function(t){if(t.length===0)return!1;for(let e=0;e<t.length;e++)if(t[e]!==0)return!(e===t.length-1&&t[e]===128);return!1},K=function(t){throw new eo({message:t,txid:this.sourceTXID,outputIndex:this.sourceOutputIndex,context:this.context,programCounter:this.programCounter,stackState:this.stack,altStackState:this.altStack,ifStackState:this.ifStack,stackMem:this.stackMem,altStackMem:this.altStackMem})};var oo=Vu;var J1=21e14,Q1=4294967295;function Ia(i,t){if(!Number.isSafeInteger(i)||i<0||i>Q1)throw new Error(`${t} must be an unsigned 32-bit integer`);return i}function Ku(i,t){if(!Number.isSafeInteger(i)||i<0||i>J1)throw new Error(`${t} must be a valid number of satoshis`);return i}function zu(i,t){if(typeof i!="string"||!/^[0-9a-fA-F]{64}$/.test(i))throw new Error(`${t} must be a 32-byte hexadecimal transaction ID`);return i.toLowerCase()}function Xu(i,t){if(i==null||typeof i!="object"||typeof i.toHex!="function")throw new Error(`${t} must be a Script`);let e=i.toHex();if(typeof e!="string"||!/^(?:[0-9a-fA-F]{2})*$/.test(e))throw new Error(`${t} must serialize to a valid hexadecimal script`);return i}function Xh(i,t){if(i!=="all"&&i!=="none"&&i!=="single")throw new Error('signOutputs must be "all", "none", or "single"');if(typeof t!="boolean")throw new TypeError("anyoneCanPay must be a boolean");let e=yt.SIGHASH_FORKID;return i==="all"&&(e|=yt.SIGHASH_ALL),i==="none"&&(e|=yt.SIGHASH_NONE),i==="single"&&(e|=yt.SIGHASH_SINGLE),t&&(e|=yt.SIGHASH_ANYONECANPAY),e}function jh(i,t,e,n){if(i==null||!Array.isArray(i.inputs))throw new Error("A transaction with inputs is required for transaction signing.");if(!Number.isSafeInteger(t)||t<0||t>=i.inputs.length)throw new Error(`inputIndex ${t} is outside the transaction input range`);let r=i.inputs[t],s=Ia(r.sourceOutputIndex,"input.sourceOutputIndex"),o=r.sourceTXID===void 0?void 0:zu(r.sourceTXID,"input.sourceTXID"),c=r.sourceTransaction===void 0?void 0:zu(r.sourceTransaction.id("hex"),"input.sourceTransaction ID");if(o!==void 0&&c!==void 0&&o!==c)throw new Error("The input sourceTXID does not match the input sourceTransaction.");let u=o??c;if(u===void 0)throw new Error("The input sourceTXID or sourceTransaction is required for transaction signing.");let f=r.sourceTransaction?.outputs[s];if(r.sourceTransaction!==void 0&&f==null)throw new Error(`The input sourceTransaction has no output at index ${s}.`);let d=e===void 0?void 0:Ku(e,"sourceSatoshis"),l=f?.satoshis===void 0?void 0:Ku(f.satoshis,"sourceTransaction output satoshis");if(d!==void 0&&l!==void 0&&d!==l)throw new Error("The sourceSatoshis does not match the input sourceTransaction output.");let p=d??l;if(p===void 0)throw new Error("The sourceSatoshis or input sourceTransaction is required for transaction signing.");let b=n===void 0?void 0:Xu(n,"lockingScript"),g=f?.lockingScript===void 0?void 0:Xu(f.lockingScript,"sourceTransaction output lockingScript");if(b!==void 0&&g!==void 0&&b.toHex().toLowerCase()!==g.toHex().toLowerCase())throw new Error("The lockingScript does not match the input sourceTransaction output.");let y=b??g;if(y===void 0)throw new Error("The lockingScript or input sourceTransaction is required for transaction signing.");return{sourceTXID:u,sourceSatoshis:p,lockingScript:y,allInputs:i.inputs,get otherInputs(){return i.inputs.filter((v,C)=>C!==t)}}}function Gh(i){let{tx:t,inputIndex:e,signatureScope:n,sourceTXID:r,sourceSatoshis:s,lockingScript:o,otherInputs:c,allInputs:u,inputSequence:f}=i,d=t.inputs[e];Ia(d.sourceOutputIndex,"input.sourceOutputIndex"),Ku(s,"sourceSatoshis"),zu(r,"sourceTXID"),Xu(o,"lockingScript"),Ia(n,"signatureScope");let l=f??Xi(d.sequence,"input.sequence must have value");return Ia(l,"inputSequence"),yt.format({sourceTXID:r,sourceOutputIndex:Xi(d.sourceOutputIndex,"input.sourceOutputIndex must have value"),sourceSatoshis:s,transactionVersion:t.version,otherInputs:c??[],allInputs:u,inputIndex:e,outputs:t.outputs,inputSequence:l,subscript:o,lockTime:t.lockTime,scope:n,cache:t.getSignatureHashCache()})}var Xn=class{lock(t){let e;if(typeof t=="string"){let n=Gs(t);if(n.prefix.length!==1||n.prefix[0]!==0&&n.prefix[0]!==111)throw new Error("only P2PKH is supported");e=n.data}else{if(!Array.isArray(t))throw new Error("P2PKH hash must be a dense byte array");for(let n=0;n<t.length;n++){let r=t[n];if(!Number.isInteger(r)||r<0||r>255)throw new Error("P2PKH hash must be a dense byte array")}e=t}if(e.length!==20)throw new Error("P2PKH hash length must be 20 bytes");return new Ce([{op:x.OP_DUP},{op:x.OP_HASH160},{op:e.length,data:e},{op:x.OP_EQUALVERIFY},{op:x.OP_CHECKSIG}])}unlock(t,e="all",n=!1,r,s){return{sign:async(o,c)=>{let u=Xh(e,n),f=jh(o,c,r,s),d=Gh({tx:o,inputIndex:c,signatureScope:u,sourceTXID:f.sourceTXID,sourceSatoshis:f.sourceSatoshis,lockingScript:f.lockingScript,allInputs:f.allInputs}),l=Be(d),p=Nu("signDigest"),b=Nu("publicKeyFromPrivate"),g=p===void 0&&b===void 0?void 0:Uint8Array.from(t.toArray("be",32)),y=b===void 0?t.toPublicKey().encode(!0):void 0,v=p===void 0?t.sign(l):le.fromDER(Array.from(Ru("signDigest",await p.signDigest(g,Uint8Array.from(Be(l)))))),E=new yt(v.r,v.s,u).toChecksigFormat(),A=b===void 0?y:Array.from(ty(await b.publicKeyFromPrivate(g)));return new Le([{op:E.length,data:E},{op:A.length,data:A}])},estimateLength:async()=>108}}};function ty(i){let t=Ru("publicKeyFromPrivate",i,33);if(t[0]!==2&&t[0]!==3)throw new Error("publicKeyFromPrivate returned an invalid compressed public key");return t}var co=class{constructor(t){m(this,"value");Yh(t),this.value=t}async computeFee(t){let e=this.value;Yh(e);let n=o=>o>4294967295?9:o>65535?5:o>=253?3:1,r=4;r+=n(t.inputs.length);for(let o=0;o<t.inputs.length;o++){let c=t.inputs[o];r+=40;let u;if(typeof c.unlockingScript=="object")u=c.unlockingScript.toBinary().length;else if(typeof c.unlockingScriptTemplate=="object")u=await c.unlockingScriptTemplate.estimateLength(t,o);else throw new TypeError("All inputs must have an unlocking script or an unlocking script template for sat/kb fee computation.");if(!Number.isSafeInteger(u)||u<0)throw new RangeError("Unlocking script length must be a non-negative safe integer.");r+=n(u),r+=u}r+=n(t.outputs.length);for(let o of t.outputs){r+=8;let c=o.lockingScript.toBinary().length;if(!Number.isSafeInteger(c)||c<0)throw new RangeError("Locking script length must be a non-negative safe integer.");r+=n(c),r+=c}r+=4;let s=Math.ceil(r/1e3*e);if(!Number.isSafeInteger(s)||s<0||s>21e14)throw new RangeError("Computed transaction fee is outside the valid satoshi range.");return s}};function Yh(i){if(!Number.isFinite(i)||i<0||i>21e14)throw new RangeError("Satoshis-per-kilobyte rate must be finite and non-negative.")}var Sa=8*1024*1024,va=3e4;function Zh(i={}){let t=i.maxResponseBytes??Sa,e=i.timeoutMs??va;if(!Number.isSafeInteger(t)||t<1)throw new RangeError("maxResponseBytes must be a positive safe integer");if(!Number.isSafeInteger(e)||e<1||e>10*6e4)throw new RangeError("timeoutMs must be an integer from 1 through 600000");return{maxResponseBytes:t,timeoutMs:e}}function Jh(i,t){let e=new AbortController,n=()=>e.abort(i?.reason);i?.aborted===!0?n():i?.addEventListener("abort",n,{once:!0});let r=setTimeout(()=>e.abort(new DOMException("HTTP request timed out","TimeoutError")),t);return{signal:e.signal,dispose(){clearTimeout(r),i?.removeEventListener("abort",n)}}}async function Qh(i,t){let e=i,n=i.headers?.get?.("content-length")??null;if(n!==null&&(!/^(0|[1-9]\d*)$/.test(n)||Number(n)>t))throw await i.body?.cancel().catch(()=>{}),new Error("HTTP response exceeds the configured size limit");if(!("body"in e)){let f=await e.text?.()??"";if(Fe(f)>t)throw new Error("HTTP response exceeds the configured size limit");return f}if(i.body==null)return"";let r=i.body.getReader(),s=[],o=0;try{for(;;){let{done:f,value:d}=await r.read();if(f)break;if(o+=d.byteLength,!Number.isSafeInteger(o)||o>t)throw await r.cancel(),new Error("HTTP response exceeds the configured size limit");s.push(d)}}finally{r.releaseLock()}let c=new Uint8Array(o),u=0;for(let f of s)c.set(f,u),u+=f.byteLength;try{return new TextDecoder("utf-8",{fatal:!0}).decode(c)}catch(f){throw new Error("HTTP response is not valid UTF-8",{cause:f})}}function tp(i,t,e,n){return new Promise((r,s)=>{let o;try{o=e.data===null||e.data===void 0?void 0:n(e.data)}catch(v){s(v);return}let{data:c,...u}=e,f=!1,d,l,p=()=>{l!==void 0&&clearTimeout(l),e.signal?.removeEventListener("abort",y)},b=v=>{f||(f=!0,p(),s(v))},g=v=>{f||(f=!0,p(),r(v))},y=()=>{let v=e.signal?.reason instanceof Error?e.signal.reason:new DOMException("HTTP request aborted","AbortError");d?.destroy?.(v),b(v)};d=i.request(t,u,v=>{let C=v.headers?.["content-length"],E=typeof C=="string"?Number(C):void 0;if(typeof C=="string"&&!/^(0|[1-9]\d*)$/.test(C)||E!==void 0&&(!Number.isSafeInteger(E)||E>Sa)){v.destroy?.(),b(new Error("HTTP response exceeds the configured size limit"));return}let A=[],T=0;v.on("data",B=>{if(f)return;let _=typeof B=="string"?ye(B):new Uint8Array(B);if(T+=_.byteLength,!Number.isSafeInteger(T)||T>Sa){v.destroy?.(),d.destroy?.(),b(new Error("HTTP response exceeds the configured size limit"));return}A.push(_)}),v.on("end",()=>{if(!f)try{if(E!==void 0&&E!==T)throw new Error("HTTP response differs from its declared length");if(!Number.isInteger(v.statusCode)||v.statusCode<100||v.statusCode>599)throw new Error("HTTP response returned an invalid status code");let B=new Uint8Array(T),_=0;for(let U of A)B.set(U,_),_+=U.byteLength;let $=new TextDecoder("utf-8",{fatal:!0}).decode(B),R=v.statusCode>=200&&v.statusCode<=299,I=v.headers["content-type"],D=$!==""&&typeof I=="string"&&I.startsWith("application/json")?JSON.parse($):$;g({status:v.statusCode,statusText:v.statusMessage??"",ok:R,data:D})}catch(B){b(B)}}),v.on("error",b),v.on("aborted",()=>b(new Error("HTTP response was aborted")))}),d.on("error",b),f||(l=setTimeout(()=>{let v=new Error("HTTP request timed out");d.destroy?.(v),b(v)},va)),d.setTimeout?.(va,()=>{let v=new Error("HTTP request timed out");d.destroy?.(v),b(v)}),e.signal?.aborted===!0?y():e.signal?.addEventListener("abort",y,{once:!0}),!f&&(o!==void 0&&d.write(o),d.end())})}var Aa=class{constructor(t){m(this,"https");this.https=t}async request(t,e){return await tp(this.https,t,e,n=>JSON.stringify(n))}};var uo=class{constructor(t,e={}){m(this,"fetch");m(this,"limits");this.fetch=t,this.limits=Zh(e)}async request(t,e){let n=Jh(e.signal,this.limits.timeoutMs),r={method:e.method,headers:e.headers,body:e.data===void 0?null:JSON.stringify(e.data),redirect:"error",signal:n.signal};try{let s=await this.fetch(t,r),o=s,c=o.headers?.get?.("Content-Type"),u;if(!("body"in o)&&typeof o.json=="function"&&(c==null||c.startsWith("application/json"))){if(u=await o.json(),Fe(JSON.stringify(u))>this.limits.maxResponseBytes)throw new Error("HTTP response exceeds the configured size limit")}else{let f=await Qh(s,this.limits.maxResponseBytes);u=f!==""&&(c?.startsWith("application/json")??!1)?JSON.parse(f):f}return{ok:s.ok,status:s.status,statusText:s.statusText,data:u}}finally{n.dispose()}}};function nr(){let i={async request(...e){throw new Error("No method available to perform HTTP request")}};if(globalThis.window!==void 0&&typeof globalThis.window.fetch=="function")return new uo(globalThis.window.fetch.bind(globalThis.window));if(typeof globalThis.fetch=="function")return new uo(globalThis.fetch.bind(globalThis));let t=typeof Zc=="function"?Zc:void 0;if(t===void 0)return i;try{let e=t(["node","https"].join(":"));return new Aa(e)}catch{return i}}var kn=class kn extends co{constructor(e=300*1e3){super(100);m(this,"cachedRate",null);m(this,"cacheTimestamp",0);m(this,"cacheValidityMs");if(!Number.isSafeInteger(e)||e<0)throw new RangeError("cacheValidityMs must be a non-negative safe integer");this.cacheValidityMs=e}static getInstance(e=300*1e3){return kn.instance??(kn.instance=new kn(e)),kn.instance}async fetchFeeRate(){let e=Date.now();if(this.cachedRate!==null&&e-this.cacheTimestamp<this.cacheValidityMs)return this.cachedRate;try{let n=await nr().request(kn.ARC_POLICY_URL,{method:"GET",headers:{Accept:"application/json"}});if(!n.ok)throw new Error("Fee-policy provider request failed");let r=n.data,s=r?.policy?.miningFee?.satoshis,o=r?.policy?.miningFee?.bytes;if(!Number.isSafeInteger(s)||s<1||s>21e14||!Number.isSafeInteger(o)||o<1||o>1e9)throw new Error("Invalid policy response format");let c=s/o*1e3;if(!Number.isFinite(c)||c<=0||c>1e9)throw new Error("Invalid policy fee rate");return this.cachedRate=c,this.cacheTimestamp=e,c}catch{return this.cachedRate!==null?(console.warn("Failed to fetch live fee rate; using cached value."),this.cachedRate):(console.warn("Failed to fetch live fee rate; using default 100 sat/kb."),100)}}async computeFee(e){let n=await this.fetchFeeRate();return this.value=n,super.computeFee(e)}};m(kn,"ARC_POLICY_URL","https://arc.gorillapool.io/v1/policy"),m(kn,"instance",null);var fo=kn;function hn(i){return i==="__proto__"||i==="constructor"||i==="prototype"}function ep(i){if(i==null||typeof i!="object"||Array.isArray(i))return!1;let t=Object.getPrototypeOf(i);return t===Object.prototype||t===null}var Ea=/^[0-9a-f]{64}$/i,np=8192,ey=128,ny=256;function yi(i,t){let e=Object.getOwnPropertyDescriptor(i,t);return e==null?{present:!1}:Object.prototype.hasOwnProperty.call(e,"value")?{present:!0,value:e.value}:{present:!0}}function ju(i,t){return typeof i=="string"&&Fe(i)<=t}function ir(){return{status:"error",code:"ERR_INVALID_RESPONSE",description:"Broadcaster returned a malformed or transaction-mismatched response."}}function ip(i,t){if(!Ea.test(t)||!ep(i))return ir();let e=yi(i,"status").value;if(e==="success"){let u=yi(i,"txid").value,f=yi(i,"message").value,d=yi(i,"competingTxs");if(typeof u!="string"||!Ea.test(u)||u.toLowerCase()!==t.toLowerCase()||!ju(f,np))return ir();let l={status:"success",txid:t.toLowerCase(),message:f};if(d.present){if(!Array.isArray(d.value)||d.value.length>ny)return ir();let p=[],b=new Set;for(let g=0;g<d.value.length;g++){let y=Object.getOwnPropertyDescriptor(d.value,g),v=y?.value;if(y==null||!Object.prototype.hasOwnProperty.call(y,"value")||typeof v!="string"||!Ea.test(v))return ir();let C=v.toLowerCase();if(b.has(C))return ir();b.add(C),p.push(C)}l.competingTxs=p}return l}if(e!=="error")return ir();let n=yi(i,"code").value,r=yi(i,"description").value,s=yi(i,"txid");if(!ju(n,ey)||!ju(r,np)||s.present&&(typeof s.value!="string"||!Ea.test(s.value)||s.value.toLowerCase()!==t.toLowerCase()))return ir();let o={status:"error",code:n,description:r};s.present&&(o.txid=t.toLowerCase());let c=yi(i,"more");return c.present&&c.value!=null&&typeof c.value=="object"&&(o.more=c.value),o}function rp(i){if(!Number.isSafeInteger(i)||i<0)throw new Error("Invalid offset")}var pn=(i,t)=>Math.floor(i/2**t),lo=i=>i%2===0?i+1:i-1,Gu=(i,t,e)=>pn(i,e)===pn(t,e),Yu=i=>i===0?0:i.toString(2).length;function gn(i,t){return nt(Gt(at((i??"")+(t??""),"hex").reverse()).reverse())}function iy(i,t,e,n){let r=n.get(i);if(r==null)return;if(r!==t)throw new Error("Mismatched roots");let s=n.get(`${e}:0`);if(s==null)throw new Error("Mismatched roots");return s}function sp(i,t,e,n,r,s){if(t==null){if(s)return gn(i,i);throw new Error(`Missing hash for index ${n} at height ${r}`)}return t.duplicate===!0?gn(i,i):e%2===1?gn(t.hash,i):gn(i,t.hash)}var wi=class i{constructor(t,e,n=!0,r=!0){m(this,"blockHeight");m(this,"path");if(!Array.isArray(e)||e.length===0||e.length>54)throw new Error("Merkle Path must contain between 1 and 54 levels");this.blockHeight=t,this.path=e.map((l,p)=>{if(!Array.isArray(l))throw new TypeError(`Merkle Path level ${p} must be an array`);return l.map(b=>({...b}))});let s=Array.from({length:this.path.length}).fill(0).map(()=>new Set);if(this.path.forEach((l,p)=>{if(l.length===0&&p===0)throw new Error(`Empty level at height: ${p}`);let b=new Set;l.forEach(g=>{if(rp(g.offset),b.has(g.offset))throw new Error(`Duplicate offset: ${g.offset}, at height: ${p}`);if(b.add(g.offset),p===0){if(g.duplicate!==!0)for(let y=1;y<this.path.length;y++)s[y].add(lo(pn(g.offset,y)))}else if(n&&!s[p].has(g.offset))throw new Error(`Invalid offset: ${g.offset}, at height: ${p}, with legal offsets: ${Array.from(s[p],y=>y.toString()).join(", ")}`)})}),!r)return;let o=this.path.map(l=>new Map(l.map(p=>[p.offset,p]))),c=new Map,u=new Map,f=this.path[0].reduce((l,p)=>Math.max(l,p.offset),0),d;this.path[0].forEach((l,p)=>{let b=this.computeRootCached(l.hash,o,c,u,f);if(p===0&&(d=b),d!==b)throw new Error("Mismatched roots")})}static fromHex(t){return i.fromBinary(at(t,"hex"))}static fromReader(t,e=!0,n=!0){let r=t.readVarIntNumStrict(!1),s=t.readUInt8(),o=Array.from({length:s}).fill(null).map(()=>[]),c,u,f;for(let d=0;d<s;d++){for(f=t.readVarIntNumStrict(!1);f>0;){u=t.readVarIntNumStrict(!1),c=t.readUInt8();let l={offset:u};(c&1)===1?l.duplicate=!0:((c&2)!==0&&(l.txid=!0),l.hash=nt(t.read(32).reverse())),(!Array.isArray(o[d])||o[d].length===0)&&(o[d]=[]),o[d].push(l),f--}o[d].sort((l,p)=>l.offset-p.offset)}return new i(r,o,e,n)}static fromBinary(t,e=!0,n=!0){let r=new mt(t);return i.fromReader(r,e,n)}static fromCoinbaseTxidAndHeight(t,e){return new i(e,[[{offset:0,hash:t,txid:!0}]])}toWriter(t){t.writeVarIntNum(this.blockHeight);let e=this.path.length;t.writeUInt8(e);for(let n=0;n<e;n++){let r=Object.keys(this.path[n]).length;t.writeVarIntNum(r);for(let s of this.path[n]){t.writeVarIntNum(s.offset);let o=0;s?.duplicate===!0&&(o|=1),s?.txid!==void 0&&s.txid!==null&&(o|=2),t.writeUInt8(o),(o&1)===0&&t.write(at(s.hash,"hex").reverse())}}}toBinary(){let t=new ae;return this.toWriter(t),t.toArray()}toBinaryUint8Array(){let t=new ht;return this.toWriter(t),t.toUint8Array()}toHex(){return nt(this.toBinaryUint8Array())}indexOf(t){let e=this.path[0].find(n=>n.hash===t);if(e==null)throw new Error(`Transaction ID ${t} not found in the Merkle Path`);return e.offset}computeRootCached(t,e,n,r,s){if(typeof t!="string"&&(t=this.path[0].find(f=>!!f.hash)?.hash),typeof t!="string")throw new TypeError("Transaction ID is undefined");let o=this.indexOf(t);if(this.path.length===1&&this.path[0].length===1)return t;let c=Math.max(this.path.length,Yu(s)),u=t;for(let f=0;f<c;f++){let d=`${f}:${pn(o,f)}`,l=iy(d,u,c,r);if(l!=null)return l;r.set(d,u);let p=lo(pn(o,f)),b=this.cachedFindLeaf(f,p,e,n,s);u=sp(u,b,p,o,f,this.path.length===1&&Gu(o,s,f))}return r.set(`${c}:0`,u),u}computeRoot(t){if(typeof t!="string"){let o=this.path[0].find(c=>!!c?.hash);if(o==null)throw new Error("No valid leaf found in the Merkle Path");t=o.hash}if(typeof t!="string")throw new TypeError("Transaction ID is undefined");let e=this.indexOf(t),n=t;if(this.path.length===1&&this.path[0].length===1)return n;let r=this.path[0].reduce((o,c)=>Math.max(o,c.offset),0),s=Math.max(this.path.length,Yu(r));for(let o=0;o<s;o++){let c=lo(pn(e,o));n=sp(n,this.findOrComputeLeaf(o,c),c,e,o,this.path.length===1&&Gu(e,r,o))}return n}findOrComputeLeaf(t,e){rp(e);let n=t<this.path.length?this.path[t].find(f=>f.offset===e):void 0;if(n!=null)return n;if(t===0)return;let r=t-1,s=e*2;if(!Number.isSafeInteger(s))return;let o=this.findOrComputeLeaf(r,s);if(o?.hash==null||o.hash==="")return;let c=this.findOrComputeLeaf(r,s+1);if(c?.hash==null){if(c?.duplicate===!0)return{offset:e,hash:gn(o.hash,o.hash)};if(this.path.length===1){let f=this.path[0].reduce((d,l)=>Math.max(d,l.offset),0);if(s===pn(f,r))return{offset:e,hash:gn(o.hash,o.hash)}}return}let u;return c.duplicate===!0?u=gn(o.hash,o.hash):u=gn(c.hash,o.hash),n={offset:e,hash:u},n}async verify(t,e){let n=this.blockHeight;if(!Number.isSafeInteger(n)||n<0)throw new Error("Merkle Path block height must be a non-negative safe integer");let r=e?.currentHeight,s=e?.isValidRootForHeight;if(typeof r!="function"||typeof s!="function")throw new TypeError("A valid ChainTracker is required");let o=this.computeRoot(t);if(this.indexOf(t)===0){let u=await r.call(e);if(!Number.isSafeInteger(u)||u<0)throw new Error("ChainTracker current height must be a non-negative safe integer");if(n+100>u)return!1}return await s.call(e,o,n)===!0}combine(t){if(this.blockHeight!==t.blockHeight)throw new Error("You cannot combine paths which do not have the same block height.");let e=this.computeRoot(),n=t.computeRoot();if(e!==n)throw new Error("You cannot combine paths which do not have the same root.");let r=[];for(let s=0;s<this.path.length;s++){r.push([]);for(let o of this.path[s])r[s].push({...o});for(let o of t.path[s]){let c=r[s].find(u=>u.offset===o.offset);c===void 0?r[s].push({...o}):o?.txid!==void 0&&o?.txid!==null&&(c.txid=!0)}}this.path=r,this.trim()}trim(){let t=(o,c)=>{(c.length===0||c.at(-1)!==o)&&c.push(o)},e=(o,c)=>{for(let u=o.length;u>=0;u--){let f=this.path[c].findIndex(d=>d.offset===o[u]);f>=0&&this.path[c].splice(f,1)}},n=o=>{let c=[];for(let u of o)t(pn(u,1),c);return c},r=[],s=[];for(let o of this.path)o.sort((c,u)=>c.offset-u.offset);for(let o=0;o<this.path[0].length;o++){let c=this.path[0][o];if(c.txid===!0)t(pn(c.offset,1),r);else{let u=c.offset%2===1,f=this.path[0][o+(u?-1:1)];(f.txid===void 0||f.txid===null||!f.txid)&&t(f.offset,s)}}e(s,0);for(let o=1;o<this.path.length;o++)s=r,r=n(r),e(s,o)}cachedFindLeaf(t,e,n,r,s){let o=`${t}:${e}`;if(r.has(o))return r.get(o);let c=t<n.length?n[t].get(e):void 0;if(c!=null)return r.set(o,c),c;if(t===0){r.set(o,void 0);return}let u=t-1,f=e*2;if(!Number.isSafeInteger(f))return;let d=this.cachedFindLeaf(u,f,n,r,s);if(d?.hash==null||d.hash===""){r.set(o,void 0);return}let l=this.cachedFindLeaf(u,f+1,n,r,s);if(l?.hash==null){if(l?.duplicate===!0||this.path.length===1&&f===pn(s,u))return c={offset:e,hash:gn(d.hash,d.hash)},r.set(o,c),c;r.set(o,void 0);return}let p=l.duplicate===!0?gn(d.hash,d.hash):gn(l.hash,d.hash);return c={offset:e,hash:p},r.set(o,c),c}extract(t){if(t.length===0)throw new Error("At least one txid must be provided to extract");let e=this.computeRoot(),n=this.path[0].reduce((l,p)=>Math.max(l,p.offset),0),r=Math.max(this.path.length,Yu(n)),s=this.createSourceLeafIndex(),o=new Map,c=this.createTxidToOffsetIndex(),u=this.createNeededLeafLevels(r);for(let l of t)this.collectExtractedLeaves(l,c,u,s,o,n,r);let f=new i(this.blockHeight,this.buildExtractedPath(u));f.trim();let d=f.computeRoot();if(d!==e)throw new Error(`Extracted path root ${d} does not match original root ${e}`);return f}createSourceLeafIndex(){let t=Array.from({length:this.path.length});for(let e=0;e<this.path.length;e++){let n=new Map;for(let r of this.path[e])n.set(r.offset,r);t[e]=n}return t}createTxidToOffsetIndex(){let t=new Map;for(let e of this.path[0])e.hash!=null&&t.set(e.hash,e.offset);return t}createNeededLeafLevels(t){let e=Array.from({length:t});for(let n=0;n<t;n++)e[n]=new Map;return e}collectExtractedLeaves(t,e,n,r,s,o,c){let u=e.get(t);if(u===void 0)throw new Error(`Transaction ID ${t} not found in the Merkle Path`);n[0].set(u,{offset:u,txid:!0,hash:t});let f=lo(u);if(!n[0].has(f)){let d=this.cachedFindLeaf(0,f,r,s,o);d!=null&&n[0].set(f,d)}for(let d=1;d<c;d++){let l=lo(pn(u,d));if(n[d].has(l))continue;let p=this.cachedFindLeaf(d,l,r,s,o);p!=null?n[d].set(l,p):Gu(u,o,d)&&n[d].set(l,{offset:l,duplicate:!0})}}buildExtractedPath(t){return t.map(e=>Array.from(e.values()).sort((n,r)=>n.offset-r.offset))}};var ry=32,sy=64;function op(i,t,e){if(i==null||typeof i!="object"||Array.isArray(i))throw new TypeError(`${t} must be an accessor-free plain data object.`);let n=Object.getPrototypeOf(i),r=Object.getOwnPropertyDescriptors(i);if(n!==Object.prototype&&n!==null||Object.getOwnPropertySymbols(i).length!==0||Object.keys(r).length>e||Object.values(r).some(s=>s.get!=null||s.set!=null))throw new TypeError(`${t} must be an accessor-free plain data object.`);return r}function $r(i,t,e){if(i!==void 0){if(typeof i!="string"||Fe(i)>e||Fi(i))throw new TypeError(`${t} must be bounded text without control characters.`);return i}}function oy(i){if(i===void 0)return;let t=op(i,"ARC headers",sy),e=Object.create(null);for(let[n,r]of Object.entries(t)){if(!/^[!#$%&'*+.^_`|~0-9A-Za-z-]{1,128}$/.test(n))throw new TypeError(`ARC header name is invalid: ${n}`);let s=$r(r.value,`ARC header ${n}`,8192);if(s===void 0)throw new TypeError(`ARC header ${n} must be a string.`);e[n]=s}return Object.freeze(e)}function ay(i){let t=i??nr();if(t==null||typeof t!="object"||typeof t.request!="function")throw new TypeError("ARC httpClient must provide request().");return t}function ap(i,t){if(typeof i=="string")return Object.freeze({apiKey:$r(i,"ARC API key",16*1024),httpClient:nr(),deploymentId:t()});let e=op(i??{},"ARC config",ry),n=r=>e[r]?.value;return Object.freeze({apiKey:$r(n("apiKey"),"ARC API key",16*1024),httpClient:ay(n("httpClient")),deploymentId:$r(n("deploymentId"),"ARC deployment ID",256)??t(),callbackUrl:$r(n("callbackUrl"),"ARC callback URL",2048),callbackToken:$r(n("callbackToken"),"ARC callback token",16*1024),headers:oy(n("headers"))})}function cp(i){if(typeof i!="string"||i.length===0||Fe(i)>2048||Fi(i))throw new TypeError("ARC URL must be nonempty bounded text without control characters.");return i}function Ta(i,t){for(let e of t){if(!Object.prototype.hasOwnProperty.call(i,e))throw new Error(`Cannot lock missing configuration property ${e}.`);Object.defineProperty(i,e,{configurable:!1,writable:!1})}}function cy(){return`ts-sdk-${nt(ke(16))}`}var uy=new Set(["DOUBLE_SPEND_ATTEMPTED","REJECTED","INVALID","MALFORMED","MINED_IN_STALE_BLOCK"]),Fr=/^[0-9a-f]{64}$/i,hp=128,pp=8192,fy=256,dy=32,ly=new Set(["SUCCESS","RECEIVED","SENT_TO_NETWORK","ANNOUNCED_TO_NETWORK","ACCEPTED_BY_NETWORK","SEEN_ON_NETWORK","STORED","MINED","IMMUTABLE"]);function ka(i,t,e=!0){return typeof i=="string"&&(e||i.length!==0)&&Fe(i)<=t&&!Fi(i)}function Ju(i){if(i==null||typeof i!="object"||Array.isArray(i))return;let t=Object.getPrototypeOf(i);if(t!==Object.prototype&&t!==null)return;let e=Object.getOwnPropertyDescriptors(i);if(!(Object.getOwnPropertySymbols(i).length!==0||Object.keys(e).length>dy||Object.values(e).some(n=>n.get!=null||n.set!=null)))return e}function hy(i){if(i===void 0||!Array.isArray(i)||i.length>fy)return;let t=Object.getOwnPropertyDescriptors(i),e=new Set(["length",...Array.from({length:i.length},(s,o)=>String(o))]);if(Object.getOwnPropertySymbols(i).length!==0||Object.keys(t).length!==e.size||Object.keys(t).some(s=>!e.has(s))||Object.values(t).some(s=>s.get!=null||s.set!=null))return;let n=[],r=new Set;for(let s=0;s<i.length;s++){let o=t[s]?.value;if(typeof o!="string"||!Fr.test(o))return;let c=o.toLowerCase();if(r.has(c))return;r.add(c),n.push(c)}return n}function up(i){try{return i.toHexEF()}catch(t){if(t.message==="All inputs must have source transactions when serializing to EF format")return i.toHex();throw t}}function rr(i){return{status:"error",code:"ERR_INVALID_RESPONSE",description:i}}function fp(i,t){let e=Ju(i);if(e===void 0)return rr("ARC returned a malformed response.");let n=p=>e[p]?.value,r=n("txid"),s=n("extraInfo"),o=n("txStatus"),c=n("competingTxs");if(!ka(o,hp,!1)||s!==void 0&&!ka(s,pp))return rr("ARC returned invalid transaction status metadata.");let u=hy(c);if(c!==void 0&&u===void 0)return rr("ARC returned invalid competing transaction identifiers.");let f=o.toUpperCase(),d=s?.toUpperCase().includes("ORPHAN")||f.includes("ORPHAN");if(uy.has(f)||d){if(typeof r=="string"&&Fr.test(r)&&r.toLowerCase()!==t.toLowerCase())return{status:"error",code:"ERR_TXID_MISMATCH",description:"ARC returned a failure for another transaction."};let p={status:"error",code:o,description:`${o} ${s??""}`.trim()};return typeof r=="string"&&Fr.test(r)&&(p.txid=t.toLowerCase()),u!=null&&(p.more={competingTxs:u}),p}if(!ly.has(f))return rr("ARC returned an unknown transaction status.");if(typeof r!="string"||!Fr.test(r)||r.toLowerCase()!==t.toLowerCase())return{status:"error",code:"ERR_TXID_MISMATCH",description:"ARC acknowledged a transaction other than the submitted transaction."};let l={status:"success",txid:t,message:`${o} ${s??""}`.trim()};return u!=null&&(l.competingTxs=u),l}function py(i){if(typeof i!="string")return i;try{return JSON.parse(i)}catch{return i}}function dp(i,t,e){let r={status:"error",code:typeof i=="number"&&Number.isSafeInteger(i)||typeof i=="string"&&ka(i,hp,!1)?i.toString():"ERR_UNKNOWN",description:"Unknown error"},s=py(t),o=Ju(s);if(o===void 0)return r;let c=o.detail?.value,u=o.txid?.value;if(typeof u=="string"&&Fr.test(u)){if(e!==void 0&&u.toLowerCase()!==e.toLowerCase())return{status:"error",code:"ERR_TXID_MISMATCH",description:"ARC returned a failure for another transaction."};r.txid=u.toLowerCase()}let f={};return ka(c,pp)&&(r.description=c,f.detail=c),r.txid!==void 0&&(f.txid=r.txid),Object.keys(f).length!==0&&(r.more=f),r}function lp(){return{status:"error",code:"500",description:"Internal Server Error"}}var qr,po,Zu,ho=class{constructor(t,e){G(this,po);m(this,"URL");m(this,"apiKey");m(this,"deploymentId");m(this,"callbackUrl");m(this,"callbackToken");m(this,"headers");G(this,qr);this.URL=cp(t);let n=ap(e,cy);this.apiKey=n.apiKey,N(this,qr,n.httpClient),this.deploymentId=n.deploymentId,this.callbackToken=n.callbackToken,this.callbackUrl=n.callbackUrl,this.headers=n.headers,Ta(this,["URL","apiKey","deploymentId","callbackUrl","callbackToken","headers"])}async broadcast(t){let e={method:"POST",headers:a(this,po,Zu).call(this),data:{rawTx:up(t)}};try{let n=await w(this,qr).request(`${this.URL}/v1/tx`,e);return n.ok?fp(n.data,t.id("hex")):dp(n.status,n.data,t.id("hex"))}catch{return lp()}}async broadcastMany(t){let e=t.map(r=>({rawTx:up(r)})),n={method:"POST",headers:a(this,po,Zu).call(this),data:e};try{let r=await w(this,qr).request(`${this.URL}/v1/txs`,n);if(!r.ok)return t.map(u=>dp(r.status,r.data,u.id("hex")));if(!Array.isArray(r.data)||r.data.length!==t.length)return t.map(()=>rr("ARC returned a malformed batch response."));let s=Object.getOwnPropertyDescriptors(r.data),o=new Set(["length",...Array.from({length:r.data.length},(u,f)=>String(f))]);if(Object.getOwnPropertySymbols(r.data).length!==0||Object.keys(s).length!==o.size||Object.keys(s).some(u=>!o.has(u))||Object.values(s).some(u=>u.get!=null||u.set!=null))return t.map(()=>rr("ARC returned a malformed batch response."));let c=new Map;for(let u of t){let f=u.id("hex").toLowerCase();c.set(f,(c.get(f)??0)+1)}return Array.from({length:r.data.length},(u,f)=>{let d=s[f]?.value,l=Ju(d);if(l===void 0)return rr("ARC returned a malformed batch result.");let p=l.txid?.value,b=typeof p=="string"&&Fr.test(p)?p.toLowerCase():"",g=c.get(b)??0;return g<1?{status:"error",code:"ERR_TXID_MISMATCH",description:"ARC batch acknowledged a transaction that was not submitted."}:(g===1?c.delete(b):c.set(b,g-1),fp(d,b))})}catch{let r=lp();return t.map(()=>r)}}};qr=new WeakMap,po=new WeakSet,Zu=function(){let t={"Content-Type":"application/json","XDeployment-ID":this.deploymentId};if(this.apiKey!=null&&this.apiKey!==""&&(t.Authorization=`Bearer ${this.apiKey}`),this.callbackUrl!=null&&this.callbackUrl!==""&&(t["X-CallbackUrl"]=this.callbackUrl),this.callbackToken!=null&&this.callbackToken!==""&&(t["X-CallbackToken"]=this.callbackToken),this.headers!=null)for(let[e,n]of Object.entries(this.headers))t[e]=n;return t};function gp(i=!1,t={}){return new ho(i?"https://testnet.arc.gorillapool.io":"https://arc.gorillapool.io",t)}var bp=/^[0-9a-f]{64}$/i,mp=2147483647,gy=256,yp=64;function by(i,t,e){if(typeof i!="string"||Fe(i)>e||Fi(i))throw new TypeError(`${t} must be bounded text without control characters.`);return i}function Qu(i,t,e){if(i==null||typeof i!="object"||Array.isArray(i))throw new TypeError(`${t} must be an accessor-free plain data object.`);let n=Object.getPrototypeOf(i),r=Object.getOwnPropertyDescriptors(i);if(n!==Object.prototype&&n!==null||Object.getOwnPropertySymbols(i).length!==0||Object.keys(r).length>e||Object.values(r).some(s=>s.get!=null||s.set!=null))throw new TypeError(`${t} must be an accessor-free plain data object.`);return r}function my(i){if(i!=="main"&&i!=="test"&&i!=="stn")throw new TypeError("What's On Chain network must be 'main', 'test', or 'stn'.");return i}function yy(i){let t=i??nr();if(t==null||typeof t!="object"||typeof t.request!="function")throw new TypeError("What's On Chain httpClient must provide request().");return t}function wy(i){let t=Qu(i,"What's On Chain config",8);return{apiKey:t.apiKey?.value===void 0?"":by(t.apiKey.value,"What's On Chain API key",16*1024),httpClient:yy(t.httpClient?.value)}}function xy(i,t){if(typeof i!="string"||!bp.test(i))throw new TypeError("Merkle root must be a 64-character hexadecimal string.");if(!Number.isSafeInteger(t)||t<0||t>mp)throw new TypeError("Block height must be a nonnegative bounded integer.");return{root:i.toLowerCase(),height:t}}function Iy(i){try{let e=Qu(i,"What's On Chain block header",yp).merkleroot?.value;return typeof e=="string"&&bp.test(e)?e.toLowerCase():void 0}catch{return}}function Sy(i){if(!Array.isArray(i)||i.length===0||i.length>gy)return;let t=Object.getOwnPropertyDescriptors(i),e=new Set(["length",...Array.from({length:i.length},(n,r)=>String(r))]);if(!(Object.getOwnPropertySymbols(i).length!==0||Object.keys(t).length!==e.size||Object.keys(t).some(n=>!e.has(n))||Object.values(t).some(n=>n.get!=null||n.set!=null)))try{let r=Qu(t[0]?.value,"What's On Chain height response",yp).height?.value;return Number.isSafeInteger(r)&&r>=0&&r<=mp?r:void 0}catch{return}}var go=class{constructor(t="main",e={}){m(this,"network");m(this,"apiKey");m(this,"URL");m(this,"httpClient");this.network=my(t),this.URL=`https://api.whatsonchain.com/v1/bsv/${this.network}`;let n=wy(e);this.httpClient=n.httpClient,this.apiKey=n.apiKey,Ta(this,["network","URL","httpClient","apiKey"])}async isValidRootForHeight(t,e){let n=xy(t,e),r={method:"GET",headers:this.getHttpHeaders()};try{let s=await this.httpClient.request(`${this.URL}/block/${n.height}/header`,r);if(s.ok)return Iy(s.data)===n.root;if(s.status===404)return!1;throw new Error("provider request failed")}catch{throw new Error(`Failed to verify merkleroot for height ${n.height}.`)}}async currentHeight(){try{let t={method:"GET",headers:this.getHttpHeaders()},e=await this.httpClient.request(`${this.URL}/block/headers`,t);if(e.ok){let n=Sy(e.data);if(n!==void 0)return n}throw new Error("provider response was invalid")}catch{throw new Error("Failed to get current height from What's On Chain.")}}getHttpHeaders(){let t={Accept:"application/json"};return typeof this.apiKey=="string"&&this.apiKey.trim()!==""&&(t.Authorization=this.apiKey),t}};function wp(){return new go}var Ke;(function(i){i[i.RAWTX=0]="RAWTX",i[i.RAWTX_AND_BUMP_INDEX=1]="RAWTX_AND_BUMP_INDEX",i[i.TXID_ONLY=2]="TXID_ONLY"})(Ke||(Ke={}));function Wr(i,t){if(!Number.isSafeInteger(t)||t<0||i.pos+t>i.bin.length)throw new RangeError("Serialized transaction exceeds available BEEF data");i instanceof mt?i.skip(t):i.read(t)}function tf(i){let t=i.pos;Wr(i,4);let e=i.readVarIntNumStrict(!1),n=new Set;for(let o=0;o<e;o++){n.add(nt(i.readReverse(32))),Wr(i,4);let c=i.readVarIntNumStrict(!1);Wr(i,c+4)}let r=i.readVarIntNumStrict(!1);for(let o=0;o<r;o++){Wr(i,8);let c=i.readVarIntNumStrict(!1);Wr(i,c)}return Wr(i,4),{rawTx:i instanceof mt?i.bin.subarray(t,i.pos):Uint8Array.from(i.bin.slice(t,i.pos)),inputTxids:Array.from(n)}}function vy(i){return tf(new mt(i)).inputTxids}function Ay(i,t){if(i.length!==t.length)return!1;for(let e=0;e<i.length;e++)if(i[e]!==t[e])return!1;return!0}var ze=class i{constructor(t,e,n,r=!1){m(this,"_bumpIndex");m(this,"_tx");m(this,"_rawTx");m(this,"_txid");m(this,"inputTxids",[]);m(this,"isValid");if(typeof t=="string")this._txid=t;else if(t instanceof Uint8Array)this._rawTx=r?t:Uint8Array.from(t);else if(Array.isArray(t))this._rawTx=new Uint8Array(t);else if(t instanceof Ue)this._tx=t;else throw new TypeError("Invalid transaction data type");this._bumpIndex=e,this.hasProof?this.inputTxids=[]:n!=null?this.inputTxids=Array.from(n):this.updateInputTxids()}get bumpIndex(){return this._bumpIndex}set bumpIndex(t){this._bumpIndex=t,this.updateInputTxids()}get hasProof(){return this._bumpIndex!==void 0}get isTxidOnly(){return this._txid!==void 0&&this._txid!==null&&this._rawTx==null&&this._tx==null}get txid(){if(this._txid!==void 0&&this._txid!==null&&this._txid!=="")return this._txid;if(this._tx!=null)return this._txid=this._tx.id("hex"),this._txid;if(this._rawTx!=null)return this._txid=nt(Gt(this._rawTx).reverse()),this._txid;throw new Error("Internal")}get tx(){if(this._tx!=null)return this._tx;if(this._rawTx!=null)return this._tx=Ue.fromBinaryView(this._rawTx),this._txid!=null&&Ip(this._tx,this._txid),this._tx}get rawTx(){let t=this.rawTxUint8Array;return t==null?void 0:Array.from(t)}get rawTxUint8Array(){let t=this.getRawTxBytes();return t==null?void 0:Uint8Array.from(t)}getRawTxBytes(){return this._tx!=null?(this._rawTx==null?this._rawTx=this._tx.toUint8Array():this.syncRawTxFromTransaction(),this._rawTx):this._rawTx}syncRawTxFromTransaction(){if(this._tx==null)return!1;let t=xp(this._tx);if(this._rawTx!=null)return t===this._rawTx?!1:(this._rawTx=t,this._txid=this._tx.id("hex"),this.updateInputTxids(),!0);let e=this._tx.id("hex"),n=this._txid!=null&&this._txid!==e,r=this.inputTxids;return this._txid=e,this.updateInputTxids(),n||!Ay(r,this.inputTxids)}static fromTx(t,e){return new i(t,e)}static fromRawTx(t,e){return new i(t,e)}static fromTxid(t,e){return new i(t,e)}updateInputTxids(){if(this.hasProof)this.inputTxids=[];else if(this._tx!=null){let t=new Set;for(let e of this._tx.inputs)e.sourceTXID!==void 0&&e.sourceTXID!==null&&e.sourceTXID!==""&&t.add(e.sourceTXID);this.inputTxids=Array.from(t)}else this._rawTx!=null?this.inputTxids=vy(this._rawTx):this.inputTxids=[]}toWriter(t,e){let n=c=>{t.writeUInt8(c)},r=()=>{if(this._txid==null)throw new Error("Transaction ID (_txid) is undefined");t.writeReverse(at(this._txid,"hex"))},s=()=>{let c=this.getRawTxBytes();if(c==null)throw new Error("a valid serialized Transaction is expected");t.write(c)},o=()=>{this.bumpIndex===void 0?n(Ke.RAWTX):(n(Ke.RAWTX_AND_BUMP_INDEX),t.writeVarIntNum(this.bumpIndex))};e===4022206466?this.isTxidOnly?(n(Ke.TXID_ONLY),r()):this.bumpIndex!==void 0?(n(Ke.RAWTX_AND_BUMP_INDEX),t.writeVarIntNum(this.bumpIndex),s()):(n(Ke.RAWTX),s()):(s(),o())}static fromReader(t,e){let n,r;if(e===4022206466){let s=t.readUInt8();if(s===Ke.TXID_ONLY)r=i.fromTxid(nt(t.readReverse(32)));else{s===Ke.RAWTX_AND_BUMP_INDEX&&(n=t.readVarIntNumStrict(!1));let{rawTx:o,inputTxids:c}=tf(t);r=new i(o,n,c,!0)}}else{let{rawTx:s,inputTxids:o}=tf(t);n=t.readUInt8()===0?void 0:t.readVarIntNumStrict(!1),r=new i(s,n,o,!0)}return r}};function Ey(i,t,e,n){if(t.path.length!==e)throw new Error("Mismatched roots");for(let r=0;r<e;r++)Ty(i[r],t.path[r],n)}function Ty(i,t,e){for(let n of t){let r=i.get(n.offset);if(r==null){i.set(n.offset,n);continue}ky(r,n,e)}}function ky(i,t,e){if(e&&(i.hash!==t.hash||i.duplicate!==t.duplicate))throw new Error("Mismatched roots");t.txid!=null&&(i.txid=!0)}function Sp(i,t,e){for(let n of i.path[0])typeof n.hash=="string"&&e.set(n.hash,t)}var Rn,Nn,Bn,Gn,Xe,Yn,or,Xr,ar,jr,Gr,Yr,cr,ur,_n,Me,Cn,O,Vr,Oa,nf,rf,Pa,vp,Ap,Ep,Tp,On,kp,Pn,Op,Pp,bo,Rp,sf,of,af,Np,mo,yo,Ra,sr,Kr,cf,Na,Bp,uf,_p,Cp,Lp,wo,Up,Mp,Ba,Dp,Hp,ff,$p,Fp,qp,Wp,Vp,Kp,zp,zr,df,Xp,_a,jp,Gp,Yp,Zp,Jp,Qp,t0,e0,bn=class bn{constructor(t=4022206466){G(this,O);m(this,"bumps",[]);m(this,"txs",[]);m(this,"version",4022206466);m(this,"atomicTxid");G(this,Rn);G(this,Nn);G(this,Bn);G(this,Gn);G(this,Xe);G(this,Yn);G(this,or,new Map);G(this,Xr);G(this,ar);G(this,jr);G(this,Gr);G(this,Yr);G(this,cr);G(this,ur);G(this,_n,!0);G(this,Me);G(this,Cn);this.version=t}synchronizeNestedTransactionMutations(){let t=!1;for(let e of this.txs)t=e.syncRawTxFromTransaction()||t;t&&(a(this,O,Vr).call(this),N(this,Me,void 0),N(this,Cn,void 0),N(this,_n,!0),a(this,O,sr).call(this))}isAtomic(t=this.atomicTxid??""){if(this.synchronizeNestedTransactionMutations(),a(this,O,On).call(this),t.length===0)return!1;let e=a(this,O,yo).call(this);if(e.size!==this.txs.length)return!1;let n=e.get(t);return n==null?!1:a(this,O,of).call(this,n,e).size===this.txs.length}findTxid(t){return this.synchronizeNestedTransactionMutations(),a(this,O,mo).call(this,t)}makeTxidOnly(t){let e=a(this,O,Ra).call(this).get(t);if(e===void 0)return;let n=this.txs[e];return n.isTxidOnly||(n=ze.fromTxid(t),this.txs[e]=n,a(this,O,Kr).call(this,n,e),a(this,O,zr).call(this,n),a(this,O,Pn).call(this,!0)),n}findBump(t){a(this,O,On).call(this);let e=a(this,O,Na).call(this).get(t);return e===void 0?void 0:this.bumps[e]}findTransactionForSigning(t){let e=this.findTxid(t);if(e?.tx!=null){for(let n of e.tx.inputs)if(n.sourceTransaction==null){let r=a(this,O,mo).call(this,Xi(n.sourceTXID,"sourceTXID must be valid"));r!=null&&(n.sourceTransaction=r.tx)}return e.tx}}findAtomicTransaction(t){let e=this.findTxid(t);if(e?.tx!=null)return a(this,O,_p).call(this,e.tx),e.tx}mergeBump(t){return this.synchronizeNestedTransactionMutations(),a(this,O,On).call(this),a(this,O,Pn).call(this,!1),a(this,O,wo).call(this,t)}mergeProvenTxs(t){if(t.length===0)return[];this.synchronizeNestedTransactionMutations(),a(this,O,On).call(this),a(this,O,Pn).call(this,!0);let e=[];for(let s of t)e.push(a(this,O,Ba).call(this,s.rawTx));let n=new Map;for(let s of t){let o=s.merklePath.blockHeight;n.set(o,(n.get(o)??0)+1)}let r=new Map;for(let s=0;s<t.length;s++){let o=t[s].merklePath,c=t[s].merkleRoot,u=n.get(o.blockHeight)===1?`${o.blockHeight}:single:${s}`:`${o.blockHeight}:${c??o.computeRoot()}`,f=r.get(u);f==null?r.set(u,{first:s,paths:[o],validateCombined:c!=null}):(f.paths.push(o),f.validateCombined=f.validateCombined||c!=null)}for(let s of[...r.values()].sort((o,c)=>o.first-c.first))a(this,O,wo).call(this,a(this,O,Lp).call(this,s.paths,s.validateCombined));return e}mergeRawTx(t,e){return this.synchronizeNestedTransactionMutations(),a(this,O,Pn).call(this,!0),a(this,O,Ba).call(this,t,e)}mergeTransaction(t){return this.synchronizeNestedTransactionMutations(),a(this,O,Pn).call(this,!0),a(this,O,ff).call(this,t)}removeExistingTxid(t){let e=a(this,O,Ra).call(this).get(t);e!==void 0&&(this.txs.splice(e,1),a(this,O,sr).call(this),a(this,O,Pn).call(this,!0))}mergeTxidOnly(t){let e=this.findTxid(t);return e==null&&(e=new ze(t),this.txs.push(e),a(this,O,Kr).call(this,e),a(this,O,zr).call(this,e),a(this,O,Pn).call(this,!0)),e}mergeBeefTx(t){let e=this.findTxid(t.txid);if(t.isTxidOnly&&e==null?e=this.mergeTxidOnly(t.txid):t._tx!=null&&(e==null||e.isTxidOnly)?e=this.mergeTransaction(t._tx):t._rawTx!=null&&(e==null||e.isTxidOnly)&&(e=this.mergeRawTx(t._rawTx)),e==null)throw new Error(`Failed to merge BeefTx for txid: ${t.txid}`);return e}mergeBeef(t){let e=bn.fromBinaryStrict(t instanceof bn?t.toBinary():t);this.synchronizeNestedTransactionMutations(),a(this,O,On).call(this),a(this,O,Pn).call(this,!0);for(let n of e.bumps)a(this,O,wo).call(this,n);for(let n of e.txs)a(this,O,$p).call(this,n)}isValid(t){return this.verifyValid(t).valid}async verify(t,e){let n=this.verifyValid(e);if(!n.valid)return!1;for(let r of Object.keys(n.roots))if(await t.isValidRootForHeight(n.roots[r],Number(r))!==!0)return!1;return!0}verifyValid(t){a(this,O,On).call(this);let e={valid:!1,roots:{}};if(this.atomicTxid!=null&&!this.isAtomic(this.atomicTxid))return e;let n=this.sortTxs();if(a(this,O,Fp).call(this)||n.missingInputs.length>0||n.notValid.length>0||n.txidOnly.length>0&&t!==!0||n.withMissingInputs.length>0)return e;let r={};return!a(this,O,qp).call(this,r,t)||!a(this,O,Wp).call(this,r,e)||!a(this,O,Vp).call(this)||!a(this,O,Kp).call(this,r)||(e.valid=!0),e}toWriter(t){t.writeUInt32LE(this.version),t.writeVarIntNum(this.bumps.length);for(let e of this.bumps)t.write(t instanceof ht?e.toBinaryUint8Array():e.toBinary());t.writeVarIntNum(this.txs.length);for(let e of this.txs)e.toWriter(t,this.version)}toBinary(){return Array.from(a(this,O,bo).call(this))}toUint8Array(){return new Uint8Array(a(this,O,bo).call(this))}toBinaryAtomic(t){return Array.from(a(this,O,sf).call(this,t))}toUint8ArrayAtomic(t){return new Uint8Array(a(this,O,sf).call(this,t))}toHex(){let t=a(this,O,bo).call(this);if(w(this,Yn)!=null)return w(this,Yn);let e=nt(t);return N(this,Yn,e),e}static fromReader(t){var f;let e=t.pos,n=t.readUInt32LE(),r,s=e;if(n===16843009&&(r=nt(t.readReverse(32)),s=t.pos,n=t.readUInt32LE()),n!==4022206465&&n!==4022206466)throw new Error(`Serialized BEEF must start with ${4022206465} or ${4022206466} but starts with ${n}`);let o=new bn(n),c=t.readVarIntNumStrict(!1);for(let d=0;d<c;d++){let l=wi.fromReader(t,!1);o.bumps.push(l)}let u=t.readVarIntNumStrict(!1);for(let d=0;d<u;d++){let l=ze.fromReader(t,n);o.txs.push(l)}return o.atomicTxid=r,t instanceof mt&&(N(o,Xe,t.bin.subarray(s,t.pos)),a(f=o,O,Oa).call(f)),o}static fromBinary(t){return bn.fromReader(new mt(Uint8Array.from(t)))}static fromBinaryStrict(t){return bn.fromBinaryView(Uint8Array.from(t))}static fromBinaryView(t){let e=new mt(t),n=bn.fromReader(e);if(!e.eof())throw new Error("Serialized BEEF contains trailing data");return n}static fromString(t,e="hex"){let n=et(t,e);return bn.fromBinaryStrict(n)}sortTxs(){if(this.synchronizeNestedTransactionMutations(),a(this,O,On).call(this),w(this,Me)!=null&&a(this,O,Xp).call(this))return a(this,O,_a).call(this,w(this,Me));N(this,Me,void 0),N(this,Cn,void 0);let t={},e={},n=[],r=[],s=this.partitionTxs(e,t,n,r),{txsMissingInputs:o,missingInputs:c,remaining:u}=a(this,O,jp).call(this,s,e);s=u;let f=a(this,O,Gp).call(this,s,t,n);this.txs=o.concat(f).concat(r).concat(n),N(this,_n,!1),a(this,O,Vr).call(this),a(this,O,sr).call(this);let d={missingInputs:Object.keys(c),notValid:f.map(l=>l.txid),valid:Object.keys(t),withMissingInputs:o.map(l=>l.txid),txidOnly:r.map(l=>l.txid)};return N(this,Me,d),a(this,O,df).call(this),a(this,O,_a).call(this,d)}partitionTxs(t,e,n,r){let s=[];for(let o of this.txs)t[o.txid]=o,o.isValid=o.hasProof,o.isValid?(e[o.txid]=!0,n.push(o)):o.isTxidOnly&&o.inputTxids.length===0?(e[o.txid]=!0,r.push(o)):s.push(o);return s}clone(){var e,n;let t=new bn;return t.version=this.version,t.bumps=Array.from(this.bumps),t.txs=Array.from(this.txs),N(t,Rn,void 0),N(t,Nn,void 0),N(t,Bn,void 0),N(t,Gn,void 0),N(t,_n,w(this,_n)),N(t,Me,w(this,Me)==null?void 0:a(this,O,_a).call(this,w(this,Me))),w(t,Me)!=null&&a(e=t,O,df).call(e),N(t,Yn,w(this,Yn)),N(t,Xe,w(this,Xe)),w(t,Xe)!=null&&a(n=t,O,Oa).call(n),t}trimKnownTxids(t){let e=a(this,O,Qp).call(this,new Set(t));e=a(this,O,t0).call(this)||e,e&&a(this,O,Pn).call(this,!0)}getValidTxids(){return this.sortTxs().valid}toLogString(){let t="";t+=`BEEF with ${this.bumps.length} BUMPS and ${this.txs.length} Transactions, isValid ${this.isValid().toString()}
9
+ `;let e=-1;for(let n of this.bumps)e++,t+=` BUMP ${e}
10
+ block: ${n.blockHeight}
11
+ txids: [
12
+ ${n.path[0].filter(r=>r.txid===!0).map(r=>` '${r.hash??""}'`).join(`,
13
+ `)}
14
+ ]
15
+ `;e=-1;for(let n of this.txs)if(e++,t+=` TX ${e}
16
+ txid: ${n.txid}
17
+ `,n.bumpIndex!==void 0&&(t+=` bumpIndex: ${n.bumpIndex}
18
+ `),n.isTxidOnly?t+=` txidOnly
19
+ `:t+=` rawTx length=${n.rawTx?.length??0}
20
+ `,n.inputTxids.length>0){let r=n.inputTxids.map(s=>` '${s}'`).join(`,
21
+ `);t+=` inputs: [
22
+ ${r}
23
+ ]
24
+ `}return t}addComputedLeaves(){for(let t of this.bumps)for(let e=1;e<t.path.length;e++)a(this,O,e0).call(this,t,e)}};Rn=new WeakMap,Nn=new WeakMap,Bn=new WeakMap,Gn=new WeakMap,Xe=new WeakMap,Yn=new WeakMap,or=new WeakMap,Xr=new WeakMap,ar=new WeakMap,jr=new WeakMap,Gr=new WeakMap,Yr=new WeakMap,cr=new WeakMap,ur=new WeakMap,_n=new WeakMap,Me=new WeakMap,Cn=new WeakMap,O=new WeakSet,Vr=function(){N(this,Xe,void 0),N(this,Yn,void 0),w(this,or).clear(),N(this,Xr,void 0),N(this,ar,void 0),N(this,jr,void 0),N(this,Gr,void 0),N(this,Yr,void 0),N(this,cr,void 0)},Oa=function(){N(this,Gr,this.version),N(this,Yr,a(this,O,nf).call(this)),N(this,cr,Array.from(this.bumps)),a(this,O,Pa).call(this)},nf=function(){return this.txs.map(t=>({ref:t,bumpIndex:t._bumpIndex,rawTx:t._rawTx,tx:t._rawTx==null?t._tx:void 0,txid:t._rawTx==null&&t._tx==null?t._txid:void 0}))},rf=function(t){if(t?.length!==this.txs.length)return!1;for(let e=0;e<this.txs.length;e++){let n=this.txs[e],r=t[e];if(r.ref!==n||r.bumpIndex!==n._bumpIndex||r.rawTx!==n._rawTx||r.tx!==(n._rawTx==null?n._tx:void 0)||r.txid!==(n._rawTx==null&&n._tx==null?n._txid:void 0))return!1}return!0},Pa=function(){N(this,ur,this.bumps.map(t=>({ref:t,blockHeight:t.blockHeight,levels:t.path.map(e=>({ref:e,leaves:e.map(n=>({ref:n,offset:n.offset,hash:n.hash,txid:n.txid,duplicate:n.duplicate}))}))})))},vp=function(t,e){return e.ref===t&&e.offset===t.offset&&e.hash===t.hash&&e.txid===t.txid&&e.duplicate===t.duplicate},Ap=function(t,e){return e.ref===t&&e.leaves.length===t.length&&t.every((n,r)=>a(this,O,vp).call(this,n,e.leaves[r]))},Ep=function(t,e){return e.ref===t&&e.blockHeight===t.blockHeight&&e.levels.length===t.path.length&&t.path.every((n,r)=>a(this,O,Ap).call(this,n,e.levels[r]))},Tp=function(){return w(this,ur)?.length!==this.bumps.length?!1:this.bumps.every((t,e)=>a(this,O,Ep).call(this,t,w(this,ur)[e]))},On=function(){if(w(this,ur)==null){a(this,O,Pa).call(this);return}a(this,O,Tp).call(this)||(a(this,O,Vr).call(this),N(this,Me,void 0),N(this,Cn,void 0),N(this,_n,!0),a(this,O,uf).call(this),a(this,O,Pa).call(this))},kp=function(){if(w(this,Xe)==null||w(this,Gr)!==this.version||!a(this,O,rf).call(this,w(this,Yr))||w(this,cr)?.length!==this.bumps.length)return!1;for(let t=0;t<this.bumps.length;t++)if(w(this,cr)[t]!==this.bumps[t])return!1;return!0},Pn=function(t=!0){a(this,O,Vr).call(this),N(this,Me,void 0),N(this,Cn,void 0),t&&N(this,_n,!0)},Op=function(){for(let t of this.txs)t.txid},Pp=function(){w(this,_n)&&this.sortTxs()},bo=function(){if(this.synchronizeNestedTransactionMutations(),a(this,O,On).call(this),a(this,O,kp).call(this)&&w(this,Xe)!=null)return w(this,Xe);a(this,O,Vr).call(this),a(this,O,Op).call(this),a(this,O,Pp).call(this);let t=new ht;return this.toWriter(t),N(this,Xe,t.toUint8Array()),a(this,O,Oa).call(this),w(this,Xe)},Rp=function(t){let e=a(this,O,yo).call(this),n=e.get(t);if(n==null)throw new Error(`${t} does not exist in this Beef`);let r=a(this,O,of).call(this,n,e),s=a(this,O,Np).call(this,r);return s.sortTxs(),s},sf=function(t){var u;this.synchronizeNestedTransactionMutations(),a(this,O,On).call(this),w(this,jr)===this.version&&a(this,O,rf).call(this,w(this,Xr))&&w(this,ar)?.length===this.bumps.length&&this.bumps.every((f,d)=>w(this,ar)?.[d]===f)||w(this,or).clear();let n=w(this,or).get(t);if(n!=null)return n;let r=a(u=a(this,O,Rp).call(this,t),O,bo).call(u),s=et(t,"hex"),o=new Uint8Array(4+s.length+r.length);new DataView(o.buffer).setUint32(0,16843009,!0);for(let f=0;f<s.length;f++)o[4+f]=s[s.length-1-f];return o.set(r,4+s.length),w(this,or).set(t,o),N(this,Xr,a(this,O,nf).call(this)),N(this,ar,Array.from(this.bumps)),N(this,jr,this.version),o},of=function(t,e){let n=new Set,r=[t];for(;r.length>0;){let s=r.pop();if(!(s==null||n.has(s))&&(n.add(s),!(a(this,O,af).call(this,s)||s.isTxidOnly)))for(let o of s.inputTxids){let c=e.get(o);c!=null&&r.push(c)}}return n},af=function(t){let e=t.bumpIndex;return e==null||!Number.isSafeInteger(e)||e<0||e>=this.bumps.length?!1:this.bumps[e]?.path[0]?.some(n=>n.hash===t.txid)??!1},Np=function(t){let e=new bn(this.version),n=new Map;for(let r of this.txs)!t.has(r)||!a(this,O,af).call(this,r)||r.bumpIndex==null||n.has(r.bumpIndex)||(n.set(r.bumpIndex,e.bumps.length),e.bumps.push(this.bumps[r.bumpIndex]));for(let r of this.txs){if(!t.has(r))continue;let s=r.bumpIndex==null?void 0:n.get(r.bumpIndex),o;r._rawTx!=null?o=new ze(r._rawTx,s,Array.from(r.inputTxids)):r._tx!=null?o=ze.fromTx(r._tx,s):o=ze.fromTxid(r.txid,s),e.txs.push(o)}return e},mo=function(t){return a(this,O,yo).call(this).get(t)},yo=function(){return(w(this,Rn)==null||w(this,Nn)==null)&&a(this,O,sr).call(this),w(this,Rn)},Ra=function(){return(w(this,Nn)==null||w(this,Rn)==null)&&a(this,O,sr).call(this),w(this,Nn)},sr=function(){N(this,Rn,new Map),N(this,Nn,new Map);for(let t=0;t<this.txs.length;t++){let e=this.txs[t];w(this,Rn).set(e.txid,e),w(this,Nn).set(e.txid,t)}},Kr=function(t,e=this.txs.length-1){w(this,Rn)?.set(t.txid,t),w(this,Nn)?.set(t.txid,e)},cf=function(t){let e=a(this,O,Ra).call(this).get(t.txid);e===void 0?(this.txs.push(t),a(this,O,Kr).call(this,t)):(this.txs[e]=t,a(this,O,Kr).call(this,t,e))},Na=function(){if(w(this,Gn)==null){N(this,Gn,new Map);for(let t=0;t<this.bumps.length;t++)for(let e of this.bumps[t].path[0])typeof e.hash=="string"&&w(this,Gn).set(e.hash,t)}return w(this,Gn)},Bp=function(){if(w(this,Bn)==null){N(this,Bn,new Map);for(let t=0;t<this.bumps.length;t++){let e=this.bumps[t],n=w(this,Bn).get(e.blockHeight)??[];n.push(t),w(this,Bn).set(e.blockHeight,n)}}return w(this,Bn)},uf=function(){N(this,Bn,void 0),N(this,Gn,void 0)},_p=function(t){let e=new Set,n=[t];for(;n.length>0;){let r=n.pop();if(r==null)continue;let s=r.id("hex");if(e.has(s))continue;e.add(s);let o=this.findBump(s);if(o!=null){r.merklePath=o;continue}for(let c of r.inputs)a(this,O,Cp).call(this,c),c.sourceTransaction!=null&&n.push(c.sourceTransaction)}},Cp=function(t){if(t.sourceTransaction==null){let e=a(this,O,mo).call(this,Xi(t.sourceTXID,"sourceTXID must be valid"));e!=null&&(t.sourceTransaction=e.tx)}},Lp=function(t,e=!1){let n=t[0];if(t.length===1&&!e)return n;let r=n.path.map(o=>new Map(o.map(c=>[c.offset,c])));for(let o=1;o<t.length;o++)Ey(r,t[o],n.path.length,e);let s=r.map(o=>[...o.values()]);if(e){let o=new wi(n.blockHeight,s);return o.trim(),o}return n.path=s,n.trim(),n},wo=function(t){let e=a(this,O,Up).call(this,t),n=this.bumps[e],r=a(this,O,yo).call(this);for(let s of n.path[0]){if(typeof s.hash!="string")continue;let o=r.get(s.hash);o!=null&&o.bumpIndex==null&&a(this,O,Mp).call(this,o,n,e)}return e},Up=function(t){let e=a(this,O,Bp).call(this),n=a(this,O,Na).call(this),r=e.get(t.blockHeight)??[];if(r.length>0){let o=t.computeRoot();for(let c of r)if(this.bumps[c].computeRoot()===o)return this.bumps[c].combine(t),Sp(this.bumps[c],c,n),c}this.bumps.push(t);let s=this.bumps.length-1;return r.push(s),e.set(t.blockHeight,r),Sp(t,s,n),s},Mp=function(t,e,n){let r=t.txid;for(let s of e.path[0])if(s.hash===r){t.bumpIndex=n,s.txid=!0;break}},Ba=function(t,e){let n=new ze(t,e);return a(this,O,cf).call(this,n),a(this,O,zr).call(this,n),n},Dp=function(t){let e=t.merklePath==null?void 0:a(this,O,wo).call(this,t.merklePath),n=new ze(t,e);return a(this,O,cf).call(this,n),a(this,O,zr).call(this,n),n},Hp=function(t,e){for(let n=t.inputs.length-1;n>=0;n--){let r=t.inputs[n].sourceTransaction;r!=null&&e.push(r)}},ff=function(t){t.materializeSourceTXIDs();let e=t.id("hex"),n=new Set,r=[t],s;for(;r.length>0;){let o=r.pop();if(o==null)continue;let c=o.id("hex");if(n.has(c))continue;n.add(c);let u=a(this,O,Dp).call(this,o);c===e&&(s=u),u.bumpIndex===void 0&&a(this,O,Hp).call(this,o,r)}if(s==null)throw new Error("Failed to merge root transaction");return s},$p=function(t){let e=a(this,O,mo).call(this,t.txid);if(t.isTxidOnly&&e==null?(e=ze.fromTxid(t.txid),this.txs.push(e),a(this,O,Kr).call(this,e),a(this,O,zr).call(this,e)):t._tx!=null&&(e==null||e.isTxidOnly)?e=a(this,O,ff).call(this,t._tx):t._rawTx!=null&&(e==null||e.isTxidOnly)&&(e=a(this,O,Ba).call(this,t._rawTx)),e==null)throw new Error(`Failed to merge BeefTx for txid: ${t.txid}`);return e},Fp=function(){let t=new Set;for(let e of this.txs){if(t.has(e.txid))return!0;t.add(e.txid)}return!1},qp=function(t,e){for(let n of this.txs)if(n.isTxidOnly){if(e!==!0)return!1;t[n.txid]=!0}return!0},Wp=function(t,e){for(let n of this.bumps)for(let r of n.path[0])if(!(r.txid!==!0||typeof r.hash!="string"||r.hash.length===0)&&(t[r.hash]=!0,!a(this,O,zp).call(this,n,r.hash,e)))return!1;return!0},Vp=function(){for(let t of this.txs){if(t.bumpIndex===void 0)continue;if(!Number.isSafeInteger(t.bumpIndex)||t.bumpIndex<0||t.bumpIndex>=this.bumps.length||this.bumps[t.bumpIndex]?.path[0]?.find(n=>n.hash===t.txid)==null)return!1}return!0},Kp=function(t){for(let e of this.txs){for(let n of e.inputTxids)if(!t[n])return!1;t[e.txid]=!0}return!0},zp=function(t,e,n){let r=t.computeRoot(e);return(n.roots[t.blockHeight]===void 0||n.roots[t.blockHeight]==="")&&(n.roots[t.blockHeight]=r),n.roots[t.blockHeight]===r},zr=function(t){if(t.bumpIndex!==void 0)return!0;let e=t.txid,n=a(this,O,Na).call(this).get(e);if(n===void 0)return!1;t.bumpIndex=n;let r=this.bumps[n].path[0].find(s=>s.hash===e);return r!=null&&(r.txid=!0),!0},df=function(){N(this,Cn,this.txs.map(t=>({ref:t,txid:t.txid,bumpIndex:t.bumpIndex,isTxidOnly:t.isTxidOnly,inputTxids:[...t.inputTxids]})))},Xp=function(){if(w(this,Cn)?.length!==this.txs.length)return!1;for(let t=0;t<this.txs.length;t++){let e=this.txs[t],n=w(this,Cn)[t];if(n.ref!==e||n.txid!==e.txid||n.bumpIndex!==e.bumpIndex||n.isTxidOnly!==e.isTxidOnly||n.inputTxids.length!==e.inputTxids.length)return!1;for(let r=0;r<e.inputTxids.length;r++)if(n.inputTxids[r]!==e.inputTxids[r])return!1}return!0},_a=function(t){return{missingInputs:[...t.missingInputs],notValid:[...t.notValid],valid:[...t.valid],withMissingInputs:[...t.withMissingInputs],txidOnly:[...t.txidOnly]}},jp=function(t,e){let n={},r=[],s=[];for(let o of t){let c=!1;for(let u of o.inputTxids)e[u]===void 0&&(n[u]=!0,c=!0);c?r.push(o):s.push(o)}return{txsMissingInputs:r,missingInputs:n,remaining:s}},Gp=function(t,e,n){let{indegree:r,dependents:s,originalIndex:o,round:c}=a(this,O,Yp).call(this,t,e),u=a(this,O,Zp).call(this,t,r,s,o,c);return a(this,O,Jp).call(this,t,u,c,e,n),t.filter(f=>!u.has(f.txid))},Yp=function(t,e){let n=new Set(t.map(u=>u.txid)),r=new Map,s=new Map,o=new Map(t.map((u,f)=>[u.txid,f])),c=new Map;for(let u of t){let f=0;for(let d of u.inputTxids)if(!e[d]&&(f++,n.has(d))){let l=s.get(d)??[];l.push(u),s.set(d,l)}r.set(u.txid,f),c.set(u.txid,0)}return{indegree:r,dependents:s,originalIndex:o,round:c}},Zp=function(t,e,n,r,s){let o=t.filter(u=>e.get(u.txid)===0),c=new Set;for(let u of o)if(!c.has(u.txid)){c.add(u.txid);for(let f of n.get(u.txid)??[]){let d=(s.get(u.txid)??0)+((r.get(u.txid)??0)>(r.get(f.txid)??0)?1:0);s.set(f.txid,Math.max(s.get(f.txid)??0,d));let l=(e.get(f.txid)??0)-1;e.set(f.txid,l),l===0&&o.push(f)}}return c},Jp=function(t,e,n,r,s){let o=[];for(let c of t){if(!e.has(c.txid))continue;let u=n.get(c.txid)??0,f=o[u]??[];f.push(c),o[u]=f}for(let c of o)for(let u of c??[])r[u.txid]=!0,s.push(u)},Qp=function(t){let e=this.txs.length;this.txs=this.txs.filter(r=>!(r.isTxidOnly&&t.has(r.txid)));let n=this.txs.length!==e;return n&&a(this,O,sr).call(this),n},t0=function(){let t=new Set;for(let r of this.txs)r.bumpIndex!==void 0&&t.add(r.bumpIndex);if(t.size>=this.bumps.length)return!1;let e=new Map,n=0;for(let r=0;r<this.bumps.length;r++)t.has(r)&&(e.set(r,n),n++);this.bumps=this.bumps.filter((r,s)=>t.has(s));for(let r of this.txs){if(r.bumpIndex===void 0)continue;let s=e.get(r.bumpIndex);if(s===void 0)throw new Error(`Internal error: bumpIndex ${r.bumpIndex} not found in indexMap`);r.bumpIndex=s}return a(this,O,uf).call(this),!0},e0=function(t,e){let n=r=>nt(Gt(at(r,"hex").reverse()).reverse());for(let r of t.path[e-1]){if(typeof r.hash!="string"||(r.offset&1)!==0)continue;let s=t.path[e-1].find(c=>c.offset===r.offset+1);if(s===void 0||typeof s.hash!="string")continue;let o=r.offset>>1;t.path[e].every(c=>c.offset!==o)&&t.path[e].push({offset:o,hash:n(s.hash+r.hash)})}};var fr=bn,n0=fr;var Qr=256*1024*1024,l0=21e14,Oy=64,lf=1e6,ts=Array.isArray,en=Array,If=Number,Sf=String,Py=Number.isFinite,Ry=Number.isInteger,Ny=Number.isSafeInteger,h0=Object.is,vo=Object.create,By=Object.defineProperty,Dt=Object.getOwnPropertyDescriptor,i0=Object.getOwnPropertyDescriptors,vf=Object.getPrototypeOf,So=Object.keys,Yt=Reflect.apply,Eo=Reflect.ownKeys,_y=RegExp.prototype.exec,Cy=RegExp.prototype.test,Ly=String.prototype.toLowerCase,p0=Uint8Array,Af=Uint8Array.prototype,Ha=vf(Af),r0=Dt(Ha,"buffer")?.get,Ua=Dt(Ha,"length")?.get,s0=Dt(Ha,Symbol.toStringTag)?.get,Uy=Af.set,o0=typeof SharedArrayBuffer>"u"?void 0:Dt(SharedArrayBuffer.prototype,"byteLength")?.get,My=WeakMap.prototype.get,Dy=WeakMap.prototype.set,pf=WeakSet.prototype.add,Hy=WeakSet.prototype.delete,g0=WeakSet.prototype.has,gf=new WeakSet,$y=he.prototype.toHex,bf,mf,yf,b0=/^(?:0|[1-9]\d*)$/,Fy=/^([0-9a-f]{64})\.(0|[1-9]\d*)$/i,qy=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,Wy=/^(?:[0-9a-f]{2})*$/i,Vy=/^[0-9a-f]{64}$/i;function Ky(){let i=[Array.prototype,Map.prototype,Set.prototype,WeakMap.prototype,WeakSet.prototype,Object,Object.prototype,Number,RegExp.prototype,String.prototype,Af,Ha],t=new en(i.length);for(let e=0;e<i.length;e++){let n=i[e],r=Eo(n),s=new en(r.length);for(let o=0;o<r.length;o++)s[o]=Dt(n,r[o]);t[e]={owner:n,keys:r,descriptors:s}}return t}function Io(i){for(let t=0;t<i.length;t++){let e=i[t];if(Eo(e.owner).length!==e.keys.length)throw new Error("Wallet callback modified shared JavaScript intrinsics");for(let n=0;n<e.keys.length;n++){let r=e.descriptors[n],s=Dt(e.owner,e.keys[n]);if(s==null||s.configurable!==r.configurable||s.enumerable!==r.enumerable||s.writable!==r.writable||!h0(s.value,r.value)||s.get!==r.get||s.set!==r.set)throw new Error(`Wallet callback modified shared JavaScript intrinsics (${t}:${Sf(e.keys[n])})`)}}}function Ma(i,t){return Dt(i,t)!==void 0}function Ii(i){return Ny(i)}function Ao(i,t){return Yt(Cy,i,[t])}function lr(i){return Yt(Ly,i,[])}function es(i){return Yt($y,i,[])}function zy(){bf??(bf=Ue.fromAtomicBEEF),mf??(mf=Ue.prototype.id),yf??(yf=Ue.prototype.toAtomicBEEF)}function hf(i){if(bf==null)throw new Error("Transaction intrinsics are unavailable");return Yt(bf,Ue,[i])}function Xy(i){if(yf==null)throw new Error("Transaction intrinsics are unavailable");return Yt(yf,i,[!0])}function m0(i){if(mf==null)throw new Error("Transaction intrinsics are unavailable");return Yt(mf,i,["hex"])}function a0(i,t){return Yt(g0,i.active,[t])}function jy(i,t){Yt(pf,i.active,[t])}function c0(i,t){Yt(Hy,i.active,[t])}function Gy(i,t){return Yt(My,i.completed,[t])}function Ca(i,t,e){Yt(Dy,i.completed,[t,e])}function xi(i,t,e=!1){if(i==null||typeof i!="object"||ts(i))throw new Error(`${t} must be a plain data object`);let n=vf(i);if(n!==Object.prototype&&n!==null)throw new Error(`${t} must be a plain data object`);let r=Eo(i);for(let s=0;s<r.length;s++){let o=r[s],c=Dt(i,o);if(typeof o=="symbol"&&e){if(c==null||!("value"in c))throw new Error(`${t} symbol metadata must be a data property`);continue}if(typeof o!="string"||c==null||!c.enumerable||!("value"in c))throw new Error(`${t} must contain only string-keyed data properties`)}return i}function y0(i,t,e=Qr){if(vf(i)!==Array.prototype)throw new Error(`${t} must contain only dense data arrays`);let n=Dt(i,"length");if(n==null||!("value"in n)||!Ii(n.value)||n.value<0)throw new Error(`${t} must contain only dense data arrays`);let r=n.value;if(r>Qr)throw new Error(`${t} exceeds the byte limit`);if(Eo(i).length!==r+1)throw new Error(`${t} must contain only dense data arrays`);let o=r>e,c=o?void 0:new en(r);for(let u=0;u<r;u++){let f=Dt(i,Sf(u));if(f==null||!f.enumerable||!("value"in f))throw new Error(`${t} must contain only dense data arrays`);if(!Ry(f.value)||f.value<0||f.value>255)return;c!==void 0&&(c[u]=f.value)}if(o)throw new Error(`${t} exceeds the aggregate byte limit`);return c}function w0(i,t,e=Qr){if(r0==null||Ua==null||s0==null)return;let n,r,s;try{n=Yt(r0,i,[]),r=Yt(Ua,i,[]),s=Yt(s0,i,[])}catch{return}if(s!=="Uint8Array")return;if(o0!=null){let c=!1;try{Yt(o0,n,[]),c=!0}catch{}if(c)throw new Error(`${t} must not use shared byte storage`)}if(r>Qr)throw new Error(`${t} exceeds the byte limit`);if(r>e)throw new Error(`${t} exceeds the aggregate byte limit`);let o=new p0(r);try{Yt(Uy,o,[i])}catch{throw new Error(`${t} must contain only intrinsic byte arrays`)}return o}function dr(i,t,e=0,n={nodes:0,active:new WeakSet,completed:new WeakMap,copiedBytes:0},r=!1){if(e>Oy)throw new Error(`${t} exceeds the depth limit`);if(n.nodes+=1,n.nodes>lf)throw new Error(`${t} exceeds the node limit`);if(i==null||typeof i=="string"||typeof i=="boolean")return i;if(typeof i=="number"){if(!Py(i)||h0(i,-0))throw new Error(`${t} contains an ambiguous number`);return i}if(typeof i!="object")throw new Error(`${t} contains unsupported data`);if(a0(n,i))throw new Error(`${t} contains a cycle`);let s=Gy(n,i);if(s!==void 0)return s;let o=w0(i,t,Qr-n.copiedBytes);if(o!==void 0)return n.copiedBytes+=o.length,Yt(pf,gf,[o]),Ca(n,i,o),o;if(ts(i)){let l=y0(i,t,Qr-n.copiedBytes);if(l!==void 0)return n.copiedBytes+=l.length,Yt(pf,gf,[l]),Ca(n,i,l),l;let p=Dt(i,"length");if(p==null||!("value"in p)||!Ii(p.value)||p.value<0)throw new Error(`${t} must contain only dense data arrays`);if(p.value>lf)throw new Error(`${t} exceeds the node limit`)}if(jy(n,i),ts(i)){let l=i0(i),p=l.length;if(p==null||!("value"in p)||!Ii(p.value)||p.value<0||p.value>lf)throw new Error(`${t} must contain only dense data arrays`);let b=p.value,g=Eo(l);if(g.length!==b+1)throw new Error(`${t} must contain only dense data arrays`);for(let v=0;v<g.length;v++){let C=g[v];if(C!=="length"&&(typeof C!="string"||!Ao(b0,C)||If(C)>=b))throw new Error(`${t} must contain only dense data arrays`)}let y=new en(b);for(let v=0;v<b;v++){let C=Sf(v),E=l[C];if(E==null||!E.enumerable||!("value"in E))throw new Error(`${t} must contain only dense data arrays`);y[v]=dr(E.value,`${t}[${v}]`,e+1,n)}return c0(n,i),Ca(n,i,y),y}let c=xi(i,t,r);if(a0(n,c)&&c!==i)throw new Error(`${t} contains a cycle`);let u=vo(null),f=i0(c),d=So(f);for(let l=0;l<d.length;l++){let p=d[l],b=f[p];if(!b.enumerable||!("value"in b))throw new Error(`${t} must contain only string-keyed data properties`);By(u,p,{value:dr(b.value,`${t}.${p}`,e+1,n),enumerable:!0,configurable:!0,writable:!0})}return c0(n,i),Ca(n,i,u),u}function u0(i,t){if(i!=null&&typeof i=="object"){let r=Yt(g0,gf,[i]);if(r&&ts(i)){let o=Dt(i,"length")?.value;if(typeof o!="number"||o===0)throw new Error(`${t} must be a bounded non-empty byte array`);return i}if(r&&Ua!=null){let o;try{o=Yt(Ua,i,[])}catch{throw new Error(`${t} must be a bounded non-empty byte array`)}if(o===0)throw new Error(`${t} must be a bounded non-empty byte array`);return i}let s=w0(i,t);if(s!==void 0){if(s.length===0)throw new Error(`${t} must be a bounded non-empty byte array`);return s}}if(!ts(i))throw new Error(`${t} must be a bounded non-empty byte array`);let e=y0(i,t);if(e==null||e.length===0)throw new Error(`${t} must be a bounded non-empty byte array`);let n=new p0(e.length);for(let r=0;r<e.length;r++)n[r]=e[r];return n}function La(i,t){if(typeof i!="string"||!Ao(Vy,i))throw new Error(`${t} must be a 32-byte hexadecimal transaction ID`);return lr(i)}function Da(i,t){if(typeof i!="string"||!Ao(Wy,i))throw new Error(`${t} must be an even-length hexadecimal string`);return lr(i)}function wf(i,t){if(typeof i!="string")throw new Error(`${t} must be a canonical outpoint`);let e=Yt(_y,Fy,[i]);if(e==null)throw new Error(`${t} must be a canonical outpoint`);let n=If(e[2]);if(!Ii(n)||n>4294967295)throw new Error(`${t} must be a canonical outpoint`);return`${lr(e[1])}.${n}`}function xf(i,t){let e=i.inputs[t];if(e==null||!Ii(e.sourceOutputIndex)||e.sourceOutputIndex<0||e.sourceOutputIndex>4294967295)throw new Error("Wallet transaction input is malformed");let n=e.sourceTransaction==null?void 0:m0(e.sourceTransaction);if(e.sourceTXID!==void 0&&n!==void 0&&La(e.sourceTXID,"Wallet input source TXID")!==La(n,"Wallet input source transaction ID"))throw new Error("Wallet transaction input source mismatch");return`${La(e.sourceTXID??n,"Wallet input source TXID")}.${e.sourceOutputIndex}`}function Jr(i,t){if(typeof i!="number"||!Ii(i)||i<0||i>l0)throw new Error(`${t} must be a valid satoshi amount`);return i}function Zr(i,t,e){let n=i+t;if(!Ii(n)||n>l0)throw new Error(`${e} exceeds the maximum transaction value`);return n}function f0(i,t){let e=i.inputs[t],n=e?.sourceTransaction?.outputs[e.sourceOutputIndex];if(n==null)throw new Error("Wallet signable transaction omitted an input source output");return Jr(n.satoshis,`Wallet input ${t} source output`)}function Yy(i,t,e,n){if(t.version!==(i.version??1))throw new Error("Wallet transaction substituted the requested version");if(t.lockTime!==(i.lockTime??0))throw new Error("Wallet transaction substituted the requested lock time");let r=new en(t.inputs.length),s=vo(null);for(let A=0;A<t.inputs.length;A++){let T=xf(t,A);if(Ma(s,T))throw new Error("Wallet transaction contains a duplicate input outpoint");r[A]=T,s[T]=!0}let o=[],c=vo(null);for(let A=0;A<(i.inputs?.length??0);A++){let T=i.inputs[A],B=wf(T.outpoint,`Requested input ${A} outpoint`);if(Ma(c,B))throw new Error("Action requests the same input outpoint more than once");c[B]=!0;let _=-1;for(let R=0;R<r.length;R++)if(r[R]===B){if(_!==-1)throw new Error("Wallet transaction does not contain each requested input exactly once");_=R}if(_===-1)throw new Error("Wallet transaction does not contain each requested input exactly once");if(o[A]=_,(t.inputs[_].sequence??4294967295)!==(T.sequenceNumber??4294967295))throw new Error("Wallet transaction substituted a requested input sequence");let $=t.inputs[_].unlockingScript;if(T.unlockingScript!==void 0&&($==null?void 0:lr(es($)))!==Da(T.unlockingScript,`Requested input ${A} unlocking script`))throw new Error("Wallet transaction substituted a requested unlocking script")}let u=new en(t.outputs.length);for(let A=0;A<t.outputs.length;A++){let T=t.outputs[A];u[A]={satoshis:Jr(T.satoshis,`Wallet output ${A}`),lockingScript:lr(es(T.lockingScript))}}let f=new en(u.length),d=i.options?.randomizeOutputs===!1,l=0,p=(A,T)=>{let B=i.outputs[A],_=Da(B.lockingScript,`Requested output ${A} locking script`),$=Jr(B.satoshis,`Requested output ${A}`);if(d){let I=u[A],D=I!=null&&(T==null?I.satoshis===$:I.satoshis>=T.minimumSatoshis&&I.satoshis<=T.maximumSatoshis);if(I==null||I.lockingScript!==_||!D)throw new Error("Wallet transaction substituted a requested output position");f[A]=!0,l=Zr(l,I.satoshis,"Requested output value");return}let R=-1;for(let I=0;I<u.length;I++){let D=u[I];if(!(f[I]===!0||D.lockingScript!==_||!(T==null?D.satoshis===$:D.satoshis>=T.minimumSatoshis&&D.satoshis<=T.maximumSatoshis))){if(T==null){R=I;break}if(R!==-1)throw new Error("Wallet transaction omitted or substituted a requested output");R=I}}if(R===-1)throw new Error("Wallet transaction omitted or substituted a requested output");f[R]=!0,l=Zr(l,u[R].satoshis,"Requested output value")};for(let A=0;A<(i.outputs?.length??0);A++)e[A]===void 0&&p(A);for(let A=0;A<(i.outputs?.length??0);A++){let T=e[A];T!=null&&p(A,T)}let b=0,g=new en(t.inputs.length);for(let A=0;A<o.length;A++){let T=o[A];g[T]=!0,b=Zr(b,n?.[A]??f0(t,T),"Requested input value")}let y=0;for(let A=0;A<t.inputs.length;A++)g[A]!==!0&&(y=Zr(y,f0(t,A),"Wallet-added input value"));let v=0;for(let A=0;A<u.length;A++)v=Zr(v,u[A].satoshis,"Wallet output value");let C=Zr(b,y,"Wallet input value");if(v>C)throw new Error("Wallet signable transaction spends more than its inputs");if(v-l>y)throw new Error("Wallet used a requested input to fund an unrequested output");return o}function d0(i,t){if(i.version!==t.version||i.lockTime!==t.lockTime||i.inputs.length!==t.inputs.length||i.outputs.length!==t.outputs.length)throw new Error("Wallet signed transaction substituted the authorized template");for(let e=0;e<i.inputs.length;e++)if(xf(i,e)!==xf(t,e)||(i.inputs[e].sequence??4294967295)!==(t.inputs[e].sequence??4294967295))throw new Error("Wallet signed transaction substituted an authorized input");for(let e=0;e<i.outputs.length;e++)if(i.outputs[e].satoshis!==t.outputs[e].satoshis||es(i.outputs[e].lockingScript)!==es(t.outputs[e].lockingScript))throw new Error("Wallet signed transaction substituted an authorized output")}async function Zy(i,t,e){try{await i.abortAction({reference:t},e)}catch{}}async function x0(i,t,e={},n,r){zy();let s=Ky(),o=dr(t,"Create action arguments"),c=dr(o,"Create action arguments"),u=o.inputs??[],f;if(r!==void 0){let I=dr(r,"Trusted requested input satoshis");if(!ts(I)||I.length!==u.length)throw new Error("Trusted requested input satoshis must match the requested inputs");let D=new en(I.length);for(let U=0;U<I.length;U++)D[U]=Jr(I[U],`Trusted requested input ${U}`);f=D}let d=xi(e,"Bound action options"),l=So(d);for(let I=0;I<l.length;I++){let D=l[I];if(D!=="inputSigners"&&D!=="outputSatoshisRanges")throw new Error(`Unknown bound action option "${D}"`)}let p=Dt(d,"inputSigners")?.value,b=xi(p??{},"Input signers"),g=vo(null),y=0,v=So(b);for(let I=0;I<v.length;I++){let D=v[I],U=Dt(b,D)?.value,q=wf(D,"Input signer outpoint");if(Ma(g,q)||typeof U!="function")throw new Error("Input signers must uniquely identify requested outpoints");g[q]=U,y++}let C=Dt(d,"outputSatoshisRanges")?.value,E=xi(C??{},"Output satoshi ranges"),A=new en(o.outputs?.length??0),T=So(E);for(let I=0;I<T.length;I++){let D=T[I],U=Dt(E,D)?.value;if(!Ao(b0,D))throw new Error("Output satoshi ranges must identify requested output indexes");let q=If(D);if(!Ii(q)||q>=(o.outputs?.length??0))throw new Error("Output satoshi ranges must identify requested output indexes");let it=xi(U,`Output satoshi range ${q}`),ot=So(it);for(let tt=0;tt<ot.length;tt++){let It=ot[tt];if(It!=="minimumSatoshis"&&It!=="maximumSatoshis")throw new Error(`Unknown output satoshi range option "${It}"`)}let F=Jr(Dt(it,"minimumSatoshis")?.value,`Output satoshi range ${q} minimum`),z=Jr(Dt(it,"maximumSatoshis")?.value,`Output satoshi range ${q} maximum`);if(F>z)throw new Error(`Output satoshi range ${q} minimum exceeds its maximum`);A[q]={minimumSatoshis:F,maximumSatoshis:z}}let B=await i.createAction({...c,options:{...c.options,signAndProcess:!1,returnTXIDOnly:!1}},n);Io(s);let _=xi(dr(B,"Wallet createAction result",0,void 0,!0),"Wallet createAction result",!0);Io(s);let $=xi(Dt(_,"signableTransaction")?.value,"Wallet signable transaction"),R=Dt($,"reference")?.value;if(typeof R!="string"||R.length===0||R.length>4096||!Ao(qy,R))throw new Error("Wallet signable transaction reference is invalid");try{let I=hf(u0(Dt($,"tx")?.value,"Wallet signable transaction")),D=Yy(o,I,A,f),U=hf(Xy(I)),q={},it=new en(I.inputs.length),ot=new en,F=vo(null),z=0;for(let Ee=0;Ee<u.length;Ee++){let me=u[Ee],In=wf(me.outpoint,`Requested input ${Ee} outpoint`),H=D[Ee];if(me.unlockingScript!==void 0){it[H]=Da(me.unlockingScript,`Requested input ${Ee} unlocking script`),ot[ot.length]=H;continue}let W=Dt(g,In)?.value;if(me.unlockingScriptLength===void 0||W==null)throw new Error(`Requested input ${Ee} has no authorized signer`);let M=await W(I,H);Io(s),d0(U,I);let V=Da(typeof M=="string"?M:es(M),`Requested input ${Ee} signed unlocking script`);q[H]={unlockingScript:V},it[H]=V,ot[ot.length]=H,Ma(F,In)||(F[In]=!0,z++)}if(z!==y)throw new Error("An input signer does not match a requested signable input");let tt={acceptDelayedBroadcast:o.options?.acceptDelayedBroadcast,returnTXIDOnly:!1,noSend:o.options?.noSend,sendWith:o.options?.sendWith},It=await i.signAction({reference:R,spends:q,options:tt},n);Io(s);let se=xi(dr(It,"Wallet signAction result",0,void 0,!0),"Wallet signAction result",!0);Io(s);let Nt=hf(u0(Dt(se,"tx")?.value,"Wallet signed transaction"));d0(I,Nt);for(let Ee=0;Ee<ot.length;Ee++){let me=ot[Ee],In=it[me],H=Nt.inputs[me]?.unlockingScript;if(H==null||lr(es(H))!==In)throw new Error("Wallet signed transaction substituted an authorized unlocking script")}let un=Dt(se,"txid")?.value;if(un!==void 0&&La(un,"Wallet signed transaction ID")!==lr(m0(Nt)))throw new Error("Wallet signed transaction ID does not match its transaction data");return Nt}catch(I){throw await Zy(i,R,n),I}}var To=class extends Error{constructor(e){super(`Transaction evidence: ${e}`);m(this,"code");this.code=e,this.name="TransactionEvidenceError"}};var H3=Object.freeze({candidateBytes:1024*1024,retainedBytes:16*1024*1024,transactions:256,inputs:4096,scriptBytes:256*1024,scriptMemoryBytes:16*1024*1024,candidatesPerTransaction:8,pendingTransactions:32,concurrentTransactions:4,pendingChainCalls:8,consumers:128,cacheEntries:128,cacheAgeMs:6e4,attemptTimeoutMs:5e3,requestTimeoutMs:15e3});function I0(i){let t=i.tx,e=t.inputs.map(n=>{let r=n.sourceTransaction,s=r?.outputs[n.sourceOutputIndex];if(r===void 0||s===void 0)throw new To("invalid-evidence");return[r.id("hex"),n.sourceOutputIndex,s.satoshis,s.lockingScript.toHex()]});return nt(Be(at(JSON.stringify([t.toHex(),e,i.blockHeight,i.consensus,i.verifyFlags,i.memoryLimit]),"utf8")))}var Jy=new WeakMap;function S0(i){return Jy.get(i)}function v0(i,t){return{supportsMemoryLimit:t.supportsMemoryLimit,shouldVerifyScripts:t.shouldVerifyScripts===void 0?void 0:e=>{i.check();let n=I0(e),r=t.shouldVerifyScripts(e);if(i.check(),I0(e)!==n)throw new To("invalid-evidence");return r},verifyScripts:async e=>(await i.work.batch(i,[e],t))[0],verifyScriptsBatch:async e=>await i.work.batch(i,e,t)}}var A0=Symbol(),E0=Symbol();function xp(i){return i[A0]()}function Ip(i,t){i[E0](t)}var Qy=943816,T0=21e14,tw=1e6;function nn(i,t){if(typeof i!="number"||!Number.isSafeInteger(i)||i<0||i>T0)throw new RangeError(`${t} must be a non-negative safe integer no greater than 21e14.`);return i}function ns(i,t,e){let n=i+t;if(!Number.isSafeInteger(n)||n>T0)throw new RangeError(`${e} exceeds the maximum valid monetary range.`);return n}function je(i,t){if(typeof i!="number"||!Number.isInteger(i)||i<0||i>4294967295)throw new RangeError(`${t} must be an unsigned 32-bit integer.`);return i}function Si(i,t){if(typeof i!="string"||!/^[0-9a-fA-F]{64}$/.test(i))throw new TypeError(`${t} must be a 32-byte hexadecimal transaction ID.`);return i.toLowerCase()}function Ef(i,t){if(i===void 0||t===void 0)return i===t;if(i.length!==t.length)return!1;for(let e=0;e<i.length;e++)if(i[e]!==t[e])return!1;return!0}var pr,Zn,Ai,gr,Ei,Oo,is,j,k0,O0,Ln,ko,Tf,mn,kf,$a,Of,P0,R0,N0,B0,_0,C0,L0,hr,U0,Pf,M0,D0,H0,$0,Fa,F0,q0,vi,qa,W0,V0,K0,z0,X0,j0,G0,Y0,Z0,ie=class ie{constructor(t=1,e=[],n=[],r=0,s=new Map,o){G(this,j);m(this,"version");m(this,"inputs");m(this,"outputs");m(this,"lockTime");m(this,"metadata");m(this,"merklePath");G(this,pr);G(this,Zn);G(this,Ai);G(this,gr);G(this,Ei);G(this,Oo);G(this,is);this.version=t,this.inputs=e,this.outputs=n,this.lockTime=r,this.metadata=s,this.merklePath=o}getSignatureHashCache(){return w(this,Oo)??{hashOutputsSingle:new Map}}materializeSourceTXIDs(){let t=new Set,e=new Set,n=[{tx:this,expanded:!1}];for(;n.length>0;){let r=n.pop();if(r!=null&&!t.has(r.tx)){if(r.expanded){a(this,j,k0).call(this,r.tx,e,t);continue}a(this,j,O0).call(this,r.tx,e,t,n)}}}static fromBEEF(t,e){var r;let{tx:n}=a(r=ie,Ln,ko).call(r,t,e);return n}static fromBEEFView(t,e){var r;let{tx:n}=a(r=ie,Ln,ko).call(r,t,e,!0);return n}static fromAtomicBEEF(t){var s;let{tx:e,txid:n,beef:r}=a(s=ie,Ln,ko).call(s,t);if(n!==r.atomicTxid)throw r.atomicTxid==null?new Error("beef must conform to BRC-95 and must contain the subject txid."):new Error(`Transaction with TXID ${r.atomicTxid} not found in BEEF data.`);if(!r.isAtomic(n))throw new Error("Atomic BEEF contains unrelated transaction data.");return e}static fromAtomicBEEFView(t){var s;let{tx:e,txid:n,beef:r}=a(s=ie,Ln,ko).call(s,t,void 0,!0);if(n!==r.atomicTxid)throw r.atomicTxid==null?new Error("beef must conform to BRC-95 and must contain the subject txid."):new Error(`Transaction with TXID ${r.atomicTxid} not found in BEEF data.`);if(!r.isAtomic(n))throw new Error("Atomic BEEF contains unrelated transaction data.");return e}static fromEF(t){let e=mt.makeReader(t),n=e.readUInt32LE();if(nt(e.read(6))!=="0000000000ef")throw new Error("Invalid EF marker");let r=e.readVarIntNumStrict(!1),s=[];for(let f=0;f<r;f++){let d=nt(e.readReverse(32)),l=e.readUInt32LE();if(l>tw)throw new RangeError("EF source output index exceeds the allocation limit");let p=e.readVarIntNumStrict(!1),b=e.read(p),g=Le.fromBinary(b),y=e.readUInt32LE(),v=e.readUInt64LEBn().toNumber(),C=e.readVarIntNumStrict(!1),E=e.read(C),A=Ce.fromBinary(E),T=new ie(void 0,[],[],void 0);T.outputs=Array.from({length:l+1}).fill(null),T.outputs[l]={satoshis:v,lockingScript:A},s.push({sourceTransaction:T,sourceTXID:d,sourceOutputIndex:l,unlockingScript:g,sequence:y})}let o=e.readVarIntNumStrict(!1),c=[];for(let f=0;f<o;f++){let d=e.readUInt64LEBn().toNumber(),l=e.readVarIntNumStrict(!1),p=e.read(l),b=Ce.fromBinary(p);c.push({satoshis:d,lockingScript:b})}let u=e.readUInt32LE();if(!e.eof())throw new Error("Serialized EF transaction contains trailing data");return new ie(n,s,c,u)}static parseScriptOffsets(t){let e=mt.makeReader(t),n=[],r=[];e.read(4);let s=e.readVarIntNumStrict(!1);for(let c=0;c<s;c++){e.read(36);let u=e.readVarIntNumStrict(!1);n.push({vin:c,offset:e.pos,length:u}),e.read(u+4)}let o=e.readVarIntNumStrict(!1);for(let c=0;c<o;c++){e.read(8);let u=e.readVarIntNumStrict(!1);r.push({vout:c,offset:e.pos,length:u}),e.read(u)}if(e.read(4),!e.eof())throw new Error("Serialized transaction contains trailing data");return{inputs:n,outputs:r}}static fromReader(t){var e;return a(e=ie,Ln,Tf).call(e,t,!1)}static fromBinary(t){let e=Uint8Array.from(t);return ie.fromBinaryView(e)}static fromBinaryView(t){var r,s;let e=new mt(t),n=a(r=ie,Ln,Tf).call(r,e,!0);if(!e.eof())throw new Error("Serialized transaction contains trailing data");return N(n,Ai,t),a(s=n,j,$a).call(s),n}static fromHex(t){let e=et(t,"hex"),n=ie.fromBinaryView(e);return N(n,Ei,nt(e)),n}static fromHexEF(t){return ie.fromEF(et(t,"hex"))}static fromHexBEEF(t,e){return ie.fromBEEF(at(t,"hex"),e)}addInput(t){if(t.sourceTXID===void 0&&t.sourceTransaction===void 0)throw new TypeError("A reference to an an input transaction is required. If the input transaction itself cannot be referenced, its TXID must still be provided.");je(t.sourceOutputIndex,"sourceOutputIndex"),t.sourceTXID!==void 0&&(t.sourceTXID=Si(t.sourceTXID,"sourceTXID")),t.sequence!==void 0&&je(t.sequence,"sequence"),t.sequence??(t.sequence=4294967295),a(this,j,mn).call(this),this.inputs.push(t)}addOutput(t){if(a(this,j,mn).call(this),t.satoshis===void 0&&t.change!==!0)throw new TypeError("either satoshis must be defined or change must be set to true");if(t.satoshis!==void 0&&nn(t.satoshis,"satoshis"),t.lockingScript==null)throw new Error("lockingScript must be defined");this.outputs.push(t)}addP2PKHOutput(t,e){let n=new Xn().lock(t);if(e===void 0)return this.addOutput({lockingScript:n,change:!0});this.addOutput({lockingScript:n,satoshis:e})}updateMetadata(t){this.metadata={...this.metadata,...t}}async fee(t=fo.getInstance(),e="equal"){var v,C,E,A,T;if(a(this,j,mn).call(this),e!=="equal"&&e!=="random")throw new TypeError('changeDistribution must be either "equal" or "random".');if(typeof t=="number"){let B=t;t={computeFee:async()=>B}}let n=a(this,j,vi).call(this,!0),r=a(v=n,j,vi).call(v,!0),s=a(C=n,j,vi).call(C,!0),o=[...this.inputs],c=this.inputs.map(B=>B.sourceTransaction),u=this.inputs.map(B=>B.unlockingScriptTemplate),f=[...this.outputs],d=[...s.inputs],l=s.inputs.map(B=>B.sourceTransaction),p=s.inputs.map(B=>B.unlockingScriptTemplate),b=[...s.outputs],g=nn(await t.computeFee(s),"Computed transaction fee");if(!a(E=s,j,qa).call(E,n,d,l,p,b))throw new Error("Fee model mutated its transaction snapshot");let y=a(A=r,j,P0).call(A,g);if(y<0)throw new RangeError("Transaction inputs are insufficient for the requested outputs and fee.");if(!a(this,j,qa).call(this,n,o,c,u,f))throw new Error("Transaction changed while computing its fee; no change was applied");if(y===0){this.outputs=f.filter(B=>B.change!==!0),a(this,j,mn).call(this);return}a(T=r,j,R0).call(T,y,e);for(let B=0;B<f.length;B++)f[B].change===!0&&(f[B].satoshis=r.outputs[B].satoshis);a(this,j,mn).call(this)}getFee(){let t=0;for(let n=0;n<this.inputs.length;n++){let r=this.inputs[n];if(typeof r.sourceTransaction!="object")throw new TypeError("Source transactions or sourceSatoshis are required for all inputs to calculate fee");je(r.sourceOutputIndex,`Input ${n} sourceOutputIndex`);let s=r.sourceTransaction.outputs[r.sourceOutputIndex];if(s==null)throw new RangeError(`Input ${n} references a source output that does not exist.`);t=ns(t,nn(s.satoshis,`Input ${n} source amount`),"Transaction input total")}let e=0;for(let n=0;n<this.outputs.length;n++)e=ns(e,nn(this.outputs[n].satoshis,`Output ${n} amount`),"Transaction output total");return t-e}async sign(t={}){a(this,j,mn).call(this);for(let f=0;f<this.outputs.length;f++){let d=this.outputs[f];if(d.satoshis===void 0)throw d.change===!0?new Error("There are still change outputs with uncomputed amounts. Use the fee() method to compute the change amounts and transaction fees prior to signing."):new Error("One or more transaction outputs is missing an amount. Ensure all output amounts are provided before signing.");nn(d.satoshis,`Output ${f} amount`)}a(this,j,Fa).call(this,this);for(let f=0;f<this.inputs.length;f++){let d=this.inputs[f];if(je(d.sourceOutputIndex,`Input ${f} sourceOutputIndex`),je(d.sequence??4294967295,`Input ${f} sequence`),d.sourceTXID!==void 0&&Si(d.sourceTXID,`Input ${f} sourceTXID`),d.sourceTransaction!==void 0){let l=d.sourceTransaction.outputs[d.sourceOutputIndex];if(l==null)throw new RangeError(`Input ${f} references a source output that does not exist.`);if(nn(l.satoshis,`Input ${f} source amount`),d.sourceTXID!==void 0&&(d.sourceTransaction.inputs.length>0||d.sourceTransaction.merklePath!=null)&&Si(d.sourceTXID,`Input ${f} sourceTXID`)!==d.sourceTransaction.id("hex"))throw new Error(`Input ${f} sourceTXID does not reference its supplied source transaction.`)}}this.materializeSourceTXIDs();let e=a(this,j,vi).call(this,!0),n=[...this.inputs],r=this.inputs.map(f=>f.sourceTransaction),s=this.inputs.map(f=>f.unlockingScriptTemplate),o=[...this.outputs],c=t.skipExistingSignatures===!0,u;if(u=await Promise.all(e.inputs.map(async(f,d)=>{var y;if(c&&f.unlockingScript!=null)return new Le([],Uint8Array.from(f.unlockingScript.toUint8Array()),void 0,!1);let l=s[d];if(l===void 0)return;let p=a(y=e,j,vi).call(y,!0);for(let v=0;v<s.length;v++)p.inputs[v].unlockingScriptTemplate=s[v];N(p,Oo,{hashOutputsSingle:new Map});let b=await l.sign(p,d);if(b==null||typeof b.toUint8Array!="function")throw new TypeError(`Input ${d} signing template returned an invalid unlocking script`);let g=b.toUint8Array();if(!(g instanceof Uint8Array))throw new TypeError(`Input ${d} signing template returned an invalid unlocking script`);return new Le([],Uint8Array.from(g),void 0,!1)})),!a(this,j,qa).call(this,e,n,r,s,o))throw new Error("Transaction changed while signing; no unlocking scripts were applied");for(let f=0,d=this.inputs.length;f<d;f++)s[f]!==void 0&&!(c&&n[f].unlockingScript!=null)&&(this.inputs[f].unlockingScript=u[f]);a(this,j,mn).call(this)}async broadcast(t=gp()){let e=a(this,j,vi).call(this),n=e.id("hex");return ip(await t.broadcast(e),n)}[A0](){return a(this,j,hr).call(this)}[E0](t){N(this,Zn,t)}toBinary(){return Array.from(a(this,j,hr).call(this))}toUint8Array(){return Uint8Array.from(a(this,j,hr).call(this))}toEF(){return Array.from(a(this,j,Pf).call(this))}toEFUint8Array(){return this.toEFBinary()}toEFBinary(){return Uint8Array.from(a(this,j,Pf).call(this))}toHexEF(){return nt(this.toEFBinary())}toHex(){let t=a(this,j,hr).call(this);if(w(this,Ei)!=null)return w(this,Ei);let e=nt(t);return N(this,Ei,e),e}toHexBEEF(){return nt(this.toBEEF())}toHexAtomicBEEF(){return nt(this.toAtomicBEEF())}hash(t){let e=a(this,j,hr).call(this);return w(this,pr)??N(this,pr,Gt(e)),t==="hex"?nt(w(this,pr)):Array.from(w(this,pr))}id(t){if(a(this,j,hr).call(this),t==="hex"&&w(this,Zn)!=null)return w(this,Zn);let e=[...this.hash()];return e.reverse(),t==="hex"?(N(this,Zn,nt(e)),w(this,Zn)):e}async verifyTransactionFee(t,e,n){if(e===void 0)return;if(t===void 0)throw new Error("Transaction is undefined");let r=ie.fromEF(t.toEF());if(delete r.outputs[0].satoshis,r.outputs[0].change=!0,await r.fee(e),t.getFee()<r.getFee())throw new Error(`Verification failed because the transaction ${n()} has an insufficient fee and has not been mined.`)}async verify(t=wp(),e,n,r){var o;t!=="scripts only"&&this.materializeSourceTXIDs();let s=t==="scripts only"?void 0:S0(this);return await a(o=a(this,j,vi).call(this),j,V0).call(o,t,e,n,r,s)}writeSerializedBEEF(t,e){this.materializeSourceTXIDs(),t.writeUInt32LE(4022206465);let{bumps:n,txs:r}=a(this,j,K0).call(this,e);t.writeVarIntNum(n.length);let s=a(this,j,G0).call(this,t,n,r);for(let o=0;o<n.length;o++)t.write(s?.[o]??n[o].toBinary());t.writeVarIntNum(r.length);for(let o of r)t.write(o.tx.toUint8Array()),typeof o.pathIndex=="number"?(t.writeUInt8(1),t.writeVarIntNum(o.pathIndex)):t.writeUInt8(0)}toBEEF(t){let e=new ae;return this.writeSerializedBEEF(e,t),e.toArray()}toBEEFUint8Array(t){let e=new ht;return this.writeSerializedBEEF(e,t),e.toArray()}toBEEFBytes(t){let e=new ht;return this.writeSerializedBEEF(e,t),e.toUint8Array()}toAtomicBEEF(t){this.materializeSourceTXIDs();let e=[1,1,1,1],n=this.hash(),r=this.toBEEF(t);return e.concat(n,r)}toAtomicBEEFUint8Array(t){this.materializeSourceTXIDs();let e=new ht,n=[1,1,1,1];e.write(n);let r=this.hash();return e.write(r),this.writeSerializedBEEF(e,t),e.toUint8Array()}async completeWithWallet(t,e,n,r){let s=this.inputs.length,o=this.outputs.length,c=e??`Transaction with ${s} input(s) and ${o} output(s)`,u=this.inputs.some(p=>p.unlockingScriptTemplate!=null),f=await a(this,j,Y0).call(this,c,u);f.options=r;let d={};for(let p=0;p<this.inputs.length;p++){let b=this.inputs[p].unlockingScriptTemplate;if(b==null)continue;let g=f.inputs[p].outpoint;d[g]=async(y,v)=>await b.sign(y,v)}let l=await x0(t,f,{inputSigners:d},n,this.inputs.map((p,b)=>{let g=p.sourceTransaction?.outputs[p.sourceOutputIndex];if(g==null)throw new Error(`Input ${b} references a source output that does not exist`);return nn(g.satoshis,`Input ${b} source amount`)}));this.version=l.version,this.inputs=l.inputs,this.outputs=l.outputs,this.lockTime=l.lockTime,this.merklePath=l.merklePath,a(this,j,mn).call(this),this.metadata={...this.metadata,...l.metadata}}preimage(t,e,n){if(t??(t=0),e??(e=yt.SIGHASH_FORKID|yt.SIGHASH_ALL),!Number.isSafeInteger(t)||t<0||t>=this.inputs.length)throw new Error("Invalid input index");je(e,"signatureScope");let r=e&240;if(r!==224&&r!==192&&r!==64)throw new Error("FORKID must be set");let s=e&15;if(s<1||s>3)throw new Error("Invalid signature coverage, must be all, none or single");let o=this.inputs[t],c=je(o.sourceOutputIndex,"sourceOutputIndex");if(o.sourceTransaction==null)throw new Error("Source transaction is required");let u=Si(o.sourceTransaction.id("hex"),"sourceTransaction ID");if(o.sourceTXID!==void 0&&Si(o.sourceTXID,"sourceTXID")!==u)throw new Error("sourceTXID does not match sourceTransaction");let f=o.sourceTransaction.outputs[c];if(f==null)throw new Error(`Source transaction's output at index ${c} is required`);let d=nn(f.satoshis,"Source output amount"),l=je(o.sequence??4294967295,"inputSequence"),p=n??f.lockingScript;if(p==null||typeof p.toUint8Array!="function")throw new Error("subscript must be a locking script");return yt.format({sourceTXID:u,sourceOutputIndex:c,sourceSatoshis:d,transactionVersion:this.version,otherInputs:[],allInputs:this.inputs,inputIndex:t,outputs:this.outputs,inputSequence:l,subscript:p,lockTime:this.lockTime,scope:e})}};pr=new WeakMap,Zn=new WeakMap,Ai=new WeakMap,gr=new WeakMap,Ei=new WeakMap,Oo=new WeakMap,is=new WeakMap,j=new WeakSet,k0=function(t,e,n){for(let r of t.inputs)r.sourceTXID==null&&r.sourceTransaction!=null&&(r.sourceTXID=r.sourceTransaction.id("hex"));e.delete(t),n.add(t)},O0=function(t,e,n,r){if(e.has(t))throw new Error("Cyclic source transaction graph");e.add(t),r.push({tx:t,expanded:!0});for(let s=t.inputs.length-1;s>=0;s--){let o=t.inputs[s].sourceTransaction;t.inputs[s].sourceTXID==null&&o!=null&&!n.has(o)&&r.push({tx:o,expanded:!1})}},Ln=new WeakSet,ko=function(t,e,n=!1){let r=n&&t instanceof Uint8Array?fr.fromBinaryView(t):fr.fromBinaryStrict(t);if(r.txs.length<1)throw new Error("beef must include at least one transaction.");let s=r.txs.at(-1);if(s==null)throw new Error("beef must include at least one transaction.");let o=e??r.atomicTxid??s.txid,c=r.findAtomicTransaction(o);if(c==null)throw e==null?new Error("beef does not contain transaction for atomic txid."):new Error(`Transaction with TXID ${String(o)} not found in BEEF data.`);return{tx:c,beef:r,txid:o}},Tf=function(t,e){let n=t.readUInt32LE(),r=t.readVarIntNumStrict(!1),s=[];for(let f=0;f<r;f++){let d=nt(t.readReverse(32)),l=t.readUInt32LE(),p=t.readVarIntNumStrict(!1),b=e&&t instanceof mt?t.readView(p):t.read(p),g=e&&b instanceof Uint8Array?Le.fromBinaryView(b):Le.fromBinary(b),y=t.readUInt32LE();s.push({sourceTXID:d,sourceOutputIndex:l,unlockingScript:g,sequence:y})}let o=t.readVarIntNumStrict(!1),c=[];for(let f=0;f<o;f++){let d=t.readUInt64LEBn().toNumber(),l=t.readVarIntNumStrict(!1),p=e&&t instanceof mt?t.readView(l):t.read(l),b=e&&p instanceof Uint8Array?Ce.fromBinaryView(p):Ce.fromBinary(p);c.push({satoshis:d,lockingScript:b})}let u=t.readUInt32LE();return new ie(n,s,c,u)},mn=function(){N(this,pr,void 0),N(this,Zn,void 0),N(this,Ai,void 0),N(this,gr,void 0),N(this,Ei,void 0),N(this,is,void 0)},kf=function(t){return t.sourceTXID==null?t.sourceTransaction?.id("hex"):void 0},$a=function(){N(this,is,{version:this.version,lockTime:this.lockTime,inputs:this.inputs.map(t=>{let e=t.sourceTransaction?.outputs[t.sourceOutputIndex];return{ref:t,sourceTXID:t.sourceTXID,sourceTransactionId:a(this,j,kf).call(this,t),sourceOutputIndex:t.sourceOutputIndex,sequence:t.sequence,unlockingScript:t.unlockingScript,unlockingScriptBytes:t.unlockingScript==null?void 0:er(t.unlockingScript),sourceOutput:e,sourceSatoshis:e?.satoshis,sourceLockingScript:e?.lockingScript,sourceLockingScriptBytes:e==null?void 0:er(e.lockingScript)}}),outputs:this.outputs.map(t=>({ref:t,satoshis:t.satoshis,lockingScript:t.lockingScript,lockingScriptBytes:er(t.lockingScript)}))})},Of=function(){let t=w(this,is);if(t?.version!==this.version||t.lockTime!==this.lockTime||t.inputs.length!==this.inputs.length||t.outputs.length!==this.outputs.length)return!1;for(let e=0;e<this.inputs.length;e++){let n=this.inputs[e],r=t.inputs[e],s=n.sourceTransaction?.outputs[n.sourceOutputIndex];if(r.ref!==n||r.sourceTXID!==n.sourceTXID||r.sourceTransactionId!==a(this,j,kf).call(this,n)||r.sourceOutputIndex!==n.sourceOutputIndex||r.sequence!==n.sequence||r.unlockingScript!==n.unlockingScript||r.unlockingScriptBytes!==(n.unlockingScript==null?void 0:er(n.unlockingScript))||r.sourceOutput!==s||r.sourceSatoshis!==s?.satoshis||r.sourceLockingScript!==s?.lockingScript||r.sourceLockingScriptBytes!==(s==null?void 0:er(s.lockingScript)))return!1}for(let e=0;e<this.outputs.length;e++){let n=this.outputs[e],r=t.outputs[e];if(r.ref!==n||r.satoshis!==n.satoshis||r.lockingScript!==n.lockingScript||r.lockingScriptBytes!==er(n.lockingScript))return!1}return!0},P0=function(t){let e=0;for(let r=0;r<this.inputs.length;r++){let s=this.inputs[r];if(typeof s.sourceTransaction!="object")throw new TypeError("Source transactions are required for all inputs during fee computation");je(s.sourceOutputIndex,`Input ${r} sourceOutputIndex`);let o=s.sourceTransaction.outputs[s.sourceOutputIndex];if(o==null)throw new RangeError(`Input ${r} references a source output that does not exist.`);let c=nn(o.satoshis,`Input ${r} source amount`);e=ns(e,c,"Transaction input total")}let n=0;for(let r=0;r<this.outputs.length;r++){let s=this.outputs[r];if(s.change!==!0){let o=nn(s.satoshis,`Output ${r} amount`);n=ns(n,o,"Transaction output total")}}if(n+t>e)throw new RangeError("Transaction inputs are insufficient for the requested outputs and fee.");return e-n-t},R0=function(t,e){let n=this.outputs.filter(r=>r.change===!0);n.length!==0&&(e==="random"?a(this,j,N0).call(this,t,n):a(this,j,B0).call(this,t,n))},N0=function(t,e){let n=t;for(let r=0;r<e.length-1;r++){let s=a(this,j,_0).call(this,0,n);e[r].satoshis=s,n-=s}e.at(-1).satoshis=n},B0=function(t,e){let n=Math.floor(t/e.length);for(let r of e)r.satoshis=n;e.at(-1).satoshis+=t-n*e.length},_0=function(t,e){let n=ke(1)[0]%9+1;return Math.floor(t+(e-t)*Math.log10(1+1/n)/Math.log10(10))},C0=function(t){t.writeUInt32LE(this.version),t.writeVarIntNum(this.inputs.length);for(let e of this.inputs){if(e.sourceTXID===void 0){if(e.sourceTransaction==null)throw new Error("sourceTransaction is undefined");t.write(e.sourceTransaction.hash())}else t.writeReverse(at(Si(e.sourceTXID,"sourceTXID"),"hex"));if(t.writeUInt32LE(je(e.sourceOutputIndex,"sourceOutputIndex")),e.unlockingScript==null)throw new Error("unlockingScript is undefined");let n=e.unlockingScript.toUint8Array();t.writeVarIntNum(n.length),t.write(n),t.writeUInt32LE(je(e.sequence??4294967295,"sequence"))}t.writeVarIntNum(this.outputs.length);for(let e of this.outputs){t.writeUInt64LE(e.satoshis??0);let n=e.lockingScript.toUint8Array();t.writeVarIntNum(n.length),t.write(n)}t.writeUInt32LE(this.lockTime)},L0=function(){let t=new ht;return a(this,j,C0).call(this,t),t.toUint8Array()},hr=function(){return(w(this,Ai)==null||!a(this,j,Of).call(this))&&(a(this,j,mn).call(this),N(this,Ai,a(this,j,L0).call(this)),a(this,j,$a).call(this)),w(this,Ai)},U0=function(t){t.writeUInt32LE(this.version),t.write([0,0,0,0,0,239]),t.writeVarIntNum(this.inputs.length);for(let e of this.inputs){if(e.sourceTransaction===void 0)throw new TypeError("All inputs must have source transactions when serializing to EF format");if(e.sourceTXID===void 0?t.write(e.sourceTransaction.hash()):t.write(at(e.sourceTXID,"hex").reverse()),t.writeUInt32LE(e.sourceOutputIndex),e.unlockingScript==null)throw new Error("unlockingScript is undefined");let n=e.unlockingScript.toUint8Array();t.writeVarIntNum(n.length),t.write(n),t.writeUInt32LE(e.sequence??4294967295),t.writeUInt64LE(e.sourceTransaction.outputs[e.sourceOutputIndex].satoshis??0);let r=e.sourceTransaction.outputs[e.sourceOutputIndex].lockingScript.toUint8Array();t.writeVarIntNum(r.length),t.write(r)}t.writeVarIntNum(this.outputs.length);for(let e of this.outputs){t.writeUInt64LE(e.satoshis??0);let n=e.lockingScript.toUint8Array();t.writeVarIntNum(n.length),t.write(n)}t.writeUInt32LE(this.lockTime)},Pf=function(){if(w(this,gr)==null||!a(this,j,Of).call(this)){a(this,j,mn).call(this);let t=new ht;a(this,j,U0).call(this,t),N(this,gr,t.toUint8Array()),a(this,j,$a).call(this)}return w(this,gr)},M0=async function(t,e,n,r,s,o){if(typeof t.merklePath!="object")return!1;if(e)return s.add(t),!0;if(await t.merklePath.verify(r(),n))return o.add(r()),!0;throw new Error(`Invalid merkle path for transaction ${r()}`)},D0=function(t,e){if(t.inputs.length===0)throw new Error(`Verification failed because transaction ${e()} has no inputs.`);if(t.outputs.length===0)throw new Error(`Verification failed because transaction ${e()} has no outputs.`);let n=new Set;for(let r=0;r<t.inputs.length;r++){let s=t.inputs[r],o=je(s.sourceOutputIndex,`Input ${r} sourceOutputIndex`);je(s.sequence??4294967295,`Input ${r} sequence`);let c=Si(s.sourceTXID??s.sourceTransaction?.id("hex"),`Input ${r} sourceTXID`);if(/^0{64}$/.test(c)&&o===4294967295)throw new Error(`Verification failed because unmined transaction ${e()} contains a coinbase input.`);let u=`${c}:${o}`;if(n.has(u))throw new Error(`Verification failed because transaction ${e()} spends outpoint ${u} more than once.`);n.add(u)}a(this,j,Fa).call(this,t)},H0=function(t,e,n){if(n.scriptsOnly){!n.verifiedTransactions.has(t)&&!n.queuedTransactions.has(t)&&(n.txQueue.push(t),n.queuedTransactions.add(t));return}!n.verifiedTxids.has(e)&&!n.queuedTxids.has(e)&&(n.txQueue.push(t),n.queuedTxids.add(e))},$0=function(t,e,n,r){let s=0,o={hashOutputsSingle:new Map};for(let c=0;c<t.inputs.length;c++){let u=t.inputs[c];if(typeof u.sourceTransaction!="object")throw new TypeError(`Verification failed because the input at index ${c} of transaction ${n()} is missing an associated source transaction. This source transaction is required for transaction verification because there is no merkle proof for the transaction spending a UTXO it contains.`);if(typeof u.unlockingScript!="object")throw new TypeError(`Verification failed because the input at index ${c} of transaction ${n()} is missing an associated unlocking script. This script is required for transaction verification because there is no merkle proof for the transaction spending the UTXO.`);let f=u.sourceTransaction,d=f.outputs[u.sourceOutputIndex];if(d==null)throw new RangeError(`Verification failed because input ${c} of transaction ${n()} references a source output that does not exist.`);s=ns(s,nn(d.satoshis,`Input ${c} source amount`),"Transaction input total");let l=f.id("hex");if(!r.scriptsOnly&&u.sourceTXID!==void 0&&Si(u.sourceTXID,`Input ${c} sourceTXID`)!==l)throw new Error(`Verification failed because input ${c} of transaction ${n()} does not reference its supplied source transaction.`);let p=r.scriptsOnly&&u.sourceTXID!==void 0?u.sourceTXID:f.id("hex");if(a(this,j,H0).call(this,f,p,r),u.sourceTXID??(u.sourceTXID=p),!e&&!new oo({sourceTXID:u.sourceTXID,sourceOutputIndex:u.sourceOutputIndex,lockingScript:d.lockingScript,sourceSatoshis:d.satoshis??0,transactionVersion:t.version,otherInputs:[],allInputs:t.inputs,unlockingScript:u.unlockingScript,inputSequence:u.sequence??4294967295,inputIndex:c,outputs:t.outputs,lockTime:t.lockTime,memoryLimit:r.memoryLimit,sigHashCache:o}).validateJavaScript())return{valid:!1,inputTotal:s}}return{valid:!0,inputTotal:s}},Fa=function(t){let e=0;for(let n=0;n<t.outputs.length;n++)e=ns(e,nn(t.outputs[n].satoshis,`Output ${n} amount`),"Transaction output total");return e},F0=async function(t,e){if(t.length===0||e===void 0)return;let n=e.verifyScriptsBatch===void 0?await Promise.all(t.map(async o=>await e.verifyScripts(o))):await e.verifyScriptsBatch(t);if(!Array.isArray(n)||n.length!==t.length)throw new Error("Script verifier returned an invalid batch result count");let r=[];for(let o=0;o<n.length;o++){if(!Object.prototype.hasOwnProperty.call(n,o)||typeof n[o]!="boolean")throw new TypeError("Script verifier returned a non-boolean verdict");r.push(n[o])}let s=r.findIndex(o=>!o);if(s>=0)throw new Error(`Script verification failed for transaction ${t[s].tx.id("hex")}`)},q0=function(t,e,n){return n.scriptsOnly?n.verifiedTransactions.has(t):n.verifiedTxids.has(e())},vi=function(t=!1){let e=new Map,n=[this];e.set(this,new ie(this.version,[],[],this.lockTime));for(let s=0;s<n.length;s++){let o=n[s],c=e.get(o);if(c===void 0)throw new Error("Transaction snapshot is incomplete");c.version=o.version,c.lockTime=o.lockTime,c.merklePath=o.merklePath===void 0?void 0:new wi(o.merklePath.blockHeight,o.merklePath.path.map(u=>u.map(f=>({...f})))),c.outputs=Array.from(o.outputs,u=>u==null?u:{satoshis:u.satoshis,lockingScript:new Ce([],Uint8Array.from(u.lockingScript.toUint8Array()),void 0,!1),change:u.change}),c.inputs=Array.from(o.inputs,u=>{let f;return u.sourceTransaction!==void 0&&(f=e.get(u.sourceTransaction),f===void 0&&(f=new ie(u.sourceTransaction.version,[],[],u.sourceTransaction.lockTime),e.set(u.sourceTransaction,f),n.push(u.sourceTransaction))),{sourceTransaction:f,sourceTXID:u.sourceTXID,sourceOutputIndex:u.sourceOutputIndex,unlockingScript:u.unlockingScript===void 0?void 0:new Le([],Uint8Array.from(u.unlockingScript.toUint8Array()),void 0,!1),unlockingScriptTemplate:t?u.unlockingScriptTemplate:void 0,sequence:u.sequence}})}let r=e.get(this);if(r===void 0)throw new Error("Transaction snapshot is incomplete");return r},qa=function(t,e,n,r,s){if(this.version!==t.version||this.lockTime!==t.lockTime||this.inputs.length!==t.inputs.length||this.outputs.length!==t.outputs.length)return!1;for(let o=0;o<this.inputs.length;o++){let c=this.inputs[o],u=t.inputs[o];if(c!==e[o]||c.sourceTransaction!==n[o]||c.unlockingScriptTemplate!==r[o]||c.sourceTXID!==u.sourceTXID||c.sourceOutputIndex!==u.sourceOutputIndex||c.sequence!==u.sequence||!Ef(c.unlockingScript?.toUint8Array(),u.unlockingScript?.toUint8Array()))return!1;let f=c.sourceTransaction?.outputs[c.sourceOutputIndex],d=u.sourceTransaction?.outputs[u.sourceOutputIndex];if(f==null||d==null){if(f!==d)return!1}else if(!Object.is(f.satoshis,d.satoshis)||!Ef(f.lockingScript.toUint8Array(),d.lockingScript.toUint8Array()))return!1}for(let o=0;o<this.outputs.length;o++){let c=this.outputs[o],u=t.outputs[o];if(c!==s[o]||!Object.is(c.satoshis,u.satoshis)||c.change!==u.change||!Ef(c.lockingScript.toUint8Array(),u.lockingScript.toUint8Array()))return!1}return!0},W0=async function(t,e,n){let{feeModel:r,memoryLimit:s,selectedVerifier:o,verifierQueue:c}=n;a(this,j,D0).call(this,t,e),await this.verifyTransactionFee(t,r,e);let u={tx:t,blockHeight:Qy,consensus:!0,...s===void 0?{}:{memoryLimit:s}},f=o!==void 0&&(s===void 0||o.supportsMemoryLimit===!0)&&(o.shouldVerifyScripts?.(u)??!0),d=p=>a(this,j,$0).call(this,t,p,e,n),l=!f&&n.scriptWork!==void 0?n.scriptWork.work.inputs(n.scriptWork,u,d):d(f);return!l.valid||(f&&c.push(u),a(this,j,Fa).call(this,t)>l.inputTotal)?!1:(n.scriptsOnly?n.verifiedTransactions.add(t):n.verifiedTxids.add(e()),!0)},V0=async function(t,e,n,r,s){let o=t==="scripts only",c=r??ma(),u=s!==void 0&&c!==void 0?v0(s,c):c;o||this.materializeSourceTXIDs();let f=new Set,d=new Set,l=[this],p=new Set;o||p.add(this.id("hex"));let b=new Set(l),g=[],y={scriptsOnly:o,memoryLimit:n,txQueue:l,queuedTransactions:b,queuedTxids:p,verifiedTransactions:d,verifiedTxids:f,feeModel:e,selectedVerifier:u,verifierQueue:g,scriptWork:s},v=0;for(;v<l.length;){let C=l[v++],E,A=()=>(E??(E=C.id("hex")),E);if(!a(this,j,q0).call(this,C,A,y)&&!await a(this,j,M0).call(this,C,o,t,A,d,f)&&!await a(this,j,W0).call(this,C,A,y))return!1}return await a(this,j,F0).call(this,g,u),!0},K0=function(t){let e=[],n=new Map,r=new Map,s=[],o=new Set,c=new Set,u=[{tx:this,expanded:!1}];for(;u.length>0;){let f=u.pop();if(f!=null){if(f.expanded){a(this,j,z0).call(this,f.tx,o,s,e,n,r);continue}a(this,j,X0).call(this,f.tx,t,c,u)}}return{bumps:e,txs:s}},z0=function(t,e,n,r,s,o){let c=t.id("hex");if(e.has(c))return;let u={tx:t};t.merklePath!=null&&(u.pathIndex=a(this,j,j0).call(this,t.merklePath,r,s,o)),e.add(c),n.push(u)},X0=function(t,e,n,r){let s=t.id("hex");if(!n.has(s)&&(n.add(s),r.push({tx:t,expanded:!0}),t.merklePath==null))for(let o of t.inputs){let c=o.sourceTransaction;if(c!=null)r.push({tx:c,expanded:!1});else if(e===!1)throw new Error("A required source transaction is missing!")}},j0=function(t,e,n,r){let s=n.get(t);if(s!==void 0)return s;let o=`${t.blockHeight}:${t.computeRoot()}`,c=r.get(o);if(c!==void 0)return e[c].combine(t),n.set(t,c),c;let u=e.length;return e.push(t),n.set(t,u),r.set(o,u),u},G0=function(t,e,n){let r;if(t instanceof ht){r=e.map(o=>o.toBinaryUint8Array());let s=16;for(let o of r)s+=o.length;for(let o of n)s+=o.tx.toUint8Array().length+10;t.reserve(s)}return r},Y0=async function(t,e){let n={description:t,inputs:[],outputs:[],lockTime:this.lockTime,version:this.version};this.materializeSourceTXIDs();let r=new fr;for(let s=0;s<this.inputs.length;s++){let o=this.inputs[s];if(o.sourceTransaction==null)throw new Error("All inputs must have a sourceTransaction when using completeWithWallet");r.mergeTransaction(o.sourceTransaction),n.inputs.push(await a(this,j,Z0).call(this,o,s,e))}return this.inputs.length>0&&(n.inputBEEF=r.toUint8Array()),n.outputs=this.outputs.map(s=>({satoshis:s.satoshis,lockingScript:s.lockingScript.toHex(),outputDescription:"Output from source transaction"})),Array.isArray(this.metadata?.labels)&&(n.labels=this.metadata.labels),n},Z0=async function(t,e,n){let r={outpoint:`${t.sourceTransaction.id("hex")}.${t.sourceOutputIndex}`,inputDescription:"Input from source transaction",sequenceNumber:t.sequence};if(!n){if(t.unlockingScript==null)throw new Error("All inputs must have an unlockingScript when using completeWithWallet");return r.unlockingScript=t.unlockingScript.toHex(),r}if(t.unlockingScriptTemplate!=null)r.unlockingScriptLength=await t.unlockingScriptTemplate.estimateLength(this,e);else if(t.unlockingScript!=null)r.unlockingScript=t.unlockingScript.toHex();else throw new Error(`Input ${e} must have either an unlockingScript or unlockingScriptTemplate`);return r},G(ie,Ln);var Ue=ie;var Jn=class extends Error{constructor(e,n){super(`The ${e} parameter must be ${n??"valid."}`);m(this,"parameter");m(this,"code");m(this,"isError",!0);this.parameter=e,this.code=6,this.name=this.constructor.name}},ut=Jn;var J0=globalThis.Buffer,Rf=typeof J0?.compare=="function"?J0.compare:void 0,Wa=globalThis.SharedArrayBuffer,ew=16*1024*1024,Ti=class{constructor(){m(this,"cached")}get(t){let e=this.cached;if(!(e==null||!(t instanceof Uint8Array)||t.length!==e.bytes.length||Rf==null||Wa!=null&&t.buffer instanceof Wa||Rf(t,e.bytes)!==0))return e.value}set(t,e){t instanceof Uint8Array&&t.length<=ew&&Rf!=null&&!(Wa!=null&&t.buffer instanceof Wa)&&(this.cached={bytes:new Uint8Array(t),value:e})}};var Un="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Q0="0123456789abcdef";function Ge(i){let t="";for(let e=0;e<i.length;e++){let n=i[e];t+=Q0[n>>4]+Q0[n&15]}return t}function rs(i){if(typeof i!="string"||i.length%2!==0||!/^[0-9a-f]*$/iu.test(i))throw new TypeError("Invalid hexadecimal byte string");let t=Array.from({length:i.length/2});for(let e=0;e<t.length;e++)t[e]=Number.parseInt(i.slice(e*2,e*2+2),16);return t}function tg(i){let t="";for(let e=0;e<i.length;e+=3){let n=i[e],r=e+1<i.length?i[e+1]:0,s=e+2<i.length?i[e+2]:0;t+=Un[n>>2],t+=Un[(n&3)<<4|r>>4],t+=e+1<i.length?Un[(r&15)<<2|s>>6]:"=",t+=e+2<i.length?Un[s&63]:"="}return t}function Va(i){if(typeof i!="string"||i.length%4!==0||!/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u.test(i))throw new TypeError("Invalid canonical base64 string");if(i.endsWith("==")&&(Un.indexOf(i[i.length-3])&15)!==0)throw new TypeError("Invalid canonical base64 string");if(i.endsWith("=")&&!i.endsWith("==")&&(Un.indexOf(i[i.length-2])&3)!==0)throw new TypeError("Invalid canonical base64 string");let t=[];for(let e=0;e<i.length;e+=4){let n=Un.indexOf(i[e]),r=Un.indexOf(i[e+1]),s=i[e+2]==="="?0:Un.indexOf(i[e+2]),o=i[e+3]==="="?0:Un.indexOf(i[e+3]);t.push(n<<2|r>>4),i[e+2]!=="="&&t.push((r&15)<<4|s>>2),i[e+3]!=="="&&t.push((s&3)<<6|o)}return t}var Mn,ki,Nf=class{constructor(t){G(this,Mn);m(this,"bytes");m(this,"pos",0);this.bytes=Uint8Array.from(t)}read(t){let e=a(this,Mn,ki).call(this,t);return this.bytes.slice(e,this.pos)}readView(t){let e=a(this,Mn,ki).call(this,t);return this.bytes.subarray(e,this.pos)}readReverse(t){return this.read(t).reverse()}readUInt8(){return this.bytes[a(this,Mn,ki).call(this,1)]}readUInt16LE(){let t=a(this,Mn,ki).call(this,2);return this.bytes[t]|this.bytes[t+1]<<8}readUInt32LE(){let t=a(this,Mn,ki).call(this,4);return(this.bytes[t]|this.bytes[t+1]<<8|this.bytes[t+2]<<16|this.bytes[t+3]<<24)>>>0}readUInt64LE(){let t=a(this,Mn,ki).call(this,8),e=0n;for(let n=7;n>=0;n--)e=e<<8n|BigInt(this.bytes[t+n]);return Number(e)}readVarInt(){let t=this.readUInt8();if(t<253)return t;if(t===253){let r=this.readUInt16LE();if(r<253)throw new Error("non-canonical varInt");return r}if(t===254){let r=this.readUInt32LE();if(r<=65535)throw new Error("non-canonical varInt");return r}let e=a(this,Mn,ki).call(this,8),n=0n;for(let r=7;r>=0;r--)n=n<<8n|BigInt(this.bytes[e+r]);if(n<=0xffffffffn)throw new Error("non-canonical varInt");if(n>BigInt(Number.MAX_SAFE_INTEGER))throw new Error("varInt is too large");return Number(n)}eof(){return this.pos===this.bytes.length}};Mn=new WeakSet,ki=function(t){let e=this.pos;if(!Number.isSafeInteger(t)||t<0||e+t>this.bytes.length)throw new RangeError("Serialized BEEF exceeds available data");return this.pos+=t,e};var nw=4294967295;function Ka(i,t){return Math.floor(i/2**t)}function iw(i){return i%2===0?i+1:i-1}function br(i,t){return Ge(Gt(rs((i??"")+(t??"")).reverse()).reverse())}function Bf(i,t,e,n,r,s){let o=`${t}:${e}`;if(r.has(o))return r.get(o);let c=t<n.length?n[t].get(e):void 0;if(c!==void 0||t===0)return r.set(o,c),c;let u=t-1,f=e*2,d=Bf(i,u,f,n,r,s);if(d?.hash==null||d.hash===""){r.set(o,void 0);return}let l=Bf(i,u,f+1,n,r,s);if(l?.hash==null){if(l?.duplicate===!0||i.length===1&&f===Ka(s,u))return c={offset:e,hash:br(d.hash,d.hash)},r.set(o,c),c;r.set(o,void 0);return}return c={offset:e,hash:l.duplicate===!0?br(d.hash,d.hash):br(l.hash,d.hash)},r.set(o,c),c}function rw(i,t,e,n,r,s){if(typeof t!="string"&&(t=i[0].find(f=>!!f.hash)?.hash),typeof t!="string")throw new TypeError("Transaction ID is undefined");let o=i[0].find(f=>f.hash===t)?.offset;if(o===void 0)throw new Error("Transaction ID not found in Merkle Path");if(i.length===1&&i[0].length===1)return t;let c=Math.max(i.length,32-Math.clz32(s)),u=t;for(let f=0;f<c;f++){let d=Ka(o,f),l=`${f}:${d}`,p=r.get(l);if(p!==void 0){if(p!==u)throw new Error("Mismatched roots");let y=r.get(`${c}:0`);if(y===void 0)throw new Error("Mismatched roots");return y}r.set(l,u);let b=iw(d),g=Bf(i,f,b,e,n,s);if(g==null){if(i.length===1&&d===Ka(s,f)){u=br(u,u);continue}throw new Error(`Missing hash for index ${o} at height ${f}`)}g.duplicate===!0?u=br(u,u):u=b%2===1?br(g.hash,u):br(u,g.hash)}return r.set(`${c}:0`,u),u}function sw(i){i.readVarInt();let t=i.readUInt8(),e=Array.from({length:t},()=>[]);for(let u=0;u<t;u++){let f=i.readVarInt();for(let d=0;d<f;d++){let l=i.readVarInt(),p=i.readUInt8();e[u].push((p&1)===1?{offset:l,duplicate:!0}:{offset:l,hash:Ge(i.read(32).reverse())})}e[u].sort((d,l)=>d.offset-l.offset)}if(e.length===0||e.length>32||e[0].length===0)throw new Error("Invalid Merkle Path height");for(let u=0;u<e.length;u++){let f=new Set,d=Ka(nw,u);for(let l of e[u]){if(!Number.isSafeInteger(l.offset)||l.offset<0||l.offset>d)throw new Error("Invalid Merkle Path offset");if(f.has(l.offset))throw new Error("Duplicate Merkle Path offset");f.add(l.offset)}}let n=e.map(u=>new Map(u.map(f=>[f.offset,f]))),r=new Map,s=new Map,o=e[0].reduce((u,f)=>Math.max(u,f.offset),0),c;for(let u of e[0]){let f=rw(e,u.hash,n,r,s,o);if(c===void 0)c=f;else if(c!==f)throw new Error("Mismatched roots")}return new Set(e[0].flatMap(u=>u.hash===void 0?[]:[u.hash]))}function eg(i){let t=i.pos,e=i.readUInt32LE(),n=i.readVarInt(),r=[],s=new Set;for(let l=0;l<n;l++){let p=Ge(i.readReverse(32));s.add(p);let b=i.readUInt32LE(),g=i.readVarInt(),y=i.readView(g),v=i.readUInt32LE();r.push({sourceTXID:p,sourceOutputIndex:b,unlockingScript:y,sequence:v})}let o=i.readVarInt(),c=[];for(let l=0;l<o;l++){let p=i.readUInt64LE(),b=i.readVarInt();c.push({satoshis:p,lockingScript:i.readView(b)})}let u=i.readUInt32LE(),f=i.bytes.subarray(t,i.pos),d=Ge(Gt(f).reverse());return{txid:d,transaction:{txid:d,version:e,inputs:r,outputs:c,lockTime:u},inputTxids:Array.from(s),txidOnly:!1}}function ow(i,t){if(t===4022206466){let r=i.readUInt8();if(r===Ke.TXID_ONLY)return{txid:Ge(i.readReverse(32)),inputTxids:[],txidOnly:!0};let s=r===Ke.RAWTX_AND_BUMP_INDEX?i.readVarInt():void 0;return{...eg(i),bumpIndex:s}}let e=eg(i),n=i.readUInt8()===0?void 0:i.readVarInt();return{...e,bumpIndex:n}}function ng(i){let t=new Nf(i),e=t.readUInt32LE(),n;if(e===16843009&&(n=Ge(t.readReverse(32)),e=t.readUInt32LE()),e!==4022206465&&e!==4022206466)throw new Error("Invalid BEEF version");let r=t.readVarInt(),s=[];for(let u=0;u<r;u++)s.push(sw(t));let o=t.readVarInt(),c=[];for(let u=0;u<o;u++)c.push(ow(t,e));if(!t.eof())throw new Error("Serialized BEEF contains trailing data");return{atomicTxid:n,bumps:s,entries:c}}function ss(i){let{atomicTxid:t,entries:e}=ng(i),n=new Map;for(let r of e){if(n.has(r.txid))throw new Error("BEEF contains duplicate transactions");n.set(r.txid,r.transaction)}for(let r of e)if(r.transaction!==void 0)for(let s of r.transaction.inputs){let c=n.get(s.sourceTXID)?.outputs[s.sourceOutputIndex];c!==void 0&&(s.sourceSatoshis=c.satoshis)}return{atomicTxid:t,transactions:n}}function Po(i,t=!1){let{atomicTxid:e,bumps:n,entries:r}=ng(i);if(e===void 0)throw new Error("Atomic BEEF subject is missing");let s=new Map(r.map(f=>[f.txid,f]));if(s.size!==r.length)throw new Error("Atomic BEEF contains duplicate transactions");let o=s.get(e);if(o?.transaction===void 0)throw new Error("Atomic BEEF subject is missing");let c=new Set,u=[o];for(;u.length>0;){let f=u.pop();if(!(c.has(f)||(c.add(f),(f.bumpIndex===void 0?void 0:n[f.bumpIndex])?.has(f.txid)===!0||f.txidOnly)))for(let p of f.inputTxids){let b=s.get(p);if(b===void 0){if(t)continue;throw new Error("Atomic BEEF omits a required dependency")}u.push(b)}}if(c.size!==r.length)throw new Error("Atomic BEEF contains unrelated transaction data");for(let f of o.transaction.inputs){let l=s.get(f.sourceTXID)?.transaction?.outputs[f.sourceOutputIndex];l!==void 0&&(f.sourceSatoshis=l.satoshis)}return o.transaction}var os=0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn,aw=0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141n;function cw(i,t){let e=1n;for(;t>0n;)(t&1n)!==0n&&(e=e*i%os),i=i*i%os,t>>=1n;return e}function za(i){if(!/^0[23][0-9a-f]{64}$/iu.test(i))return!1;let t=BigInt(`0x${i.slice(2)}`);if(t>=os)return!1;let e=(t*t*t+7n)%os,n=cw(e,os+1n>>2n);return n*n%os===e}function uw(i,t,e){let n=0n;for(let r=t;r<t+e;r++)n=n<<8n|BigInt(i[r]);return n}function as(i){if(i.length<8||i.length>72||i[0]!==48||i[1]!==i.length-2)return!1;let t=2;for(let e=0;e<2;e++){if(i[t++]!==2)return!1;let n=i[t++];if(n<1||n>33||t+n>i.length)return!1;let r=i[t];if((r&128)!==0||n>1&&r===0&&(i[t+1]&128)===0)return!1;let s=uw(i,t,n);if(s===0n||s>=aw)return!1;t+=n}return t===i.length}var Oi=4294967295,_f=1e5,yn=1e3,ig=100,rg=32,sg=new Ti,og=new Ti;function wt(i,t){throw new ut(i,t)}function gt(i,t){if(i==null||typeof i!="object"||Array.isArray(i))return wt(t,"a plain object");let e=Object.getPrototypeOf(i);if(e!==null&&e!==Object.prototype)return wt(t,"a plain object");let n=Reflect.ownKeys(i);if(n.length>_f)return wt(t,`an object with at most ${_f} properties`);for(let r of n){if(typeof r!="string"||hn(r))return wt(t,"an object with safe string keys");let s=Object.getOwnPropertyDescriptor(i,r);if(s==null||!("value"in s))return wt(`${t}.${r}`,"a data property")}return i}function Pe(i,t,e=_f){if(i===void 0)return[];if(!Array.isArray(i))return wt(t,"an array");if(e!==void 0&&i.length>e)return wt(t,`an array of at most ${e} items`);let n=Object.getOwnPropertyDescriptors(i),r=new Set(["length",...Array.from({length:i.length},(s,o)=>String(o))]);if(Object.getOwnPropertySymbols(i).length!==0||Object.keys(n).length!==r.size||Object.keys(n).some(s=>!r.has(s))||Object.values(n).some(s=>s.get!=null||s.set!=null))return wt(t,"an accessor-free dense array without extra properties");for(let s=0;s<i.length;s++)if(!Object.prototype.hasOwnProperty.call(i,s))return wt(t,"a dense array");return i}function cg(i){let t=Pe(i,"sendWith",yn).map((e,n)=>Ri(e,`sendWith[${n}]`,64,64));return new Set(t).size!==t.length?wt("sendWith","unique transaction IDs"):t}function Dn(i,t,e,n=268435456){if(i instanceof Uint8Array)return i.length>n?wt(t,`at most ${n} bytes`):e!==void 0&&i.length!==e?wt(t,`exactly ${e} bytes`):i;if(!Array.isArray(i))return wt(t,"an array of bytes");if(i.length>n)return wt(t,`at most ${n} bytes`);for(let r=0;r<i.length;r++)if(!Object.prototype.hasOwnProperty.call(i,r)||!Number.isInteger(i[r])||i[r]<0||i[r]>255)return wt(t,"a dense array of bytes");return e!==void 0&&i.length!==e?wt(t,`exactly ${e} bytes`):i}function us(i,t,e){return i===void 0?e:typeof i!="boolean"?wt(t,"a boolean"):i}function De(i,t){let e=Ri(i,t,66,66);return za(e)?e:wt(t,"a valid compressed secp256k1 public key")}function Cf(i,t){return i==="self"||i==="anyone"?i:De(i,t)}function Lf(i,t="protocolID"){if(!Array.isArray(i)||i.length!==2)return wt(t,"a [securityLevel, protocolName] tuple");let e=Qt(i[0],`${t}[0]`,void 0,0,2),n=re(i[1],`${t}[1]`,5,400);return[e,n]}function Pi(i,t=!0){let e=us(i.privileged,"privileged",!1),n=yr(i.privilegedReason,"privilegedReason",5,50);e&&n===void 0&&wt("privilegedReason","a value when 'privileged' is true"),t&&us(i.seekPermission,"seekPermission",!0)}function mr(i,t="args"){let e=gt(i,t);Lf(e.protocolID),re(e.keyID,"keyID",1,800),e.counterparty!==void 0&&Cf(e.counterparty,"counterparty"),Pi(e)}function ug(i){let t=Ja(i,"outpoint"),[e,n]=t.split(".");return{txid:e,vout:Number(n)}}function Qn(i,t="value"){return us(i,t,!0)}function pe(i,t="value"){return us(i,t,!1)}function yr(i,t,e,n){if(i!==void 0)return re(i,t,e,n)}function fw(i,t,e){if(i===void 0||!Number.isSafeInteger(i)||i<0||i>21e14)throw new ut(t,"a valid number of satoshis");if(e!==void 0&&i<e)throw new ut(t,`at least ${e} satoshis.`);return i}function Qt(i,t,e,n,r){if(i===void 0){if(e!==void 0)return e;throw new ut(t,"a valid integer")}if(!Number.isSafeInteger(i))throw new ut(t,"a safe integer");if(i=Number(i),n!==void 0&&i<n)throw new ut(t,`at least ${n} length.`);if(r!==void 0&&i>r)throw new ut(t,`no more than ${r} length.`);return i}function dw(i,t){return Qt(i,t,0,0)}function re(i,t,e,n){if(typeof i!="string")throw new ut(t,"a string");let r=ye(i).length;if(e!==void 0&&r<e)throw new ut(t,`at least ${e} length.`);if(n!==void 0&&r>n)throw new ut(t,`no more than ${n} length.`);return i}function lw(i){if(i!==void 0)return Xa(i)}function Xa(i){return Df(i,"basket",1,300)}function Uf(i){return Df(i,"label",1,300)}function Mf(i){return Df(i,"tag",1,300)}function Df(i,t,e,n){if(typeof i!="string")throw new ut(t,"a string");i=i.trim().toLowerCase();let r=ye(i).length;if(e!==void 0&&r<e)throw new ut(t,`at least ${e} length.`);if(n!==void 0&&r>n)throw new ut(t,`no more than ${n} length.`);return i}function ag(i,t,e,n){if(i!==void 0)return rn(i,t,e,n)}function cs(i){throw new ut(i,"valid base64 string")}function hw(i,t){let e=0;for(let n=0;n<i.length;n++){let r=i.codePointAt(n)??0,s=r>=65&&r<=90||r>=97&&r<=122,o=r>=48&&r<=57;s||o||r===43||r===47||((r!==61||n<i.length-2)&&cs(t),e++)}return e}function pw(i,t,e){t>2&&cs(e),t>0&&i.length%4!==0&&cs(e);let n=i.length%4;n!==0&&n!==4-t&&cs(e)}function gw(i,t,e,n){if(e!==void 0&&i<e)throw new ut(t,`at least ${e} bytes`);if(n!==void 0&&i>n)throw new ut(t,`no more than ${n} bytes`)}function rn(i,t,e,n){typeof i!="string"&&cs(t),i=i.trim(),i.length===0&&cs(t);let r=hw(i,t);pw(i,r,t);let s=i.length-r,o=Math.floor(s*3/4);return gw(o,t,e,n),i}function bw(i,t,e,n){if(i!==void 0)return Ri(i,t,e,n)}var mw=/^[0-9a-f]+$/,yw=/^[0-9A-Fa-f]+$/;function Ri(i,t,e,n){if(typeof i!="string")throw new ut(t,"a hexadecimal string");if(i=i.trim(),i.length%2===1)throw new ut(t,`even length, not ${i.length}.`);let r=mw.test(i);if(!r&&!yw.test(i))throw new ut(t,"hexadecimal string.");if(e!==void 0&&i.length<e)throw new ut(t,`at least ${e} length.`);if(n!==void 0&&i.length>n)throw new ut(t,`no more than ${n} length.`);return r?i:i.toLowerCase()}function fg(i,t){let e=Ri(i,t);return as(rs(e))?e:wt(t,"a canonical DER-encoded ECDSA signature")}function ww(i){if(gt(i,"input"),i.unlockingScript===void 0&&i.unlockingScriptLength===void 0)throw new ut("unlockingScript, unlockingScriptLength","at least one valid value.");let t=bw(i.unlockingScript,"unlockingScript"),e=i.unlockingScriptLength??(t==null?0:t.length/2);if(Qt(e,"unlockingScriptLength",void 0,0),t&&e!==t.length/2)throw new ut("unlockingScriptLength","length unlockingScript if both valid.");return{outpoint:ug(i.outpoint),inputDescription:re(i.inputDescription,"inputDescription",5,2e3),unlockingScript:t,unlockingScriptLength:e,sequenceNumber:Qt(i.sequenceNumber,"sequenceNumber",Oi,0,Oi)}}function xw(i){return gt(i,"output"),{lockingScript:Ri(i.lockingScript,"lockingScript"),satoshis:fw(i.satoshis,"satoshis"),outputDescription:re(i.outputDescription,"outputDescription",5,2e3),basket:lw(i.basket),customInstructions:yr(i.customInstructions,"customInstructions"),tags:Pe(i.tags,"tags").map(e=>Mf(e))}}function Iw(i){i!==void 0&&gt(i,"options");let t=i??{};return t.trustSelf!==void 0&&t.trustSelf!=="known"&&wt("trustSelf","undefined or 'known'"),{signAndProcess:Qn(t.signAndProcess,"signAndProcess"),acceptDelayedBroadcast:Qn(t.acceptDelayedBroadcast,"acceptDelayedBroadcast"),trustSelf:t.trustSelf,knownTxids:Pe(t.knownTxids,"knownTxids").map(n=>Ri(n,"knownTxids",64,64)),returnTXIDOnly:pe(t.returnTXIDOnly,"returnTXIDOnly"),noSend:pe(t.noSend,"noSend"),noSendChange:Pe(t.noSendChange,"noSendChange").map(n=>ug(n)),sendWith:cg(t.sendWith),randomizeOutputs:Qn(t.randomizeOutputs,"randomizeOutputs")}}function ja(i,t){gt(i,"args");let e={description:re(i.description,"description",5,2e3),inputBEEF:i.inputBEEF===void 0?void 0:Dn(i.inputBEEF,"inputBEEF"),inputs:Pe(i.inputs,"inputs").map(r=>ww(r)),outputs:Pe(i.outputs,"outputs").map(r=>xw(r)),lockTime:Qt(i.lockTime,"lockTime",0,0,Oi),version:Qt(i.version,"version",1,0,Oi),labels:Pe(i.labels,"labels").map(r=>Uf(r)),options:Iw(i.options),logger:t,isSendWith:!1,isDelayed:!1,isNoSend:!1,isNewTx:!1,isRemixChange:!1,isSignAction:!1,randomVals:void 0,includeAllSourceTransactions:!1,isTestWerrReviewActions:!1};if(e.inputBEEF!==void 0&&sg.get(e.inputBEEF)!==!0)try{ss(e.inputBEEF),sg.set(e.inputBEEF,!0)}catch{throw new ut("inputBEEF","a complete, exactly framed BEEF envelope")}let n=new Set;for(let r of e.inputs){let s=`${r.outpoint.txid.toLowerCase()}.${r.outpoint.vout}`;n.has(s)&&wt("inputs","unique input outpoints"),n.add(s)}return e.isTestWerrReviewActions=e.labels.includes(Nw),e.isSendWith=e.options.sendWith.length>0,e.isRemixChange=!e.isSendWith&&e.inputs.length===0&&e.outputs.length===0,e.isNewTx=e.isRemixChange||e.inputs.length>0||e.outputs.length>0,e.isNewTx&&e.options.sendWith.length>=yn&&wt("sendWith",`at most ${yn-1} transaction IDs when the new transaction joins the broadcast set`),e.isSignAction=e.isNewTx&&(!e.options.signAndProcess||e.inputs.some(r=>r.unlockingScript===void 0)),e.isDelayed=e.options.acceptDelayedBroadcast,e.isNoSend=e.options.noSend,e}function Sw(i){i!==void 0&&gt(i,"options");let t=i??{};return{acceptDelayedBroadcast:Qn(t.acceptDelayedBroadcast,"acceptDelayedBroadcast"),returnTXIDOnly:pe(t.returnTXIDOnly,"returnTXIDOnly"),noSend:pe(t.noSend,"noSend"),sendWith:cg(t.sendWith)}}function Ga(i){gt(i,"args");let t=gt(i.spends,"spends"),e=Object.create(null);for(let[r,s]of Object.entries(t)){/^(?:0|[1-9]\d*)$/.test(r)||wt("spends key","a canonical input index");let o=Qt(Number(r),"spends key",void 0,0,Oi),c=gt(s,`spends.${r}`);e[o]={unlockingScript:Ri(c.unlockingScript,`spends.${r}.unlockingScript`),sequenceNumber:c.sequenceNumber===void 0?void 0:Qt(c.sequenceNumber,`spends.${r}.sequenceNumber`,void 0,0,Oi)}}let n={spends:e,reference:rn(i.reference,"reference"),options:Sw(i.options),isSendWith:!1,isDelayed:!1,isNoSend:!1,isNewTx:!0,isRemixChange:!1,isTestWerrReviewActions:!1};return n.isSendWith=n.options.sendWith.length>0,n.options.sendWith.length>=yn&&wt("sendWith",`at most ${yn-1} transaction IDs when the signed transaction joins the broadcast set`),n.isDelayed=n.options.acceptDelayedBroadcast,n.isNoSend=n.options.noSend,n}function Ya(i){return gt(i,"args"),{reference:rn(i.reference,"reference")}}function vw(i){return i===void 0?void 0:(gt(i,"paymentRemittance"),{derivationPrefix:rn(i.derivationPrefix,"derivationPrefix"),derivationSuffix:rn(i.derivationSuffix,"derivationSuffix"),senderIdentityKey:De(i.senderIdentityKey,"senderIdentityKey")})}function Aw(i){return i===void 0?void 0:(gt(i,"insertionRemittance"),{basket:Xa(i.basket),customInstructions:yr(i.customInstructions,"customInstructions",0,1e3),tags:Pe(i.tags,"tags").map(e=>Mf(e))})}function Ew(i){if(gt(i,"output"),i.protocol!=="basket insertion"&&i.protocol!=="wallet payment")throw new ut("protocol","'basket insertion' or 'wallet payment'");return i.protocol==="wallet payment"?(i.paymentRemittance===void 0||i.insertionRemittance!==void 0)&&wt("output remittance","only paymentRemittance for wallet payment"):(i.insertionRemittance===void 0||i.paymentRemittance!==void 0)&&wt("output remittance","only insertionRemittance for basket insertion"),{outputIndex:dw(i.outputIndex,"outputIndex"),protocol:i.protocol,paymentRemittance:vw(i.paymentRemittance),insertionRemittance:Aw(i.insertionRemittance)}}function ti(i){if(i===void 0)return;i=i.trim().toLowerCase(),re(i,"originator",1,250);let t=i.lastIndexOf(":"),e=i;if(t!==-1){if(i.indexOf(":")!==t)throw new ut("originator","a canonical DNS hostname with an optional port");let r=i.slice(t+1);if(!/^\d{1,5}$/.test(r)||Number(r)>65535)throw new ut("originator","a canonical DNS hostname with an optional port");e=i.slice(0,t)}re(e,"originator hostname",1,250);let n=e.split(".");for(let r of n)if(re(r,"originator part",1,63),!/^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/.test(r))throw new ut("originator","a canonical DNS hostname with an optional port");return e}function Za(i){gt(i,"args");let t={tx:Dn(i.tx,"tx"),outputs:Pe(i.outputs,"outputs").map(e=>Ew(e)),description:re(i.description,"description",5,2e3),labels:Pe(i.labels,"labels").map(e=>Uf(e)),seekPermission:Qn(i.seekPermission,"seekPermission")};if(og.get(t.tx)!==!0)try{Po(t.tx),og.set(t.tx,!0)}catch{throw new ut("tx","a complete, exactly framed Atomic BEEF transaction")}if(t.outputs.length<1)throw new ut("outputs","at least one output to internalize from the transaction");return t}function Tw(i,t){if(i!==void 0)return Ja(i,t)}function Ja(i,t){if(typeof i!="string")throw new ut(t,"txid as hex string and numeric output index joined with '.'");let e=/^([0-9A-Fa-f]{64})\.(0|[1-9]\d*)$/.exec(i);if(e===null)throw new ut(t,"a 32-byte txid and canonical numeric output index joined with '.'");let n=Ri(e[1],`${t} txid`,64,64),r=Qt(Number(e[2]),`${t} vout`,void 0,0,Oi);return`${n}.${r}`}function Qa(i){return gt(i,"args"),{basket:Xa(i.basket),output:Ja(i.output,"output")}}function tc(i){return gt(i,"args"),{type:rn(i.type,"type",32,32),serialNumber:rn(i.serialNumber,"serialNumber",32,32),certifier:De(i.certifier,"certifier")}}function ec(i){return gt(i,"args"),Pi(i,!1),{certifiers:Pe(i.certifiers,"certifiers").map(e=>De(e,"certifiers")),types:Pe(i.types,"types").map(e=>rn(e,"types",32,32)),limit:Qt(i.limit,"limit",10,1,1e4),offset:Qt(i.offset,"offset",0,0),privileged:pe(i.privileged,"privileged"),privilegedReason:yr(i.privilegedReason,"privilegedReason",5,50),partial:void 0}}function Hf(i){let t=gt(i,"fields");for(let e of Object.keys(t))re(e,"field name",1,50),re(t[e],`fields.${e}`);return i}function kw(i,t){return i==="certifier"?i:De(i,t)}function Ow(i,t){let e=gt(i,t);for(let n of Object.keys(e))re(n,`${t} field name`,1,50),rn(e[n],`${t} field value`);return i}function nc(i){if(gt(i,"args"),Pi(i,!1),i.acquisitionProtocol!=="issuance")throw new Error("Only acquire certificate via issuance requests allowed here.");if(i.serialNumber)throw new ut("serialNumber",'valid when acquisitionProtocol is "direct"');if(i.signature)throw new ut("signature",'valid when acquisitionProtocol is "direct"');if(i.revocationOutpoint)throw new ut("revocationOutpoint",'valid when acquisitionProtocol is "direct"');if(i.keyringRevealer)throw new ut("keyringRevealer",'valid when acquisitionProtocol is "direct"');if(i.keyringForSubject!=null)throw new ut("keyringForSubject",'valid when acquisitionProtocol is "direct"');if(!i.certifierUrl)throw new ut("certifierUrl",'valid when acquisitionProtocol is "issuance"');return{type:rn(i.type,"type",32,32),certifier:De(i.certifier,"certifier"),certifierUrl:Pw(i.certifierUrl),fields:Hf(i.fields),privileged:pe(i.privileged,"privileged"),privilegedReason:yr(i.privilegedReason,"privilegedReason",5,50),subject:""}}function Pw(i){let t=re(i,"certifierUrl",1,2048);if(t!==t.trim())throw new ut("certifierUrl","an exact HTTPS URL without whitespace");let e;try{e=new URL(t)}catch{throw new ut("certifierUrl","an absolute HTTPS URL")}if(e.protocol!=="https:")throw new ut("certifierUrl","an HTTPS URL");if(e.username!==""||e.password!=="")throw new ut("certifierUrl","a URL without credentials");if(e.search!==""||e.hash!=="")throw new ut("certifierUrl","a URL without a query or fragment");let n=e.hostname.toLowerCase();if(n==="localhost"||n.endsWith(".localhost")||n==="[::1]"||/^\d+(?:\.\d+){0,3}$/.test(n)||n.includes(":"))throw new ut("certifierUrl","a public DNS hostname");let r=n.split(".");if(r.length<2||r.some(s=>!/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/.test(s)))throw new ut("certifierUrl","a public DNS hostname");return t.replace(/\/+$/,"")}function ic(i){if(gt(i,"args"),Pi(i,!1),i.acquisitionProtocol!=="direct")throw new Error("Only acquire direct certificate requests allowed here.");if(!i.serialNumber)throw new ut("serialNumber",'valid when acquisitionProtocol is "direct"');if(!i.signature)throw new ut("signature",'valid when acquisitionProtocol is "direct"');if(!i.revocationOutpoint)throw new ut("revocationOutpoint",'valid when acquisitionProtocol is "direct"');if(!i.keyringRevealer)throw new ut("keyringRevealer",'valid when acquisitionProtocol is "direct"');if(i.keyringForSubject==null)throw new ut("keyringForSubject",'valid when acquisitionProtocol is "direct"');return{type:rn(i.type,"type",32,32),serialNumber:rn(i.serialNumber,"serialNumber",32,32),certifier:De(i.certifier,"certifier"),revocationOutpoint:Ja(i.revocationOutpoint,"revocationOutpoint"),fields:Hf(i.fields),signature:fg(i.signature,"signature"),keyringRevealer:kw(i.keyringRevealer,"keyringRevealer"),keyringForSubject:Ow(i.keyringForSubject,"keyringForSubject"),privileged:pe(i.privileged,"privileged"),privilegedReason:yr(i.privilegedReason,"privilegedReason",5,50),subject:""}}function rc(i){gt(i,"args"),gt(i.certificate,"certificate"),Pi(i,!1),i.certificate.fields!==void 0&&Hf(i.certificate.fields);let t={type:ag(i.certificate.type,"certificate.type",32,32),serialNumber:ag(i.certificate.serialNumber,"certificate.serialNumber",32,32),certifier:i.certificate.certifier===void 0?void 0:De(i.certificate.certifier,"certificate.certifier"),subject:i.certificate.subject===void 0?void 0:De(i.certificate.subject,"certificate.subject"),revocationOutpoint:Tw(i.certificate.revocationOutpoint,"certificate.revocationOutpoint"),signature:i.certificate.signature===void 0?void 0:fg(i.certificate.signature,"certificate.signature"),fieldsToReveal:Pe(i.fieldsToReveal,"fieldsToReveal").map(e=>re(e,`fieldsToReveal ${e}`,1,50)),verifier:De(i.verifier,"verifier"),privileged:pe(i.privileged,"privileged"),privilegedReason:yr(i.privilegedReason,"privilegedReason",5,50)};return t.fieldsToReveal.length>ig&&wt("fieldsToReveal",`at most ${ig} fields`),new Set(t.fieldsToReveal).size!==t.fieldsToReveal.length&&wt("fieldsToReveal","unique field names"),t}function sc(i){return gt(i,"args"),{identityKey:De(i.identityKey,"identityKey"),limit:Qt(i.limit,"limit",10,1,1e4),offset:Qt(i.offset,"offset",0,0),seekPermission:Qn(i.seekPermission,"seekPermission")}}function Rw(i){let t=gt(i,"attributes"),e=Object.keys(t);(e.length<1||e.length>rg)&&wt("attributes",`an object containing 1-${rg} fields`);for(let n of e)re(n,`field name ${n}`,1,50),re(t[n],`attributes.${n}`,1,500);return i}function oc(i){return gt(i,"args"),{attributes:Rw(i.attributes),limit:Qt(i.limit,"limit",10,1,1e4),offset:Qt(i.offset,"offset",0,0),seekPermission:Qn(i.seekPermission,"seekPermission")}}function ac(i){gt(i,"args");let t;if(i.tagQueryMode===void 0||i.tagQueryMode==="any")t="any";else if(i.tagQueryMode==="all")t="all";else throw new ut("tagQueryMode","undefined, 'any', or 'all'");return i.include!==void 0&&i.include!=="locking scripts"&&i.include!=="entire transactions"&&wt("include","undefined, 'locking scripts', or 'entire transactions'"),{basket:Xa(i.basket),tags:Pe(i.tags,"tags").map(n=>Mf(n)),tagQueryMode:t,includeLockingScripts:i.include==="locking scripts",includeTransactions:i.include==="entire transactions",includeCustomInstructions:pe(i.includeCustomInstructions,"includeCustomInstructions"),includeTags:pe(i.includeTags,"includeTags"),includeLabels:pe(i.includeLabels,"includeLabels"),limit:Qt(i.limit,"limit",10,1,1e4),offset:Qt(i.offset,"offset",0),seekPermission:Qn(i.seekPermission,"seekPermission"),knownTxids:[]}}function cc(i){gt(i,"args");let t;if(i.labelQueryMode===void 0||i.labelQueryMode==="any")t="any";else if(i.labelQueryMode==="all")t="all";else throw new ut("labelQueryMode","undefined, 'any', or 'all'");return{labels:Pe(i.labels,"labels").map(n=>Uf(n)),labelQueryMode:t,includeLabels:pe(i.includeLabels,"includeLabels"),includeInputs:pe(i.includeInputs,"includeInputs"),includeInputSourceLockingScripts:pe(i.includeInputSourceLockingScripts,"includeInputSourceLockingScripts"),includeInputUnlockingScripts:pe(i.includeInputUnlockingScripts,"includeInputUnlockingScripts"),includeOutputs:pe(i.includeOutputs,"includeOutputs"),includeOutputLockingScripts:pe(i.includeOutputLockingScripts,"includeOutputLockingScripts"),limit:Qt(i.limit,"limit",10,1,1e4),offset:Qt(i.offset,"offset",0,0),seekPermission:Qn(i.seekPermission,"seekPermission")}}function uc(i){let t=gt(i,"args");if(t.identityKey!==void 0&&t.identityKey!==!0&&wt("identityKey","true or undefined"),t.forSelf!==void 0&&us(t.forSelf,"forSelf",!1),t.identityKey===!0){t.protocolID!==void 0&&Lf(t.protocolID),t.keyID!==void 0&&re(t.keyID,"keyID",1,800),t.counterparty!==void 0&&Cf(t.counterparty,"counterparty"),Pi(t);return}mr(i,"args")}function fc(i){let t=gt(i,"args");De(t.counterparty,"counterparty"),De(t.verifier,"verifier"),Pi(t,!1)}function dc(i){let t=gt(i,"args");Cf(t.counterparty,"counterparty"),De(t.verifier,"verifier"),Lf(t.protocolID),re(t.keyID,"keyID",1,800),Pi(t,!1)}function lc(i){let t=gt(i,"args");mr(i),Dn(t.plaintext,"plaintext")}function hc(i){let t=gt(i,"args");mr(i),Dn(t.ciphertext,"ciphertext")}function pc(i){let t=gt(i,"args");mr(i),Dn(t.data,"data")}function gc(i){let t=gt(i,"args");mr(i),Dn(t.data,"data"),Dn(t.hmac,"hmac",32)}function dg(i,t,e){let n=i[t]!==void 0,r=i[e]!==void 0;n===r&&wt(`${t}, ${e}`,"exactly one value"),n&&Dn(i[t],t),r&&Dn(i[e],e,32)}function bc(i){let t=gt(i,"args");mr(i),dg(t,"data","hashToDirectlySign")}function mc(i){let t=gt(i,"args");mr(i),dg(t,"data","hashToDirectlyVerify");let e=Dn(t.signature,"signature",void 0,72);as(e)||wt("signature","a canonical DER-encoded ECDSA signature"),t.forSelf!==void 0&&us(t.forSelf,"forSelf",!1)}function yc(i){let t=gt(i,"args");Qt(t.height,"height",void 0,1,Oi)}function Ni(i,t="args"){gt(i,t)}var Nw="a496e747fc3ad5fabdd4ae8f91184e71f87539bd3d962aa2548942faaaf0047a";var wc;(function(i){i[i.Silent=0]="Silent",i[i.App=1]="App",i[i.Counterparty=2]="Counterparty"})(wc||(wc={}));var Bw=Object.prototype.hasOwnProperty,_w=new Set(["BEEF","atomicBEEF","beef","ciphertext","competingBeef","data","encryptedLinkage","encryptedLinkageProof","hashToDirectlySign","hashToDirectlyVerify","hmac","inputBEEF","payload","plaintext","signature","transaction","tx"]);function xc(i){return i==null||typeof i!="object"||typeof ArrayBuffer>"u"?!1:ArrayBuffer.isView(i)&&Object.prototype.toString.call(i)==="[object Uint8Array]"}function lg(i){return Number.isInteger(i)&&i>=0&&i<=255}function Cw(i){return i!=null&&typeof i=="object"&&typeof ArrayBuffer<"u"&&(ArrayBuffer.isView(i)||Object.prototype.toString.call(i)==="[object ArrayBuffer]")}function Lw(i){for(let t=0;t<i.length;t++)if(!Bw.call(i,t)||!lg(i[t]))return;return i}function Uw(i){if(!(i==null||typeof i!="object"))try{let t=Object.keys(i);if(t.length===0)return;let e=[];for(let n=0;n<t.length;n++){if(t[n]!==String(n))return;let r=i[t[n]];if(!lg(r))return;e.push(r)}return e}catch{return}}function $f(i){if(xc(i))return i;if(!Cw(i))return Array.isArray(i)?Lw(i):Uw(i)}function Mw(i,t){let e=this==null?void 0:this[i];return xc(e)?Array.from(e):xc(t)?Array.from(t):t}function fs(i,t){let e=JSON.stringify(i,Mw,t);if(e===void 0)throw new TypeError("BRC-100 JSON payload is not serializable");return e}function Dw(i,t,e,n){let r=$f(e);r!=null?i[t]=r:n(e)}function Ic(i){let t=new WeakSet,e=[i];for(;e.length>0;){let n=e.pop();if(!(n==null||typeof n!="object"||xc(n))&&!t.has(n)){if(t.add(n),Array.isArray(n)){for(let r of n)e.push(r);continue}for(let[r,s]of Object.entries(n))_w.has(r)?Dw(n,r,s,o=>e.push(o)):e.push(s)}}return i}var Hw=Number,$w=String,Fw=Uint8Array,qw=URL,Ww=Array.prototype,Vw=Array.isArray,Kw=Date.parse,zw=Number.MAX_SAFE_INTEGER,Xw=Number.isFinite,Ac=Number.isInteger,xr=Number.isSafeInteger,Rg=Object.prototype,jw=Object.prototype.hasOwnProperty,Bi=Object.create,Ec=Object.defineProperty,Ng=Object.freeze,be=Object.getOwnPropertyDescriptor,Tc=Object.getPrototypeOf,xn=Object.keys,Sr=Reflect.ownKeys,Gw=RegExp.prototype.exec,Yw=RegExp.prototype.test,Bg=String.prototype.split,Zw=String.prototype.toLowerCase,Jw=String.prototype.trim,Xf=String.prototype.replace,Qw=String.prototype.normalize,tx=String.prototype.indexOf,ex=String.prototype.slice,nx=String.prototype.startsWith,ix=RegExp,hg=be(URL.prototype,"protocol")?.get,jf=Tc(Uint8Array.prototype),pg=be(jf,"buffer")?.get,gg=be(jf,"length")?.get,bg=be(jf,Symbol.toStringTag)?.get,rx=Uint8Array.prototype.set,mg=typeof SharedArrayBuffer>"u"?void 0:be(SharedArrayBuffer.prototype,"byteLength")?.get,yg=Map,on=Set,wg=WeakMap,sx=WeakSet,ox=Map.prototype.get,ax=Map.prototype.set,cx=Map.prototype.has,ux=Map.prototype.forEach,fx=Set.prototype.add,dx=Set.prototype.has,lx=be(Set.prototype,"size").get,hx=WeakMap.prototype.get,px=WeakMap.prototype.set,gx=WeakSet.prototype.add,bx=WeakSet.prototype.has,Ot=Reflect.apply;function Ht(i){return Vw(i)}function wn(i){return Hw(i)}function Re(i){return $w(i)}function zt(i){return Ot(Zw,i,[])}function Gf(i,t){return Ot(Bg,i,[t])}function ls(i,t){return Ot(Yw,i,[t])}function Ir(i,t){return Ot(Gw,i,[t])}function kc(i,t){return Ot(jw,i,[t])}function _o(i){if(!(pg==null||gg==null||bg==null))try{return{buffer:Ot(pg,i,[]),length:Ot(gg,i,[]),tag:Ot(bg,i,[])}}catch{return}}function Vf(i){return _o(i)?.tag==="Uint8Array"}function mx(i){if(mg==null)return!1;try{return Ot(mg,i,[]),!0}catch{return!1}}function wr(i,t){return Ot(ox,i,[t])}function Ff(i,t,e){Ot(ax,i,[t,e])}function yx(i,t){return Ot(cx,i,[t])}function wx(i,t){Ot(ux,i,[t])}function Xt(i,t){Ot(fx,i,[t])}function an(i,t){return Ot(dx,i,[t])}function Oc(i){return Ot(lx,i,[])}function xg(i,t){return Ot(hx,i,[t])}function Ro(i,t,e){Ot(px,i,[t,e])}function qf(i,t){Ot(gx,i,[t])}function Ig(i,t){return Ot(bx,i,[t])}var ni=new on;Xt(ni,"completed");Xt(ni,"unprocessed");Xt(ni,"sending");Xt(ni,"unproven");Xt(ni,"unsigned");Xt(ni,"nosend");Xt(ni,"nonfinal");Xt(ni,"failed");var Nc=new on;Xt(Nc,"unproven");Xt(Nc,"sending");Xt(Nc,"failed");var ds=1e6,Sg=ds+2,xx=16*1024*1024,Ix="0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",vg=new Ti,Yf=Symbol("createActionSourceEvidence"),Co=Symbol("byteBudgetExceeded"),No=new sx,Pc=Ng(Bi(null));function _g(i){if(!Ht(i))return;let t=be(i,"length");if(t==null||!("value"in t)||!xr(t.value)||t.value<0||t.value>ds)throw new Error("Wallet request arrays must have a bounded own length");let e=t.value;if(Sr(i).length!==e+1)throw new Error("Wallet request arrays must contain only dense data properties");let r=[];r.length=e;for(let s=0;s<e;s++){let o=be(i,Re(s));if(o==null||!("value"in o))throw new Error("Wallet request arrays must contain only dense data properties");r[s]=o.value}return r}function Ag(i){let t=At(i);if(t==null)return;let e=Bi(null),n=Sr(t);for(let r=0;r<n.length;r++){let s=n[r];if(typeof s!="string")continue;let o=be(t,s);o!=null&&"value"in o&&(e[s]=o.value)}return e}function Ye(i,t,e=[]){let n=Bi(null);for(let r=0;r<t.length;r++){let s=t[r],o=!1;for(let c=0;c<e.length;c++)if(e[c]===s){o=!0;break}n[s]=o?_g(i[s]):i[s]}return n}function Cg(i){let t=At(i);if(t==null)return Pc;let e=be(t,Yf)?.value;if(e!=null)return e;let n=t.inputBEEF,r=t.inputs;if(n===void 0||!Ht(r)||r.length===0)return Pc;let s=ei(n,"createAction","request.inputBEEF"),o;try{o=ss(s)}catch{L("createAction","request.inputBEEF","an exactly framed BEEF envelope")}let c=Bi(null);for(let u=0;u<r.length;u++){let f=r[u],d=At(f);if(d==null||typeof d.outpoint!="string")continue;let l=Ir(/^([0-9a-fA-F]{64})\.(0|[1-9]\d*)$/,d.outpoint);if(l==null)continue;let p=wn(l[2]);if(p>4294967295)continue;let b=zt(l[1]),g=wr(o.transactions,b)?.outputs[p];g!==void 0&&(c[`${b}.${p}`]=g.satoshis)}return Ng(c)}function bt(i,t){let e=At(t);if(e==null)return t;let n=At(e.options);switch(i){case"createAction":{let r={inputs:Ht(e.inputs)?(()=>{let s=[];s.length=e.inputs.length;for(let o=0;o<e.inputs.length;o++){let c=e.inputs[o],u=At(c);s[o]=u==null?c:Ye(u,["outpoint","unlockingScript","sequenceNumber"])}return s})():e.inputs,outputs:Ht(e.outputs)?(()=>{let s=[];s.length=e.outputs.length;for(let o=0;o<e.outputs.length;o++){let c=e.outputs[o],u=At(c);s[o]=u==null?c:Ye(u,["satoshis","lockingScript"])}return s})():e.outputs,version:e.version,lockTime:e.lockTime,options:n==null?{signAndProcess:void 0,returnTXIDOnly:void 0,sendWith:void 0,randomizeOutputs:void 0,knownTxids:void 0}:Ye(n,["signAndProcess","returnTXIDOnly","sendWith","randomizeOutputs","knownTxids"],["sendWith","knownTxids"])};return Ec(r,Yf,{value:Cg(e),writable:!1,configurable:!1,enumerable:!1}),r}case"signAction":{let r=At(e.spends),s=Bi(null);if(r!=null){let o=xn(r);for(let c=0;c<o.length;c++){let u=o[c],f=r[u],d=At(f);s[u]=d==null?f:Ye(d,["unlockingScript","sequenceNumber"])}}return{spends:s,options:n==null?{returnTXIDOnly:void 0,sendWith:void 0}:Ye(n,["returnTXIDOnly","sendWith"],["sendWith"])}}case"listActions":return Ye(e,["labels","labelQueryMode","includeLabels","includeInputs","includeInputSourceLockingScripts","includeInputUnlockingScripts","includeOutputs","includeOutputLockingScripts","limit"],["labels"]);case"listOutputs":return Ye(e,["basket","tags","tagQueryMode","include","includeCustomInstructions","includeTags","includeLabels","limit"],["tags"]);case"listCertificates":return Ye(e,["limit","certifiers","types"],["certifiers","types"]);case"discoverByIdentityKey":return Ye(e,["limit","identityKey"]);case"discoverByAttributes":{let r=At(e.attributes);return{limit:e.limit,attributes:r==null?e.attributes:{...r}}}case"revealCounterpartyKeyLinkage":return Ye(e,["verifier","counterparty"]);case"revealSpecificKeyLinkage":return Ye(e,["verifier","counterparty","protocolID","keyID"],["protocolID"]);case"acquireCertificate":return{...Ye(e,["acquisitionProtocol","type","certifier","serialNumber","revocationOutpoint","signature"]),fields:Ag(e.fields)};case"proveCertificate":return{fieldsToReveal:_g(e.fieldsToReveal),verifier:e.verifier,certificate:(()=>{let r=At(e.certificate);return r==null?e.certificate:{...Ye(r,["type","serialNumber","subject","certifier","revocationOutpoint","signature"]),fields:Ag(r.fields)}})()};default:return t}}function L(i,t,e){throw new Error(`Invalid ${i} result ${t}: expected ${e}`)}function Lg(i){let t=be(i,"length");return t!=null&&"value"in t&&xr(t.value)&&t.value>=0?t.value:void 0}function Ug(i,t,e,n=e){if(t>e)return;let r=Sr(i);if(r.length!==t+1)return;for(let o=0;o<r.length;o++){let c=r[o];if(c!=="length"&&(typeof c!="string"||!Ac(wn(c))||wn(c)<0||wn(c)>=t||Re(wn(c))!==c))return}let s=t<=n?[]:void 0;s!==void 0&&(s.length=t);for(let o=0;o<t;o++){let c=be(i,Re(o));if(c==null||c.enumerable!==!0||!("value"in c)||!Ac(c.value)||c.value<0||c.value>255)return;s!==void 0&&(s[o]=c.value)}return s??Co}function Sx(i,t,e){let n=Tc(i);if(n!==Rg&&n!==null)return;let r=Sr(i);if(r.length===0||r.length>t)return;let s=r.length<=e?[]:void 0;s!==void 0&&(s.length=r.length);for(let o=0;o<r.length;o++){let c=r[o];if(c!==Re(o))return;let u=be(i,c);if(u==null||u.enumerable!==!0||!("value"in u)||!Ac(u.value)||u.value<0||u.value>255)return;s!==void 0&&(s[o]=u.value)}return s??Co}function vx(i){switch(i){case"BEEF":case"atomicBEEF":case"beef":case"ciphertext":case"competingBeef":case"data":case"encryptedLinkage":case"encryptedLinkageProof":case"hashToDirectlySign":case"hashToDirectlyVerify":case"hmac":case"inputBEEF":case"payload":case"plaintext":case"signature":case"transaction":case"tx":return!0;default:return!1}}function Mg(i,t,e){let n=_o(i);n?.tag!=="Uint8Array"&&L(t,"byte array","an intrinsic Uint8Array");let{buffer:r,length:s}=n;mx(r)&&L(t,"byte array","an unshared Uint8Array"),s>268435456&&L(t,"byte array",`at most ${268435456} bytes`),s>e&&L(t,"byte arrays",`at most ${268435456} total bytes`);let o=new Fw(s);try{Ot(rx,o,[i])}catch{L(t,"byte array","an intrinsic Uint8Array")}return o}function Zf(i,t,e=!1){let n=[],r=new wg,s=new wg,o=0,c=0,u=(d,l)=>{if(d==null||typeof d!="object")return typeof d=="function"&&L(t,"value","data without functions"),d;if(!Ht(d)&&!Vf(d)&&e&&vx(l)){let y=xg(s,d);if(y!==void 0)return y;let v=Sx(d,268435456,268435456-c);if(v===Co&&L(t,"byte arrays",`at most ${268435456} total bytes`),v!==void 0)return o++,o>ds&&L(t,"object graph","a bounded result"),v.length>268435456-c&&L(t,"byte arrays",`at most ${268435456} total bytes`),c+=v.length,qf(No,v),Ro(s,d,v),v}let p=xg(r,d);if(p!==void 0)return p;if(o++,o>ds&&L(t,"object graph","a bounded result"),Vf(d)){let y=Mg(d,t,268435456-c);return c+=_o(y).length,qf(No,y),Ro(r,d,y),y}if(Ht(d)){Tc(d)!==Ww&&L(t,"array prototype","the intrinsic Array.prototype");let v=Lg(d);v===void 0&&L(t,"array length","an own integer data property");let C=Ug(d,v,268435456,268435456-c);if(C===Co&&L(t,"byte arrays",`at most ${268435456} total bytes`),C!==void 0)return c+=C.length,qf(No,C),Ro(r,d,C),C;v>ds&&L(t,"array length",`at most ${ds} entries`);let E=[];return E.length=v,Ro(r,d,E),n[n.length]={source:d,target:E,array:!0},E}let b=Tc(d);b!==null&&b!==Rg&&L(t,"object prototype","Object.prototype or null");let g=b===null?Bi(null):{};return Ro(r,d,g),n[n.length]={source:d,target:g,array:!1},g},f=u(i);for(;n.length>0;){let d=n[n.length-1];n.length-=1;let l=Sr(d.source);if(d.array){o+=l.length,o>Sg&&L(t,"object graph","a bounded result");let p=d.source,b=d.target.length;l.length!==b+1&&L(t,"array shape","a dense standard array without extra properties");for(let g=0;g<l.length;g++){let y=l[g];if(typeof y!="string"&&L(t,"array key","a string"),hn(y)&&L(t,`array key ${y}`,"a safe array key"),y!=="length"){let C=wn(y);(!Ac(C)||C<0||C>=b||Re(C)!==y)&&L(t,`array key ${y}`,"a canonical in-range array index")}let v=be(p,y);(v==null||!("value"in v))&&L(t,`array property ${y}`,"a data property"),y!=="length"&&Ec(d.target,y,{value:u(v.value),enumerable:v.enumerable,configurable:!0,writable:!0})}continue}o+=l.length,o>Sg&&L(t,"object graph","a bounded result");for(let p=0;p<l.length;p++){let b=l[p];typeof b!="string"&&L(t,"object key","a string"),hn(b)&&L(t,`object key ${b}`,"a safe record key");let g=be(d.source,b);(g==null||!("value"in g))&&L(t,`object property ${b}`,"a data property"),Ec(d.target,b,{value:u(g.value,b),enumerable:g.enumerable,configurable:!0,writable:!0})}}return f}function Dg(i,t){return Zf(i,t)}function Hg(i,t){return Zf(i,t,!0)}function $e(i,t,e="value"){(i==null||typeof i!="object"||Ht(i))&&L(t,e,"an object");let n=Bi(null),r=Sr(i);for(let s=0;s<r.length;s++){let o=r[s];typeof o!="string"&&L(t,`${e} key`,"a string");let c=be(i,o);(c==null||!("value"in c))&&L(t,`${e}.${o}`,"a data property"),n[o]=c.value}return n}function ei(i,t,e,n,r=268435456){let s;if(i!=null&&typeof i=="object"&&Vf(i)){let c=Ig(No,i)?i:Mg(i,t,268435456);_o(c).length<=r&&(s=c)}else if(Ht(i)){let c=Lg(i);if(c===void 0&&L(t,e,"an own integer array length"),c>r&&L(t,e,`at most ${r} bytes`),Ig(No,i))s=i;else{let u=Ug(i,c,r);u===Co&&L(t,e,`at most ${r} bytes`),s=u}}s==null&&L(t,e,"an array of bytes");let o=Ht(s)?s.length:_o(s).length;return o>r&&L(t,e,`at most ${r} bytes`),n!==void 0&&o!==n&&L(t,e,`${n} bytes`),s}function ge(i,t,e,n=0,r){typeof i!="string"&&L(t,e,"a string");let s=ye(i).length;return(s<n||r!==void 0&&s>r)&&L(t,e,`${n}${r===void 0?"+":`\u2013${r}`} UTF-8 bytes`),i}function He(i,t,e,n){let r=ge(i,t,e);return ls(/^(?:[0-9a-fA-F]{2})*$/,r)||L(t,e,"an even-length hex string"),n!==void 0&&r.length!==n*2&&L(t,e,`${n} hexadecimal bytes`),r}function Lo(i,t,e){let n=He(i,t,e,33);za(n)||L(t,e,"a valid compressed secp256k1 public key")}function te(i,t,e,n=4294967295){return(!xr(i)||i<0||i>n)&&L(t,e,`an integer from 0 to ${n}`),i}function Jf(i,t,e,n,r){return(!xr(i)||i<n||i>r)&&L(t,e,`an integer from ${n} to ${r}`),i}function Sc(i,t,e){i[e]!==!0&&L(t,e,"true")}function $g(i,t,e){typeof i[e]!="boolean"&&L(t,e,"a boolean")}function Hn(i,t,e){if(i!==void 0)return Ht(i)||L(t,e,"an array"),i.length>1e5&&L(t,e,"at most 100000 entries"),i}function Rc(i,t,e,n,r){let s=Hn(i,t,e);if(s!=null)for(let o=0;o<s.length;o++)ge(s[o],t,`${e}[${o}]`,n,r)}function Ax(i,t,e){let n=ge(i,t,e,1,64);ls(/^\d{4}-\d{2}-\d{2}T.*(?:Z|[+-]\d{2}:\d{2})$/,n)||L(t,e,"an ISO timestamp with a timezone");let r=Kw(n);Xw(r)||L(t,e,"a valid ISO timestamp")}function Ex(i,t,e,n){let r=ge(i,t,e,1,n);try{let s=new qw(r);if(hg==null)throw new Error;let o=Ot(hg,s,[]);if(o!=="https:"&&o!=="http:")throw new Error}catch{L(t,e,"an absolute HTTP(S) URL")}}function Tx(i,t){let e=Hn(i,t,"sendWithResults");if(e!=null){e.length>yn+1&&L(t,"sendWithResults",`at most ${yn+1} transaction results`);for(let n=0;n<e.length;n++){let r=e[n],s=`sendWithResults[${n}]`,o=$e(r,t,s);He(o.txid,t,`${s}.txid`,32),an(Nc,o.status)||L(t,`${s}.status`,"a supported status")}}}function Fg(i,t,e,n){let r=i.inputs[t];r==null&&L(e,n,"a transaction input");let s=zt(He(r.sourceTXID,e,`${n}.sourceTXID`,32)),o=te(r.sourceOutputIndex,e,`${n}.sourceOutputIndex`);return`${s}.${o}`}function Eg(i,t,e,n,r){let s=At(e);if(s==null){Kf(i,t,n,r);return}let o=s.version===void 0?1:te(s.version,t,"request.version"),c=s.lockTime===void 0?0:te(s.lockTime,t,"request.lockTime");i.version!==o&&L(t,"tx.version","the requested transaction version"),i.lockTime!==c&&L(t,"tx.lockTime","the requested transaction lock time");let u=new yg;for(let y=0;y<i.inputs.length;y++){let v=Fg(i,y,t,`tx.inputs[${y}]`);yx(u,v)&&L(t,`tx.inputs[${y}]`,"a unique transaction input outpoint"),Ff(u,v,y)}let f=s.inputs===void 0?[]:Hn(s.inputs,t,"request.inputs"),d=new on;for(let y=0;y<f.length;y++){let v=f[y],C=`request.inputs[${y}]`,E=$e(v,t,C),A=hs(E.outpoint,t,`${C}.outpoint`),T=`${A.txid}.${A.outputIndex}`;an(d,T)&&L(t,`${C}.outpoint`,"a unique requested input"),Xt(d,T);let B=wr(u,T);B===void 0&&L(t,"tx.inputs","every requested input exactly once");let _=i.inputs[B],$=E.sequenceNumber===void 0?4294967295:te(E.sequenceNumber,t,`${C}.sequenceNumber`);if((_.sequence??4294967295)!==$&&L(t,`tx.inputs[${B}].sequence`,"the requested input sequence"),E.unlockingScript!==void 0){let R=zt(He(E.unlockingScript,t,`${C}.unlockingScript`));zt(Ge(_.unlockingScript))!==R&&L(t,`tx.inputs[${B}].unlockingScript`,"the requested unlocking script")}}let l=s.outputs===void 0?[]:Hn(s.outputs,t,"request.outputs"),b=At(s.options)?.randomizeOutputs===!1,g=new yg;for(let y=0;y<i.outputs.length;y++){let v=i.outputs[y],C=te(v.satoshis,t,`tx.outputs[${y}].satoshis`,21e14);if(l.length>0){let E=`${C}:${zt(Ge(v.lockingScript))}`;Ff(g,E,(wr(g,E)??0)+1)}}for(let y=0;y<l.length;y++){let v=l[y],C=`request.outputs[${y}]`,E=$e(v,t,C),A=te(E.satoshis,t,`${C}.satoshis`,21e14),T=zt(He(E.lockingScript,t,`${C}.lockingScript`));if(b){let $=i.outputs[y];($==null||$.satoshis!==A||zt(Ge($.lockingScript))!==T)&&L(t,`tx.outputs[${y}]`,"the requested output at the requested position");continue}let B=`${A}:${T}`,_=wr(g,B)??0;_===0&&L(t,"tx.outputs","every requested output with its requested amount and script"),Ff(g,B,_-1)}Kf(i,t,n,r)}function Kf(i,t,e=Pc,n=!1){let r=0,s=!1,o=new on;for(let u=0;u<i.inputs.length;u++){let f=i.inputs[u],d=Fg(i,u,t,`tx.inputs[${u}]`);an(o,d)&&L(t,`tx.inputs[${u}]`,"a unique transaction input outpoint"),Xt(o,d);let l=f.sourceSatoshis??e[d];if(l===void 0){n||L(t,`tx.inputs[${u}].sourceSatoshis`,"source transaction evidence for every completed transaction input"),s=!0;continue}r+=te(l,t,`tx.inputs[${u}].sourceSatoshis`,21e14),(!xr(r)||r>21e14)&&L(t,"tx.inputs","a valid total input value")}let c=0;for(let u=0;u<i.outputs.length;u++){let f=i.outputs[u];c+=te(f.satoshis,t,`tx.outputs[${u}].satoshis`,21e14),(!xr(c)||c>21e14)&&L(t,"tx.outputs","a valid total output value")}!s&&c>r&&L(t,"tx.outputs","a total value no greater than the transaction inputs")}function kx(i,t,e){let n=At(At(e)?.spends);if(n==null)return;let r=xn(n);for(let s=0;s<r.length;s++){let o=r[s],c=n[o],u=`request.spends.${o}`;ls(/^(?:0|[1-9]\d*)$/,o)||L(t,u,"a canonical input index");let f=wn(o),d=i.inputs[f];(!xr(f)||d==null)&&L(t,`tx.inputs[${o}]`,"the requested input index");let l=$e(c,t,u),p=zt(He(l.unlockingScript,t,`${u}.unlockingScript`));zt(Ge(d.unlockingScript))!==p&&L(t,`tx.inputs[${f}]`,"the requested unlocking script"),l.sequenceNumber!==void 0&&d.sequence!==te(l.sequenceNumber,t,`${u}.sequenceNumber`)&&L(t,`tx.inputs[${f}].sequence`,"the requested input sequence")}}function Ox(i,t,e){let n=t==="createAction"?Cg(e):Pc,r=i.txid===void 0?void 0:He(i.txid,t,"txid",32),s=i.tx===void 0?void 0:Tg(i.tx,t,"tx",r),o=s?.txid;r!==void 0&&o!==void 0&&!sn(r,o)&&L(t,"tx","a BEEF transaction matching txid");let c=Hn(i.noSendChange,t,"noSendChange");if(c!=null)for(let g=0;g<c.length;g++)hs(c[g],t,`noSendChange[${g}]`);Tx(i.sendWithResults,t);let u;if(i.signableTransaction!==void 0){t!=="createAction"&&L(t,"signableTransaction","an absent field"),(i.txid!==void 0||i.tx!==void 0)&&L(t,"signableTransaction","exclusive of txid and tx");let g=$e(i.signableTransaction,t,"signableTransaction");u=Tg(g.tx,t,"signableTransaction.tx"),Qf(g.reference,t,"signableTransaction.reference")}let f=At(e);if(f!==void 0&&t==="createAction"){let g=f.inputs===void 0?[]:Hn(f.inputs,t,"request.inputs"),y=f.outputs===void 0?[]:Hn(f.outputs,t,"request.outputs"),v=At(f.options),C=Ht(v?.sendWith)?v.sendWith:[],E=g.length>0||y.length>0||C.length===0,A=!1;for(let B=0;B<g.length;B++)if(At(g[B])?.unlockingScript===void 0){A=!0;break}let T=E&&(v?.signAndProcess===!1||A);E&&T&&u===void 0&&L(t,"signableTransaction","the requested deferred-signing transaction"),E&&!T&&r===void 0&&L(t,"txid","the requested completed transaction"),E&&!T&&u!==void 0&&L(t,"signableTransaction","absent for a completed transaction request")}f!==void 0&&t==="signAction"&&r===void 0&&L(t,"txid","the completed signed transaction"),t==="createAction"?(s!==void 0&&Eg(s,t,e,n,!1),u!==void 0&&Eg(u,t,e,n,!0)):s!==void 0&&(kx(s,t,e),Kf(s,t));let d=u?.txid,l=r??d;if(c!=null){l===void 0&&L(t,"noSendChange","associated with a transaction");for(let g=0;g<c.length;g++){let y=c[g];sn(Gf(Re(y),".")[0],l)||L(t,`noSendChange[${g}]`,"an outpoint of the returned transaction")}}let p=At(At(e)?.options),b=new on;if(l!==void 0&&Xt(b,zt(l)),Ht(p?.sendWith))for(let g=0;g<p.sendWith.length;g++)Xt(b,zt(Re(p.sendWith[g])));if(Ht(i.sendWithResults)){let g=new on;for(let y=0;y<i.sendWithResults.length;y++){let v=i.sendWithResults[y],C=`sendWithResults[${y}].txid`,E=zt(Re($e(v,t,`sendWithResults[${y}]`).txid));an(g,E)&&L(t,C,"a unique transaction"),Xt(g,E),Oc(b)>0&&!an(b,E)&&L(t,C,"a submitted or returned transaction")}}i.tx!==void 0&&i.txid===void 0&&L(t,"txid","present with tx"),At(e)!==void 0&&i.txid!==void 0&&i.tx===void 0&&At(At(e)?.options)?.returnTXIDOnly!==!0&&L(t,"tx","transaction evidence unless returnTXIDOnly was explicitly requested"),t==="signAction"&&i.noSendChange!==void 0&&L(t,"noSendChange","an absent field"),i.txid===void 0&&i.signableTransaction===void 0&&(!Ht(i.sendWithResults)||i.sendWithResults.length===0)&&L(t,"outcome","a transaction, signable transaction, or batch-send result")}function Tg(i,t,e,n){let r=ei(i,t,e),s=n===void 0?vg.get(r):void 0;if(s!=null)return s;try{let o=Po(r);return n===void 0&&vg.set(r,o),o}catch{}try{return Po(r,!0)}catch{}try{let o=ss(r),c=n===void 0?void 0:zt(n),u;wx(o.transactions,(l,p)=>{l!==void 0&&(u=p)});let f=(c!==void 0&&wr(o.transactions,c)!==void 0?c:void 0)??o.atomicTxid??u,d=f===void 0?void 0:wr(o.transactions,zt(f));if(d===void 0)throw new Error("BEEF subject transaction is missing");return d}catch{L(t,e,"a complete, exactly framed BEEF transaction")}}function Px(i,t,e){let n=ei(i,t,e);try{return ss(n)}catch{L(t,e,"a complete, exactly framed BEEF envelope")}}function hs(i,t,e){let n=ge(i,t,e),r=Ir(/^([0-9a-fA-F]{64})\.(0|[1-9]\d*)$/,n);return(r==null||wn(r[2])>4294967295)&&L(t,e,"a canonical transaction outpoint"),{txid:zt(r[1]),outputIndex:wn(r[2])}}function Qf(i,t,e){let n=ge(i,t,e,1);return ls(/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,n)||L(t,e,"a canonical base64 string"),n}function vc(i){return i<253?1:i<=65535?3:i<=4294967295?5:9}function Bo(i,t,e,n=!1){let r=$e(i,t,e),s=xn(r);for(let o=0;o<s.length;o++){let c=s[o],u=r[c],f=ye(c).length;(f<1||f>50||hn(c))&&L(t,`${e} key`,"a safe 1\u201350 byte field name"),n?Qf(u,t,`${e}.${c}`):ge(u,t,`${e}.${c}`)}return r}function zf(i,t,e){let n=$e(i,t,e);try{let r=0,s=["type","serialNumber"];for(let g=0;g<s.length;g++){let y=s[g],v=Qf(n[y],t,`${e}.${y}`),C=Va(v);if(C.length!==32||tg(C)!==v)throw new Error;r+=C.length}let o=["subject","certifier"];for(let g=0;g<o.length;g++){let y=o[g];Lo(n[y],t,`${e}.${y}`),r+=33}let c=ge(n.revocationOutpoint,t,`${e}.revocationOutpoint`),u=Gf(c,"."),f=u[1]??"0";if(u.length>2||!ls(/^[0-9a-fA-F]{64}$/,u[0])||!ls(/^(?:0|[1-9]\d*)$/,f)||wn(f)>4294967295)throw new Error;r+=32+vc(wn(f));let d=Bo(n.fields,t,`${e}.fields`),l=xn(d);for(let g=1;g<l.length;g++){let y=l[g],v=g;for(;v>0&&l[v-1]>y;)l[v]=l[v-1],v--;l[v]=y}r+=vc(l.length);for(let g=0;g<l.length;g++){let y=l[g],v=ye(y),C=ye(d[y]);r+=vc(v.length)+v.length+vc(C.length)+C.length}let p=He(n.signature,t,`${e}.signature`),b=rs(p);if(!as(b))throw new Error;if(r+=b.length,r>xx)throw new Error}catch{L(t,e,"a canonical signed wallet certificate")}return n}function At(i){if(i==null||typeof i!="object"||Ht(i))return;let t=i,e=Bi(null),n=Sr(t);for(let r=0;r<n.length;r++){let s=n[r],o=be(t,s);if(s===Yf){if(o==null||!("value"in o))throw new Error("Wallet result request records must contain only data properties");Ec(e,s,{value:o.value,enumerable:!1,configurable:!1,writable:!1});continue}if(typeof s!="string"||hn(s))throw new Error("Wallet result request records must contain only safe string keys");if(o==null||!("value"in o))throw new Error("Wallet result request records must contain only data properties");e[s]=o.value}return e}function sn(i,t){return typeof i=="string"&&typeof t=="string"&&zt(i)===zt(t)}function Bc(i){let t=Ot(Xf,i,[/\s+/g," "]);return Ot(Jw,t,[])}function kg(i){let t=Ot(Qw,i,["NFD"]);return zt(Ot(Xf,t,[/\p{Mn}/gu,""]))}function qg(i,t){return Ot(tx,i,[t])!==-1}function Wg(i,t){let e=Gf(Bc(t)," "),n=Ot(Bg,i,[/\r\n?|\n|\u2028|\u2029/]),r=0;for(;r<n.length;){let s=0,o=0;for(;o<e.length;){let c=Ot(Xf,e[o],[/[.*+?^${}()|[\]\\]/g,String.raw`\$&`]),u=new ix(c,"gi");u.lastIndex=s;let f=Ir(u,n[r]);if(f==null)break;s=f.index+f[0].length,o++}if(o===e.length)return!0;r++}return!1}var Rx=" a about above after again against all am an and any are aren't as at be because been before being below between both but by can't cannot could couldn't did didn't do does doesn't doing don't down during each few for from further had hadn't has hasn't have haven't having he he'd he'll he's her here here's hers herself him himself his how how's i i'd i'll i'm i've if in into is isn't it it's its itself let's me more most mustn't my myself no nor not of off on once only or other ought our ours ourselves out over own same shan't she she'd she'll she's should shouldn't so some such than that that's the their theirs them themselves then there there's these they they'd they'll they're they've this those through to too under until up very was wasn't we we'd we'll we're we've were weren't what what's when when's where where's which while who who's whom why why's with won't would wouldn't you you'd you'll you're you've your yours yourself yourselves ";function Vg(i){let t=[],e=/(?:[^\p{Dash}\p{Pattern_Syntax}\p{Quotation_Mark}\p{Terminal_Punctuation}\p{White_Space}]|')+/gu,n=Ir(e,i);for(;n!=null;)qg(Rx,` ${n[0]} `)||(t[t.length]=n[0]),n=Ir(e,i);return t}function Nx(i,t){let e=0;for(;e<i.length;)if(i[e++]===t)return!0;return!1}function Bx(i,t,e,n){let r=Ot(nx,e,["-"])&&e.length>1;if(n!==void 0){let u=qg(t,n);if(r?u:!u)return-1;if(r)return 0}let s=Vg(n??(r?Ot(ex,e,[1]):e)),o=!1,c=0;for(;c<s.length;){let u=Nx(i,s[c++]);if(r&&u)return-1;o=o||u}return o&&!r?1:0}function _x(i,t){let e=kg(i),n=kg(t),r=Vg(e),s=/-?"([^"]*)"|[^\s"]+/g,o=!1,c=Ir(s,n);for(;c!=null;){let u=Bx(r,e,c[0],c[1]);if(u===-1)return!1;u===1&&(o=!0),c=Ir(s,n)}return o}function Cx(i){return i!=="profilePhoto"&&i!=="icon"}function Lx(i,t){if(typeof t!="string")return!1;let e=Bc(t);if(e.length<2)return!1;let n=xn(i),r="",s=0;for(;s<n.length;){let o=n[s++];if(!Cx(o))continue;let c=i[o];r=r.length>0?`${r} ${c}`:c}return e.length===2?Wg(r,e):_x(r,e)}function Ux(i,t,e){return typeof t!="string"?!1:i==="userName"?t===Bc(e):Wg(t,e)}function Mx(i,t,e,n){let r=At(n);if(r==null)return;if(kc(r,"any")){Lx(e,r.any)||L(i,`${t}.decryptedFields`,"a match for the requested any attribute");return}let s=xn(r),o=0,c=0;for(;c<s.length;){let u=s[c++],f=r[u];typeof f!="string"&&L(i,`request.attributes.${u}`,"a string"),Bc(f).length!==0&&(o++,(!kc(e,u)||!Ux(u,e[u],f))&&L(i,`${t}.decryptedFields.${u}`,"the requested public attribute"))}o===0&&L(i,`${t}.decryptedFields`,"a usable requested attribute")}function Dx(i,t,e,n){let r=hs(i,e,n),s=hs(t,e,`request.${n}`);return r.txid===s.txid&&r.outputIndex===s.outputIndex}function Hx(i,t){let e=At(i),n=At(t);if(e==null||n==null)return!1;let r=xn(e),s=xn(n);if(r.length!==s.length)return!1;for(let o=0;o<s.length;o++){let c=s[o];if(!kc(e,c)||e[c]!==n[c])return!1}return!0}function $x(i,t){let e=At(i),n=At(t);if(e==null||n==null)return!1;let r=xn(e),s=xn(n);if(r.length!==s.length)return!1;let o=0;for(;o<s.length;){if(!kc(e,s[o]))return!1;o++}return!0}function Og(i,t,e,n,r=!0){let s=At(t);if(s==null)return;let o=["type","serialNumber"];for(let u=0;u<o.length;u++){let f=o[u];s[f]!==void 0&&i[f]!==s[f]&&L(e,`${n}.${f}`,`the requested certificate ${f}`)}let c=["subject","certifier","signature"];for(let u=0;u<c.length;u++){let f=c[u];s[f]!==void 0&&!sn(i[f],s[f])&&L(e,`${n}.${f}`,`the requested certificate ${f}`)}s.revocationOutpoint!==void 0&&!Dx(i.revocationOutpoint,s.revocationOutpoint,e,`${n}.revocationOutpoint`)&&L(e,`${n}.revocationOutpoint`,"the requested certificate revocation outpoint"),s.fields!==void 0&&!(r?Hx(i.fields,s.fields):$x(i.fields,s.fields))&&L(e,`${n}.fields`,"the requested certificate fields")}function Fx(i,t,e){let n=td(i,t,"totalCertificates","certificates",e),r=At(e),s;if(t==="listCertificates"&&Ht(r?.certifiers)){s=new on;for(let c=0;c<r.certifiers.length;c++)Xt(s,zt(Re(r.certifiers[c])))}let o;if(t==="listCertificates"&&Ht(r?.types)){o=new on;for(let c=0;c<r.types.length;c++)Xt(o,Re(r.types[c]))}for(let c=0;c<n.length;c++){let u=n[c],f=`certificates[${c}]`,d=zf(u,t,f);if(s!=null&&Oc(s)>0&&(an(s,zt(Re(d.certifier)))||L(t,`${f}.certifier`,"one of the requested certifiers")),o!=null&&Oc(o)>0&&(an(o,Re(d.type))||L(t,`${f}.type`,"one of the requested types")),t==="discoverByIdentityKey"&&r?.identityKey!==void 0&&!sn(d.subject,r.identityKey)&&L(t,`${f}.subject`,"the requested identity key"),d.keyring!==void 0&&Bo(d.keyring,t,`${f}.keyring`,!0),d.verifier!==void 0&&Lo(d.verifier,t,`${f}.verifier`),t==="discoverByIdentityKey"||t==="discoverByAttributes"){let l=`${f}.certifierInfo`,p=$e(d.certifierInfo,t,l);ge(p.name,t,`${l}.name`,1,100),Ex(p.iconUrl,t,`${l}.iconUrl`,500),ge(p.description,t,`${l}.description`,5,50),Jf(p.trust,t,`${l}.trust`,1,10),Bo(d.publiclyRevealedKeyring,t,`${f}.publiclyRevealedKeyring`,!0);let b=Bo(d.decryptedFields,t,`${f}.decryptedFields`);t==="discoverByAttributes"&&Mx(t,f,b,r?.attributes)}}}function td(i,t,e,n,r){let s=te(i[e],t,e,zw),o=Hn(i[n],t,n);o==null&&L(t,n,"an array"),o.length>s&&L(t,e,`at least ${o.length}`);let c=At(r);if(c!=null){let u=c.limit===void 0?10:te(c.limit,t,"limit",1e4);o.length>u&&L(t,n,`at most the requested limit of ${u}`)}return o}function Wf(i,t,e){ge(i,t,e,i===""?0:5,2e3)}function qx(i,t,e){let n=td(i,t,"totalActions","actions",e),r=At(e),s=[];if(Ht(r?.labels))for(let c=0;c<r.labels.length;c++)s[c]=Re(r.labels[c]);let o=r?.labelQueryMode==="all"?"all":"any";for(let c=0;c<n.length;c++){let u=n[c],f=`actions[${c}]`,d=$e(u,t,f);if(He(d.txid,t,`${f}.txid`,32),Jf(d.satoshis,t,`${f}.satoshis`,-21e14,21e14),an(ni,d.status)||L(t,`${f}.status`,"a supported action status"),typeof d.isOutgoing!="boolean"&&L(t,`${f}.isOutgoing`,"a boolean"),Wf(d.description,t,`${f}.description`),Rc(d.labels,t,`${f}.labels`,1,300),r?.includeLabels===!0&&d.labels===void 0&&L(t,`${f}.labels`,"the explicitly requested labels"),s.length>0&&Ht(d.labels)){let b=new on;for(let y=0;y<d.labels.length;y++)Xt(b,d.labels[y]);let g=o==="all";for(let y=0;y<s.length;y++){let v=an(b,s[y]);if(o==="all"&&!v){g=!1;break}if(o==="any"&&v){g=!0;break}}g||L(t,`${f}.labels`,"the requested label query")}te(d.version,t,`${f}.version`),te(d.lockTime,t,`${f}.lockTime`);let l=Hn(d.inputs,t,`${f}.inputs`);if((r?.includeInputs===!0||r?.includeInputSourceLockingScripts===!0||r?.includeInputUnlockingScripts===!0)&&l===void 0&&L(t,`${f}.inputs`,"the explicitly requested inputs"),l!=null)for(let b=0;b<l.length;b++){let g=l[b],y=`${f}.inputs[${b}]`,v=$e(g,t,y);hs(v.sourceOutpoint,t,`${y}.sourceOutpoint`),te(v.sourceSatoshis,t,`${y}.sourceSatoshis`,21e14),v.sourceLockingScript!==void 0&&He(v.sourceLockingScript,t,`${y}.sourceLockingScript`),v.unlockingScript!==void 0&&He(v.unlockingScript,t,`${y}.unlockingScript`),r?.includeInputSourceLockingScripts===!0&&v.sourceLockingScript===void 0&&L(t,`${y}.sourceLockingScript`,"the explicitly requested source locking script"),r?.includeInputUnlockingScripts===!0&&v.unlockingScript===void 0&&L(t,`${y}.unlockingScript`,"the explicitly requested unlocking script"),Wf(v.inputDescription,t,`${y}.inputDescription`),te(v.sequenceNumber,t,`${y}.sequenceNumber`)}let p=Hn(d.outputs,t,`${f}.outputs`);if((r?.includeOutputs===!0||r?.includeOutputLockingScripts===!0)&&p===void 0&&L(t,`${f}.outputs`,"the explicitly requested outputs"),p!=null)for(let b=0;b<p.length;b++){let g=p[b],y=`${f}.outputs[${b}]`,v=$e(g,t,y);te(v.satoshis,t,`${y}.satoshis`,21e14),v.lockingScript!==void 0&&He(v.lockingScript,t,`${y}.lockingScript`),r?.includeOutputLockingScripts===!0&&v.lockingScript===void 0&&L(t,`${y}.lockingScript`,"the explicitly requested output locking script"),$g(v,t,"spendable"),v.customInstructions!==void 0&&ge(v.customInstructions,t,`${y}.customInstructions`),Rc(v.tags,t,`${y}.tags`,1,300),te(v.outputIndex,t,`${y}.outputIndex`),Wf(v.outputDescription,t,`${y}.outputDescription`),ge(v.basket,t,`${y}.basket`,0,300)}}}function Wx(i,t,e){let n=td(i,t,"totalOutputs","outputs",e),r=i.BEEF===void 0?void 0:Px(i.BEEF,t,"BEEF"),s=At(e),o=[];if(Ht(s?.tags))for(let f=0;f<s.tags.length;f++)o[f]=Re(s.tags[f]);let c=s?.tagQueryMode==="all"?"all":"any";n.length>0&&s?.include==="entire transactions"&&r==null&&L(t,"BEEF","the requested complete output transactions");let u=new on;for(let f=0;f<n.length;f++){let d=n[f],l=`outputs[${f}]`,p=$e(d,t,l),b=hs(p.outpoint,t,`${l}.outpoint`),g=`${b.txid}.${b.outputIndex}`;an(u,g)&&L(t,`${l}.outpoint`,"a unique output in the result page"),Xt(u,g);let y=te(p.satoshis,t,`${l}.satoshis`,21e14);typeof p.spendable!="boolean"&&L(t,`${l}.spendable`,"a boolean");let v=p.lockingScript===void 0?void 0:He(p.lockingScript,t,`${l}.lockingScript`);if(s?.include==="locking scripts"&&v===void 0&&L(t,`${l}.lockingScript`,"the requested locking script"),r!=null){let E=wr(r.transactions,b.txid)?.outputs[b.outputIndex];E==null&&L(t,`${l}.outpoint`,"an output contained in BEEF"),E.satoshis!==y&&L(t,`${l}.satoshis`,"the amount committed by BEEF"),v!==void 0&&zt(Ge(E.lockingScript))!==zt(v)&&L(t,`${l}.lockingScript`,"the script committed by BEEF")}if(p.customInstructions!==void 0&&ge(p.customInstructions,t,`${l}.customInstructions`),Rc(p.tags,t,`${l}.tags`,1,300),Rc(p.labels,t,`${l}.labels`,1,300),s?.includeTags===!0&&p.tags===void 0&&L(t,`${l}.tags`,"the explicitly requested output tags"),s?.includeLabels===!0&&p.labels===void 0&&L(t,`${l}.labels`,"the explicitly requested transaction labels"),o.length>0&&Ht(p.tags)){let C=new on;for(let A=0;A<p.tags.length;A++)Xt(C,p.tags[A]);let E=c==="all";for(let A=0;A<o.length;A++){let T=an(C,o[A]);if(c==="all"&&!T){E=!1;break}if(c==="any"&&T){E=!0;break}}E||L(t,`${l}.tags`,"the requested tag query")}}}function Pg(i,t){let e=["prover","verifier","counterparty"];for(let n=0;n<e.length;n++){let r=e[n];Lo(i[r],t,r)}ei(i.encryptedLinkage,t,"encryptedLinkage"),ei(i.encryptedLinkageProof,t,"encryptedLinkageProof")}function $t(i,t,e){let n=Zf(t,i),r=$e(n,i),s=At(e);switch(i){case"createAction":case"signAction":Ox(r,i,e);break;case"abortAction":$g(r,i,"aborted");break;case"internalizeAction":Sc(r,i,"accepted");break;case"relinquishOutput":case"relinquishCertificate":Sc(r,i,"relinquished");break;case"verifyHmac":case"verifySignature":Sc(r,i,"valid");break;case"isAuthenticated":case"waitForAuthentication":Sc(r,i,"authenticated");break;case"getPublicKey":Lo(r.publicKey,i,"publicKey");break;case"encrypt":ei(r.ciphertext,i,"ciphertext");break;case"decrypt":ei(r.plaintext,i,"plaintext");break;case"createHmac":ei(r.hmac,i,"hmac",32);break;case"createSignature":{let o=ei(r.signature,i,"signature",void 0,72);as(o)||L(i,"signature","a canonical DER-encoded ECDSA signature");break}case"revealCounterpartyKeyLinkage":Pg(r,i),Ax(r.revelationTime,i,"revelationTime"),s?.verifier!==void 0&&!sn(r.verifier,s?.verifier)&&L(i,"verifier","the requested verifier"),s?.counterparty!==void 0&&!sn(r.counterparty,s?.counterparty)&&L(i,"counterparty","the requested counterparty");break;case"revealSpecificKeyLinkage":Pg(r,i),(!Ht(r.protocolID)||r.protocolID.length!==2)&&L(i,"protocolID","a [securityLevel, protocolName] tuple"),te(r.protocolID[0],i,"protocolID[0]",2),ge(r.protocolID[1],i,"protocolID[1]",5,400),ge(r.keyID,i,"keyID",1,800),te(r.proofType,i,"proofType",255),s?.verifier!==void 0&&!sn(r.verifier,s?.verifier)&&L(i,"verifier","the requested verifier"),s?.counterparty==="self"?sn(r.counterparty,r.prover)||L(i,"counterparty","the prover's identity key for counterparty self"):s?.counterparty==="anyone"?sn(r.counterparty,Ix)||L(i,"counterparty","the canonical anyone public key"):typeof s?.counterparty=="string"&&!sn(r.counterparty,s.counterparty)&&L(i,"counterparty","the requested counterparty"),Ht(s?.protocolID)&&(r.protocolID[0]!==s.protocolID[0]||r.protocolID[1]!==s.protocolID[1])&&L(i,"protocolID","the requested protocol"),s?.keyID!==void 0&&r.keyID!==s?.keyID&&L(i,"keyID","the requested key ID");break;case"listActions":qx(r,i,e);break;case"listOutputs":Wx(r,i,e);break;case"listCertificates":case"discoverByIdentityKey":case"discoverByAttributes":Fx(r,i,e);break;case"getHeight":Jf(r.height,i,"height",1,4294967295);break;case"getHeaderForHeight":He(r.header,i,"header",80);break;case"getNetwork":r.network!=="mainnet"&&r.network!=="testnet"&&L(i,"network","mainnet or testnet");break;case"getVersion":ge(r.version,i,"version",7,30);break;case"acquireCertificate":zf(r,i,"certificate"),s?.type!==void 0&&r.type!==s?.type&&L(i,"certificate.type","the requested certificate type"),s?.certifier!==void 0&&!sn(r.certifier,s?.certifier)&&L(i,"certificate.certifier","the requested certifier"),Og(r,s,i,"certificate",s?.acquisitionProtocol!=="issuance");break;case"proveCertificate":{let o=Bo(r.keyringForVerifier,i,"keyringForVerifier",!0),c=Ht(s?.fieldsToReveal)?s.fieldsToReveal:[],u=new on;for(let l=0;l<c.length;l++)Xt(u,Re(c[l]));let f=xn(o),d=f.length===Oc(u);for(let l=0;d&&l<f.length;l++)d=an(u,f[l]);d||L(i,"keyringForVerifier","exactly the requested certificate fields")}if(r.certificate!==void 0){let o=zf(r.certificate,i,"certificate");Og(o,s?.certificate,i,"certificate")}r.verifier!==void 0&&Lo(r.verifier,i,"verifier"),r.verifier!==void 0&&s?.verifier!==void 0&&!sn(r.verifier,s?.verifier)&&L(i,"verifier","the requested verifier");break}return n}var ed;(function(i){i[i.createAction=1]="createAction",i[i.signAction=2]="signAction",i[i.abortAction=3]="abortAction",i[i.listActions=4]="listActions",i[i.internalizeAction=5]="internalizeAction",i[i.listOutputs=6]="listOutputs",i[i.relinquishOutput=7]="relinquishOutput",i[i.getPublicKey=8]="getPublicKey",i[i.revealCounterpartyKeyLinkage=9]="revealCounterpartyKeyLinkage",i[i.revealSpecificKeyLinkage=10]="revealSpecificKeyLinkage",i[i.encrypt=11]="encrypt",i[i.decrypt=12]="decrypt",i[i.createHmac=13]="createHmac",i[i.verifyHmac=14]="verifyHmac",i[i.createSignature=15]="createSignature",i[i.verifySignature=16]="verifySignature",i[i.acquireCertificate=17]="acquireCertificate",i[i.listCertificates=18]="listCertificates",i[i.proveCertificate=19]="proveCertificate",i[i.relinquishCertificate=20]="relinquishCertificate",i[i.discoverByIdentityKey=21]="discoverByIdentityKey",i[i.discoverByAttributes=22]="discoverByAttributes",i[i.isAuthenticated=23]="isAuthenticated",i[i.waitForAuthentication=24]="waitForAuthentication",i[i.getHeight=25]="getHeight",i[i.getHeaderForHeight=26]="getHeaderForHeight",i[i.getNetwork=27]="getNetwork",i[i.getVersion=28]="getVersion"})(ed||(ed={}));var ps=ed;function xt(i,t){switch(i){case"createAction":ja(t);return;case"signAction":Ga(t);return;case"abortAction":Ya(t);return;case"listActions":cc(t);return;case"internalizeAction":Za(t);return;case"listOutputs":ac(t);return;case"relinquishOutput":Qa(t);return;case"getPublicKey":uc(t);return;case"revealCounterpartyKeyLinkage":fc(t);return;case"revealSpecificKeyLinkage":dc(t);return;case"encrypt":lc(t);return;case"decrypt":hc(t);return;case"createHmac":pc(t);return;case"verifyHmac":gc(t);return;case"createSignature":bc(t);return;case"verifySignature":mc(t);return;case"acquireCertificate":{let e=t;if(e?.acquisitionProtocol==="direct")ic(e);else if(e?.acquisitionProtocol==="issuance")nc(e);else throw new Jn("acquisitionProtocol","direct or issuance");return}case"listCertificates":ec(t);return;case"proveCertificate":rc(t);return;case"relinquishCertificate":tc(t);return;case"discoverByIdentityKey":sc(t);return;case"discoverByAttributes":oc(t);return;case"getHeaderForHeight":yc(t);return;case"isAuthenticated":case"waitForAuthentication":case"getHeight":case"getNetwork":case"getVersion":Ni(t)}}var gs=class{constructor(){m(this,"CWI");if(typeof window!="object")throw new TypeError("The window.CWI substrate requires a global window object.");if(typeof window.CWI!="object")throw new TypeError("The window.CWI interface does not appear to be bound to the window object.");let t=window.CWI;this.CWI=new Proxy(t,{get(e,n,r){let s=Reflect.get(e,n,r);return typeof n!="string"||!Object.prototype.hasOwnProperty.call(ps,n)||typeof s!="function"?s:(o,...c)=>(xt(n,o),Reflect.apply(s,e,[o,...c]))}})}async validatedResult(t,e,n){return $t(t,await e,n)}async createAction(t,e){let n=bt("createAction",t);return await this.validatedResult("createAction",this.CWI.createAction(t,e),n)}async signAction(t,e){let n=bt("signAction",t);return await this.validatedResult("signAction",this.CWI.signAction(t,e),n)}async abortAction(t,e){return await this.validatedResult("abortAction",this.CWI.abortAction(t,e))}async listActions(t,e){let n=bt("listActions",t);return await this.validatedResult("listActions",this.CWI.listActions(t,e),n)}async internalizeAction(t,e){return await this.validatedResult("internalizeAction",this.CWI.internalizeAction(t,e))}async listOutputs(t,e){let n=bt("listOutputs",t);return await this.validatedResult("listOutputs",this.CWI.listOutputs(t,e),n)}async relinquishOutput(t,e){return await this.validatedResult("relinquishOutput",this.CWI.relinquishOutput(t,e))}async getPublicKey(t,e){return await this.validatedResult("getPublicKey",this.CWI.getPublicKey(t,e))}async revealCounterpartyKeyLinkage(t,e){let n=bt("revealCounterpartyKeyLinkage",t);return await this.validatedResult("revealCounterpartyKeyLinkage",this.CWI.revealCounterpartyKeyLinkage(t,e),n)}async revealSpecificKeyLinkage(t,e){let n=bt("revealSpecificKeyLinkage",t);return await this.validatedResult("revealSpecificKeyLinkage",this.CWI.revealSpecificKeyLinkage(t,e),n)}async encrypt(t,e){return await this.validatedResult("encrypt",this.CWI.encrypt(t,e))}async decrypt(t,e){return await this.validatedResult("decrypt",this.CWI.decrypt(t,e))}async createHmac(t,e){return await this.validatedResult("createHmac",this.CWI.createHmac(t,e))}async verifyHmac(t,e){return await this.validatedResult("verifyHmac",this.CWI.verifyHmac(t,e))}async createSignature(t,e){return await this.validatedResult("createSignature",this.CWI.createSignature(t,e))}async verifySignature(t,e){return await this.validatedResult("verifySignature",this.CWI.verifySignature(t,e))}async acquireCertificate(t,e){let n=bt("acquireCertificate",t);return await this.validatedResult("acquireCertificate",this.CWI.acquireCertificate(t,e),n)}async listCertificates(t,e){let n=bt("listCertificates",t);return await this.validatedResult("listCertificates",this.CWI.listCertificates(t,e),n)}async proveCertificate(t,e){let n=bt("proveCertificate",t);return await this.validatedResult("proveCertificate",this.CWI.proveCertificate(t,e),n)}async relinquishCertificate(t,e){return await this.validatedResult("relinquishCertificate",this.CWI.relinquishCertificate(t,e))}async discoverByIdentityKey(t,e){let n=bt("discoverByIdentityKey",t);return await this.validatedResult("discoverByIdentityKey",this.CWI.discoverByIdentityKey(t,e),n)}async discoverByAttributes(t,e){let n=bt("discoverByAttributes",t);return await this.validatedResult("discoverByAttributes",this.CWI.discoverByAttributes(t,e),n)}async isAuthenticated(t,e){return await this.validatedResult("isAuthenticated",this.CWI.isAuthenticated(t,e))}async waitForAuthentication(t,e){return await this.validatedResult("waitForAuthentication",this.CWI.waitForAuthentication(t,e))}async getHeight(t,e){return await this.validatedResult("getHeight",this.CWI.getHeight(t,e))}async getHeaderForHeight(t,e){return await this.validatedResult("getHeaderForHeight",this.CWI.getHeaderForHeight(t,e))}async getNetwork(t,e){return await this.validatedResult("getNetwork",this.CWI.getNetwork(t,e))}async getVersion(t,e){return await this.validatedResult("getVersion",this.CWI.getVersion(t,e))}};var ii=class extends Error{constructor(e,n=1,r){super(e);m(this,"code");m(this,"isError",!0);this.code=n,this.name=this.constructor.name,r!=null&&r!==""?this.stack=r:Error.captureStackTrace(this,this.constructor)}static unknownToJson(e){let n;return e.isError===!0&&String(e.name).startsWith("WERR_")?(n={name:e.name,message:e.message,isError:!0},n.name==="WERR_REVIEW_ACTIONS"?(n.reviewActionResults=e.reviewActionResults,n.sendWithResults=e.sendWithResults,n.txid=e.txid,n.tx=e.tx,n.noSendChange=e.noSendChange,n.code=5):n.name==="WERR_INVALID_PARAMETER"?(n.parameter=e.parameter,n.code=6):n.name==="WERR_INSUFFICIENT_FUNDS"&&(n.totalSatoshisNeeded=e.totalSatoshisNeeded,n.moreSatoshisNeeded=e.moreSatoshisNeeded,n.code=7)):e instanceof Error?n={name:e.constructor.name,message:e.message,isError:!0}:n={name:"WERR_UNKNOWN",message:String(e),isError:!0},fs(n)}},cn;(function(i){i[i.unknownError=1]="unknownError",i[i.unsupportedAction=2]="unsupportedAction",i[i.invalidHmac=3]="invalidHmac",i[i.invalidSignature=4]="invalidSignature",i[i.reviewActions=5]="reviewActions",i[i.invalidParameter=6]="invalidParameter",i[i.insufficientFunds=7]="insufficientFunds",i[i.abortRefused=8]="abortRefused"})(cn||(cn={}));var bs=class{async invokeRaw(t,e,n){throw new Error("This substrate must implement invoke() or invokeRaw().")}async invoke(t,e){xt(t,e);let n=bt(t,e);return await this.invokeRaw(t,e,n)}async createAction(t){return await this.invoke("createAction",t)}async signAction(t){return await this.invoke("signAction",t)}async abortAction(t){return await this.invoke("abortAction",t)}async listActions(t){return await this.invoke("listActions",t)}async internalizeAction(t){return await this.invoke("internalizeAction",t)}async listOutputs(t){return await this.invoke("listOutputs",t)}async relinquishOutput(t){return await this.invoke("relinquishOutput",t)}async getPublicKey(t){return await this.invoke("getPublicKey",t)}async revealCounterpartyKeyLinkage(t){return await this.invoke("revealCounterpartyKeyLinkage",t)}async revealSpecificKeyLinkage(t){return await this.invoke("revealSpecificKeyLinkage",t)}async encrypt(t){return await this.invoke("encrypt",t)}async decrypt(t){return await this.invoke("decrypt",t)}async createHmac(t){return await this.invoke("createHmac",t)}async verifyHmac(t){return await this.invoke("verifyHmac",t)}async createSignature(t){return await this.invoke("createSignature",t)}async verifySignature(t){return await this.invoke("verifySignature",t)}async acquireCertificate(t){return await this.invoke("acquireCertificate",t)}async listCertificates(t){return await this.invoke("listCertificates",t)}async proveCertificate(t){return await this.invoke("proveCertificate",t)}async relinquishCertificate(t){return await this.invoke("relinquishCertificate",t)}async discoverByIdentityKey(t){return await this.invoke("discoverByIdentityKey",t)}async discoverByAttributes(t){return await this.invoke("discoverByAttributes",t)}async isAuthenticated(t){return await this.invoke("isAuthenticated",t)}async waitForAuthentication(t){return await this.invoke("waitForAuthentication",t)}async getHeight(t){return await this.invoke("getHeight",t)}async getHeaderForHeight(t){return await this.invoke("getHeaderForHeight",t)}async getNetwork(t){return await this.invoke("getNetwork",t)}async getVersion(t){return await this.invoke("getVersion",t)}};var Vx=1024,Kg=3600*1e3;function Kx(i,t){if(typeof i!="object"||i===null)return!1;let e=i;return e.type!=="CWI"||e.isInvocation!==!1||e.id!==t?!1:e.status==="success"?!0:e.status==="error"&&typeof e.description=="string"&&at(e.description,"utf8").length<=4096&&typeof e.code=="number"&&Number.isSafeInteger(e.code)&&e.code>=1&&e.code<=255}var vr=class extends bs{constructor(e="*",n){super();m(this,"domain");m(this,"responseTimeout");m(this,"pendingInvocations",0);if(typeof globalThis.window!="object")throw new TypeError("The XDM substrate requires a global window object.");if(typeof globalThis.window.postMessage!="function")throw new TypeError("The window object does not seem to support postMessage calls.");if(n!==void 0&&(!Number.isSafeInteger(n)||n<1||n>Kg))throw new TypeError(`XDM responseTimeout must be an integer from 1 to ${Kg}.`);this.domain=e,this.responseTimeout=n}async invokeRaw(e,n,r){if(this.pendingInvocations>=Vx)throw new Error("XDM wallet pending invocation limit reached.");let s=xe(ke(12));return this.pendingInvocations++,await new Promise((o,c)=>{let u,f=!1,d=!0,l=()=>{if(d&&(d=!1,this.pendingInvocations--,u!==void 0&&clearTimeout(u),f&&typeof window.removeEventListener=="function"))try{window.removeEventListener("message",p)}catch{}},p=b=>{if(!(!b.isTrusted||b.source!==window.parent||this.domain!=="*"&&b.origin!==this.domain||!Kx(b.data,s)))if(l(),b.data.status==="error"){let g=b.data.code>=cn.unsupportedAction&&b.data.code<=cn.abortRefused,y=g?b.data.description:"Wallet operation failed",v=new ii(y,g?b.data.code:cn.unknownError);c(v)}else try{o($t(e,b.data.result,r))}catch(g){c(g)}};try{window.addEventListener("message",p),f=!0,this.responseTimeout!==void 0&&(u=setTimeout(()=>{l(),c(new Error("XDM wallet response timed out."))},this.responseTimeout)),window.parent.postMessage({type:"CWI",isInvocation:!0,id:s,call:e,args:n},this.domain)}catch(b){l(),c(b)}})}};var Cc=16*1024*1024,Lc=1e5,Uc=1024*1024,zg=72;function Xg(i,t,e){let n;try{n=Va(i)}catch{throw new Error(`Invalid certificate ${t}: expected canonical base64`)}return Gg(n,t,e),n}function zx(i){if(i==null||typeof i!="object"||Array.isArray(i))throw new Error("Certificate fields must be a plain object");let t=Object.getPrototypeOf(i);if(t!==Object.prototype&&t!==null)throw new Error("Certificate fields must be a plain object");let e=Reflect.ownKeys(i);if(e.length>Lc)throw new Error(`Certificate field count exceeds the maximum of ${Lc}`);let n=Object.create(null);for(let r of e){if(typeof r!="string")throw new Error("Certificate fields cannot contain symbol keys");let s=Object.getOwnPropertyDescriptor(i,r);if(s==null||!Object.hasOwn(s,"value")||typeof s.value!="string")throw new Error(`Certificate field ${r} must be an own string data property`);let o=at(r,"utf8");if(nd(r,o.length),at(s.value,"utf8").length>Uc)throw new Error(`Certificate field ${r} exceeds the maximum of ${Uc} bytes`);n[r]=s.value}return n}function jg(i){let t=i instanceof Uint8Array?Array.from(i):i;if(!Array.isArray(t)||t.length>Cc)throw new Error(`Certificate binary must be a byte array of at most ${Cc} bytes`);let e=Array.from({length:t.length});for(let n=0;n<t.length;n++){let r=Object.getOwnPropertyDescriptor(t,n);if(r==null||!Object.hasOwn(r,"value")||!Number.isInteger(r.value)||r.value<0||r.value>255)throw new Error("Certificate binary must be a dense byte array");e[n]=r.value}return e}function Xx(i,t){if(i.length!==t.length)return!1;let e=0;for(let n=0;n<i.length;n++)e|=i[n]^t[n];return e===0}function nd(i,t){if(t<1||t>50)throw new Error(`Invalid certificate field name length: expected 1\u201350 bytes, received ${t}`);if(hn(i))throw new Error(`Unsafe certificate field name: ${i}`)}function Gg(i,t,e){if(i.length!==e)throw new Error(`Invalid certificate ${t} length: expected ${e} bytes, received ${i.length}`)}function _c(i,t){Gg(i,t,33);try{Vt.fromDER(i)}catch{throw new Error(`Invalid certificate ${t}: expected a compressed secp256k1 public key`)}}var Ar=class i{constructor(t,e,n,r,s,o,c){m(this,"type");m(this,"serialNumber");m(this,"subject");m(this,"certifier");m(this,"revocationOutpoint");m(this,"fields");m(this,"signature");this.type=t,this.serialNumber=e,this.subject=n,this.certifier=r,this.revocationOutpoint=s,this.fields=o,this.signature=c}toBinary(t=!0){let e=new ae,n=Xg(this.type,"type",32);e.write(n);let r=Xg(this.serialNumber,"serial number",32);if(e.write(r),!/^(02|03)[0-9a-fA-F]{64}$/.test(this.subject))throw new Error("Invalid certificate subject: expected compressed public key hex");let s=at(this.subject,"hex");if(_c(s,"subject"),e.write(s),!/^(02|03)[0-9a-fA-F]{64}$/.test(this.certifier))throw new Error("Invalid certificate certifier: expected compressed public key hex");let o=at(this.certifier,"hex");if(_c(o,"certifier"),e.write(o),typeof this.revocationOutpoint!="string")throw new Error("Invalid certificate revocation outpoint");let c=this.revocationOutpoint.split("."),[u,f="0"]=c;if(c.length>2||!/^[0-9a-fA-F]{64}$/.test(u)||!/^(?:0|[1-9]\d*)$/.test(f)||Number(f)>4294967295)throw new Error(`Invalid certificate revocation outpoint: ${this.revocationOutpoint}`);let d=at(u,"hex");if(d.length!==32)throw new Error(`Invalid certificate revocation txid length: ${d.length}`);e.write(d),e.writeVarIntNum(Number(f));let l=zx(this.fields),p=Object.keys(l).sort((g,y)=>g.localeCompare(y));e.writeVarIntNum(p.length);for(let g of p){let y=l[g],v=at(g,"utf8");nd(g,v.length),e.writeVarIntNum(v.length),e.write(v);let C=at(y,"utf8");e.writeVarIntNum(C.length),e.write(C)}if(t&&(this.signature??"").length>0){if(typeof this.signature!="string"||this.signature.length>zg*2||!/^(?:[0-9a-fA-F]{2})+$/.test(this.signature))throw new Error("Invalid certificate signature encoding");let g=at(this.signature,"hex");le.fromDER(g),e.write(g)}let b=e.toArray();if(b.length>Cc)throw new Error(`Certificate binary exceeds the maximum of ${Cc} bytes`);return b}static fromBinary(t){let e=new mt(jg(t)),n=e.read(32),r=xe(n),s=e.read(32),o=xe(s),c=e.read(33);_c(Array.from(c),"subject");let u=nt(c),f=e.read(33);_c(Array.from(f),"certifier");let d=nt(f),l=e.read(32),p=nt(l),b=e.readVarIntNumStrict(!1),g=`${p}.${b}`,y=e.readVarIntNumStrict(!1);if(y>Lc)throw new Error(`Certificate field count exceeds the maximum of ${Lc}`);if(y>Math.floor(e.remaining()/3))throw new Error("Certificate field count exceeds the available data");let v=new Map;for(let E=0;E<y;E++){let A=e.readVarIntNumStrict(!1);if(A<1||A>50)throw new Error(`Invalid certificate field name length: received ${A}`);let T=e.read(A),B=Pt(T);if(nd(B,A),v.has(B))throw new Error(`Duplicate certificate field name: ${B}`);let _=e.readVarIntNumStrict(!1);if(_>Uc)throw new Error(`Certificate field ${B} exceeds the maximum of ${Uc} bytes`);let $=e.read(_),R=Pt($);v.set(B,R)}let C;if(!e.eof()){if(e.remaining()>zg)throw new Error("Certificate signature exceeds the DER size limit");let E=e.read();C=le.fromDER(Array.from(E)).toString("hex")}return new i(r,o,u,d,g,Object.fromEntries(v),C)}async verify(){try{let t=this.toBinary(!1);return Vt.fromString(this.certifier).deriveChild(new k(1),`2-certificate signature-${this.type} ${this.serialNumber}`).verify(t,le.fromDER(at(this.signature??"","hex")))}catch{return!1}}async sign(t){if(this.signature!=null&&this.signature.length>0)throw new Error(`Certificate has already been signed! Signature present: ${this.signature}`);this.certifier=(await t.getPublicKey({identityKey:!0})).publicKey;let e=this.toBinary(!1),{signature:n}=await t.createSignature({data:e,protocolID:[2,"certificate signature"],keyID:`${this.type} ${this.serialNumber}`});if(!Xx(e,this.toBinary(!1)))throw new Error("Certificate changed while its signature was being created");let r=jg(n),s=le.fromDER(r);this.signature=s.toString("hex")}static getCertificateFieldEncryptionDetails(t,e){return{protocolID:[2,"certificate field encryption"],keyID:e?`${e} ${t}`:t}}static fromObject(t){return new i(t.type,t.serialNumber,t.subject,t.certifier,t.revocationOutpoint,t.fields,t.signature)}};var jx=1e5,Gx={1:"completed",2:"unprocessed",3:"sending",4:"unproven",5:"unsigned",6:"nosend",7:"nonfinal",8:"failed"},S,Rt,Yg,Zg,Jg,Qg,tb,eb,nb,ib,ms,Mc,Mt,ri,Er,Dc,Hc,$c,id,rb,sb,ob,ab,si,Tr,rd,_i,Uo,Mo,Ze,oi,Do,Ho,Ci,cb,Se,kr,Li,Fc=class Fc{constructor(t){G(this,S);m(this,"wire");this.wire=t}async createAction(t,e){xt("createAction",t);let n=bt("createAction",t),r=new ht(void 0,Math.max(256,Math.ceil((t.inputBEEF?.length??0)+(t.inputs??[]).reduce((o,c)=>o+(c.unlockingScript?.length??0)/2,0)+(t.outputs??[]).reduce((o,c)=>o+c.lockingScript.length/2,0)+4096)));if(a(this,S,Er).call(this,r,t.description),t.inputBEEF==null?r.writeVarIntNum(-1):(r.writeVarIntNum(t.inputBEEF.length),r.write(t.inputBEEF)),t.inputs==null)r.writeVarIntNum(-1);else{r.writeVarIntNum(t.inputs.length);for(let o of t.inputs)a(this,S,rb).call(this,r,o)}if(t.outputs==null)r.writeVarIntNum(-1);else{r.writeVarIntNum(t.outputs.length);for(let o of t.outputs)a(this,S,sb).call(this,r,o)}a(this,S,ri).call(this,r,t.lockTime),a(this,S,ri).call(this,r,t.version),a(this,S,Hc).call(this,r,t.labels),a(this,S,ob).call(this,r,t.options);let s=await a(this,S,Rt).call(this,"createAction",e,r.toUint8ArrayZeroCopy());return $t("createAction",a(this,S,Yg).call(this,s),n)}async signAction(t,e){xt("signAction",t);let n=bt("signAction",t),r=new ht,s=Object.keys(t.spends);r.writeVarIntNum(s.length);for(let l of s){r.writeVarIntNum(Number(l));let p=t.spends[Number(l)],b=et(p.unlockingScript,"hex");r.writeVarIntNum(b.length),r.write(b),a(this,S,ri).call(this,r,p.sequenceNumber)}let o=et(t.reference,"base64");r.writeVarIntNum(o.length),r.write(o),a(this,S,ab).call(this,r,t.options);let c=await a(this,S,Rt).call(this,"signAction",e,r.toUint8ArrayZeroCopy()),u=new mt(c),f={};a(this,S,oi).call(this,u,"signAction txid present")&&(f.txid=nt(u.read(32))),a(this,S,oi).call(this,u,"signAction tx present")&&(f.tx=u.readView(u.readVarIntNumStrict(!1)));let d=a(this,S,id).call(this,u);return d!=null&&(f.sendWithResults=d),a(this,S,_i).call(this,u,"signAction"),$t("signAction",f,n)}async abortAction(t,e){xt("abortAction",t);try{let n=await a(this,S,Rt).call(this,"abortAction",e,et(t.reference,"base64"));return a(this,S,Li).call(this,n,"abortAction"),{aborted:!0}}catch(n){if(n instanceof ii&&n.code===cn.abortRefused)return{aborted:!1};throw n}}async listActions(t,e){xt("listActions",t);let n=new ht;n.writeVarIntNum(t.labels.length);for(let u of t.labels)a(this,S,Er).call(this,n,u);t.labelQueryMode==="any"?n.writeInt8(1):t.labelQueryMode==="all"?n.writeInt8(2):n.writeInt8(-1);for(let u of[t.includeLabels,t.includeInputs,t.includeInputSourceLockingScripts,t.includeInputUnlockingScripts,t.includeOutputs,t.includeOutputLockingScripts])a(this,S,Mt).call(this,n,u);a(this,S,ri).call(this,n,t.limit),a(this,S,ri).call(this,n,t.offset),a(this,S,Mt).call(this,n,t.seekPermission);let r=await a(this,S,Rt).call(this,"listActions",e,n.toUint8Array()),s=new mt(r),o=a(this,S,Se).call(this,s.readVarIntNumStrict(!1),"listActions totalActions",0,4294967295),c=[];for(;!s.eof();)a(this,S,Mo).call(this,c.length,t.limit,"listActions"),c.push(a(this,S,Qg).call(this,s));return a(this,S,Uo).call(this,c.length,o,"listActions"),{totalActions:o,actions:c}}async internalizeAction(t,e){xt("internalizeAction",t);let n=new ht(void 0,Math.max(256,t.tx.length+4096));n.writeVarIntNum(t.tx.length),n.write(t.tx),n.writeVarIntNum(t.outputs.length);for(let o of t.outputs)a(this,S,nb).call(this,n,o);a(this,S,Hc).call(this,n,typeof t.labels=="object"?t.labels:void 0);let r=et(t.description);n.writeVarIntNum(r.length),n.write(r),a(this,S,Mt).call(this,n,t.seekPermission);let s=await a(this,S,Rt).call(this,"internalizeAction",e,n.toUint8ArrayZeroCopy());return a(this,S,Li).call(this,s,"internalizeAction"),{accepted:!0}}async listOutputs(t,e){xt("listOutputs",t);let n=bt("listOutputs",t),r=new ht;if(a(this,S,Er).call(this,r,t.basket),typeof t.tags=="object"){r.writeVarIntNum(t.tags.length);for(let l of t.tags)a(this,S,Er).call(this,r,l)}else r.writeVarIntNum(0);t.tagQueryMode==="all"?r.writeInt8(1):t.tagQueryMode==="any"?r.writeInt8(2):r.writeInt8(-1),t.include==="locking scripts"?r.writeInt8(1):t.include==="entire transactions"?r.writeInt8(2):r.writeInt8(-1),a(this,S,Mt).call(this,r,t.includeCustomInstructions),a(this,S,Mt).call(this,r,t.includeTags),a(this,S,Mt).call(this,r,t.includeLabels),a(this,S,ri).call(this,r,t.limit),a(this,S,ri).call(this,r,t.offset),a(this,S,Mt).call(this,r,t.seekPermission);let s=await a(this,S,Rt).call(this,"listOutputs",e,r.toUint8Array()),o=new mt(s),c=a(this,S,Se).call(this,o.readVarIntNumStrict(!1),"listOutputs totalOutputs",0,4294967295),u=o.readVarIntNumStrict(),f=u>=0?o.readView(u):void 0,d=[];for(;!o.eof();)a(this,S,Mo).call(this,d.length,t.limit,"listOutputs"),d.push(a(this,S,ib).call(this,o));return a(this,S,Uo).call(this,d.length,c,"listOutputs"),$t("listOutputs",{totalOutputs:c,BEEF:f,outputs:d},n)}async relinquishOutput(t,e){xt("relinquishOutput",t);let n=new ht,r=et(t.basket,"utf8");n.writeVarIntNum(r.length),n.write(r),n.write(a(this,S,ms).call(this,t.output));let s=await a(this,S,Rt).call(this,"relinquishOutput",e,n.toUint8Array());return a(this,S,Li).call(this,s,"relinquishOutput"),{relinquished:!0}}async getPublicKey(t,e){xt("getPublicKey",t);let n=new ht;n.writeUInt8(t.identityKey?1:0),t.identityKey?n.write(a(this,S,Tr).call(this,t.privileged,t.privilegedReason)):(t.protocolID??(t.protocolID=[wc.Silent,"default"]),t.keyID??(t.keyID=""),n.write(a(this,S,si).call(this,t.protocolID,t.keyID,t.counterparty,t.privileged,t.privilegedReason)),typeof t.forSelf=="boolean"?n.writeInt8(t.forSelf?1:0):n.writeInt8(-1)),a(this,S,Mt).call(this,n,t.seekPermission);let r=await a(this,S,Rt).call(this,"getPublicKey",e,n.toUint8Array());return a(this,S,kr).call(this,r,33,"getPublicKey"),Vt.fromDER(Array.from(r)),{publicKey:nt(r)}}async revealCounterpartyKeyLinkage(t,e){xt("revealCounterpartyKeyLinkage",t);let n=bt("revealCounterpartyKeyLinkage",t),r=new ht;r.write(a(this,S,Tr).call(this,t.privileged,t.privilegedReason)),r.write(et(t.counterparty,"hex")),r.write(et(t.verifier,"hex"));let s=await a(this,S,Rt).call(this,"revealCounterpartyKeyLinkage",e,r.toUint8Array()),o=new mt(s),c=a(this,S,Ci).call(this,o,"revealCounterpartyKeyLinkage prover"),u=a(this,S,Ci).call(this,o,"revealCounterpartyKeyLinkage verifier"),f=a(this,S,Ci).call(this,o,"revealCounterpartyKeyLinkage counterparty"),d=o.readVarIntNumStrict(!1),l=Pt(o.read(d)),p=o.readVarIntNumStrict(!1),b=o.read(p),g=o.readVarIntNumStrict(!1),y=o.read(g);return a(this,S,_i).call(this,o,"revealCounterpartyKeyLinkage"),$t("revealCounterpartyKeyLinkage",{prover:c,verifier:u,counterparty:f,revelationTime:l,encryptedLinkage:Array.from(b),encryptedLinkageProof:Array.from(y)},n)}async revealSpecificKeyLinkage(t,e){xt("revealSpecificKeyLinkage",t);let n=bt("revealSpecificKeyLinkage",t),r=new ht;r.write(a(this,S,si).call(this,t.protocolID,t.keyID,t.counterparty,t.privileged,t.privilegedReason)),r.write(et(t.verifier,"hex"));let s=await a(this,S,Rt).call(this,"revealSpecificKeyLinkage",e,r.toUint8Array()),o=new mt(s),c=a(this,S,Ci).call(this,o,"revealSpecificKeyLinkage prover"),u=a(this,S,Ci).call(this,o,"revealSpecificKeyLinkage verifier"),f=a(this,S,Ci).call(this,o,"revealSpecificKeyLinkage counterparty"),d=a(this,S,cb).call(this,o,"revealSpecificKeyLinkage"),l=o.readVarIntNumStrict(!1),p=Pt(o.read(l)),b=o.readVarIntNumStrict(!1),g=Pt(o.read(b)),y=o.readVarIntNumStrict(!1),v=o.read(y),C=o.readVarIntNumStrict(!1),E=o.read(C),A=o.readUInt8();return a(this,S,_i).call(this,o,"revealSpecificKeyLinkage"),$t("revealSpecificKeyLinkage",{prover:c,verifier:u,counterparty:f,protocolID:[d,p],keyID:g,encryptedLinkage:Array.from(v),encryptedLinkageProof:Array.from(E),proofType:A},n)}async encrypt(t,e){xt("encrypt",t);let n=new ht;return n.write(a(this,S,si).call(this,t.protocolID,t.keyID,t.counterparty,t.privileged,t.privilegedReason)),n.writeVarIntNum(t.plaintext.length),n.write(t.plaintext),a(this,S,Mt).call(this,n,t.seekPermission),{ciphertext:Array.from(await a(this,S,Rt).call(this,"encrypt",e,n.toUint8Array()))}}async decrypt(t,e){xt("decrypt",t);let n=new ht;return n.write(a(this,S,si).call(this,t.protocolID,t.keyID,t.counterparty,t.privileged,t.privilegedReason)),n.writeVarIntNum(t.ciphertext.length),n.write(t.ciphertext),a(this,S,Mt).call(this,n,t.seekPermission),{plaintext:Array.from(await a(this,S,Rt).call(this,"decrypt",e,n.toUint8Array()))}}async createHmac(t,e){xt("createHmac",t);let n=new ht;n.write(a(this,S,si).call(this,t.protocolID,t.keyID,t.counterparty,t.privileged,t.privilegedReason)),n.writeVarIntNum(t.data.length),n.write(t.data),a(this,S,Mt).call(this,n,t.seekPermission);let r=await a(this,S,Rt).call(this,"createHmac",e,n.toUint8Array());return a(this,S,kr).call(this,r,32,"createHmac"),{hmac:Array.from(r)}}async verifyHmac(t,e){xt("verifyHmac",t);let n=new ht;n.write(a(this,S,si).call(this,t.protocolID,t.keyID,t.counterparty,t.privileged,t.privilegedReason)),n.write(t.hmac),n.writeVarIntNum(t.data.length),n.write(t.data),a(this,S,Mt).call(this,n,t.seekPermission);let r=await a(this,S,Rt).call(this,"verifyHmac",e,n.toUint8Array());return a(this,S,Li).call(this,r,"verifyHmac"),{valid:!0}}async createSignature(t,e){xt("createSignature",t);let n=new ht;return n.write(a(this,S,si).call(this,t.protocolID,t.keyID,t.counterparty,t.privileged,t.privilegedReason)),typeof t.data=="object"?(n.writeUInt8(1),n.writeVarIntNum(t.data.length),n.write(t.data)):(t.hashToDirectlySign??(t.hashToDirectlySign=[]),n.writeUInt8(2),n.write(t.hashToDirectlySign)),a(this,S,Mt).call(this,n,t.seekPermission),$t("createSignature",{signature:Array.from(await a(this,S,Rt).call(this,"createSignature",e,n.toUint8Array()))},t)}async verifySignature(t,e){xt("verifySignature",t);let n=new ht;n.write(a(this,S,si).call(this,t.protocolID,t.keyID,t.counterparty,t.privileged,t.privilegedReason)),typeof t.forSelf=="boolean"?n.writeInt8(t.forSelf?1:0):n.writeInt8(-1),n.writeVarIntNum(t.signature.length),n.write(t.signature),typeof t.data=="object"?(n.writeUInt8(1),n.writeVarIntNum(t.data.length),n.write(t.data)):(n.writeUInt8(2),n.write(t.hashToDirectlyVerify??[])),a(this,S,Mt).call(this,n,t.seekPermission);let r=await a(this,S,Rt).call(this,"verifySignature",e,n.toUint8Array());return a(this,S,Li).call(this,r,"verifySignature"),{valid:!0}}async acquireCertificate(t,e){xt("acquireCertificate",t);let n=bt("acquireCertificate",t),r=new ht;r.write(et(t.type,"base64")),r.write(et(t.certifier,"hex"));let s=Object.entries(t.fields);r.writeVarIntNum(s.length);for(let[u,f]of s){let d=et(u,"utf8"),l=et(f,"utf8");r.writeVarIntNum(d.length),r.write(d),r.writeVarIntNum(l.length),r.write(l)}if(r.write(a(this,S,Tr).call(this,t.privileged,t.privilegedReason)),r.writeUInt8(t.acquisitionProtocol==="direct"?1:2),t.acquisitionProtocol==="direct"){r.write(et(t.serialNumber,"base64")),r.write(a(this,S,ms).call(this,t.revocationOutpoint??""));let u=et(t.signature,"hex");r.writeVarIntNum(u.length),r.write(u);let f=t.keyringRevealer==="certifier"?[11]:et(t.keyringRevealer,"hex");r.write(f);let d=Object.keys(t.keyringForSubject??{});r.writeVarIntNum(d.length);for(let l of d){let p=et(l,"utf8");r.writeVarIntNum(p.length),r.write(p);let b=et(t.keyringForSubject?.[l],"base64");r.writeVarIntNum(b.length),r.write(b)}}else{let u=et(t.certifierUrl,"utf8");r.writeVarIntNum(u.length),r.write(u)}let o=await a(this,S,Rt).call(this,"acquireCertificate",e,r.toUint8Array()),c=Ar.fromBinary(o);return $t("acquireCertificate",{...c,signature:c.signature},n)}async listCertificates(t,e){xt("listCertificates",t);let n=bt("listCertificates",t),r=new ht;r.writeVarIntNum(t.certifiers.length);for(let f of t.certifiers)r.write(et(f,"hex"));r.writeVarIntNum(t.types.length);for(let f of t.types)r.write(et(f,"base64"));typeof t.limit=="number"?r.writeVarIntNum(t.limit):r.writeVarIntNum(-1),typeof t.offset=="number"?r.writeVarIntNum(t.offset):r.writeVarIntNum(-1),r.write(a(this,S,Tr).call(this,t.privileged,t.privilegedReason));let s=await a(this,S,Rt).call(this,"listCertificates",e,r.toUint8Array()),o=new mt(s),c=a(this,S,Se).call(this,o.readVarIntNumStrict(!1),"listCertificates totalCertificates",0,4294967295),u=[];for(;!o.eof();){a(this,S,Mo).call(this,u.length,t.limit,"listCertificates");let f=o.readVarIntNumStrict(!1),d=o.read(f),l=Ar.fromBinary(d),p={};if(a(this,S,oi).call(this,o,"listCertificates keyring present")){let y=o.readVarIntNumStrict(!1);a(this,S,Ze).call(this,o,y,"listCertificates keyring");for(let v=0;v<y;v++){let C=o.readVarIntNumStrict(!1),E=a(this,S,Do).call(this,o,C,"listCertificates keyring"),A=o.readVarIntNumStrict(!1);a(this,S,Ho).call(this,p,E,xe(o.read(A)),"listCertificates keyring")}}let b=o.readVarIntNumStrict(!1),g;if(b>0){if(b!==33)throw new Error(`Invalid listCertificates verifier length: expected 33 bytes, received ${b}`);g=a(this,S,Ci).call(this,o,"listCertificates verifier")}u.push({...l,signature:l.signature,keyring:p,verifier:g})}return a(this,S,Uo).call(this,u.length,c,"listCertificates"),$t("listCertificates",{totalCertificates:c,certificates:u},n)}async proveCertificate(t,e){xt("proveCertificate",t);let n=bt("proveCertificate",t),r=new ht,s=et(t.certificate.type,"base64");r.write(s);let o=et(t.certificate.subject,"hex");r.write(o);let c=et(t.certificate.serialNumber,"base64");r.write(c);let u=et(t.certificate.certifier,"hex");r.write(u);let f=a(this,S,ms).call(this,t.certificate.revocationOutpoint??"");r.write(f);let d=et(t.certificate.signature,"hex");r.writeVarIntNum(d.length),r.write(d);let l=Object.entries(t.certificate.fields??{});r.writeVarIntNum(l.length);for(let[v,C]of l){let E=et(v,"utf8"),A=et(C,"utf8");r.writeVarIntNum(E.length),r.write(E),r.writeVarIntNum(A.length),r.write(A)}r.writeVarIntNum(t.fieldsToReveal.length);for(let v of t.fieldsToReveal){let C=et(v,"utf8");r.writeVarIntNum(C.length),r.write(C)}r.write(et(t.verifier,"hex")),r.write(a(this,S,Tr).call(this,t.privileged,t.privilegedReason));let p=await a(this,S,Rt).call(this,"proveCertificate",e,r.toUint8Array()),b=new mt(p),g=b.readVarIntNumStrict(!1);a(this,S,Ze).call(this,b,g,"proveCertificate keyring");let y={};for(let v=0;v<g;v++){let C=b.readVarIntNumStrict(!1),E=a(this,S,Do).call(this,b,C,"proveCertificate keyring"),A=b.readVarIntNumStrict(!1);a(this,S,Ho).call(this,y,E,xe(b.read(A)),"proveCertificate keyring")}return a(this,S,_i).call(this,b,"proveCertificate"),$t("proveCertificate",{keyringForVerifier:y},n)}async relinquishCertificate(t,e){xt("relinquishCertificate",t);let n=new ht,r=et(t.type,"base64");n.write(r);let s=et(t.serialNumber,"base64");n.write(s);let o=et(t.certifier,"hex");n.write(o);let c=await a(this,S,Rt).call(this,"relinquishCertificate",e,n.toUint8Array());return a(this,S,Li).call(this,c,"relinquishCertificate"),{relinquished:!0}}async discoverByIdentityKey(t,e){xt("discoverByIdentityKey",t);let n=bt("discoverByIdentityKey",t),r=new ht;r.write(et(t.identityKey,"hex")),typeof t.limit=="number"?r.writeVarIntNum(t.limit):r.writeVarIntNum(-1),typeof t.offset=="number"?r.writeVarIntNum(t.offset):r.writeVarIntNum(-1),a(this,S,Mt).call(this,r,t.seekPermission);let s=await a(this,S,Rt).call(this,"discoverByIdentityKey",e,r.toUint8Array());return $t("discoverByIdentityKey",a(this,S,rd).call(this,s,t.limit),n)}async discoverByAttributes(t,e){xt("discoverByAttributes",t);let n=bt("discoverByAttributes",t),r=new ht,s=Object.keys(t.attributes);r.writeVarIntNum(s.length);for(let c of s){let u=et(c,"utf8"),f=et(t.attributes[c],"utf8");r.writeVarIntNum(u.length),r.write(u),r.writeVarIntNum(f.length),r.write(f)}typeof t.limit=="number"?r.writeVarIntNum(t.limit):r.writeVarIntNum(-1),typeof t.offset=="number"?r.writeVarIntNum(t.offset):r.writeVarIntNum(-1),a(this,S,Mt).call(this,r,t.seekPermission);let o=await a(this,S,Rt).call(this,"discoverByAttributes",e,r.toUint8Array());return $t("discoverByAttributes",a(this,S,rd).call(this,o,t.limit),n)}async isAuthenticated(t,e){xt("isAuthenticated",t);let n=await a(this,S,Rt).call(this,"isAuthenticated",e);if(a(this,S,kr).call(this,n,1,"isAuthenticated"),n[0]!==0&&n[0]!==1)throw new Error("Wallet returned an invalid authentication verdict");return{authenticated:n[0]===1}}async waitForAuthentication(t,e){xt("waitForAuthentication",t);let n=await a(this,S,Rt).call(this,"waitForAuthentication",e);return a(this,S,Li).call(this,n,"waitForAuthentication"),{authenticated:!0}}async getHeight(t,e){xt("getHeight",t);let n=await a(this,S,Rt).call(this,"getHeight",e),r=new mt(n),s=r.readVarIntNumStrict(!1);if(a(this,S,_i).call(this,r,"getHeight"),s<1||s>4294967295)throw new Error("Wallet returned an invalid height");return{height:s}}async getHeaderForHeight(t,e){if(xt("getHeaderForHeight",t),!Number.isInteger(t.height)||t.height<1||t.height>4294967295)throw new Error("getHeaderForHeight requires a height from 1 to 4294967295");let n=new ht;n.writeVarIntNum(t.height);let r=await a(this,S,Rt).call(this,"getHeaderForHeight",e,n.toUint8Array());return a(this,S,kr).call(this,r,80,"getHeaderForHeight"),{header:nt(r)}}async getNetwork(t,e){xt("getNetwork",t);let n=await a(this,S,Rt).call(this,"getNetwork",e);if(a(this,S,kr).call(this,n,1,"getNetwork"),n[0]!==0&&n[0]!==1)throw new Error("Wallet returned an invalid network");return{network:n[0]===0?"mainnet":"testnet"}}async getVersion(t,e){xt("getVersion",t);let n=await a(this,S,Rt).call(this,"getVersion",e);if(n.length<7||n.length>30)throw new Error("Wallet returned an invalid version");return{version:Pt(n)}}};S=new WeakSet,Rt=async function(t,e="",n=[]){let r=e===""?"":ti(e),s=et(r,"utf8"),o=new ht(void 0,2+s.length+n.length);o.writeUInt8(ps[t]),o.writeUInt8(s.length),o.write(s),n.length>0&&o.write(n);let c=o.toUint8ArrayZeroCopy();if(c.length>268435456)throw new Error("Wallet Wire request exceeds the maximum permitted size");let u;if(this.wire.transmitToWalletUint8Array===void 0){let l=await this.wire.transmitToWallet(Array.from(c));if(!Array.isArray(l)||l.length>268435456)throw new Error("Wallet Wire response exceeds the maximum permitted size");for(let p=0;p<l.length;p++)if(!Object.prototype.hasOwnProperty.call(l,p)||!Number.isInteger(l[p])||l[p]<0||l[p]>255)throw new Error("Wallet Wire response must be a dense byte array");u=Uint8Array.from(l)}else{let l=await this.wire.transmitToWalletUint8Array(c);if(!(l instanceof Uint8Array)||l.length>268435456)throw new Error("Wallet Wire response exceeds the maximum permitted size");u=l}let f=new mt(u),d=f.readUInt8();if(d===0)return f.readView();{let l=f.readVarIntNumStrict(!1),p=f.read(l),b=Pt(p),g=f.readVarIntNumStrict(!1),y=f.read(g),v=Pt(y);throw a(this,S,_i).call(this,f,t),new ii(b,d,v)}},Yg=function(t){let e=new mt(t),n={};a(this,S,oi).call(this,e,"createAction txid present")&&(n.txid=nt(e.read(32))),a(this,S,oi).call(this,e,"createAction tx present")&&(n.tx=e.readView(e.readVarIntNumStrict(!1)));let r=e.readVarIntNumStrict();if(r>=0){a(this,S,Ze).call(this,e,r,"createAction noSendChange",33),n.noSendChange=[];for(let o=0;o<r;o++)n.noSendChange.push(a(this,S,Mc).call(this,e))}let s=a(this,S,id).call(this,e);if(s!=null&&(n.sendWithResults=s),a(this,S,oi).call(this,e,"createAction signableTransaction present")){let o=e.readView(e.readVarIntNumStrict(!1)),c=e.read(e.readVarIntNumStrict(!1));n.signableTransaction={tx:o,reference:xe(c)}}return a(this,S,_i).call(this,e,"createAction"),n},Zg=function(t){let e=Gx[t];if(e==null)throw new Error(`Unknown status code: ${t}`);return e},Jg=function(t){let e;return t.remaining()>=9&&t.bin[t.pos]===255&&t.bin[t.pos+8]>=128?(t.skip(1),e=t.readInt64LEBn().toNumber()):e=t.readVarIntNumStrict(!1),a(this,S,Se).call(this,e,"listActions satoshis",-21e14,21e14)},Qg=function(t){let e=nt(t.read(32)),n=a(this,S,Jg).call(this,t),r=a(this,S,Zg).call(this,t.readInt8()),s=a(this,S,oi).call(this,t,"listActions isOutgoing"),o=Pt(t.read(t.readVarIntNumStrict(!1))),c={txid:e,satoshis:n,status:r,isOutgoing:s,description:o,version:0,lockTime:0},u=t.readVarIntNumStrict();if(u>=0){a(this,S,Ze).call(this,t,u,"listActions labels"),c.labels=[];for(let l=0;l<u;l++)c.labels.push(Pt(t.read(t.readVarIntNumStrict(!1))))}c.version=a(this,S,Se).call(this,t.readVarIntNumStrict(!1),"listActions version",0,4294967295),c.lockTime=a(this,S,Se).call(this,t.readVarIntNumStrict(!1),"listActions lockTime",0,4294967295);let f=t.readVarIntNumStrict();if(f>=0){a(this,S,Ze).call(this,t,f,"listActions inputs"),c.inputs=[];for(let l=0;l<f;l++)c.inputs.push(a(this,S,tb).call(this,t))}let d=t.readVarIntNumStrict();if(d>=0){a(this,S,Ze).call(this,t,d,"listActions outputs"),c.outputs=[];for(let l=0;l<d;l++)c.outputs.push(a(this,S,eb).call(this,t))}return c},tb=function(t){let e=a(this,S,Mc).call(this,t),n=a(this,S,Se).call(this,t.readVarIntNumStrict(!1),"listActions input sourceSatoshis",0,21e14),r=t.readVarIntNumStrict(),s=r>=0?nt(t.read(r)):void 0,o=t.readVarIntNumStrict(),c=o>=0?nt(t.read(o)):void 0,u=Pt(t.read(t.readVarIntNumStrict(!1))),f=a(this,S,Se).call(this,t.readVarIntNumStrict(!1),"listActions input sequenceNumber",0,4294967295);return{sourceOutpoint:e,sourceSatoshis:n,sourceLockingScript:s,unlockingScript:c,inputDescription:u,sequenceNumber:f}},eb=function(t){let e=a(this,S,Se).call(this,t.readVarIntNumStrict(!1),"listActions output outputIndex",0,4294967295),n=a(this,S,Se).call(this,t.readVarIntNumStrict(!1),"listActions output satoshis",0,21e14),r=t.readVarIntNumStrict(),s=r>=0?nt(t.read(r)):void 0,o=a(this,S,oi).call(this,t,"listOutputs spendable"),c=Pt(t.read(t.readVarIntNumStrict(!1))),u=t.readVarIntNumStrict(),f=u>=0?Pt(t.read(u)):void 0,d=t.readVarIntNumStrict(),l=[];if(d>=0){a(this,S,Ze).call(this,t,d,"listActions output tags");for(let g=0;g<d;g++)l.push(Pt(t.read(t.readVarIntNumStrict(!1))))}let p=t.readVarIntNumStrict(),b=p>=0?Pt(t.read(p)):void 0;return{outputIndex:e,satoshis:n,lockingScript:s,spendable:o,outputDescription:c,basket:f,tags:l,customInstructions:b}},nb=function(t,e){if(t.writeVarIntNum(e.outputIndex),e.protocol==="wallet payment"){if(e.paymentRemittance==null)throw new Error("Payment remittance is required for wallet payment");t.writeUInt8(1),t.write(et(e.paymentRemittance.senderIdentityKey,"hex"));let n=et(e.paymentRemittance.derivationPrefix,"base64");t.writeVarIntNum(n.length),t.write(n);let r=et(e.paymentRemittance.derivationSuffix,"base64");t.writeVarIntNum(r.length),t.write(r)}else{t.writeUInt8(2);let n=et(e.insertionRemittance?.basket,"utf8");t.writeVarIntNum(n.length),t.write(n),a(this,S,Dc).call(this,t,e.insertionRemittance?.customInstructions);let r=e.insertionRemittance?.tags;if(typeof r=="object"){t.writeVarIntNum(r.length);for(let s of r){let o=et(s,"utf8");t.writeVarIntNum(o.length),t.write(o)}}else t.writeVarIntNum(0)}},ib=function(t){let e=a(this,S,Mc).call(this,t),n=a(this,S,Se).call(this,t.readVarIntNumStrict(!1),"listOutputs satoshis",0,21e14),r={spendable:!0,outpoint:e,satoshis:n},s=t.readVarIntNumStrict();s>=0&&(r.lockingScript=nt(t.read(s)));let o=t.readVarIntNumStrict();o>=0&&(r.customInstructions=Pt(t.read(o)));let c=t.readVarIntNumStrict();if(c!==-1){a(this,S,Ze).call(this,t,c,"listOutputs tags");let f=[];for(let d=0;d<c;d++)f.push(Pt(t.read(t.readVarIntNumStrict(!1))));r.tags=f}let u=t.readVarIntNumStrict();if(u!==-1){a(this,S,Ze).call(this,t,u,"listOutputs labels");let f=[];for(let d=0;d<u;d++)f.push(Pt(t.read(t.readVarIntNumStrict(!1))));r.labels=f}return r},ms=function(t){let e=new ht;if(typeof t!="string")throw new Error("Invalid outpoint: expected a string");let n=t.split(".");if(n.length!==2||!/^(?:0|[1-9]\d*)$/.test(n[1]))throw new Error(`Invalid outpoint: ${t}`);let r=et(n[0],"hex");if(r.length!==32)throw new Error("Invalid outpoint txid length");return e.write(r),e.writeVarIntNum(a(this,S,Se).call(this,Number(n[1]),"outpoint index",0,4294967295)),e.toUint8Array()},Mc=function(t){let e=nt(t.read(32)),n=a(this,S,Se).call(this,t.readVarIntNumStrict(!1),"outpoint index",0,4294967295);return`${e}.${n}`},Mt=function(t,e){t.writeInt8(Fc.OPTIONAL_BOOLEAN_WIRE_VALUES.get(e))},ri=function(t,e){typeof e=="number"?t.writeVarIntNum(e):t.writeVarIntNum(-1)},Er=function(t,e){let n=et(e??"","utf8");t.writeVarIntNum(n.length),t.write(n)},Dc=function(t,e){if(e!=null&&e!==""){let n=et(e,"utf8");t.writeVarIntNum(n.length),t.write(n)}else t.writeVarIntNum(-1)},Hc=function(t,e){if(e==null)t.writeVarIntNum(-1);else{t.writeVarIntNum(e.length);for(let n of e){let r=et(n,"utf8");t.writeVarIntNum(r.length),t.write(r)}}},$c=function(t,e){if(e==null)t.writeVarIntNum(-1);else{t.writeVarIntNum(e.length);for(let n of e)t.write(et(n,"hex"))}},id=function(t){let e=t.readVarIntNumStrict();if(e<0)return;a(this,S,Ze).call(this,t,e,"sendWithResults",33,1001);let n=[];for(let r=0;r<e;r++){let s=nt(t.read(32)),o=t.readInt8(),c="unproven";if(o===2)c="sending";else if(o===3)c="failed";else if(o!==1)throw new Error(`Unknown sendWith result status code: ${o}`);n.push({txid:s,status:c})}return n},rb=function(t,e){if(t.write(a(this,S,ms).call(this,e.outpoint)),e.unlockingScript!=null&&e.unlockingScript!==""){let n=et(e.unlockingScript,"hex");t.writeVarIntNum(n.length),t.write(n)}else t.writeVarIntNum(-1),t.writeVarIntNum(e.unlockingScriptLength??0);a(this,S,Er).call(this,t,e.inputDescription),a(this,S,ri).call(this,t,e.sequenceNumber)},sb=function(t,e){let n=et(e.lockingScript,"hex");t.writeVarIntNum(n.length),t.write(n),t.writeVarIntNum(e.satoshis),a(this,S,Er).call(this,t,e.outputDescription),a(this,S,Dc).call(this,t,e.basket),a(this,S,Dc).call(this,t,e.customInstructions),a(this,S,Hc).call(this,t,e.tags)},ob=function(t,e){if(e==null){t.writeInt8(0);return}if(t.writeInt8(1),a(this,S,Mt).call(this,t,e.signAndProcess),a(this,S,Mt).call(this,t,e.acceptDelayedBroadcast),t.writeInt8(e.trustSelf==="known"?1:-1),a(this,S,$c).call(this,t,e.knownTxids),a(this,S,Mt).call(this,t,e.returnTXIDOnly),a(this,S,Mt).call(this,t,e.noSend),e.noSendChange==null)t.writeVarIntNum(-1);else{t.writeVarIntNum(e.noSendChange.length);for(let n of e.noSendChange)t.write(a(this,S,ms).call(this,n))}a(this,S,$c).call(this,t,e.sendWith),a(this,S,Mt).call(this,t,e.randomizeOutputs)},ab=function(t,e){if(e==null){t.writeInt8(0);return}t.writeInt8(1),a(this,S,Mt).call(this,t,e.acceptDelayedBroadcast),a(this,S,Mt).call(this,t,e.returnTXIDOnly),a(this,S,Mt).call(this,t,e.noSend),a(this,S,$c).call(this,t,e.sendWith)},si=function(t,e,n,r,s){let o=new ht;o.writeUInt8(t[0]);let c=et(t[1],"utf8");o.writeVarIntNum(c.length),o.write(c);let u=et(e,"utf8");return o.writeVarIntNum(u.length),o.write(u),typeof n!="string"?o.writeUInt8(0):n==="self"?o.writeUInt8(11):n==="anyone"?o.writeUInt8(12):o.write(et(n,"hex")),o.write(a(this,S,Tr).call(this,r,s)),o.toUint8Array()},Tr=function(t,e){let n=new ht;if(typeof t=="boolean"?n.writeInt8(t?1:0):n.writeInt8(-1),typeof e=="string"){let r=et(e,"utf8");n.writeInt8(r.length),n.write(r)}else n.writeInt8(-1);return n.toUint8Array()},rd=function(t,e){let n=new mt(t),r=a(this,S,Se).call(this,n.readVarIntNumStrict(!1),"discovery totalCertificates",0,4294967295),s=[];for(;!n.eof();){a(this,S,Mo).call(this,s.length,e,"discover");let o=n.readVarIntNumStrict(!1),c=n.read(o),u=Ar.fromBinary(c),f=n.readVarIntNumStrict(!1),d=Pt(n.read(f)),l=n.readVarIntNumStrict(!1),p=Pt(n.read(l)),b=n.readVarIntNumStrict(!1),g=Pt(n.read(b)),y=a(this,S,Se).call(this,n.readUInt8(),"discovery trust",1,10),v={},C=n.readVarIntNumStrict(!1);a(this,S,Ze).call(this,n,C,"discovery public keyring");for(let T=0;T<C;T++){let B=n.readVarIntNumStrict(!1),_=a(this,S,Do).call(this,n,B,"discovery public keyring"),$=n.readVarIntNumStrict(!1);a(this,S,Ho).call(this,v,_,xe(n.read($)),"discovery public keyring")}let E={},A=n.readVarIntNumStrict(!1);a(this,S,Ze).call(this,n,A,"discovery decrypted fields");for(let T=0;T<A;T++){let B=n.readVarIntNumStrict(!1),_=a(this,S,Do).call(this,n,B,"discovery decrypted fields"),$=n.readVarIntNumStrict(!1);a(this,S,Ho).call(this,E,_,Pt(n.read($)),"discovery decrypted fields")}s.push({...u,signature:u.signature,certifierInfo:{iconUrl:p,name:d,description:g,trust:y},publiclyRevealedKeyring:v,decryptedFields:E})}return a(this,S,Uo).call(this,s.length,r,"discover"),{totalCertificates:r,certificates:s}},_i=function(t,e){if(!t.eof())throw new Error(`Wallet Wire ${e} response contains trailing data`)},Uo=function(t,e,n){if(t>e)throw new Error(`Wallet Wire ${n} response returned ${t} records but declared a total of ${e}`)},Mo=function(t,e,n){let r=e??10;if(t>=r)throw new Error(`Wallet Wire ${n} response exceeds the requested page limit of ${r}`)},Ze=function(t,e,n,r=1,s=jx){if(!Number.isSafeInteger(e)||e<0||e>s)throw new Error(`Wallet Wire ${n} exceeds the maximum collection size of ${s}`);if(e>Math.floor(t.remaining()/r))throw new Error(`Wallet Wire ${n} count exceeds the remaining response data`);return e},oi=function(t,e){let n=t.readInt8();if(n!==0&&n!==1)throw new Error(`Invalid ${e} flag: expected 0 or 1, received ${n}`);return n===1},Do=function(t,e,n){if(e<1||e>50)throw new Error(`Invalid ${n} key length: expected 1\u201350 bytes, received ${e}`);let r=Pt(t.read(e));if(hn(r))throw new Error(`Unsafe ${n} key: ${r}`);return r},Ho=function(t,e,n,r){if(Object.prototype.hasOwnProperty.call(t,e))throw new Error(`Duplicate ${r} key: ${e}`);t[e]=n},Ci=function(t,e){let n=t.read(33);return Vt.fromDER(Array.from(n)),nt(n)},cb=function(t,e){let n=t.readUInt8();if(n!==0&&n!==1&&n!==2)throw new Error(`Invalid ${e} security level: ${n}`);return n},Se=function(t,e,n,r){if(!Number.isSafeInteger(t)||t<n||t>r)throw new Error(`Invalid ${e}: expected an integer from ${n} to ${r}, received ${String(t)}`);return t},kr=function(t,e,n){if(t.length!==e)throw new Error(`Wallet Wire ${n} response has an invalid length`)},Li=function(t,e){a(this,S,kr).call(this,t,0,e)},m(Fc,"OPTIONAL_BOOLEAN_WIRE_VALUES",new Map([[!0,1],[!1,0],[void 0,-1]]));var ys=Fc;function ub(i,t="http"){if(/^[a-z][a-z0-9+.-]*:\/\//i.test(i))try{return new URL(i).origin}catch{}try{return new URL(`${t}://${i}`).origin}catch{throw new Error(`Invalid originator value: ${i}`)}}function ws(i){if(typeof i!="string"||i.length<1||i.length>2048||i!==i.trim())throw new TypeError("Wallet HTTP baseUrl must be an exact HTTP(S) origin.");let t;try{t=new URL(i)}catch{throw new TypeError("Wallet HTTP baseUrl must be an exact HTTP(S) origin.")}if(t.protocol!=="https:"&&t.protocol!=="http:"||t.username!==""||t.password!==""||t.pathname!=="/"||t.search!==""||t.hash!==""||t.origin==="null")throw new TypeError("Wallet HTTP baseUrl must be an HTTP(S) origin without credentials, path, query, or fragment.");if(t.protocol==="http:"&&!Yx(t.hostname))throw new TypeError("Wallet HTTP baseUrl may use cleartext HTTP only for a loopback host.");return t.origin}function Yx(i){let t=i.toLowerCase();return t==="localhost"||t.endsWith(".localhost")||t==="127.0.0.1"||t==="[::1]"}var xs=class{constructor(t,e="http://localhost:3301",n){m(this,"baseUrl");m(this,"httpClient");m(this,"originator");let r=ti(t);this.baseUrl=ws(e),this.httpClient=n??globalThis.fetch.bind(globalThis),this.originator=r}async transmitToWallet(t){return Array.from(await this.transmitToWalletUint8Array(Uint8Array.from(t)))}async transmitToWalletUint8Array(t){if(!(t instanceof Uint8Array)||t.length>268435456)throw new Error("HTTPWalletWire request exceeds the maximum permitted size");let e=new mt(t),n=e.readUInt8(),r=ps[n];if(r===void 0||r==="")throw new Error(`Invalid call code: ${n}`);let s=e.readUInt8();if(s>250)throw new Error(`Invalid originator length: expected at most 250 bytes, received ${s}`);let o;if(s>0){let d=e.read(s);o=ti(Pt(d))}if(this.originator!==void 0&&o!==this.originator)throw new Error("Wallet Wire frame originator does not match the configured originator");let c=e.readView(),u=ws(this.baseUrl),f=await this.httpClient(`${u}/${r}`,{method:"POST",redirect:"error",headers:{"Content-Type":"application/octet-stream",Origin:o??""},body:c});return await this.readResponse(f)}async readResponse(t){if(t.ok===!1)throw new Error(`HTTPWalletWire request failed with HTTP status ${String(t.status)}`);let e=t.headers?.get("content-length");if(e!=null){if(!/^\d+$/.test(e))throw new Error("HTTPWalletWire response has an invalid Content-Length");let u=Number(e);if(!Number.isSafeInteger(u)||u>268435456)throw new Error("HTTPWalletWire response exceeds the maximum permitted size")}if(t.body==null){let u=await t.arrayBuffer();if(u.byteLength>268435456)throw new Error("HTTPWalletWire response exceeds the maximum permitted size");return new Uint8Array(u)}let n=t.body.getReader(),r=[],s=0;for(;;){let{value:u,done:f}=await n.read();if(f)break;if(u!=null){if(s+=u.byteLength,s>268435456)throw await n.cancel().catch(()=>{}),new Error("HTTPWalletWire response exceeds the maximum permitted size");r.push(u)}}let o=new Uint8Array(s),c=0;for(let u of r)o.set(u,c),c+=u.byteLength;return o}};var qc=class extends Error{constructor(e,n,r,s,o){super("Undelayed createAction or signAction results require review.");m(this,"reviewActionResults");m(this,"sendWithResults");m(this,"txid");m(this,"tx");m(this,"noSendChange");m(this,"code");m(this,"isError",!0);this.reviewActionResults=e,this.sendWithResults=n,this.txid=r,this.tx=s,this.noSendChange=o,this.code=5,this.name=this.constructor.name}};var sd=class extends Error{constructor(e,n){super(`Insufficient funds in the available inputs to cover the cost of the required outputs and the transaction fee (${n} more satoshis are needed, for a total of ${e}), plus whatever would be required in order to pay the fee to unlock and spend the outputs used to provide the additional satoshis.`);m(this,"totalSatoshisNeeded");m(this,"moreSatoshisNeeded");m(this,"code");m(this,"isError",!0);this.totalSatoshisNeeded=e,this.moreSatoshisNeeded=n,this.code=7,this.name=this.constructor.name}},fb=sd;var od=256*1024*1024,Zx=256*1024*1024;async function Jx(i){let t=i.headers?.get("content-length");if(t!=null){if(!/^\d+$/.test(t))throw new Error("HTTPWalletJSON response has an invalid Content-Length");let n=Number(t);if(!Number.isSafeInteger(n)||n>od)throw new Error("HTTPWalletJSON response exceeds the maximum permitted size")}let e;if(i.body!=null&&typeof i.body.getReader=="function"){let n=i.body.getReader(),r=[],s=0;for(;;){let{value:c,done:u}=await n.read();if(u)break;if(c!=null){if(s+=c.byteLength,s>od)throw await n.cancel().catch(()=>{}),new Error("HTTPWalletJSON response exceeds the maximum permitted size");r.push(c)}}e=new Uint8Array(s);let o=0;for(let c of r)e.set(c,o),o+=c.byteLength}else if(typeof i.arrayBuffer=="function"){let n=await i.arrayBuffer();if(n.byteLength>od)throw new Error("HTTPWalletJSON response exceeds the maximum permitted size");e=new Uint8Array(n)}return e!==void 0?JSON.parse(Pt(e)):await i.json()}function ad(i,t,e=0,n=4096){if(typeof i!="string")throw new Error(`Invalid wallet error ${t}`);let r=at(i,"utf8").length;if(r<e||r>n)throw new Error(`Invalid wallet error ${t}`);return i}function db(i,t){if(!Number.isSafeInteger(i)||i<0||i>21e14)throw new Error(`Invalid wallet error ${t}`);return i}function Qx(i,t){if(!Array.isArray(i))throw new Error("Invalid wallet error reviewActionResults");if(i.length>yn+1)throw new Error("Invalid wallet error reviewActionResults");let e=new Set(["success","doubleSpend","serviceError","invalidTx"]),n=new Set;for(let[r,s]of i.entries()){if(s==null||typeof s!="object"||Array.isArray(s))throw new Error(`Invalid wallet error reviewActionResults[${r}]`);let o=s;if(typeof o.txid!="string"||!/^[0-9a-fA-F]{64}$/.test(o.txid))throw new Error(`Invalid wallet error reviewActionResults[${r}].txid`);let c=o.txid.toLowerCase();if(n.has(c)||!t.has(c))throw new Error(`Invalid wallet error reviewActionResults[${r}].txid`);if(n.add(c),!e.has(o.status))throw new Error(`Invalid wallet error reviewActionResults[${r}].status`);if(o.status!=="doubleSpend"&&(o.competingTxs!==void 0||o.competingBeef!==void 0))throw new Error(`Invalid wallet error reviewActionResults[${r}].competingTxs`);let u;if(o.competingTxs!==void 0){if(!Array.isArray(o.competingTxs)||o.competingTxs.length>yn)throw new Error(`Invalid wallet error reviewActionResults[${r}].competingTxs`);u=[];let f=new Set;for(let[d,l]of o.competingTxs.entries()){if(typeof l!="string"||!/^[0-9a-fA-F]{64}$/.test(l))throw new Error(`Invalid wallet error reviewActionResults[${r}].competingTxs[${d}]`);let p=l.toLowerCase();if(p===c||f.has(p))throw new Error(`Invalid wallet error reviewActionResults[${r}].competingTxs`);f.add(p),u.push(p)}}if(o.competingBeef!==void 0){if(u==null||u.length===0)throw new Error(`Invalid wallet error reviewActionResults[${r}].competingBeef`);let f=$f(o.competingBeef);if(f==null)throw new Error(`Invalid wallet error reviewActionResults[${r}].competingBeef`);try{let d=n0.fromBinaryStrict(f);for(let l of u)if(d.findTxid(l)==null)throw new Error}catch{throw new Error(`Invalid wallet error reviewActionResults[${r}].competingBeef`)}}}}function t2(i,t,e){if(i.isError!==!0||!Number.isSafeInteger(i.code))throw new Error("Invalid wallet error envelope");switch(i.message!==void 0&&ad(i.message,"message"),i.code){case 5:{if(t!=="createAction"&&t!=="signAction")throw new Error(`Invalid ${t} wallet error code`);if(!Array.isArray(i.sendWithResults))throw new Error("Invalid wallet error sendWithResults");let n={...e,options:{...e.options,returnTXIDOnly:!0}};$t(t,{txid:i.txid,tx:i.tx,noSendChange:i.noSendChange,sendWithResults:i.sendWithResults},n);let r=new Set;typeof i.txid=="string"&&r.add(i.txid.toLowerCase());let s=e.options;if(Array.isArray(s?.sendWith))for(let o of s.sendWith)r.add(String(o).toLowerCase());return Qx(i.reviewActionResults,r),new qc(i.reviewActionResults,i.sendWithResults,i.txid,i.tx,i.noSendChange)}case 6:{let n=ad(i.parameter,"parameter",1,200),r=ad(i.message,"message"),s=new Jn(n);return s.message=r,s}case 7:{let n=db(i.totalSatoshisNeeded,"totalSatoshisNeeded"),r=db(i.moreSatoshisNeeded,"moreSatoshisNeeded");if(r>n)throw new Error("Invalid wallet error moreSatoshisNeeded");return new fb(n,r)}default:return}}var Ui=class{constructor(t,e="http://localhost:3321",n=globalThis.fetch.bind(globalThis)){m(this,"baseUrl");m(this,"httpClient");m(this,"originator");m(this,"api");this.baseUrl=ws(e),this.originator=ti(t),this.httpClient=n;let r=typeof window<"u"&&typeof document<"u"&&window.origin!=="file://";this.api=async(s,o)=>{xt(s,o);let c=bt(s,o),u=ws(this.baseUrl);if(!r&&!this.originator)throw new Error('HTTPWalletJSON: originator is required when using the HTTP substrate in Node.js. Pass an originator (e.g. "example.com") to the constructor.');let f=r?void 0:ub(this.originator,"http"),d=fs(o);if(et(d,"utf8").length>Zx)throw new Error("HTTPWalletJSON request exceeds the maximum permitted size");let l=await this.httpClient(`${u}/${s}`,{method:"POST",redirect:"error",headers:{Accept:"application/json","Content-Type":"application/json",...f?{Origin:f,Originator:f}:{}},body:d}),p=Hg(await Jx(l),`HTTPWalletJSON ${s} raw response`),b=Dg(Ic(p),`HTTPWalletJSON ${s} response`);if(b==null||typeof b!="object"||Array.isArray(b))throw new Error(`Invalid HTTPWalletJSON ${s} response: expected an object`);if(!l.ok){if(l.status===400&&Object.prototype.hasOwnProperty.call(b,"isError")){let g=t2(b,s,c);if(g!==void 0)throw g}throw new Error(`HTTPWalletJSON ${s} failed with HTTP status ${l.status}`)}return $t(s,b,c)}}async createAction(t){return await this.api("createAction",t)}async signAction(t){return await this.api("signAction",t)}async abortAction(t){return await this.api("abortAction",t)}async listActions(t){return await this.api("listActions",t)}async internalizeAction(t){return await this.api("internalizeAction",t)}async listOutputs(t){return await this.api("listOutputs",t)}async relinquishOutput(t){return await this.api("relinquishOutput",t)}async getPublicKey(t){return await this.api("getPublicKey",t)}async revealCounterpartyKeyLinkage(t){return await this.api("revealCounterpartyKeyLinkage",t)}async revealSpecificKeyLinkage(t){return await this.api("revealSpecificKeyLinkage",t)}async encrypt(t){return await this.api("encrypt",t)}async decrypt(t){return await this.api("decrypt",t)}async createHmac(t){return await this.api("createHmac",t)}async verifyHmac(t){return await this.api("verifyHmac",t)}async createSignature(t){return await this.api("createSignature",t)}async verifySignature(t){return await this.api("verifySignature",t)}async acquireCertificate(t){return await this.api("acquireCertificate",t)}async listCertificates(t){return await this.api("listCertificates",t)}async proveCertificate(t){return await this.api("proveCertificate",t)}async relinquishCertificate(t){return await this.api("relinquishCertificate",t)}async discoverByIdentityKey(t){return await this.api("discoverByIdentityKey",t)}async discoverByAttributes(t){return await this.api("discoverByAttributes",t)}async isAuthenticated(t){return await this.api("isAuthenticated",t)}async waitForAuthentication(t){return await this.api("waitForAuthentication",t)}async getHeight(t){return await this.api("getHeight",t)}async getHeaderForHeight(t){return await this.api("getHeaderForHeight",t)}async getNetwork(t){return await this.api("getNetwork",t)}async getVersion(t){return await this.api("getVersion",t)}};var e2=1024,lb=3600*1e3,hb=256*1024*1024,Or=class extends bs{constructor(e="*",n){super();m(this,"domain");m(this,"responseTimeout");m(this,"pendingInvocations",0);if(typeof globalThis.window!="object")throw new TypeError("The XDM substrate requires a global window object.");if(!Object.prototype.hasOwnProperty.call(globalThis.window,"ReactNativeWebView"))throw new Error("The window object does not have a ReactNativeWebView property.");if(typeof globalThis.window.ReactNativeWebView.postMessage!="function")throw new TypeError("The window.ReactNativeWebView property does not seem to support postMessage calls.");if(n!==void 0&&(!Number.isSafeInteger(n)||n<1||n>lb))throw new TypeError(`ReactNativeWebView responseTimeout must be an integer from 1 to ${lb}.`);this.domain=i2(e),this.responseTimeout=n}async invokeRaw(e,n,r){if(this.pendingInvocations>=e2)throw new Error("React Native wallet pending invocation limit reached.");let s=xe(ke(12));return this.pendingInvocations++,await new Promise((o,c)=>{let u,f=!1,d=!0,l=()=>{if(d&&(d=!1,this.pendingInvocations--,u!==void 0&&clearTimeout(u),f&&typeof globalThis.window.removeEventListener=="function"))try{globalThis.window.removeEventListener("message",p)}catch{}},p=b=>{if(!n2(b,this.domain)||typeof b.data!="string")return;if(et(b.data,"utf8").length>hb){l(),c(new Error("React Native wallet response exceeds the maximum permitted size."));return}let g;try{g=JSON.parse(b.data)}catch{return}if(!(g?.type!=="CWI"||g.id!==s||g.isInvocation!==!1||g.status!=="success"&&g.status!=="error")){if(this.domain!=="*"&&b.origin!=null&&b.origin!==""&&b.origin!==this.domain){l(),c(new Error(`React Native wallet response origin ${b.origin} did not match ${this.domain}.`));return}if(l(),g.status==="error")if(typeof g.description!="string"||at(g.description,"utf8").length>4096||!Number.isSafeInteger(g.code)||g.code<1||g.code>255)c(new Error("Invalid React Native wallet error response."));else{let y=g.code>=cn.unsupportedAction&&g.code<=cn.abortRefused,v=y?g.description:"Wallet operation failed";c(new ii(v,y?g.code:cn.unknownError))}else try{let y=Ic(g.result);o($t(e,y,r))}catch(y){c(y)}}};try{globalThis.window.addEventListener("message",p),f=!0,this.responseTimeout!==void 0&&(u=setTimeout(()=>{l(),c(new Error("React Native wallet response timed out."))},this.responseTimeout));let b=fs({type:"CWI",isInvocation:!0,id:s,call:e,args:n});if(et(b,"utf8").length>hb)throw new Error("React Native wallet request exceeds the maximum permitted size.");globalThis.window.ReactNativeWebView.postMessage(b)}catch(b){l(),c(b)}})}};function n2(i,t){let e=globalThis.window,n=i.source;return n==null||n===e?!0:n===e.parent&&(i.origin===e.origin||i.origin===t)}function i2(i){if(i==="*")return i;try{if(/^[a-z][a-z\d+.-]*:\/\//i.test(i)&&!/^https?:\/\//i.test(i))throw new TypeError("Only HTTP(S) origins are supported.");let t=/^https?:\/\//i.test(i)?i:`https://${i}`,e=new URL(t).origin;if(e==="null")throw new TypeError("The origin could not be normalized.");return e}catch{throw new TypeError("ReactNativeWebView domain must be an HTTP(S) origin or domain name.")}}var Is=1e3,pb=200,Ss=class{constructor(t="auto",e){m(this,"substrate");m(this,"originator");let n=ti(e);t==="Cicada"&&(t=new ys(new xs(n))),t==="window.CWI"&&(t=new gs),t==="XDM"&&(t=new vr),t==="json-api"&&(t=new Ui(n)),t==="react-native"&&(t=new Or),t==="secure-json-api"&&(t=new Ui(n,"https://localhost:2121")),this.substrate=t,this.originator=n}async validatedResult(t,e,n){return $t(t,await e,n)}async connectToSubstrate(){if(typeof this.substrate=="object")return;let t=async(o,c,u)=>{try{let f=o(),d,l;try{d=await Promise.race([f.getVersion({},this.originator),new Promise((p,b)=>{l=setTimeout(()=>b(new Error("Timed out.")),c)})])}finally{clearTimeout(l)}return $t("getVersion",d),{success:!0,sub:u?.()??f}}catch{return{success:!1}}},e=[t(()=>new gs,Is),t(()=>new ys(new xs(this.originator)),Is),t(()=>new Ui(this.originator,"https://localhost:2121"),Is),t(()=>new Ui(this.originator),Is),t(()=>new Or("*",Is),Is,()=>new Or)],r=(await Promise.allSettled(e)).filter(o=>o.status==="fulfilled"&&o.value.success&&o.value.sub!==void 0).map(o=>o.value.sub);if(r.length>0){this.substrate=r[0];return}let s=await t(()=>new vr("*",pb),pb,()=>new vr);if(s.success&&s.sub!==void 0)this.substrate=s.sub;else throw new Error("No wallet available over any communication substrate. Install a BSV wallet today!")}async createAction(t){ja(t);let e=bt("createAction",t);return await this.connectToSubstrate(),await this.validatedResult("createAction",this.substrate.createAction(t,this.originator),e)}async signAction(t){Ga(t);let e=bt("signAction",t);return await this.connectToSubstrate(),await this.validatedResult("signAction",this.substrate.signAction(t,this.originator),e)}async abortAction(t){return Ya(t),await this.connectToSubstrate(),await this.validatedResult("abortAction",this.substrate.abortAction(t,this.originator))}async listActions(t){cc(t);let e=bt("listActions",t);return await this.connectToSubstrate(),await this.validatedResult("listActions",this.substrate.listActions(t,this.originator),e)}async internalizeAction(t){return Za(t),await this.connectToSubstrate(),await this.validatedResult("internalizeAction",this.substrate.internalizeAction(t,this.originator))}async listOutputs(t){ac(t);let e=bt("listOutputs",t);return await this.connectToSubstrate(),await this.validatedResult("listOutputs",this.substrate.listOutputs(t,this.originator),e)}async relinquishOutput(t){return Qa(t),await this.connectToSubstrate(),await this.validatedResult("relinquishOutput",this.substrate.relinquishOutput(t,this.originator))}async getPublicKey(t){return uc(t),await this.connectToSubstrate(),await this.validatedResult("getPublicKey",this.substrate.getPublicKey(t,this.originator))}async revealCounterpartyKeyLinkage(t){fc(t);let e=bt("revealCounterpartyKeyLinkage",t);return await this.connectToSubstrate(),await this.validatedResult("revealCounterpartyKeyLinkage",this.substrate.revealCounterpartyKeyLinkage(t,this.originator),e)}async revealSpecificKeyLinkage(t){dc(t);let e=bt("revealSpecificKeyLinkage",t);return await this.connectToSubstrate(),await this.validatedResult("revealSpecificKeyLinkage",this.substrate.revealSpecificKeyLinkage(t,this.originator),e)}async encrypt(t){return lc(t),await this.connectToSubstrate(),await this.validatedResult("encrypt",this.substrate.encrypt(t,this.originator))}async decrypt(t){return hc(t),await this.connectToSubstrate(),await this.validatedResult("decrypt",this.substrate.decrypt(t,this.originator))}async createHmac(t){return pc(t),await this.connectToSubstrate(),await this.validatedResult("createHmac",this.substrate.createHmac(t,this.originator))}async verifyHmac(t){return gc(t),await this.connectToSubstrate(),await this.validatedResult("verifyHmac",this.substrate.verifyHmac(t,this.originator))}async createSignature(t){return bc(t),await this.connectToSubstrate(),await this.validatedResult("createSignature",this.substrate.createSignature(t,this.originator))}async verifySignature(t){return mc(t),await this.connectToSubstrate(),await this.validatedResult("verifySignature",this.substrate.verifySignature(t,this.originator))}async acquireCertificate(t){if(t.acquisitionProtocol==="direct")ic(t);else if(t.acquisitionProtocol==="issuance")nc(t);else throw new Jn("acquisitionProtocol",`valid. ${String(t.acquisitionProtocol)} is unrecognized.`);let e=bt("acquireCertificate",t);return await this.connectToSubstrate(),await this.validatedResult("acquireCertificate",this.substrate.acquireCertificate(t,this.originator),e)}async listCertificates(t){ec(t);let e=bt("listCertificates",t);return await this.connectToSubstrate(),await this.validatedResult("listCertificates",this.substrate.listCertificates(t,this.originator),e)}async proveCertificate(t){rc(t);let e=bt("proveCertificate",t);return await this.connectToSubstrate(),await this.validatedResult("proveCertificate",this.substrate.proveCertificate(t,this.originator),e)}async relinquishCertificate(t){return tc(t),await this.connectToSubstrate(),await this.validatedResult("relinquishCertificate",this.substrate.relinquishCertificate(t,this.originator))}async discoverByIdentityKey(t){sc(t);let e=bt("discoverByIdentityKey",t);return await this.connectToSubstrate(),await this.validatedResult("discoverByIdentityKey",this.substrate.discoverByIdentityKey(t,this.originator),e)}async discoverByAttributes(t){oc(t);let e=bt("discoverByAttributes",t);return await this.connectToSubstrate(),await this.validatedResult("discoverByAttributes",this.substrate.discoverByAttributes(t,this.originator),e)}async isAuthenticated(t={}){return Ni(t),await this.connectToSubstrate(),await this.validatedResult("isAuthenticated",this.substrate.isAuthenticated(t,this.originator))}async waitForAuthentication(t={}){return Ni(t),await this.connectToSubstrate(),await this.validatedResult("waitForAuthentication",this.substrate.waitForAuthentication(t,this.originator))}async getHeight(t={}){return Ni(t),await this.connectToSubstrate(),await this.validatedResult("getHeight",this.substrate.getHeight(t,this.originator))}async getHeaderForHeight(t){return yc(t),await this.connectToSubstrate(),await this.validatedResult("getHeaderForHeight",this.substrate.getHeaderForHeight(t,this.originator))}async getNetwork(t={}){return Ni(t),await this.connectToSubstrate(),await this.validatedResult("getNetwork",this.substrate.getNetwork(t,this.originator))}async getVersion(t={}){return Ni(t),await this.connectToSubstrate(),await this.validatedResult("getVersion",this.substrate.getVersion(t,this.originator))}};function $o(i,t){let e=Promise.resolve();return n=>(e=e.then(()=>i(n)).catch(r=>t?.(r)),e)}var mb="1",r2="bwallet-pair-v1",s2="www.bwallet.space";var yb="relay.bwallet.space",Vc=120,Wc=new TextEncoder,o2=new TextDecoder,wb=i=>{let t="";for(let e=0;e<i.length;e+=32768)t+=String.fromCharCode(...i.subarray(e,e+32768));return t},a2=i=>btoa(wb(i)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),c2=i=>{let t=i.replace(/-/g,"+").replace(/_/g,"/"),e=atob(t+"=".repeat((4-t.length%4)%4));return Uint8Array.from(e,n=>n.charCodeAt(0))},gb=i=>btoa(wb(i)),bb=i=>Uint8Array.from(atob(i),t=>t.charCodeAt(0)),xb=()=>a2(crypto.getRandomValues(new Uint8Array(16)));function Ib(i){let t=new URLSearchParams({v:i.v,r:i.r,c:i.c,k:i.k,o:i.o,e:String(i.e)});return`https://${s2}/pair?${t}`}var cd=(i,t,e,n)=>{let r=/^(localhost|127\.0\.0\.1)(:\d+)?$/.test(i),s=new URLSearchParams({role:e});return n&&s.set("e",String(n)),`${r?"ws":"wss"}://${i}/v1/c/${t}?${s}`};async function ud(i,t,e){let n=i.deriveSharedSecret(Vt.fromString(t)),r=new Uint8Array(n.encode(!0)),s=await crypto.subtle.importKey("raw",r,"HKDF",!1,["deriveBits"]),o=new Uint8Array(await crypto.subtle.deriveBits({name:"HKDF",hash:"SHA-256",salt:c2(e),info:Wc.encode(r2)},s,256)),c=await crypto.subtle.importKey("raw",o,"AES-GCM",!1,["encrypt","decrypt"]),u=new Uint8Array(await crypto.subtle.digest("SHA-256",o)),f=String((u[0]<<8|u[1])%1e4).padStart(4,"0");return{key:c,code:f}}var Fo=class{constructor(t,e){m(this,"key",t);m(this,"me",e);m(this,"sent",0);m(this,"lastSeen",0)}async seal(t){let e=++this.sent,n=crypto.getRandomValues(new Uint8Array(12)),r=new Uint8Array(await crypto.subtle.encrypt({name:"AES-GCM",iv:n,additionalData:Wc.encode(`${this.me}|${e}`)},this.key,Wc.encode(JSON.stringify(t))));return{s:e,n:gb(n),d:gb(r)}}async open(t){if(!Number.isInteger(t.s)||t.s<=this.lastSeen)return null;let e=this.me==="site"?"wallet":"site";try{let n=await crypto.subtle.decrypt({name:"AES-GCM",iv:bb(t.n),additionalData:Wc.encode(`${e}|${t.s}`)},this.key,bb(t.d));return this.lastSeen=t.s,JSON.parse(o2.decode(n))}catch{return null}}get counters(){return{sent:this.sent,lastSeen:this.lastSeen}}restore(t){this.sent=t.sent,this.lastSeen=t.lastSeen}},fd=i=>!!i&&typeof i=="object"&&"d"in i&&"n"in i&&"s"in i;var dd="bwalletx.connect.pairing.v1",Sb=1;function zc(){let i=new Map;return{getItem:t=>i.get(t)??null,setItem:(t,e)=>{i.set(t,e)},removeItem:t=>{i.delete(t)}}}function ld(){try{if(typeof localStorage<"u")return localStorage}catch{}return zc()}function vb(){return i=>{if(typeof WebSocket>"u")throw new Error("No WebSocket here. Pass options.socket.");return new WebSocket(i)}}function u2(i){if(!i)return null;try{let t=JSON.parse(i),e=n=>Number.isInteger(n)&&n>=0;return t.v!==1||typeof t.c!="string"||!/^[A-Za-z0-9_-]{22}$/.test(t.c)||typeof t.r!="string"||!/^[a-z0-9.-]+(:\d+)?$/i.test(t.r)||typeof t.s!="string"||!/^[0-9a-f]{64}$/i.test(t.s)||typeof t.k!="string"||!/^0[23][0-9a-f]{64}$/i.test(t.k)||!e(t.sent)||!e(t.lastSeen)||!e(t.pairedAt)?null:t}catch{return null}}var Kc=class{constructor(t,e,n,r,s,o){m(this,"p",t);m(this,"sealer",e);m(this,"storage",n);m(this,"key",r);m(this,"socket",s);m(this,"timeoutMs",o);m(this,"ws",null);m(this,"opening",null);m(this,"waiting",new Map);m(this,"forgotten",!1)}adopt(t){this.ws=t,this.wire(t)}wire(t){t.onmessage=$o(e=>this.onFrame(String(e.data))),t.onerror=null,t.onclose=()=>{this.ws===t&&(this.ws=null),this.failAll(new Error("The connection to bWalletX closed"))}}persist(){this.forgotten||(this.p={...this.p,...this.sealer.counters},Promise.resolve(this.storage.setItem(this.key,JSON.stringify(this.p))).catch(()=>{}))}failAll(t){for(let e of this.waiting.values())clearTimeout(e.timer),e.reject(t);this.waiting.clear()}async ensure(){if(this.forgotten)throw new Error("This pairing was removed. Pair again.");this.ws&&this.ws.readyState===Sb||(this.opening??(this.opening=this.reopen().finally(()=>this.opening=null)),await this.opening)}reopen(){let t=this.socket(cd(this.p.r,this.p.c,"site",Math.floor(Date.now()/1e3)+Vc-10));return new Promise((e,n)=>{t.onopen=()=>{this.ws=t,this.wire(t),e()},t.onerror=()=>n(new Error("Could not reach the bWalletX pairing service")),t.onclose=()=>n(new Error("Could not reach the bWalletX pairing service"))})}async onFrame(t){let e;try{e=JSON.parse(t)}catch{return}if(e.t==="relay"&&e.error)return this.failAll(new Error(`bWalletX pairing service: ${e.error}`));if(!fd(e))return;let r=await this.sealer.open(e);if(r)if(this.persist(),r.t==="res"){let s=this.waiting.get(r.id);if(!s)return;clearTimeout(s.timer),this.waiting.delete(r.id),r.error?s.reject(Object.assign(new Error(r.error.message),{code:r.error.code})):s.resolve(r.result)}else r.t==="close"&&(this.drop(),this.failAll(new Error("bWalletX disconnected this site. Pair again.")))}async call(t,e){await this.ensure();let n=this.ws,r=`${t}-${Date.now()}-${Math.random().toString(36).slice(2,10)}`,s=new Promise((o,c)=>{let u=setTimeout(()=>{this.waiting.delete(r)&&c(new Error("No answer from bWalletX. Open it, unlocked, and approve."))},this.timeoutMs);this.waiting.set(r,{resolve:o,reject:c,timer:u})});return n.send(JSON.stringify(await this.sealer.seal({t:"req",id:r,action:t,params:e}))),this.persist(),s}close(){let t=this.ws;this.ws=null,t?.close()}drop(){this.forgotten=!0,Promise.resolve(this.storage.removeItem(this.key)).catch(()=>{}),this.close()}async forget(){if(!this.forgotten){try{this.ws&&this.ws.readyState===Sb&&this.ws.send(JSON.stringify(await this.sealer.seal({t:"close",reason:"site unpaired"})))}catch{}this.drop()}}wallet(){return new Proxy({},{get:(t,e)=>{if(e==="close")return()=>this.close();if(e==="forget")return()=>this.forget();if(!(typeof e!="string"||e==="then"||e==="toJSON"))return n=>this.call(e,n??{})}})}};function vs(i){let t=i.storage===void 0?ld():i.storage??zc(),e=i.storageKey??dd,n=i.socket??vb(),r=i.relay??yb,s=i.origin??(typeof location<"u"?location.origin:"");if(!s)return Promise.reject(new Error("pairBwalletX needs options.origin outside a browser"));let o=Qi.fromRandom(),c=xb(),u=Math.floor(Date.now()/1e3)+Vc;return new Promise((f,d)=>{if(i.signal?.aborted)return d(new Error("cancelled"));let l;try{l=n(cd(r,c,"site",u))}catch(C){return d(C)}let p=null,b="",g=!1,y=C=>{g||(g=!0,clearTimeout(v),l.close(),d(C))},v=setTimeout(()=>y(new Error("The pairing code expired. Show a new one.")),Vc*1e3);i.signal?.addEventListener("abort",()=>y(new Error("cancelled"))),l.onerror=()=>y(new Error("Could not reach the bWalletX pairing service")),l.onclose=()=>y(new Error("The connection to bWalletX closed before pairing finished")),l.onmessage=$o(async C=>{if(g)return;let E;try{E=JSON.parse(String(C.data))}catch{return}if(E.t==="hello"&&!p){b=E.k;let T=await ud(o,b,c);p=new Fo(T.key,"site"),i.onCode(T.code);return}if(!p||!fd(E))return;let A=await p.open(E);if(A)if(A.t==="ready"){g=!0,clearTimeout(v);let T={v:1,c,r,s:o.toHex(),k:b,...p.counters,pairedAt:Date.now()};await Promise.resolve(t.setItem(e,JSON.stringify(T))).catch(()=>{});let B=new Kc(T,p,t,e,n,i.callTimeoutMs??12e4);B.adopt(l),f(B.wallet())}else A.t==="close"&&y(new Error("Pairing was declined in bWalletX"))}),i.onLink(Ib({v:mb,r,c,k:o.toPublicKey().toString(),o:s,e:u}))})}async function As(i={}){let t=i.storage===void 0?ld():i.storage??zc(),e=i.storageKey??dd,n=u2(await Promise.resolve(t.getItem(e)).catch(()=>null));if(!n)return null;let{key:r}=await ud(Qi.fromHex(n.s),n.k,n.c),s=new Fo(r,"site");return s.restore({sent:n.sent,lastSeen:n.lastSeen}),new Kc(n,s,t,e,i.socket??vb(),i.callTimeoutMs??12e4).wallet()}async function Ab(i={}){let t=i.storage===void 0?ld():i.storage??zc();await Promise.resolve(t.removeItem(i.storageKey??dd)).catch(()=>{})}var hd=[2,"bwallet sign in"];async function pd(i={}){if(i.wallet)return{wallet:i.wallet,method:"wallet"};let t=await Mi(i.discoverMs);if(t)return{wallet:t.wallet,method:t.method};if(i.reusePairing!==!1){let e=await As(i.pairing??{});if(e)return{wallet:e,method:"pairing"}}if(!i.pairing)throw Object.assign(new Error("bWalletX was not found in this browser"),{code:"NOT_FOUND"});return{wallet:await vs(i.pairing),method:"pairing"}}async function Xc(i){let{wallet:t,method:e}=await pd(i);e!=="pairing"&&await t.waitForAuthentication({}).catch(()=>{});let{publicKey:n}=await t.getPublicKey({identityKey:!0}),r=await i.challenge(n),{signature:s}=await t.createSignature({protocolID:r.protocolID??hd,keyID:r.keyID,counterparty:"anyone",data:Array.from(new TextEncoder().encode(r.message))});return{identityKey:n,signature:Array.from(s),nonce:r.nonce,method:e,wallet:t}}var bd="bwalletx-signin",md="https://bwalletx.com/get",yd="https://web.bwalletx.com",Eb={signin:"Sign in with",continue:"Continue with",connect:"Connect"};function wd(i="signin",t="bWalletX"){return`${Eb[i]??Eb.signin} ${t}`}var f2=0;function xd(i=20){let t=++f2;return`<svg viewBox="23 8 74 100" width="${Math.round(i*.74)}" height="${i}" aria-hidden="true" focusable="false"><defs><linearGradient id="bwxg${t}" gradientUnits="userSpaceOnUse" x1="0" y1="12" x2="0" y2="105"><stop offset="0" stop-color="#FFE58A"/><stop offset=".55" stop-color="#FFD24D"/><stop offset="1" stop-color="#C98F00"/></linearGradient><mask id="bwxh${t}"><rect width="140" height="140" fill="#fff"/><circle cx="60" cy="72" r="15" fill="#000"/></mask></defs><g fill="url(#bwxg${t})" mask="url(#bwxh${t})"><polygon points="45,12 45,76 27,76 27,30"/><circle cx="60" cy="72" r="33"/></g></svg>`}var Id=`
2
25
  :host{display:inline-block;vertical-align:middle;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
3
26
  :host([full-width]){display:block;width:100%}
4
27
  :host([hidden]){display:none}
@@ -44,11 +67,26 @@ button[aria-busy=true]{cursor:wait}
44
67
  .nf a:focus-visible{outline:2px solid #b45309;outline-offset:2px;border-radius:2px}
45
68
  :host([theme=dark]) .nf,:host-context(.dark) .nf{color:#a1a1aa}
46
69
  .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
47
- `;function ii(r){let e="";for(let t of r)e+=String.fromCharCode(t);return btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function On(r){let e=c=>ii(crypto.getRandomValues(new Uint8Array(c))),t=e(32),n=e(16),i=e(16),s=new Uint8Array(await crypto.subtle.digest("SHA-256",new TextEncoder().encode(t))),o=new URL(r.authorizeUrl,typeof location<"u"?location.href:void 0),a=(c,f)=>{f&&o.searchParams.set(c,f)};a("response_type","code"),a("client_id",r.clientId),a("redirect_uri",r.redirectUri),a("scope",r.scope||"openid profile"),a("state",n),a("nonce",i),a("code_challenge",ii(s)),a("code_challenge_method","S256");try{sessionStorage.setItem("bwalletx:oauth",JSON.stringify({verifier:t,state:n,nonce:i}))}catch{}return o.toString()}async function si(r,e){let t=await fetch(r,{method:"POST",credentials:"include",headers:{"content-type":"application/json"},body:JSON.stringify(e)}),n=await t.json().catch(()=>({}));if(!t.ok)throw new Error(n.error??`HTTP ${t.status}`);return n}var qs=["size","theme","label","brand","subtitle","loading","disabled","full-width","aria-label","get-url","web-url"];function Ds(){var r,e,t,n,D,Zt,lt,Ln,oi,f;return f=class extends HTMLElement{constructor(){super();P(this,n);P(this,r);P(this,e,!1);P(this,t,!1);I(this,r,this.attachShadow({mode:"open"}))}static get observedAttributes(){return qs}connectedCallback(){d(this,n,Zt).call(this)}attributeChangedCallback(){this.isConnected&&d(this,n,Zt).call(this)}get button(){return u(this,r).querySelector("button")}get notFound(){return u(this,e)}focus(g){this.button?.focus(g)}},r=new WeakMap,e=new WeakMap,t=new WeakMap,n=new WeakSet,D=function(g){return this.getAttribute(g)},Zt=function(){let g=d(this,n,D).call(this,"size")??"lg",y=d(this,n,D).call(this,"brand")==="bWallet"?"bWallet":"bWalletX",w=Hn(d(this,n,D).call(this,"label")??"signin",y),x=d(this,n,D).call(this,"subtitle"),N=x===null||x===""||x==="on"?x==="on"?"also works with bWallet":y==="bWalletX"&&(g==="lg"||g==="md")?"also works with bWallet":null:x==="off"?null:x,L=this.hasAttribute("loading")||u(this,t),_=this.hasAttribute("disabled"),R=g==="icon"?24:g==="sm"?15:g==="md"?17:20,O=d(this,n,D).call(this,"aria-label")??(N&&g!=="icon"?`${w}, ${N}`:w),V=d(this,n,D).call(this,"get-url")??Un,We=d(this,n,D).call(this,"web-url")??Cn,ee=Xe=>Xe.replace(/[&<>"]/g,Le=>({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"})[Le]),J=g==="icon"?"":`<span class="txt" part="text"><b part="label">${ee(w)}</b>${N?`<small part="subtitle">${ee(N)}</small>`:""}</span>`,Q=L?'<span class="spin" aria-hidden="true"></span>':_n(R),Te=u(this,e)?`<p class="nf" part="not-found" role="status">bWalletX wasn't found in this browser. <a href="${ee(V)}" target="_blank" rel="noopener">Get ${y}</a> or <a href="${ee(We)}" target="_blank" rel="noopener">use the web wallet</a>.</p>`:"";u(this,r).innerHTML=`<style>${zn}</style><button type="button" part="button" aria-label="${ee(O)}" title="${ee(N?`${w} (${N})`:w)}"${_?" disabled":""}${L?' aria-busy="true"':""}><span class="mark" part="mark">${Q}</span>${J}</button>${L?'<span class="sr" role="status">Connecting to bWalletX\u2026</span>':""}${Te}`,this.button.addEventListener("click",()=>{d(this,n,oi).call(this)})},lt=function(g,y,w=!1){return this.dispatchEvent(new CustomEvent(g,{detail:y,bubbles:!0,composed:!0,cancelable:w}))},Ln=function(g){I(this,t,g),d(this,n,Zt).call(this)},oi=async function(){if(this.hasAttribute("disabled")||this.hasAttribute("loading")||u(this,t)||!d(this,n,lt).call(this,"bwalletx-signin",{element:this},!0))return;let g=d(this,n,D).call(this,"href"),y=d(this,n,D).call(this,"authorize-url");if(y){location.assign(await On({authorizeUrl:y,clientId:d(this,n,D).call(this,"client-id"),redirectUri:d(this,n,D).call(this,"redirect-uri"),scope:d(this,n,D).call(this,"scope")}));return}if(g){location.assign(g);return}let w=d(this,n,D).call(this,"challenge-url");if(w){I(this,e,!1),d(this,n,Ln).call(this,!0);try{let x=Number(d(this,n,D).call(this,"discover-ms"))||1200,k=await pe(x);if(!k){I(this,e,!0),d(this,n,lt).call(this,"bwalletx-not-found");return}let N=await $t({wallet:k.wallet,challenge:R=>si(w,{identityKey:R})}),L=d(this,n,D).call(this,"verify-url"),_=L?await si(L,{identityKey:N.identityKey,nonce:N.nonce,signature:N.signature}):null;d(this,n,lt).call(this,"bwalletx-signed-in",{identityKey:N.identityKey,method:k.method,nonce:N.nonce,signature:N.signature,response:_})}catch(x){d(this,n,lt).call(this,"bwalletx-error",{error:x})}finally{d(this,n,Ln).call(this,!1)}}},f}function Gt(r=Pn){if(typeof window>"u"||typeof customElements>"u")return;let e=customElements.get(r);if(e)return e;let t=Ds();return customElements.define(r,t),t}var $s=`
70
+ `;function Tb(i){let t="";for(let e of i)t+=String.fromCharCode(e);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function Sd(i){let t=u=>Tb(crypto.getRandomValues(new Uint8Array(u))),e=t(32),n=t(16),r=t(16),s=new Uint8Array(await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e))),o=new URL(i.authorizeUrl,typeof location<"u"?location.href:void 0),c=(u,f)=>{f&&o.searchParams.set(u,f)};c("response_type","code"),c("client_id",i.clientId),c("redirect_uri",i.redirectUri),c("scope",i.scope||"openid profile"),c("state",n),c("nonce",r),c("code_challenge",Tb(s)),c("code_challenge_method","S256");try{sessionStorage.setItem("bwalletx:oauth",JSON.stringify({verifier:e,state:n,nonce:r}))}catch{}return o.toString()}async function kb(i,t){let e=await fetch(i,{method:"POST",credentials:"include",headers:{"content-type":"application/json"},body:JSON.stringify(t)}),n=await e.json().catch(()=>({}));if(!e.ok)throw new Error(n.error??`HTTP ${e.status}`);return n}var d2=["size","theme","label","brand","subtitle","loading","disabled","full-width","aria-label","get-url","web-url"];function l2(){var i,t,e,n,ve,jc,qo,gd,Ob,f;return f=class extends HTMLElement{constructor(){super();G(this,n);G(this,i);G(this,t,!1);G(this,e,!1);N(this,i,this.attachShadow({mode:"open"}))}static get observedAttributes(){return d2}connectedCallback(){a(this,n,jc).call(this)}attributeChangedCallback(){this.isConnected&&a(this,n,jc).call(this)}get button(){return w(this,i).querySelector("button")}get notFound(){return w(this,t)}focus(p){this.button?.focus(p)}},i=new WeakMap,t=new WeakMap,e=new WeakMap,n=new WeakSet,ve=function(p){return this.getAttribute(p)},jc=function(){let p=a(this,n,ve).call(this,"size")??"lg",b=a(this,n,ve).call(this,"brand")==="bWallet"?"bWallet":"bWalletX",g=wd(a(this,n,ve).call(this,"label")??"signin",b),y=a(this,n,ve).call(this,"subtitle"),C=y===null||y===""||y==="on"?y==="on"?"also works with bWallet":b==="bWalletX"&&(p==="lg"||p==="md")?"also works with bWallet":null:y==="off"?null:y,E=this.hasAttribute("loading")||w(this,e),A=this.hasAttribute("disabled"),T=p==="icon"?24:p==="sm"?15:p==="md"?17:20,B=a(this,n,ve).call(this,"aria-label")??(C&&p!=="icon"?`${g}, ${C}`:g),_=a(this,n,ve).call(this,"get-url")??md,$=a(this,n,ve).call(this,"web-url")??yd,R=q=>q.replace(/[&<>"]/g,it=>({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"})[it]),I=p==="icon"?"":`<span class="txt" part="text"><b part="label">${R(g)}</b>${C?`<small part="subtitle">${R(C)}</small>`:""}</span>`,D=E?'<span class="spin" aria-hidden="true"></span>':xd(T),U=w(this,t)?`<p class="nf" part="not-found" role="status">bWalletX wasn't found in this browser. <a href="${R(_)}" target="_blank" rel="noopener">Get ${b}</a> or <a href="${R($)}" target="_blank" rel="noopener">use the web wallet</a>.</p>`:"";w(this,i).innerHTML=`<style>${Id}</style><button type="button" part="button" aria-label="${R(B)}" title="${R(C?`${g} (${C})`:g)}"${A?" disabled":""}${E?' aria-busy="true"':""}><span class="mark" part="mark">${D}</span>${I}</button>${E?'<span class="sr" role="status">Connecting to bWalletX\u2026</span>':""}${U}`,this.button.addEventListener("click",()=>{a(this,n,Ob).call(this)})},qo=function(p,b,g=!1){return this.dispatchEvent(new CustomEvent(p,{detail:b,bubbles:!0,composed:!0,cancelable:g}))},gd=function(p){N(this,e,p),a(this,n,jc).call(this)},Ob=async function(){if(this.hasAttribute("disabled")||this.hasAttribute("loading")||w(this,e)||!a(this,n,qo).call(this,"bwalletx-signin",{element:this},!0))return;let p=a(this,n,ve).call(this,"href"),b=a(this,n,ve).call(this,"authorize-url");if(b){location.assign(await Sd({authorizeUrl:b,clientId:a(this,n,ve).call(this,"client-id"),redirectUri:a(this,n,ve).call(this,"redirect-uri"),scope:a(this,n,ve).call(this,"scope")}));return}if(p){location.assign(p);return}let g=a(this,n,ve).call(this,"challenge-url");if(g){N(this,t,!1),a(this,n,gd).call(this,!0);try{let y=Number(a(this,n,ve).call(this,"discover-ms"))||1200,v=await Mi(y);if(!v){N(this,t,!0),a(this,n,qo).call(this,"bwalletx-not-found");return}let C=await Xc({wallet:v.wallet,challenge:T=>kb(g,{identityKey:T})}),E=a(this,n,ve).call(this,"verify-url"),A=E?await kb(E,{identityKey:C.identityKey,nonce:C.nonce,signature:C.signature}):null;a(this,n,qo).call(this,"bwalletx-signed-in",{identityKey:C.identityKey,method:v.method,nonce:C.nonce,signature:C.signature,response:A})}catch(y){a(this,n,qo).call(this,"bwalletx-error",{error:y})}finally{a(this,n,gd).call(this,!1)}}},f}function Gc(i=bd){if(typeof window>"u"||typeof customElements>"u")return;let t=customElements.get(i);if(t)return t;let e=l2();return customElements.define(i,e),e}var h2=`
48
71
  .bwx-signin{display:inline-flex;align-items:center;gap:12px;min-height:48px;padding:10px 22px 10px 10px;border:0;border-radius:12px;cursor:pointer;background:linear-gradient(180deg,#fcd34d,#f59e0b);color:#000;text-align:left;font:700 16px/1.2 system-ui,-apple-system,"Segoe UI",sans-serif;box-shadow:0 8px 24px rgba(245,158,11,.2)}
49
72
  .bwx-signin:hover{background:linear-gradient(180deg,#fde68a,#fbbf24)}
50
73
  .bwx-signin:focus-visible{outline:2px solid #ffd24d;outline-offset:3px}
51
74
  .bwx-signin:disabled{opacity:.6;cursor:wait}
52
75
  .bwx-signin .bwx-mark{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:#000;flex:none}
53
- .bwx-signin small{display:block;font-size:11px;font-weight:500;color:rgba(0,0,0,.6)}`,Fn="https://bwalletx.com/logo.svg";function ai(r,e={}){let t=typeof r=="string"?document.querySelector(r):r;if(!t)throw new Error(`renderButton: no element ${String(r)}`);if(!document.getElementById("bwx-signin-css")){let c=document.createElement("style");c.id="bwx-signin-css",c.textContent=$s,document.head.appendChild(c)}let n=document.createElement("button");n.type="button",n.className="bwx-signin";let i=document.createElement("span");i.className="bwx-mark";let s=document.createElement("img");s.src=Fn,s.alt="",s.width=15,s.height=20,i.appendChild(s);let o=document.createElement("span");o.className="bwx-label",o.textContent="Sign in with bWalletX";let a=e.subtitle===void 0?"also works with bWallet":e.subtitle;if(a){let c=document.createElement("small");c.textContent=a,o.appendChild(c)}return n.append(i,o),e.onClick&&n.addEventListener("click",()=>e.onClick(n)),t.replaceChildren(n),n}Gt();return pi(Zs);})();
76
+ .bwx-signin small{display:block;font-size:11px;font-weight:500;color:rgba(0,0,0,.6)}`,vd="https://bwalletx.com/logo.svg";function Pb(i,t={}){let e=typeof i=="string"?document.querySelector(i):i;if(!e)throw new Error(`renderButton: no element ${String(i)}`);if(!document.getElementById("bwx-signin-css")){let u=document.createElement("style");u.id="bwx-signin-css",u.textContent=h2,document.head.appendChild(u)}let n=document.createElement("button");n.type="button",n.className="bwx-signin";let r=document.createElement("span");r.className="bwx-mark";let s=document.createElement("img");s.src=vd,s.alt="",s.width=15,s.height=20,r.appendChild(s);let o=document.createElement("span");o.className="bwx-label",o.textContent="Sign in with bWalletX";let c=t.subtitle===void 0?"also works with bWallet":t.subtitle;if(c){let u=document.createElement("small");u.textContent=c,o.appendChild(u)}return n.append(r,o),t.onClick&&n.addEventListener("click",()=>t.onClick(n)),e.replaceChildren(n),n}var Ad=[2,"3241645161d8"],fe=class extends Error{constructor(e,n,r=!1,s){super(n);m(this,"code",e);m(this,"maybeSent",r);m(this,"cause",s);this.name="PaymentError"}},Bb=i=>typeof i.pay=="function"&&typeof i.createAction!="function",Ed=i=>/^0[23][0-9a-fA-F]{64}$/.test(i),Td=i=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(i);function Rb(i){let t=new Uint8Array(i);return globalThis.crypto.getRandomValues(t),Cr.toBase64(Array.from(t))}function p2(i){let t=Cr.toArray(i,"utf8"),e=t.length,n=e<76?[e]:e<=255?[76,e]:[77,e&255,e>>8];return Cr.toHex([0,106,...n,...t])}var kd=(i,t)=>i.length>t?i.slice(0,t-1)+"\u2026":i,Nb=i=>kd(i.length<5?`${i} payment`.trim():i,50);async function g2(i){if(typeof i.usdPerBsv=="number")return i.usdPerBsv;try{if(typeof i.usdPerBsv=="function")return await i.usdPerBsv();let t=await(i.fetch??fetch)("https://api.whatsonchain.com/v1/bsv/main/exchangerate"),e=await t.json();if(!t.ok||!(Number(e.rate)>0))throw new Error(`status ${t.status}`);return Number(e.rate)}catch(t){throw new fe("RATE_FAILED",`Could not get the BSV/USD rate: ${t.message}`,!1,t)}}async function Od(i,t={}){if(i.sats!=null){if(!Number.isSafeInteger(i.sats)||i.sats<=0)throw new fe("BAD_REQUEST","sats must be a positive integer");return i.sats}if(i.usd!=null){if(!(i.usd>0))throw new fe("BAD_REQUEST","usd must be positive");return Math.max(1,Math.ceil(i.usd/await g2(t)*1e8))}throw new fe("BAD_REQUEST","Give sats or usd")}async function Pd(i,t,e=fetch){let[n,r]=i.split("@"),s=(l,p)=>new fe("RESOLVE_FAILED",`Could not resolve ${i}: ${l}`,!1,p),o;try{o=(await(await e(`https://${r}/.well-known/bsvalias`)).json()).capabilities}catch(l){throw s("no bsvalias document (or CORS blocked it; resolve on your server and pass resolvePaymail)",l)}let c=l=>l.replace("{alias}",encodeURIComponent(n)).replace("{domain.tld}",r),u=o?.["2a40af698840"];if(!u)throw s("it does not offer P2P payment destinations");let f;try{let l=await e(c(u),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({satoshis:t})});if(!l.ok)throw new Error(`status ${l.status}`);f=await l.json()}catch(l){throw s(l.message,l)}if(!f.outputs?.length)throw s("no outputs returned");let d=o["5f1323cddf31"];return{outputs:f.outputs.map(l=>({script:l.script,satoshis:l.satoshis})),reference:f.reference,submit:d?async l=>{await e(c(d),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({hex:l,reference:f.reference,metadata:{}})})}:void 0}}async function _b(i,t,e,n){try{return await i.createAction({description:Nb(t),outputs:e.map(r=>({lockingScript:r.script,satoshis:r.satoshis,outputDescription:Nb(r.description??"payment")})),labels:n?.length?n:void 0,options:{randomizeOutputs:!1}})}catch(r){let s=r?.message??String(r),o=/denied|reject|cancel|abort|user/i.test(s)||r?.code===4001;throw new fe(o?"WALLET_REJECTED":"WALLET_ERROR",o?"The payment was declined in the wallet.":`The wallet could not make the payment: ${s}`,!o,r)}}async function Rd(i,t,e={}){let n=(t.to??"").trim();if(!n)throw new fe("BAD_REQUEST","Give a recipient (to)");if(t.memo&&t.memo.length>1e3)throw new fe("BAD_REQUEST","memo is too long");let r=await Od(t,e);if(Bb(i))return i.pay({...t,to:n,sats:r});let s,o,c;if(Ed(n)){let d=Rb(8),l=Rb(8),p,b;try{({publicKey:p}=await i.getPublicKey({protocolID:Ad,keyID:`${d} ${l}`,counterparty:n.toLowerCase()})),{publicKey:b}=await i.getPublicKey({identityKey:!0})}catch(g){throw new fe("WALLET_ERROR",`The wallet could not derive the payment key: ${g.message}`,!1,g)}s=[{script:new Xn().lock(Vt.fromString(p).toHash()).toHex(),satoshis:r,description:"payment"}],o={senderIdentityKey:b,derivationPrefix:d,derivationSuffix:l,outputIndex:0}}else if(Td(n)){let d=await(e.resolvePaymail??((l,p)=>Pd(l,p,e.fetch??fetch)))(n,r);s=d.outputs,c=d.submit}else try{s=[{script:new Xn().lock(n).toHex(),satoshis:r,description:"payment"}]}catch{throw new fe("BAD_REQUEST",`Not a paymail, address or identity key: ${n}`)}t.memo&&t.memoOnChain&&(s=[...s,{script:p2(t.memo),satoshis:0,description:"memo"}]);let u=await _b(i,t.memo||`Pay ${kd(n,30)}`,s,t.labels);if(!u.txid)throw new fe("WALLET_ERROR","The wallet did not return a txid",!0);let f=u.tx?Array.from(u.tx):void 0;return c&&f&&await c(Ue.fromAtomicBEEF(f).toHex()).catch(()=>{}),{txid:u.txid,tx:f,sats:r,outputs:s,remittance:o}}function Cb(i,t,e={}){return Rd(i,{memo:"Tip",...t,labels:[...t.labels??[],"tip"]},e)}async function Lb(i,t){if(Bb(i))throw new fe("NOT_SUPPORTED","This wallet cannot buy tokens. Use a BRC-100 wallet such as bWalletX.");let e=await t.quote({token:t.token,amount:t.amount});if(!e?.outputs?.length)throw new fe("BAD_REQUEST","The quote returned no outputs");let n=e.outputs.reduce((o,c)=>o+c.satoshis,0),r=await _b(i,e.description??`Buy ${kd(t.token,30)}`,e.outputs,[...t.labels??[],"token-buy"]);if(!r.txid)throw new fe("WALLET_ERROR","The wallet did not return a txid",!0);let s={txid:r.txid,tx:r.tx?Array.from(r.tx):void 0,sats:n,outputs:e.outputs};return await e.onPaid?.(s),s}async function Mb(i,t){await i.waitForAuthentication({}).catch(()=>{});let{publicKey:e}=await i.getPublicKey({identityKey:!0});return{wallet:i,payer:i,identityKey:e,optionId:t.id,kind:t.kind}}function Es(i,t){let e={id:t.id,name:t.name,icon:t.icon,rdns:t.rdns,kind:"brc100",isBwalletX:t.isBwalletX??!1,connect:()=>Mb(i,e)};return e}function Nd(i){let t={id:"bwalletx-pairing",name:"bWalletX on your phone",kind:"pairing",isBwalletX:!0,async connect(){let e=typeof i=="function"?i():i,n=await As(e)??await vs(e);return Mb(n,t)}};return t}function Db(i){let t={id:"handcash",name:"HandCash",icon:i.icon,kind:"handcash",isBwalletX:!1,async connect(){let e=await i.login();return{wallet:null,payer:i.pay?{pay:i.pay}:null,identityKey:e.identityKey??null,handle:e.handle,paymail:e.paymail??`${e.handle.replace(/^\$/,"")}@handcash.io`,optionId:t.id,kind:"handcash",transitional:!0}}};return t}var b2={[Pr]:"bWalletX","space.bwallet.mobile":"bWalletX"};async function Ub(i,t){try{let e=new Ss(i);return await Promise.race([e.isAuthenticated({}).then(()=>!0),new Promise(r=>setTimeout(()=>r(!1),t))])?e:null}catch{return null}}async function Hb(i={}){let t=[],e=i.ms??1200;if(typeof window<"u"){let r=new Map,s=d=>{let l=d.detail;if(!l?.wallet)return;let p=l.info?.rdns??l.info?.uuid??`wallet-${r.size}`;if(r.has(p))return;let b=ks.includes(p);r.set(p,Es(l.wallet,{id:p,rdns:p,name:b2[p]??l.info?.name??p,icon:l.info?.icon,isBwalletX:b}))};window.addEventListener("brc100:announceWallet",s),window.dispatchEvent(new Event("brc100:requestWallet"));let o=i.probeLocal?Promise.all([Ub("json-api",e),Ub("Cicada",e)]):Promise.resolve([null,null]);await new Promise(d=>setTimeout(d,e)),window.removeEventListener("brc100:announceWallet",s),t.push(...r.values());let c=window.CWI;c&&![...r.values()].some(d=>d.rdns==="space.bwallet.mobile")&&t.push(Es(c,{id:"window.CWI",name:"This app\u2019s wallet",isBwalletX:!1}));let[u,f]=await o;u&&t.push(Es(u,{id:"localhost:3321",name:"Desktop wallet (localhost:3321)"})),f&&t.push(Es(f,{id:"localhost:3301",name:"Desktop wallet (localhost:3301)"}))}i.pairing&&t.push(Nd(i.pairing)),t.push(...i.extra??[]);let n=r=>r.isBwalletX?0:r.kind==="handcash"?2:1;return t.map((r,s)=>({w:r,i:s})).sort((r,s)=>n(r.w)-n(s.w)||r.i-s.i).map(r=>r.w)}var Vb=em(Wb(),1),m2=`
77
+ .bwx-ov{position:fixed;inset:0;z-index:2147483000;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;padding:16px;font:15px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
78
+ .bwx-box{background:#0b0b0b;color:#f4f1e8;border:1px solid #3a3220;border-radius:16px;width:min(360px,100%);padding:20px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
79
+ .bwx-box h2{margin:0 0 6px;font-size:18px;color:#e8c766}
80
+ .bwx-box p{margin:0 0 14px;color:#bdb6a3;font-size:14px}
81
+ .bwx-qr{background:#fff;border-radius:12px;padding:12px;display:flex;justify-content:center}
82
+ .bwx-qr svg{width:100%;height:auto;max-width:260px}
83
+ .bwx-code{margin:14px 0 0;text-align:center;font-size:28px;letter-spacing:.3em;color:#e8c766;font-variant-numeric:tabular-nums}
84
+ .bwx-row{display:flex;gap:8px;margin-top:14px}
85
+ .bwx-btn{flex:1;border:1px solid #3a3220;background:#15130e;color:#f4f1e8;border-radius:10px;padding:10px 12px;font:inherit;cursor:pointer}
86
+ .bwx-btn:hover{border-color:#e8c766}
87
+ .bwx-list{display:flex;flex-direction:column;gap:8px}
88
+ .bwx-opt{display:flex;align-items:center;gap:10px;text-align:left}
89
+ .bwx-opt img{width:24px;height:24px;border-radius:6px}
90
+ .bwx-tag{margin-left:auto;font-size:11px;color:#8d866f}
91
+ `;function Kb(){let i=document.createElement("div");i.className="bwx-ov",i.setAttribute("role","dialog"),i.setAttribute("aria-modal","true");let t=document.createElement("style");t.textContent=m2;let e=document.createElement("div");return e.className="bwx-box",i.append(t,e),document.body.appendChild(i),{root:i,box:e,close:()=>i.remove()}}function Ae(i,t,e){let n=document.createElement(i);return t&&(n.className=t),e!=null&&(n.textContent=e),n}function Bd(i){let t=(0,Vb.default)(0,"M");return t.addData(i),t.make(),t.createSvgTag({cellSize:4,margin:2,scalable:!0})}function zb(i={}){let t=new AbortController,e=null,n=null,r=()=>{e?.close(),e=null};return t.signal.addEventListener("abort",r),{signal:t.signal,close:r,onLink(s){if(typeof document>"u")return;r(),e=Kb();let o=Ae("h2","",i.title??"Connect bWalletX"),c=Ae("p","","Scan with bWalletX on your phone, or paste the link into web.bwalletx.com."),u=Ae("div","bwx-qr");u.innerHTML=Bd(s),n=Ae("div","bwx-code",""),n.setAttribute("aria-live","polite");let f=Ae("div","bwx-row"),d=Ae("button","bwx-btn","Copy link");d.onclick=()=>{navigator.clipboard?.writeText(s).then(()=>d.textContent="Copied")};let l=Ae("button","bwx-btn","Cancel");l.onclick=()=>{i.onCancel?.(),t.abort()},f.append(d,l),e.box.append(o,c,u,n,f)},onCode(s){if(n){n.textContent=s;let o=e?.box.querySelector("p");o&&(o.textContent="Check bWalletX shows the same code, then tap Connect.")}}}}function Xb(i,t={}){return typeof document>"u"?Promise.resolve(null):new Promise(e=>{let n=Kb(),r=c=>{n.close(),e(c)};n.box.append(Ae("h2","",t.title??"Choose a wallet")),i.length||n.box.append(Ae("p","","No wallet found. Get bWalletX at bwalletx.com."));let s=Ae("div","bwx-list");for(let c of i){let u=Ae("button","bwx-btn bwx-opt");if(c.icon){let f=Ae("img");f.src=c.icon,f.alt="",u.append(f)}u.append(Ae("span","",c.name)),c.kind==="handcash"&&u.append(Ae("span","bwx-tag","until BRC-100")),u.onclick=()=>r(c),s.append(u)}let o=Ae("button","bwx-btn","Cancel");o.onclick=()=>r(null),n.root.onclick=c=>c.target===n.root&&r(null),n.box.append(s,Ae("div","bwx-row")),n.box.lastChild.append(o)})}Gc();return nm(y2);})();
54
92
  //# sourceMappingURL=bwalletx-connect.global.js.map