openclaw-arcade-plugin 0.2.53 → 0.2.55
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.
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1372,7 +1372,7 @@ code: ${t.code}
|
|
|
1372
1372
|
Description: ${t.description}
|
|
1373
1373
|
|
|
1374
1374
|
|
|
1375
|
-
`)}}};Jf.MonitorDaemon=A3});var EG=b(Dv=>{"use strict";Object.defineProperty(Dv,"__esModule",{value:!0});Dv.TaskSyncWhenIdle=void 0;var bTe=ui(),Rv=class r extends bTe.WalletMonitorTask{constructor(e,t=1e3*60*1){super(e,r.taskName),this.triggerMsecs=t}trigger(e){let t=this.storage;return{run:!1}}async runTask(){return""}};Dv.TaskSyncWhenIdle=Rv;Rv.taskName="SyncWhenIdle"});var CG=b(mt=>{"use strict";var vTe=mt&&mt.__createBinding||(Object.create?(function(r,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,i,n)}):(function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]})),Ii=mt&&mt.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&vTe(e,r,t)};Object.defineProperty(mt,"__esModule",{value:!0});Ii(ui(),mt);Ii(q2(),mt);Ii(ov(),mt);Ii(j2(),mt);Ii(O2(),mt);Ii(R2(),mt);Ii(L2(),mt);Ii(P2(),mt);Ii(F2(),mt);Ii(Q2(),mt);Ii(U2(),mt);Ii(J2(),mt);Ii(z2(),mt);Ii(N2(),mt);Ii(G2(),mt);Ii(V2(),mt);Ii(EG(),mt);Ii(W2(),mt)});var _G=b(Ir=>{"use strict";var kG=Ir&&Ir.__createBinding||(Object.create?(function(r,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,i,n)}):(function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]})),xTe=Ir&&Ir.__setModuleDefault||(Object.create?(function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}):function(r,e){r.default=e}),SG=Ir&&Ir.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&kG(e,r,t)},BTe=Ir&&Ir.__importStar||(function(){var r=function(e){return r=Object.getOwnPropertyNames||function(t){var i=[];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[i.length]=n);return i},r(e)};return function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var i=r(e),n=0;n<i.length;n++)i[n]!=="default"&&kG(t,e,i[n]);return xTe(t,e),t}})();Object.defineProperty(Ir,"__esModule",{value:!0});Ir.Task=void 0;SG(tr(),Ir);SG(BG(),Ir);Ir.Task=BTe(CG())});var OG=b(Ov=>{"use strict";Object.defineProperty(Ov,"__esModule",{value:!0});Ov.SetupClient=void 0;var no=se(),ETe=_2(),CTe=jT(),TG=eA(),g3=Qn(),QG=tr(),NG=_u(),RG=sA(),kTe=ae(),DG=Cy(),m3=class r{static async createWallet(e){let t=e.chain,i=no.PrivateKey.fromHex(e.rootKeyHex),n=i.toPublicKey().toString(),s=new no.CachedKeyDeriver(i),a=new TG.WalletStorageManager(n,e.active,e.backups);a.canMakeAvailable()&&await a.makeAvailable();let o=g3.Services.createDefaultOptions(t);o.taalApiKey=e.taalApiKey;let c=new g3.Services(o),u=QG.Monitor.createDefaultWalletMonitorOptions(t,a,c,void 0,"default"),l=new QG.Monitor(u),d=e.privilegedKeyGetter?new NG.PrivilegedKeyManager(e.privilegedKeyGetter):void 0,f=new RG.Wallet({chain:t,keyDeriver:s,storage:a,services:c,monitor:l,privilegedKeyManager:d});return{rootKey:i,identityKey:n,keyDeriver:s,chain:t,storage:a,services:c,monitor:l,wallet:f}}static async createWalletClientNoEnv(e){let t=e.chain,i=e.storageUrl||`https://${e.chain!=="main"?"staging-":""}storage.babbage.systems`,n=no.PrivateKey.fromHex(e.rootKeyHex),s=new no.CachedKeyDeriver(n),a=new TG.WalletStorageManager(s.identityKey),o=new g3.Services(t),c=e.privilegedKeyGetter?new NG.PrivilegedKeyManager(e.privilegedKeyGetter):void 0,u=new RG.Wallet({chain:t,keyDeriver:s,storage:a,services:o,privilegedKeyManager:c}),l=new DG.StorageClient(u,i);return await a.addWalletStorageProvider(l),await a.makeAvailable(),u}static async createWalletClient(e){let t=await r.createWallet(e),i=e.endpointUrl||`https://${e.chain!=="main"?"staging-":""}storage.babbage.systems`,n=new DG.StorageClient(t.wallet,i);return await t.storage.addWalletStorageProvider(n),await t.storage.makeAvailable(),{...t,endpointUrl:i}}static getKeyPair(e){e===void 0?e=no.PrivateKey.fromRandom():typeof e=="string"&&(e=new no.PrivateKey(e,"hex"));let t=no.PublicKey.fromPrivateKey(e),i=t.toAddress();return{privateKey:e,publicKey:t,address:i}}static getLockP2PKH(e){return new no.P2PKH().lock(e)}static getUnlockP2PKH(e,t){let i=new no.P2PKH,n=r.getLockP2PKH(r.getKeyPair(e).address);return i.unlock(e,"all",!1,t,n)}static createP2PKHOutputs(e){let t=[],i=e.length;for(let n=0;n<i;n++){let s=e[n];t.push({basket:s.basket,tags:s.tags,satoshis:s.satoshis,lockingScript:r.getLockP2PKH(s.address).toHex(),outputDescription:s.outputDescription||`p2pkh ${n}`})}return t}static async createP2PKHOutputsAction(e,t,i){let n=r.createP2PKHOutputs(t),s={description:"createP2PKHOutputs",outputs:n,options:{...i,randomizeOutputs:!1}},a=await e.createAction(s),o;return a.txid&&(o=n.map((c,u)=>`${a.txid}.${u}`)),{cr:a,outpoints:o}}static async fundWalletFromP2PKHOutpoints(e,t,i,n){return(0,ETe.fundWalletFromP2PKHOutpoints)(e,t,i,r.getUnlockP2PKH.bind(r),n)}static async createWalletIdb(e){let t=await r.createWallet(e),i=await r.createStorageIdb(e);await t.storage.addWalletStorageProvider(i);let{user:n,isNew:s}=await i.findOrInsertUser(t.identityKey),a=n.userId;return{...t,activeStorage:i,userId:a}}static async createStorageIdb(e){let t=new CTe.StorageIdb({chain:e.chain,commissionSatoshis:0,commissionPubKeyHex:void 0,feeModel:{model:"sat/kb",value:1}});return await t.migrate(e.databaseName,(0,kTe.randomBytesHex)(33)),await t.makeAvailable(),t}};Ov.SetupClient=m3});var PG=b(FG=>{"use strict";Object.defineProperty(FG,"__esModule",{value:!0})});var HG=b((Fv,UG)=>{(function(r,e){typeof Fv=="object"&&typeof UG<"u"?e(Fv):typeof define=="function"&&define.amd?define(["exports"],e):(r=typeof globalThis<"u"?globalThis:r||self,e(r.hashwasm={}))})(Fv,(function(r){"use strict";var e="adler32",t="AGFzbQEAAAABDANgAAF/YAAAYAF/AAMHBgABAgEAAgUEAQECAgYOAn8BQYCJBQt/AEGACAsHcAgGbWVtb3J5AgAOSGFzaF9HZXRCdWZmZXIAAAlIYXNoX0luaXQAAQtIYXNoX1VwZGF0ZQACCkhhc2hfRmluYWwAAw1IYXNoX0dldFN0YXRlAAQOSGFzaF9DYWxjdWxhdGUABQpTVEFURV9TSVpFAwEK6wkGBQBBgAkLCgBBAEEBNgKECAvjCAEHf0EAKAKECCIBQf//A3EhAiABQRB2IQMCQAJAIABBAUcNACACQQAtAIAJaiIBQY+AfGogASABQfD/A0sbIgEgA2oiBEEQdCIFQYCAPGogBSAEQfD/A0sbIAFyIQEMAQsCQAJAAkACQAJAIABBEEkNAEGACSEGIABBsCtJDQFBgAkhBgNAQQAhBQNAIAYgBWoiASgCACIEQf8BcSACaiICIANqIAIgBEEIdkH/AXFqIgJqIAIgBEEQdkH/AXFqIgJqIAIgBEEYdmoiAmogAiABQQRqKAIAIgRB/wFxaiICaiACIARBCHZB/wFxaiICaiACIARBEHZB/wFxaiICaiACIARBGHZqIgJqIAIgAUEIaigCACIEQf8BcWoiAmogAiAEQQh2Qf8BcWoiAmogAiAEQRB2Qf8BcWoiAmogAiAEQRh2aiIEaiAEIAFBDGooAgAiAUH/AXFqIgRqIAQgAUEIdkH/AXFqIgRqIAQgAUEQdkH/AXFqIgRqIAQgAUEYdmoiAmohAyAFQRBqIgVBsCtHDQALIANB8f8DcCEDIAJB8f8DcCECIAZBsCtqIQYgAEHQVGoiAEGvK0sNAAsgAEUNBCAAQQ9LDQEMAgsCQCAARQ0AAkACQCAAQQNxIgUNAEGACSEBIAAhBAwBCyAAQXxxIQRBACEBA0AgAiABQYAJai0AAGoiAiADaiEDIAUgAUEBaiIBRw0ACyAFQYAJaiEBCyAAQQRJDQADQCACIAEtAABqIgUgAS0AAWoiBiABLQACaiIAIAFBA2otAABqIgIgACAGIAUgA2pqamohAyABQQRqIQEgBEF8aiIEDQALCyACQY+AfGogAiACQfD/A0sbIANB8f8DcEEQdHIhAQwECwNAIAYoAgAiAUH/AXEgAmoiBCADaiAEIAFBCHZB/wFxaiIEaiAEIAFBEHZB/wFxaiIEaiAEIAFBGHZqIgRqIAQgBkEEaigCACIBQf8BcWoiBGogBCABQQh2Qf8BcWoiBGogBCABQRB2Qf8BcWoiBGogBCABQRh2aiIEaiAEIAZBCGooAgAiAUH/AXFqIgRqIAQgAUEIdkH/AXFqIgRqIAQgAUEQdkH/AXFqIgRqIAQgAUEYdmoiBGogBCAGQQxqKAIAIgFB/wFxaiIEaiAEIAFBCHZB/wFxaiIEaiAEIAFBEHZB/wFxaiIEaiAEIAFBGHZqIgJqIQMgBkEQaiEGIABBcGoiAEEPSw0ACyAARQ0BCyAAQX9qIQcCQCAAQQNxIgVFDQAgAEF8cSEAIAUhBCAGIQEDQCACIAEtAABqIgIgA2ohAyABQQFqIQEgBEF/aiIEDQALIAYgBWohBgsgB0EDSQ0AA0AgAiAGLQAAaiIBIAYtAAFqIgQgBi0AAmoiBSAGQQNqLQAAaiICIAUgBCABIANqampqIQMgBkEEaiEGIABBfGoiAA0ACwsgA0Hx/wNwIQMgAkHx/wNwIQILIAIgA0EQdHIhAQtBACABNgKECAsxAQF/QQBBACgChAgiAEEYdCAAQYD+A3FBCHRyIABBCHZBgP4DcSAAQRh2cnI2AoAJCwUAQYQICzsAQQBBATYChAggABACQQBBACgChAgiAEEYdCAAQYD+A3FBCHRyIABBCHZBgP4DcSAAQRh2cnI2AoAJCwsVAgBBgAgLBAQAAAAAQYQICwQBAAAA",i="02ddbd17",n={name:e,data:t,hash:i};function s(w,x,C,_){function K(J){return J instanceof C?J:new C(function(te){te(J)})}return new(C||(C=Promise))(function(J,te){function re(Pt){try{kt(_.next(Pt))}catch(Jt){te(Jt)}}function ye(Pt){try{kt(_.throw(Pt))}catch(Jt){te(Jt)}}function kt(Pt){Pt.done?J(Pt.value):K(Pt.value).then(re,ye)}kt((_=_.apply(w,x||[])).next())})}typeof SuppressedError=="function"&&SuppressedError;class a{constructor(){this.mutex=Promise.resolve()}lock(){let x=()=>{};return this.mutex=this.mutex.then(()=>new Promise(x)),new Promise(C=>{x=C})}dispatch(x){return s(this,void 0,void 0,function*(){let C=yield this.lock();try{return yield Promise.resolve(x())}finally{C()}})}}var o;function c(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global}let u=c(),l=(o=u.Buffer)!==null&&o!==void 0?o:null,d=u.TextEncoder?new u.TextEncoder:null;function f(w,x){return String.fromCharCode(...w.subarray(0,x))}function h(w,x){return(w&15)+(w>>6|w>>3&8)<<4|(x&15)+(x>>6|x>>3&8)}function p(w,x){let C=x.length>>1;for(let _=0;_<C;_++){let K=_<<1;w[_]=h(x.charCodeAt(K),x.charCodeAt(K+1))}}function A(w,x){if(w.length!==x.length*2)return!1;for(let C=0;C<x.length;C++){let _=C<<1;if(x[C]!==h(w.charCodeAt(_),w.charCodeAt(_+1)))return!1}return!0}let g=87,m=48;function I(w,x,C){let _=0;for(let K=0;K<C;K++){let J=x[K]>>>4;w[_++]=J>9?J+g:J+m,J=x[K]&15,w[_++]=J>9?J+g:J+m}return String.fromCharCode.apply(null,w)}let y=l!==null?w=>{if(typeof w=="string"){let x=l.from(w,"utf8");return new Uint8Array(x.buffer,x.byteOffset,x.length)}if(l.isBuffer(w))return new Uint8Array(w.buffer,w.byteOffset,w.length);if(ArrayBuffer.isView(w))return new Uint8Array(w.buffer,w.byteOffset,w.byteLength);throw new Error("Invalid data type!")}:w=>{if(typeof w=="string")return d.encode(w);if(ArrayBuffer.isView(w))return new Uint8Array(w.buffer,w.byteOffset,w.byteLength);throw new Error("Invalid data type!")},v="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",B=new Uint8Array(256);for(let w=0;w<v.length;w++)B[v.charCodeAt(w)]=w;function E(w,x=!0){let C=w.length,_=C%3,K=[],J=C-_;for(let te=0;te<J;te+=3){let re=(w[te]<<16&16711680)+(w[te+1]<<8&65280)+(w[te+2]&255),ye=v.charAt(re>>18&63)+v.charAt(re>>12&63)+v.charAt(re>>6&63)+v.charAt(re&63);K.push(ye)}if(_===1){let te=w[C-1],re=v.charAt(te>>2),ye=v.charAt(te<<4&63);K.push(`${re}${ye}`),x&&K.push("==")}else if(_===2){let te=(w[C-2]<<8)+w[C-1],re=v.charAt(te>>10),ye=v.charAt(te>>4&63),kt=v.charAt(te<<2&63);K.push(`${re}${ye}${kt}`),x&&K.push("=")}return K.join("")}function k(w){let x=Math.floor(w.length*.75),C=w.length;return w[C-1]==="="&&(x-=1,w[C-2]==="="&&(x-=1)),x}function T(w){let x=k(w),C=w.length,_=new Uint8Array(x),K=0;for(let J=0;J<C;J+=4){let te=B[w.charCodeAt(J)],re=B[w.charCodeAt(J+1)],ye=B[w.charCodeAt(J+2)],kt=B[w.charCodeAt(J+3)];_[K]=te<<2|re>>4,K+=1,_[K]=(re&15)<<4|ye>>2,K+=1,_[K]=(ye&3)<<6|kt&63,K+=1}return _}let D=16*1024,j=4,H=new a,W=new Map;function M(w,x){return s(this,void 0,void 0,function*(){let C=null,_=null,K=!1;if(typeof WebAssembly>"u")throw new Error("WebAssembly is not supported in this environment!");let J=(we,Re=0)=>{_.set(we,Re)},te=()=>_,re=()=>C.exports,ye=we=>{C.exports.Hash_SetMemorySize(we);let Re=C.exports.Hash_GetBuffer(),Ki=C.exports.memory.buffer;_=new Uint8Array(Ki,Re,we)},kt=()=>new DataView(C.exports.memory.buffer).getUint32(C.exports.STATE_SIZE,!0),Pt=H.dispatch(()=>s(this,void 0,void 0,function*(){if(!W.has(w.name)){let Re=T(w.data),Ki=WebAssembly.compile(Re);W.set(w.name,Ki)}let we=yield W.get(w.name);C=yield WebAssembly.instantiate(we,{})})),Jt=()=>s(this,void 0,void 0,function*(){C||(yield Pt);let we=C.exports.Hash_GetBuffer(),Re=C.exports.memory.buffer;_=new Uint8Array(Re,we,D)}),St=(we=null)=>{K=!0,C.exports.Hash_Init(we)},$r=we=>{let Re=0;for(;Re<we.length;){let Ki=we.subarray(Re,Re+D);Re+=Ki.length,_.set(Ki),C.exports.Hash_Update(Ki.length)}},Si=we=>{if(!K)throw new Error("update() called before init()");let Re=y(we);$r(Re)},fh=new Uint8Array(x*2),Ao=(we,Re=null)=>{if(!K)throw new Error("digest() called before init()");return K=!1,C.exports.Hash_Final(Re),we==="binary"?_.slice(0,x):I(fh,_,x)},Ln=()=>{if(!K)throw new Error("save() can only be called after init() and before digest()");let we=C.exports.Hash_GetState(),Re=kt(),Ki=C.exports.memory.buffer,Rc=new Uint8Array(Ki,we,Re),hh=new Uint8Array(j+Re);return p(hh,w.hash),hh.set(Rc,j),hh},go=we=>{if(!(we instanceof Uint8Array))throw new Error("load() expects an Uint8Array generated by save()");let Re=C.exports.Hash_GetState(),Ki=kt(),Rc=j+Ki,hh=C.exports.memory.buffer;if(we.length!==Rc)throw new Error(`Bad state length (expected ${Rc} bytes, got ${we.length})`);if(!A(w.hash,we.subarray(0,j)))throw new Error("This state was written by an incompatible hash implementation");let dX=we.subarray(j);new Uint8Array(hh,Re,Ki).set(dX),K=!0},$l=we=>typeof we=="string"?we.length<D/4:we.byteLength<D,xa=$l;switch(w.name){case"argon2":case"scrypt":xa=()=>!0;break;case"blake2b":case"blake2s":xa=(we,Re)=>Re<=512&&$l(we);break;case"blake3":xa=(we,Re)=>Re===0&&$l(we);break;case"xxhash64":case"xxhash3":case"xxhash128":case"crc64":xa=()=>!1;break}let mo=(we,Re=null,Ki=null)=>{if(!xa(we,Re))return St(Re),Si(we),Ao("hex",Ki);let Rc=y(we);return _.set(Rc),C.exports.Hash_Calculate(Rc.length,Re,Ki),I(fh,_,x)};return yield Jt(),{getMemory:te,writeMemory:J,getExports:re,setMemorySize:ye,init:St,update:Si,digest:Ao,save:Ln,load:go,calculate:mo,hashLength:x}})}function Y(w,x,C){return s(this,void 0,void 0,function*(){let _=yield w.lock(),K=yield M(x,C);return _(),K})}let F=new a,P=null;function G(w){if(P===null)return Y(F,n,4).then(x=>(P=x,P.calculate(w)));try{let x=P.calculate(w);return Promise.resolve(x)}catch(x){return Promise.reject(x)}}function q(){return M(n,4).then(w=>{w.init();let x={init:()=>(w.init(),x),update:C=>(w.update(C),x),digest:C=>w.digest(C),save:()=>w.save(),load:C=>(w.load(C),x),blockSize:4,digestSize:4};return x})}var ne="argon2",fe="AGFzbQEAAAABKQVgAX8Bf2AAAX9gEH9/f39/f39/f39/f39/f38AYAR/f39/AGACf38AAwYFAAECAwQFBgEBAoCAAgYIAX8BQZCoBAsHQQQGbWVtb3J5AgASSGFzaF9TZXRNZW1vcnlTaXplAAAOSGFzaF9HZXRCdWZmZXIAAQ5IYXNoX0NhbGN1bGF0ZQAECvEyBVgBAn9BACEBAkAgAEEAKAKICCICRg0AAkAgACACayIAQRB2IABBgIB8cSAASWoiAEAAQX9HDQBB/wHADwtBACEBQQBBACkDiAggAEEQdK18NwOICAsgAcALcAECfwJAQQAoAoAIIgANAEEAPwBBEHQiADYCgAhBACgCiAgiAUGAgCBGDQACQEGAgCAgAWsiAEEQdiAAQYCAfHEgAElqIgBAAEF/Rw0AQQAPC0EAQQApA4gIIABBEHStfDcDiAhBACgCgAghAAsgAAvcDgECfiAAIAQpAwAiECAAKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAMIBAgDCkDAIVCIIkiEDcDACAIIBAgCCkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgBCAQIAQpAwCFQiiJIhA3AwAgACAQIAApAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIAwgECAMKQMAhUIwiSIQNwMAIAggECAIKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAEIBAgBCkDAIVCAYk3AwAgASAFKQMAIhAgASkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgDSAQIA0pAwCFQiCJIhA3AwAgCSAQIAkpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAUgECAFKQMAhUIoiSIQNwMAIAEgECABKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACANIBAgDSkDAIVCMIkiEDcDACAJIBAgCSkDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgBSAQIAUpAwCFQgGJNwMAIAIgBikDACIQIAIpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIA4gECAOKQMAhUIgiSIQNwMAIAogECAKKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAGIBAgBikDAIVCKIkiEDcDACACIBAgAikDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgDiAQIA4pAwCFQjCJIhA3AwAgCiAQIAopAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIAYgECAGKQMAhUIBiTcDACADIAcpAwAiECADKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAPIBAgDykDAIVCIIkiEDcDACALIBAgCykDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgByAQIAcpAwCFQiiJIhA3AwAgAyAQIAMpAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIA8gECAPKQMAhUIwiSIQNwMAIAsgECALKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAHIBAgBykDAIVCAYk3AwAgACAFKQMAIhAgACkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgDyAQIA8pAwCFQiCJIhA3AwAgCiAQIAopAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAUgECAFKQMAhUIoiSIQNwMAIAAgECAAKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAPIBAgDykDAIVCMIkiEDcDACAKIBAgCikDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgBSAQIAUpAwCFQgGJNwMAIAEgBikDACIQIAEpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAwgECAMKQMAhUIgiSIQNwMAIAsgECALKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAGIBAgBikDAIVCKIkiEDcDACABIBAgASkDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgDCAQIAwpAwCFQjCJIhA3AwAgCyAQIAspAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIAYgECAGKQMAhUIBiTcDACACIAcpAwAiECACKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACANIBAgDSkDAIVCIIkiEDcDACAIIBAgCCkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgByAQIAcpAwCFQiiJIhA3AwAgAiAQIAIpAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIA0gECANKQMAhUIwiSIQNwMAIAggECAIKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAHIBAgBykDAIVCAYk3AwAgAyAEKQMAIhAgAykDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgDiAQIA4pAwCFQiCJIhA3AwAgCSAQIAkpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAQgECAEKQMAhUIoiSIQNwMAIAMgECADKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAOIBAgDikDAIVCMIkiEDcDACAJIBAgCSkDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgBCAQIAQpAwCFQgGJNwMAC98aAQN/QQAhBEEAIAIpAwAgASkDAIU3A5AIQQAgAikDCCABKQMIhTcDmAhBACACKQMQIAEpAxCFNwOgCEEAIAIpAxggASkDGIU3A6gIQQAgAikDICABKQMghTcDsAhBACACKQMoIAEpAyiFNwO4CEEAIAIpAzAgASkDMIU3A8AIQQAgAikDOCABKQM4hTcDyAhBACACKQNAIAEpA0CFNwPQCEEAIAIpA0ggASkDSIU3A9gIQQAgAikDUCABKQNQhTcD4AhBACACKQNYIAEpA1iFNwPoCEEAIAIpA2AgASkDYIU3A/AIQQAgAikDaCABKQNohTcD+AhBACACKQNwIAEpA3CFNwOACUEAIAIpA3ggASkDeIU3A4gJQQAgAikDgAEgASkDgAGFNwOQCUEAIAIpA4gBIAEpA4gBhTcDmAlBACACKQOQASABKQOQAYU3A6AJQQAgAikDmAEgASkDmAGFNwOoCUEAIAIpA6ABIAEpA6ABhTcDsAlBACACKQOoASABKQOoAYU3A7gJQQAgAikDsAEgASkDsAGFNwPACUEAIAIpA7gBIAEpA7gBhTcDyAlBACACKQPAASABKQPAAYU3A9AJQQAgAikDyAEgASkD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",_e="e4cdc523",Ve={name:ne,data:fe,hash:_e},ki="blake2b",Mn="AGFzbQEAAAABEQRgAAF/YAJ/fwBgAX8AYAAAAwoJAAECAwECAgABBQQBAQICBg4CfwFBsIsFC38AQYAICwdwCAZtZW1vcnkCAA5IYXNoX0dldEJ1ZmZlcgAACkhhc2hfRmluYWwAAwlIYXNoX0luaXQABQtIYXNoX1VwZGF0ZQAGDUhhc2hfR2V0U3RhdGUABw5IYXNoX0NhbGN1bGF0ZQAIClNUQVRFX1NJWkUDAQrTOAkFAEGACQvrAgIFfwF+AkAgAUEBSA0AAkACQAJAIAFBgAFBACgC4IoBIgJrIgNKDQAgASEEDAELQQBBADYC4IoBAkAgAkH/AEoNACACQeCJAWohBSAAIQRBACEGA0AgBSAELQAAOgAAIARBAWohBCAFQQFqIQUgAyAGQQFqIgZB/wFxSg0ACwtBAEEAKQPAiQEiB0KAAXw3A8CJAUEAQQApA8iJASAHQv9+Vq18NwPIiQFB4IkBEAIgACADaiEAAkAgASADayIEQYEBSA0AIAIgAWohBQNAQQBBACkDwIkBIgdCgAF8NwPAiQFBAEEAKQPIiQEgB0L/flatfDcDyIkBIAAQAiAAQYABaiEAIAVBgH9qIgVBgAJLDQALIAVBgH9qIQQMAQsgBEEATA0BC0EAIQUDQCAFQQAoAuCKAWpB4IkBaiAAIAVqLQAAOgAAIAQgBUEBaiIFQf8BcUoNAAsLQQBBACgC4IoBIARqNgLgigELC78uASR+QQBBACkD0IkBQQApA7CJASIBQQApA5CJAXwgACkDICICfCIDhULr+obav7X2wR+FQiCJIgRCq/DT9K/uvLc8fCIFIAGFQiiJIgYgA3wgACkDKCIBfCIHIASFQjCJIgggBXwiCSAGhUIBiSIKQQApA8iJAUEAKQOoiQEiBEEAKQOIiQF8IAApAxAiA3wiBYVCn9j52cKR2oKbf4VCIIkiC0K7zqqm2NDrs7t/fCIMIASFQiiJIg0gBXwgACkDGCIEfCIOfCAAKQNQIgV8Ig9BACkDwIkBQQApA6CJASIQQQApA4CJASIRfCAAKQMAIgZ8IhKFQtGFmu/6z5SH0QCFQiCJIhNCiJLznf/M+YTqAHwiFCAQhUIoiSIVIBJ8IAApAwgiEHwiFiAThUIwiSIXhUIgiSIYQQApA9iJAUEAKQO4iQEiE0EAKQOYiQF8IAApAzAiEnwiGYVC+cL4m5Gjs/DbAIVCIIkiGkLx7fT4paf9p6V/fCIbIBOFQiiJIhwgGXwgACkDOCITfCIZIBqFQjCJIhogG3wiG3wiHSAKhUIoiSIeIA98IAApA1giCnwiDyAYhUIwiSIYIB18Ih0gDiALhUIwiSIOIAx8Ih8gDYVCAYkiDCAWfCAAKQNAIgt8Ig0gGoVCIIkiFiAJfCIaIAyFQiiJIiAgDXwgACkDSCIJfCIhIBaFQjCJIhYgGyAchUIBiSIMIAd8IAApA2AiB3wiDSAOhUIgiSIOIBcgFHwiFHwiFyAMhUIoiSIbIA18IAApA2giDHwiHCAOhUIwiSIOIBd8IhcgG4VCAYkiGyAZIBQgFYVCAYkiFHwgACkDcCINfCIVIAiFQiCJIhkgH3wiHyAUhUIoiSIUIBV8IAApA3giCHwiFXwgDHwiIoVCIIkiI3wiJCAbhUIoiSIbICJ8IBJ8IiIgFyAYIBUgGYVCMIkiFSAffCIZIBSFQgGJIhQgIXwgDXwiH4VCIIkiGHwiFyAUhUIoiSIUIB98IAV8Ih8gGIVCMIkiGCAXfCIXIBSFQgGJIhR8IAF8IiEgFiAafCIWIBUgHSAehUIBiSIaIBx8IAl8IhyFQiCJIhV8Ih0gGoVCKIkiGiAcfCAIfCIcIBWFQjCJIhWFQiCJIh4gGSAOIBYgIIVCAYkiFiAPfCACfCIPhUIgiSIOfCIZIBaFQiiJIhYgD3wgC3wiDyAOhUIwiSIOIBl8Ihl8IiAgFIVCKIkiFCAhfCAEfCIhIB6FQjCJIh4gIHwiICAiICOFQjCJIiIgJHwiIyAbhUIBiSIbIBx8IAp8IhwgDoVCIIkiDiAXfCIXIBuFQiiJIhsgHHwgE3wiHCAOhUIwiSIOIBkgFoVCAYkiFiAffCAQfCIZICKFQiCJIh8gFSAdfCIVfCIdIBaFQiiJIhYgGXwgB3wiGSAfhUIwiSIfIB18Ih0gFoVCAYkiFiAVIBqFQgGJIhUgD3wgBnwiDyAYhUIgiSIYICN8IhogFYVCKIkiFSAPfCADfCIPfCAHfCIihUIgiSIjfCIkIBaFQiiJIhYgInwgBnwiIiAjhUIwiSIjICR8IiQgFoVCAYkiFiAOIBd8Ig4gDyAYhUIwiSIPICAgFIVCAYkiFCAZfCAKfCIXhUIgiSIYfCIZIBSFQiiJIhQgF3wgC3wiF3wgBXwiICAPIBp8Ig8gHyAOIBuFQgGJIg4gIXwgCHwiGoVCIIkiG3wiHyAOhUIoiSIOIBp8IAx8IhogG4VCMIkiG4VCIIkiISAdIB4gDyAVhUIBiSIPIBx8IAF8IhWFQiCJIhx8Ih0gD4VCKIkiDyAVfCADfCIVIByFQjCJIhwgHXwiHXwiHiAWhUIoiSIWICB8IA18IiAgIYVCMIkiISAefCIeIBogFyAYhUIwiSIXIBl8IhggFIVCAYkiFHwgCXwiGSAchUIgiSIaICR8IhwgFIVCKIkiFCAZfCACfCIZIBqFQjCJIhogHSAPhUIBiSIPICJ8IAR8Ih0gF4VCIIkiFyAbIB98Iht8Ih8gD4VCKIkiDyAdfCASfCIdIBeFQjCJIhcgH3wiHyAPhUIBiSIPIBsgDoVCAYkiDiAVfCATfCIVICOFQiCJIhsgGHwiGCAOhUIoiSIOIBV8IBB8IhV8IAx8IiKFQiCJIiN8IiQgD4VCKIkiDyAifCAHfCIiICOFQjCJIiMgJHwiJCAPhUIBiSIPIBogHHwiGiAVIBuFQjCJIhUgHiAWhUIBiSIWIB18IAR8IhuFQiCJIhx8Ih0gFoVCKIkiFiAbfCAQfCIbfCABfCIeIBUgGHwiFSAXIBogFIVCAYkiFCAgfCATfCIYhUIgiSIXfCIaIBSFQiiJIhQgGHwgCXwiGCAXhUIwiSIXhUIgiSIgIB8gISAVIA6FQgGJIg4gGXwgCnwiFYVCIIkiGXwiHyAOhUIoiSIOIBV8IA18IhUgGYVCMIkiGSAffCIffCIhIA+FQiiJIg8gHnwgBXwiHiAghUIwiSIgICF8IiEgGyAchUIwiSIbIB18IhwgFoVCAYkiFiAYfCADfCIYIBmFQiCJIhkgJHwiHSAWhUIoiSIWIBh8IBJ8IhggGYVCMIkiGSAfIA6FQgGJIg4gInwgAnwiHyAbhUIgiSIbIBcgGnwiF3wiGiAOhUIoiSIOIB98IAZ8Ih8gG4VCMIkiGyAafCIaIA6FQgGJIg4gFSAXIBSFQgGJIhR8IAh8IhUgI4VCIIkiFyAcfCIcIBSFQiiJIhQgFXwgC3wiFXwgBXwiIoVCIIkiI3wiJCAOhUIoiSIOICJ8IAh8IiIgGiAgIBUgF4VCMIkiFSAcfCIXIBSFQgGJIhQgGHwgCXwiGIVCIIkiHHwiGiAUhUIoiSIUIBh8IAZ8IhggHIVCMIkiHCAafCIaIBSFQgGJIhR8IAR8IiAgGSAdfCIZIBUgISAPhUIBiSIPIB98IAN8Ih2FQiCJIhV8Ih8gD4VCKIkiDyAdfCACfCIdIBWFQjCJIhWFQiCJIiEgFyAbIBkgFoVCAYkiFiAefCABfCIZhUIgiSIbfCIXIBaFQiiJIhYgGXwgE3wiGSAbhUIwiSIbIBd8Ihd8Ih4gFIVCKIkiFCAgfCAMfCIgICGFQjCJIiEgHnwiHiAiICOFQjCJIiIgJHwiIyAOhUIBiSIOIB18IBJ8Ih0gG4VCIIkiGyAafCIaIA6FQiiJIg4gHXwgC3wiHSAbhUIwiSIbIBcgFoVCAYkiFiAYfCANfCIXICKFQiCJIhggFSAffCIVfCIfIBaFQiiJIhYgF3wgEHwiFyAYhUIwiSIYIB98Ih8gFoVCAYkiFiAVIA+FQgGJIg8gGXwgCnwiFSAchUIgiSIZICN8IhwgD4VCKIkiDyAVfCAHfCIVfCASfCIihUIgiSIjfCIkIBaFQiiJIhYgInwgBXwiIiAjhUIwiSIjICR8IiQgFoVCAYkiFiAbIBp8IhogFSAZhUIwiSIVIB4gFIVCAYkiFCAXfCADfCIXhUIgiSIZfCIbIBSFQiiJIhQgF3wgB3wiF3wgAnwiHiAVIBx8IhUgGCAaIA6FQgGJIg4gIHwgC3wiGoVCIIkiGHwiHCAOhUIoiSIOIBp8IAR8IhogGIVCMIkiGIVCIIkiICAfICEgFSAPhUIBiSIPIB18IAZ8IhWFQiCJIh18Ih8gD4VCKIkiDyAVfCAKfCIVIB2FQjCJIh0gH3wiH3wiISAWhUIoiSIWIB58IAx8Ih4gIIVCMIkiICAhfCIhIBogFyAZhUIwiSIXIBt8IhkgFIVCAYkiFHwgEHwiGiAdhUIgiSIbICR8Ih0gFIVCKIkiFCAafCAJfCIaIBuFQjCJIhsgHyAPhUIBiSIPICJ8IBN8Ih8gF4VCIIkiFyAYIBx8Ihh8IhwgD4VCKIkiDyAffCABfCIfIBeFQjCJIhcgHHwiHCAPhUIBiSIPIBggDoVCAYkiDiAVfCAIfCIVICOFQiCJIhggGXwiGSAOhUIoiSIOIBV8IA18IhV8IA18IiKFQiCJIiN8IiQgD4VCKIkiDyAifCAMfCIiICOFQjCJIiMgJHwiJCAPhUIBiSIPIBsgHXwiGyAVIBiFQjCJIhUgISAWhUIBiSIWIB98IBB8IhiFQiCJIh18Ih8gFoVCKIkiFiAYfCAIfCIYfCASfCIhIBUgGXwiFSAXIBsgFIVCAYkiFCAefCAHfCIZhUIgiSIXfCIbIBSFQiiJIhQgGXwgAXwiGSAXhUIwiSIXhUIgiSIeIBwgICAVIA6FQgGJIg4gGnwgAnwiFYVCIIkiGnwiHCAOhUIoiSIOIBV8IAV8IhUgGoVCMIkiGiAcfCIcfCIgIA+FQiiJIg8gIXwgBHwiISAehUIwiSIeICB8IiAgGCAdhUIwiSIYIB98Ih0gFoVCAYkiFiAZfCAGfCIZIBqFQiCJIhogJHwiHyAWhUIoiSIWIBl8IBN8IhkgGoVCMIkiGiAcIA6FQgGJIg4gInwgCXwiHCAYhUIgiSIYIBcgG3wiF3wiGyAOhUIoiSIOIBx8IAN8IhwgGIVCMIkiGCAbfCIbIA6FQgGJIg4gFSAXIBSFQgGJIhR8IAt8IhUgI4VCIIkiFyAdfCIdIBSFQiiJIhQgFXwgCnwiFXwgBHwiIoVCIIkiI3wiJCAOhUIoiSIOICJ8IAl8IiIgGyAeIBUgF4VCMIkiFSAdfCIXIBSFQgGJIhQgGXwgDHwiGYVCIIkiHXwiGyAUhUIoiSIUIBl8IAp8IhkgHYVCMIkiHSAbfCIbIBSFQgGJIhR8IAN8Ih4gGiAffCIaIBUgICAPhUIBiSIPIBx8IAd8IhyFQiCJIhV8Ih8gD4VCKIkiDyAcfCAQfCIcIBWFQjCJIhWFQiCJIiAgFyAYIBogFoVCAYkiFiAhfCATfCIahUIgiSIYfCIXIBaFQiiJIhYgGnwgDXwiGiAYhUIwiSIYIBd8Ihd8IiEgFIVCKIkiFCAefCAFfCIeICCFQjCJIiAgIXwiISAiICOFQjCJIiIgJHwiIyAOhUIBiSIOIBx8IAt8IhwgGIVCIIkiGCAbfCIbIA6FQiiJIg4gHHwgEnwiHCAYhUIwiSIYIBcgFoVCAYkiFiAZfCABfCIXICKFQiCJIhkgFSAffCIVfCIfIBaFQiiJIhYgF3wgBnwiFyAZhUIwiSIZIB98Ih8gFoVCAYkiFiAVIA+FQgGJIg8gGnwgCHwiFSAdhUIgiSIaICN8Ih0gD4VCKIkiDyAVfCACfCIVfCANfCIihUIgiSIjfCIkIBaFQiiJIhYgInwgCXwiIiAjhUIwiSIjICR8IiQgFoVCAYkiFiAYIBt8IhggFSAahUIwiSIVICEgFIVCAYkiFCAXfCASfCIXhUIgiSIafCIbIBSFQiiJIhQgF3wgCHwiF3wgB3wiISAVIB18IhUgGSAYIA6FQgGJIg4gHnwgBnwiGIVCIIkiGXwiHSAOhUIoiSIOIBh8IAt8IhggGYVCMIkiGYVCIIkiHiAfICAgFSAPhUIBiSIPIBx8IAp8IhWFQiCJIhx8Ih8gD4VCKIkiDyAVfCAEfCIVIByFQjCJIhwgH3wiH3wiICAWhUIoiSIWICF8IAN8IiEgHoVCMIkiHiAgfCIgIBggFyAahUIwiSIXIBt8IhogFIVCAYkiFHwgBXwiGCAchUIgiSIbICR8IhwgFIVCKIkiFCAYfCABfCIYIBuFQjCJIhsgHyAPhUIBiSIPICJ8IAx8Ih8gF4VCIIkiFyAZIB18Ihl8Ih0gD4VCKIkiDyAffCATfCIfIBeFQjCJIhcgHXwiHSAPhUIBiSIPIBkgDoVCAYkiDiAVfCAQfCIVICOFQiCJIhkgGnwiGiAOhUIoiSIOIBV8IAJ8IhV8IBN8IiKFQiCJIiN8IiQgD4VCKIkiDyAifCASfCIiICOFQjCJIiMgJHwiJCAPhUIBiSIPIBsgHHwiGyAVIBmFQjCJIhUgICAWhUIBiSIWIB98IAt8IhmFQiCJIhx8Ih8gFoVCKIkiFiAZfCACfCIZfCAJfCIgIBUgGnwiFSAXIBsgFIVCAYkiFCAhfCAFfCIahUIgiSIXfCIbIBSFQiiJIhQgGnwgA3wiGiAXhUIwiSIXhUIgiSIhIB0gHiAVIA6FQgGJIg4gGHwgEHwiFYVCIIkiGHwiHSAOhUIoiSIOIBV8IAF8IhUgGIVCMIkiGCAdfCIdfCIeIA+FQiiJIg8gIHwgDXwiICAhhUIwiSIhIB58Ih4gGSAchUIwiSIZIB98IhwgFoVCAYkiFiAafCAIfCIaIBiFQiCJIhggJHwiHyAWhUIoiSIWIBp8IAp8IhogGIVCMIkiGCAdIA6FQgGJIg4gInwgBHwiHSAZhUIgiSIZIBcgG3wiF3wiGyAOhUIoiSIOIB18IAd8Ih0gGYVCMIkiGSAbfCIbIA6FQgGJIg4gFSAXIBSFQgGJIhR8IAx8IhUgI4VCIIkiFyAcfCIcIBSFQiiJIhQgFXwgBnwiFXwgEnwiIoVCIIkiI3wiJCAOhUIoiSIOICJ8IBN8IiIgGyAhIBUgF4VCMIkiFSAcfCIXIBSFQgGJIhQgGnwgBnwiGoVCIIkiHHwiGyAUhUIoiSIUIBp8IBB8IhogHIVCMIkiHCAbfCIbIBSFQgGJIhR8IA18IiEgGCAffCIYIBUgHiAPhUIBiSIPIB18IAJ8Ih2FQiCJIhV8Ih4gD4VCKIkiDyAdfCABfCIdIBWFQjCJIhWFQiCJIh8gFyAZIBggFoVCAYkiFiAgfCADfCIYhUIgiSIZfCIXIBaFQiiJIhYgGHwgBHwiGCAZhUIwiSIZIBd8Ihd8IiAgFIVCKIkiFCAhfCAIfCIhIB+FQjCJIh8gIHwiICAiICOFQjCJIiIgJHwiIyAOhUIBiSIOIB18IAd8Ih0gGYVCIIkiGSAbfCIbIA6FQiiJIg4gHXwgDHwiHSAZhUIwiSIZIBcgFoVCAYkiFiAafCALfCIXICKFQiCJIhogFSAefCIVfCIeIBaFQiiJIhYgF3wgCXwiFyAahUIwiSIaIB58Ih4gFoVCAYkiFiAVIA+FQgGJIg8gGHwgBXwiFSAchUIgiSIYICN8IhwgD4VCKIkiDyAVfCAKfCIVfCACfCIChUIgiSIifCIjIBaFQiiJIhYgAnwgC3wiAiAihUIwiSILICN8IiIgFoVCAYkiFiAZIBt8IhkgFSAYhUIwiSIVICAgFIVCAYkiFCAXfCANfCINhUIgiSIXfCIYIBSFQiiJIhQgDXwgBXwiBXwgEHwiECAVIBx8Ig0gGiAZIA6FQgGJIg4gIXwgDHwiDIVCIIkiFXwiGSAOhUIoiSIOIAx8IBJ8IhIgFYVCMIkiDIVCIIkiFSAeIB8gDSAPhUIBiSINIB18IAl8IgmFQiCJIg98IhogDYVCKIkiDSAJfCAIfCIJIA+FQjCJIgggGnwiD3wiGiAWhUIoiSIWIBB8IAd8IhAgEYUgDCAZfCIHIA6FQgGJIgwgCXwgCnwiCiALhUIgiSILIAUgF4VCMIkiBSAYfCIJfCIOIAyFQiiJIgwgCnwgE3wiEyALhUIwiSIKIA58IguFNwOAiQFBACADIAYgDyANhUIBiSINIAJ8fCICIAWFQiCJIgUgB3wiBiANhUIoiSIHIAJ8fCICQQApA4iJAYUgBCABIBIgCSAUhUIBiSIDfHwiASAIhUIgiSISICJ8IgkgA4VCKIkiAyABfHwiASAShUIwiSIEIAl8IhKFNwOIiQFBACATQQApA5CJAYUgECAVhUIwiSIQIBp8IhOFNwOQiQFBACABQQApA5iJAYUgAiAFhUIwiSICIAZ8IgGFNwOYiQFBACASIAOFQgGJQQApA6CJAYUgAoU3A6CJAUEAIBMgFoVCAYlBACkDqIkBhSAKhTcDqIkBQQAgASAHhUIBiUEAKQOwiQGFIASFNwOwiQFBACALIAyFQgGJQQApA7iJAYUgEIU3A7iJAQvdAgUBfwF+AX8BfgJ/IwBBwABrIgAkAAJAQQApA9CJAUIAUg0AQQBBACkDwIkBIgFBACgC4IoBIgKsfCIDNwPAiQFBAEEAKQPIiQEgAyABVK18NwPIiQECQEEALQDoigFFDQBBAEJ/NwPYiQELQQBCfzcD0IkBAkAgAkH/AEoNAEEAIQQDQCACIARqQeCJAWpBADoAACAEQQFqIgRBgAFBACgC4IoBIgJrSA0ACwtB4IkBEAIgAEEAKQOAiQE3AwAgAEEAKQOIiQE3AwggAEEAKQOQiQE3AxAgAEEAKQOYiQE3AxggAEEAKQOgiQE3AyAgAEEAKQOoiQE3AyggAEEAKQOwiQE3AzAgAEEAKQO4iQE3AzhBACgC5IoBIgVBAUgNAEEAIQRBACECA0AgBEGACWogACAEai0AADoAACAEQQFqIQQgBSACQQFqIgJB/wFxSg0ACwsgAEHAAGokAAv9AwMBfwF+AX8jAEGAAWsiAiQAQQBBgQI7AfKKAUEAIAE6APGKAUEAIAA6APCKAUGQfiEAA0AgAEGAiwFqQgA3AAAgAEH4igFqQgA3AAAgAEHwigFqQgA3AAAgAEEYaiIADQALQQAhAEEAQQApA/CKASIDQoiS853/zPmE6gCFNwOAiQFBAEEAKQP4igFCu86qptjQ67O7f4U3A4iJAUEAQQApA4CLAUKr8NP0r+68tzyFNwOQiQFBAEEAKQOIiwFC8e30+KWn/aelf4U3A5iJAUEAQQApA5CLAULRhZrv+s+Uh9EAhTcDoIkBQQBBACkDmIsBQp/Y+dnCkdqCm3+FNwOoiQFBAEEAKQOgiwFC6/qG2r+19sEfhTcDsIkBQQBBACkDqIsBQvnC+JuRo7Pw2wCFNwO4iQFBACADp0H/AXE2AuSKAQJAIAFBAUgNACACQgA3A3ggAkIANwNwIAJCADcDaCACQgA3A2AgAkIANwNYIAJCADcDUCACQgA3A0ggAkIANwNAIAJCADcDOCACQgA3AzAgAkIANwMoIAJCADcDICACQgA3AxggAkIANwMQIAJCADcDCCACQgA3AwBBACEEA0AgAiAAaiAAQYAJai0AADoAACAAQQFqIQAgBEEBaiIEQf8BcSABSA0ACyACQYABEAELIAJBgAFqJAALEgAgAEEDdkH/P3EgAEEQdhAECwkAQYAJIAAQAQsGAEGAiQELGwAgAUEDdkH/P3EgAUEQdhAEQYAJIAAQARADCwsLAQBBgAgLBPAAAAA=",ch="c6f286e6",lo={name:ki,data:Mn,hash:ch};let _x=new a,ba=null;function ql(w){return!Number.isInteger(w)||w<8||w>512||w%8!==0?new Error("Invalid variant! Valid values: 8, 16, ..., 512"):null}function Yg(w,x){return w|x<<16}function Tx(w,x=512,C=null){if(ql(x))return Promise.reject(ql(x));let _=null,K=x;if(C!==null){if(_=y(C),_.length>64)return Promise.reject(new Error("Max key length is 64 bytes"));K=Yg(x,_.length)}let J=x/8;if(ba===null||ba.hashLength!==J)return Y(_x,lo,J).then(te=>(ba=te,K>512&&ba.writeMemory(_),ba.calculate(w,K)));try{K>512&&ba.writeMemory(_);let te=ba.calculate(w,K);return Promise.resolve(te)}catch(te){return Promise.reject(te)}}function Ll(w=512,x=null){if(ql(w))return Promise.reject(ql(w));let C=null,_=w;if(x!==null){if(C=y(x),C.length>64)return Promise.reject(new Error("Max key length is 64 bytes"));_=Yg(w,C.length)}let K=w/8;return M(lo,K).then(J=>{_>512&&J.writeMemory(C),J.init(_);let te={init:_>512?()=>(J.writeMemory(C),J.init(_),te):()=>(J.init(_),te),update:re=>(J.update(re),te),digest:re=>J.digest(re),save:()=>J.save(),load:re=>(J.load(re),te),blockSize:128,digestSize:K};return te})}function Qx(w,x,C){let _=[`m=${x.memorySize}`,`t=${x.iterations}`,`p=${x.parallelism}`].join(",");return`$argon2${x.hashType}$v=19$${_}$${E(w,!1)}$${E(C,!1)}`}let Xg=new DataView(new ArrayBuffer(4));function qn(w){return Xg.setInt32(0,w,!0),new Uint8Array(Xg.buffer)}function uh(w,x,C){return s(this,void 0,void 0,function*(){if(C<=64){let ye=yield Ll(C*8);return ye.update(qn(C)),ye.update(x),ye.digest("binary")}let _=Math.ceil(C/32)-2,K=new Uint8Array(C);w.init(),w.update(qn(C)),w.update(x);let J=w.digest("binary");K.set(J.subarray(0,32),0);for(let ye=1;ye<_;ye++)w.init(),w.update(J),J=w.digest("binary"),K.set(J.subarray(0,32),ye*32);let te=C-32*_,re;return te===64?(re=w,re.init()):re=yield Ll(te*8),re.update(J),J=re.digest("binary"),K.set(J.subarray(0,te),_*32),K})}function Nx(w){switch(w){case"d":return 0;case"i":return 1;default:return 2}}function Kl(w){return s(this,void 0,void 0,function*(){var x;let{parallelism:C,iterations:_,hashLength:K}=w,J=y(w.password),te=y(w.salt),re=19,ye=Nx(w.hashType),{memorySize:kt}=w,Pt=y((x=w.secret)!==null&&x!==void 0?x:""),[Jt,St]=yield Promise.all([M(Ve,1024),Ll(512)]);Jt.setMemorySize(kt*1024+1024);let $r=new Uint8Array(24),Si=new DataView($r.buffer);Si.setInt32(0,C,!0),Si.setInt32(4,K,!0),Si.setInt32(8,kt,!0),Si.setInt32(12,_,!0),Si.setInt32(16,re,!0),Si.setInt32(20,ye,!0),Jt.writeMemory($r,kt*1024),St.init(),St.update($r),St.update(qn(J.length)),St.update(J),St.update(qn(te.length)),St.update(te),St.update(qn(Pt.length)),St.update(Pt),St.update(qn(0));let Ao=Math.floor(kt/(C*4))*4,Ln=new Uint8Array(72),go=St.digest("binary");Ln.set(go);for(let mo=0;mo<C;mo++){Ln.set(qn(0),64),Ln.set(qn(mo),68);let we=mo*Ao,Re=yield uh(St,Ln,1024);Jt.writeMemory(Re,we*1024),we+=1,Ln.set(qn(1),64),Re=yield uh(St,Ln,1024),Jt.writeMemory(Re,we*1024)}let $l=new Uint8Array(1024);p($l,Jt.calculate(new Uint8Array([]),kt));let xa=yield uh(St,$l,K);if(w.outputType==="hex"){let mo=new Uint8Array(K*2);return I(mo,xa,K)}return w.outputType==="encoded"?Qx(te,w,xa):xa})}let Vl=w=>{var x;if(!w||typeof w!="object")throw new Error("Invalid options parameter. It requires an object.");if(!w.password)throw new Error("Password must be specified");if(w.password=y(w.password),w.password.length<1)throw new Error("Password must be specified");if(!w.salt)throw new Error("Salt must be specified");if(w.salt=y(w.salt),w.salt.length<8)throw new Error("Salt should be at least 8 bytes long");if(w.secret=y((x=w.secret)!==null&&x!==void 0?x:""),!Number.isInteger(w.iterations)||w.iterations<1)throw new Error("Iterations should be a positive number");if(!Number.isInteger(w.parallelism)||w.parallelism<1)throw new Error("Parallelism should be a positive number");if(!Number.isInteger(w.hashLength)||w.hashLength<4)throw new Error("Hash length should be at least 4 bytes.");if(!Number.isInteger(w.memorySize))throw new Error("Memory size should be specified.");if(w.memorySize<8*w.parallelism)throw new Error("Memory size should be at least 8 * parallelism.");if(w.outputType===void 0&&(w.outputType="hex"),!["hex","binary","encoded"].includes(w.outputType))throw new Error(`Insupported output type ${w.outputType}. Valid values: ['hex', 'binary', 'encoded']`)};function Rx(w){return s(this,void 0,void 0,function*(){return Vl(w),Kl(Object.assign(Object.assign({},w),{hashType:"i"}))})}function Dx(w){return s(this,void 0,void 0,function*(){return Vl(w),Kl(Object.assign(Object.assign({},w),{hashType:"id"}))})}function Ox(w){return s(this,void 0,void 0,function*(){return Vl(w),Kl(Object.assign(Object.assign({},w),{hashType:"d"}))})}let Fx=(w,x,C)=>{let _=/^\$argon2(id|i|d)\$v=([0-9]+)\$((?:[mtp]=[0-9]+,){2}[mtp]=[0-9]+)\$([A-Za-z0-9+/]+)\$([A-Za-z0-9+/]+)$/,K=x.match(_);if(!K)throw new Error("Invalid hash");let[,J,te,re,ye,kt]=K;if(te!=="19")throw new Error(`Unsupported version: ${te}`);let Pt={},Jt={m:"memorySize",p:"parallelism",t:"iterations"};for(let St of re.split(",")){let[$r,Si]=St.split("=");Pt[Jt[$r]]=Number(Si)}return Object.assign(Object.assign({},Pt),{password:w,secret:C,hashType:J,salt:T(ye),hashLength:k(kt),outputType:"encoded"})},Px=w=>{if(!w||typeof w!="object")throw new Error("Invalid options parameter. It requires an object.");if(w.hash===void 0||typeof w.hash!="string")throw new Error("Hash should be specified")};function Ux(w){return s(this,void 0,void 0,function*(){Px(w);let x=Fx(w.password,w.hash,w.secret);Vl(x);let C=w.hash.lastIndexOf("$")+1;return(yield Kl(x)).substring(C)===w.hash.substring(C)})}var Hx="blake2s",Mx="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",qx="5c0ff166",Zg={name:Hx,data:Mx,hash:qx};let Lx=new a,va=null;function jl(w){return!Number.isInteger(w)||w<8||w>256||w%8!==0?new Error("Invalid variant! Valid values: 8, 16, ..., 256"):null}function e0(w,x){return w|x<<16}function Kx(w,x=256,C=null){if(jl(x))return Promise.reject(jl(x));let _=null,K=x;if(C!==null){if(_=y(C),_.length>32)return Promise.reject(new Error("Max key length is 32 bytes"));K=e0(x,_.length)}let J=x/8;if(va===null||va.hashLength!==J)return Y(Lx,Zg,J).then(te=>(va=te,K>512&&va.writeMemory(_),va.calculate(w,K)));try{K>512&&va.writeMemory(_);let te=va.calculate(w,K);return Promise.resolve(te)}catch(te){return Promise.reject(te)}}function Vx(w=256,x=null){if(jl(w))return Promise.reject(jl(w));let C=null,_=w;if(x!==null){if(C=y(x),C.length>32)return Promise.reject(new Error("Max key length is 32 bytes"));_=e0(w,C.length)}let K=w/8;return M(Zg,K).then(J=>{_>512&&J.writeMemory(C),J.init(_);let te={init:_>512?()=>(J.writeMemory(C),J.init(_),te):()=>(J.init(_),te),update:re=>(J.update(re),te),digest:re=>J.digest(re),save:()=>J.save(),load:re=>(J.load(re),te),blockSize:64,digestSize:K};return te})}var jx="blake3",Wx="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IQEgAkFAaiICQcAASw0ACwsCQEHAACAHQf8BcSIGayIFIAIgBSACSRsiCUUNACAJQQNxIQtBACEFAkAgCUEESQ0AIAAgBmohByAJQfwAcSEIQQAhBQNAIAcgBWoiAkEoaiABIAVqIgotAAA6AAAgAkEpaiAKQQFqLQAAOgAAIAJBKmogCkECai0AADoAACACQStqIApBA2otAAA6AAAgCCAFQQRqIgVHDQALCwJAIAtFDQAgASAFaiEBIAUgBmogAGpBKGohBQNAIAUgAS0AADoAACABQQFqIQEgBUEBaiEFIAtBf2oiCw0ACwsgAC0AaCEHCyAAIAcgCWo6AGggA0HAAGokAAveAwQFfwN+BX8GfiMAQdABayIBJAACQCAAe6ciAkEALQCQigEiA08NAEEALQCKigFBBHIhBCABQShqIQVBACkDmIkBIQBBACkDkIkBIQZBACkDiIkBIQdBACkDgIkBIQggAyEJA0AgASAANwMYIAEgBjcDECABIAc3AwggASAINwMAIAEgA0EFdCIDQdGJAWoiCikDADcDKCABIANB2YkBaiILKQMANwMwIAEgA0HhiQFqIgwpAwA3AzggASADQemJAWoiDSkDADcDQCABIANB8YkBaikDADcDSCABIANB+YkBaikDADcDUCABIANBgYoBaikDADcDWCADQYmKAWopAwAhDiABQcAAOgBoIAEgDjcDYCABQgA3AyAgASAEOgBpIAEgADcDiAEgASAGNwOAASABIAc3A3ggASAINwNwIAFBkAFqIAFB8ABqIAVBwABCACAEQf8BcRACIAEpA7ABIQ4gASkDkAEhDyABKQO4ASEQIAEpA5gBIREgASkDwAEhEiABKQOgASETIA0gASkDyAEgASkDqAGFNwMAIAwgEiAThTcDACALIBAgEYU3AwAgCiAOIA+FNwMAIAlBf2oiCUH/AXEiAyACSw0AC0EAIAk6AJCKAQsgAUHQAWokAAvHCQIKfwV+IwBB4AJrIgUkAAJAAkAgAUGACEsNACAFIAA2AvwBIAVB/AFqIAFBgAhGIgZBECACQQEgA0EBQQIgBBABIAZBCnQiByABTw0BIAVB4ABqIgZCADcDACAFQdgAaiIIQgA3AwAgBUHQAGoiCUIANwMAIAVByABqIgpCADcDACAFQcAAaiILQgA3AwAgBUE4aiIMQgA3AwAgBUEwaiINQgA3AwAgBSADOgBqIAVCADcDKCAFQQA7AWggBUEAKQOAiQE3AwAgBUEAKQOIiQE3AwggBUEAKQOQiQE3AxAgBUEAKQOYiQE3AxggBSABQYAIRiIOrSACfDcDICAFIAAgB2pBACABIA4bEAQgBUGIAWpBMGogDSkDADcDACAFQYgBakE4aiAMKQMANwMAIAUgBSkDACIPNwOIASAFIAUpAwgiEDcDkAEgBSAFKQMQIhE3A5gBIAUgBSkDGCISNwOgASAFIAUpAyg3A7ABIAUtAGohACAFLQBpIQcgBSkDICECIAUtAGghASAFQYgBakHAAGogCykDADcDACAFQYgBakHIAGogCikDADcDACAFQYgBakHQAGogCSkDADcDACAFQYgBakHYAGogCCkDADcDACAFQYgBakHgAGogBikDADcDACAFIAE6APABIAUgAjcDqAEgBSAAIAdFckECciIAOgDxASAFIBI3A5gCIAUgETcDkAIgBSAQNwOIAiAFIA83A4ACIAVBoAJqIAVBgAJqIAVBsAFqIAEgAiAAQf8BcRACIAUpA8ACIQIgBSkDoAIhDyAFKQPIAiEQIAUpA6gCIREgBSkD0AIhEiAFKQOwAiETIAQgDkEFdGoiASAFKQPYAiAFKQO4AoU3AxggASASIBOFNwMQIAEgECARhTcDCCABIAIgD4U3AwBBAkEBIA4bIQYMAQsgAEIBIAFBf2pBCnZBAXKteUI/hYYiD6dBCnQiDiACIAMgBRAGIQcgACAOaiABIA5rIA9C////AYMgAnwgAyAFQcAAQSAgDkGACEsbahAGIQECQCAHQQFHDQAgBCAFKQMANwMAIAQgBSkDCDcDCCAEIAUpAxA3AxAgBCAFKQMYNwMYIAQgBSkDIDcDICAEIAUpAyg3AyggBCAFKQMwNwMwIAQgBSkDODcDOEECIQYMAQtBACEGQQAhAAJAIAEgB2oiCUECSQ0AIAlBfmoiCkEBdkEBaiIGQQNxIQ5BACEHAkAgCkEGSQ0AIAZB/P///wdxIQhBACEHIAVBiAFqIQEgBSEAA0AgASAANgIAIAFBDGogAEHAAWo2AgAgAUEIaiAAQYABajYCACABQQRqIABBwABqNgIAIABBgAJqIQAgAUEQaiEBIAggB0EEaiIHRw0ACwsgCkF+cSEIAkAgDkUNACAFIAdBBnRqIQEgBUGIAWogB0ECdGohAANAIAAgATYCACABQcAAaiEBIABBBGohACAOQX9qIg4NAAsLIAhBAmohAAsgBUGIAWogBkEBQgBBACADQQRyQQBBACAEEAEgACAJTw0AIAQgBkEFdGoiASAFIAZBBnRqIgApAwA3AwAgASAAKQMINwMIIAEgACkDEDcDECABIAApAxg3AxggBkEBaiEGCyAFQeACaiQAIAYLrRAIAn8EfgF/AX4EfwR+BH8EfiMAQfABayIBJAACQCAARQ0AAkBBAC0AkIoBIgINACABQTBqQQApA9CJATcDACABQThqQQApA9iJATcDACABQQApA6CJASIDNwMAIAFBACkDqIkBIgQ3AwggAUEAKQOwiQEiBTcDECABQQApA7iJASIGNwMYIAFBACkDyIkBNwMoQQAtAIqKASECQQAtAImKASEHQQApA8CJASEIQQAtAIiKASEJIAFBwABqQQApA+CJATcDACABQcgAakEAKQPoiQE3AwAgAUHQAGpBACkD8IkBNwMAIAFB2ABqQQApA/iJATcDACABQeAAakEAKQOAigE3AwAgASAJOgBoIAEgCDcDICABIAIgB0VyIgJBAnI6AGkgAUEoaiEKQgAhCEGACSELIAJBCnJB/wFxIQwDQCABQbABaiABIAogCUH/AXEgCCAMEAIgASABKQPQASINIAEpA7ABhTcDcCABIAEpA9gBIg4gASkDuAGFNwN4IAEgASkD4AEiDyABKQPAAYU3A4ABIAEgASkD6AEiECAGhTcDqAEgASAPIAWFNwOgASABIA4gBIU3A5gBIAEgDSADhTcDkAEgASAQIAEpA8gBhTcDiAEgAEHAACAAQcAASRsiEUF/aiESAkACQCARQQdxIhMNACABQfAAaiECIAshByARIRQMAQsgEUH4AHEhFCABQfAAaiECIAshBwNAIAcgAi0AADoAACAHQQFqIQcgAkEBaiECIBNBf2oiEw0ACwsCQCASQQdJDQADQCAHIAIpAAA3AAAgB0EIaiEHIAJBCGohAiAUQXhqIhQNAAsLIAhCAXwhCCALIBFqIQsgACARayIADQAMAgsLAkACQAJAQQAtAImKASIHQQZ0QQBBAC0AiIoBIhFrRg0AIAEgEToAaCABQQApA4CKATcDYCABQQApA/iJATcDWCABQQApA/CJATcDUCABQQApA+iJATcDSCABQQApA+CJATcDQCABQQApA9iJATcDOCABQQApA9CJATcDMCABQQApA8iJATcDKCABQQApA8CJASIINwMgIAFBACkDuIkBIgM3AxggAUEAKQOwiQEiBDcDECABQQApA6iJASIFNwMIIAFBACkDoIkBIgY3AwAgAUEALQCKigEiEyAHRXJBAnIiCzoAaSATQQRyIRNBACkDmIkBIQ1BACkDkIkBIQ5BACkDiIkBIQ9BACkDgIkBIRAMAQtBwAAhESABQcAAOgBoQgAhCCABQgA3AyAgAUEAKQOYiQEiDTcDGCABQQApA5CJASIONwMQIAFBACkDiIkBIg83AwggAUEAKQOAiQEiEDcDACABQQAtAIqKAUEEciITOgBpIAEgAkF+aiICQQV0IgdByYoBaikDADcDYCABIAdBwYoBaikDADcDWCABIAdBuYoBaikDADcDUCABIAdBsYoBaikDADcDSCABIAdBqYoBaikDADcDQCABIAdBoYoBaikDADcDOCABIAdBmYoBaikDADcDMCABIAdBkYoBaikDADcDKCATIQsgECEGIA8hBSAOIQQgDSEDIAJFDQELIAJBf2oiB0EFdCIUQZGKAWopAwAhFSAUQZmKAWopAwAhFiAUQaGKAWopAwAhFyAUQamKAWopAwAhGCABIAM3A4gBIAEgBDcDgAEgASAFNwN4IAEgBjcDcCABQbABaiABQfAAaiABQShqIhQgESAIIAtB/wFxEAIgASATOgBpIAFBwAA6AGggASAYNwNAIAEgFzcDOCABIBY3AzAgASAVNwMoIAFCADcDICABIA03AxggASAONwMQIAEgDzcDCCABIBA3AwAgASABKQPoASABKQPIAYU3A2AgASABKQPgASABKQPAAYU3A1ggASABKQPYASABKQO4AYU3A1AgASABKQPQASABKQOwAYU3A0ggB0UNACACQQV0QemJAWohAiATQf8BcSERA0AgAkFoaikDACEIIAJBcGopAwAhAyACQXhqKQMAIQQgAikDACEFIAEgDTcDiAEgASAONwOAASABIA83A3ggASAQNwNwIAFBsAFqIAFB8ABqIBRBwABCACAREAIgASATOgBpIAFBwAA6AGggASAFNwNAIAEgBDcDOCABIAM3AzAgASAINwMoIAFCADcDICABIA03AxggASAONwMQIAEgDzcDCCABIBA3AwAgASABKQPoASABKQPIAYU3A2AgASABKQPgASABKQPAAYU3A1ggASABKQPYASABKQO4AYU3A1AgASABKQPQASABKQOwAYU3A0ggAkFgaiECIAdBf2oiBw0ACwsgAUEoaiEJQgAhCEGACSELIBNBCHJB/wFxIQoDQCABQbABaiABIAlBwAAgCCAKEAIgASABKQPQASIDIAEpA7ABhTcDcCABIAEpA9gBIgQgASkDuAGFNwN4IAEgASkD4AEiBSABKQPAAYU3A4ABIAEgDSABKQPoASIGhTcDqAEgASAOIAWFNwOgASABIA8gBIU3A5gBIAEgECADhTcDkAEgASAGIAEpA8gBhTcDiAEgAEHAACAAQcAASRsiEUF/aiESAkACQCARQQdxIhMNACABQfAAaiECIAshByARIRQMAQsgEUH4AHEhFCABQfAAaiECIAshBwNAIAcgAi0AADoAACAHQQFqIQcgAkEBaiECIBNBf2oiEw0ACwsCQCASQQdJDQADQCAHIAIpAAA3AAAgB0EIaiEHIAJBCGohAiAUQXhqIhQNAAsLIAhCAXwhCCALIBFqIQsgACARayIADQALCyABQfABaiQAC6MCAQR+AkACQCAAQSBGDQBCq7OP/JGjs/DbACEBQv+kuYjFkdqCm38hAkLy5rvjo6f9p6V/IQNC58yn0NbQ67O7fyEEQQAhAAwBC0EAKQOYCSEBQQApA5AJIQJBACkDiAkhA0EAKQOACSEEQRAhAAtBACAAOgCKigFBAEIANwOAigFBAEIANwP4iQFBAEIANwPwiQFBAEIANwPoiQFBAEIANwPgiQFBAEIANwPYiQFBAEIANwPQiQFBAEIANwPIiQFBAEIANwPAiQFBACABNwO4iQFBACACNwOwiQFBACADNwOoiQFBACAENwOgiQFBACABNwOYiQFBACACNwOQiQFBACADNwOIiQFBACAENwOAiQFBAEEAOgCQigFBAEEAOwGIigELBgAgABADCwYAIAAQBwsGAEGAiQELqwIBBH4CQAJAIAFBIEYNAEKrs4/8kaOz8NsAIQNC/6S5iMWR2oKbfyEEQvLmu+Ojp/2npX8hBULnzKfQ1tDrs7t/IQZBACEBDAELQQApA5gJIQNBACkDkAkhBEEAKQOICSEFQQApA4AJIQZBECEBC0EAIAE6AIqKAUEAQgA3A4CKAUEAQgA3A/iJAUEAQgA3A/CJAUEAQgA3A+iJAUEAQgA3A+CJAUEAQgA3A9iJAUEAQgA3A9CJAUEAQgA3A8iJAUEAQgA3A8CJAUEAIAM3A7iJAUEAIAQ3A7CJAUEAIAU3A6iJAUEAIAY3A6CJAUEAIAM3A5iJAUEAIAQ3A5CJAUEAIAU3A4iJAUEAIAY3A4CJAUEAQQA6AJCKAUEAQQA7AYiKASAAEAMgAhAHCwsLAQBBgAgLBHgHAAA=",Gx="215d875f",t0={name:jx,data:Wx,hash:Gx};let eR=new a,Nc=null;function i0(w){return!Number.isInteger(w)||w<8||w%8!==0?new Error("Invalid variant! Valid values: 8, 16, ..."):null}function Xz(w,x=256,C=null){if(i0(x))return Promise.reject(i0(x));let _=null,K=0;if(C!==null){if(_=y(C),_.length!==32)return Promise.reject(new Error("Key length must be exactly 32 bytes"));K=32}let J=x/8,te=J;if(Nc===null||Nc.hashLength!==J)return Y(eR,t0,J).then(re=>(Nc=re,K===32&&Nc.writeMemory(_),Nc.calculate(w,K,te)));try{K===32&&Nc.writeMemory(_);let re=Nc.calculate(w,K,te);return Promise.resolve(re)}catch(re){return Promise.reject(re)}}function Zz(w=256,x=null){if(i0(w))return Promise.reject(i0(w));let C=null,_=0;if(x!==null){if(C=y(x),C.length!==32)return Promise.reject(new Error("Key length must be exactly 32 bytes"));_=32}let K=w/8,J=K;return M(t0,K).then(te=>{_===32&&te.writeMemory(C),te.init(_);let re={init:_===32?()=>(te.writeMemory(C),te.init(_),re):()=>(te.init(_),re),update:ye=>(te.update(ye),re),digest:ye=>te.digest(ye,J),save:()=>te.save(),load:ye=>(te.load(ye),re),blockSize:64,digestSize:K};return re})}var e$="crc32",t$="AGFzbQEAAAABEQRgAAF/YAF/AGAAAGACf38AAwgHAAEBAQIAAwUEAQECAgYOAn8BQZDJBQt/AEGACAsHcAgGbWVtb3J5AgAOSGFzaF9HZXRCdWZmZXIAAAlIYXNoX0luaXQAAgtIYXNoX1VwZGF0ZQADCkhhc2hfRmluYWwABA1IYXNoX0dldFN0YXRlAAUOSGFzaF9DYWxjdWxhdGUABgpTVEFURV9TSVpFAwEKkggHBQBBgAkLwwMBA39BgIkBIQFBACECA0AgAUEAQQBBAEEAQQBBAEEAQQAgAkEBcWsgAHEgAkEBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnM2AgAgAUEEaiEBIAJBAWoiAkGAAkcNAAtBACEAA0AgAEGEkQFqIABBhIkBaigCACICQf8BcUECdEGAiQFqKAIAIAJBCHZzIgI2AgAgAEGEmQFqIAJB/wFxQQJ0QYCJAWooAgAgAkEIdnMiAjYCACAAQYShAWogAkH/AXFBAnRBgIkBaigCACACQQh2cyICNgIAIABBhKkBaiACQf8BcUECdEGAiQFqKAIAIAJBCHZzIgI2AgAgAEGEsQFqIAJB/wFxQQJ0QYCJAWooAgAgAkEIdnMiAjYCACAAQYS5AWogAkH/AXFBAnRBgIkBaigCACACQQh2cyICNgIAIABBhMEBaiACQf8BcUECdEGAiQFqKAIAIAJBCHZzNgIAIABBBGoiAEH8B0cNAAsLJwACQEEAKAKAyQEgAEYNACAAEAFBACAANgKAyQELQQBBADYChMkBC4gDAQN/QQAoAoTJAUF/cyEBQYAJIQICQCAAQQhJDQBBgAkhAgNAIAJBBGooAgAiA0EOdkH8B3FBgJEBaigCACADQRZ2QfwHcUGAiQFqKAIAcyADQQZ2QfwHcUGAmQFqKAIAcyADQf8BcUECdEGAoQFqKAIAcyACKAIAIAFzIgFBFnZB/AdxQYCpAWooAgBzIAFBDnZB/AdxQYCxAWooAgBzIAFBBnZB/AdxQYC5AWooAgBzIAFB/wFxQQJ0QYDBAWooAgBzIQEgAkEIaiECIABBeGoiAEEHSw0ACwsCQCAARQ0AAkACQCAAQQFxDQAgACEDDAELIAFB/wFxIAItAABzQQJ0QYCJAWooAgAgAUEIdnMhASACQQFqIQIgAEF/aiEDCyAAQQFGDQADQCABQf8BcSACLQAAc0ECdEGAiQFqKAIAIAFBCHZzIgFB/wFxIAJBAWotAABzQQJ0QYCJAWooAgAgAUEIdnMhASACQQJqIQIgA0F+aiIDDQALC0EAIAFBf3M2AoTJAQsyAQF/QQBBACgChMkBIgBBGHQgAEGA/gNxQQh0ciAAQQh2QYD+A3EgAEEYdnJyNgKACQsGAEGEyQELWQACQEEAKAKAyQEgAUYNACABEAFBACABNgKAyQELQQBBADYChMkBIAAQA0EAQQAoAoTJASIBQRh0IAFBgP4DcUEIdHIgAUEIdkGA/gNxIAFBGHZycjYCgAkLCwsBAEGACAsEBAAAAA==",i$="d2eba587",tR={name:e$,data:t$,hash:i$};let r$=new a,r0=null;function n0(w){return!Number.isInteger(w)||w<0||w>4294967295?new Error("Polynomial must be a valid 32-bit long unsigned integer"):null}function n$(w,x=3988292384){if(n0(x))return Promise.reject(n0(x));if(r0===null)return Y(r$,tR,4).then(C=>(r0=C,r0.calculate(w,x)));try{let C=r0.calculate(w,x);return Promise.resolve(C)}catch(C){return Promise.reject(C)}}function s$(w=3988292384){return n0(w)?Promise.reject(n0(w)):M(tR,4).then(x=>{x.init(w);let C={init:()=>(x.init(w),C),update:_=>(x.update(_),C),digest:_=>x.digest(_),save:()=>x.save(),load:_=>(x.load(_),C),blockSize:4,digestSize:4};return C})}var a$="crc64",o$="AGFzbQEAAAABDANgAAF/YAAAYAF/AAMHBgABAgEAAQUEAQECAgYOAn8BQZCJBgt/AEGACAsHcAgGbWVtb3J5AgAOSGFzaF9HZXRCdWZmZXIAAAlIYXNoX0luaXQAAQtIYXNoX1VwZGF0ZQACCkhhc2hfRmluYWwAAw1IYXNoX0dldFN0YXRlAAQOSGFzaF9DYWxjdWxhdGUABQpTVEFURV9TSVpFAwEKgwgGBQBBgAkL9QMDAX4BfwJ+AkBBACkDgIkCQQApA4AJIgBRDQBBgIkBIQFCACECA0AgAUIAQgBCAEIAQgBCAEIAQgAgAkIBg30gAIMgAkIBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIU3AwAgAUEIaiEBIAJCAXwiAkKAAlINAAtBACEBA0AgAUGImQFqIAFBiIkBaikDACICp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiKkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiLkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiMkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiNkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiOkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiPkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhTcDACABQQhqIgFB+A9HDQALQQAgADcDgIkCC0EAQgA3A4iJAguUAwIBfgJ/QQApA4iJAkJ/hSEBQYAJIQICQCAAQQhJDQBBgAkhAgNAIAIpAwAgAYUiAUIwiKdB/wFxQQN0QYCZAWopAwAgAUI4iKdBA3RBgIkBaikDAIUgAUIoiKdB/wFxQQN0QYCpAWopAwCFIAFCIIinQf8BcUEDdEGAuQFqKQMAhSABpyIDQRV2QfgPcUGAyQFqKQMAhSADQQ12QfgPcUGA2QFqKQMAhSADQQV2QfgPcUGA6QFqKQMAhSADQf8BcUEDdEGA+QFqKQMAhSEBIAJBCGohAiAAQXhqIgBBB0sNAAsLAkAgAEUNAAJAAkAgAEEBcQ0AIAAhAwwBCyABQv8BgyACMQAAhadBA3RBgIkBaikDACABQgiIhSEBIAJBAWohAiAAQX9qIQMLIABBAUYNAANAIAFC/wGDIAIxAACFp0EDdEGAiQFqKQMAIAFCCIiFIgFC/wGDIAJBAWoxAACFp0EDdEGAiQFqKQMAIAFCCIiFIQEgAkECaiECIANBfmoiAw0ACwtBACABQn+FNwOIiQILZAEBfkEAQQApA4iJAiIAQjiGIABCgP4Dg0IohoQgAEKAgPwHg0IYhiAAQoCAgPgPg0IIhoSEIABCCIhCgICA+A+DIABCGIhCgID8B4OEIABCKIhCgP4DgyAAQjiIhISENwOACQsGAEGIiQILAgALCwsBAEGACAsECAAAAA==",c$="c5ac6c16",iR={name:a$,data:o$,hash:c$};let u$=new a,Wl=null,s0=new Uint8Array(8);function rR(w){let x="Polynomial must be provided as a 16 char long hex string";if(typeof w!="string"||w.length!==16)return{hi:0,lo:0,err:new Error(x)};let C=+`0x${w.slice(0,8)}`,_=+`0x${w.slice(8)}`;return Number.isNaN(C)||Number.isNaN(_)?{hi:C,lo:_,err:new Error(x)}:{hi:C,lo:_,err:null}}function Jx(w,x,C){let _=new DataView(w);_.setUint32(0,x,!0),_.setUint32(4,C,!0)}function l$(w,x="c96c5795d7870f42"){let{hi:C,lo:_,err:K}=rR(x);if(K!==null)return Promise.reject(K);if(Wl===null)return Y(u$,iR,8).then(J=>(Wl=J,Jx(s0.buffer,_,C),Wl.writeMemory(s0),Wl.calculate(w)));try{Jx(s0.buffer,_,C),Wl.writeMemory(s0);let J=Wl.calculate(w);return Promise.resolve(J)}catch(J){return Promise.reject(J)}}function d$(w="c96c5795d7870f42"){let{hi:x,lo:C,err:_}=rR(w);return _!==null?Promise.reject(_):M(iR,8).then(K=>{let J=new Uint8Array(8);Jx(J.buffer,C,x),K.writeMemory(J),K.init();let te={init:()=>(K.writeMemory(J),K.init(),te),update:re=>(K.update(re),te),digest:re=>K.digest(re),save:()=>K.save(),load:re=>(K.load(re),te),blockSize:8,digestSize:8};return te})}var f$="md4",h$="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",p$="bd8ce7c7",nR={name:f$,data:h$,hash:p$};let A$=new a,a0=null;function g$(w){if(a0===null)return Y(A$,nR,16).then(x=>(a0=x,a0.calculate(w)));try{let x=a0.calculate(w);return Promise.resolve(x)}catch(x){return Promise.reject(x)}}function m$(){return M(nR,16).then(w=>{w.init();let x={init:()=>(w.init(),x),update:C=>(w.update(C),x),digest:C=>w.digest(C),save:()=>w.save(),load:C=>(w.load(C),x),blockSize:64,digestSize:16};return x})}var I$="md5",y$="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",w$="e6508e4b",sR={name:I$,data:y$,hash:w$};let b$=new a,o0=null;function v$(w){if(o0===null)return Y(b$,sR,16).then(x=>(o0=x,o0.calculate(w)));try{let x=o0.calculate(w);return Promise.resolve(x)}catch(x){return Promise.reject(x)}}function x$(){return M(sR,16).then(w=>{w.init();let x={init:()=>(w.init(),x),update:C=>(w.update(C),x),digest:C=>w.digest(C),save:()=>w.save(),load:C=>(w.load(C),x),blockSize:64,digestSize:16};return x})}var B$="sha1",E$="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",C$="6b530c24",aR={name:B$,data:E$,hash:C$};let k$=new a,c0=null;function S$(w){if(c0===null)return Y(k$,aR,20).then(x=>(c0=x,c0.calculate(w)));try{let x=c0.calculate(w);return Promise.resolve(x)}catch(x){return Promise.reject(x)}}function _$(){return M(aR,20).then(w=>{w.init();let x={init:()=>(w.init(),x),update:C=>(w.update(C),x),digest:C=>w.digest(C),save:()=>w.save(),load:C=>(w.load(C),x),blockSize:64,digestSize:20};return x})}var T$="sha3",Q$="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",N$="fb24e536",u0={name:T$,data:Q$,hash:N$};let R$=new a,lh=null;function l0(w){return[224,256,384,512].includes(w)?null:new Error("Invalid variant! Valid values: 224, 256, 384, 512")}function D$(w,x=512){if(l0(x))return Promise.reject(l0(x));let C=x/8;if(lh===null||lh.hashLength!==C)return Y(R$,u0,C).then(_=>(lh=_,lh.calculate(w,x,6)));try{let _=lh.calculate(w,x,6);return Promise.resolve(_)}catch(_){return Promise.reject(_)}}function O$(w=512){if(l0(w))return Promise.reject(l0(w));let x=w/8;return M(u0,x).then(C=>{C.init(w);let _={init:()=>(C.init(w),_),update:K=>(C.update(K),_),digest:K=>C.digest(K,6),save:()=>C.save(),load:K=>(C.load(K),_),blockSize:200-2*x,digestSize:x};return _})}let F$=new a,dh=null;function d0(w){return[224,256,384,512].includes(w)?null:new Error("Invalid variant! Valid values: 224, 256, 384, 512")}function P$(w,x=512){if(d0(x))return Promise.reject(d0(x));let C=x/8;if(dh===null||dh.hashLength!==C)return Y(F$,u0,C).then(_=>(dh=_,dh.calculate(w,x,1)));try{let _=dh.calculate(w,x,1);return Promise.resolve(_)}catch(_){return Promise.reject(_)}}function U$(w=512){if(d0(w))return Promise.reject(d0(w));let x=w/8;return M(u0,x).then(C=>{C.init(w);let _={init:()=>(C.init(w),_),update:K=>(C.update(K),_),digest:K=>C.digest(K,1),save:()=>C.save(),load:K=>(C.load(K),_),blockSize:200-2*x,digestSize:x};return _})}var H$="sha256",M$="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c2pBx6KerX1qIhkgASADcyACcSABIANxcyABQR53IAFBE3dzIAFBCndzaiAaaiICaiIJIBMgEnNxIBJzaiAJQRp3IAlBFXdzIAlBB3dzakHRxqk2aiIaIAIgAXMgA3EgAiABcXMgAkEedyACQRN3cyACQQp3c2ogGGoiA2oiESAJIBNzcSATc2ogEUEadyARQRV3cyARQQd3c2pB59KkoQFqIhggAyACcyABcSADIAJxcyADQR53IANBE3dzIANBCndzaiAUaiIBaiISIBEgCXNxIAlzaiASQRp3IBJBFXdzIBJBB3dzakGFldy9AmoiFCABIANzIAJxIAEgA3FzIAFBHncgAUETd3MgAUEKd3NqIBdqIgJqIhMgI2ogJiASaiAiIBFqICUgCWogEyASIBFzcSARc2ogE0EadyATQRV3cyATQQd3c2pBuMLs8AJqIhcgAiABcyADcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiAZaiIDaiIJIBMgEnNxIBJzaiAJQRp3IAlBFXdzIAlBB3dzakH827HpBGoiGSADIAJzIAFxIAMgAnFzIANBHncgA0ETd3MgA0EKd3NqIBpqIgFqIhEgCSATc3EgE3NqIBFBGncgEUEVd3MgEUEHd3NqQZOa4JkFaiIaIAEgA3MgAnEgASADcXMgAUEedyABQRN3cyABQQp3c2ogGGoiAmoiEiARIAlzcSAJc2ogEkEadyASQRV3cyASQQd3c2pB1OapqAZqIhggAiABcyADcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiAUaiIDaiITaiAoIBJqICQgEWogJyAJaiATIBIgEXNxIBFzaiATQRp3IBNBFXdzIBNBB3dzakG7laizB2oiFCADIAJzIAFxIAMgAnFzIANBHncgA0ETd3MgA0EKd3NqIBdqIgFqIgkgEyASc3EgEnNqIAlBGncgCUEVd3MgCUEHd3NqQa6Si454aiIXIAEgA3MgAnEgASADcXMgAUEedyABQRN3cyABQQp3c2ogGWoiAmoiESAJIBNzcSATc2ogEUEadyARQRV3cyARQQd3c2pBhdnIk3lqIhkgAiABcyADcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiAaaiIDaiISIBEgCXNxIAlzaiASQRp3IBJBFXdzIBJBB3dzakGh0f+VemoiGiADIAJzIAFxIAMgAnFzIANBHncgA0ETd3MgA0EKd3NqIBhqIgFqIhNqICogEmogLSARaiApIAlqIBMgEiARc3EgEXNqIBNBGncgE0EVd3MgE0EHd3NqQcvM6cB6aiIYIAEgA3MgAnEgASADcXMgAUEedyABQRN3cyABQQp3c2ogFGoiAmoiCSATIBJzcSASc2ogCUEadyAJQRV3cyAJQQd3c2pB8JauknxqIhQgAiABcyADcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiAXaiIDaiIRIAkgE3NxIBNzaiARQRp3IBFBFXdzIBFBB3dzakGjo7G7fGoiFyADIAJzIAFxIAMgAnFzIANBHncgA0ETd3MgA0EKd3NqIBlqIgFqIhIgESAJc3EgCXNqIBJBGncgEkEVd3MgEkEHd3NqQZnQy4x9aiIZIAEgA3MgAnEgASADcXMgAUEedyABQRN3cyABQQp3c2ogGmoiAmoiE2ogMCASaiAvIBFqICsgCWogEyASIBFzcSARc2ogE0EadyATQRV3cyATQQd3c2pBpIzktH1qIhogAiABcyADcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiAYaiIDaiIJIBMgEnNxIBJzaiAJQRp3IAlBFXdzIAlBB3dzakGF67igf2oiGCADIAJzIAFxIAMgAnFzIANBHncgA0ETd3MgA0EKd3NqIBRqIgFqIhEgCSATc3EgE3NqIBFBGncgEUEVd3MgEUEHd3NqQfDAqoMBaiIUIAEgA3MgAnEgASADcXMgAUEedyABQRN3cyABQQp3c2ogF2oiAmoiEiARIAlzcSAJc2ogEkEadyASQRV3cyASQQd3c2pBloKTzQFqIhcgAiABcyADcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiAZaiIDaiITIDZqIDIgEmogNSARaiAxIAlqIBMgEiARc3EgEXNqIBNBGncgE0EVd3MgE0EHd3NqQYjY3fEBaiIZIAMgAnMgAXEgAyACcXMgA0EedyADQRN3cyADQQp3c2ogGmoiAWoiCSATIBJzcSASc2ogCUEadyAJQRV3cyAJQQd3c2pBzO6hugJqIhogASADcyACcSABIANxcyABQR53IAFBE3dzIAFBCndzaiAYaiICaiIRIAkgE3NxIBNzaiARQRp3IBFBFXdzIBFBB3dzakG1+cKlA2oiGCACIAFzIANxIAIgAXFzIAJBHncgAkETd3MgAkEKd3NqIBRqIgNqIhIgESAJc3EgCXNqIBJBGncgEkEVd3MgEkEHd3NqQbOZ8MgDaiIUIAMgAnMgAXEgAyACcXMgA0EedyADQRN3cyADQQp3c2ogF2oiAWoiE2ogLEEZdyAsQQ53cyAsQQN2cyAoaiA0aiAzQQ93IDNBDXdzIDNBCnZzaiIXIBJqIDcgEWogMyAJaiATIBIgEXNxIBFzaiATQRp3IBNBFXdzIBNBB3dzakHK1OL2BGoiGyABIANzIAJxIAEgA3FzIAFBHncgAUETd3MgAUEKd3NqIBlqIgJqIgkgEyASc3EgEnNqIAlBGncgCUEVd3MgCUEHd3NqQc+U89wFaiIZIAIgAXMgA3EgAiABcXMgAkEedyACQRN3cyACQQp3c2ogGmoiA2oiESAJIBNzcSATc2ogEUEadyARQRV3cyARQQd3c2pB89+5wQZqIhogAyACcyABcSADIAJxcyADQR53IANBE3dzIANBCndzaiAYaiIBaiISIBEgCXNxIAlzaiASQRp3IBJBFXdzIBJBB3dzakHuhb6kB2oiHCABIANzIAJxIAEgA3FzIAFBHncgAUETd3MgAUEKd3NqIBRqIgJqIhNqIC5BGXcgLkEOd3MgLkEDdnMgKmogNmogLUEZdyAtQQ53cyAtQQN2cyApaiA1aiAXQQ93IBdBDXdzIBdBCnZzaiIUQQ93IBRBDXdzIBRBCnZzaiIYIBJqIDkgEWogFCAJaiATIBIgEXNxIBFzaiATQRp3IBNBFXdzIBNBB3dzakHvxpXFB2oiCSACIAFzIANxIAIgAXFzIAJBHncgAkETd3MgAkEKd3NqIBtqIgNqIhEgEyASc3EgEnNqIBFBGncgEUEVd3MgEUEHd3NqQZTwoaZ4aiIbIAMgAnMgAXEgAyACcXMgA0EedyADQRN3cyADQQp3c2ogGWoiAWoiEiARIBNzcSATc2ogEkEadyASQRV3cyASQQd3c2pBiISc5nhqIhkgASADcyACcSABIANxcyABQR53IAFBE3dzIAFBCndzaiAaaiICaiITIBIgEXNxIBFzaiATQRp3IBNBFXdzIBNBB3dzakH6//uFeWoiGiACIAFzIANxIAIgAXFzIAJBHncgAkETd3MgAkEKd3NqIBxqIgNqIhQgPGo2AuSJAUEAID8gAyACcyABcSADIAJxcyADQR53IANBE3dzIANBCndzaiAJaiIBIANzIAJxIAEgA3FzIAFBHncgAUETd3MgAUEKd3NqIBtqIgIgAXMgA3EgAiABcXMgAkEedyACQRN3cyACQQp3c2ogGWoiAyACcyABcSADIAJxcyADQR53IANBE3dzIANBCndzaiAaaiIJajYC1IkBQQAgPSAvQRl3IC9BDndzIC9BA3ZzICtqIDdqIBhBD3cgGEENd3MgGEEKdnNqIhggEWogFCATIBJzcSASc2ogFEEadyAUQRV3cyAUQQd3c2pB69nBonpqIhkgAWoiEWo2AuCJAUEAIEEgCSADcyACcSAJIANxcyAJQR53IAlBE3dzIAlBCndzaiAZaiIBajYC0IkBQQAgPiAwQRl3IDBBDndzIDBBA3ZzIC9qIBdqIDpBD3cgOkENd3MgOkEKdnNqIBJqIBEgFCATc3EgE3NqIBFBGncgEUEVd3MgEUEHd3NqQffH5vd7aiIXIAJqIhJqNgLciQFBACBDIAEgCXMgA3EgASAJcXMgAUEedyABQRN3cyABQQp3c2ogF2oiAmo2AsyJAUEAIDsgNEEZdyA0QQ53cyA0QQN2cyAwaiA4aiAYQQ93IBhBDXdzIBhBCnZzaiATaiASIBEgFHNxIBRzaiASQRp3IBJBFXdzIBJBB3dzakHy8cWzfGoiESADamo2AtiJAUEAIAAgAiABcyAJcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiARamo2AsiJAQuyBgIEfwF+QQAoAsCJASIAQQJ2QQ9xIgFBAnRBgIkBaiICIAIoAgBBfyAAQQN0IgB0QX9zcUGAASAAdHM2AgACQAJAAkAgAUEOSQ0AAkAgAUEORw0AQQBBADYCvIkBC0GAiQEQA0EAIQIMAQsgAUENRg0BIAFBAWohAgsgAiEDAkBBBiACa0EHcSIARQ0AIAIgAGohAyACQQJ0QYCJAWohAQNAIAFBADYCACABQQRqIQEgAEF/aiIADQALCyACQXlqQQdJDQAgA0ECdCEBA0AgAUGYiQFqQgA3AgAgAUGQiQFqQgA3AgAgAUGIiQFqQgA3AgAgAUGAiQFqQgA3AgAgAUEgaiIBQThHDQALC0EAIQFBAEEAKQPAiQEiBKciAEEbdCAAQQt0QYCA/AdxciAAQQV2QYD+A3EgAEEDdEEYdnJyNgK8iQFBACAEQh2IpyIAQRh0IABBgP4DcUEIdHIgAEEIdkGA/gNxIABBGHZycjYCuIkBQYCJARADQQBBACgC5IkBIgBBGHQgAEGA/gNxQQh0ciAAQQh2QYD+A3EgAEEYdnJyNgLkiQFBAEEAKALgiQEiAEEYdCAAQYD+A3FBCHRyIABBCHZBgP4DcSAAQRh2cnI2AuCJAUEAQQAoAtyJASIAQRh0IABBgP4DcUEIdHIgAEEIdkGA/gNxIABBGHZycjYC3IkBQQBBACgC2IkBIgBBGHQgAEGA/gNxQQh0ciAAQQh2QYD+A3EgAEEYdnJyNgLYiQFBAEEAKALUiQEiAEEYdCAAQYD+A3FBCHRyIABBCHZBgP4DcSAAQRh2cnI2AtSJAUEAQQAoAtCJASIAQRh0IABBgP4DcUEIdHIgAEEIdkGA/gNxIABBGHZycjYC0IkBQQBBACgCzIkBIgBBGHQgAEGA/gNxQQh0ciAAQQh2QYD+A3EgAEEYdnJyNgLMiQFBAEEAKALIiQEiAEEYdCAAQYD+A3FBCHRyIABBCHZBgP4DcSAAQRh2cnI2AsiJAQJAQQAoAuiJASICRQ0AQQAhAANAIAFBgAlqIAFByIkBai0AADoAACABQQFqIQEgAiAAQQFqIgBB/wFxSw0ACwsLBgBBgIkBC6MBAEEAQgA3A8CJAUEAQRxBICABQeABRiIBGzYC6IkBQQBCp5/mp8b0k/2+f0Krs4/8kaOz8NsAIAEbNwPgiQFBAEKxloD+n6KFrOgAQv+kuYjFkdqCm38gARs3A9iJAUEAQpe6w4OTp5aHd0Ly5rvjo6f9p6V/IAEbNwPQiQFBAELYvZaI/KC1vjZC58yn0NbQ67O7fyABGzcDyIkBIAAQAhAECwsLAQBBgAgLBHAAAAA=",q$="8c18dd94",f0={name:H$,data:M$,hash:q$};let L$=new a,h0=null;function K$(w){if(h0===null)return Y(L$,f0,28).then(x=>(h0=x,h0.calculate(w,224)));try{let x=h0.calculate(w,224);return Promise.resolve(x)}catch(x){return Promise.reject(x)}}function V$(){return M(f0,28).then(w=>{w.init(224);let x={init:()=>(w.init(224),x),update:C=>(w.update(C),x),digest:C=>w.digest(C),save:()=>w.save(),load:C=>(w.load(C),x),blockSize:64,digestSize:28};return x})}let j$=new a,p0=null;function W$(w){if(p0===null)return Y(j$,f0,32).then(x=>(p0=x,p0.calculate(w,256)));try{let x=p0.calculate(w,256);return Promise.resolve(x)}catch(x){return Promise.reject(x)}}function oR(){return M(f0,32).then(w=>{w.init(256);let x={init:()=>(w.init(256),x),update:C=>(w.update(C),x),digest:C=>w.digest(C),save:()=>w.save(),load:C=>(w.load(C),x),blockSize:64,digestSize:32};return x})}var G$="sha512",J$="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",z$="f2e40eb1",A0={name:G$,data:J$,hash:z$};let $$=new a,g0=null;function Y$(w){if(g0===null)return Y($$,A0,48).then(x=>(g0=x,g0.calculate(w,384)));try{let x=g0.calculate(w,384);return Promise.resolve(x)}catch(x){return Promise.reject(x)}}function X$(){return M(A0,48).then(w=>{w.init(384);let x={init:()=>(w.init(384),x),update:C=>(w.update(C),x),digest:C=>w.digest(C),save:()=>w.save(),load:C=>(w.load(C),x),blockSize:128,digestSize:48};return x})}let Z$=new a,m0=null;function eY(w){if(m0===null)return Y(Z$,A0,64).then(x=>(m0=x,m0.calculate(w,512)));try{let x=m0.calculate(w,512);return Promise.resolve(x)}catch(x){return Promise.reject(x)}}function tY(){return M(A0,64).then(w=>{w.init(512);let x={init:()=>(w.init(512),x),update:C=>(w.update(C),x),digest:C=>w.digest(C),save:()=>w.save(),load:C=>(w.load(C),x),blockSize:128,digestSize:64};return x})}var iY="xxhash32",rY="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",nY="4bb12485",cR={name:iY,data:rY,hash:nY};let sY=new a,I0=null;function y0(w){return!Number.isInteger(w)||w<0||w>4294967295?new Error("Seed must be a valid 32-bit long unsigned integer."):null}function aY(w,x=0){if(y0(x))return Promise.reject(y0(x));if(I0===null)return Y(sY,cR,4).then(C=>(I0=C,I0.calculate(w,x)));try{let C=I0.calculate(w,x);return Promise.resolve(C)}catch(C){return Promise.reject(C)}}function oY(w=0){return y0(w)?Promise.reject(y0(w)):M(cR,4).then(x=>{x.init(w);let C={init:()=>(x.init(w),C),update:_=>(x.update(_),C),digest:_=>x.digest(_),save:()=>x.save(),load:_=>(x.load(_),C),blockSize:16,digestSize:4};return C})}var cY="xxhash64",uY="AGFzbQEAAAABDANgAAF/YAAAYAF/AAMHBgABAgEAAQUEAQECAgYOAn8BQdCJBQt/AEGACAsHcAgGbWVtb3J5AgAOSGFzaF9HZXRCdWZmZXIAAAlIYXNoX0luaXQAAQtIYXNoX1VwZGF0ZQACCkhhc2hfRmluYWwAAw1IYXNoX0dldFN0YXRlAAQOSGFzaF9DYWxjdWxhdGUABQpTVEFURV9TSVpFAwEKmxEGBQBBgAkLYwEBfkEAQgA3A8iJAUEAQQApA4AJIgA3A5CJAUEAIABC+erQ0OfJoeThAHw3A5iJAUEAIABCz9bTvtLHq9lCfDcDiIkBQQAgAELW64Lu6v2J9eAAfDcDgIkBQQBBADYCwIkBC70IAwV/BH4CfwJAIABFDQBBAEEAKQPIiQEgAK18NwPIiQECQEEAKALAiQEiASAAakEfSw0AAkACQCAAQQNxIgINAEGACSEDIAAhAQwBCyAAQXxxIQFBgAkhAwNAQQBBACgCwIkBIgRBAWo2AsCJASAEQaCJAWogAy0AADoAACADQQFqIQMgAkF/aiICDQALCyAAQQRJDQEDQEEAQQAoAsCJASICQQFqNgLAiQEgAkGgiQFqIAMtAAA6AAAgA0EBai0AACECQQBBACgCwIkBIgRBAWo2AsCJASAEQaCJAWogAjoAACADQQJqLQAAIQJBAEEAKALAiQEiBEEBajYCwIkBIARBoIkBaiACOgAAIANBA2otAAAhAkEAQQAoAsCJASIEQQFqNgLAiQEgBEGgiQFqIAI6AAAgA0EEaiEDIAFBfGoiAQ0ADAILCyAAQeAIaiEFAkACQCABDQBBACkDmIkBIQZBACkDkIkBIQdBACkDiIkBIQhBACkDgIkBIQlBgAkhAwwBC0GACSEDAkAgAUEfSw0AQYAJIQMCQAJAQQAgAWtBA3EiBA0AIAEhAgwBCyABIQIDQCACQaCJAWogAy0AADoAACACQQFqIQIgA0EBaiEDIARBf2oiBA0ACwsgAUFjakEDSQ0AQSAgAmshCkEAIQQDQCACIARqIgFBoIkBaiADIARqIgstAAA6AAAgAUGhiQFqIAtBAWotAAA6AAAgAUGiiQFqIAtBAmotAAA6AAAgAUGjiQFqIAtBA2otAAA6AAAgCiAEQQRqIgRHDQALIAMgBGohAwtBAEEAKQOgiQFCz9bTvtLHq9lCfkEAKQOAiQF8Qh+JQoeVr6+Ytt6bnn9+Igk3A4CJAUEAQQApA6iJAULP1tO+0ser2UJ+QQApA4iJAXxCH4lCh5Wvr5i23puef34iCDcDiIkBQQBBACkDsIkBQs/W077Sx6vZQn5BACkDkIkBfEIfiUKHla+vmLbem55/fiIHNwOQiQFBAEEAKQO4iQFCz9bTvtLHq9lCfkEAKQOYiQF8Qh+JQoeVr6+Ytt6bnn9+IgY3A5iJAQsgAEGACWohAgJAIAMgBUsNAANAIAMpAwBCz9bTvtLHq9lCfiAJfEIfiUKHla+vmLbem55/fiEJIANBGGopAwBCz9bTvtLHq9lCfiAGfEIfiUKHla+vmLbem55/fiEGIANBEGopAwBCz9bTvtLHq9lCfiAHfEIfiUKHla+vmLbem55/fiEHIANBCGopAwBCz9bTvtLHq9lCfiAIfEIfiUKHla+vmLbem55/fiEIIANBIGoiAyAFTQ0ACwtBACAGNwOYiQFBACAHNwOQiQFBACAINwOIiQFBACAJNwOAiQFBACACIANrNgLAiQEgAiADRg0AQQAhAgNAIAJBoIkBaiADIAJqLQAAOgAAIAJBAWoiAkEAKALAiQFJDQALCwvlBwIFfgV/AkACQEEAKQPIiQEiAEIgVA0AQQApA4iJASIBQgeJQQApA4CJASICQgGJfEEAKQOQiQEiA0IMiXxBACkDmIkBIgRCEol8IAJCz9bTvtLHq9lCfkIfiUKHla+vmLbem55/foVCh5Wvr5i23puef35C49zKlfzO8vWFf3wgAULP1tO+0ser2UJ+Qh+JQoeVr6+Ytt6bnn9+hUKHla+vmLbem55/fkLj3MqV/M7y9YV/fCADQs/W077Sx6vZQn5CH4lCh5Wvr5i23puef36FQoeVr6+Ytt6bnn9+QuPcypX8zvL1hX98IARCz9bTvtLHq9lCfkIfiUKHla+vmLbem55/foVCh5Wvr5i23puef35C49zKlfzO8vWFf3whAQwBC0EAKQOQiQFCxc/ZsvHluuonfCEBCyABIAB8IQBBoIkBIQVBqIkBIQYCQEEAKALAiQEiB0GgiQFqIghBqIkBSQ0AQaCJASEFAkAgB0F4aiIJQQhxDQBBACkDoIkBQs/W077Sx6vZQn5CH4lCh5Wvr5i23puef34gAIVCG4lCh5Wvr5i23puef35C49zKlfzO8vWFf3whAEGwiQEhBkGoiQEhBSAJQQhJDQELA0AgBikDAELP1tO+0ser2UJ+Qh+JQoeVr6+Ytt6bnn9+IAUpAwBCz9bTvtLHq9lCfkIfiUKHla+vmLbem55/fiAAhUIbiUKHla+vmLbem55/fkLj3MqV/M7y9YV/fIVCG4lCh5Wvr5i23puef35C49zKlfzO8vWFf3whACAGQQhqIQUgBkEQaiIGIAhNDQALIAZBeGohBQsCQAJAIAVBBGoiCSAITQ0AIAUhCQwBCyAFNQIAQoeVr6+Ytt6bnn9+IACFQheJQs/W077Sx6vZQn5C+fPd8Zn2masWfCEACwJAIAkgCEYNACAHQZ+JAWohBQJAAkAgByAJa0EBcQ0AIAkhBgwBCyAJQQFqIQYgCTEAAELFz9my8eW66id+IACFQguJQoeVr6+Ytt6bnn9+IQALIAUgCUYNAANAIAZBAWoxAABCxc/ZsvHluuonfiAGMQAAQsXP2bLx5brqJ34gAIVCC4lCh5Wvr5i23puef36FQguJQoeVr6+Ytt6bnn9+IQAgBkECaiIGIAhHDQALC0EAIABCIYggAIVCz9bTvtLHq9lCfiIAQh2IIACFQvnz3fGZ9pmrFn4iAEIgiCAAhSIBQjiGIAFCgP4Dg0IohoQgAUKAgPwHg0IYhiABQoCAgPgPg0IIhoSEIABCCIhCgICA+A+DIABCGIhCgID8B4OEIABCKIhCgP4DgyAAQjiIhISENwOACQsGAEGAiQELAgALCwsBAEGACAsEUAAAAA==",lY="177fbfa3",uR={name:cY,data:uY,hash:lY};let dY=new a,Gl=null,w0=new Uint8Array(8);function fo(w){return!Number.isInteger(w)||w<0||w>4294967295?new Error("Seed must be given as two valid 32-bit long unsigned integers (lo + high)."):null}function zx(w,x,C){let _=new DataView(w);_.setUint32(0,x,!0),_.setUint32(4,C,!0)}function fY(w,x=0,C=0){if(fo(x))return Promise.reject(fo(x));if(fo(C))return Promise.reject(fo(C));if(Gl===null)return Y(dY,uR,8).then(_=>(Gl=_,zx(w0.buffer,x,C),Gl.writeMemory(w0),Gl.calculate(w)));try{zx(w0.buffer,x,C),Gl.writeMemory(w0);let _=Gl.calculate(w);return Promise.resolve(_)}catch(_){return Promise.reject(_)}}function hY(w=0,x=0){return fo(w)?Promise.reject(fo(w)):fo(x)?Promise.reject(fo(x)):M(uR,8).then(C=>{let _=new Uint8Array(8);zx(_.buffer,w,x),C.writeMemory(_),C.init();let K={init:()=>(C.writeMemory(_),C.init(),K),update:J=>(C.update(J),K),digest:J=>C.digest(J),save:()=>C.save(),load:J=>(C.load(J),K),blockSize:32,digestSize:8};return K})}var pY="xxhash3",AY="AGFzbQEAAAABNAhgAAF/YAR/f39/AGAHf39/f39/fwBgBH9+fn4BfmAEf39/fgF+YAN/f34BfmAAAGABfwADDg0AAQIDBAUFBQYHBgAGBQQBAQICBg4CfwFBwI4FC38AQcAJCwdwCAZtZW1vcnkCAA5IYXNoX0dldEJ1ZmZlcgAACUhhc2hfSW5pdAAIC0hhc2hfVXBkYXRlAAkKSGFzaF9GaW5hbAAKDUhhc2hfR2V0U3RhdGUACw5IYXNoX0NhbGN1bGF0ZQAMClNUQVRFX1NJWkUDAQr6QQ0FAEGACgvkAwMPfgF/AX4CQCADRQ0AIAApAzAhBCAAKQM4IQUgACkDICEGIAApAyghByAAKQMQIQggACkDGCEJIAApAwAhCiAAKQMIIQsDQCAFIAFBMGopAwAiDHwgAkE4aikDACABQThqKQMAIg2FIgVCIIggBUL/////D4N+fCEFIAcgAUEgaikDACIOfCACQShqKQMAIAFBKGopAwAiD4UiB0IgiCAHQv////8Pg358IQcgCSABQRBqKQMAIhB8IAJBGGopAwAgAUEYaikDACIRhSIJQiCIIAlC/////w+DfnwhCSALIAEpAwAiEnwgAkEIaiITKQMAIAFBCGopAwAiFIUiC0IgiCALQv////8Pg358IQsgAkEwaikDACAMhSIMQiCIIAxC/////w+DfiAEfCANfCEEIAJBIGopAwAgDoUiDEIgiCAMQv////8Pg34gBnwgD3whBiACQRBqKQMAIBCFIgxCIIggDEL/////D4N+IAh8IBF8IQggAikDACAShSIMQiCIIAxC/////w+DfiAKfCAUfCEKIAFBwABqIQEgEyECIANBf2oiAw0ACyAAIAk3AxggACAKNwMAIAAgCzcDCCAAIAc3AyggACAINwMQIAAgBTcDOCAAIAY3AyAgACAENwMwCwveAgIBfwF+AkAgBCACIAEoAgAiB2siAkkNACAAIAMgBSAHQQN0aiACEAEgACAFIAZqIgcpAwAgACkDACIIQi+IhSAIhUKx893xCX43AwAgACAHKQMIIAApAwgiCEIviIUgCIVCsfPd8Ql+NwMIIAAgBykDECAAKQMQIghCL4iFIAiFQrHz3fEJfjcDECAAIAcpAxggACkDGCIIQi+IhSAIhUKx893xCX43AxggACAHKQMgIAApAyAiCEIviIUgCIVCsfPd8Ql+NwMgIAAgBykDKCAAKQMoIghCL4iFIAiFQrHz3fEJfjcDKCAAIAcpAzAgACkDMCIIQi+IhSAIhUKx893xCX43AzAgACAHKQM4IAApAzgiCEIviIUgCIVCsfPd8Ql+NwM4IAAgAyACQQZ0aiAFIAQgAmsiBxABIAEgBzYCAA8LIAAgAyAFIAdBA3RqIAQQASABIAcgBGo2AgALhQEBAX8gAiABhSADpyIEQRh0IARBgP4DcUEIdHIgBEEIdkGA/gNxIARBGHZycq1CIIYgA4V9QQA1AoCMAUIghiAAQfyLAWo1AgCEhSIDQjGJIANCGImFIAOFQqW+4/TRjIfZn39+IgNCI4ggAK18IAOFQqW+4/TRjIfZn39+IgNCHIggA4ULZwAgAiABc60gA3wiA0IhiEEALQCAjAFBEHQgAEEIdHIgAEEBdkGAjAFqLQAAQRh0ciAAQf+LAWotAAByrYUgA4VCz9bTvtLHq9lCfiIDQh2IIAOFQvnz3fGZ9pmrFn4iA0IgiCADhQuJAwEEfgJAIABBCUkNAEEAKQOAjAEgASkDICABKQMYhSACfIUiA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhCAArXwgAEH4iwFqKQMAIAEpAzAgASkDKIUgAn2FIgJ8IAJC/////w+DIgQgA0IgiCIFfiIGQv////8PgyACQiCIIgIgA0L/////D4MiA358IAQgA34iA0IgiHwiBEIghiADQv////8Pg4QgBkIgiCACIAV+fCAEQiCIfIV8IgNCJYggA4VC+fPd8ZnymasWfiIDQiCIIAOFDwsCQCAAQQRJDQAgACABQQhqKQMAIAFBEGopAwAgAhADDwsCQCAARQ0AIAAgASgCACABQQRqKAIAIAIQBA8LIAEpAzggASkDQIUgAoUiA0IhiCADhULP1tO+0ser2UJ+IgNCHYggA4VC+fPd8Zn2masWfiIDQiCIIAOFC94IAQZ+IACtQoeVr6+Ytt6bnn9+IQMCQCAAQSFJDQACQCAAQcEASQ0AAkAgAEHhAEkNACABKQNoIAJ9QQApA7iMAYUiBEL/////D4MiBSABKQNgIAJ8QQApA7CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgA3wgASkDeCACfSAAQciLAWopAwCFIgNC/////w+DIgQgASkDcCACfCAAQcCLAWopAwCFIgVCIIgiBn4iB0L/////D4MgA0IgiCIDIAVC/////w+DIgV+fCAEIAV+IgRCIIh8IgVCIIYgBEL/////D4OEIAdCIIggAyAGfnwgBUIgiHyFfCEDCyABKQNIIAJ9QQApA6iMAYUiBEL/////D4MiBSABKQNAIAJ8QQApA6CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgA3wgASkDWCACfSAAQdiLAWopAwCFIgNC/////w+DIgQgASkDUCACfCAAQdCLAWopAwCFIgVCIIgiBn4iB0L/////D4MgA0IgiCIDIAVC/////w+DIgV+fCAEIAV+IgRCIIh8IgVCIIYgBEL/////D4OEIAdCIIggAyAGfnwgBUIgiHyFfCEDCyABKQMoIAJ9QQApA5iMAYUiBEL/////D4MiBSABKQMgIAJ8QQApA5CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgA3wgASkDOCACfSAAQeiLAWopAwCFIgNC/////w+DIgQgASkDMCACfCAAQeCLAWopAwCFIgVCIIgiBn4iB0L/////D4MgA0IgiCIDIAVC/////w+DIgV+fCAEIAV+IgRCIIh8IgVCIIYgBEL/////D4OEIAdCIIggAyAGfnwgBUIgiHyFfCEDCyABKQMIIAJ9QQApA4iMAYUiBEL/////D4MiBSABKQMAIAJ8QQApA4CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgA3wgASkDGCACfSAAQfiLAWopAwCFIgNC/////w+DIgQgASkDECACfCAAQfCLAWopAwCFIgJCIIgiBX4iBkL/////D4MgA0IgiCIDIAJC/////w+DIgJ+fCAEIAJ+IgJCIIh8IgRCIIYgAkL/////D4OEIAZCIIggAyAFfnwgBEIgiHyFfCICQiWIIAKFQvnz3fGZ8pmrFn4iAkIgiCAChQv8CgQBfwV+An8BfkEAIQMgASkDeCACfUEAKQP4jAGFIgRC/////w+DIgUgASkDcCACfEEAKQPwjAGFIgZCIIgiB34iCEL/////D4MgBEIgiCIEIAZC/////w+DIgZ+fCAFIAZ+IgVCIIh8IgZCIIYgBUL/////D4OEIAhCIIggBCAHfnwgBkIgiHyFIAEpA2ggAn1BACkD6IwBhSIEQv////8PgyIFIAEpA2AgAnxBACkD4IwBhSIGQiCIIgd+IghC/////w+DIARCIIgiBCAGQv////8PgyIGfnwgBSAGfiIFQiCIfCIGQiCGIAVC/////w+DhCAIQiCIIAQgB358IAZCIIh8hSABKQNYIAJ9QQApA9iMAYUiBEL/////D4MiBSABKQNQIAJ8QQApA9CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgASkDSCACfUEAKQPIjAGFIgRC/////w+DIgUgASkDQCACfEEAKQPAjAGFIgZCIIgiB34iCEL/////D4MgBEIgiCIEIAZC/////w+DIgZ+fCAFIAZ+IgVCIIh8IgZCIIYgBUL/////D4OEIAhCIIggBCAHfnwgBkIgiHyFIAEpAzggAn1BACkDuIwBhSIEQv////8PgyIFIAEpAzAgAnxBACkDsIwBhSIGQiCIIgd+IghC/////w+DIARCIIgiBCAGQv////8PgyIGfnwgBSAGfiIFQiCIfCIGQiCGIAVC/////w+DhCAIQiCIIAQgB358IAZCIIh8hSABKQMoIAJ9QQApA6iMAYUiBEL/////D4MiBSABKQMgIAJ8QQApA6CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgASkDGCACfUEAKQOYjAGFIgRC/////w+DIgUgASkDECACfEEAKQOQjAGFIgZCIIgiB34iCEL/////D4MgBEIgiCIEIAZC/////w+DIgZ+fCAFIAZ+IgVCIIh8IgZCIIYgBUL/////D4OEIAhCIIggBCAHfnwgBkIgiHyFIAEpAwggAn1BACkDiIwBhSIEQv////8PgyIFIAEpAwAgAnxBACkDgIwBhSIGQiCIIgd+IghC/////w+DIARCIIgiBCAGQv////8PgyIGfnwgBSAGfiIFQiCIfCIGQiCGIAVC/////w+DhCAIQiCIIAQgB358IAZCIIh8hSAArUKHla+vmLbem55/fnx8fHx8fHx8IgRCJYggBIVC+fPd8ZnymasWfiIEQiCIIASFIQQCQCAAQZABSA0AIABBBHZBeGohCQNAIAEgA2oiCkELaikDACACfSADQYiNAWopAwCFIgVC/////w+DIgYgCkEDaikDACACfCADQYCNAWopAwCFIgdCIIgiCH4iC0L/////D4MgBUIgiCIFIAdC/////w+DIgd+fCAGIAd+IgZCIIh8IgdCIIYgBkL/////D4OEIAtCIIggBSAIfnwgB0IgiHyFIAR8IQQgA0EQaiEDIAlBf2oiCQ0ACwsgASkDfyACfSAAQfiLAWopAwCFIgVC/////w+DIgYgASkDdyACfCAAQfCLAWopAwCFIgJCIIgiB34iCEL/////D4MgBUIgiCIFIAJC/////w+DIgJ+fCAGIAJ+IgJCIIh8IgZCIIYgAkL/////D4OEIAhCIIggBSAHfnwgBkIgiHyFIAR8IgJCJYggAoVC+fPd8ZnymasWfiICQiCIIAKFC98FAgF+AX8CQAJAQQApA4AKIgBQRQ0AQYAIIQFCACEADAELAkBBACkDoI4BIABSDQBBACEBDAELQQAhAUEAQq+v79e895Kg/gAgAH03A/iLAUEAIABCxZbr+djShYIofDcD8IsBQQBCj/Hjja2P9JhOIAB9NwPoiwFBACAAQqus+MXV79HQfHw3A+CLAUEAQtOt1LKShbW0nn8gAH03A9iLAUEAIABCl5r0jvWWvO3JAHw3A9CLAUEAQsWDgv2v/8SxayAAfTcDyIsBQQAgAELqi7OdyOb09UN8NwPAiwFBAELIv/rLnJveueQAIAB9NwO4iwFBACAAQoqjgd/Ume2sMXw3A7CLAUEAQvm57738+MKnHSAA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QQApA4CKATcDACACQQApA4iKATcDCCACQQApA5CKATcDECACQQApA5iKATcDGCACQQApA6CKATcDICACQQApA6iKATcDKCACQQApA7CKASIFNwMwIAJBACkDuIoBIgY3AzgCQAJAQQAoAoCOASIHQcAASQ0AIAJBACgCiI4BNgJAIAIgAkHAAGpBACgCmI4BQYCMASAHQX9qQQZ2IANBACgCnI4BIgAQAiADIABqIgBBeWopAwAhCCAAKQMJIQkgACkDGSEKIAApAykhCyAHQcCLAWopAwAhBSAAKQMBIQwgB0HIiwFqKQMAIQYgB0HQiwFqKQMAIQ0gACkDESEOIAdB2IsBaikDACEPIAdB4IsBaikDACEQIAApAyEhESAHQeiLAWopAwAhEiACKQMAIRMgAikDECEUIAIpAyAhFSACKQMwIRYgAikDCCEXIAIpAxghGCACKQMoIRkgAiACKQM4IAdB8IsBaikDACIafCAAKQMxIAdB+IsBaikDACIbhSIcQiCIIBxC/////w+Dfnw3AzggGSAQfCARIBKFIhFCIIggEUL/////D4N+fCERIBggDXwgDiAPhSIOQiCIIA5C/////w+DfnwhDiAXIAV8IAwgBoUiDEIgiCAMQv////8Pg358IQwgGyAWIAsgGoUiC0IgiCALQv////8Pg358fCELIBIgFSAKIBCFIhBCIIggEEL/////D4N+fHwhECAPIBQgCSANhSINQiCIIA1C/////w+Dfnx8IRIgBiATIAggBYUiBUIgiCAFQv////8Pg358fCEIDAELIAdBwI0BaiEdQcAAIAdrIR4gAkHAAGohAAJAAkACQCAHQThNDQAgHiEfDAELAkACQEE4IAdrQQN2QQFqQQdxIh8NACACQcAAaiEAIB4hHwwBCyACQcAAaiEAIB9BA3QiICEfA0AgACAdKQMANwMAIABBCGohACAdQQhqIR0gH0F4aiIfDQALQcAAIAcgIGprIR8LAkAgBw0AA0AgACAdKQMANwMAIABBCGogHUEIaikDADcDACAAQRBqIB1BEGopAwA3AwAgAEEYaiAdQRhqKQMANwMAIABBIGogHUEgaikDADcDACAAQShqIB1BKGopAwA3AwAgAEEwaiAdQTBqKQMANwMAIABBOGogHUE4aikDADcDACAAQcAAaiEAIB1BwABqIR0gH0FAaiIfQQdLDQALCyAfRQ0BCyAfQX9qISECQCAfQQdxIiBFDQAgH0F4cSEfA0AgACAdLQAAOgAAIABBAWohACAdQQFqIR0gIEF/aiIgDQALCyAhQQdJDQADQCAAIB0pAAA3AAAgAEEIaiEAIB1BCGohHSAfQXhqIh8NAAsLIAJBwABqIB5qIR1BgIwBIQACQAJAAkAgB0EISQ0AAkAgB0E4akEDdkEBakEHcSIfDQAMAgsgH0EDdCEgQYCMASEAA0AgHSAAKQMANwMAIB1BCGohHSAAQQhqIQAgH0F/aiIfDQALIAcgIGshBwsgB0UNAQJAAkAgB0EHcSIgDQAgByEfDAELIAdBeHEhHwNAIB0gAC0AADoAACAdQQFqIR0gAEEBaiEAICBBf2oiIA0ACwsgB0EISQ0BCwNAIB0gACkAADcAACAdQQhqIR0gAEEIaiEAIB9BeGoiHw0ACwsgA0EAKAKcjgFqIgBBeWopAwAhCiAAKQMJIRMgACkDGSEUIAApAykhCyAAKQMBIQwgACkDESEOIAApAyEhESACKQMAIRUgAikDECEWIAIpAyAhFyACKQMIIRggAikDQCENIAIpA0ghDyACKQMYIRkgAikDUCESIAIpA1ghCCACKQMoIRogAikDYCEQIAIpA2ghCSACIAYgAikDcCIbfCAAKQMxIAIpA3giBoUiHEIgiCAcQv////8Pg358NwM4IBogEHwgESAJhSIRQiCIIBFC/////w+DfnwhESAZIBJ8IA4gCIUiDkIgiCAOQv////8Pg358IQ4gGCANfCAMIA+FIgxCIIggDEL/////D4N+fCEMIAYgCyAbhSILQiCIIAtC/////w+DfiAFfHwhCyAJIBcgFCAQhSIFQiCIIAVC/////w+Dfnx8IRAgCCAWIBMgEoUiBUIgiCAFQv////8Pg358fCESIA8gFSAKIA2FIgVCIIggBUL/////D4N+fHwhCAsgAykDQyACKQM4hSIFQv////8PgyIGIAMpAzsgC4UiC0IgiCINfiIPQv////8PgyAFQiCIIgUgC0L/////D4MiC358IAYgC34iBkIgiHwiC0IghiAGQv////8Pg4QgD0IgiCAFIA1+fCALQiCIfIUgAykDMyARhSIFQv////8PgyIGIAMpAysgEIUiC0IgiCINfiIPQv////8PgyAFQiCIIgUgC0L/////D4MiC358IAYgC34iBkIgiHwiC0IghiAGQv////8Pg4QgD0IgiCAFIA1+fCALQiCIfIUgAykDIyAOhSIFQv////8PgyIGIAMpAxsgEoUiC0IgiCINfiIPQv////8PgyAFQiCIIgUgC0L/////D4MiC358IAYgC34iBkIgiHwiC0IghiAGQv////8Pg4QgD0IgiCAFIA1+fCALQiCIfIUgAykDEyAMhSIFQv////8PgyIGIAMpAwsgCIUiC0IgiCINfiIPQv////8PgyAFQiCIIgUgC0L/////D4MiC358IAYgC34iBkIgiHwiC0IghiAGQv////8Pg4QgD0IgiCAFIA1+fCALQiCIfIUgBEKHla+vmLbem55/fnx8fHwiBEIliCAEhUL5893xmfKZqxZ+IgRCIIggBIUhBAwBCyAEpyEAAkBBACkDoI4BIgRQDQACQCAAQRBLDQAgAEGACCAEEAUhBAwCCwJAIABBgAFLDQAgAEGACCAEEAYhBAwCCyAAQYAIIAQQByEEDAELAkAgAEEQSw0AIAAgA0IAEAUhBAwBCwJAIABBgAFLDQAgACADQgAQBiEEDAELIAAgA0IAEAchBAtBACAEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISENwOACiABJAALBgBBgIoBCwIACwvMAQEAQYAIC8QBuP5sOSOkS758AYEs9yGtHN7UbemDkJfbckCkpLezZx/LeeZOzMDleIJa0H3M/3IhuAhGdPdDJI7gNZDmgTomTDwoUruRwwDLiNBlixtTLqNxZEiXog35TjgZ70ap3qzYqPp2P+OcND/53LvHxwtPHYpR4EvNtFkxyJ9+ydl4c2TqxayDNNPrw8WBoP/6E2PrFw3dUbfw2knTFlUmKdRonisWvlh9R6H8j/i40XrQMc5FyzqPlRYEKK/X+8q7S0B+QAIAAA==",gY="5a2fbdbb",lR={name:pY,data:AY,hash:gY};let mY=new a,Jl=null,b0=new Uint8Array(8);function ho(w){return!Number.isInteger(w)||w<0||w>4294967295?new Error("Seed must be given as two valid 32-bit long unsigned integers (lo + high)."):null}function $x(w,x,C){let _=new DataView(w);_.setUint32(0,x,!0),_.setUint32(4,C,!0)}function IY(w,x=0,C=0){if(ho(x))return Promise.reject(ho(x));if(ho(C))return Promise.reject(ho(C));if(Jl===null)return Y(mY,lR,8).then(_=>(Jl=_,$x(b0.buffer,x,C),Jl.writeMemory(b0),Jl.calculate(w)));try{$x(b0.buffer,x,C),Jl.writeMemory(b0);let _=Jl.calculate(w);return Promise.resolve(_)}catch(_){return Promise.reject(_)}}function yY(w=0,x=0){return ho(w)?Promise.reject(ho(w)):ho(x)?Promise.reject(ho(x)):M(lR,8).then(C=>{let _=new Uint8Array(8);$x(_.buffer,w,x),C.writeMemory(_),C.init();let K={init:()=>(C.writeMemory(_),C.init(),K),update:J=>(C.update(J),K),digest:J=>C.digest(J),save:()=>C.save(),load:J=>(C.load(J),K),blockSize:512,digestSize:8};return K})}var wY="xxhash128",bY="AGFzbQEAAAABKwdgAAF/YAR/f39/AGAHf39/f39/fwBgA39/fgF+YAR/f39+AGAAAGABfwADDQwAAQIDBAQEBQYFAAUFBAEBAgIGDgJ/AUHAjgULfwBBwAkLB3AIBm1lbW9yeQIADkhhc2hfR2V0QnVmZmVyAAAJSGFzaF9Jbml0AAcLSGFzaF9VcGRhdGUACApIYXNoX0ZpbmFsAAkNSGFzaF9HZXRTdGF0ZQAKDkhhc2hfQ2FsY3VsYXRlAAsKU1RBVEVfU0laRQMBCqBNDAUAQYAKC+QDAw9+AX8BfgJAIANFDQAgACkDMCEEIAApAzghBSAAKQMgIQYgACkDKCEHIAApAxAhCCAAKQMYIQkgACkDACEKIAApAwghCwNAIAUgAUEwaikDACIMfCACQThqKQMAIAFBOGopAwAiDYUiBUIgiCAFQv////8Pg358IQUgByABQSBqKQMAIg58IAJBKGopAwAgAUEoaikDACIPhSIHQiCIIAdC/////w+DfnwhByAJIAFBEGopAwAiEHwgAkEYaikDACABQRhqKQMAIhGFIglCIIggCUL/////D4N+fCEJIAsgASkDACISfCACQQhqIhMpAwAgAUEIaikDACIUhSILQiCIIAtC/////w+DfnwhCyACQTBqKQMAIAyFIgxCIIggDEL/////D4N+IAR8IA18IQQgAkEgaikDACAOhSIMQiCIIAxC/////w+DfiAGfCAPfCEGIAJBEGopAwAgEIUiDEIgiCAMQv////8Pg34gCHwgEXwhCCACKQMAIBKFIgxCIIggDEL/////D4N+IAp8IBR8IQogAUHAAGohASATIQIgA0F/aiIDDQALIAAgCTcDGCAAIAo3AwAgACALNwMIIAAgBzcDKCAAIAg3AxAgACAFNwM4IAAgBjcDICAAIAQ3AzALC94CAgF/AX4CQCAEIAIgASgCACIHayICSQ0AIAAgAyAFIAdBA3RqIAIQASAAIAUgBmoiBykDACAAKQMAIghCL4iFIAiFQrHz3fEJfjcDACAAIAcpAwggACkDCCIIQi+IhSAIhUKx893xCX43AwggACAHKQMQIAApAxAiCEIviIUgCIVCsfPd8Ql+NwMQIAAgBykDGCAAKQMYIghCL4iFIAiFQrHz3fEJfjcDGCAAIAcpAyAgACkDICIIQi+IhSAIhUKx893xCX43AyAgACAHKQMoIAApAygiCEIviIUgCIVCsfPd8Ql+NwMoIAAgBykDMCAAKQMwIghCL4iFIAiFQrHz3fEJfjcDMCAAIAcpAzggACkDOCIIQi+IhSAIhUKx893xCX43AzggACADIAJBBnRqIAUgBCACayIHEAEgASAHNgIADwsgACADIAUgB0EDdGogBBABIAEgByAEajYCAAvtAwEFfiABKQM4IAApAziFIgNC/////w+DIgQgASkDMCAAKQMwhSIFQiCIIgZ+IgdC/////w+DIANCIIgiAyAFQv////8PgyIFfnwgBCAFfiIEQiCIfCIFQiCGIARC/////w+DhCAHQiCIIAMgBn58IAVCIIh8hSABKQMoIAApAyiFIgNC/////w+DIgQgASkDICAAKQMghSIFQiCIIgZ+IgdC/////w+DIANCIIgiAyAFQv////8PgyIFfnwgBCAFfiIEQiCIfCIFQiCGIARC/////w+DhCAHQiCIIAMgBn58IAVCIIh8hSABKQMYIAApAxiFIgNC/////w+DIgQgASkDECAAKQMQhSIFQiCIIgZ+IgdC/////w+DIANCIIgiAyAFQv////8PgyIFfnwgBCAFfiIEQiCIfCIFQiCGIARC/////w+DhCAHQiCIIAMgBn58IAVCIIh8hSABKQMIIAApAwiFIgNC/////w+DIgQgASkDACAAKQMAhSIFQiCIIgZ+IgdC/////w+DIANCIIgiAyAFQv////8PgyIFfnwgBCAFfiIEQiCIfCIFQiCGIARC/////w+DhCAHQiCIIAMgBn58IAVCIIh8hSACfHx8fCICQiWIIAKFQvnz3fGZ8pmrFn4iAkIgiCAChQu6CAIFfgN/AkAgAUEJSQ0AIAAgAUH4iwFqKQMAIgQgAikDOCACKQMwhSADfIUiBUL/////D4NC95Svrwh+IAVCgICAgHCDfEEAKQOAjAEgAikDKCACKQMghSADfYUgBIUiA0IgiCIEQrHz3fEJfnwgBEKHla+vCH4iBEIgiHwgBEL/////D4MgA0L/////D4MiA0Kx893xCX58IANCh5Wvrwh+IgRCIIh8IgVCIIh8IgNCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIQgBEL/////D4MgAUF/aq1CNoaEIAVCIIZ8hSIEQiCIIgVCz9bTvgJ+IgZC/////w+DIARC/////w+DIgRCvdzKlQx+fCAEQs/W074CfiIEQiCIfCIHQiCGIghCJYggCCAEQv////8Pg4SFQvnz3fGZ8pmrFn4iBEIgiCAEhTcDACAAIAVCvdzKlQx+IANCz9bTvtLHq9lCfnwgBkIgiHwgB0IgiHwiA0IliCADhUL5893xmfKZqxZ+IgNCIIggA4U3AwgPCwJAIAFBBEkNACAAIAIpAxggAikDEIUgA6ciAkEYdCACQYD+A3FBCHRyIAJBCHZBgP4DcSACQRh2cnKtQiCGIAOFfCABQfyLAWo1AgBCIIZBADUCgIwBhIUiA0IgiCIEIAFBAnRBh5Wvr3hqrSIFfiIGQiCIIARCsfPd8Ql+fCAGQv////8PgyADQv////8PgyIDQrHz3fEJfnwgAyAFfiIDQiCIfCIEQiCIfCAEQiCGIANC/////w+DhCIEQgGGfCIDQiWIIAOFQvnz3fGZ8pmrFn4iBUIgiCAFhTcDCCAAIANCA4ggBIUiA0IjiCADhUKlvuP00YyH2Z9/fiIDQhyIIAOFNwMADwsCQCABRQ0AIAAgAigCBCACKAIAc60gA3wiBEIhiEEALQCAjAFBEHQgAUEIdHIiCSABQQF2QYCMAWotAABBGHRyIgogAUH/iwFqLQAAIgFyIguthSAEhULP1tO+0ser2UJ+IgRCHYggBIVC+fPd8Zn2masWfiIEQiCIIASFNwMAIAAgAigCDCACKAIIc60gA30iA0IhiCABQRh0IAtBgP4DcUEIdHIgCUEIdkGA/gNxIApBGHZyckENd62FIAOFQs/W077Sx6vZQn4iA0IdiCADhUL5893xmfaZqxZ+IgNCIIggA4U3AwgPCyAAIAIpA1AgAikDWIUgA4UiBEIhiCAEhULP1tO+0ser2UJ+IgRCHYggBIVC+fPd8Zn2masWfiIEQiCIIASFNwMIIAAgAikDQCACKQNIhSADhSIDQiGIIAOFQs/W077Sx6vZQn4iA0IdiCADhUL5893xmfaZqxZ+IgNCIIggA4U3AwALwwoBCn4gAa0iBEKHla+vmLbem55/fiEFAkACQCABQSFPDQBCACEGDAELQgAhBwJAIAFBwQBJDQBCACEHAkAgAUHhAEkNACACQfgAaikDACADfSABQciLAWopAwAiCIUiB0L/////D4MiCSACKQNwIAN8IAFBwIsBaikDACIKhSILQiCIIgx+Ig1CIIggB0IgiCIHIAx+fCANQv////8PgyAHIAtC/////w+DIgt+fCAJIAt+IgdCIIh8IglCIIh8QQApA7iMASILQQApA7CMASIMfIUgCUIghiAHQv////8Pg4SFIQcgAkHoAGopAwAgA30gC4UiCUL/////D4MiCyACKQNgIAN8IAyFIgxCIIgiDX4iBkL/////D4MgCUIgiCIJIAxC/////w+DIgx+fCALIAx+IgtCIIh8IgxCIIYgC0L/////D4OEIAZCIIggCSANfnwgDEIgiHyFIAV8IAggCnyFIQULIAJB2ABqKQMAIAN9IAFB2IsBaikDACIIhSIJQv////8PgyIKIAIpA1AgA3wgAUHQiwFqKQMAIguFIgxCIIgiDX4iBkL/////D4MgCUIgiCIJIAxC/////w+DIgx+fCAKIAx+IgpCIIh8IgxCIIYgCkL/////D4OEIAZCIIggCSANfnwgDEIgiHyFIAd8QQApA6iMASIJQQApA6CMASIKfIUhByACQcgAaikDACADfSAJhSIJQv////8PgyIMIAIpA0AgA3wgCoUiCkIgiCINfiIGQv////8PgyAJQiCIIgkgCkL/////D4MiCn58IAwgCn4iCkIgiHwiDEIghiAKQv////8Pg4QgBkIgiCAJIA1+fCAMQiCIfIUgBXwgCCALfIUhBQsgAkE4aikDACADfSABQeiLAWopAwAiCIUiCUL/////D4MiCiACKQMwIAN8IAFB4IsBaikDACILhSIMQiCIIg1+IgZC/////w+DIAlCIIgiCSAMQv////8PgyIMfnwgCiAMfiIKQiCIfCIMQiCGIApC/////w+DhCAGQiCIIAkgDX58IAxCIIh8hSAHfEEAKQOYjAEiB0EAKQOQjAEiCXyFIQYgAkEoaikDACADfSAHhSIHQv////8PgyIKIAIpAyAgA3wgCYUiCUIgiCIMfiINQv////8PgyAHQiCIIgcgCUL/////D4MiCX58IAogCX4iCUIgiHwiCkIghiAJQv////8Pg4QgDUIgiCAHIAx+fCAKQiCIfIUgBXwgCCALfIUhBQsgACACQRhqKQMAIAN9IAFB+IsBaikDACIHhSIIQv////8PgyIJIAIpAxAgA3wgAUHwiwFqKQMAIgqFIgtCIIgiDH4iDUL/////D4MgCEIgiCIIIAtC/////w+DIgt+fCAJIAt+IglCIIh8IgtCIIYgCUL/////D4OEIA1CIIggCCAMfnwgC0IgiHyFIAZ8QQApA4iMASIIQQApA4CMASIJfIUiCyACQQhqKQMAIAN9IAiFIghC/////w+DIgwgAikDACADfCAJhSIJQiCIIg1+IgZC/////w+DIAhCIIgiCCAJQv////8PgyIJfnwgDCAJfiIJQiCIfCIMQiCGIAlC/////w+DhCAGQiCIIAggDX58IAxCIIh8hSAFfCAHIAp8hSIFfCIHQiWIIAeFQvnz3fGZ8pmrFn4iB0IgiCAHhTcDACAAQgAgBUKHla+vmLbem55/fiAEIAN9Qs/W077Sx6vZQn58IAtC49zKlfzO8vWFf358IgNCJYggA4VC+fPd8ZnymasWfiIDQiCIIAOFfTcDCAuhDwMBfxR+An9BACEEIAJB+ABqKQMAIAN9QQApA/iMASIFhSIGQv////8PgyIHIAIpA3AgA3xBACkD8IwBIgiFIglCIIgiCn4iC0L/////D4MgBkIgiCIGIAlC/////w+DIgl+fCAHIAl+IgdCIIh8IglCIIYgB0L/////D4OEIAtCIIggBiAKfnwgCUIgiHyFIAJB2ABqKQMAIAN9QQApA9iMASIHhSIGQv////8PgyIJIAIpA1AgA3xBACkD0IwBIgqFIgtCIIgiDH4iDUL/////D4MgBkIgiCIGIAtC/////w+DIgt+fCAJIAt+IglCIIh8IgtCIIYgCUL/////D4OEIA1CIIggBiAMfnwgC0IgiHyFIAJBOGopAwAgA31BACkDuIwBIgmFIgZC/////w+DIgsgAikDMCADfEEAKQOwjAEiDIUiDUIgiCIOfiIPQv////8PgyAGQiCIIgYgDUL/////D4MiDX58IAsgDX4iC0IgiHwiDUIghiALQv////8Pg4QgD0IgiCAGIA5+fCANQiCIfIUgAkEYaikDACADfUEAKQOYjAEiC4UiBkL/////D4MiDSACKQMQIAN8QQApA5CMASIOhSIPQiCIIhB+IhFC/////w+DIAZCIIgiBiAPQv////8PgyIPfnwgDSAPfiINQiCIfCIPQiCGIA1C/////w+DhCARQiCIIAYgEH58IA9CIIh8hUEAKQOIjAEiDUEAKQOAjAEiD3yFfEEAKQOojAEiEEEAKQOgjAEiEXyFfEEAKQPIjAEiEkEAKQPAjAEiE3yFfEEAKQPojAEiFEEAKQPgjAEiFXyFIgZCJYggBoVC+fPd8ZnymasWfiIGQiCIIAaFIQYgAkHoAGopAwAgA30gFIUiFEL/////D4MiFiACKQNgIAN8IBWFIhVCIIgiF34iGEL/////D4MgFEIgiCIUIBVC/////w+DIhV+fCAWIBV+IhVCIIh8IhZCIIYgFUL/////D4OEIBhCIIggFCAXfnwgFkIgiHyFIAJByABqKQMAIAN9IBKFIhJC/////w+DIhQgAikDQCADfCAThSITQiCIIhV+IhZC/////w+DIBJCIIgiEiATQv////8PgyITfnwgFCATfiITQiCIfCIUQiCGIBNC/////w+DhCAWQiCIIBIgFX58IBRCIIh8hSACQShqKQMAIAN9IBCFIhBC/////w+DIhIgAikDICADfCARhSIRQiCIIhN+IhRC/////w+DIBBCIIgiECARQv////8PgyIRfnwgEiARfiIRQiCIfCISQiCGIBFC/////w+DhCAUQiCIIBAgE358IBJCIIh8hSACQQhqKQMAIAN9IA2FIg1C/////w+DIhAgAikDACADfCAPhSIPQiCIIhF+IhJC/////w+DIA1CIIgiDSAPQv////8PgyIPfnwgECAPfiIPQiCIfCIQQiCGIA9C/////w+DhCASQiCIIA0gEX58IBBCIIh8hSABrSIPQoeVr6+Ytt6bnn9+fCALIA58hXwgCSAMfIV8IAcgCnyFfCAFIAh8hSIFQiWIIAWFQvnz3fGZ8pmrFn4iBUIgiCAFhSEFAkAgAUGgAUgNACABQQV2QXxqIRkDQCACIARqIhpBG2opAwAgA30gBEGYjQFqKQMAIgeFIghC/////w+DIgkgGkETaikDACADfCAEQZCNAWopAwAiCoUiC0IgiCIMfiINQv////8PgyAIQiCIIgggC0L/////D4MiC358IAkgC34iCUIgiHwiC0IghiAJQv////8Pg4QgDUIgiCAIIAx+fCALQiCIfIUgBnwgBEGIjQFqKQMAIgggBEGAjQFqKQMAIgl8hSEGIBpBC2opAwAgA30gCIUiCEL/////D4MiCyAaQQNqKQMAIAN8IAmFIglCIIgiDH4iDUL/////D4MgCEIgiCIIIAlC/////w+DIgl+fCALIAl+IglCIIh8IgtCIIYgCUL/////D4OEIA1CIIggCCAMfnwgC0IgiHyFIAV8IAcgCnyFIQUgBEEgaiEEIBlBf2oiGQ0ACwsgACACQf8AaikDACADfCABQeiLAWopAwAiB4UiCEL/////D4MiCSACKQN3IAN9IAFB4IsBaikDACIKhSILQiCIIgx+Ig1C/////w+DIAhCIIgiCCALQv////8PgyILfnwgCSALfiIJQiCIfCILQiCGIAlC/////w+DhCANQiCIIAggDH58IAtCIIh8hSAGfCABQfiLAWopAwAiBiABQfCLAWopAwAiCHyFIgkgAkHvAGopAwAgA3wgBoUiBkL/////D4MiCyACKQNnIAN9IAiFIghCIIgiDH4iDUL/////D4MgBkIgiCIGIAhC/////w+DIgh+fCALIAh+IghCIIh8IgtCIIYgCEL/////D4OEIA1CIIggBiAMfnwgC0IgiHyFIAV8IAcgCnyFIgZ8IgVCJYggBYVC+fPd8ZnymasWfiIFQiCIIAWFNwMAIABCACAGQoeVr6+Ytt6bnn9+IA8gA31Cz9bTvtLHq9lCfnwgCULj3MqV/M7y9YV/fnwiA0IliCADhUL5893xmfKZqxZ+IgNCIIggA4V9NwMIC98FAgF+AX8CQAJAQQApA4AKIgBQRQ0AQYAIIQFCACEADAELAkBBACkDoI4BIABSDQBBACEBDAELQQAhAUEAQq+v79e895Kg/gAgAH03A/iLAUEAIABCxZbr+djShYIofDcD8IsBQQBCj/Hjja2P9JhOIAB9NwPoiwFBACAAQqus+MXV79HQfHw3A+CLAUEAQtOt1LKShbW0nn8gAH03A9iLAUEAIABCl5r0jvWWvO3JAHw3A9CLAUEAQsWDgv2v/8SxayAAfTcDyIsBQQAgAELqi7OdyOb09UN8NwPAiwFBAELIv/rLnJveueQAIAB9NwO4iwFBACAAQoqjgd/Ume2sMXw3A7CLAUEAQvm57738+MKnHSAAfTcDqIsBQQAgAEKo9dv7s5ynmj98NwOgiwFBAEK4sry3lNW31lggAH03A5iLAUEAIABC8cihuqm0w/zOAHw3A5CLAUEAQoihl9u445SXo38gAH03A4iL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AkHAAGogDGohC0GAjAEhAAJAAkACQCAHQQhJDQACQCAHQThqQQN2QQFqQQdxIg0NAAwCCyANQQN0IQ5BgIwBIQADQCALIAApAwA3AwAgC0EIaiELIABBCGohACANQX9qIg0NAAsgByAOayEHCyAHRQ0BAkACQCAHQQdxIg4NACAHIQ0MAQsgB0F4cSENA0AgCyAALQAAOgAAIAtBAWohCyAAQQFqIQAgDkF/aiIODQALCyAHQQhJDQELA0AgCyAAKQAANwAAIAtBCGohCyAAQQhqIQAgDUF4aiINDQALCyACIAIpAwggAikDQCIIfCADQQAoApyOAWoiACkDASACKQNIIgmFIgpCIIggCkL/////D4N+fDcDCCACIAIpAxggAikDUCIKfCAAKQMRIAIpA1giEIUiEUIgiCARQv////8Pg358NwMYIAIgECAKIAApAwmFIgpCIIggCkL/////D4N+IAIpAxB8fDcDECACIAkgCCAAQXlqKQMAhSIIQiCIIAhC/////w+DfiACKQMAfHw3AwAgACkDGSEIIAIpAyAhCSACIAIpAyggAikDYCIKfCAAKQMhIAIpA2giEIUiEUIgiCARQv////8Pg358NwMoIAIgECAJIAggCoUiCEIgiCAIQv////8Pg358fDcDICACIAYgAikDcCIIfCAAKQMxIAIpA3giBoUiCUIgiCAJQv////8Pg358NwM4IAIgBiAIIAApAymFIghCIIggCEL/////D4N+IAV8fDcDMAsgAiACIANBC2ogBEKHla+vmLbem55/fhADNwNAIAIgAiADQQAoApyOAWpBdWogBELP1tO+0ser2UJ+Qn+FEAM3A0gMAQsgBKchAAJAQQApA6COASIEUA0AAkAgAEEQSw0AIAJBwABqIABBgAggBBAEDAILAkAgAEGAAUsNACACQcAAaiAAQYAIIAQQBQwCCyACQcAAaiAAQYAIIAQQBgwBCwJAIABBEEsNACACQcAAaiAAIANCABAEDAELAkAgAEGAAUsNACACQcAAaiAAIANCABAFDAELIAJBwABqIAAgA0IAEAYLQQAgAikDcDcDuApBACACKQNgNwOoCkEAIAIpA1A3A5gKQQAgAkH4AGopAwA3A8AKQQAgAkHoAGopAwA3A7AKQQAgAkHYAGopAwA3A6AKQQAgAikDSCIEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISEIgQ3A4AKQQAgBDcDkApBACACKQNAIgRCOIYgBEKA/gODQiiGhCAEQoCA/AeDQhiGIARCgICA+A+DQgiGhIQgBEIIiEKAgID4D4MgBEIYiEKAgPwHg4QgBEIoiEKA/gODIARCOIiEhIQ3A4gKIAEkAAsGAEGAigELAgALC8wBAQBBgAgLxAG4/mw5I6RLvnwBgSz3Ia0c3tRt6YOQl9tyQKSkt7NnH8t55k7MwOV4glrQfcz/ciG4CEZ090MkjuA1kOaBOiZMPChSu5HDAMuI0GWLG1Muo3FkSJeiDflOOBnvRqnerNio+nY/45w0P/ncu8fHC08dilHgS820WTHIn37J2XhzZOrFrIM00+vDxYGg//oTY+sXDd1Rt/DaSdMWVSYp1GieKxa+WH1HofyP+LjRetAxzkXLOo+VFgQor9f7yrtLQH5AAgAA",vY="b9ab74e2",dR={name:wY,data:bY,hash:vY};let xY=new a,zl=null,v0=new Uint8Array(8);function po(w){return!Number.isInteger(w)||w<0||w>4294967295?new Error("Seed must be given as two valid 32-bit long unsigned integers (lo + high)."):null}function Yx(w,x,C){let _=new DataView(w);_.setUint32(0,x,!0),_.setUint32(4,C,!0)}function BY(w,x=0,C=0){if(po(x))return Promise.reject(po(x));if(po(C))return Promise.reject(po(C));if(zl===null)return Y(xY,dR,16).then(_=>(zl=_,Yx(v0.buffer,x,C),zl.writeMemory(v0),zl.calculate(w)));try{Yx(v0.buffer,x,C),zl.writeMemory(v0);let _=zl.calculate(w);return Promise.resolve(_)}catch(_){return Promise.reject(_)}}function EY(w=0,x=0){return po(w)?Promise.reject(po(w)):po(x)?Promise.reject(po(x)):M(dR,16).then(C=>{let _=new Uint8Array(8);Yx(_.buffer,w,x),C.writeMemory(_),C.init();let K={init:()=>(C.writeMemory(_),C.init(),K),update:J=>(C.update(J),K),digest:J=>C.digest(J),save:()=>C.save(),load:J=>(C.load(J),K),blockSize:512,digestSize:16};return K})}var CY="ripemd160",kY="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",SY="6abbce74",fR={name:CY,data:kY,hash:SY};let _Y=new a,x0=null;function TY(w){if(x0===null)return Y(_Y,fR,20).then(x=>(x0=x,x0.calculate(w)));try{let x=x0.calculate(w);return Promise.resolve(x)}catch(x){return Promise.reject(x)}}function QY(){return M(fR,20).then(w=>{w.init();let x={init:()=>(w.init(),x),update:C=>(w.update(C),x),digest:C=>w.digest(C),save:()=>w.save(),load:C=>(w.load(C),x),blockSize:64,digestSize:20};return x})}function NY(w,x){let{blockSize:C}=w,_=y(x);if(_.length>C){w.update(_);let K=w.digest("binary");return w.init(),K}return new Uint8Array(_.buffer,_.byteOffset,_.length)}function RY(w,x){w.init();let{blockSize:C}=w,_=NY(w,x),K=new Uint8Array(C);K.set(_);let J=new Uint8Array(C);for(let re=0;re<C;re++){let ye=K[re];J[re]=ye^92,K[re]=ye^54}w.update(K);let te={init:()=>(w.init(),w.update(K),te),update:re=>(w.update(re),te),digest:(re=>{let ye=w.digest("binary");return w.init(),w.update(J),w.update(ye),w.digest(re)}),save:()=>{throw new Error("save() not supported")},load:()=>{throw new Error("load() not supported")},blockSize:w.blockSize,digestSize:w.digestSize};return te}function hR(w,x){if(!w||!w.then)throw new Error('Invalid hash function is provided! Usage: createHMAC(createMD5(), "key").');return w.then(C=>RY(C,x))}function DY(w,x,C,_,K){return s(this,void 0,void 0,function*(){let J=new Uint8Array(_),te=new Uint8Array(x.length+4),re=new DataView(te.buffer),ye=y(x),kt=new Uint8Array(ye.buffer,ye.byteOffset,ye.length);te.set(kt);let Pt=0,Jt=w.digestSize,St=Math.ceil(_/Jt),$r=null,Si=null;for(let Ao=1;Ao<=St;Ao++){re.setUint32(x.length,Ao),w.init(),w.update(te),$r=w.digest("binary"),Si=$r.slice();for(let Ln=1;Ln<C;Ln++){w.init(),w.update(Si),Si=w.digest("binary");for(let go=0;go<Jt;go++)$r[go]^=Si[go]}J.set($r.subarray(0,_-Pt),Pt),Pt+=Jt}if(K==="binary")return J;let fh=new Uint8Array(_*2);return I(fh,J,_)})}let OY=w=>{if(!w||typeof w!="object")throw new Error("Invalid options parameter. It requires an object.");if(!w.hashFunction||!w.hashFunction.then)throw new Error('Invalid hash function is provided! Usage: pbkdf2("password", "salt", 1000, 32, createSHA1()).');if(!Number.isInteger(w.iterations)||w.iterations<1)throw new Error("Iterations should be a positive number");if(!Number.isInteger(w.hashLength)||w.hashLength<1)throw new Error("Hash length should be a positive number");if(w.outputType===void 0&&(w.outputType="hex"),!["hex","binary"].includes(w.outputType))throw new Error(`Insupported output type ${w.outputType}. Valid values: ['hex', 'binary']`)};function Xx(w){return s(this,void 0,void 0,function*(){OY(w);let x=yield hR(w.hashFunction,w.password);return DY(x,w.salt,w.iterations,w.hashLength,w.outputType)})}var FY="scrypt",PY="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cyICajYCOCAAIAAoAjwgAiAKakESdyAGc2o2AjwLvxIDFX8Bfg5/AkAgAkUNACAAQQd0IgNBQGoiBEEAKAKACCIFIAMgAmwiBmogAyABbGoiByADaiIIaiEJIAAgAkEHdCIKIAFBB3RqIgtsIQwgACALQYABamwhDSAAQQV0IgtBASALQQFLGyILQWBxIQ4gC0EBcSEPIAdBeGohECAHQXBqIREgB0FoaiESIAdBYGohEyAHQVhqIRQgB0FQaiEVIAdBSGohFiAHQUBqIRcgAa1Cf3whGCAEIAdqIRkgByAAQQh0IhpqIRsgACAKQYABamwhHCALQQRJIR1BACEeQQAhHwNAQQAoAoAIIiAgAyAfbGohIQJAIABFDQBBACEiAkAgHQ0AICAgHmohI0EAIQtBACEiA0AgByALaiIEICMgC2oiJCgCADYCACAEQQRqICRBBGooAgA2AgAgBEEIaiAkQQhqKAIANgIAIARBDGogJEEMaigCADYCACALQRBqIQsgDiAiQQRqIiJHDQALCyAPRQ0AIAcgIkECdCILaiAhIAtqKAIANgIACwJAIAFFDQBBACElIBwhIyAGISYDQCAFISQgACEiAkACQCAADQAgGyAXKQMANwMAIBsgFikDADcDCCAbIBUpAwA3AxAgGyAUKQMANwMYIBsgEykDADcDICAbIBIpAwA3AyggGyARKQMANwMwIBsgECkDADcDOAwBCwNAICQgJmoiCyAkIAxqIgQpAwA3AwAgC0EIaiAEQQhqKQMANwMAIAtBEGogBEEQaikDADcDACALQRhqIARBGGopAwA3AwAgC0EgaiAEQSBqKQMANwMAIAtBKGogBEEoaikDADcDACALQTBqIARBMGopAwA3AwAgC0E4aiAEQThqKQMANwMAIAtBwABqIARBwABqKQMANwMAIAtByABqIARByABqKQMANwMAIAtB0ABqIARB0ABqKQMANwMAIAtB2ABqIARB2ABqKQMANwMAIAtB4ABqIARB4ABqKQMANwMAIAtB6ABqIARB6ABqKQMANwMAIAtB8ABqIARB8ABqKQMANwMAIAtB+ABqIARB+ABqKQMANwMAICRBgAFqISQgIkF/aiIiDQALIAcgCCAbIAAQAiAFISQgACEiA0AgJCAjaiILICQgDWoiBCkDADcDACALQQhqIARBCGopAwA3AwAgC0EQaiAEQRBqKQMANwMAIAtBGGogBEEYaikDADcDACALQSBqIARBIGopAwA3AwAgC0EoaiAEQShqKQMANwMAIAtBMGogBEEwaikDADcDACALQThqIARBOGopAwA3AwAgC0HAAGogBEHAAGopAwA3AwAgC0HIAGogBEHIAGopAwA3AwAgC0HQAGogBEHQAGopAwA3AwAgC0HYAGogBEHYAGopAwA3AwAgC0HgAGogBEHgAGopAwA3AwAgC0HoAGogBEHoAGopAwA3AwAgC0HwAGogBEHwAGopAwA3AwAgC0H4AGogBEH4AGopAwA3AwAgJEGAAWohJCAiQX9qIiINAAsLIAggByAbIAAQAiAjIBpqISMgJiAaaiEmICVBAmoiJSABSQ0AC0EAISUDQAJAAkAgAA0AIBsgFykDADcDACAbIBYpAwA3AwggGyAVKQMANwMQIBsgFCkDADcDGCAbIBMpAwA3AyAgGyASKQMANwMoIBsgESkDADcDMCAbIBApAwA3AzgMAQsgACAKIBkpAgAgGIOnQQd0amwhJiAFISQgACEiA0AgJCAMaiILIAspAwAgJCAmaiIEKQMAhTcDACALQQhqIiMgIykDACAEQQhqKQMAhTcDACALQRBqIiMgIykDACAEQRBqKQMAhTcDACALQRhqIiMgIykDACAEQRhqKQMAhTcDACALQSBqIiMgIykDACAEQSBqKQMAhTcDACALQShqIiMgIykDACAEQShqKQMAhTcDACALQTBqIiMgIykDACAEQTBqKQMAhTcDACALQThqIiMgIykDACAEQThqKQMAhTcDACALQcAAaiIjICMpAwAgBEHAAGopAwCFNwMAIAtByABqIiMgIykDACAEQcgAaikDAIU3AwAgC0HQAGoiIyAjKQMAIARB0ABqKQMAhTcDACALQdgAaiIjICMpAwAgBEHYAGopAwCFNwMAIAtB4ABqIiMgIykDACAEQeAAaikDAIU3AwAgC0HoAGoiIyAjKQMAIARB6ABqKQMAhTcDACALQfAAaiIjICMpAwAgBEHwAGopAwCFNwMAIAtB+ABqIgsgCykDACAEQfgAaikDAIU3AwAgJEGAAWohJCAiQX9qIiINAAsgByAIIBsgABACIAAgCiAJKQIAIBiDp0EHdGpsISYgBSEkIAAhIgNAICQgDWoiCyALKQMAICQgJmoiBCkDAIU3AwAgC0EIaiIjICMpAwAgBEEIaikDAIU3AwAgC0EQaiIjICMpAwAgBEEQaikDAIU3AwAgC0EYaiIjICMpAwAgBEEYaikDAIU3AwAgC0EgaiIjICMpAwAgBEEgaikDAIU3AwAgC0EoaiIjICMpAwAgBEEoaikDAIU3AwAgC0EwaiIjICMpAwAgBEEwaikDAIU3AwAgC0E4aiIjICMpAwAgBEE4aikDAIU3AwAgC0HAAGoiIyAjKQMAIARBwABqKQMAhTcDACALQcgAaiIjICMpAwAgBEHIAGopAwCFNwMAIAtB0ABqIiMgIykDACAEQdAAaikDAIU3AwAgC0HYAGoiIyAjKQMAIARB2ABqKQMAhTcDACALQeAAaiIjICMpAwAgBEHgAGopAwCFNwMAIAtB6ABqIiMgIykDACAEQegAaikDAIU3AwAgC0HwAGoiIyAjKQMAIARB8ABqKQMAhTcDACALQfgAaiILIAspAwAgBEH4AGopAwCFNwMAICRBgAFqISQgIkF/aiIiDQALCyAIIAcgGyAAEAIgJUECaiIlIAFJDQALCwJAIABFDQBBACEiAkAgHQ0AICAgHmohI0EAIQtBACEiA0AgIyALaiIEIAcgC2oiJCgCADYCACAEQQRqICRBBGooAgA2AgAgBEEIaiAkQQhqKAIANgIAIARBDGogJEEMaigCADYCACALQRBqIQsgDiAiQQRqIiJHDQALCyAPRQ0AICEgIkECdCILaiAHIAtqKAIANgIACyAeIANqIR4gH0EBaiIfIAJHDQALCws=",UY="b32721f8",HY={name:FY,data:PY,hash:UY};function MY(w){return s(this,void 0,void 0,function*(){let{costFactor:x,blockSize:C,parallelism:_,hashLength:K}=w,J=oR(),te=yield Xx({password:w.password,salt:w.salt,iterations:1,hashLength:128*C*_,hashFunction:J,outputType:"binary"}),re=yield M(HY,0),ye=128*C*x,kt=256*C;re.setMemorySize(te.length+ye+kt),re.writeMemory(te,0),re.getExports().scrypt(C,x,_);let Pt=re.getMemory().subarray(0,128*C*_),Jt=yield Xx({password:w.password,salt:Pt,iterations:1,hashLength:K,hashFunction:J,outputType:"binary"});if(w.outputType==="hex"){let St=new Uint8Array(K*2);return I(St,Jt,K)}return Jt})}let qY=w=>w&&!(w&w-1),LY=w=>{if(!w||typeof w!="object")throw new Error("Invalid options parameter. It requires an object.");if(!Number.isInteger(w.blockSize)||w.blockSize<1)throw new Error("Block size should be a positive number");if(!Number.isInteger(w.costFactor)||w.costFactor<2||!qY(w.costFactor))throw new Error("Cost factor should be a power of 2, greater than 1");if(!Number.isInteger(w.parallelism)||w.parallelism<1)throw new Error("Parallelism should be a positive number");if(!Number.isInteger(w.hashLength)||w.hashLength<1)throw new Error("Hash length should be a positive number.");if(w.outputType===void 0&&(w.outputType="hex"),!["hex","binary"].includes(w.outputType))throw new Error(`Insupported output type ${w.outputType}. Valid values: ['hex', 'binary']`)};function KY(w){return s(this,void 0,void 0,function*(){return LY(w),MY(w)})}var VY="bcrypt",jY="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",WY="8bd8822d",pR={name:VY,data:jY,hash:WY};function GY(w){return s(this,void 0,void 0,function*(){let{costFactor:x,password:C,salt:_}=w,K=yield M(pR,0);K.writeMemory(y(_),0);let J=y(C);K.writeMemory(J,16);let te=w.outputType==="encoded"?1:0;K.getExports().bcrypt(J.length,x,te);let re=K.getMemory();if(w.outputType==="encoded")return f(re,60);if(w.outputType==="hex"){let ye=new Uint8Array(48);return I(ye,re,24)}return re.slice(0,24)})}let JY=w=>{if(!w||typeof w!="object")throw new Error("Invalid options parameter. It requires an object.");if(!Number.isInteger(w.costFactor)||w.costFactor<4||w.costFactor>31)throw new Error("Cost factor should be a number between 4 and 31");if(w.password=y(w.password),w.password.length<1)throw new Error("Password should be at least 1 byte long");if(w.password.length>72)throw new Error("Password should be at most 72 bytes long");if(w.salt=y(w.salt),w.salt.length!==16)throw new Error("Salt should be 16 bytes long");if(w.outputType===void 0&&(w.outputType="encoded"),!["hex","binary","encoded"].includes(w.outputType))throw new Error(`Insupported output type ${w.outputType}. Valid values: ['hex', 'binary', 'encoded']`)};function zY(w){return s(this,void 0,void 0,function*(){return JY(w),GY(w)})}let $Y=w=>!(!/^\$2[axyb]\$[0-3][0-9]\$[./A-Za-z0-9]{53}$/.test(w)||w[4]==="0"&&Number(w[5])<4||w[4]==="3"&&Number(w[5])>1),YY=w=>{if(!w||typeof w!="object")throw new Error("Invalid options parameter. It requires an object.");if(w.hash===void 0||typeof w.hash!="string")throw new Error("Hash should be specified");if(w.hash.length!==60)throw new Error("Hash should be 60 bytes long");if(!$Y(w.hash))throw new Error("Invalid hash");if(w.password=y(w.password),w.password.length<1)throw new Error("Password should be at least 1 byte long");if(w.password.length>72)throw new Error("Password should be at most 72 bytes long")};function XY(w){return s(this,void 0,void 0,function*(){YY(w);let{hash:x,password:C}=w,_=yield M(pR,0);_.writeMemory(y(x),0);let K=y(C);return _.writeMemory(K,60),!!_.getExports().bcrypt_verify(K.length)})}var ZY="whirlpool",eX="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",tX="8d8f6035",AR={name:ZY,data:eX,hash:tX};let iX=new a,B0=null;function rX(w){if(B0===null)return Y(iX,AR,64).then(x=>(B0=x,B0.calculate(w)));try{let x=B0.calculate(w);return Promise.resolve(x)}catch(x){return Promise.reject(x)}}function nX(){return M(AR,64).then(w=>{w.init();let x={init:()=>(w.init(),x),update:C=>(w.update(C),x),digest:C=>w.digest(C),save:()=>w.save(),load:C=>(w.load(C),x),blockSize:64,digestSize:64};return x})}var sX="sm3",aX="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",oX="b6fb4b8e",gR={name:sX,data:aX,hash:oX};let cX=new a,E0=null;function uX(w){if(E0===null)return Y(cX,gR,32).then(x=>(E0=x,E0.calculate(w)));try{let x=E0.calculate(w);return Promise.resolve(x)}catch(x){return Promise.reject(x)}}function lX(){return M(gR,32).then(w=>{w.init();let x={init:()=>(w.init(),x),update:C=>(w.update(C),x),digest:C=>w.digest(C),save:()=>w.save(),load:C=>(w.load(C),x),blockSize:64,digestSize:32};return x})}r.adler32=G,r.argon2Verify=Ux,r.argon2d=Ox,r.argon2i=Rx,r.argon2id=Dx,r.bcrypt=zY,r.bcryptVerify=XY,r.blake2b=Tx,r.blake2s=Kx,r.blake3=Xz,r.crc32=n$,r.crc64=l$,r.createAdler32=q,r.createBLAKE2b=Ll,r.createBLAKE2s=Vx,r.createBLAKE3=Zz,r.createCRC32=s$,r.createCRC64=d$,r.createHMAC=hR,r.createKeccak=U$,r.createMD4=m$,r.createMD5=x$,r.createRIPEMD160=QY,r.createSHA1=_$,r.createSHA224=V$,r.createSHA256=oR,r.createSHA3=O$,r.createSHA384=X$,r.createSHA512=tY,r.createSM3=lX,r.createWhirlpool=nX,r.createXXHash128=EY,r.createXXHash3=yY,r.createXXHash32=oY,r.createXXHash64=hY,r.keccak=P$,r.md4=g$,r.md5=v$,r.pbkdf2=Xx,r.ripemd160=TY,r.scrypt=KY,r.sha1=S$,r.sha224=K$,r.sha256=W$,r.sha3=D$,r.sha384=Y$,r.sha512=eY,r.sm3=uX,r.whirlpool=rX,r.xxhash128=BY,r.xxhash3=IY,r.xxhash32=aY,r.xxhash64=fY}))});var y3=b(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.CWIStyleWalletManager=Ne.OverlayUMPTokenInteractor=Ne.DEFAULT_PROFILE_ID=Ne.ARGON2ID_DEFAULT_HASH_LENGTH=Ne.ARGON2ID_DEFAULT_PARALLELISM=Ne.ARGON2ID_DEFAULT_MEMORY_KIB=Ne.ARGON2ID_DEFAULT_ITERATIONS=Ne.PBKDF2_NUM_ROUNDS=void 0;var ie=se(),Uv=HG(),Pv=_u();Ne.PBKDF2_NUM_ROUNDS=7777;Ne.ARGON2ID_DEFAULT_ITERATIONS=7;Ne.ARGON2ID_DEFAULT_MEMORY_KIB=131072;Ne.ARGON2ID_DEFAULT_PARALLELISM=1;Ne.ARGON2ID_DEFAULT_HASH_LENGTH=32;function STe(r){return!r||r.length<8||r.length>80||r[0]!==48?!1:r[1]===r.length-2}function _Te(r,e){if(r.length<=11)return r;let t=r.length-1,i=r[t];if(!i||!STe(i))return r;try{let n=0;for(let c=0;c<t;c++)n+=r[c].length;let s=new Array(n),a=0;for(let c=0;c<t;c++){let u=r[c];for(let l=0;l<u.length;l++)s[a++]=u[l]}if(ie.Signature.fromDER(i).verify(s,e))return r.slice(0,t)}catch{return r}return r}async function TTe(r,e,t,i,n="sha512"){var s;let a=(s=globalThis?.crypto)===null||s===void 0?void 0:s.subtle;if(a)try{let u=await a.importKey("raw",new Uint8Array(r),{name:"PBKDF2"},!1,["deriveBits"]),l=await a.deriveBits({name:"PBKDF2",salt:new Uint8Array(e),iterations:t,hash:n.toUpperCase()},u,i*8);return Array.from(new Uint8Array(l))}catch{}let o=n==="sha256"?(0,Uv.createSHA256)():(0,Uv.createSHA512)(),c=await(0,Uv.pbkdf2)({password:new Uint8Array(r),salt:new Uint8Array(e),iterations:t,hashLength:i,hashFunction:o,outputType:"binary"});return Array.from(c)}async function Bg(r,e,t){var i,n,s,a,o;let c=t||r.passwordKdf;if(!c||c.algorithm==="pbkdf2-sha512")return TTe(e,r.passwordSalt,(i=c?.iterations)!==null&&i!==void 0?i:Ne.PBKDF2_NUM_ROUNDS,32,"sha512");if(c.algorithm==="argon2id"){let u=(n=c.iterations)!==null&&n!==void 0?n:Ne.ARGON2ID_DEFAULT_ITERATIONS,l=(s=c.memoryKiB)!==null&&s!==void 0?s:Ne.ARGON2ID_DEFAULT_MEMORY_KIB,d=(a=c.parallelism)!==null&&a!==void 0?a:Ne.ARGON2ID_DEFAULT_PARALLELISM,f=(o=c.hashLength)!==null&&o!==void 0?o:Ne.ARGON2ID_DEFAULT_HASH_LENGTH,h=await(0,Uv.argon2id)({password:new Uint8Array(e),salt:new Uint8Array(r.passwordSalt),iterations:u,memorySize:l,parallelism:d,hashLength:f,outputType:"binary"});return Array.from(h)}throw new Error(`Unsupported KDF algorithm: ${c.algorithm}`)}Ne.DEFAULT_PROFILE_ID=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];var Hv=class{constructor(e=new ie.LookupResolver,t=new ie.SHIPBroadcaster(["tm_users"])){this.resolver=e,this.broadcaster=t}async findByPresentationKeyHash(e){let t={service:"ls_users",query:{presentationHash:ie.Utils.toHex(e)}},i=await this.resolver.query(t);return this.parseLookupAnswer(i)}async findByRecoveryKeyHash(e){let t={service:"ls_users",query:{recoveryHash:ie.Utils.toHex(e)}},i=await this.resolver.query(t);return this.parseLookupAnswer(i)}async buildAndSend(e,t,i,n){let s=[];if(s[0]=i.passwordSalt,s[1]=i.passwordPresentationPrimary,s[2]=i.passwordRecoveryPrimary,s[3]=i.presentationRecoveryPrimary,s[4]=i.passwordPrimaryPrivileged,s[5]=i.presentationRecoveryPrivileged,s[6]=i.presentationHash,s[7]=i.recoveryHash,s[8]=i.presentationKeyEncrypted,s[9]=i.passwordKeyEncrypted,s[10]=i.recoveryKeyEncrypted,i.profilesEncrypted&&(s[11]=i.profilesEncrypted),i.umpVersion===3&&i.passwordKdf){let p=i.profilesEncrypted?12:11;s[p]=[i.umpVersion],s[p+1]=ie.Utils.toArray(i.passwordKdf.algorithm,"utf8");let A={iterations:i.passwordKdf.iterations};i.passwordKdf.memoryKiB!==void 0&&(A.memoryKiB=i.passwordKdf.memoryKiB),i.passwordKdf.parallelism!==void 0&&(A.parallelism=i.passwordKdf.parallelism),i.passwordKdf.hashLength!==void 0&&(A.hashLength=i.passwordKdf.hashLength),s[p+2]=ie.Utils.toArray(JSON.stringify(A),"utf8")}let a=await new ie.PushDrop(e,t).lock(s,[2,"admin user management token"],"1","self",!0,!0),o=[],c;n?.currentOutpoint&&(c=await this.findByOutpoint(n.currentOutpoint),c?o.push({outpoint:n.currentOutpoint,unlockingScriptLength:73,inputDescription:"Consume old UMP token"}):n=void 0);let u=[{lockingScript:a.toHex(),satoshis:1,outputDescription:"New UMP token output"}],l;try{l=await e.createAction({description:n?"Renew UMP token (consume old, create new)":"Create new UMP token",inputs:o,outputs:u,inputBEEF:c?.beef,options:{randomizeOutputs:!1,acceptDelayedBroadcast:!1}},t)}catch(p){console.error("Error with UMP token update. Attempting a last-ditch effort to get a new one",p),l=await e.createAction({description:"Recover UMP token",outputs:u,options:{randomizeOutputs:!1,acceptDelayedBroadcast:!1}},t)}if(!l.signableTransaction){let p=l.txid||(l.tx?ie.Transaction.fromAtomicBEEF(l.tx).id("hex"):void 0);if(!p)throw new Error("No signableTransaction and no final TX found.");let A=ie.Transaction.fromAtomicBEEF(l.tx),g=await this.broadcaster.broadcast(A);return console.log("BROADCAST RESULT",g),`${p}.0`}let d="",f=l.signableTransaction.reference,h=ie.Transaction.fromBEEF(l.signableTransaction.tx);if(n?.currentOutpoint){let A=await new ie.PushDrop(e,t).unlock([2,"admin user management token"],"1","self").sign(h,0),g=await e.signAction({reference:f,spends:{0:{unlockingScript:A.toHex()}}},t);if(d=g.txid||(g.tx?ie.Transaction.fromAtomicBEEF(g.tx).id("hex"):""),!d)throw new Error("Could not finalize transaction for renewed UMP token.");let m=g.tx;if(!m)throw new Error("Final transaction data missing after signing renewed UMP token.");let I=ie.Transaction.fromAtomicBEEF(m),y=await this.broadcaster.broadcast(I);return console.log("BROADCAST RESULT",y),`${d}.0`}else{let p=await e.signAction({reference:f,spends:{}},t);if(d=p.txid||(p.tx?ie.Transaction.fromAtomicBEEF(p.tx).id("hex"):""),!d)throw new Error("Failed to finalize new UMP token transaction.");let A=p.tx;if(!A)throw new Error("Final transaction data missing after signing new UMP token.");let g=ie.Transaction.fromAtomicBEEF(A),m=await this.broadcaster.broadcast(g);return console.log("BROADCAST RESULT",m),`${d}.0`}}parseLookupAnswer(e){var t,i,n;if(e.type!=="output-list"||!e.outputs||e.outputs.length===0)return;let{beef:s,outputIndex:a}=e.outputs[0];try{let o=ie.Transaction.fromBEEF(s),c=`${o.id("hex")}.${a}`,u=ie.PushDrop.decode(o.outputs[a].lockingScript);if(!u.fields||u.fields.length<11){console.warn(`Unexpected number of fields in UMP token: ${(t=u.fields)===null||t===void 0?void 0:t.length}`);return}let l=_Te(u.fields,u.lockingPublicKey),d=l.length>=15&&((i=l[12])===null||i===void 0?void 0:i.length)===1&&l[12][0]===3,f=l.length>=14&&((n=l[11])===null||n===void 0?void 0:n.length)===1&&l[11][0]===3,h=d?12:f?11:-1,p={passwordSalt:l[0],passwordPresentationPrimary:l[1],passwordRecoveryPrimary:l[2],presentationRecoveryPrimary:l[3],passwordPrimaryPrivileged:l[4],presentationRecoveryPrivileged:l[5],presentationHash:l[6],recoveryHash:l[7],presentationKeyEncrypted:l[8],passwordKeyEncrypted:l[9],recoveryKeyEncrypted:l[10],currentOutpoint:c};if((d||!f&&l[11])&&l[11]&&l[11].length>0&&(p.profilesEncrypted=l[11]),h!==-1){p.umpVersion=l[h][0];let g=l[h+1],m=l[h+2];if(!g||!m)return p;let I=ie.Utils.toUTF8(g),y=ie.Utils.toUTF8(m);try{let v=JSON.parse(y);p.passwordKdf={algorithm:I,iterations:v.iterations,memoryKiB:v.memoryKiB,parallelism:v.parallelism,hashLength:v.hashLength}}catch(v){console.warn("Failed to parse v3 KDF params:",v)}}return p}catch(o){console.error("Failed to parse or decode UMP token:",o);return}}async findByOutpoint(e){let t=await this.resolver.query({service:"ls_users",query:{outpoint:e}});if(t.type==="output-list"&&!(!t.outputs||!t.outputs.length))return t.outputs[0]}};Ne.OverlayUMPTokenInteractor=Hv;var I3=class{constructor(e,t,i=new Hv,n,s,a,o,c){var u,l,d,f,h;this.authenticationMode="presentation-key-and-password",this.authenticationFlow="new-user",this.activeProfileId=Ne.DEFAULT_PROFILE_ID,this.profiles=[],this.adminOriginator=e,this.walletBuilder=t,this.UMPTokenInteractor=i,this.recoveryKeySaver=n,this.passwordRetriever=s,this.authenticated=!1,this.newWalletFunder=a,this.kdfConfig={algorithm:(u=c?.algorithm)!==null&&u!==void 0?u:"argon2id",iterations:(l=c?.iterations)!==null&&l!==void 0?l:Ne.ARGON2ID_DEFAULT_ITERATIONS,memoryKiB:(d=c?.memoryKiB)!==null&&d!==void 0?d:Ne.ARGON2ID_DEFAULT_MEMORY_KIB,parallelism:(f=c?.parallelism)!==null&&f!==void 0?f:Ne.ARGON2ID_DEFAULT_PARALLELISM,hashLength:(h=c?.hashLength)!==null&&h!==void 0?h:Ne.ARGON2ID_DEFAULT_HASH_LENGTH},o&&this.loadSnapshot(o).catch(p=>{console.error("Failed to load snapshot during construction:",p),this.destroy()})}async providePresentationKey(e){if(this.authenticated)throw new Error("User is already authenticated");if(this.authenticationMode==="recovery-key-and-password")throw new Error("Presentation key is not needed in this mode");let t=ie.Hash.sha256(e),i=await this.UMPTokenInteractor.findByPresentationKeyHash(t);i?(this.authenticationFlow="existing-user",this.presentationKey=e,this.currentUMPToken=i):(this.authenticationFlow="new-user",this.presentationKey=e)}async providePassword(e){if(this.authenticated)throw new Error("User is already authenticated");if(this.authenticationMode==="presentation-key-and-recovery-key")throw new Error("Password is not needed in this mode");if(this.authenticationFlow==="existing-user"){if(!this.currentUMPToken)throw new Error("Provide presentation or recovery key first.");let t=await Bg(this.currentUMPToken,ie.Utils.toArray(e,"utf8")),i,n;if(this.authenticationMode==="presentation-key-and-password"){if(!this.presentationKey)throw new Error("No presentation key found!");let s=this.XOR(this.presentationKey,t);i=new ie.SymmetricKey(s).decrypt(this.currentUMPToken.passwordPresentationPrimary)}else{if(!this.recoveryKey)throw new Error("No recovery key found!");let s=this.XOR(this.recoveryKey,t);i=new ie.SymmetricKey(s).decrypt(this.currentUMPToken.passwordRecoveryPrimary);let a=this.XOR(i,t);n=new ie.SymmetricKey(a).decrypt(this.currentUMPToken.passwordPrimaryPrivileged)}await this.setupRootInfrastructure(i,n),await this.switchProfile(this.activeProfileId)}else{if(this.authenticationMode!=="presentation-key-and-password")throw new Error("New-user flow requires presentation key and password mode.");if(!this.presentationKey)throw new Error("No presentation key provided for new-user flow.");let t=(0,ie.Random)(32);await this.recoveryKeySaver(t);let i=(0,ie.Random)(32),n={passwordSalt:i,passwordKdf:this.kdfConfig},s=await Bg(n,ie.Utils.toArray(e,"utf8")),a=(0,ie.Random)(32),o=(0,ie.Random)(32),c=new ie.SymmetricKey(this.XOR(this.presentationKey,s)),u=new ie.SymmetricKey(this.XOR(this.presentationKey,t)),l=new ie.SymmetricKey(this.XOR(t,s)),d=new ie.SymmetricKey(this.XOR(a,s)),f=new Pv.PrivilegedKeyManager(async()=>new ie.PrivateKey(o)),h={passwordSalt:i,passwordPresentationPrimary:c.encrypt(a),passwordRecoveryPrimary:l.encrypt(a),presentationRecoveryPrimary:u.encrypt(a),passwordPrimaryPrivileged:d.encrypt(o),presentationRecoveryPrivileged:u.encrypt(o),presentationHash:ie.Hash.sha256(this.presentationKey),recoveryHash:ie.Hash.sha256(t),presentationKeyEncrypted:(await f.encrypt({plaintext:this.presentationKey,protocolID:[2,"admin key wrapping"],keyID:"1"})).ciphertext,passwordKeyEncrypted:(await f.encrypt({plaintext:s,protocolID:[2,"admin key wrapping"],keyID:"1"})).ciphertext,recoveryKeyEncrypted:(await f.encrypt({plaintext:t,protocolID:[2,"admin key wrapping"],keyID:"1"})).ciphertext,profilesEncrypted:void 0,umpVersion:3,passwordKdf:this.kdfConfig};if(this.currentUMPToken=h,await this.setupRootInfrastructure(a),await this.switchProfile(Ne.DEFAULT_PROFILE_ID),this.newWalletFunder&&this.underlying)try{await this.newWalletFunder(this.presentationKey,this.underlying,this.adminOriginator)}catch(p){console.error("Error funding new wallet:",p);let A=p instanceof Error?p.message:String(p);throw new Error(`Failed to fund new wallet before publishing UMP token: ${A}`)}if(!this.underlying)throw new Error("Default profile wallet not built before attempting to publish UMP token.");this.currentUMPToken.currentOutpoint=await this.UMPTokenInteractor.buildAndSend(this.underlying,this.adminOriginator,h)}}async provideRecoveryKey(e){if(this.authenticated)throw new Error("Already authenticated");if(this.authenticationFlow==="new-user"&&this.authenticationMode!=="recovery-key-and-password")throw new Error("Do not submit recovery key in new-user flow");if(this.authenticationMode==="presentation-key-and-password")throw new Error("No recovery key required in this mode");if(this.authenticationMode==="recovery-key-and-password"){let t=ie.Hash.sha256(e),i=await this.UMPTokenInteractor.findByRecoveryKeyHash(t);if(!i)throw new Error("No user found with this recovery key");this.authenticationFlow="existing-user",this.recoveryKey=e,this.currentUMPToken=i}else{if(!this.presentationKey)throw new Error("Provide the presentation key first");if(!this.currentUMPToken)throw new Error("Current UMP token not found");let t=this.XOR(this.presentationKey,e),i=new ie.SymmetricKey(t).decrypt(this.currentUMPToken.presentationRecoveryPrimary),n=new ie.SymmetricKey(t).decrypt(this.currentUMPToken.presentationRecoveryPrivileged);await this.setupRootInfrastructure(i,n),await this.switchProfile(this.activeProfileId)}}saveSnapshot(){if(!this.rootPrimaryKey||!this.currentUMPToken)throw new Error("No root primary key or current UMP token set");let e=(0,ie.Random)(32),t=new ie.Utils.Writer;if(t.write(this.rootPrimaryKey),!this.currentUMPToken.currentOutpoint)throw new Error("UMP token cannot be saved without a current outpoint.");let i=this.serializeUMPToken(this.currentUMPToken);t.writeVarIntNum(i.length),t.write(i);let n=t.toArray(),s=new ie.SymmetricKey(e).encrypt(n),a=new ie.Utils.Writer;return a.writeUInt8(2),a.write(e),a.write(this.activeProfileId),a.write(s),a.toArray()}async loadSnapshot(e){try{let t=new ie.Utils.Reader(e),i=t.readUInt8(),n,s,a=Ne.DEFAULT_PROFILE_ID;if(i===1)n=t.read(32),s=t.read();else if(i===2)n=t.read(32),a=t.read(16),s=t.read();else throw new Error(`Unsupported snapshot version: ${i}`);let o=new ie.SymmetricKey(n).decrypt(s),c=new ie.Utils.Reader(o),u=c.read(32),l=c.readVarIntNum(),d=c.read(l),f=this.deserializeUMPToken(d);this.currentUMPToken=f,await this.setupRootInfrastructure(u),await this.switchProfile(a),this.authenticationFlow="existing-user"}catch(t){throw this.destroy(),new Error(`Failed to load snapshot: ${t.message}`)}}async syncUMPToken(){if(!this.authenticated||!this.currentUMPToken||!this.rootPrimaryKey)throw new Error("Wallet not authenticated or missing UMP token.");let e=this.currentUMPToken,t;return e.presentationHash&&e.presentationHash.length&&(t=await this.UMPTokenInteractor.findByPresentationKeyHash(e.presentationHash)),!t&&e.recoveryHash&&e.recoveryHash.length&&(t=await this.UMPTokenInteractor.findByRecoveryKeyHash(e.recoveryHash)),!t||t.currentOutpoint&&e.currentOutpoint&&t.currentOutpoint===e.currentOutpoint?!1:(this.currentUMPToken=t,await this.setupRootInfrastructure(this.rootPrimaryKey),this.saveSnapshot(),!0)}destroy(){this.underlying=void 0,this.rootPrivilegedKeyManager=void 0,this.authenticated=!1,this.rootPrimaryKey=void 0,this.currentUMPToken=void 0,this.presentationKey=void 0,this.recoveryKey=void 0,this.profiles=[],this.activeProfileId=Ne.DEFAULT_PROFILE_ID,this.authenticationMode="presentation-key-and-password",this.authenticationFlow="new-user"}listProfiles(){if(!this.authenticated)throw new Error("Not authenticated.");return[{id:Ne.DEFAULT_PROFILE_ID,name:"default",createdAt:null,active:this.activeProfileId.every(t=>t===0),identityKey:new ie.PrivateKey(this.rootPrimaryKey).toPublicKey().toString()},...this.profiles.map(t=>({id:t.id,name:t.name,createdAt:t.createdAt,active:this.activeProfileId.every((i,n)=>i===t.id[n]),identityKey:new ie.PrivateKey(this.XOR(this.rootPrimaryKey,t.primaryPad)).toPublicKey().toString()}))]}async addProfile(e){if(!this.authenticated||!this.rootPrimaryKey||!this.currentUMPToken||!this.rootPrivilegedKeyManager)throw new Error("Wallet not fully initialized or authenticated.");if(e==="default"||this.profiles.some(i=>i.name.toLowerCase()===e.toLowerCase()))throw new Error(`Profile name "${e}" is already in use.`);let t={name:e,id:(0,ie.Random)(16),primaryPad:(0,ie.Random)(32),privilegedPad:(0,ie.Random)(32),createdAt:Math.floor(Date.now()/1e3)};return this.profiles.push(t),await this.updateAuthFactors(this.currentUMPToken.passwordSalt,await this.getFactor("passwordKey"),await this.getFactor("presentationKey"),await this.getFactor("recoveryKey"),this.rootPrimaryKey,await this.getFactor("privilegedKey"),this.profiles),t.id}async deleteProfile(e){if(!this.authenticated||!this.rootPrimaryKey||!this.currentUMPToken||!this.rootPrivilegedKeyManager)throw new Error("Wallet not fully initialized or authenticated.");if(e.every(i=>i===0))throw new Error("Cannot delete the default profile.");let t=this.profiles.findIndex(i=>i.id.every((n,s)=>n===e[s]));if(t===-1)throw new Error("Profile not found.");this.profiles.splice(t,1),this.activeProfileId.every((i,n)=>i===e[n])&&await this.switchProfile(Ne.DEFAULT_PROFILE_ID),await this.updateAuthFactors(this.currentUMPToken.passwordSalt,await this.getFactor("passwordKey"),await this.getFactor("presentationKey"),await this.getFactor("recoveryKey"),this.rootPrimaryKey,await this.getFactor("privilegedKey"),this.profiles)}async switchProfile(e){if(!this.authenticated||!this.rootPrimaryKey||!this.rootPrivilegedKeyManager)throw new Error("Cannot switch profile: Wallet not authenticated or root keys missing.");let t,i;if(e.every(s=>s===0))t=this.rootPrimaryKey,i=void 0,this.activeProfileId=Ne.DEFAULT_PROFILE_ID;else{let s=this.profiles.find(a=>a.id.every((o,c)=>o===e[c]));if(!s)throw new Error("Profile not found.");t=this.XOR(this.rootPrimaryKey,s.primaryPad),i=s.privilegedPad,this.activeProfileId=e}let n=new Pv.PrivilegedKeyManager(async s=>{let o=(await this.rootPrivilegedKeyManager.getPrivilegedKey(s)).toArray(),c=i?this.XOR(o,i):o;return new ie.PrivateKey(c)});this.underlying=await this.walletBuilder(t,n,this.activeProfileId)}async changePassword(e){var t;if(!this.authenticated||!this.currentUMPToken||!this.rootPrimaryKey||!this.rootPrivilegedKeyManager)throw new Error("Not authenticated or missing required data.");let i=(0,ie.Random)(32),n=(t=this.currentUMPToken.passwordKdf)!==null&&t!==void 0?t:this.kdfConfig,a=await Bg({passwordSalt:i,passwordKdf:n},ie.Utils.toArray(e,"utf8")),o=await this.getFactor("recoveryKey"),c=await this.getFactor("presentationKey"),u=await this.getFactor("privilegedKey");await this.updateAuthFactors(i,a,c,o,this.rootPrimaryKey,u,this.profiles)}async getRecoveryKey(){if(!this.authenticated||!this.currentUMPToken||!this.rootPrivilegedKeyManager)throw new Error("Not authenticated or missing required data.");return this.getFactor("recoveryKey")}async changeRecoveryKey(){if(!this.authenticated||!this.currentUMPToken||!this.rootPrimaryKey||!this.rootPrivilegedKeyManager)throw new Error("Not authenticated or missing required data.");let e=await this.getFactor("passwordKey"),t=await this.getFactor("presentationKey"),i=await this.getFactor("privilegedKey"),n=(0,ie.Random)(32);await this.recoveryKeySaver(n),await this.updateAuthFactors(this.currentUMPToken.passwordSalt,e,t,n,this.rootPrimaryKey,i,this.profiles)}async changePresentationKey(e){if(!this.authenticated||!this.currentUMPToken||!this.rootPrimaryKey||!this.rootPrivilegedKeyManager)throw new Error("Not authenticated or missing required data.");if(e.length!==32)throw new Error("Presentation key must be 32 bytes.");let t=await this.getFactor("recoveryKey"),i=await this.getFactor("passwordKey"),n=await this.getFactor("privilegedKey");await this.updateAuthFactors(this.currentUMPToken.passwordSalt,i,e,t,this.rootPrimaryKey,n,this.profiles),this.presentationKey&&(this.presentationKey=e)}XOR(e,t){if(e.length!==t.length)throw new Error(`XOR length mismatch: ${e.length} vs ${t.length}`);let i=new Array(e.length);for(let n=0;n<e.length;n++)i[n]=e[n]^t[n];return i}async getFactor(e){if(!this.authenticated||!this.currentUMPToken||!this.rootPrivilegedKeyManager)throw new Error(`Cannot get factor "${e}": Wallet not ready.`);let t=[2,"admin key wrapping"],i="1";try{switch(e){case"passwordKey":return(await this.rootPrivilegedKeyManager.decrypt({ciphertext:this.currentUMPToken.passwordKeyEncrypted,protocolID:t,keyID:i})).plaintext;case"presentationKey":return(await this.rootPrivilegedKeyManager.decrypt({ciphertext:this.currentUMPToken.presentationKeyEncrypted,protocolID:t,keyID:i})).plaintext;case"recoveryKey":return(await this.rootPrivilegedKeyManager.decrypt({ciphertext:this.currentUMPToken.recoveryKeyEncrypted,protocolID:t,keyID:i})).plaintext;case"privilegedKey":return(await this.rootPrivilegedKeyManager.getPrivilegedKey("UMP token update",!0)).toArray();default:throw new Error(`Unknown factor name: ${e}`)}}catch(n){throw console.error(`Error decrypting factor ${e}:`,n),new Error(`Failed to decrypt factor "${e}": ${n.message}`)}}async updateAuthFactors(e,t,i,n,s,a,o){if(!this.authenticated||!this.rootPrimaryKey||!this.currentUMPToken)throw new Error("Wallet is not properly authenticated or missing data for update.");let c={...this.currentUMPToken};if(!c.currentOutpoint)throw new Error("Cannot update UMP token: Old token has no outpoint.");let u=new ie.SymmetricKey(this.XOR(i,t)),l=new ie.SymmetricKey(this.XOR(i,n)),d=new ie.SymmetricKey(this.XOR(n,t)),f=new ie.SymmetricKey(this.XOR(s,t)),h=new Pv.PrivilegedKeyManager(async()=>new ie.PrivateKey(a)),p;if(o&&o.length>0){let y=JSON.stringify(o),v=ie.Utils.toArray(y,"utf8");p=new ie.SymmetricKey(s).encrypt(v)}let A=this.currentUMPToken.passwordKdf,g={passwordSalt:e,passwordPresentationPrimary:u.encrypt(s),passwordRecoveryPrimary:d.encrypt(s),presentationRecoveryPrimary:l.encrypt(s),passwordPrimaryPrivileged:f.encrypt(a),presentationRecoveryPrivileged:l.encrypt(a),presentationHash:ie.Hash.sha256(i),recoveryHash:ie.Hash.sha256(n),presentationKeyEncrypted:(await h.encrypt({plaintext:i,protocolID:[2,"admin key wrapping"],keyID:"1"})).ciphertext,passwordKeyEncrypted:(await h.encrypt({plaintext:t,protocolID:[2,"admin key wrapping"],keyID:"1"})).ciphertext,recoveryKeyEncrypted:(await h.encrypt({plaintext:n,protocolID:[2,"admin key wrapping"],keyID:"1"})).ciphertext,profilesEncrypted:p,...A?{umpVersion:3,passwordKdf:A}:{}},m=this.activeProfileId,I=this.underlying;if(m.every(y=>y===0)||(console.log("Temporarily switching to default profile to update UMP token..."),await this.switchProfile(Ne.DEFAULT_PROFILE_ID),I=this.underlying),!I)throw new Error("Default profile wallet could not be activated for UMP token update.");try{g.currentOutpoint=await this.UMPTokenInteractor.buildAndSend(I,this.adminOriginator,g,c),this.currentUMPToken=g}finally{m.every(y=>y===0)||(console.log("Switching back to original profile..."),await this.switchProfile(m))}}serializeUMPToken(e){if(!e.currentOutpoint)throw new Error("Token must have outpoint for serialization");let t=new ie.Utils.Writer,i=e.umpVersion===3&&e.passwordKdf;t.writeUInt8(i?3:2);let n=a=>{t.writeVarIntNum(a.length),t.write(a)};if(n(e.passwordSalt),n(e.passwordPresentationPrimary),n(e.passwordRecoveryPrimary),n(e.presentationRecoveryPrimary),n(e.passwordPrimaryPrivileged),n(e.presentationRecoveryPrivileged),n(e.presentationHash),n(e.recoveryHash),n(e.presentationKeyEncrypted),n(e.passwordKeyEncrypted),n(e.recoveryKeyEncrypted),e.profilesEncrypted&&e.profilesEncrypted.length>0?(t.writeUInt8(1),n(e.profilesEncrypted)):t.writeUInt8(0),i){t.writeUInt8(1),t.writeUInt8(e.umpVersion);let a=ie.Utils.toArray(e.passwordKdf.algorithm,"utf8");n(a);let o={iterations:e.passwordKdf.iterations};e.passwordKdf.memoryKiB!==void 0&&(o.memoryKiB=e.passwordKdf.memoryKiB),e.passwordKdf.parallelism!==void 0&&(o.parallelism=e.passwordKdf.parallelism),e.passwordKdf.hashLength!==void 0&&(o.hashLength=e.passwordKdf.hashLength);let c=ie.Utils.toArray(JSON.stringify(o),"utf8");n(c)}else t.toArray()[0]===3&&t.writeUInt8(0);let s=ie.Utils.toArray(e.currentOutpoint,"utf8");return t.writeVarIntNum(s.length),t.write(s),t.toArray()}deserializeUMPToken(e){let t=new ie.Utils.Reader(e),i=t.readUInt8();if(i!==1&&i!==2&&i!==3)throw new Error(`Unsupported UMP token serialization version: ${i}`);let n=()=>{let k=t.readVarIntNum();return t.read(k)},s=n(),a=n(),o=n(),c=n(),u=n(),l=n(),d=n(),f=n(),h=n(),p=n(),A=n(),g;i>=2&&t.readUInt8()===1&&(g=n());let m,I;if(i===3&&t.readUInt8()===1){m=t.readUInt8();let T=n(),D=ie.Utils.toUTF8(T),j=n(),H=ie.Utils.toUTF8(j);try{let W=JSON.parse(H);I={algorithm:D,iterations:W.iterations,memoryKiB:W.memoryKiB,parallelism:W.parallelism,hashLength:W.hashLength}}catch(W){console.warn("Failed to parse KDF params during deserialization:",W)}}let y=t.readVarIntNum(),v=t.read(y),B=ie.Utils.toUTF8(v);return{passwordSalt:s,passwordPresentationPrimary:a,passwordRecoveryPrimary:o,presentationRecoveryPrimary:c,passwordPrimaryPrivileged:u,presentationRecoveryPrivileged:l,presentationHash:d,recoveryHash:f,presentationKeyEncrypted:h,passwordKeyEncrypted:p,recoveryKeyEncrypted:A,profilesEncrypted:g,currentOutpoint:B,umpVersion:m,passwordKdf:I}}async setupRootInfrastructure(e,t){if(!this.currentUMPToken)throw new Error("A UMP token must exist before setting up root infrastructure!");this.rootPrimaryKey=e;let i=t?new ie.PrivateKey(t):void 0;if(this.rootPrivilegedKeyManager=new Pv.PrivilegedKeyManager(async n=>{if(i){let u=i;return i=void 0,u}let s=await this.passwordRetriever(n,async u=>{try{let l=await Bg(this.currentUMPToken,ie.Utils.toArray(u,"utf8")),d=this.XOR(this.rootPrimaryKey,l);return!!new ie.SymmetricKey(d).decrypt(this.currentUMPToken.passwordPrimaryPrivileged)}catch{return!1}}),a=await Bg(this.currentUMPToken,ie.Utils.toArray(s,"utf8")),o=this.XOR(this.rootPrimaryKey,a),c=new ie.SymmetricKey(o).decrypt(this.currentUMPToken.passwordPrimaryPrivileged);return new ie.PrivateKey(c)}),this.profiles=[],this.currentUMPToken.profilesEncrypted&&this.currentUMPToken.profilesEncrypted.length>0)try{let n=new ie.SymmetricKey(e).decrypt(this.currentUMPToken.profilesEncrypted),s=ie.Utils.toUTF8(n);this.profiles=JSON.parse(s)}catch(n){throw console.error("Failed to decrypt or parse profiles:",n),this.profiles=[],new Error(`Failed to load profiles: ${n.message}`)}this.authenticated=!0}checkAuthAndUnderlying(e){if(!this.authenticated)throw new Error("User is not authenticated.");if(!this.underlying)throw new Error("Underlying wallet for the active profile is not initialized.");if(e===this.adminOriginator)throw new Error("External applications are not allowed to use the admin originator.")}async getPublicKey(e,t){return this.checkAuthAndUnderlying(t),this.underlying.getPublicKey(e,t)}async revealCounterpartyKeyLinkage(e,t){return this.checkAuthAndUnderlying(t),this.underlying.revealCounterpartyKeyLinkage(e,t)}async revealSpecificKeyLinkage(e,t){return this.checkAuthAndUnderlying(t),this.underlying.revealSpecificKeyLinkage(e,t)}async encrypt(e,t){return this.checkAuthAndUnderlying(t),this.underlying.encrypt(e,t)}async decrypt(e,t){return this.checkAuthAndUnderlying(t),this.underlying.decrypt(e,t)}async createHmac(e,t){return this.checkAuthAndUnderlying(t),this.underlying.createHmac(e,t)}async verifyHmac(e,t){return this.checkAuthAndUnderlying(t),this.underlying.verifyHmac(e,t)}async createSignature(e,t){return this.checkAuthAndUnderlying(t),this.underlying.createSignature(e,t)}async verifySignature(e,t){return this.checkAuthAndUnderlying(t),this.underlying.verifySignature(e,t)}async createAction(e,t){return this.checkAuthAndUnderlying(t),this.underlying.createAction(e,t)}async signAction(e,t){return this.checkAuthAndUnderlying(t),this.underlying.signAction(e,t)}async abortAction(e,t){return this.checkAuthAndUnderlying(t),this.underlying.abortAction(e,t)}async listActions(e,t){return this.checkAuthAndUnderlying(t),this.underlying.listActions(e,t)}async internalizeAction(e,t){return this.checkAuthAndUnderlying(t),this.underlying.internalizeAction(e,t)}async listOutputs(e,t){return this.checkAuthAndUnderlying(t),this.underlying.listOutputs(e,t)}async relinquishOutput(e,t){return this.checkAuthAndUnderlying(t),this.underlying.relinquishOutput(e,t)}async acquireCertificate(e,t){return this.checkAuthAndUnderlying(t),this.underlying.acquireCertificate(e,t)}async listCertificates(e,t){return this.checkAuthAndUnderlying(t),this.underlying.listCertificates(e,t)}async proveCertificate(e,t){return this.checkAuthAndUnderlying(t),this.underlying.proveCertificate(e,t)}async relinquishCertificate(e,t){return this.checkAuthAndUnderlying(t),this.underlying.relinquishCertificate(e,t)}async discoverByIdentityKey(e,t){return this.checkAuthAndUnderlying(t),this.underlying.discoverByIdentityKey(e,t)}async discoverByAttributes(e,t){return this.checkAuthAndUnderlying(t),this.underlying.discoverByAttributes(e,t)}async isAuthenticated(e,t){if(!this.authenticated)throw new Error("User is not authenticated.");if(t===this.adminOriginator)throw new Error("External applications are not allowed to use the admin originator.");return{authenticated:!0}}async waitForAuthentication(e,t){if(t===this.adminOriginator)throw new Error("External applications are not allowed to use the admin originator.");for(;!this.authenticated||!this.underlying;)await new Promise(i=>setTimeout(i,100));return await this.underlying.waitForAuthentication({},t)}async getHeight(e,t){return this.checkAuthAndUnderlying(t),this.underlying.getHeight({},t)}async getHeaderForHeight(e,t){return this.checkAuthAndUnderlying(t),this.underlying.getHeaderForHeight(e,t)}async getNetwork(e,t){return this.checkAuthAndUnderlying(t),this.underlying.getNetwork({},t)}async getVersion(e,t){return this.checkAuthAndUnderlying(t),this.underlying.getVersion({},t)}};Ne.CWIStyleWalletManager=I3});var MG=b(Mv=>{"use strict";Object.defineProperty(Mv,"__esModule",{value:!0});Mv.WalletSigner=void 0;var w3=class{constructor(e,t,i){this.isWalletSigner=!0,this.chain=e,this.keyDeriver=t,this.storage=i}};Mv.WalletSigner=w3});var qG=b(qv=>{"use strict";Object.defineProperty(qv,"__esModule",{value:!0});qv.SimpleWalletManager=void 0;var Bl=se(),b3=class{constructor(e,t,i){this.authenticated=!1,this.adminOriginator=e,this.walletBuilder=t,i&&this.loadSnapshot(i)}async providePrimaryKey(e){this.primaryKey=e,await this.tryBuildUnderlying()}async providePrivilegedKeyManager(e){this.underlyingPrivilegedKeyManager=e,await this.tryBuildUnderlying()}async tryBuildUnderlying(){if(this.authenticated)throw new Error("The user is already authenticated.");!this.primaryKey||!this.underlyingPrivilegedKeyManager||(this.underlying=await this.walletBuilder(this.primaryKey,this.underlyingPrivilegedKeyManager),this.authenticated=!0)}destroy(){this.underlying=void 0,this.underlyingPrivilegedKeyManager=void 0,this.authenticated=!1,this.primaryKey=void 0}saveSnapshot(){if(!this.primaryKey)throw new Error("No primary key is set; cannot save snapshot.");let e=(0,Bl.Random)(32),t=new Bl.Utils.Writer;t.writeUInt8(1),t.writeVarIntNum(this.primaryKey.length),t.write(this.primaryKey);let i=t.toArray(),n=new Bl.SymmetricKey(e).encrypt(i),s=new Bl.Utils.Writer;return s.write(e),s.write(n),s.toArray()}async loadSnapshot(e){try{let t=new Bl.Utils.Reader(e),i=t.read(32),n=t.read(),s=new Bl.SymmetricKey(i).decrypt(n),a=new Bl.Utils.Reader(s),o=a.readUInt8();if(o!==1)throw new Error(`Unsupported snapshot version: ${o}`);let c=a.readVarIntNum(),u=a.read(c);this.primaryKey=u,await this.tryBuildUnderlying()}catch(t){throw new Error(`Failed to load snapshot: ${t.message}`)}}async isAuthenticated(e,t){return this.ensureCanCall(t),{authenticated:!0}}async waitForAuthentication(e,t){if(t===this.adminOriginator)throw new Error("External applications cannot use the admin originator.");for(;!this.authenticated;)await new Promise(i=>setTimeout(i,100));return{authenticated:!0}}async getPublicKey(e,t){return this.ensureCanCall(t),this.underlying.getPublicKey(e,t)}async revealCounterpartyKeyLinkage(e,t){return this.ensureCanCall(t),this.underlying.revealCounterpartyKeyLinkage(e,t)}async revealSpecificKeyLinkage(e,t){return this.ensureCanCall(t),this.underlying.revealSpecificKeyLinkage(e,t)}async encrypt(e,t){return this.ensureCanCall(t),this.underlying.encrypt(e,t)}async decrypt(e,t){return this.ensureCanCall(t),this.underlying.decrypt(e,t)}async createHmac(e,t){return this.ensureCanCall(t),this.underlying.createHmac(e,t)}async verifyHmac(e,t){return this.ensureCanCall(t),this.underlying.verifyHmac(e,t)}async createSignature(e,t){return this.ensureCanCall(t),this.underlying.createSignature(e,t)}async verifySignature(e,t){return this.ensureCanCall(t),this.underlying.verifySignature(e,t)}async createAction(e,t){return this.ensureCanCall(t),this.underlying.createAction(e,t)}async signAction(e,t){return this.ensureCanCall(t),this.underlying.signAction(e,t)}async abortAction(e,t){return this.ensureCanCall(t),this.underlying.abortAction(e,t)}async listActions(e,t){return this.ensureCanCall(t),this.underlying.listActions(e,t)}async internalizeAction(e,t){return this.ensureCanCall(t),this.underlying.internalizeAction(e,t)}async listOutputs(e,t){return this.ensureCanCall(t),this.underlying.listOutputs(e,t)}async relinquishOutput(e,t){return this.ensureCanCall(t),this.underlying.relinquishOutput(e,t)}async acquireCertificate(e,t){return this.ensureCanCall(t),this.underlying.acquireCertificate(e,t)}async listCertificates(e,t){return this.ensureCanCall(t),this.underlying.listCertificates(e,t)}async proveCertificate(e,t){return this.ensureCanCall(t),this.underlying.proveCertificate(e,t)}async relinquishCertificate(e,t){return this.ensureCanCall(t),this.underlying.relinquishCertificate(e,t)}async discoverByIdentityKey(e,t){return this.ensureCanCall(t),this.underlying.discoverByIdentityKey(e,t)}async discoverByAttributes(e,t){return this.ensureCanCall(t),this.underlying.discoverByAttributes(e,t)}async getHeight(e,t){return this.ensureCanCall(t),this.underlying.getHeight({},t)}async getHeaderForHeight(e,t){return this.ensureCanCall(t),this.underlying.getHeaderForHeight(e,t)}async getNetwork(e,t){return this.ensureCanCall(t),this.underlying.getNetwork({},t)}async getVersion(e,t){return this.ensureCanCall(t),this.underlying.getVersion({},t)}ensureCanCall(e){if(e===this.adminOriginator)throw new Error("External applications cannot use the admin originator.");if(!this.authenticated)throw new Error("User is not authenticated.")}};qv.SimpleWalletManager=b3});var Eg=b(Lv=>{"use strict";Object.defineProperty(Lv,"__esModule",{value:!0});Lv.AuthMethodInteractor=void 0;var v3=class{async postAuth(e,t,i,n){let s=await fetch(`${e}/auth/${t}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({methodType:this.methodType,presentationKey:i,payload:n})});return s.ok?s.json():{success:!1,message:`HTTP error ${s.status}`}}async startAuth(e,t,i){return this.postAuth(e,"start",t,i)}async completeAuth(e,t,i){return this.postAuth(e,"complete",t,i)}};Lv.AuthMethodInteractor=v3});var LG=b(Kv=>{"use strict";Object.defineProperty(Kv,"__esModule",{value:!0});Kv.PersonaIDInteractor=void 0;var QTe=Eg(),x3=class extends QTe.AuthMethodInteractor{constructor(){super(...arguments),this.methodType="PersonaID"}};Kv.PersonaIDInteractor=x3});var KG=b(Vv=>{"use strict";Object.defineProperty(Vv,"__esModule",{value:!0});Vv.TwilioPhoneInteractor=void 0;var NTe=Eg(),B3=class extends NTe.AuthMethodInteractor{constructor(){super(...arguments),this.methodType="TwilioPhone"}};Vv.TwilioPhoneInteractor=B3});var VG=b(jv=>{"use strict";Object.defineProperty(jv,"__esModule",{value:!0});jv.DevConsoleInteractor=void 0;var RTe=Eg(),E3=class extends RTe.AuthMethodInteractor{constructor(){super(...arguments),this.methodType="DevConsole"}};jv.DevConsoleInteractor=E3});var k3=b(Wv=>{"use strict";Object.defineProperty(Wv,"__esModule",{value:!0});Wv.WABClient=void 0;var DTe=se(),C3=class{constructor(e){this.serverUrl=e}async getInfo(){return(await fetch(`${this.serverUrl}/info`)).json()}generateRandomPresentationKey(){return DTe.PrivateKey.fromRandom().toHex()}async startAuthMethod(e,t,i){return e.startAuth(this.serverUrl,t,i)}async completeAuthMethod(e,t,i){return e.completeAuth(this.serverUrl,t,i)}async listLinkedMethods(e){return(await fetch(`${this.serverUrl}/user/linkedMethods`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({presentationKey:e})})).json()}async unlinkMethod(e,t){return(await fetch(`${this.serverUrl}/user/unlinkMethod`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({presentationKey:e,authMethodId:t})})).json()}async requestFaucet(e){return(await fetch(`${this.serverUrl}/faucet/request`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({presentationKey:e})})).json()}async deleteUser(e){return(await fetch(`${this.serverUrl}/user/delete`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({presentationKey:e})})).json()}async startShareAuth(e,t,i){return(await fetch(`${this.serverUrl}/auth/start`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({methodType:e,presentationKey:t,payload:i})})).json()}async storeShare(e,t,i,n){return(await fetch(`${this.serverUrl}/share/store`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({methodType:e,payload:t,shareB:i,userIdHash:n})})).json()}async retrieveShare(e,t,i){return(await fetch(`${this.serverUrl}/share/retrieve`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({methodType:e,payload:t,userIdHash:i})})).json()}async updateShare(e,t,i,n){return(await fetch(`${this.serverUrl}/share/update`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({methodType:e,payload:t,userIdHash:i,newShareB:n})})).json()}async deleteShamirUser(e,t,i){return(await fetch(`${this.serverUrl}/share/delete`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({methodType:e,payload:t,userIdHash:i})})).json()}};Wv.WABClient=C3});var WG=b(Gv=>{"use strict";Object.defineProperty(Gv,"__esModule",{value:!0});Gv.WalletAuthenticationManager=void 0;var jG=y3(),so=se(),S3=class extends jG.CWIStyleWalletManager{constructor(e,t,i=new jG.OverlayUMPTokenInteractor,n,s,a,o,c){super(e,t,i,n,s,async(u,l,d)=>{let f=await this.wabClient.requestFaucet(so.Utils.toHex(u)),h=f?.paymentData;if(!f?.success||!h)throw new Error(`Faucet request failed: ${f?.message||"Missing paymentData from WAB"}`);if(!h.k||!h.tx||!h.txid)throw new Error("Faucet response missing required fields: k, tx, or txid");try{let p=so.Transaction.fromAtomicBEEF(h.tx),A=await l.createAction({inputBEEF:p.toBEEF(),inputs:[{outpoint:`${h.txid}.0`,unlockingScriptLength:108,inputDescription:"Fund from faucet"}],description:"Fund wallet",options:{acceptDelayedBroadcast:!1}},d);if(!A.signableTransaction)throw new Error("Faucet redemption did not return a signableTransaction");let g=so.Transaction.fromAtomicBEEF(A.signableTransaction.tx),m=new so.RPuzzle,I=so.PrivateKey.fromRandom(),v=await m.unlock(new so.BigNumber(h.k,16),I).sign(g,0);await l.signAction({reference:A.signableTransaction.reference,spends:{0:{unlockingScript:v.toHex()}}})}catch(p){let A=p instanceof Error?p.message:String(p);throw new Error(`Faucet redemption failed: ${A}`)}},c),this.wabClient=a,this.authMethod=o}setAuthMethod(e){this.authMethod=e}async startAuth(e){if(!this.authMethod)throw new Error("No AuthMethod selected in WalletAuthenticationManager");this.tempPresentationKey=this.generateTemporaryPresentationKey();let t=await this.wabClient.startAuthMethod(this.authMethod,this.tempPresentationKey,e);if(!t.success)throw new Error(t.message||"Failed to start WAB auth method")}async completeAuth(e){if(!this.authMethod||!this.tempPresentationKey)throw new Error("No AuthMethod selected in WalletAuthenticationManager or startAuth has yet to be called.");let t=this.tempPresentationKey;this.tempPresentationKey=void 0;let i=await this.wabClient.completeAuthMethod(this.authMethod,t,e);if(!i.success||!i.presentationKey)throw new Error(i.message||"Failed to complete WAB auth");let n=i.presentationKey,s=so.Utils.toArray(n,"hex");await this.providePresentationKey(s)}generateTemporaryPresentationKey(){let e=(0,so.Random)(32);return so.Utils.toHex(e)}};Gv.WalletAuthenticationManager=S3});var JG=b(Jv=>{"use strict";Object.defineProperty(Jv,"__esModule",{value:!0});Jv.WalletPermissionsManager=void 0;var ee=se(),OTe=qw();function El(r,e){if(r==null||e===null||e===void 0)return r===e;let t=Object.keys(r),i=Object.keys(e);if(t.length!==i.length)return!1;for(let n of t){let s=r[n],a=e[n],o=GG(s)&&GG(a);if(o&&!El(s,a)||!o&&s!==a)return!1}return!0}function GG(r){return r!=null&&typeof r=="object"}var jr={protocol:"admin protocol-permission",basket:"admin basket-access",certificate:"admin certificate-access",spending:"admin spending-authorization"},ao=class r{constructor(e,t,i={}){this.callbacks={onProtocolPermissionRequested:[],onBasketAccessRequested:[],onCertificateAccessRequested:[],onSpendingAuthorizationRequested:[],onGroupedPermissionRequested:[],onCounterpartyPermissionRequested:[]},this.activeRequests=new Map,this.permissionCache=new Map,this.recentGrants=new Map,this.manifestCache=new Map,this.manifestFetchInProgress=new Map,this.groupedPermissionFlowTail=new Map,this.pactEstablishedCache=new Map,this.underlying=e,this.adminOriginator=this.normalizeOriginator(t)||t,this.config={seekProtocolPermissionsForSigning:!0,seekProtocolPermissionsForEncrypting:!0,seekProtocolPermissionsForHMAC:!0,seekPermissionsForKeyLinkageRevelation:!0,seekPermissionsForPublicKeyRevelation:!0,seekPermissionsForIdentityKeyRevelation:!0,seekPermissionsForIdentityResolution:!0,seekBasketInsertionPermissions:!0,seekBasketRemovalPermissions:!0,seekBasketListingPermissions:!0,seekPermissionWhenApplyingActionLabels:!0,seekPermissionWhenListingActionsByLabel:!0,seekCertificateDisclosurePermissions:!0,seekCertificateAcquisitionPermissions:!0,seekCertificateRelinquishmentPermissions:!0,seekCertificateListingPermissions:!0,encryptWalletMetadata:!0,seekSpendingPermissions:!0,seekGroupedPermission:!0,differentiatePrivilegedOperations:!0,whitelistedCounterparties:{},...i}}async delegateToPModuleIfNeeded(e,t,i,n,s){var a;if(!e.startsWith("p "))return null;let o=e.split(" ")[1],c=(a=this.config.permissionModules)===null||a===void 0?void 0:a[o];if(!c)throw new Error(`Unsupported P-module scheme: p ${o}`);let u=await c.onRequest({method:t,args:i,originator:n}),l=await s(u.args,n);return await c.onResponse(l,{method:t,originator:n})}addPModuleByScheme(e,t,i){var n;if(i.has(e))return;let s=(n=this.config.permissionModules)===null||n===void 0?void 0:n[e];if(!s)throw new Error(`Unsupported P-${t} scheme: p ${e}`);i.set(e,s)}splitLabelsByPermissionModule(e,t){let i=[];if(!e)return i;for(let n of e)if(n.startsWith("p ")){let s=n.slice(2),a=s.indexOf(" ");if(a<=0||a===s.length-1)throw new Error(`Invalid P-label format: ${n}`);if(s[a+1]===" ")throw new Error(`Invalid P-label format: ${n}`);let o=s.slice(0,a);this.addPModuleByScheme(o,"label",t)}else i.push(n);return i}async decryptListOutputsMetadata(e){if(e.outputs)for(let t=0;t<e.outputs.length;t++)e.outputs[t].customInstructions&&(e.outputs[t].customInstructions=await this.maybeDecryptMetadata(e.outputs[t].customInstructions));return e}async decryptListActionsMetadata(e){if(e.actions)for(let t=0;t<e.actions.length;t++){if(e.actions[t].description&&(e.actions[t].description=await this.maybeDecryptMetadata(e.actions[t].description)),e.actions[t].inputs)for(let i=0;i<e.actions[t].inputs.length;i++)e.actions[t].inputs[i].inputDescription&&(e.actions[t].inputs[i].inputDescription=await this.maybeDecryptMetadata(e.actions[t].inputs[i].inputDescription));if(e.actions[t].outputs)for(let i=0;i<e.actions[t].outputs.length;i++)e.actions[t].outputs[i].outputDescription&&(e.actions[t].outputs[i].outputDescription=await this.maybeDecryptMetadata(e.actions[t].outputs[i].outputDescription)),e.actions[t].outputs[i].customInstructions&&(e.actions[t].outputs[i].customInstructions=await this.maybeDecryptMetadata(e.actions[t].outputs[i].customInstructions))}return e}bindCallback(e,t){let i=this.callbacks[e];return i.push(t),i.length-1}unbindCallback(e,t){if(!this.callbacks[e])return!1;let i=this.callbacks[e];if(typeof t=="number")return i[t]?(i[t]=null,!0):!1;{let n=i.indexOf(t);return n!==-1?(i[n]=null,!0):!1}}async callEvent(e,t){let i=this.callbacks[e]||[];for(let n of i)if(typeof n=="function")try{await n(t)}catch{}}async grantPermission(e){let t=this.activeRequests.get(e.requestID);if(!t)throw new Error("Request ID not found.");for(let i of t.pending)i.resolve(!0);if(this.activeRequests.delete(e.requestID),!e.ephemeral){let i=t.request;i.renewal?await this.renewPermissionOnChain(i.previousToken,i,e.expiry||0,e.amount):await this.createPermissionOnChain(i,e.expiry||0,e.amount)}if(!e.ephemeral){let i=e.expiry||0,n=this.buildRequestKey(t.request);this.cachePermission(n,i),this.markRecentGrant(t.request)}}async denyPermission(e){let t=this.activeRequests.get(e);if(!t)throw new Error("Request ID not found.");for(let i of t.pending)i.reject(new Error("Permission denied."));this.activeRequests.delete(e)}async grantGroupedPermission(e){var t,i,n;let s=this.activeRequests.get(e.requestID);if(!s)throw new Error("Request ID not found.");try{let a=s.request,{originator:o,permissions:c,displayOriginator:u}=a,l=this.buildOriginatorLookupValues(u,o);if(e.granted.spendingAuthorization&&!c.spendingAuthorization)throw new Error("Granted spending authorization was not part of the original request.");if(!((t=e.granted.protocolPermissions)===null||t===void 0)&&t.some(I=>{var y;return!(!((y=c.protocolPermissions)===null||y===void 0)&&y.find(v=>El(v,I)))}))throw new Error("Granted protocol permissions are not a subset of the original request.");if(!((i=e.granted.basketAccess)===null||i===void 0)&&i.some(I=>{var y;return!(!((y=c.basketAccess)===null||y===void 0)&&y.find(v=>El(v,I)))}))throw new Error("Granted basket access permissions are not a subset of the original request.");if(!((n=e.granted.certificateAccess)===null||n===void 0)&&n.some(I=>{var y;return!(!((y=c.certificateAccess)===null||y===void 0)&&y.find(v=>El(v,I)))}))throw new Error("Granted certificate access permissions are not a subset of the original request.");let d=e.expiry||0,f=[],h=[];e.granted.spendingAuthorization&&f.push({request:{type:"spending",originator:o,spending:{satoshis:e.granted.spendingAuthorization.amount},reason:e.granted.spendingAuthorization.description},expiry:0,amount:e.granted.spendingAuthorization.amount});let p=e.granted.protocolPermissions||[],A=await this.mapWithConcurrency(p,8,async I=>{var y,v;let B=((v=(y=I.protocolID)===null||y===void 0?void 0:y[0])!==null&&v!==void 0?v:0)===1?"":I.counterparty||"self",E=await this.findProtocolToken(o,!1,I.protocolID,B,!0,l);return{p:I,token:E,counterparty:B}});for(let{p:I,token:y,counterparty:v}of A){let B={type:"protocol",originator:o,privileged:!1,protocolID:I.protocolID,counterparty:v,reason:I.description};y?h.push({oldToken:y,request:B,expiry:d}):f.push({request:B,expiry:d})}for(let I of e.granted.basketAccess||[])f.push({request:{type:"basket",originator:o,basket:I.basket,reason:I.description},expiry:d});for(let I of e.granted.certificateAccess||[])f.push({request:{type:"certificate",originator:o,privileged:!1,certificate:{verifier:I.verifierPublicKey,certType:I.type,fields:I.fields},reason:I.description},expiry:d});let g=await this.createPermissionTokensBestEffort(f),m=await this.renewPermissionTokensBestEffort(h);for(let I of[...g,...m])this.markRecentGrant(I);for(let I of s.pending)I.resolve(!0)}catch(a){for(let o of s.pending)o.reject(a);throw a}finally{this.activeRequests.delete(e.requestID)}}async denyGroupedPermission(e){let t=this.activeRequests.get(e);if(!t)throw new Error("Request ID not found.");let i=new Error("The user has denied the request for permission.");i.code="ERR_PERMISSION_DENIED";for(let n of t.pending)n.reject(i);this.activeRequests.delete(e)}async dismissGroupedPermission(e){let t=this.activeRequests.get(e);if(!t)throw new Error("Request ID not found.");for(let i of t.pending)i.resolve(!0);this.activeRequests.delete(e)}async grantCounterpartyPermission(e){var t;let i=this.activeRequests.get(e.requestID);if(!i)throw new Error("Request ID not found.");let n=i.request,{originator:s,counterparty:a,permissions:o,displayOriginator:c}=n,u=this.buildOriginatorLookupValues(c,s),l=I=>{if(I){if(typeof I.protocolName=="string")return I.protocolName;if(Array.isArray(I.protocolID)&&typeof I.protocolID[1]=="string")return I.protocolID[1]}};if(!((t=e.granted.protocols)===null||t===void 0)&&t.some(I=>{let y=l(I);return y?!o.protocols.some(v=>v.protocolName===y):!0}))throw new Error("Granted protocol permissions are not a subset of the original request.");let d=e.expiry||0,f=[],h=[],p=e.granted.protocols||[],A=await this.mapWithConcurrency(p,8,async I=>{let y=l(I);if(!y)throw new Error("Invalid counterparty permission protocol entry: missing protocolName/protocolID.");let v=[2,y],B=await this.findProtocolToken(s,!1,v,a,!0,u);return{p:I,token:B,protocolID:v}});for(let{p:I,token:y,protocolID:v}of A){let B={type:"protocol",originator:s,privileged:!1,protocolID:v,counterparty:a,reason:I.description};y?h.push({oldToken:y,request:B,expiry:d}):f.push({request:B,expiry:d})}let g=await this.createPermissionTokensBestEffort(f),m=await this.renewPermissionTokensBestEffort(h);for(let I of[...g,...m])this.markRecentGrant(I);for(let I of i.pending)I.resolve(!0);this.activeRequests.delete(e.requestID)}async denyCounterpartyPermission(e){let t=this.activeRequests.get(e);if(!t)throw new Error("Request ID not found.");let i=new Error("The user has denied the request for permission.");i.code="ERR_PERMISSION_DENIED";for(let n of t.pending)n.reject(i);this.activeRequests.delete(e)}async ensureProtocolPermission({originator:e,privileged:t,protocolID:i,counterparty:n,reason:s,seekPermission:a=!0,usageType:o}){let{normalized:c,lookupValues:u}=this.prepareOriginator(e);if(e=c,this.isAdminOriginator(e))return!0;let[l,d]=i;if(l===0)return!0;if(l===1&&(n=""),this.isAdminProtocol(i))throw new Error(`Protocol \u201C${d}\u201D is admin-only.`);if(o==="signing"&&!this.config.seekProtocolPermissionsForSigning||o==="encrypting"&&!this.config.seekProtocolPermissionsForEncrypting||o==="hmac"&&!this.config.seekProtocolPermissionsForHMAC||o==="publicKey"&&!this.config.seekPermissionsForPublicKeyRevelation||o==="identityKey"&&!this.config.seekPermissionsForIdentityKeyRevelation||o==="linkageRevelation"&&!this.config.seekPermissionsForKeyLinkageRevelation||(this.config.differentiatePrivilegedOperations||(t=!1),!t&&this.isWhitelistedCounterpartyProtocol(n,i)))return!0;let f=this.buildRequestKey({type:"protocol",originator:e,privileged:t,protocolID:i,counterparty:n});if(this.isPermissionCached(f)||this.isRecentlyGranted(f))return!0;let h=await this.findProtocolToken(e,t,i,n,!0,u);if(h)if(this.isTokenExpired(h.expiry)){if(!a)throw new Error("Protocol permission expired and no further user consent allowed (seekPermission=false).");return await this.requestPermissionFlow({type:"protocol",originator:e,privileged:t,protocolID:i,counterparty:n,usageType:o,reason:s,renewal:!0,previousToken:h})}else return this.cachePermission(f,h.expiry),!0;else{if(!a)throw new Error("No protocol permission token found (seekPermission=false).");return await this.requestPermissionFlow({type:"protocol",originator:e,privileged:t,protocolID:i,counterparty:n,usageType:o,reason:s,renewal:!1})}}async ensureBasketAccess({originator:e,basket:t,reason:i,seekPermission:n=!0,usageType:s}){let{normalized:a,lookupValues:o}=this.prepareOriginator(e);if(e=a,this.isAdminOriginator(e))return!0;if(this.isAdminBasket(t))throw new Error(`Basket \u201C${t}\u201D is admin-only.`);if(s==="insertion"&&!this.config.seekBasketInsertionPermissions||s==="removal"&&!this.config.seekBasketRemovalPermissions||s==="listing"&&!this.config.seekBasketListingPermissions)return!0;let c=this.buildRequestKey({type:"basket",originator:e,basket:t});if(this.isPermissionCached(c)||this.isRecentlyGranted(c))return!0;let u=await this.findBasketToken(e,t,!0,o);if(u)if(this.isTokenExpired(u.expiry)){if(!n)throw new Error("Basket permission expired (seekPermission=false).");return await this.requestPermissionFlow({type:"basket",originator:e,basket:t,usageType:s,reason:i,renewal:!0,previousToken:u})}else return this.cachePermission(c,u.expiry),!0;else{if(!n)throw new Error("No basket permission found, and no user consent allowed (seekPermission=false).");return await this.requestPermissionFlow({type:"basket",originator:e,basket:t,usageType:s,reason:i,renewal:!1})}}async ensureCertificateAccess({originator:e,privileged:t,verifier:i,certType:n,fields:s,reason:a,seekPermission:o=!0,usageType:c}){let{normalized:u,lookupValues:l}=this.prepareOriginator(e);if(e=u,this.isAdminOriginator(e)||c==="disclosure"&&!this.config.seekCertificateDisclosurePermissions)return!0;this.config.differentiatePrivilegedOperations||(t=!1);let d=this.buildRequestKey({type:"certificate",originator:e,privileged:t,certificate:{verifier:i,certType:n,fields:s}});if(this.isPermissionCached(d)||this.isRecentlyGranted(d))return!0;let f=await this.findCertificateToken(e,t,i,n,s,!0,l);if(f)if(this.isTokenExpired(f.expiry)){if(!o)throw new Error("Certificate permission expired (seekPermission=false).");return await this.requestPermissionFlow({type:"certificate",originator:e,privileged:t,certificate:{verifier:i,certType:n,fields:s},usageType:c,reason:a,renewal:!0,previousToken:f})}else return this.cachePermission(d,f.expiry),!0;else{if(!o)throw new Error("No certificate permission found (seekPermission=false).");return await this.requestPermissionFlow({type:"certificate",originator:e,privileged:t,certificate:{verifier:i,certType:n,fields:s},usageType:c,reason:a,renewal:!1})}}async ensureSpendingAuthorization({originator:e,satoshis:t,lineItems:i,reason:n,seekPermission:s=!0}){let{normalized:a,lookupValues:o}=this.prepareOriginator(e);if(e=a,this.isAdminOriginator(e)||!this.config.seekSpendingPermissions)return!0;let c=this.buildRequestKey({type:"spending",originator:e,spending:{satoshis:t}});if(this.isPermissionCached(c))return!0;let u=await this.findSpendingToken(e,o);if(u?.authorizedAmount){if(await this.querySpentSince(u)+t<=u.authorizedAmount)return this.cachePermission(c,u.expiry),!0;if(!s)throw new Error(`Spending authorization insufficient for ${t}, no user consent (seekPermission=false).`);return await this.requestPermissionFlow({type:"spending",originator:e,spending:{satoshis:t,lineItems:i},reason:n,renewal:!0,previousToken:u})}else{if(!s)throw new Error("No spending authorization found, (seekPermission=false).");return await this.requestPermissionFlow({type:"spending",originator:e,spending:{satoshis:t,lineItems:i},reason:n,renewal:!1})}}async ensureLabelAccess({originator:e,label:t,reason:i,seekPermission:n=!0,usageType:s}){let{normalized:a}=this.prepareOriginator(e);if(e=a,this.isAdminOriginator(e))return!0;if(this.isAdminLabel(t))throw new Error(`Label \u201C${t}\u201D is admin-only.`);if(s==="apply"&&!this.config.seekPermissionWhenApplyingActionLabels||s==="list"&&!this.config.seekPermissionWhenListingActionsByLabel)return!0;let o=this.buildRequestKey({type:"protocol",originator:e,privileged:!1,protocolID:[1,`action label ${t}`],counterparty:"self"});return this.isPermissionCached(o)?!0:await this.ensureProtocolPermission({originator:e,privileged:!1,protocolID:[1,`action label ${t}`],counterparty:"self",reason:i,seekPermission:n,usageType:"generic"})}isProtocolInCounterpartyPermissions(e,t){let[,i]=e;return!!t.protocols.find(n=>n.protocolName===i)}validateCounterpartyPermissions(e){if(!e||!Array.isArray(e.protocols)||e.protocols.length===0)return null;let t=(s,a)=>{if(!s||typeof s!="object")return;let o=a.toLowerCase(),c=Object.keys(s).find(u=>u.toLowerCase()===o);return c?s[c]:void 0},i=s=>!Array.isArray(s)||s[0]!==2||typeof s[1]!="string"?null:s[1],n=e.protocols.map(s=>{var a,o;let c=t(s,"protocolName");if(typeof c=="string")return{protocolName:c,protocolID:[2,c],description:typeof s?.description=="string"?s.description:void 0};let u=(o=(a=t(s,"protocolID"))!==null&&a!==void 0?a:t(s,"protocolId"))!==null&&o!==void 0?o:t(s,"protocolid"),l=i(u);return l?{protocolName:l,protocolID:[2,l],description:typeof s?.description=="string"?s.description:void 0}:null}).filter(Boolean);return n.length===0?null:{description:typeof e.description=="string"?e.description:void 0,protocols:n}}async fetchManifestPermissions(e){let t=this.manifestCache.get(e);if(t&&Date.now()-t.fetchedAt<r.MANIFEST_CACHE_TTL_MS)return{groupPermissions:t.groupPermissions,counterpartyPermissions:t.counterpartyPermissions};let i=this.manifestFetchInProgress.get(e);if(i)return i;let n=(async()=>{try{let a=e.startsWith("localhost:")?"http":"https",o=await fetch(`${a}://${e}/manifest.json`);if(o.ok){let c=await o.json(),u=c?.metanet||c?.babbage,l=u?.groupPermissions||null,d=this.validateCounterpartyPermissions(u?.counterpartyPermissions);return this.manifestCache.set(e,{groupPermissions:l,counterpartyPermissions:d,fetchedAt:Date.now()}),{groupPermissions:l,counterpartyPermissions:d}}}catch{}let s={groupPermissions:null,counterpartyPermissions:null};return this.manifestCache.set(e,{...s,fetchedAt:Date.now()}),s})();this.manifestFetchInProgress.set(e,n);try{return await n}finally{this.manifestFetchInProgress.delete(e)}}async fetchManifestGroupPermissions(e){let{groupPermissions:t}=await this.fetchManifestPermissions(e);return t}async filterAlreadyGrantedPermissions(e,t){let i={description:t.description,protocolPermissions:[],basketAccess:[],certificateAccess:[]},[n,s,a,o]=await Promise.all([(async()=>t.spendingAuthorization?await this.hasSpendingAuthorization({originator:e,satoshis:t.spendingAuthorization.amount})?void 0:t.spendingAuthorization:void 0)(),(async()=>(await Promise.all((t.protocolPermissions||[]).map(async u=>{var l;if(u.counterparty==="")return null;let[d]=u.protocolID||[0];return d===2&&(u.counterparty===void 0||u.counterparty===null)||await this.hasProtocolPermission({originator:e,privileged:!1,protocolID:u.protocolID,counterparty:(l=u.counterparty)!==null&&l!==void 0?l:"self"})?null:u}))).filter(Boolean))(),(async()=>(await Promise.all((t.basketAccess||[]).map(async u=>await this.hasBasketAccess({originator:e,basket:u.basket})?null:u))).filter(Boolean))(),(async()=>(await Promise.all((t.certificateAccess||[]).map(async u=>await this.hasCertificateAccess({originator:e,privileged:!1,verifier:u.verifierPublicKey,certType:u.type,fields:u.fields})?null:u))).filter(Boolean))()]);return n&&(i.spendingAuthorization=n),i.protocolPermissions=s,i.basketAccess=a,i.certificateAccess=o,i}hasAnyPermissionsToRequest(e){var t,i,n,s,a,o;return!!(e.spendingAuthorization||((i=(t=e.protocolPermissions)===null||t===void 0?void 0:t.length)!==null&&i!==void 0?i:0)>0||((s=(n=e.basketAccess)===null||n===void 0?void 0:n.length)!==null&&s!==void 0?s:0)>0||((o=(a=e.certificateAccess)===null||a===void 0?void 0:a.length)!==null&&o!==void 0?o:0)>0)}hasGroupedPermissionRequestedHandlers(){return(this.callbacks.onGroupedPermissionRequested||[]).some(t=>typeof t=="function")}hasCounterpartyPermissionRequestedHandlers(){return(this.callbacks.onCounterpartyPermissionRequested||[]).some(t=>typeof t=="function")}async hasPactEstablished(e,t){var i;if(t==="self"||t==="anyone")return!0;let n=`${e}:${t}`;if(this.pactEstablishedCache.has(n))return!0;let{counterpartyPermissions:s}=await this.fetchManifestPermissions(e);if(!(!((i=s?.protocols)===null||i===void 0)&&i.length))return!0;let a=s.protocols[0];return await this.hasProtocolPermission({originator:e,privileged:!1,protocolID:[2,a.protocolName],counterparty:t})?(this.pactEstablishedCache.set(n,Date.now()),!0):!1}markPactEstablished(e,t){let i=`${e}:${t}`;this.pactEstablishedCache.set(i,Date.now())}async maybeRequestPact(e){var t;if(!this.config.seekGroupedPermission||!this.hasCounterpartyPermissionRequestedHandlers()||e.type!=="protocol"||e.privileged)return null;let[i]=e.protocolID;if(i!==2)return null;let n=e.originator,s=e.counterparty;if(!s||s==="self"||s==="anyone"||!/^[0-9a-fA-F]{66}$/.test(s))return null;let{counterpartyPermissions:a}=await this.fetchManifestPermissions(n);if(!(!((t=a?.protocols)===null||t===void 0)&&t.length)||!this.isProtocolInCounterpartyPermissions(e.protocolID,a)||await this.hasPactEstablished(n,s))return null;let c=(await Promise.all(a.protocols.map(async h=>await this.hasProtocolPermission({originator:n,privileged:!1,protocolID:[2,h.protocolName],counterparty:s})?null:h))).filter(Boolean);if(c.length===0)return this.markPactEstablished(n,s),null;let u={description:a.description,protocols:c},l=`pact:${n}:${s}`,d=this.activeRequests.get(l);if(d){let h=d.request;for(let p of u.protocols)h.permissions.protocols.find(A=>A.protocolName===p.protocolName)||h.permissions.protocols.push(p);await new Promise((p,A)=>{d.pending.push({resolve:p,reject:A})})}else{let h=new Promise((p,A)=>{this.activeRequests.set(l,{request:{originator:n,counterparty:s,permissions:u,displayOriginator:e.displayOriginator},pending:[{resolve:p,reject:A}]})});await this.callEvent("onCounterpartyPermissionRequested",{requestID:l,originator:n,counterparty:s,permissions:u}),await h}return this.markPactEstablished(n,s),await this.hasProtocolPermission({originator:n,privileged:!1,protocolID:e.protocolID,counterparty:s})?!0:null}async maybeRequestPeerGroupedLevel2ProtocolPermissions(e){var t,i;if(!this.config.seekGroupedPermission||!this.hasGroupedPermissionRequestedHandlers()||e.type!=="protocol")return null;let[n]=e.protocolID;if(n!==2)return null;let s=e.originator,a=(t=e.privileged)!==null&&t!==void 0?t:!1,o=(i=e.counterparty)!==null&&i!==void 0?i:"self",c=await this.fetchManifestGroupPermissions(s);if(!c)return null;let u=m=>m===""?"":m??o,l=(c.protocolPermissions||[]).filter(m=>{var I,y;return((y=(I=m.protocolID)===null||I===void 0?void 0:I[0])!==null&&y!==void 0?y:0)===2}).map(m=>({protocolID:m.protocolID,counterparty:u(m.counterparty),description:m.description})).filter(m=>m.counterparty!=="").filter(m=>m.counterparty===o);if(!l.some(m=>El(m.protocolID,e.protocolID)))return null;let f={protocolPermissions:[]},h=await Promise.all(l.map(async m=>await this.hasProtocolPermission({originator:s,privileged:a,protocolID:m.protocolID,counterparty:m.counterparty})?null:{protocolID:m.protocolID,counterparty:m.counterparty,description:m.description}));if(f.protocolPermissions=h.filter(Boolean),!this.hasAnyPermissionsToRequest(f))return null;let p=`group-peer:${s}:${a}:${o}`,A=this.activeRequests.get(p);if(A){let m=A.request;m.permissions.protocolPermissions||(m.permissions.protocolPermissions=[]);for(let I of f.protocolPermissions||[])m.permissions.protocolPermissions.find(y=>El(y,I))||m.permissions.protocolPermissions.push(I);await new Promise((I,y)=>{A.pending.push({resolve:I,reject:y})})}else{let m=f,I=new Promise((y,v)=>{this.activeRequests.set(p,{request:{originator:s,permissions:m,displayOriginator:e.displayOriginator},pending:[{resolve:y,reject:v}]})});await this.callEvent("onGroupedPermissionRequested",{requestID:p,originator:s,permissions:m}),await I}return await this.checkSpecificPermissionAfterGroupFlow(e)?!0:null}async withGroupedPermissionFlowLock(e,t){let n=(this.groupedPermissionFlowTail.get(e)||Promise.resolve()).catch(()=>{}),s,a=new Promise(c=>{s=c}),o=n.then(()=>a);this.groupedPermissionFlowTail.set(e,o),await n;try{return await t()}finally{s?.(),o.finally(()=>{this.groupedPermissionFlowTail.get(e)===o&&this.groupedPermissionFlowTail.delete(e)})}}async checkSpecificPermissionAfterGroupFlow(e){var t,i,n;switch(e.type){case"protocol":return await this.hasProtocolPermission({originator:e.originator,privileged:(t=e.privileged)!==null&&t!==void 0?t:!1,protocolID:e.protocolID,counterparty:(i=e.counterparty)!==null&&i!==void 0?i:"self"});case"basket":return await this.hasBasketAccess({originator:e.originator,basket:e.basket});case"certificate":return await this.hasCertificateAccess({originator:e.originator,privileged:(n=e.privileged)!==null&&n!==void 0?n:!1,verifier:e.certificate.verifier,certType:e.certificate.certType,fields:e.certificate.fields});case"spending":return await this.hasSpendingAuthorization({originator:e.originator,satoshis:e.spending.satoshis});default:return!1}}isRequestIncludedInGroupPermissions(e,t){var i,n,s,a;switch(e.type){case"protocol":{if(e.privileged)return!1;let o=e.protocolID;if(!o)return!1;let c=(i=e.counterparty)!==null&&i!==void 0?i:"self";return!!(!((n=t.protocolPermissions)===null||n===void 0)&&n.some(u=>{var l;if(u.counterparty==="")return!1;let[d]=u.protocolID||[0];if(d===2&&(u.counterparty===void 0||u.counterparty===null))return!1;let f=d===1?"":(l=u.counterparty)!==null&&l!==void 0?l:"self";return El(u.protocolID,o)&&f===c}))}case"basket":{let o=e.basket;return o?!!(!((s=t.basketAccess)===null||s===void 0)&&s.some(c=>c.basket===o)):!1}case"certificate":{if(e.privileged)return!1;let o=e.certificate;return o?!!(!((a=t.certificateAccess)===null||a===void 0)&&a.some(c=>{let u=new Set(c.fields||[]),l=new Set(o.fields||[]);if(u.size!==l.size)return!1;for(let d of u)if(!l.has(d))return!1;return c.type===o.certType&&c.verifierPublicKey===o.verifier})):!1}case"spending":return!!t.spendingAuthorization;default:return!1}}async maybeRequestGroupedPermissions(e){if(!this.config.seekGroupedPermission)return null;let t=e.originator,i=await this.fetchManifestGroupPermissions(t);if(!i||!this.isRequestIncludedInGroupPermissions(e,i))return null;let n=await this.filterAlreadyGrantedPermissions(t,i);if(!this.hasAnyPermissionsToRequest(n))return null;let s=`group:${t}`;if(this.activeRequests.has(s))await new Promise((o,c)=>{this.activeRequests.get(s).pending.push({resolve:o,reject:c})});else{let o=new Promise((c,u)=>{this.activeRequests.set(s,{request:{originator:t,permissions:n,displayOriginator:e.displayOriginator},pending:[{resolve:c,reject:u}]})});await this.callEvent("onGroupedPermissionRequested",{requestID:s,originator:t,permissions:n}),await o}return await this.checkSpecificPermissionAfterGroupFlow(e)?!0:null}async requestPermissionFlow(e){var t,i,n,s;let a=this.normalizeOriginator(e.originator)||e.originator,o={...e,originator:a,displayOriginator:(n=(t=e.displayOriginator)!==null&&t!==void 0?t:(i=e.previousToken)===null||i===void 0?void 0:i.rawOriginator)!==null&&n!==void 0?n:e.originator};o.type==="protocol"&&((s=o.protocolID)===null||s===void 0?void 0:s[0])===1&&(o.counterparty="");let c=this.buildActiveRequestKey(o),u=this.activeRequests.get(c);if(u&&u.pending.length>0)return new Promise((A,g)=>{u.pending.push({resolve:A,reject:g})});let l=await this.maybeRequestPact(o);if(l!==null)return l;let d=await this.maybeRequestPeerGroupedLevel2ProtocolPermissions(o);if(d!==null)return d;let f=this.config.seekGroupedPermission&&this.groupedPermissionFlowTail.has(o.originator),h=null;if(this.config.seekGroupedPermission?h=await this.withGroupedPermissionFlowLock(o.originator,async()=>await this.maybeRequestGroupedPermissions(o)):h=await this.maybeRequestGroupedPermissions(o),h!==null)return h;if(this.config.seekGroupedPermission&&f&&await this.checkSpecificPermissionAfterGroupFlow(o))return!0;let p=this.activeRequests.get(c);return p&&p.pending.length>0?new Promise((A,g)=>{p.pending.push({resolve:A,reject:g})}):new Promise(async(A,g)=>{var m;this.activeRequests.set(c,{request:o,pending:[{resolve:A,reject:g}]});try{switch(o.type){case"protocol":await this.callEvent("onProtocolPermissionRequested",{...o,counterparty:((m=o.protocolID)===null||m===void 0?void 0:m[0])===1?void 0:o.counterparty,requestID:c});break;case"basket":await this.callEvent("onBasketAccessRequested",{...o,requestID:c});break;case"certificate":await this.callEvent("onCertificateAccessRequested",{...o,requestID:c});break;case"spending":await this.callEvent("onSpendingAuthorizationRequested",{...o,requestID:c});break}}catch(I){let y=this.activeRequests.get(c);if(y){for(let v of y.pending)v.reject(I);this.activeRequests.delete(c)}}})}async encryptPermissionTokenField(e){let t=typeof e=="string"?ee.Utils.toArray(e,"utf8"):e,{ciphertext:i}=await this.underlying.encrypt({plaintext:t,protocolID:r.PERM_TOKEN_ENCRYPTION_PROTOCOL,keyID:"1"},this.adminOriginator);return i}async decryptPermissionTokenField(e){try{let{plaintext:t}=await this.underlying.decrypt({ciphertext:e,protocolID:r.PERM_TOKEN_ENCRYPTION_PROTOCOL,keyID:"1"},this.adminOriginator);return t}catch{return e}}async maybeEncryptMetadata(e){if(!this.config.encryptWalletMetadata)return e;let{ciphertext:t}=await this.underlying.encrypt({plaintext:ee.Utils.toArray(e,"utf8"),protocolID:r.METADATA_ENCRYPTION_PROTOCOL,keyID:"1"},this.adminOriginator);return ee.Utils.toBase64(t)}async maybeDecryptMetadata(e){try{let{plaintext:t}=await this.underlying.decrypt({ciphertext:ee.Utils.toArray(e,"base64"),protocolID:r.METADATA_ENCRYPTION_PROTOCOL,keyID:"1"},this.adminOriginator);return ee.Utils.toUTF8(t)}catch{return e}}isTokenExpired(e){let t=Math.floor(Date.now()/1e3);return e>0&&e<t}async findProtocolToken(e,t,i,n,s,a){let[o,c]=i,u=a?.length?a:[e];for(let l of u){let d=[`originator ${l}`,`privileged ${!!t}`,`protocolName ${c}`,`protocolSecurityLevel ${o}`];o===2&&d.push(`counterparty ${n}`);let f=await this.underlying.listOutputs({basket:jr.protocol,tags:d,tagQueryMode:"all",include:"entire transactions"},this.adminOriginator);for(let h of f.outputs){let[p,A]=h.outpoint.split("."),g=ee.Transaction.fromBEEF(f.BEEF,p),m=ee.PushDrop.decode(g.outputs[Number(A)].lockingScript);if(!m||!m.fields||m.fields.length<6)continue;let I=m.fields[0],y=m.fields[1],v=m.fields[2],B=m.fields[3],E=m.fields[4],k=m.fields[5],T=ee.Utils.toUTF8(await this.decryptPermissionTokenField(I));if(this.normalizeOriginator(T)!==e)continue;let j=parseInt(ee.Utils.toUTF8(await this.decryptPermissionTokenField(y)),10),H=ee.Utils.toUTF8(await this.decryptPermissionTokenField(v))==="true",W=parseInt(ee.Utils.toUTF8(await this.decryptPermissionTokenField(B)),10),M=ee.Utils.toUTF8(await this.decryptPermissionTokenField(E)),Y=ee.Utils.toUTF8(await this.decryptPermissionTokenField(k));if(!(H!==!!t||W!==o||M!==c||W===2&&Y!==n)&&!(!s&&this.isTokenExpired(j)))return{tx:g.toBEEF(),txid:h.outpoint.split(".")[0],outputIndex:parseInt(h.outpoint.split(".")[1],10),outputScript:g.outputs[Number(A)].lockingScript.toHex(),satoshis:h.satoshis,originator:e,rawOriginator:T,privileged:t,protocol:c,securityLevel:o,expiry:j,counterparty:Y}}}}async findAllProtocolTokens(e,t,i,n,s){let[a,o]=i,c=s?.length?s:[e],u=[],l=new Set;for(let d of c){let f=[`originator ${d}`,`privileged ${!!t}`,`protocolName ${o}`,`protocolSecurityLevel ${a}`];a===2&&f.push(`counterparty ${n}`);let h=await this.underlying.listOutputs({basket:jr.protocol,tags:f,tagQueryMode:"all",include:"entire transactions"},this.adminOriginator);for(let p of h.outputs){if(l.has(p.outpoint))continue;let[A,g]=p.outpoint.split("."),m=ee.Transaction.fromBEEF(h.BEEF,A),I=Number(g),y=ee.PushDrop.decode(m.outputs[I].lockingScript);if(!y||!y.fields||y.fields.length<6)continue;let v=y.fields[0],B=y.fields[1],E=y.fields[2],k=y.fields[3],T=y.fields[4],D=y.fields[5],j=ee.Utils.toUTF8(await this.decryptPermissionTokenField(v));if(this.normalizeOriginator(j)!==e)continue;let W=parseInt(ee.Utils.toUTF8(await this.decryptPermissionTokenField(B)),10),M=ee.Utils.toUTF8(await this.decryptPermissionTokenField(E))==="true",Y=parseInt(ee.Utils.toUTF8(await this.decryptPermissionTokenField(k)),10),F=ee.Utils.toUTF8(await this.decryptPermissionTokenField(T)),P=ee.Utils.toUTF8(await this.decryptPermissionTokenField(D));M!==!!t||Y!==a||F!==o||Y===2&&P!==n||(l.add(p.outpoint),u.push({tx:m.toBEEF(),txid:A,outputIndex:I,outputScript:m.outputs[I].lockingScript.toHex(),satoshis:p.satoshis,originator:e,rawOriginator:j,privileged:t,protocol:o,securityLevel:a,expiry:W,counterparty:P}))}}return u}async findBasketToken(e,t,i,n){let s=n?.length?n:[e];for(let a of s){let o=await this.underlying.listOutputs({basket:jr.basket,tags:[`originator ${a}`,`basket ${t}`],tagQueryMode:"all",include:"entire transactions"},this.adminOriginator);for(let c of o.outputs){let[u,l]=c.outpoint.split("."),d=ee.Transaction.fromBEEF(o.BEEF,u),f=ee.PushDrop.decode(d.outputs[Number(l)].lockingScript);if(!f?.fields||f.fields.length<3)continue;let h=f.fields[0],p=f.fields[1],A=f.fields[2],g=ee.Utils.toUTF8(await this.decryptPermissionTokenField(h));if(this.normalizeOriginator(g)!==e)continue;let I=parseInt(ee.Utils.toUTF8(await this.decryptPermissionTokenField(p)),10),y=ee.Utils.toUTF8(await this.decryptPermissionTokenField(A));if(y===t&&!(!i&&this.isTokenExpired(I)))return{tx:d.toBEEF(),txid:c.outpoint.split(".")[0],outputIndex:parseInt(c.outpoint.split(".")[1],10),outputScript:d.outputs[Number(l)].lockingScript.toHex(),satoshis:c.satoshis,originator:e,rawOriginator:g,basketName:y,expiry:I}}}}async findCertificateToken(e,t,i,n,s,a,o){let c=o?.length?o:[e];for(let u of c){let l=await this.underlying.listOutputs({basket:jr.certificate,tags:[`originator ${u}`,`privileged ${!!t}`,`type ${n}`,`verifier ${i}`],tagQueryMode:"all",include:"entire transactions"},this.adminOriginator);for(let d of l.outputs){let[f,h]=d.outpoint.split("."),p=ee.Transaction.fromBEEF(l.BEEF,f),A=ee.PushDrop.decode(p.outputs[Number(h)].lockingScript);if(!A?.fields||A.fields.length<6)continue;let[g,m,I,y,v,B]=A.fields,E=ee.Utils.toUTF8(await this.decryptPermissionTokenField(g));if(this.normalizeOriginator(E)!==e)continue;let T=parseInt(ee.Utils.toUTF8(await this.decryptPermissionTokenField(m)),10),D=ee.Utils.toUTF8(await this.decryptPermissionTokenField(I))==="true",j=ee.Utils.toUTF8(await this.decryptPermissionTokenField(y)),H=ee.Utils.toUTF8(await this.decryptPermissionTokenField(B)),W=await this.decryptPermissionTokenField(v),M=JSON.parse(ee.Utils.toUTF8(W));if(D!==!!t||j!==n||H!==i)continue;let Y=new Set(M);if(!s.some(F=>!Y.has(F))&&!(!a&&this.isTokenExpired(T)))return{tx:p.toBEEF(),txid:d.outpoint.split(".")[0],outputIndex:parseInt(d.outpoint.split(".")[1],10),outputScript:p.outputs[Number(h)].lockingScript.toHex(),satoshis:d.satoshis,originator:e,rawOriginator:E,privileged:t,verifier:H,certType:j,certFields:M,expiry:T}}}}async findSpendingToken(e,t){let i=t?.length?t:[e];for(let n of i){let s=await this.underlying.listOutputs({basket:jr.spending,tags:[`originator ${n}`],tagQueryMode:"all",include:"entire transactions"},this.adminOriginator);for(let a of s.outputs){let[o,c]=a.outpoint.split("."),u=ee.Transaction.fromBEEF(s.BEEF,o),l=ee.PushDrop.decode(u.outputs[Number(c)].lockingScript);if(!l?.fields||l.fields.length<2)continue;let d=l.fields[0],f=l.fields[1],h=ee.Utils.toUTF8(await this.decryptPermissionTokenField(d));if(this.normalizeOriginator(h)!==e)continue;let A=ee.Utils.toUTF8(await this.decryptPermissionTokenField(f)),g=parseInt(A,10);return{tx:u.toBEEF(),txid:a.outpoint.split(".")[0],outputIndex:parseInt(a.outpoint.split(".")[1],10),outputScript:u.outputs[Number(c)].lockingScript.toHex(),satoshis:a.satoshis,originator:e,rawOriginator:h,authorizedAmount:g,expiry:0}}}}getCurrentMonthYearUTC(){let e=new Date,t=e.getUTCFullYear(),i=(e.getUTCMonth()+1).toString().padStart(2,"0");return`${t}-${i}`}async querySpentSince(e){let t=this.buildOriginatorLookupValues(e.rawOriginator,e.originator),i=0;for(let n of t){let{actions:s}=await this.underlying.listActions({labels:[`admin originator ${n}`,`admin month ${this.getCurrentMonthYearUTC()}`],labelQueryMode:"all"},this.adminOriginator);i+=s.reduce((a,o)=>a+o.satoshis,0)}return i}async createPermissionOnChain(e,t,i){let n=this.normalizeOriginator(e.originator)||e.originator;e.originator=n;let s=jr[e.type];if(!s)return;let a=await this.buildPushdropFields(e,t,i),o=await new ee.PushDrop(this.underlying).lock(a,r.PERM_TOKEN_ENCRYPTION_PROTOCOL,"1","self",!0,!0),c=this.buildTagsForRequest(e);await this.createAction({description:`Grant ${e.type} permission`,outputs:[{lockingScript:o.toHex(),satoshis:1,outputDescription:`${e.type} permission token`,basket:s,tags:c}],options:{acceptDelayedBroadcast:!0}},this.adminOriginator)}async mapWithConcurrency(e,t,i){if(!e.length)return[];let n=new Array(e.length),s=0,a=async()=>{for(;;){let o=s++;if(o>=e.length)return;n[o]=await i(e[o])}};return await Promise.all(Array.from({length:Math.min(t,e.length)},()=>a())),n}async runBestEffortBatches(e,t,i){if(!e.length)return[];let n=[];for(let s=0;s<e.length;s+=t){let a=e.slice(s,s+t);n.push(...await this.runBestEffortChunk(a,i))}return n}async runBestEffortChunk(e,t){try{return await t(e)}catch(i){if(e.length<=1)return console.error("Permission batch failed:",i),[];let n=Math.ceil(e.length/2),s=await this.runBestEffortChunk(e.slice(0,n),t),a=await this.runBestEffortChunk(e.slice(n),t);return[...s,...a]}}async buildPermissionOutput(e,t,i){let n=this.normalizeOriginator(e.originator)||e.originator;e.originator=n;let s=jr[e.type];if(!s)throw new Error(`Unsupported permission type: ${e.type}`);let a=await this.buildPushdropFields(e,t,i),o=await new ee.PushDrop(this.underlying).lock(a,r.PERM_TOKEN_ENCRYPTION_PROTOCOL,"1","self",!0,!0),c=this.buildTagsForRequest(e);return{request:e,output:{lockingScript:o.toHex(),satoshis:1,outputDescription:`${e.type} permission token`,basket:s,tags:c}}}async createPermissionTokensBestEffort(e){return this.runBestEffortBatches(e,25,async i=>{let n=await this.mapWithConcurrency(i,8,s=>this.buildPermissionOutput(s.request,s.expiry,s.amount));return await this.createAction({description:`Grant ${n.length} permissions`,outputs:n.map(s=>s.output),options:{acceptDelayedBroadcast:!0}},this.adminOriginator),n.map(s=>s.request)})}async renewPermissionTokensBestEffort(e){return this.runBestEffortBatches(e,15,async i=>{let n=await this.mapWithConcurrency(i,8,d=>this.buildPermissionOutput(d.request,d.expiry,d.amount)),s=new ee.Beef;for(let d of i)s.mergeBeef(ee.Beef.fromBinary(d.oldToken.tx));let{signableTransaction:a}=await this.createAction({description:`Renew ${i.length} permissions`,inputBEEF:s.toBinary(),inputs:i.map((d,f)=>({outpoint:`${d.oldToken.txid}.${d.oldToken.outputIndex}`,unlockingScriptLength:73,inputDescription:`Consume old permission token #${f+1}`})),outputs:n.map(d=>d.output),options:{acceptDelayedBroadcast:!0,randomizeOutputs:!1,signAndProcess:!1}},this.adminOriginator);if(!a?.reference||!a.tx)throw new Error("Failed to create signable transaction");let o=ee.Transaction.fromAtomicBEEF(a.tx),c=new ee.PushDrop(this.underlying),u={};for(let d=0;d<i.length;d++){let f=i[d].oldToken,p=await c.unlock(r.PERM_TOKEN_ENCRYPTION_PROTOCOL,"1","self","all",!1,1,ee.LockingScript.fromHex(f.outputScript)).sign(o,d);u[d]={unlockingScript:p.toHex()}}let{txid:l}=await this.underlying.signAction({reference:a.reference,spends:u});if(!l)throw new Error("Failed to finalize renewal transaction");return n.map(d=>d.request)})}async coalescePermissionTokens(e,t,i){var n;if(!e?.length)throw new Error("No permission tokens to coalesce");if(e.length<2)throw new Error("Need at least 2 tokens to coalesce");let s=new ee.Beef;for(let d of e)s.mergeBeef(ee.Beef.fromBinary(d.tx));let{signableTransaction:a}=await this.createAction({description:(n=i?.description)!==null&&n!==void 0?n:`Coalesce ${e.length} permission tokens`,inputBEEF:s.toBinary(),inputs:e.map((d,f)=>({outpoint:`${d.txid}.${d.outputIndex}`,unlockingScriptLength:74,inputDescription:`Consume permission token #${f+1}`})),outputs:[{lockingScript:t.toHex(),satoshis:1,outputDescription:"Renewed permission token",...i?.basket?{basket:i.basket}:{},...i?.tags?{tags:i.tags}:{}}],options:{acceptDelayedBroadcast:!0,randomizeOutputs:!1,signAndProcess:!1}},this.adminOriginator);if(!a?.reference||!a.tx)throw new Error("Failed to create signable transaction");let o=ee.Transaction.fromAtomicBEEF(a.tx),c=new ee.PushDrop(this.underlying),u={};for(let d=0;d<e.length;d++){let f=e[d],p=await c.unlock(r.PERM_TOKEN_ENCRYPTION_PROTOCOL,"1","self","all",!1,1,ee.LockingScript.fromHex(f.outputScript)).sign(o,d);u[d]={unlockingScript:p.toHex()}}let{txid:l}=await this.underlying.signAction({reference:a.reference,spends:u});if(!l)throw new Error("Failed to finalize coalescing transaction");return l}async renewPermissionOnChain(e,t,i,n){t.originator=this.normalizeOriginator(t.originator)||t.originator;let s=await this.buildPushdropFields(t,i,n),a=await new ee.PushDrop(this.underlying).lock(s,r.PERM_TOKEN_ENCRYPTION_PROTOCOL,"1","self",!0,!0),o=this.buildTagsForRequest(t),c=await this.findAllProtocolTokens(e.originator,e.privileged,[e.securityLevel,e.protocol],e.counterparty,this.buildOriginatorLookupValues(e.rawOriginator,e.originator));if(c.length>1)await this.coalescePermissionTokens(c,a,{tags:o,basket:jr[t.type],description:`Coalesce ${t.type} permission tokens`});else{let u=`${e.txid}.${e.outputIndex}`,{signableTransaction:l}=await this.createAction({description:`Renew ${t.type} permission`,inputBEEF:e.tx,inputs:[{outpoint:u,unlockingScriptLength:73,inputDescription:`Consume old ${t.type} token`}],outputs:[{lockingScript:a.toHex(),satoshis:1,outputDescription:`Renewed ${t.type} permission token`,basket:jr[t.type],tags:o}],options:{acceptDelayedBroadcast:!0}},this.adminOriginator),d=ee.Transaction.fromBEEF(l.tx),h=await new ee.PushDrop(this.underlying).unlock(r.PERM_TOKEN_ENCRYPTION_PROTOCOL,"1","self","all",!1,1,ee.LockingScript.fromHex(e.outputScript)).sign(d,0);await this.underlying.signAction({reference:l.reference,spends:{0:{unlockingScript:h.toHex()}}})}}async buildPushdropFields(e,t,i){var n,s;switch(e.type){case"protocol":{let[a,o]=e.protocolID,c=a===2?(n=e.counterparty)!==null&&n!==void 0?n:"self":"";return[await this.encryptPermissionTokenField(e.originator),await this.encryptPermissionTokenField(String(t)),await this.encryptPermissionTokenField(e.privileged===!0?"true":"false"),await this.encryptPermissionTokenField(String(a)),await this.encryptPermissionTokenField(o),await this.encryptPermissionTokenField(c)]}case"basket":return[await this.encryptPermissionTokenField(e.originator),await this.encryptPermissionTokenField(String(t)),await this.encryptPermissionTokenField(e.basket)];case"certificate":{let{certType:a,fields:o,verifier:c}=e.certificate;return[await this.encryptPermissionTokenField(e.originator),await this.encryptPermissionTokenField(String(t)),await this.encryptPermissionTokenField(e.privileged?"true":"false"),await this.encryptPermissionTokenField(a),await this.encryptPermissionTokenField(JSON.stringify(o)),await this.encryptPermissionTokenField(c)]}case"spending":{let a=i??(((s=e.spending)===null||s===void 0?void 0:s.satoshis)||0);return[await this.encryptPermissionTokenField(e.originator),await this.encryptPermissionTokenField(String(a))]}}}buildTagsForRequest(e){var t;let i=[`originator ${e.originator}`];switch(e.type){case"protocol":{i.push(`privileged ${!!e.privileged}`),i.push(`protocolName ${e.protocolID[1]}`),i.push(`protocolSecurityLevel ${e.protocolID[0]}`),e.protocolID[0]===2&&i.push(`counterparty ${(t=e.counterparty)!==null&&t!==void 0?t:"self"}`);break}case"basket":{i.push(`basket ${e.basket}`);break}case"certificate":{i.push(`privileged ${!!e.privileged}`),i.push(`type ${e.certificate.certType}`),i.push(`verifier ${e.certificate.verifier}`);break}case"spending":break}return i}async listProtocolPermissions({originator:e,privileged:t,protocolName:i,protocolSecurityLevel:n,counterparty:s}={}){let a=jr.protocol,o=[];t!==void 0&&o.push(`privileged ${!!t}`),i&&o.push(`protocolName ${i}`),n!==void 0&&o.push(`protocolSecurityLevel ${n}`),s&&o.push(`counterparty ${s}`);let c=e?this.prepareOriginator(e):void 0,u=c?c.lookupValues:[void 0],l=new Set,d=[];for(let f of u){let h=[...o];f&&h.push(`originator ${f}`);let p=await this.underlying.listOutputs({basket:a,tags:h,tagQueryMode:"all",include:"entire transactions",limit:1e4},this.adminOriginator);for(let A of p.outputs){if(l.has(A.outpoint))continue;let[g,m]=A.outpoint.split("."),I=ee.Transaction.fromBEEF(p.BEEF,g),y=ee.PushDrop.decode(I.outputs[Number(m)].lockingScript);if(!y?.fields||y.fields.length<6)continue;let[v,B,E,k,T,D]=y.fields,j=ee.Utils.toUTF8(await this.decryptPermissionTokenField(v)),H=this.normalizeOriginator(j);if(c&&H!==c.normalized)continue;let W=parseInt(ee.Utils.toUTF8(await this.decryptPermissionTokenField(B)),10),M=ee.Utils.toUTF8(await this.decryptPermissionTokenField(E))==="true",Y=parseInt(ee.Utils.toUTF8(await this.decryptPermissionTokenField(k)),10),F=ee.Utils.toUTF8(await this.decryptPermissionTokenField(T)),P=ee.Utils.toUTF8(await this.decryptPermissionTokenField(D));l.add(A.outpoint),d.push({tx:I.toBEEF(),txid:A.outpoint.split(".")[0],outputIndex:parseInt(A.outpoint.split(".")[1],10),outputScript:I.outputs[Number(m)].lockingScript.toHex(),satoshis:A.satoshis,originator:H,rawOriginator:j,expiry:W,privileged:M,securityLevel:Y,protocol:F,counterparty:P})}}return d}async hasProtocolPermission(e){try{return await this.ensureProtocolPermission({...e,reason:"hasProtocolPermission",seekPermission:!1,usageType:"generic"}),!0}catch{return!1}}async listBasketAccess(e={}){let t=jr.basket,i=[];e.basket&&i.push(`basket ${e.basket}`);let n=e.originator?this.prepareOriginator(e.originator):void 0,s=n?n.lookupValues:[void 0],a=new Set,o=[];for(let c of s){let u=[...i];c&&u.push(`originator ${c}`);let l=await this.underlying.listOutputs({basket:t,tags:u,tagQueryMode:"all",include:"entire transactions",limit:1e4},this.adminOriginator);for(let d of l.outputs){if(a.has(d.outpoint))continue;let[f,h]=d.outpoint.split("."),p=ee.Transaction.fromBEEF(l.BEEF,f),A=ee.PushDrop.decode(p.outputs[Number(h)].lockingScript);if(!A?.fields||A.fields.length<3)continue;let[g,m,I]=A.fields,y=ee.Utils.toUTF8(await this.decryptPermissionTokenField(g)),v=this.normalizeOriginator(y);if(n&&v!==n.normalized)continue;let B=parseInt(ee.Utils.toUTF8(await this.decryptPermissionTokenField(m)),10),E=ee.Utils.toUTF8(await this.decryptPermissionTokenField(I));a.add(d.outpoint),o.push({tx:p.toBEEF(),txid:d.outpoint.split(".")[0],outputIndex:parseInt(d.outpoint.split(".")[1],10),satoshis:d.satoshis,outputScript:p.outputs[Number(h)].lockingScript.toHex(),originator:v,rawOriginator:y,basketName:E,expiry:B})}}return o}async hasBasketAccess(e){try{return await this.ensureBasketAccess({originator:e.originator,basket:e.basket,seekPermission:!1,usageType:"insertion"}),!0}catch{return!1}}async listSpendingAuthorizations(e){let t=jr.spending,i=[];e.originator&&i.push(`originator ${e.originator}`);let n=await this.underlying.listOutputs({basket:t,tags:i,tagQueryMode:"all",include:"entire transactions",limit:1e4},this.adminOriginator),s=[];for(let a of n.outputs){let[o,c]=a.outpoint.split("."),u=ee.Transaction.fromBEEF(n.BEEF,o),l=ee.PushDrop.decode(u.outputs[Number(c)].lockingScript);if(!l?.fields||l.fields.length<2)continue;let[d,f]=l.fields,h=ee.Utils.toUTF8(await this.decryptPermissionTokenField(d)),p=ee.Utils.toUTF8(await this.decryptPermissionTokenField(f)),A=parseInt(p,10);s.push({tx:u.toBEEF(),txid:a.outpoint.split(".")[0],outputIndex:parseInt(a.outpoint.split(".")[1],10),satoshis:a.satoshis,outputScript:u.outputs[Number(c)].lockingScript.toHex(),originator:h,authorizedAmount:A,expiry:0})}return s}async hasSpendingAuthorization(e){try{return await this.ensureSpendingAuthorization({originator:e.originator,satoshis:e.satoshis,seekPermission:!1}),!0}catch{return!1}}async listCertificateAccess(e={}){let t=jr.certificate,i=[];e.privileged!==void 0&&i.push(`privileged ${!!e.privileged}`),e.certType&&i.push(`type ${e.certType}`),e.verifier&&i.push(`verifier ${e.verifier}`);let n=e.originator?this.prepareOriginator(e.originator):void 0,s=n?n.lookupValues:[void 0],a=new Set,o=[];for(let c of s){let u=[...i];c&&u.push(`originator ${c}`);let l=await this.underlying.listOutputs({basket:t,tags:u,tagQueryMode:"all",include:"entire transactions",limit:1e4},this.adminOriginator);for(let d of l.outputs){if(a.has(d.outpoint))continue;let[f,h]=d.outpoint.split("."),p=ee.Transaction.fromBEEF(l.BEEF,f),A=ee.PushDrop.decode(p.outputs[Number(h)].lockingScript);if(!A?.fields||A.fields.length<6)continue;let[g,m,I,y,v,B]=A.fields,E=ee.Utils.toUTF8(await this.decryptPermissionTokenField(g)),k=this.normalizeOriginator(E);if(n&&k!==n.normalized)continue;let T=parseInt(ee.Utils.toUTF8(await this.decryptPermissionTokenField(m)),10),D=ee.Utils.toUTF8(await this.decryptPermissionTokenField(I))==="true",j=ee.Utils.toUTF8(await this.decryptPermissionTokenField(y)),H=ee.Utils.toUTF8(await this.decryptPermissionTokenField(B)),W=await this.decryptPermissionTokenField(v),M=JSON.parse(ee.Utils.toUTF8(W));a.add(d.outpoint),o.push({tx:p.toBEEF(),txid:d.outpoint.split(".")[0],outputIndex:parseInt(d.outpoint.split(".")[1],10),satoshis:d.satoshis,outputScript:p.outputs[Number(h)].lockingScript.toHex(),originator:k,rawOriginator:E,privileged:D,certType:j,certFields:M,verifier:H,expiry:T})}}return o}async hasCertificateAccess(e){try{return await this.ensureCertificateAccess({originator:e.originator,privileged:e.privileged,verifier:e.verifier,certType:e.certType,fields:e.fields,seekPermission:!1,usageType:"disclosure"}),!0}catch{return!1}}async revokePermissions(e){return await this.revokePermissionTokensBestEffort(e)}async revokeAllForOriginator(e,t){let i=this.prepareOriginator(e),n={protocol:!0,basket:!0,certificate:!0,spending:!0,...t||{}},[s,a,o,c]=await Promise.all([n.protocol?this.listProtocolPermissions({originator:e}):Promise.resolve([]),n.basket?this.listBasketAccess({originator:e}):Promise.resolve([]),n.certificate?this.listCertificateAccess({originator:e}):Promise.resolve([]),n.spending?this.listSpendingAuthorizations({originator:i.normalized}):Promise.resolve([])]),u=c.length?[c[0]]:[],l=[...s,...a,...o,...u],d=new Set,f=l.filter(h=>{let p=`${h.txid}.${h.outputIndex}`;return d.has(p)?!1:(d.add(p),!0)});return await this.revokePermissions(f)}async revokePermissionTokensBestEffort(e){return this.runBestEffortBatches(e,15,async i=>(await this.revokePermissionTokensChunk(i),i))}async revokePermissionTokensChunk(e){if(!e.length)return;let t=new ee.Beef;for(let p of e)t.mergeBeef(ee.Beef.fromBinary(p.tx));let{signableTransaction:i}=await this.createAction({description:`Revoke ${e.length} permissions`,inputBEEF:t.toBinary(),inputs:e.map((p,A)=>({outpoint:`${p.txid}.${p.outputIndex}`,unlockingScriptLength:73,inputDescription:`Consume old permission token #${A+1}`})),options:{acceptDelayedBroadcast:!0,randomizeOutputs:!1,signAndProcess:!1}},this.adminOriginator);if(!i?.reference||!i.tx)throw new Error("Failed to create signable transaction");let n=ee.Transaction.fromAtomicBEEF(i.tx),s=p=>(p??"").toLowerCase(),a=p=>{let A=s(p);if(!/^[0-9a-f]{64}$/.test(A))return A;let g=A.match(/../g);return g?g.reverse().join(""):A},o=(p,A)=>{let g=p.lastIndexOf("."),m=p.lastIndexOf(":"),I=g>m?g:m;if(I===-1)return!1;let y=p.slice(0,I),v=p.slice(I+1),B=Number(v);return Number.isFinite(B)?s(y)===s(A.txid)&&B===A.outputIndex:!1},c=p=>n.inputs.findIndex(A=>{var g,m,I,y,v,B,E,k,T,D,j,H,W;let M=(E=(B=(v=(y=(I=(m=(g=A?.sourceTXID)!==null&&g!==void 0?g:A?.sourceTxid)!==null&&m!==void 0?m:A?.sourceTxId)!==null&&I!==void 0?I:A?.prevTxId)!==null&&y!==void 0?y:A?.prevTxid)!==null&&v!==void 0?v:A?.prevTXID)!==null&&B!==void 0?B:A?.txid)!==null&&E!==void 0?E:A?.txID,Y=(j=(D=(T=(k=A?.sourceOutputIndex)!==null&&k!==void 0?k:A?.sourceOutput)!==null&&T!==void 0?T:A?.outputIndex)!==null&&D!==void 0?D:A?.vout)!==null&&j!==void 0?j:A?.prevOutIndex;if(typeof M=="string"&&typeof Y=="number"){let P=s(M),G=s(p.txid);if(P===G&&Y===p.outputIndex||P===a(p.txid)&&Y===p.outputIndex)return!0}let F=(W=(H=A?.outpoint)!==null&&H!==void 0?H:A?.sourceOutpoint)!==null&&W!==void 0?W:A?.prevOutpoint;return!!(typeof F=="string"&&o(F,p))}),u=e.map(p=>{let A=c(p);if(A===-1&&n.inputs.length===1&&(A=0),A===-1)throw new Error("Unable to locate permission token input for revocation.");return{token:p,permInputIndex:A}}),l=new ee.PushDrop(this.underlying),d={},f=await this.mapWithConcurrency(u,8,async({token:p,permInputIndex:A})=>{let m=await l.unlock(r.PERM_TOKEN_ENCRYPTION_PROTOCOL,"1","self","all",!1,1,ee.LockingScript.fromHex(p.outputScript)).sign(n,A);return{permInputIndex:A,unlockingScriptHex:m.toHex()}});for(let p of f)d[p.permInputIndex]={unlockingScript:p.unlockingScriptHex};let{txid:h}=await this.underlying.signAction({reference:i.reference,spends:d});if(!h)throw new Error("Failed to finalize revoke transaction")}async revokePermission(e){let t=`${e.txid}.${e.outputIndex}`,{signableTransaction:i}=await this.createAction({description:"Revoke permission",inputBEEF:e.tx,inputs:[{outpoint:t,unlockingScriptLength:73,inputDescription:"Consume old permission token"}],options:{acceptDelayedBroadcast:!0}},this.adminOriginator),n=ee.Transaction.fromBEEF(i.tx),s=d=>(d??"").toLowerCase(),a=d=>{let f=s(d);if(!/^[0-9a-f]{64}$/.test(f))return f;let h=f.match(/../g);return h?h.reverse().join(""):f},o=d=>{let f=d.lastIndexOf("."),h=d.lastIndexOf(":"),p=f>h?f:h;if(p===-1)return!1;let A=d.slice(0,p),g=d.slice(p+1),m=Number(g);return Number.isFinite(m)?s(A)===s(e.txid)&&m===e.outputIndex:!1},c=n.inputs.findIndex(d=>{var f,h,p,A,g,m,I,y,v,B,E,k,T;let D=(I=(m=(g=(A=(p=(h=(f=d?.sourceTXID)!==null&&f!==void 0?f:d?.sourceTxid)!==null&&h!==void 0?h:d?.sourceTxId)!==null&&p!==void 0?p:d?.prevTxId)!==null&&A!==void 0?A:d?.prevTxid)!==null&&g!==void 0?g:d?.prevTXID)!==null&&m!==void 0?m:d?.txid)!==null&&I!==void 0?I:d?.txID,j=(E=(B=(v=(y=d?.sourceOutputIndex)!==null&&y!==void 0?y:d?.sourceOutput)!==null&&v!==void 0?v:d?.outputIndex)!==null&&B!==void 0?B:d?.vout)!==null&&E!==void 0?E:d?.prevOutIndex;if(typeof D=="string"&&typeof j=="number"){let W=s(D),M=s(e.txid);if(W===M&&j===e.outputIndex||W===a(e.txid)&&j===e.outputIndex)return!0}let H=(T=(k=d?.outpoint)!==null&&k!==void 0?k:d?.sourceOutpoint)!==null&&T!==void 0?T:d?.prevOutpoint;return!!(typeof H=="string"&&o(H))});if(c===-1&&n.inputs.length===1&&(c=0),c===-1)throw new Error("Unable to locate permission token input for revocation.");let l=await new ee.PushDrop(this.underlying).unlock(r.PERM_TOKEN_ENCRYPTION_PROTOCOL,"1","self","all",!1,1,ee.LockingScript.fromHex(e.outputScript)).sign(n,c);await this.underlying.signAction({reference:i.reference,spends:{[c]:{unlockingScript:l.toHex()}}})}async createAction(e,t){let i=new Map,n=[];if(e.outputs){for(let E of e.outputs)if(E.basket)if(E.basket.startsWith("p ")){let k=E.basket.split(" ")[1];this.addPModuleByScheme(k,"basket",i)}else n.push(E.basket)}let s=this.splitLabelsByPermissionModule(e.labels,i);for(let E of n)await this.ensureBasketAccess({originator:t,basket:E,reason:e.description,usageType:"insertion"});for(let E of s)await this.ensureLabelAccess({originator:t,label:E,reason:e.description,usageType:"apply"});let a={...e.options||{}};if(a.signAndProcess!==!0)a.signAndProcess=!1;else if(!this.isAdminOriginator(t))throw new Error("Only the admin originator can set signAndProcess=true explicitly.");let o=e.description,c={},u={},l=(e.inputs||[]).map(async(E,k)=>{E.inputDescription&&(c[k]=E.inputDescription,E.inputDescription=await this.maybeEncryptMetadata(E.inputDescription))}),d=(e.outputs||[]).map(async(E,k)=>{E.outputDescription&&(u[k]=E.outputDescription,E.outputDescription=await this.maybeEncryptMetadata(E.outputDescription)),E.customInstructions&&(E.customInstructions=await this.maybeEncryptMetadata(E.customInstructions))});await Promise.all([(async()=>{e.description=await this.maybeEncryptMetadata(e.description)})(),...l,...d]);let f={...e,options:a,labels:[...e.labels||[],`admin originator ${t}`,`admin month ${this.getCurrentMonthYearUTC()}`]},h;if(i.size>0){let E=Array.from(i.values()),k=f;for(let T of E)k=(await T.onRequest({method:"createAction",args:k,originator:t})).args;h=await this.underlying.createAction(k,t);for(let T=E.length-1;T>=0;T--)h=await E[T].onResponse(h,{method:"createAction",originator:t})}else h=await this.underlying.createAction(f,t);if(!h.signableTransaction)return h;let p=ee.Transaction.fromAtomicBEEF(h.signableTransaction.tx),A=h.signableTransaction.reference,g=0,m=[],I=0;for(let E of p.inputs){let k=`${E.sourceTXID}.${E.sourceOutputIndex}`,T=(e.inputs||[]).findIndex(D=>D.outpoint===k);if(T!==-1){let D=E.sourceTransaction.outputs[E.sourceOutputIndex].satoshis;I+=D,m.push({type:"input",description:c[T]||"No input description provided",satoshis:D})}}let y=(e.outputs||[]).reduce((E,k)=>E+k.satoshis,0);for(let E in e.outputs||[]){let k=e.outputs[E];m.push({type:"output",satoshis:k.satoshis,description:u[E]||"No output description provided"})}if(m.push({type:"fee",satoshis:p.getFee(),description:"Network fee"}),g=y+p.getFee()-I,g>0)try{await this.ensureSpendingAuthorization({originator:t,satoshis:g,lineItems:m,reason:o})}catch(E){throw await this.underlying.abortAction({reference:A}),E}if(ee.Validation.validateCreateActionArgs(e).isSignAction)return h;let B=await this.underlying.signAction({reference:A,spends:{},options:e.options},t);return{...h,...B,signableTransaction:void 0}}async signAction(...e){return this.underlying.signAction(...e)}async abortAction(...e){return this.underlying.abortAction(...e)}async listActions(...e){let[t,i]=e,{remainingLabels:n}=(0,OTe.parseBrc114ActionTimeLabels)(t.labels),s=new Map,a=this.splitLabelsByPermissionModule(n,s);for(let c of a)await this.ensureLabelAccess({originator:i,label:c,reason:"listActions",usageType:"list"});let o;if(s.size>0){let c=Array.from(s.values()),u=t;for(let l of c)u=(await l.onRequest({method:"listActions",args:u,originator:i})).args;o=await this.underlying.listActions(u,i);for(let l=c.length-1;l>=0;l--)o=await c[l].onResponse(o,{method:"listActions",originator:i})}else o=await this.underlying.listActions(...e);return await this.decryptListActionsMetadata(o)}async internalizeAction(...e){var t;let[i,n]=e,s=new Map,a=[];for(let c in i.outputs){let u=i.outputs[c];if(u.protocol==="basket insertion"){let l=u.insertionRemittance.basket;if(l.startsWith("p ")){let d=l.split(" ")[1];this.addPModuleByScheme(d,"basket",s)}else a.push({outIndex:c,basket:l,customInstructions:u.insertionRemittance.customInstructions})}}let o=this.splitLabelsByPermissionModule(i.labels,s);for(let{outIndex:c,basket:u,customInstructions:l}of a)await this.ensureBasketAccess({originator:n,basket:u,reason:i.description,usageType:"insertion"}),l&&(i.outputs[c].insertionRemittance.customInstructions=await this.maybeEncryptMetadata(l));for(let c of o)await this.ensureLabelAccess({originator:n,label:c,reason:i.description,usageType:"apply"});if(s.size>0){let c=Array.from(s.values()),u=i;for(let d of c)u=(await d.onRequest({method:"internalizeAction",args:u,originator:n})).args;for(let d in u.outputs){let f=u.outputs[d];f.protocol==="basket insertion"&&(!((t=f.insertionRemittance)===null||t===void 0)&&t.customInstructions)&&(f.insertionRemittance.customInstructions=await this.maybeEncryptMetadata(f.insertionRemittance.customInstructions))}let l=await this.underlying.internalizeAction(u,n);for(let d=c.length-1;d>=0;d--)l=await c[d].onResponse(l,{method:"internalizeAction",originator:n});return l}return this.underlying.internalizeAction(...e)}async listOutputs(...e){let[t,i]=e,n=await this.delegateToPModuleIfNeeded(t.basket,"listOutputs",t,i,async a=>{let o=await this.underlying.listOutputs(a,i);return await this.decryptListOutputsMetadata(o)});if(n!==null)return n;await this.ensureBasketAccess({originator:i,basket:t.basket,reason:"listOutputs",usageType:"listing"});let s=await this.underlying.listOutputs(...e);return await this.decryptListOutputsMetadata(s)}async relinquishOutput(...e){let[t,i]=e,n=await this.delegateToPModuleIfNeeded(t.basket,"relinquishOutput",t,i,async s=>await this.underlying.relinquishOutput(s,i));return n!==null?n:(await this.ensureBasketAccess({originator:i,basket:t.basket,reason:"relinquishOutput",usageType:"removal"}),this.underlying.relinquishOutput(...e))}async getPublicKey(...e){let[t,i]=e;if(t.protocolID){let n=await this.delegateToPModuleIfNeeded(t.protocolID[1],"getPublicKey",t,i,async s=>await this.underlying.getPublicKey(s,i));if(n!==null)return n;await this.ensureProtocolPermission({originator:i,privileged:t.privileged,protocolID:t.protocolID,counterparty:t.counterparty||"self",reason:t.privilegedReason,usageType:"publicKey"})}return t.identityKey&&await this.ensureProtocolPermission({originator:i,privileged:t.privileged,protocolID:[1,"identity key retrieval"],counterparty:"self",reason:t.privilegedReason,usageType:"identityKey"}),this.underlying.getPublicKey(...e)}async revealCounterpartyKeyLinkage(...e){let[t,i]=e;return await this.ensureProtocolPermission({originator:i,privileged:t.privileged,protocolID:[2,`counterparty key linkage revelation ${t.counterparty}`],counterparty:t.verifier,reason:t.privilegedReason,usageType:"linkageRevelation"}),this.underlying.revealCounterpartyKeyLinkage(...e)}async revealSpecificKeyLinkage(...e){let[t,i]=e;return await this.ensureProtocolPermission({originator:i,privileged:t.privileged,protocolID:[2,`specific key linkage revelation ${t.protocolID[1]} ${t.protocolID[0]===2?t.keyID:"all"}`],counterparty:t.verifier,reason:t.privilegedReason,usageType:"linkageRevelation"}),this.underlying.revealSpecificKeyLinkage(...e)}async encrypt(...e){let[t,i]=e,n=await this.delegateToPModuleIfNeeded(t.protocolID[1],"encrypt",t,i,async s=>await this.underlying.encrypt(s,i));return n!==null?n:(await this.ensureProtocolPermission({originator:i,protocolID:t.protocolID,privileged:t.privileged,counterparty:t.counterparty||"self",reason:t.privilegedReason,usageType:"encrypting"}),this.underlying.encrypt(...e))}async decrypt(...e){let[t,i]=e,n=await this.delegateToPModuleIfNeeded(t.protocolID[1],"decrypt",t,i,async s=>await this.underlying.decrypt(s,i));return n!==null?n:(await this.ensureProtocolPermission({originator:i,privileged:t.privileged,protocolID:t.protocolID,counterparty:t.counterparty||"self",reason:t.privilegedReason,usageType:"encrypting"}),this.underlying.decrypt(...e))}async createHmac(...e){let[t,i]=e,n=await this.delegateToPModuleIfNeeded(t.protocolID[1],"createHmac",t,i,async s=>await this.underlying.createHmac(s,i));return n!==null?n:(await this.ensureProtocolPermission({originator:i,privileged:t.privileged,protocolID:t.protocolID,counterparty:t.counterparty||"self",reason:t.privilegedReason,usageType:"hmac"}),this.underlying.createHmac(...e))}async verifyHmac(...e){let[t,i]=e,n=await this.delegateToPModuleIfNeeded(t.protocolID[1],"verifyHmac",t,i,async s=>await this.underlying.verifyHmac(s,i));return n!==null?n:(await this.ensureProtocolPermission({originator:i,privileged:t.privileged,protocolID:t.protocolID,counterparty:t.counterparty||"self",reason:t.privilegedReason,usageType:"hmac"}),this.underlying.verifyHmac(...e))}async createSignature(...e){let[t,i]=e,n=await this.delegateToPModuleIfNeeded(t.protocolID[1],"createSignature",t,i,async s=>await this.underlying.createSignature(s,i));return n!==null?n:(await this.ensureProtocolPermission({originator:i,privileged:t.privileged,protocolID:t.protocolID,counterparty:t.counterparty||"self",reason:t.privilegedReason,usageType:"signing"}),this.underlying.createSignature(...e))}async verifySignature(...e){let[t,i]=e,n=await this.delegateToPModuleIfNeeded(t.protocolID[1],"verifySignature",t,i,async s=>await this.underlying.verifySignature(s,i));return n!==null?n:(await this.ensureProtocolPermission({originator:i,privileged:t.privileged,protocolID:t.protocolID,counterparty:t.counterparty||"self",reason:t.privilegedReason,usageType:"signing"}),this.underlying.verifySignature(...e))}async acquireCertificate(...e){let[t,i]=e;return this.config.seekCertificateAcquisitionPermissions&&await this.ensureProtocolPermission({originator:i,privileged:t.privileged,protocolID:[1,`certificate acquisition ${t.type}`],counterparty:"self",reason:t.privilegedReason,usageType:"generic"}),this.underlying.acquireCertificate(...e)}async listCertificates(...e){let[t,i]=e;return this.config.seekCertificateListingPermissions&&await this.ensureProtocolPermission({originator:i,privileged:t.privileged,protocolID:[1,"certificate list"],counterparty:"self",reason:t.privilegedReason,usageType:"generic"}),this.underlying.listCertificates(...e)}async proveCertificate(...e){let[t,i]=e;return await this.ensureCertificateAccess({originator:i,privileged:t.privileged,verifier:t.verifier,certType:t.certificate.type,fields:t.fieldsToReveal,reason:"proveCertificate",usageType:"disclosure"}),this.underlying.proveCertificate(...e)}async relinquishCertificate(...e){let[t,i]=e;return this.config.seekCertificateRelinquishmentPermissions&&await this.ensureProtocolPermission({originator:i,privileged:!!t.privileged,protocolID:[1,`certificate relinquishment ${t.type}`],counterparty:"self",reason:t.privilegedReason||"relinquishCertificate",usageType:"generic"}),this.underlying.relinquishCertificate(...e)}async discoverByIdentityKey(...e){let[t,i]=e;return this.config.seekPermissionsForIdentityResolution&&await this.ensureProtocolPermission({originator:i,privileged:!1,protocolID:[1,"identity resolution"],counterparty:"self",reason:"discoverByIdentityKey",usageType:"generic"}),this.underlying.discoverByIdentityKey(...e)}async discoverByAttributes(...e){let[t,i]=e;return this.config.seekPermissionsForIdentityResolution&&await this.ensureProtocolPermission({originator:i,privileged:!1,protocolID:[1,"identity resolution"],counterparty:"self",reason:"discoverByAttributes",usageType:"generic"}),this.underlying.discoverByAttributes(...e)}async isAuthenticated(...e){return this.underlying.isAuthenticated(...e)}async waitForAuthentication(...e){let[t,i]=e;if(this.config.seekGroupedPermission&&i){let{normalized:n}=this.prepareOriginator(i),s=n;await this.withGroupedPermissionFlowLock(s,async()=>{let a=await this.fetchManifestGroupPermissions(s);if(a){let o=await this.filterAlreadyGrantedPermissions(s,a);if(this.hasAnyPermissionsToRequest(o)){let c=`group:${s}`;if(this.activeRequests.has(c))await new Promise((u,l)=>{this.activeRequests.get(c).pending.push({resolve:u,reject:l})});else{let u=new Promise((l,d)=>{this.activeRequests.set(c,{request:{originator:s,permissions:o},pending:[{resolve:l,reject:d}]})});await this.callEvent("onGroupedPermissionRequested",{requestID:c,originator:s,permissions:o}),await u}}}})}return this.underlying.waitForAuthentication(...e)}async getHeight(...e){return this.underlying.getHeight(...e)}async getHeaderForHeight(...e){return this.underlying.getHeaderForHeight(...e)}async getNetwork(...e){return this.underlying.getNetwork(...e)}async getVersion(...e){return this.underlying.getVersion(...e)}isAdminOriginator(e){return this.normalizeOriginator(e)===this.adminOriginator}isAdminProtocol(e){return!!e[1].startsWith("admin")}isAdminLabel(e){return!!(e.startsWith("admin")||e.startsWith("p "))}isAdminBasket(e){return!!(e==="default"||e.startsWith("admin"))}isPermissionCached(e){let t=this.permissionCache.get(e);return t?Date.now()-t.cachedAt>r.CACHE_TTL_MS?(this.permissionCache.delete(e),!1):this.isTokenExpired(t.expiry)?(this.permissionCache.delete(e),!1):!0:!1}cachePermission(e,t){this.permissionCache.set(e,{expiry:t,cachedAt:Date.now()})}markRecentGrant(e){if(e.type==="spending")return;let t=this.buildRequestKey(e);t&&this.recentGrants.set(t,Date.now()+r.RECENT_GRANT_COVER_MS)}isRecentlyGranted(e){let t=this.recentGrants.get(e);return t?Date.now()>t?(this.recentGrants.delete(e),!1):!0:!1}normalizeOriginator(e){if(!e)return"";let t=e.trim();if(!t)return"";try{let n=/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(t)?t:`https://${t}`,s=new URL(n);if(!s.hostname)return t.toLowerCase();let a=s.hostname.toLowerCase(),c=a.includes(":")?`[${a}]`:a,u=s.port,l=r.DEFAULT_PORTS[s.protocol];return u&&l&&u===l?c:u?`${c}:${u}`:c}catch{return t.toLowerCase()}}isWhitelistedCounterpartyProtocol(e,t){var i;let n=this.config.whitelistedCounterparties;if(!n||!e||e==="self"||e==="anyone")return!1;let s=n[e]||n[e.toLowerCase()]||n[e.toUpperCase()];if(!s||s.length===0)return!1;let a=((i=t?.[1])!==null&&i!==void 0?i:"").toString().toLowerCase();return a?s.some(o=>(o??"").toString().toLowerCase()===a):!1}prepareOriginator(e){let t=e?.trim();if(!t)throw new Error("Originator is required for permission checks.");let i=this.normalizeOriginator(t)||t.toLowerCase(),n=Array.from(new Set([t,i])).filter(Boolean);return{normalized:i,lookupValues:n}}buildOriginatorLookupValues(...e){let t=new Set;for(let i of e){let n=i?.trim();n&&t.add(n)}return Array.from(t)}buildRequestKey(e){var t,i,n,s,a;let o=this.normalizeOriginator(e.originator);switch(e.type){case"protocol":return`proto:${o}:${!!e.privileged}:${(t=e.protocolID)===null||t===void 0?void 0:t.join(",")}:${e.counterparty}`;case"basket":return`basket:${o}:${e.basket}`;case"certificate":return`cert:${o}:${!!e.privileged}:${(i=e.certificate)===null||i===void 0?void 0:i.verifier}:${(n=e.certificate)===null||n===void 0?void 0:n.certType}:${(s=e.certificate)===null||s===void 0?void 0:s.fields.join("|")}`;case"spending":return`spend:${o}:${(a=e.spending)===null||a===void 0?void 0:a.satoshis}`}}buildActiveRequestKey(e){var t;let i=this.buildRequestKey(e);return e.type==="protocol"||e.type==="basket"||e.type==="certificate"?`${i}:${(t=e.usageType)!==null&&t!==void 0?t:""}`:i}};Jv.WalletPermissionsManager=ao;ao.MANIFEST_CACHE_TTL_MS=300*1e3;ao.CACHE_TTL_MS=300*1e3;ao.RECENT_GRANT_COVER_MS=15*1e3;ao.DEFAULT_PORTS={"http:":"80","https:":"443"};ao.PERM_TOKEN_ENCRYPTION_PROTOCOL=[2,"admin permission token encryption"];ao.METADATA_ENCRYPTION_PROTOCOL=[2,"admin metadata encryption"]});var Q3=b(zv=>{"use strict";Object.defineProperty(zv,"__esModule",{value:!0});zv.EntropyCollector=void 0;var _3=se(),T3=class{constructor(e={}){var t,i;this.rawEntropy={mousePositions:[],timingDeltas:[]},this.lastSampleTime=0,this.config={targetSamples:(t=e.targetSamples)!==null&&t!==void 0?t:256,minSampleInterval:(i=e.minSampleInterval)!==null&&i!==void 0?i:10}}reset(){this.rawEntropy={mousePositions:[],timingDeltas:[]},this.lastSampleTime=0}addMouseSample(e,t){let i=performance.now();return i-this.lastSampleTime<this.config.minSampleInterval?null:(this.lastSampleTime>0&&this.rawEntropy.timingDeltas.push(i-this.lastSampleTime),this.lastSampleTime=i,this.rawEntropy.mousePositions.push({x:e,y:t,time:i}),this.getProgress())}getProgress(){let e=this.rawEntropy.mousePositions.length;return{collected:e,target:this.config.targetSamples,percent:Math.min(100,Math.floor(e/this.config.targetSamples*100))}}isComplete(){return this.rawEntropy.mousePositions.length>=this.config.targetSamples}extractRawEntropy(){let e=[];for(let i of this.rawEntropy.mousePositions)e.push(i.x&255),e.push(i.y&255),e.push(Math.floor(i.time*1e3)&255),e.push(Math.floor(i.time*1e6)&255);for(let i of this.rawEntropy.timingDeltas)e.push(Math.floor(i*1e3)&255),e.push(Math.floor(i*1e6)&255);let t=_3.Hash.sha256(e);return new Uint8Array(t)}mixWithCSPRNG(){let e=this.extractRawEntropy(),t=new Uint8Array((0,_3.Random)(32)),i=new Uint8Array(32);for(let s=0;s<32;s++)i[s]=e[s]^t[s];let n=_3.Hash.sha256(Array.from(i));return new Uint8Array(n)}generateEntropy(){return this.isComplete()||console.warn(`EntropyCollector: Only ${this.rawEntropy.mousePositions.length}/${this.config.targetSamples} samples collected. Supplementing with additional CSPRNG entropy.`),this.mixWithCSPRNG()}async collectFromBrowser(e=document,t){return new Promise(i=>{let n=s=>{if(s instanceof MouseEvent){let a=this.addMouseSample(s.clientX,s.clientY);a&&(t?.(a),this.isComplete()&&(e.removeEventListener("mousemove",n),i(this.generateEntropy())))}};e.addEventListener("mousemove",n)})}estimateEntropyBits(){let e=this.rawEntropy.mousePositions.length;return e===0?0:Math.min(256,e*6)}};zv.EntropyCollector=T3});var zG=b($v=>{"use strict";Object.defineProperty($v,"__esModule",{value:!0});$v.ShamirWalletManager=void 0;var Cl=se(),FTe=_u(),PTe=k3(),UTe=Q3(),N3=class{constructor(e){var t,i;if(this.config=e,this.wabClient=new PTe.WABClient(e.wabServerUrl),this.entropyCollector=new UTe.EntropyCollector,this.threshold=(t=e.threshold)!==null&&t!==void 0?t:2,this.totalShares=(i=e.totalShares)!==null&&i!==void 0?i:3,this.threshold<2)throw new Error("Threshold must be at least 2");if(this.totalShares<3)throw new Error("Total shares must be at least 3");let n=this.totalShares-1;if(n<this.threshold)throw new Error(`User must have at least ${this.threshold} shares to recover independently. With ${this.totalShares} total shares and server holding 1, user only gets ${n}. Increase totalShares to at least ${this.threshold+1}.`)}getThreshold(){return this.threshold}getTotalShares(){return this.totalShares}resetEntropy(){this.entropyCollector.reset()}addMouseEntropy(e,t){return this.entropyCollector.addMouseSample(e,t)}hasEnoughEntropy(){return this.entropyCollector.isComplete()}getEntropyProgress(){return this.entropyCollector.getProgress()}async collectEntropyFromBrowser(e,t){await this.entropyCollector.collectFromBrowser(e,t)}generateUserIdHash(e){let t=e.toPublicKey().toString(),i=Cl.Hash.sha256(Cl.Utils.toArray(t,"utf8"));return Cl.Utils.toHex(i)}async createNewWallet(e,t){let i=this.entropyCollector.generateEntropy(),n=new Cl.PrivateKey(Array.from(i)),s=n.toBackupShares(this.threshold,this.totalShares),a=s[0],o=s.slice(1),c=this.generateUserIdHash(n),u=await this.wabClient.storeShare(this.config.authMethodType,e,a,c);if(!u.success)throw new Error(u.message||"Failed to store share on server");return await t(o,this.threshold,this.totalShares)||console.warn("User shares may not have been saved. Recovery may be limited."),this.privateKey=n,this.userIdHash=c,{userShares:o,userIdHash:c,privateKey:n,threshold:this.threshold,totalShares:this.totalShares}}async startOTPVerification(e){if(!this.userIdHash)throw new Error("User ID hash not set. Call setUserIdHash first for recovery.");let t=await this.wabClient.startShareAuth(this.config.authMethodType,this.userIdHash,e);if(!t.success)throw new Error(t.message||"Failed to start OTP verification")}setUserIdHash(e){this.userIdHash=e}async recoverWithServerShare(e,t){for(let c of e)this.validateShareFormat(c);if(!this.userIdHash)throw new Error("User ID hash not set. Call setUserIdHash first.");let i=this.getThresholdFromShare(e[0]);if(e.length<i-1)throw new Error(`Need at least ${i-1} user shares to recover with server share. Got ${e.length}.`);let n=await this.wabClient.retrieveShare(this.config.authMethodType,t,this.userIdHash);if(!n.success||!n.shareB)throw new Error(n.message||"Failed to retrieve share from server");let s=[n.shareB,...e.slice(0,i-1)],a=Cl.PrivateKey.fromBackupShares(s);if(this.generateUserIdHash(a)!==this.userIdHash)throw new Error("Share reconstruction failed: integrity check failed");return this.privateKey=a,a}async recoverWithUserShares(e){if(e.length<2)throw new Error("Need at least 2 shares to recover");for(let n of e)this.validateShareFormat(n);let t=this.getThresholdFromShare(e[0]);if(e.length<t)throw new Error(`Need at least ${t} shares to recover. Got ${e.length}.`);let i=Cl.PrivateKey.fromBackupShares(e.slice(0,t));return this.userIdHash=this.generateUserIdHash(i),this.privateKey=i,i}getThresholdFromShare(e){let t=e.split(".");if(t.length!==4)throw new Error("Invalid share format");let i=parseInt(t[2],10);if(isNaN(i)||i<2)throw new Error("Invalid threshold in share");return i}async buildWallet(){if(!this.privateKey)throw new Error("No private key available. Create or recover wallet first.");let e=new FTe.PrivilegedKeyManager(async()=>this.privateKey);return this.underlying=await this.config.walletBuilder(this.privateKey,e),this.underlying}getWallet(){if(!this.underlying)throw new Error("Wallet not built. Call buildWallet first.");return this.underlying}async rotateKeys(e,t){if(!this.userIdHash)throw new Error("User ID hash not set. Cannot rotate keys.");if(!this.hasEnoughEntropy())throw new Error("Collect entropy before key rotation");let i=this.entropyCollector.generateEntropy(),n=new Cl.PrivateKey(Array.from(i)),s=n.toBackupShares(this.threshold,this.totalShares),a=s[0],o=s.slice(1),c=this.generateUserIdHash(n),u=await this.wabClient.updateShare(this.config.authMethodType,e,this.userIdHash,a);if(!u.success)throw new Error(u.message||"Failed to update share on server");return await t(o,this.threshold,this.totalShares)||console.warn("User shares may not have been saved. Recovery may be limited."),this.privateKey=n,this.userIdHash=c,{userShares:o,userIdHash:c,privateKey:n,threshold:this.threshold,totalShares:this.totalShares}}validateShareFormat(e){let t=e.split(".");if(t.length!==4)throw new Error(`Invalid share format. Expected 4 dot-separated parts, got ${t.length}`);let i=parseInt(t[2],10);if(isNaN(i)||i<2)throw new Error("Invalid share: threshold must be at least 2")}hasPrivateKey(){return this.privateKey!==void 0}getUserIdHash(){return this.userIdHash}async deleteAccount(e){if(!this.userIdHash)throw new Error("User ID hash not set. Cannot delete account.");let t=await this.wabClient.deleteShamirUser(this.config.authMethodType,e,this.userIdHash);if(!t.success)throw new Error(t.message||"Failed to delete account");this.privateKey=void 0,this.userIdHash=void 0,this.underlying=void 0}};$v.ShamirWalletManager=N3});var D3=b(Yv=>{"use strict";Object.defineProperty(Yv,"__esModule",{value:!0});Yv.MockChainMigrations=void 0;var R3=class{constructor(){this.migrations={},this.migrations=this.setupMigrations()}async getMigrations(){return Object.keys(this.migrations).sort((e,t)=>e.localeCompare(t))}getMigrationName(e){return e}async getMigration(e){return this.migrations[e]}setupMigrations(){let e={};return e["2026-01-01-001 initial mockchain tables"]={async up(t){await t.schema.createTable("mockchain_block_headers",i=>{i.integer("height").primary(),i.string("hash",64).notNullable().unique(),i.string("previousHash",64).notNullable(),i.string("merkleRoot",64).notNullable(),i.integer("version").notNullable().defaultTo(1),i.integer("time").unsigned().notNullable(),i.integer("bits").unsigned().notNullable(),i.integer("nonce").unsigned().notNullable(),i.string("coinbaseTxid",64).notNullable(),i.timestamp("created_at").defaultTo(t.fn.now()).notNullable()}),await t.schema.createTable("mockchain_transactions",i=>{i.string("txid",64).primary(),i.binary("rawTx").notNullable(),i.integer("blockHeight").nullable(),i.integer("blockIndex").nullable(),i.timestamp("created_at").defaultTo(t.fn.now()).notNullable()}),await t.schema.createTable("mockchain_utxos",i=>{i.increments("id").primary(),i.string("txid",64).notNullable(),i.integer("vout").notNullable(),i.binary("lockingScript").notNullable(),i.bigInteger("satoshis").notNullable(),i.string("scriptHash",64).notNullable(),i.string("spentByTxid",64).nullable(),i.boolean("isCoinbase").notNullable().defaultTo(!1),i.integer("blockHeight").nullable(),i.timestamp("created_at").defaultTo(t.fn.now()).notNullable(),i.unique(["txid","vout"]),i.index("scriptHash"),i.index("spentByTxid")})},async down(t){await t.schema.dropTableIfExists("mockchain_utxos"),await t.schema.dropTableIfExists("mockchain_transactions"),await t.schema.dropTableIfExists("mockchain_block_headers")}},e}};Yv.MockChainMigrations=R3});var Zv=b(Xv=>{"use strict";Object.defineProperty(Xv,"__esModule",{value:!0});Xv.MockChainStorage=void 0;var HTe=D3(),O3=class{constructor(e){this.knex=e}async migrate(){let e=new HTe.MockChainMigrations;await this.knex.migrate.latest({migrationSource:e,tableName:"knex_migrations_mockchain"})}async insertTransaction(e,t){await this.knex("mockchain_transactions").insert({txid:e,rawTx:Buffer.from(t),blockHeight:null,blockIndex:null})}async getTransaction(e){return this.knex("mockchain_transactions").where({txid:e}).first()}async getUnminedTransactions(){return this.knex("mockchain_transactions").whereNull("blockHeight")}async setTransactionBlock(e,t,i){await this.knex("mockchain_transactions").where({txid:e}).update({blockHeight:t,blockIndex:i})}async insertUtxo(e,t,i,n,s,a=!1,o=null){await this.knex("mockchain_utxos").insert({txid:e,vout:t,lockingScript:Buffer.from(i),satoshis:n,scriptHash:s,spentByTxid:null,isCoinbase:a,blockHeight:o})}async getUtxo(e,t){return this.knex("mockchain_utxos").where({txid:e,vout:t}).first()}async getUtxosByScriptHash(e){return this.knex("mockchain_utxos").where({scriptHash:e})}async markUtxoSpent(e,t,i){await this.knex("mockchain_utxos").where({txid:e,vout:t}).update({spentByTxid:i})}async insertBlockHeader(e){await this.knex("mockchain_block_headers").insert(e)}async getBlockHeaderByHeight(e){let t=await this.knex("mockchain_block_headers").where({height:e}).first();return t?this.rowToBlockHeader(t):void 0}async getBlockHeaderByHash(e){let t=await this.knex("mockchain_block_headers").where({hash:e}).first();return t?this.rowToBlockHeader(t):void 0}async getChainTip(){let e=await this.knex("mockchain_block_headers").orderBy("height","desc").first();return e?this.rowToBlockHeader(e):void 0}async getTransactionsInBlock(e){return this.knex("mockchain_transactions").where({blockHeight:e}).orderBy("blockIndex","asc")}async deleteBlockHeader(e){await this.knex("mockchain_block_headers").where({height:e}).delete()}async deleteTransaction(e){await this.knex("mockchain_transactions").where({txid:e}).delete()}async deleteUtxosByTxid(e){await this.knex("mockchain_utxos").where({txid:e}).delete()}async setUtxoBlockHeight(e,t){await this.knex("mockchain_utxos").where({txid:e}).update({blockHeight:t})}async unspendUtxo(e,t){await this.knex("mockchain_utxos").where({txid:e,vout:t}).update({spentByTxid:null})}rowToBlockHeader(e){return{height:e.height,hash:e.hash,previousHash:e.previousHash,merkleRoot:e.merkleRoot,version:e.version,time:e.time,bits:e.bits,nonce:e.nonce}}};Xv.MockChainStorage=O3});var U3=b(ex=>{"use strict";Object.defineProperty(ex,"__esModule",{value:!0});ex.MockChainTracker=void 0;var MTe=se(),qTe=Qn(),F3=de(),P3=class{constructor(e,t){this.chain=e,this.storage=t}async currentHeight(){let e=await this.storage.getChainTip();return e?e.height:-1}async isValidRootForHeight(e,t){let i=await this.storage.getBlockHeaderByHeight(t);return i?i.merkleRoot===e:!1}async getChain(){return this.chain}async getInfo(){let e=await this.storage.getChainTip();return{chain:this.chain,heightBulk:e?e.height:-1,heightLive:e?e.height:-1,storage:"mockchain",bulkIngestors:[],liveIngestors:[],packages:[]}}async getPresentHeight(){return this.currentHeight()}async getHeaders(e,t){let i="";for(let n=e;n<e+t;n++){let s=await this.storage.getBlockHeaderByHeight(n);if(!s)break;let a=(0,qTe.toBinaryBaseBlockHeader)(s);i+=MTe.Utils.toHex(a)}return i}async findChainTipHeader(){let e=await this.storage.getChainTip();if(!e)throw new Error("Mock chain has no blocks");return e}async findChainTipHash(){let e=await this.storage.getChainTip();if(!e)throw new Error("Mock chain has no blocks");return e.hash}async findHeaderForHeight(e){return this.storage.getBlockHeaderByHeight(e)}async findHeaderForBlockHash(e){return this.storage.getBlockHeaderByHash(e)}async addHeader(e){}async startListening(){}async listening(){}async isListening(){return!0}async isSynchronized(){return!0}async subscribeHeaders(e){throw new F3.WERR_NOT_IMPLEMENTED("subscribeHeaders not supported on mock chain")}async subscribeReorgs(e){throw new F3.WERR_NOT_IMPLEMENTED("subscribeReorgs not supported on mock chain")}async unsubscribe(e){throw new F3.WERR_NOT_IMPLEMENTED("unsubscribe not supported on mock chain")}};ex.MockChainTracker=P3});var kg=b(tx=>{"use strict";Object.defineProperty(tx,"__esModule",{value:!0});tx.computeMerkleRoot=LTe;tx.computeMerklePath=KTe;var $G=se(),YG=ae(),Cg=xt();function LTe(r){if(r.length===0)throw new Error("Cannot compute merkle root of empty txid list");let e=r.map(t=>(0,Cg.asArray)(t).reverse());for(;e.length>1;){let t=[];for(let i=0;i<e.length;i+=2){let n=e[i],s=i+1<e.length?e[i+1]:e[i],a=[...n,...s],o=(0,YG.doubleSha256BE)(a).reverse();t.push(o)}e=t}return(0,Cg.asString)(e[0].reverse())}function KTe(r,e,t){if(r.length===0)throw new Error("Cannot compute merkle path of empty txid list");if(e<0||e>=r.length)throw new Error(`targetIndex ${e} out of range [0, ${r.length})`);if(r.length===1){let c=[[{offset:0,hash:r[0],txid:!0}]];return new $G.MerklePath(t,c)}let i=0,n=r.length;for(;n>1;)i++,n=Math.ceil(n/2);let s=Array(i).fill(0).map(()=>[]),a=e,o=[...r];for(let c=0;c<i;c++){let u=a%2===1,l=u?a-1:a+1;if(c===0){let f={offset:e,hash:r[e],txid:!0};if(l>=o.length){let h={offset:l,duplicate:!0};s[0].push(f),s[0].push(h)}else{let h={offset:l,hash:o[l]};u?(s[0].push(h),s[0].push(f)):(s[0].push(f),s[0].push(h))}}else l>=o.length?s[c].push({offset:l,duplicate:!0}):s[c].push({offset:l,hash:o[l]});let d=[];for(let f=0;f<o.length;f+=2){let h=(0,Cg.asArray)(o[f]).reverse(),p=f+1<o.length?(0,Cg.asArray)(o[f+1]).reverse():h,A=[...h,...p],g=(0,YG.doubleSha256BE)(A);d.push((0,Cg.asString)(g))}o=d,a=Math.floor(a/2)}return new $G.MerklePath(t,s)}});var rx=b(Sg=>{"use strict";Object.defineProperty(Sg,"__esModule",{value:!0});Sg.MockMiner=void 0;Sg.createCoinbaseTransaction=eJ;var ix=se(),VTe=Zv(),jTe=kg(),WTe=Qn(),XG=ae(),ZG=xt();function eJ(r){let e=new ix.Transaction,t=[],i=r;if(i===0)t.push(0);else{for(;i>0;)t.push(i&255),i>>=8;t[t.length-1]&128&&t.push(0)}let n=[t.length,...t],s=ix.Script.fromBinary(n);return e.addInput({sourceTXID:"00".repeat(32),sourceOutputIndex:4294967295,unlockingScript:s,sequence:4294967295}),e.addOutput({satoshis:5e9,lockingScript:ix.Script.fromHex("51")}),e}var H3=class{async mineBlock(e){let t=await e.getChainTip(),i=t?t.height+1:0,n=t?t.hash:"00".repeat(32),s=await e.getUnminedTransactions(),a=eJ(i),o=a.id("hex"),c=Array.from(a.toBinary()),u=[o,...s.map(v=>v.txid)],l=(0,jTe.computeMerkleRoot)(u),d=Math.floor(Date.now()/1e3),f=545259519,h=(0,ix.Random)(4),p=(h[0]<<24|h[1]<<16|h[2]<<8|h[3])>>>0,A={version:1,previousHash:n,merkleRoot:l,time:d,bits:f,nonce:p},g=(0,WTe.toBinaryBaseBlockHeader)(A),m=(0,ZG.asString)((0,XG.doubleSha256BE)(g)),I=[81],y=(0,ZG.asString)((0,XG.sha256Hash)(I));return await e.knex.transaction(async v=>{let B=new VTe.MockChainStorage(v);await B.knex("mockchain_transactions").insert({txid:o,rawTx:Buffer.from(c),blockHeight:i,blockIndex:0}),await B.knex("mockchain_utxos").insert({txid:o,vout:0,lockingScript:Buffer.from(I),satoshis:5e9,scriptHash:y,spentByTxid:null,isCoinbase:!0,blockHeight:i});for(let k=0;k<s.length;k++)await B.knex("mockchain_transactions").where({txid:s[k].txid}).update({blockHeight:i,blockIndex:k+1}),await B.knex("mockchain_utxos").where({txid:s[k].txid}).update({blockHeight:i});let E={height:i,hash:m,previousHash:n,merkleRoot:l,version:1,time:d,bits:f,nonce:p,coinbaseTxid:o};await B.knex("mockchain_block_headers").insert(E)}),{height:i,hash:m,previousHash:n,merkleRoot:l,version:1,time:d,bits:f,nonce:p}}};Sg.MockMiner=H3});var nJ=b(ga=>{"use strict";var GTe=ga&&ga.__createBinding||(Object.create?(function(r,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,i,n)}):(function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]})),JTe=ga&&ga.__setModuleDefault||(Object.create?(function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}):function(r,e){r.default=e}),tJ=ga&&ga.__importStar||(function(){var r=function(e){return r=Object.getOwnPropertyNames||function(t){var i=[];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[i.length]=n);return i},r(e)};return function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var i=r(e),n=0;n<i.length;n++)i[n]!=="default"&>e(t,e,i[n]);return JTe(t,e),t}})();Object.defineProperty(ga,"__esModule",{value:!0});ga.MockServices=void 0;var Es=se(),Ci=de(),nx=ae(),_g=xt(),M3=Qn(),iJ=Zv(),zTe=U3(),$Te=rx(),rJ=kg(),q3=class{constructor(e){this.knex=e,this.chain="mock",this.storage=new iJ.MockChainStorage(e),this.tracker=new zTe.MockChainTracker("mock",this.storage),this.miner=new $Te.MockMiner}async initialize(){await this.storage.migrate(),await this.storage.getChainTip()||await this.miner.mineBlock(this.storage)}async mineBlock(){return this.miner.mineBlock(this.storage)}async postBeef(e,t){var i;let n=[];for(let s of t)try{let a=e.findTxid(s);if(!a){n.push({name:"MockServices",status:"error",error:new Ci.WERR_INVALID_PARAMETER("txid",`present in provided BEEF. txid: ${s}`),txidResults:[{txid:s,status:"error"}]});continue}let o=a.rawTx;if(!o){n.push({name:"MockServices",status:"error",error:new Ci.WERR_INVALID_PARAMETER("rawTx",`present in BEEF for txid: ${s}`),txidResults:[{txid:s,status:"error"}]});continue}let c=Es.Transaction.fromBinary(o),u=await this.tracker.currentHeight();for(let d=0;d<c.inputs.length;d++){let f=c.inputs[d],h=f.sourceTXID||(f.sourceTransaction?f.sourceTransaction.id("hex"):void 0);if(!h)throw new Ci.WERR_INVALID_PARAMETER("input.sourceTXID",`defined for input ${d}`);let p=f.sourceOutputIndex,A=await this.storage.getUtxo(h,p);if(!A)throw new Ci.WERR_INVALID_PARAMETER("input",`reference a known UTXO. Input ${d}: ${h}.${p} not found`);if(A.spentByTxid)throw new Ci.WERR_INVALID_PARAMETER("input",`not be already spent. Input ${d}: ${h}.${p} spent by ${A.spentByTxid}`);if(A.isCoinbase&&A.blockHeight!==null&&u-A.blockHeight<100)throw new Ci.WERR_INVALID_PARAMETER("input",`not spend immature coinbase. Input ${d}: coinbase at height ${A.blockHeight}, current height ${u}, need 100 confirmations`);if(!f.sourceTransaction){let g=await this.storage.getTransaction(h);if(g){let m=g.rawTx instanceof Buffer?Array.from(g.rawTx):Array.isArray(g.rawTx)?g.rawTx:Array.from(g.rawTx);f.sourceTransaction=Es.Transaction.fromBinary(m)}}}for(let d of c.inputs)if(d.sourceTransaction&&!d.sourceTransaction.merklePath){let f=d.sourceTransaction.id("hex"),h=await this.storage.getTransaction(f);if(h&&h.blockHeight!==null){let A=(await this.storage.getTransactionsInBlock(h.blockHeight)).map(m=>m.txid),g=A.indexOf(f);g>=0&&(d.sourceTransaction.merklePath=(0,rJ.computeMerklePath)(A,g,h.blockHeight))}}let l=await c.verify("scripts only");if(l!==!0)throw new Ci.WERR_INVALID_PARAMETER("transaction",`pass script validation: ${l}`);await this.storage.insertTransaction(s,Array.from(o));for(let d=0;d<c.outputs.length;d++){let f=c.outputs[d],h=f.lockingScript.toBinary(),p=(0,_g.asString)((0,nx.sha256Hash)(Array.from(h)));await this.storage.insertUtxo(s,d,Array.from(h),(i=f.satoshis)!==null&&i!==void 0?i:0,p)}for(let d of c.inputs){let f=d.sourceTXID||(d.sourceTransaction?d.sourceTransaction.id("hex"):"");await this.storage.markUtxoSpent(f,d.sourceOutputIndex,s)}n.push({name:"MockServices",status:"success",txidResults:[{txid:s,status:"success"}]})}catch(a){let o=a instanceof Error?new Ci.WERR_INTERNAL(a.message):new Ci.WERR_INTERNAL(String(a));n.push({name:"MockServices",status:"error",error:o,txidResults:[{txid:s,status:"error"}]})}return n}async reorg(e,t,i){let n=await this.storage.getChainTip();if(!n)throw new Ci.WERR_INTERNAL("Cannot reorg empty chain");if(e>n.height)throw new Ci.WERR_INVALID_PARAMETER("startingHeight",`<= current tip height ${n.height}`);let s=[];for(let o=e;o<=n.height;o++){let c=await this.storage.getBlockHeaderByHeight(o);c&&s.push(c)}await this.knex.transaction(async o=>{let c=new iJ.MockChainStorage(o);for(let u=n.height;u>=e;u--){let l=await c.getTransactionsInBlock(u),d=await c.knex("mockchain_block_headers").where({height:u}).first(),f=d?.coinbaseTxid;for(let h of l)f&&h.txid===f?(await c.deleteUtxosByTxid(h.txid),await c.deleteTransaction(h.txid)):(await c.setTransactionBlock(h.txid,null,null),await c.setUtxoBlockHeight(h.txid,null));d&&await c.deleteBlockHeader(u)}for(let u=0;u<t;u++){let l=e+u,d=[];if(i)for(let[M,Y]of Object.entries(i))Y===u&&d.push(M);let f;if(l===0)f="00".repeat(32);else{let M=await c.getBlockHeaderByHeight(l-1);if(!M)throw new Ci.WERR_INTERNAL(`Missing block header at height ${l-1}`);f=M.hash}let{createCoinbaseTransaction:h}=await Promise.resolve().then(()=>tJ(rx())),p=h(l),A=p.id("hex"),g=Array.from(p.toBinary()),m=[A,...d],{computeMerkleRoot:I}=await Promise.resolve().then(()=>tJ(kg())),y=I(m),v=Math.floor(Date.now()/1e3),B=545259519,E=(0,Es.Random)(4),k=(E[0]<<24|E[1]<<16|E[2]<<8|E[3])>>>0,T={version:1,previousHash:f,merkleRoot:y,time:v,bits:B,nonce:k},D=(0,M3.toBinaryBaseBlockHeader)(T),j=(0,_g.asString)((0,nx.doubleSha256BE)(D));await c.knex("mockchain_transactions").insert({txid:A,rawTx:Buffer.from(g),blockHeight:l,blockIndex:0});let H=[81],W=(0,_g.asString)((0,nx.sha256Hash)(H));await c.knex("mockchain_utxos").insert({txid:A,vout:0,lockingScript:Buffer.from(H),satoshis:5e9,scriptHash:W,spentByTxid:null,isCoinbase:!0,blockHeight:l});for(let M=0;M<d.length;M++)await c.setTransactionBlock(d[M],l,M+1),await c.setUtxoBlockHeight(d[M],l);await c.knex("mockchain_block_headers").insert({height:l,hash:j,previousHash:f,merkleRoot:y,version:1,time:v,bits:B,nonce:k,coinbaseTxid:A})}});let a=await this.storage.getChainTip();if(!a)throw new Ci.WERR_INTERNAL("Chain tip missing after reorg");return{oldTip:n,newTip:a,deactivatedHeaders:s}}async getRawTx(e){let t=await this.storage.getTransaction(e);if(!t)return{txid:e};let i=t.rawTx instanceof Buffer?Array.from(t.rawTx):Array.isArray(t.rawTx)?t.rawTx:Array.from(t.rawTx);return{txid:e,rawTx:i,name:"MockServices"}}async getMerklePath(e){let t=await this.storage.getTransaction(e);if(!t||t.blockHeight===null)return{};let n=(await this.storage.getTransactionsInBlock(t.blockHeight)).map(c=>c.txid),s=n.indexOf(e);if(s<0)return{};let a=await this.storage.getBlockHeaderByHeight(t.blockHeight);return{merklePath:(0,rJ.computeMerklePath)(n,s,t.blockHeight),header:a||void 0,name:"MockServices"}}async getUtxoStatus(e,t,i){let n=(0,M3.validateScriptHash)(e,t),s=(0,_g.asString)((0,_g.asArray)(n).reverse()),o=(await this.storage.getUtxosByScriptHash(s)).filter(l=>!l.spentByTxid),c=o.length>0,u=o.map(l=>{var d;return{txid:l.txid,index:l.vout,height:(d=l.blockHeight)!==null&&d!==void 0?d:void 0,satoshis:Number(l.satoshis)}});if(i&&c){let[l,d]=i.split("."),f=parseInt(d,10);c=!!u.find(p=>p.txid===l&&p.index===f)}return{name:"MockServices",status:"success",isUtxo:c,details:u}}async getStatusForTxids(e){let t=await this.tracker.currentHeight();return{name:"MockServices",status:"success",results:await Promise.all(e.map(async n=>{let s=await this.storage.getTransaction(n);if(!s)return{txid:n,status:"unknown",depth:void 0};if(s.blockHeight!==null){let a=t-s.blockHeight+1;return{txid:n,status:"mined",depth:a}}return{txid:n,status:"known",depth:0}}))}}async getScriptHashHistory(e){return{name:"MockServices",status:"success",history:(await this.storage.getUtxosByScriptHash(e)).map(n=>{var s;return{txid:n.txid,height:(s=n.blockHeight)!==null&&s!==void 0?s:void 0}})}}async getChainTracker(){return this.tracker}async getHeaderForHeight(e){let t=await this.storage.getBlockHeaderByHeight(e);if(!t)throw new Ci.WERR_INVALID_PARAMETER("height",`valid height '${e}' on mock chain`);return(0,M3.toBinaryBaseBlockHeader)(t)}async getHeight(){return this.tracker.currentHeight()}async hashToHeader(e){let t=await this.storage.getBlockHeaderByHash(e);if(!t)throw new Ci.WERR_INVALID_PARAMETER("hash",`valid blockhash '${e}' on mock chain`);return t}hashOutputScript(e){return Es.Utils.toHex((0,nx.sha256Hash)(Es.Utils.toArray(e,"hex")))}async isUtxo(e){if(!e.lockingScript)throw new Ci.WERR_INVALID_PARAMETER("output.lockingScript","validated by storage provider validateOutputScript.");let t=this.hashOutputScript(Es.Utils.toHex(e.lockingScript));return(await this.getUtxoStatus(t,void 0,`${e.txid}.${e.vout}`)).isUtxo===!0}async getBsvExchangeRate(){return 50}async getFiatExchangeRate(e,t){return 1}async getFiatExchangeRates(e){let t={};for(let i of e)t[i]=1;return{timestamp:new Date,base:"USD",rates:t}}async nLockTimeIsFinal(e){let n;if(typeof e=="number")n=e;else if(typeof e=="string"?e=Es.Transaction.fromHex(e):Array.isArray(e)&&(e=Es.Transaction.fromBinary(e)),e instanceof Es.Transaction){if(e.inputs.every(a=>a.sequence===4294967295))return!0;n=e.lockTime}else throw new Ci.WERR_INTERNAL("Unsupported transaction format");if(n>=5e8){let a=Math.floor(Date.now()/1e3);return n<a}let s=await this.getHeight();return n<s}async getBeefForTxid(e){let t=new Es.Beef,i=async(n,s)=>{if(s.has(n))return;s.add(n);let a=await this.storage.getTransaction(n);if(!a)return;let o=a.rawTx instanceof Buffer?Array.from(a.rawTx):Array.isArray(a.rawTx)?a.rawTx:Array.from(a.rawTx);if(a.blockHeight!==null){let u=await this.getMerklePath(n);if(u.merklePath){let l=t.mergeBump(u.merklePath);t.mergeRawTx(o,l);return}}let c=Es.Transaction.fromBinary(o);for(let u of c.inputs){let l=u.sourceTXID||(u.sourceTransaction?u.sourceTransaction.id("hex"):void 0);l&&l!=="00".repeat(32)&&await i(l,s)}t.mergeRawTx(o)};return await i(e,new Set),t}getServicesCallHistory(){return{version:2,getMerklePath:{serviceName:"getMerklePath",historyByProvider:{}},getRawTx:{serviceName:"getRawTx",historyByProvider:{}},postBeef:{serviceName:"postBeef",historyByProvider:{}},getUtxoStatus:{serviceName:"getUtxoStatus",historyByProvider:{}},getStatusForTxids:{serviceName:"getStatusForTxids",historyByProvider:{}},getScriptHashHistory:{serviceName:"getScriptHashHistory",historyByProvider:{}},updateFiatExchangeRates:{serviceName:"updateFiatExchangeRates",historyByProvider:{}}}}};ga.MockServices=q3});var oJ=b(yi=>{"use strict";Object.defineProperty(yi,"__esModule",{value:!0});yi.computeMerklePath=yi.computeMerkleRoot=yi.MockServices=yi.createCoinbaseTransaction=yi.MockMiner=yi.MockChainTracker=yi.MockChainStorage=yi.MockChainMigrations=void 0;var YTe=D3();Object.defineProperty(yi,"MockChainMigrations",{enumerable:!0,get:function(){return YTe.MockChainMigrations}});var XTe=Zv();Object.defineProperty(yi,"MockChainStorage",{enumerable:!0,get:function(){return XTe.MockChainStorage}});var ZTe=U3();Object.defineProperty(yi,"MockChainTracker",{enumerable:!0,get:function(){return ZTe.MockChainTracker}});var sJ=rx();Object.defineProperty(yi,"MockMiner",{enumerable:!0,get:function(){return sJ.MockMiner}});Object.defineProperty(yi,"createCoinbaseTransaction",{enumerable:!0,get:function(){return sJ.createCoinbaseTransaction}});var eQe=nJ();Object.defineProperty(yi,"MockServices",{enumerable:!0,get:function(){return eQe.MockServices}});var aJ=kg();Object.defineProperty(yi,"computeMerkleRoot",{enumerable:!0,get:function(){return aJ.computeMerkleRoot}});Object.defineProperty(yi,"computeMerklePath",{enumerable:!0,get:function(){return aJ.computeMerklePath}})});var uJ=b(Be=>{"use strict";var cJ=Be&&Be.__createBinding||(Object.create?(function(r,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,i,n)}):(function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]})),tQe=Be&&Be.__setModuleDefault||(Object.create?(function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}):function(r,e){r.default=e}),iQe=Be&&Be.__importStar||(function(){var r=function(e){return r=Object.getOwnPropertyNames||function(t){var i=[];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[i.length]=n);return i},r(e)};return function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var i=r(e),n=0;n<i.length;n++)i[n]!=="default"&&cJ(t,e,i[n]);return tQe(t,e),t}})(),ut=Be&&Be.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&cJ(e,r,t)};Object.defineProperty(Be,"__esModule",{value:!0});Be.sdk=void 0;Be.sdk=iQe(Di());ut(Y6(),Be);ut(NV(),Be);ut($W(),Be);ut(bG(),Be);ut(_G(),Be);ut(OG(),Be);ut(PG(),Be);ut(y3(),Be);ut(_u(),Be);ut(Qn(),Be);ut(M2(),Be);ut(MG(),Be);ut(qG(),Be);ut(Eg(),Be);ut(LG(),Be);ut(KG(),Be);ut(VG(),Be);ut(k3(),Be);ut(sA(),Be);ut(By(),Be);ut(WG(),Be);ut(JG(),Be);ut(WS(),Be);ut(zG(),Be);ut(Q3(),Be);ut(oJ(),Be)});var L3=b(kl=>{"use strict";var rQe=kl&&kl.__createBinding||(Object.create?(function(r,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,i,n)}):(function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]})),nQe=kl&&kl.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&rQe(e,r,t)};Object.defineProperty(kl,"__esModule",{value:!0});nQe(uJ(),kl)});var K3,sQe,Tg,$,It=O(()=>{K3=typeof globalThis<"u"?globalThis.Buffer:void 0,sQe=K3!=null&&typeof K3.from=="function",Tg=new Int8Array(256).fill(-1);for(let r=0;r<10;r++)Tg[48+r]=r;for(let r=0;r<6;r++)Tg[65+r]=10+r,Tg[97+r]=10+r;$=class r{static 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"];static 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];static 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];static wordSize=26;static WORD_SIZE_BIGINT=BigInt(r.wordSize);static WORD_MASK=(1n<<r.WORD_SIZE_BIGINT)-1n;static MAX_SAFE_INTEGER_BIGINT=BigInt(Number.MAX_SAFE_INTEGER);static MIN_SAFE_INTEGER_BIGINT=BigInt(Number.MIN_SAFE_INTEGER);static MAX_IMULN_ARG=67108863;static MAX_NUMBER_CONSTRUCTOR_MAG_BIGINT=(1n<<53n)-1n;_magnitude;_sign;_nominalWordLength;red;get negative(){return this._sign}set negative(e){this.assert(e===0||e===1,"Negative property must be 0 or 1");let t=e===1?1:0;this._magnitude===0n?this._sign=0:this._sign=t}get _computedWordsArray(){if(this._magnitude===0n)return[0];let e=[],t=this._magnitude;for(;t>0n;)e.push(Number(t&r.WORD_MASK)),t>>=r.WORD_SIZE_BIGINT;return e.length>0?e:[0]}get words(){let e=this._computedWordsArray;if(this._nominalWordLength<=e.length)return e;let t=new Array(this._nominalWordLength).fill(0);for(let i=0;i<e.length;i++)t[i]=e[i];return t}set words(e){let t=this._sign,i=0n,n=e.length>0?e.length:1;for(let s=n-1;s>=0;s--){let a=e[s]===void 0?0:e[s];i=i<<r.WORD_SIZE_BIGINT|BigInt(a&Number(r.WORD_MASK))}this._magnitude=i,this._sign=t,this._nominalWordLength=n,this.normSign()}get length(){return Math.max(1,this._nominalWordLength)}static isBN(e){return e instanceof r?!0:e!==null&&typeof e=="object"&&e.constructor?.wordSize===r.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}constructor(e=0,t=10,i="be"){if(this._magnitude=0n,this._sign=0,this._nominalWordLength=1,this.red=null,e===void 0&&(e=0),e===null){this._initializeState(0n,0);return}if(typeof e=="bigint"){this._initializeState(e<0n?-e:e,e<0n?1:0),this.normSign();return}let n=t,s=i;if((t==="le"||t==="be")&&(s=t,n=10),typeof e=="number"){this.initNumber(e,s);return}if(Array.isArray(e)){this.initArray(e,s);return}if(typeof e=="string"){n==="hex"&&(n=16),this.assert(typeof n=="number"&&n===(n|0)&&n>=2&&n<=36,"Base must be an integer between 2 and 36");let a=e.toString().replace(/\s+/g,""),o=0,c=0;a.startsWith("-")?(o++,c=1):a.startsWith("+")&&o++;let u=a.substring(o);if(u.length===0){this._initializeState(0n,c===1&&a.startsWith("-")?1:0),this.normSign();return}if(n===16){let l;if(s==="le"){let d=[],f=u;f.length%2!==0&&(f="0"+f);for(let h=0;h<f.length;h+=2){let p=f.substring(h,h+2),A=parseInt(p,16);if(isNaN(A))throw new Error("Invalid character in "+f);d.push(A)}this.initArray(d,"le"),this._sign=c,this.normSign();return}else try{l=BigInt("0x"+u)}catch{throw new Error("Invalid character in "+u)}this._initializeState(l,c),this.normSign()}else try{if(this._parseBaseString(u,n),this._sign=c,this.normSign(),s==="le"){let l=this._sign;this.initArray(this.toArray("be"),"le"),this._sign=l,this.normSign()}}catch(l){let d=l;throw d.message.includes("Invalid character in string")||d.message.includes("Invalid digit for base")||d.message.startsWith("Invalid character:")?new Error("Invalid character"):d}}else e!==0?this.assert(!1,"Unsupported input type for BigNumber constructor"):this._initializeState(0n,0)}_bigIntToStringInBase(e,t){if(e===0n)return"0";if(t<2||t>36)throw new Error("Base must be between 2 and 36");let i="0123456789abcdefghijklmnopqrstuvwxyz",n="",s=e>0n?e:-e,a=BigInt(t);for(;s>0n;)n=i[Number(s%a)]+n,s/=a;return n}_parseBaseString(e,t){if(e.length===0){this._magnitude=0n,this._finishInitialization();return}this._magnitude=0n;let i=BigInt(t),n=r.groupSizes[t],s=BigInt(r.groupBases[t]);(n===0||s===0n)&&(n=Math.floor(Math.log(67108863)/Math.log(t)),n===0&&(n=1),s=i**BigInt(n));let a=0,o=e.length,c=o%n;if(c===0&&o>0&&(c=n),c>0){let u=e.substring(a,a+c);this._magnitude=BigInt(this._parseBaseWord(u,t)),a+=c}for(;a<o;){let u=e.substring(a,a+n),l=BigInt(this._parseBaseWord(u,t));this._magnitude=this._magnitude*s+l,a+=n}this._finishInitialization()}_parseBaseWord(e,t){let i=0;for(let n=0;n<e.length;n++){let s=e.charCodeAt(n),a;if(s>=48&&s<=57)a=s-48;else if(s>=65&&s<=90)a=s-65+10;else if(s>=97&&s<=122)a=s-97+10;else throw new Error("Invalid character: "+e[n]);if(a>=t)throw new Error("Invalid character");i=i*t+a}return i}_initializeState(e,t){this._magnitude=e,this._sign=e===0n?0:t,this._finishInitialization()}_finishInitialization(){if(this._magnitude===0n)this._nominalWordLength=1,this._sign=0;else{let e=this._magnitude.toString(2).length;this._nominalWordLength=Math.max(1,Math.ceil(e/r.wordSize))}}assert(e,t="Assertion failed"){if(!e)throw new Error(t)}initNumber(e,t="be"){if(this.assert(BigInt(Math.abs(e))<=r.MAX_NUMBER_CONSTRUCTOR_MAG_BIGINT,"The number is larger than 2 ^ 53 (unsafe)"),this.assert(e%1===0,"Number must be an integer for BigNumber conversion"),this._initializeState(BigInt(Math.abs(e)),e<0?1:0),t==="le"){let i=this._sign,n=this.toArray("be");this.initArray(n,"le"),this._sign=i,this.normSign()}return this}initArray(e,t){if(e.length===0)return this._initializeState(0n,0),this;let i=0n;if(t==="be")for(let n=0;n<e.length;n++)i=i<<8n|BigInt(e[n]&255);else for(let n=e.length-1;n>=0;n--)i=i<<8n|BigInt(e[n]&255);return this._initializeState(i,0),this}copy(e){e._magnitude=this._magnitude,e._sign=this._sign,e._nominalWordLength=this._nominalWordLength,e.red=this.red}static move(e,t){e._magnitude=t._magnitude,e._sign=t._sign,e._nominalWordLength=t._nominalWordLength,e.red=t.red}clone(){let e=new r(0n);return this.copy(e),e}expand(e){return this.assert(e>=0,"Expand size must be non-negative"),this._nominalWordLength=Math.max(this._nominalWordLength,e,1),this}strip(){return this._finishInitialization(),this.normSign()}normSign(){return this._magnitude===0n&&(this._sign=0),this}inspect(){return(this.red!==null?"<BN-R: ":"<BN: ")+this.toString(16)+">"}_getMinimalHex(){return this._magnitude===0n?"0":this._magnitude.toString(16)}toString(e=10,t=1){if(e===16||e==="hex"){let i=this._getMinimalHex();if(t>1)for(i!=="0"&&i.length%2!==0&&(i="0"+i);i.length%t!==0;)i="0"+i;return(this.isNeg()?"-":"")+i}if(typeof e!="number"||e<2||e>36||e%1!==0)throw new Error("Base should be an integer between 2 and 36");return this.toBaseString(e,t)}toBaseString(e,t){if(this._magnitude===0n){let o="0";if(t>1)for(;o.length<t;)o="0"+o;return o}let i=r.groupSizes[e],n=BigInt(r.groupBases[e]);(i===0||n===0n)&&(i=Math.floor(Math.log(Number.MAX_SAFE_INTEGER)/Math.log(e)),i===0&&(i=1),n=BigInt(e)**BigInt(i));let s="",a=this._magnitude;for(;a>0n;){let o=a%n;a/=n;let c=this._bigIntToStringInBase(o,e);if(a>0n){let u=i-c.length;u>0&&u<r.zeros.length?s=r.zeros[u]+c+s:u>0?s="0".repeat(u)+c+s:s=c+s}else s=c+s}if(t>0)for(;s.length<t;)s="0"+s;return(this._sign===1?"-":"")+s}toNumber(){let e=this._getSignedValue();if(e>r.MAX_SAFE_INTEGER_BIGINT||e<r.MIN_SAFE_INTEGER_BIGINT)throw new Error("Number can only safely store up to 53 bits");return Number(e)}toBigInt(){return this._getSignedValue()}toJSON(){let e=this._getMinimalHex();return(this.isNeg()?"-":"")+e}toArrayLikeGeneric(e,t){let i=this._magnitude,n=t?0:e.length-1,s=t?1:-1;for(let a=0;a<e.length;++a){if(i===0n&&n>=0&&n<e.length)e[n]=0;else if(n>=0&&n<e.length)e[n]=Number(i&0xffn);else break;i>>=8n,n+=s}}toArray(e="be",t){this.strip();let i=this.byteLength(),n=t??Math.max(1,i);this.assert(i<=n,"byte array longer than desired length"),this.assert(n>0,"Requested array length <= 0");let s=new Array(n).fill(0);return this._magnitude===0n&&n>0?s:this._magnitude===0n&&n===0?[]:(this.toArrayLikeGeneric(s,e==="le"),s)}bitLength(){return this._magnitude===0n?0:this._magnitude.toString(2).length}static toBitArray(e){let t=e.bitLength();if(t===0)return[];let i=new Array(t),n=e._magnitude;for(let s=0;s<t;s++)i[s]=(n>>BigInt(s)&1n)!==0n?1:0;return i}toBitArray(){return r.toBitArray(this)}zeroBits(){if(this._magnitude===0n)return 0;let e=0,t=this._magnitude;for(;(t&1n)===0n&&t!==0n;)e++,t>>=1n;return e}byteLength(){return this._magnitude===0n?0:Math.ceil(this.bitLength()/8)}_getSignedValue(){return this._sign===1?-this._magnitude:this._magnitude}_setValueFromSigned(e){e<0n?(this._magnitude=-e,this._sign=1):(this._magnitude=e,this._sign=0),this._finishInitialization(),this.normSign()}toTwos(e){this.assert(e>=0);let t=BigInt(e),i=this._getSignedValue();this._sign===1&&this._magnitude!==0n&&(i=(1n<<t)+i);let n=(1n<<t)-1n;i&=n;let s=new r(0n);return s._initializeState(i,0),s}fromTwos(e){this.assert(e>=0);let t=BigInt(e),i=this._magnitude;if(e>0&&(i>>t-1n&1n)!==0n&&this._sign===0){let n=i-(1n<<t),s=new r(0n);return s._setValueFromSigned(n),s}return this.clone()}isNeg(){return this._sign===1&&this._magnitude!==0n}neg(){return this.clone().ineg()}ineg(){return this._magnitude!==0n&&(this._sign=this._sign===1?0:1),this}_iuop(e,t,i=!1){let n=t(this._magnitude,e._magnitude),s=this._nominalWordLength;return i&&(s=Math.max(this.length,e.length)),this._magnitude=n,this._finishInitialization(),i&&(this._nominalWordLength=Math.max(this._nominalWordLength,s)),this.strip()}iuor(e){return this._iuop(e,(t,i)=>t|i)}iuand(e){return this._iuop(e,(t,i)=>t&i)}iuxor(e){return this._iuop(e,(t,i)=>t^i,!0)}_iop(e,t,i=!1){return this.assert(this._sign===0&&e._sign===0),this._iuop(e,t,i)}ior(e){return this._iop(e,(t,i)=>t|i)}iand(e){return this._iop(e,(t,i)=>t&i)}ixor(e){return this._iop(e,(t,i)=>t^i,!0)}_uop_new(e,t){return this.length>=e.length?this.clone()[t](e):e.clone()[t](this)}or(e){return this.assert(this._sign===0&&e._sign===0),this._uop_new(e,"iuor")}uor(e){return this._uop_new(e,"iuor")}and(e){return this.assert(this._sign===0&&e._sign===0),this._uop_new(e,"iuand")}uand(e){return this._uop_new(e,"iuand")}xor(e){return this.assert(this._sign===0&&e._sign===0),this._uop_new(e,"iuxor")}uxor(e){return this._uop_new(e,"iuxor")}inotn(e){this.assert(typeof e=="number"&&e>=0);let i=(1n<<BigInt(e))-1n;this._magnitude=~this._magnitude&i;let n=e===0?1:Math.ceil(e/r.wordSize);return this._nominalWordLength=Math.max(1,n),this.strip(),this._nominalWordLength=Math.max(this._nominalWordLength,Math.max(1,n)),this}notn(e){return this.clone().inotn(e)}setn(e,t){this.assert(typeof e=="number"&&e>=0);let i=BigInt(e);t===1||t===!0?this._magnitude|=1n<<i:this._magnitude&=~(1n<<i);let n=Math.floor(e/r.wordSize)+1;return this._nominalWordLength=Math.max(this._nominalWordLength,n),this._finishInitialization(),this.strip()}iadd(e){return this._setValueFromSigned(this._getSignedValue()+e._getSignedValue()),this}add(e){let t=new r(0n);return t._setValueFromSigned(this._getSignedValue()+e._getSignedValue()),t}isub(e){return this._setValueFromSigned(this._getSignedValue()-e._getSignedValue()),this}sub(e){let t=new r(0n);return t._setValueFromSigned(this._getSignedValue()-e._getSignedValue()),t}mul(e){let t=new r(0n);return t._magnitude=this._magnitude*e._magnitude,t._sign=t._magnitude===0n?0:this._sign^e._sign,t._nominalWordLength=this.length+e.length,t.red=null,t.normSign()}imul(e){return this._magnitude*=e._magnitude,this._sign=this._magnitude===0n?0:this._sign^e._sign,this._nominalWordLength=this.length+e.length,this.red=null,this.normSign()}imuln(e){return this.assert(typeof e=="number","Assertion failed"),this.assert(Math.abs(e)<=r.MAX_IMULN_ARG,"Assertion failed"),this._setValueFromSigned(this._getSignedValue()*BigInt(e)),this}muln(e){return this.clone().imuln(e)}sqr(){let e=new r(0n);return e._magnitude=this._magnitude*this._magnitude,e._sign=0,e._nominalWordLength=this.length*2,e.red=null,e}isqr(){return this._magnitude*=this._magnitude,this._sign=0,this._nominalWordLength=this.length*2,this.red=null,this}pow(e){if(this.assert(e._sign===0,"Exponent for pow must be non-negative"),e.isZero())return new r(1n);let t=new r(1n),i=this.clone(),n=e.clone(),s=i.isNeg(),a=n.isOdd();for(s&&i.ineg();!n.isZero();)n.isOdd()&&t.imul(i),i.isqr(),n.iushrn(1);return s&&a&&t.ineg(),t}static normalizeNonNegativeBigInt(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}iushln(e){let t=r.normalizeNonNegativeBigInt(e,"Shift bits");return t===0n?this:(this._magnitude<<=t,this._finishInitialization(),this.strip())}ishln(e){return this.assert(this._sign===0,"ishln requires positive number"),this.iushln(e)}iushrn(e,t,i){let n=r.normalizeNonNegativeBigInt(e,"Shift bits");if(n===0n)return i?._initializeState(0n,0),this;if(i!=null){let s=(1n<<n)-1n,a=this._magnitude&s;i._initializeState(a,0)}return this._magnitude>>=n,this._finishInitialization(),this.strip()}ishrn(e,t,i){return this.assert(this._sign===0,"ishrn requires positive number"),this.iushrn(e,t,i)}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 this.assert(typeof e=="number"&&e>=0),(this._magnitude>>BigInt(e)&1n)!==0n}imaskn(e){this.assert(typeof e=="number"&&e>=0),this.assert(this._sign===0,"imaskn works only with positive numbers");let t=BigInt(e),i=t===0n?0n:(1n<<t)-1n;this._magnitude&=i;let n=e===0?1:Math.max(1,Math.ceil(e/r.wordSize));return this._nominalWordLength=n,this._finishInitialization(),this._nominalWordLength=Math.max(this._nominalWordLength,n),this.strip()}maskn(e){return this.clone().imaskn(e)}iaddn(e){return this.assert(typeof e=="number"),this.assert(Math.abs(e)<=r.MAX_IMULN_ARG,"num is too large"),this._setValueFromSigned(this._getSignedValue()+BigInt(e)),this}_iaddn(e){return this.iaddn(e)}isubn(e){return this.assert(typeof e=="number"),this.assert(Math.abs(e)<=r.MAX_IMULN_ARG,"Assertion failed"),this._setValueFromSigned(this._getSignedValue()-BigInt(e)),this}addn(e){return this.clone().iaddn(e)}subn(e){return this.clone().isubn(e)}iabs(){return this._sign=0,this}abs(){return this.clone().iabs()}divmod(e,t,i){if(this.assert(!e.isZero(),"Division by zero"),this.isZero()){let l=new r(0n);return{div:t!=="mod"?l:null,mod:t!=="div"?l:null}}let n=this._getSignedValue(),s=e._getSignedValue(),a=null,o=null;t!=="mod"&&(a=n/s),t!=="div"&&(o=n%s,i===!0&&o<0n&&(o+=s<0n?-s:s));let c=a!==null?new r(0n):null;c!==null&&a!==null&&c._setValueFromSigned(a);let u=o!==null?new r(0n):null;return u!==null&&o!==null&&u._setValueFromSigned(o),{div:c,mod:u}}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){this.assert(!e.isZero());let t=this._getSignedValue(),i=e._getSignedValue(),n=t/i,s=t%i;if(s===0n){let u=new r(0n);return u._setValueFromSigned(n),u}let a=s<0n?-s:s,o=i<0n?-i:i;a*2n>=o&&(t>0n&&i>0n||t<0n&&i<0n?n+=1n:n-=1n);let c=new r(0n);return c._setValueFromSigned(n),c}modrn(e){this.assert(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 i=this._magnitude%t;return e<0?Number(-i):Number(i)}idivn(e){return this.assert(e!==0),this.assert(Math.abs(e)<=r.MAX_IMULN_ARG,"num is too large"),this._setValueFromSigned(this._getSignedValue()/BigInt(e)),this}divn(e){return this.clone().idivn(e)}egcd(e){this.assert(e._sign===0,"p must not be negative"),this.assert(!e.isZero(),"p must not be zero");let t=this._getSignedValue(),i=e._magnitude,n=1n,s=0n,a=0n,o=1n;for(;i!==0n;){let d=t/i,f=i;i=t%i,t=f,f=s,s=n-d*s,n=f,f=o,o=a-d*o,a=f}let c=new r(0n);c._setValueFromSigned(n);let u=new r(0n);u._setValueFromSigned(a);let l=new r(0n);return l._initializeState(t<0n?-t:t,0),{a:c,b:u,gcd:l}}gcd(e){let t=this._magnitude,i=e._magnitude;if(t===0n){let s=new r(0n);return s._setValueFromSigned(i),s.iabs()}if(i===0n){let s=new r(0n);return s._setValueFromSigned(t),s.iabs()}for(;i!==0n;){let s=t%i;t=i,i=s}let n=new r(0n);return n._initializeState(t,0),n}invm(e){this.assert(!e.isZero()&&e._sign===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 this._magnitude%2n===0n}isOdd(){return this._magnitude%2n===1n}andln(e){return this.assert(e>=0),Number(this._magnitude&BigInt(e))}bincn(e){this.assert(typeof e=="number"&&e>=0);let t=1n<<BigInt(e);return this._setValueFromSigned(this._getSignedValue()+t),this}isZero(){return this._magnitude===0n}cmpn(e){this.assert(Math.abs(e)<=r.MAX_IMULN_ARG,"Number is too big");let t=this._getSignedValue(),i=BigInt(e);return t<i?-1:t>i?1:0}cmp(e){let t=this._getSignedValue(),i=e._getSignedValue();return t<i?-1:t>i?1:0}ucmp(e){return this._magnitude<e._magnitude?-1:this._magnitude>e._magnitude?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 this.assert(this.red==null,"Already a number in reduction context"),this.assert(this._sign===0,"toRed works only with positives"),e.convertTo(this).forceRed(e)}fromRed(){return this.assert(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)}forceRed(e){return this.red=e,this}redAdd(e){return this.assert(this.red,"redAdd works only with red numbers"),this.red.add(this,e)}redIAdd(e){return this.assert(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)}redSub(e){return this.assert(this.red,"redSub works only with red numbers"),this.red.sub(this,e)}redISub(e){return this.assert(this.red,"redISub works only with red numbers"),this.red.isub(this,e)}redShl(e){return this.assert(this.red,"redShl works only with red numbers"),this.red.shl(this,e)}redMul(e){return this.assert(this.red,"redMul works only with red numbers"),this.red.verify2(this,e),this.red.mul(this,e)}redIMul(e){return this.assert(this.red,"redIMul works only with red numbers"),this.red.verify2(this,e),this.red.imul(this,e)}redSqr(){return this.assert(this.red,"redSqr works only with red numbers"),this.red.verify1(this),this.red.sqr(this)}redISqr(){return this.assert(this.red,"redISqr works only with red numbers"),this.red.verify1(this),this.red.isqr(this)}redSqrt(){return this.assert(this.red,"redSqrt works only with red numbers"),this.red.verify1(this),this.red.sqrt(this)}redInvm(){return this.assert(this.red,"redInvm works only with red numbers"),this.red.verify1(this),this.red.invm(this)}redNeg(){return this.assert(this.red,"redNeg works only with red numbers"),this.red.verify1(this),this.red.neg(this)}redPow(e){return this.assert(this.red!=null&&e.red==null,"redPow(normalNum)"),this.red.verify1(this),this.red.pow(this,e)}static fromHex(e,t){let i="be";return(t==="little"||t==="le")&&(i="le"),new r(e,16,i)}toHex(e=0){if(this.isZero()&&e===0)return"";let t=this._getMinimalHex();t!=="0"&&t.length%2!==0&&(t="0"+t);let i=e*2;for(;t.length<i;)t="0"+t;return(this.isNeg()?"-":"")+t}static fromJSON(e){return new r(e,16)}static fromNumber(e){return new r(e)}static fromString(e,t){return new r(e,t)}static fromSm(e,t="big"){if(e.length===0)return new r(0n);let i=e.slice();t==="little"&&i.reverse();let n=0;i.length>0&&(i[0]&128)!==0&&(n=1,i[0]&=127);let s=0n;if(sQe){let o=K3.from(i).toString("hex");s=o.length===0?0n:BigInt("0x"+o)}else{let o="";for(let c of i)o+=c<16?"0"+c.toString(16):c.toString(16);s=o.length===0?0n:BigInt("0x"+o)}let a=new r(0n);return a._initializeState(s,n),a}toSm(e="big"){if(this._magnitude===0n)return this._sign===1?[128]:[];let t=this._getMinimalHex();t.length%2!==0&&(t="0"+t);let i=t.length/2,n=new Array(i);for(let a=0,o=0;a<t.length;a+=2){let c=Tg[t.charCodeAt(a)],u=Tg[t.charCodeAt(a+1)];n[o++]=(c&15)<<4|u&15}let s;return this._sign===1?(n[0]&128)!==0?s=[128,...n]:(s=n.slice(),s[0]|=128):(n[0]&128)!==0?s=[0,...n]:s=n.slice(),e==="little"?s.reverse():s}static fromBits(e,t=!1){let i=e>>>24,n=e&8388607,s=(e&8388608)!==0;if(t&&s)throw new Error("negative bit set");if(i===0&&n===0){if(s&&t)throw new Error("negative bit set for zero value");return new r(0n)}let a=new r(n);return i<=3?a.iushrn((3-i)*8):a.iushln((i-3)*8),s&&a.ineg(),a}toBits(){if(this.strip(),this.isZero()&&!this.isNeg())return 0;let e=this.isNeg(),t=this.abs(),i=t.toArray("be"),n=0;for(;n<i.length-1&&i[n]===0;)n++;i=i.slice(n);let s=i.length;s===0&&!t.isZero()&&(i=[0],s=1),t.isZero()&&(s=0,i=[]);let a;if(s===0)a=0;else if(s<=3){a=0;for(let c=0;c<s;c++)a=a<<8|i[c]}else a=i[0]<<16|i[1]<<8|i[2];(a&8388608)!==0&&s<=255&&(a>>>=8,s++);let o=s<<24|a;return e&&(o|=8388608),o>>>0}static fromScriptNum(e,t=!1,i){if(i!==void 0&&e.length>i)throw new Error("script number overflow");if(e.length===0)return new r(0n);if(t&&(e[e.length-1]&127)===0&&(e.length<=1||(e[e.length-2]&128)===0))throw new Error("non-minimally encoded script number");return r.fromSm(e,"little")}toScriptNum(){return this.toSm("little")}_invmp(e){this.assert(e._sign===0,"p must not be negative for _invmp"),this.assert(!e.isZero(),"p must not be zero for _invmp");let t=this.umod(e),i=e.subn(2);if(t.red!==null)return t.redPow(i);let n=new r(1n),s=t.clone(),a=i.clone();for(;!a.isZero();)a.isOdd()&&(n=n.mul(s).umod(e)),s=s.sqr().umod(e),a.iushrn(1);return n}mulTo(e,t){return t._magnitude=this._magnitude*e._magnitude,t._sign=t._magnitude===0n?0:this._sign^e._sign,t._nominalWordLength=this.length+e.length,t.red=null,t.normSign(),t}}});var Qg,lJ=O(()=>{It();Qg=class{name;p;k;n;tmp;constructor(e,t){this.name=e,this.p=new $(t,16),this.n=this.p.bitLength(),this.k=new $(BigInt(1)).iushln(this.n).isub(this.p),this.tmp=this._tmp()}_tmp(){let e=new $(BigInt(0)),t=Math.ceil(this.n/$.wordSize);return e.expand(Math.max(1,t)),e}ireduce(e){let t=e,i;do this.split(t,this.tmp),this.imulK(t),t.iadd(this.tmp),i=t.bitLength();while(i>this.n);let n=i<this.n?-1:t.ucmp(this.p);return n===0?t.words=[0]:n>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 Ng,dJ=O(()=>{lJ();Ng=class extends Qg{constructor(){super("k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}split(e,t){let n=e.words,s=e.length,a=Math.min(s,9),o=new Array(a+(s>9?1:0)).fill(0);for(let p=0;p<a;p++)o[p]=n[p];let c=a;if(s<=9){let p=new Array(c);for(let A=0;A<c;++A)p[A]=o[A];t.words=p,e.words=[0];return}let u=n[9];o[c++]=u&4194303;let l=new Array(c);for(let p=0;p<c;++p)l[p]=o[p];t.words=l;let d=new Array(Math.max(1,s-9)).fill(0),f=0;for(let p=10;p<s;p++){let A=n[p]|0;f<d.length&&(d[f++]=(A&4194303)<<4|u>>>22),u=A}u>>>=22,f<d.length?d[f++]=u:u!==0&&d.length>0;let h=new Array(f);for(let p=0;p<f;++p)h[p]=d[p];e.words=h}imulK(e){let t=e.words,i=e.length,n=i+2,s=new Array(n).fill(0);for(let o=0;o<i;o++)s[o]=t[o];let a=0;for(let o=0;o<n;o++){let c=s[o]|0;a+=c*977,s[o]=a&67108863,a=c*64+(a/67108864|0)}return e.words=s,e}}});var Sl,V3=O(()=>{It();dJ();Sl=class{prime;m;constructor(e){if(e==="k256"){let t=new Ng;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):($.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 i=e.clone();return i.iadd(t),i.isub(this.m),i.isNeg()&&i.iadd(this.m),i}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 i=e.sub(t);return i.cmpn(0)<0&&i.iadd(this.m),i.forceRed(this)}isub(e,t){this.verify2(e,t);let i=e.isub(t);return i.cmpn(0)<0&&i.iadd(this.m),i}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 p=this.m.add(new $(1)).iushrn(2);return this.pow(e,p)}let i=this.m.subn(1),n=0;for(;!i.isZero()&&i.andln(1)===0;)n++,i.iushrn(1);this.assert(!i.isZero());let s=new $(1).toRed(this),a=s.redNeg(),o=this.m.subn(1).iushrn(1),c=this.m.bitLength(),u=new $(2*c*c).toRed(this);for(;this.pow(u,o).cmp(a)!==0;)u.redIAdd(a);let l=this.pow(u,i),d=this.pow(e,i.addn(1).iushrn(1)),f=this.pow(e,i),h=n;for(;f.cmp(s)!==0;){let p=f,A=0;for(;p.cmp(s)!==0;A++)p=p.redSqr();this.assert(A<h);let g=this.pow(l,new $(1).iushln(h-A-1));d=d.redMul(g),l=g.redSqr(),f=f.redMul(l),h=A}return d}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 $(1).toRed(this);let i=new $(1).toRed(this),n=e.clone(),s=t.bitLength();for(let a=s-1;a>=0;a--)i=this.sqr(i),t.testn(a)&&(i=this.mul(i,n));return i}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 Rg,fJ=O(()=>{V3();It();Rg=class extends Sl{shift;r;r2;rinv;minv;constructor(e){super(e),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new $(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 t=this.imod(e.mul(this.rinv));return t.red=null,t}imul(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;let i=e.imul(t),n=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),s=i.isub(n).iushrn(this.shift),a=s;return s.cmp(this.m)>=0?a=s.isub(this.m):s.cmpn(0)<0&&(a=s.iadd(this.m)),a.forceRed(this)}mul(e,t){if(e.isZero()||t.isZero())return new $(0).forceRed(this);let i=e.mul(t),n=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),s=i.isub(n).iushrn(this.shift),a=s;return s.cmp(this.m)>=0?a=s.isub(this.m):s.cmpn(0)<0&&(a=s.iadd(this.m)),a.forceRed(this)}invm(e){return this.imod(e._invmp(this.m).mul(this.r2)).forceRed(this)}}});var _l,j3=O(()=>{Cs();_l=class{curve;type;precomputed;constructor(e){this.curve=new ir,this.type=e,this.precomputed=null}}});var oo,hJ=O(()=>{j3();It();vc();oo=class r extends _l{x;y;z;zOne;constructor(e,t,i){super("jacobian"),e===null&&t===null&&i===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new $(0)):($.isBN(e)||(e=new $(e,16)),this.x=e,$.isBN(t)||(t=new $(t,16)),this.y=t,$.isBN(i)||(i=new $(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 $(0).toRed(this.curve.red),this.zOne=!1)}toP(){if(this.isInfinity())return new Wr(null,null);let e=this.z.redInvm(),t=e.redSqr(),i=this.x.redMul(t),n=this.y.redMul(t).redMul(e);return new Wr(i,n)}neg(){return new r(this.x,this.y.redNeg(),this.z)}add(e){if(this.isInfinity())return e;if(e.isInfinity())return this;let t=e.z.redSqr(),i=this.z.redSqr(),n=this.x.redMul(t),s=e.x.redMul(i),a=this.y.redMul(t.redMul(e.z)),o=e.y.redMul(i.redMul(this.z)),c=n.redSub(s),u=a.redSub(o);if(c.cmpn(0)===0)return u.cmpn(0)!==0?new r(null,null,null):this.dbl();let l=c.redSqr(),d=l.redMul(c),f=n.redMul(l),h=u.redSqr().redIAdd(d).redISub(f).redISub(f),p=u.redMul(f.redISub(h)).redISub(a.redMul(d)),A=this.z.redMul(e.z).redMul(c);return new r(h,p,A)}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 t=this.z.redSqr(),i=this.x,n=e.x.redMul(t),s=this.y,a=e.y.redMul(t).redMul(this.z),o=i.redSub(n),c=s.redSub(a);if(o.cmpn(0)===0)return c.cmpn(0)!==0?new r(null,null,null):this.dbl();let u=o.redSqr(),l=u.redMul(o),d=i.redMul(u),f=c.redSqr().redIAdd(l).redISub(d).redISub(d),h=c.redMul(d.redISub(f)).redISub(s.redMul(l)),p=this.z.redMul(o);return new r(f,h,p)}dblp(e){if(e===0)return this;if(this.isInfinity())return this;if(typeof e>"u")return this.dbl();let t=this;for(let i=0;i<e;i++)t=t.dbl();return t}dbl(){if(this.isInfinity())return this;let e,t,i;if(this.zOne){let n=this.x.redSqr(),s=this.y.redSqr(),a=s.redSqr(),o=this.x.redAdd(s).redSqr().redISub(n).redISub(a);o=o.redIAdd(o);let c=n.redAdd(n).redIAdd(n),u=c.redSqr().redISub(o).redISub(o),l=a.redIAdd(a);l=l.redIAdd(l),l=l.redIAdd(l),e=u,t=c.redMul(o.redISub(u)).redISub(l),i=this.y.redAdd(this.y)}else{let n=this.x.redSqr(),s=this.y.redSqr(),a=s.redSqr(),o=this.x.redAdd(s).redSqr().redISub(n).redISub(a);o=o.redIAdd(o);let c=n.redAdd(n).redIAdd(n),u=c.redSqr(),l=a.redIAdd(a);l=l.redIAdd(l),l=l.redIAdd(l),e=u.redISub(o).redISub(o),t=c.redMul(o.redISub(e)).redISub(l),i=this.y.redMul(this.z),i=i.redIAdd(i)}return new r(e,t,i)}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 t=this.z.redSqr(),i=e.z.redSqr();if(this.x.redMul(i).redISub(e.x.redMul(t)).cmpn(0)!==0)return!1;let n=t.redMul(this.z),s=i.redMul(e.z);return this.y.redMul(s).redISub(e.y.redMul(n)).cmpn(0)===0}eqXToP(e){let t=this.z.redSqr(),i=e.toRed(this.curve?.red).redMul(t);if(this.x.cmp(i)===0)return!0;let n=e.clone();if(this.curve===null||this.curve.redN==null)throw new Error("Curve or redN is not initialized.");let s=this.curve.redN.redMul(t);for(;n.cmp(this.curve.p)<0;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(i.redIAdd(s),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 W3(r){if(typeof r!="string")throw new TypeError("Invalid hex string");if(r.length!==0&&!aQe.test(r))throw new Error("Invalid hex string")}var aQe,G3=O(()=>{aQe=/^[0-9a-fA-F]*$/});function ma(r,e){return r>>>e|r<<32-e}function yr(r,e){return r+e>>>0}function oQe(r,e,t,i,n){return r+e+t+i+n>>>0}function cQe(r,e,t){return r&e^~r&t}function uQe(r,e,t){return r&e^r&t^e&t}function lQe(r){return ma(r,2)^ma(r,13)^ma(r,22)}function dQe(r){return ma(r,6)^ma(r,11)^ma(r,25)}function fQe(r){return ma(r,7)^ma(r,18)^r>>>3}function hQe(r){return ma(r,17)^ma(r,19)^r>>>10}function pQe(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"}function pJ(r){if(!Number.isSafeInteger(r)||r<0)throw new Error(`positive integer expected, got ${r}`)}function fx(r,...e){if(!pQe(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 AQe(r){if(typeof r!="function"||typeof r.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");pJ(r.outputLen),pJ(r.blockLen)}function cx(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 gQe(r,e){fx(r);let t=e.outputLen;if(r.length<t)throw new Error(`digestInto() expects output buffer of length at least ${t}`)}function Yf(...r){for(let e=0;e<r.length;e++)r[e].fill(0)}function J3(r){return new DataView(r.buffer,r.byteOffset,r.byteLength)}function Y3(r){return typeof r=="string"&&(r=mQe(r)),fx(r),r}function mQe(r){if(typeof r!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(r))}function IJ(r){let e=i=>r().update(Y3(i)).digest(),t=r();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>r(),e}function IQe(r,e=!1){return e?{h:Number(r&sx),l:Number(r>>AJ&sx)}:{h:Number(r>>AJ&sx)|0,l:Number(r&sx)|0}}function yQe(r,e=!1){let t=r.length,i=new Uint32Array(t),n=new Uint32Array(t);for(let s=0;s<t;s++){let{h:a,l:o}=IQe(r[s],e);i[s]=a,n[s]=o}return[i,n]}function co(r,e,t,i){let n=(e>>>0)+(i>>>0);return{h:r+t+(n/2**32|0)|0,l:n|0}}function CQe(r,e,t,i){if(typeof r.setBigUint64=="function")return r.setBigUint64(e,t,i);let n=BigInt(32),s=BigInt(4294967295),a=Number(t>>n&s),o=Number(t&s),c=i?4:0,u=i?0:4;r.setUint32(e+c,a,i),r.setUint32(e+u,o,i)}var ux,sx,AJ,gJ,mJ,zf,$f,ax,ox,wQe,bQe,vQe,xQe,BQe,EQe,lx,xc,kQe,Bc,z3,_We,Li,yJ,SQe,_Qe,Ec,Cc,$3,TWe,dx,TQe,QWe,Ft=O(()=>{G3();ux=class{};sx=BigInt(2**32-1),AJ=BigInt(32);gJ=(r,e,t)=>r>>>t,mJ=(r,e,t)=>r<<32-t|e>>>t,zf=(r,e,t)=>r>>>t|e<<32-t,$f=(r,e,t)=>r<<32-t|e>>>t,ax=(r,e,t)=>r<<64-t|e>>>t-32,ox=(r,e,t)=>r>>>t-32|e<<64-t;wQe=(r,e,t)=>(r>>>0)+(e>>>0)+(t>>>0),bQe=(r,e,t,i)=>e+t+i+(r/2**32|0)|0,vQe=(r,e,t,i)=>(r>>>0)+(e>>>0)+(t>>>0)+(i>>>0),xQe=(r,e,t,i,n)=>e+t+i+n+(r/2**32|0)|0,BQe=(r,e,t,i,n)=>(r>>>0)+(e>>>0)+(t>>>0)+(i>>>0)+(n>>>0),EQe=(r,e,t,i,n,s)=>e+t+i+n+s+(r/2**32|0)|0,lx=class extends ux{blockLen;outputLen;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(e,t,i,n){super(),this.blockLen=e,this.outputLen=t,this.padOffset=i,this.isLE=n,this.buffer=new Uint8Array(e),this.view=J3(this.buffer)}update(e){cx(this),e=Y3(e),fx(e);let{view:t,buffer:i,blockLen:n}=this,s=e.length;for(let a=0;a<s;){let o=Math.min(n-this.pos,s-a);if(o===n){let c=J3(e);for(;n<=s-a;a+=n)this.process(c,a);continue}i.set(e.subarray(a,a+o),this.pos),this.pos+=o,a+=o,this.pos===n&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){cx(this),gQe(e,this),this.finished=!0;let{buffer:t,view:i,blockLen:n,isLE:s}=this,{pos:a}=this;t[a++]=128,Yf(this.buffer.subarray(a)),this.padOffset>n-a&&(this.process(i,0),a=0);for(let d=a;d<n;d++)t[d]=0;CQe(i,n-8,BigInt(this.length*8),s),this.process(i,0);let o=J3(e),c=this.outputLen;if(c%4!==0)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,l=this.get();if(u>l.length)throw new Error("_sha2: outputLen bigger than state");for(let d=0;d<u;d++)o.setUint32(4*d,l[d],s)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let i=e.slice(0,t);return this.destroy(),i}_cloneInto(e){e||=new this.constructor,e.set(...this.get());let{blockLen:t,buffer:i,length:n,finished:s,destroyed:a,pos:o}=this;return e.destroyed=a,e.finished=s,e.length=n,e.pos=o,n%t!==0&&e.buffer.set(i),e}clone(){return this._cloneInto()}};xc=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),kQe=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]),Bc=new Uint32Array(64),z3=class extends lx{A=xc[0]|0;B=xc[1]|0;C=xc[2]|0;D=xc[3]|0;E=xc[4]|0;F=xc[5]|0;G=xc[6]|0;H=xc[7]|0;constructor(e=32){super(64,e,8,!1)}get(){let{A:e,B:t,C:i,D:n,E:s,F:a,G:o,H:c}=this;return[e,t,i,n,s,a,o,c]}set(e,t,i,n,s,a,o,c){this.A=e|0,this.B=t|0,this.C=i|0,this.D=n|0,this.E=s|0,this.F=a|0,this.G=o|0,this.H=c|0}process(e,t){for(let d=0;d<16;d++,t+=4)Bc[d]=e.getUint32(t);for(let d=16;d<64;d++){let f=Bc[d-15],h=Bc[d-2],p=fQe(f),A=hQe(h);Bc[d]=yr(yr(p,Bc[d-7]),yr(A,Bc[d-16]))}let{A:i,B:n,C:s,D:a,E:o,F:c,G:u,H:l}=this;for(let d=0;d<64;d++){let f=oQe(l,dQe(o),cQe(o,c,u),kQe[d],Bc[d]),h=yr(lQe(i),uQe(i,n,s));l=u,u=c,c=o,o=yr(a,f),a=s,s=n,n=i,i=yr(f,h)}this.A=yr(this.A,i),this.B=yr(this.B,n),this.C=yr(this.C,s),this.D=yr(this.D,a),this.E=yr(this.E,o),this.F=yr(this.F,c),this.G=yr(this.G,u),this.H=yr(this.H,l)}roundClean(){Yf(Bc)}destroy(){Yf(this.buffer),this.set(0,0,0,0,0,0,0,0)}},_We=IJ(()=>new z3),Li=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),yJ=yQe(["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(r=>BigInt(r))),SQe=yJ[0],_Qe=yJ[1],Ec=new Uint32Array(80),Cc=new Uint32Array(80),$3=class extends lx{Ah=Li[0]|0;Al=Li[1]|0;Bh=Li[2]|0;Bl=Li[3]|0;Ch=Li[4]|0;Cl=Li[5]|0;Dh=Li[6]|0;Dl=Li[7]|0;Eh=Li[8]|0;El=Li[9]|0;Fh=Li[10]|0;Fl=Li[11]|0;Gh=Li[12]|0;Gl=Li[13]|0;Hh=Li[14]|0;Hl=Li[15]|0;constructor(e=64){super(128,e,16,!1)}get(){let{Ah:e,Al:t,Bh:i,Bl:n,Ch:s,Cl:a,Dh:o,Dl:c,Eh:u,El:l,Fh:d,Fl:f,Gh:h,Gl:p,Hh:A,Hl:g}=this;return[e,t,i,n,s,a,o,c,u,l,d,f,h,p,A,g]}set(e,t,i,n,s,a,o,c,u,l,d,f,h,p,A,g){this.Ah=e|0,this.Al=t|0,this.Bh=i|0,this.Bl=n|0,this.Ch=s|0,this.Cl=a|0,this.Dh=o|0,this.Dl=c|0,this.Eh=u|0,this.El=l|0,this.Fh=d|0,this.Fl=f|0,this.Gh=h|0,this.Gl=p|0,this.Hh=A|0,this.Hl=g|0}process(e,t){for(let y=0;y<16;y++,t+=4)Ec[y]=e.getUint32(t),Cc[y]=e.getUint32(t+=4);for(let y=16;y<80;y++){let v=Ec[y-15]|0,B=Cc[y-15]|0,E=zf(v,B,1)^zf(v,B,8)^gJ(v,B,7),k=$f(v,B,1)^$f(v,B,8)^mJ(v,B,7),T=Ec[y-2]|0,D=Cc[y-2]|0,j=zf(T,D,19)^ax(T,D,61)^gJ(T,D,6),H=$f(T,D,19)^ox(T,D,61)^mJ(T,D,6),W=vQe(k,H,Cc[y-7],Cc[y-16]),M=xQe(W,E,j,Ec[y-7],Ec[y-16]);Ec[y]=M|0,Cc[y]=W|0}let{Ah:i,Al:n,Bh:s,Bl:a,Ch:o,Cl:c,Dh:u,Dl:l,Eh:d,El:f,Fh:h,Fl:p,Gh:A,Gl:g,Hh:m,Hl:I}=this;for(let y=0;y<80;y++){let v=zf(d,f,14)^zf(d,f,18)^ax(d,f,41),B=$f(d,f,14)^$f(d,f,18)^ox(d,f,41),E=d&h^~d&A,k=f&p^~f&g,T=BQe(I,B,k,_Qe[y],Cc[y]),D=EQe(T,m,v,E,SQe[y],Ec[y]),j=T|0,H=zf(i,n,28)^ax(i,n,34)^ax(i,n,39),W=$f(i,n,28)^ox(i,n,34)^ox(i,n,39),M=i&s^i&o^s&o,Y=n&a^n&c^a&c;m=A|0,I=g|0,A=h|0,g=p|0,h=d|0,p=f|0,{h:d,l:f}=co(u|0,l|0,D|0,j|0),u=o|0,l=c|0,o=s|0,c=a|0,s=i|0,a=n|0;let F=wQe(W,Y,j);i=bQe(F,H,M,D),n=F|0}({h:i,l:n}=co(i,n,this.Ah,this.Al)),{h:s,l:a}=co(s,a,this.Bh,this.Bl),{h:o,l:c}=co(o,c,this.Ch,this.Cl),{h:u,l}=co(u,l,this.Dh,this.Dl),{h:d,l:f}=co(d,f,this.Eh,this.El),{h,l:p}=co(h,p,this.Fh,this.Fl),{h:A,l:g}=co(A,g,this.Gh,this.Gl),{h:m,l:I}=co(m,I,this.Hh,this.Hl),this.set(i,n,s,a,o,c,u,l,d,f,h,p,A,g,m,I)}roundClean(){Yf(Ec,Cc)}destroy(){Yf(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},TWe=IJ(()=>new $3),dx=class extends ux{oHash;iHash;blockLen;outputLen;finished=!1;destroyed=!1;constructor(e,t){super(),AQe(e);let i=Y3(t);if(this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let n=this.blockLen,s=new Uint8Array(n);s.set(i.length>n?e.create().update(i).digest():i);for(let a=0;a<s.length;a++)s[a]^=54;this.iHash.update(s),this.oHash=e.create();for(let a=0;a<s.length;a++)s[a]^=106;this.oHash.update(s),Yf(s)}update(e){return cx(this),this.iHash.update(e),this}digestInto(e){cx(this),fx(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||=Object.create(Object.getPrototypeOf(this),{});let{oHash:t,iHash:i,finished:n,destroyed:s,blockLen:a,outputLen:o}=this;return e=e,e.finished=n,e.destroyed=s,e.blockLen=a,e.outputLen=o,e.oHash=t._cloneInto(e.oHash??void 0),e.iHash=i._cloneInto(e.iHash??void 0),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},TQe=(r,e,t)=>new dx(r,e).update(t).digest();TQe.create=(r,e)=>new dx(r,e);QWe=(()=>{let r=new ArrayBuffer(4),e=new Uint32Array(r),t=new Uint8Array(r);return e[0]=16909060,t[0]===4})()});var wJ=O(()=>{It();ce()});var X3=O(()=>{It();ce()});function NQe(r){if(typeof r!="string")throw new TypeError("msg must be a string");let e=r.trim().replace(/[\r\n\t\f\v ]+/g,"");e=e.replace(/-/g,"+").replace(/_/g,"/");let t=e.indexOf("=");if(t!==-1){let a=e.slice(t);if(!/^={1,2}$/.test(a))throw new Error("Invalid base64 padding");if(e.slice(0,t).includes("="))throw new Error("Invalid base64 padding");e=e.slice(0,t)}let i=[],n=0,s=0;for(let a=0;a<e.length;a++){let o=e.charCodeAt(a),c=-1;if(o>=65&&o<=90)c=o-65;else if(o>=97&&o<=122)c=o-97+26;else if(o>=48&&o<=57)c=o-48+52;else if(o===43)c=62;else if(o===47)c=63;else throw new Error(`Invalid base64 character at index ${a}`);for(n=n<<6|c,s+=6;s>=8;)s-=8,i.push(n>>s&255),n&=(1<<s)-1}return i}function RQe(r){return Array.from(new TextEncoder().encode(r))}var hx,vJ,bJ,xJ,ht,ke,Dg,QQe,KWe,VWe,ce=O(()=>{It();Ft();G3();wJ();X3();hx=typeof globalThis<"u"?globalThis.Buffer:void 0,vJ=hx!=null&&typeof hx.from=="function",bJ="0123456789abcdef",xJ=new Array(256);for(let r=0;r<256;r++)xJ[r]=bJ[r>>4&15]+bJ[r&15];ht=r=>{if(vJ)return hx.from(r).toString("hex");if(r.length===0)return"";let e=new Array(r.length);for(let t=0;t<r.length;t++)e[t]=xJ[r[t]&255];return e.join("")},ke=(r,e)=>{if(Array.isArray(r))return r.slice();if(r===void 0)return[];if(typeof r!="string")return Array.from(r,t=>t|0);switch(e){case"hex":return QQe(r);case"base64":return NQe(r);default:return RQe(r)}},Dg=new Int8Array(256).fill(-1);for(let r=0;r<10;r++)Dg[48+r]=r;for(let r=0;r<6;r++)Dg[65+r]=10+r,Dg[97+r]=10+r;QQe=r=>{W3(r);let e=r.length%2===0?r:"0"+r;if(vJ)return Array.from(hx.from(e,"hex"));let t=new Array(e.length/2),i=0;for(let n=0;n<e.length;n+=2){let s=Dg[e.charCodeAt(n)],a=Dg[e.charCodeAt(n+1)];t[i++]=s<<4|a}return t};KWe=new $(2).pow(new $(63)),VWe=new $(2).pow(new $(64))});function BJ(r,e,t){let i=-r,n=(e.X^t.X)&i,s=(e.Y^t.Y)&i,a=(e.Z^t.Z)&i;e.X^=n,t.X^=n,e.Y^=s,t.Y^=s,e.Z^=a,t.Z^=a}function nN(r){let e=r>>256n;return r=(r&EJ)+(e<<32n)+e*977n,e=r>>256n,r=(r&EJ)+(e<<32n)+e*977n,r>=ya&&(r-=ya),r}var Gt,wr,tN,DQe,OQe,FQe,ya,SJ,EJ,Ql,Ia,ue,CJ,Og,PQe,UQe,HQe,MQe,qQe,iN,rN,kJ,Fg,Pg,LQe,_J,Wr,vc=O(()=>{j3();hJ();It();ce();Gt=0n,wr=1n,tN=2n,DQe=3n,OQe=4n,FQe=8n,ya=0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn,SJ=0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141n,EJ=(1n<<256n)-1n;Ql=r=>nN((r%ya+ya)%ya),Ia=(r,e)=>r>=e?r-e:ya-(e-r),ue=(r,e)=>nN(r*e),CJ=(r,e)=>nN(r+e),Og=r=>{let e=wr,t=Gt,i=Ql(r),n=ya;for(;i>wr;){let s=n/i;[e,t]=[t-e*s,e],[i,n]=[n-i*s,i]}return Ql(e)},PQe=r=>ue(r,r),UQe=(r,e)=>{let t=1n;for(r=Ql(r);e>0n;)(e&1n)!==0n&&(t=ue(t,r)),r=ue(r,r),e>>=1n;return t},HQe=ya+1n>>2n,MQe=r=>{let e=UQe(r,HQe);return ue(e,e)!==Ql(r)?null:e},qQe=r=>$.isBN(r)?BigInt("0x"+r.toString(16)):typeof r=="string"?BigInt("0x"+r):Array.isArray(r)?BigInt("0x"+ht(r)):BigInt(r),iN=BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),rN=BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"),kJ=new Map,Fg=r=>{let{X:e,Y:t,Z:i}=r;if(t===Gt)return{X:Gt,Y:wr,Z:Gt};let n=ue(t,t),s=ue(OQe,ue(e,n)),a=ue(DQe,ue(e,e)),o=Ia(ue(a,a),ue(tN,s)),c=Ia(ue(a,Ia(s,o)),ue(FQe,ue(n,n))),u=ue(tN,ue(t,i));return{X:o,Y:c,Z:u}},Pg=(r,e)=>{if(r.Z===Gt)return e;if(e.Z===Gt)return r;let t=ue(r.Z,r.Z),i=ue(e.Z,e.Z),n=ue(r.X,i),s=ue(e.X,t),a=ue(r.Y,ue(i,e.Z)),o=ue(e.Y,ue(t,r.Z)),c=Ia(s,n),u=Ia(o,a);if(c===Gt)return u===Gt?Fg(r):{X:Gt,Y:wr,Z:Gt};let l=ue(c,c),d=ue(c,l),f=ue(n,l),h=Ia(Ia(ue(u,u),d),ue(tN,f)),p=Ia(ue(u,Ia(f,h)),ue(a,d)),A=ue(c,ue(r.Z,e.Z));return{X:h,Y:p,Z:A}},LQe=r=>r.Z===Gt?r:{X:r.X,Y:ya-r.Y,Z:r.Z},_J=(r,e,t=5)=>{let i=`${t}:${e.x.toString(16)}:${e.y.toString(16)}`,n=kJ.get(i),s;if(n===void 0){let d=1<<t-1;n=new Array(d),s={X:e.x,Y:e.y,Z:wr},n[0]=s;let f=Fg(s);for(let h=1;h<d;h++)n[h]=Pg(n[h-1],f);kJ.set(i,n)}else s=n[0];let a=[],o=1n<<BigInt(t),c=o>>1n,u=r;for(;u>0n;)if((u&wr)===Gt)a.push(0),u>>=wr;else{let d=u&o-1n;d>c&&(d-=o),a.push(Number(d)),u-=d,u>>=wr}let l={X:Gt,Y:wr,Z:Gt};for(let d=a.length-1;d>=0;d--){l=Fg(l);let f=a[d];if(f!==0){let h=Math.abs(f)>>1,p=f>0?n[h]:LQe(n[h]);l=Pg(l,p)}}return l},Wr=class r extends _l{x;y;inf;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[e.length-1]%2!==0)throw new Error("Point string value is wrong length")}else if(e[0]===7&&e[e.length-1]%2!==1)throw new Error("Point string value is wrong length");let i=new r(e.slice(1,33),e.slice(33,65));return r._assertOnCurve(i)}else if((e[0]===2||e[0]===3)&&e.length-1===32)return r._assertOnCurve(r.fromX(e.slice(1,33),e[0]===3));throw new Error("Unknown point format")}static fromString(e){let t=ke(e,"hex");return r._assertOnCurve(r.fromDER(t))}static fromX(e,t){let i=qQe(e);i=Ql(i);let n=CJ(ue(PQe(i),i),7n),s=MQe(n);if(s===null)throw new Error("Invalid point");let a=s;(a&wr)!==(t?wr:Gt)&&(a=Ia(ya,a));let o=new $(i.toString(16),16),c=new $(a.toString(16),16);return r._assertOnCurve(new r(o,c))}static fromJSON(e,t){typeof e=="string"&&(e=JSON.parse(e));let i=new r(e[0],e[1],t);if(i=r._assertOnCurve(i),typeof e[2]!="object"||e[2]===null)return i;let n=e[2],s=a=>{let o=new r(a[0],a[1],t);return r._assertOnCurve(o)};return i.precomputed={beta:null,doubles:typeof n.doubles=="object"&&n.doubles!==null?{step:n.doubles.step,points:[i].concat(n.doubles.points.map(s))}:void 0,naf:typeof n.naf=="object"&&n.naf!==null?{wnd:n.naf.wnd,points:[i].concat(n.naf.points.map(s))}:void 0},i}constructor(e,t,i=!0){super("affine"),this.precomputed=null,e===null&&t===null?(this.x=null,this.y=null,this.inf=!0):($.isBN(e)||(e=new $(e,16)),this.x=e,$.isBN(t)||(t=new $(t,16)),this.y=t,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)}validate(){if(this.inf||this.x==null||this.y==null)return!1;try{let e=BigInt("0x"+this.x.fromRed().toString(16)),t=BigInt("0x"+this.y.fromRed().toString(16)),i=ue(t,t),n=CJ(ue(ue(e,e),e),7n);return i===n}catch{return!1}}encode(e=!0,t){if(this.inf)return t==="hex"?"00":[0];let i=this.curve.p.byteLength(),n=this.getX().toArray("be",i),s;return e?s=[this.getY().isEven()?2:3].concat(n):s=[4].concat(n,this.getY().toArray("be",i)),t!=="hex"?s:ht(s)}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?{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)}:void 0,naf:this.precomputed.naf!=null?{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}:void 0}: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 r(null,null);if(this.x?.cmp(e.x??new $(0))===0)return new r(null,null);let t={X:BigInt("0x"+this.x.fromRed().toString(16)),Y:BigInt("0x"+this.y.fromRed().toString(16)),Z:wr},i={X:BigInt("0x"+e.x.fromRed().toString(16)),Y:BigInt("0x"+e.y.fromRed().toString(16)),Z:wr},n=Pg(t,i);if(n.Z===Gt)return new r(null,null);let s=Og(n.Z),a=ue(s,s),o=ue(n.X,a),c=ue(n.Y,ue(a,s));return new r(o.toString(16),c.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)),t=BigInt("0x"+this.y.fromRed().toString(16));if(t===Gt)return new r(null,null);let i=Fg({X:e,Y:t,Z:wr}),n=Og(i.Z),s=ue(n,n),a=ue(i.X,s),o=ue(i.Y,ue(s,n));return new r(a.toString(16),o.toString(16))}getX(){return(this.x??new $(0)).fromRed()}getY(){return(this.y??new $(0)).fromRed()}mul(e){if($.isBN(e)||(e=new $(e,16)),e=e,this.inf)return this;let t=e.isNeg(),i=t?e.neg():e,n=BigInt("0x"+i.toString(16));if(n=Ql(n),n===Gt)return new r(null,null);if(n===Gt)return new r(null,null);if(this.x===null||this.y===null)throw new Error("Point coordinates cannot be null");let s,a;this===this.curve.g?(s=iN,a=rN):(s=BigInt("0x"+this.x.fromRed().toString(16)),a=BigInt("0x"+this.y.fromRed().toString(16)));let o=_J(n,{x:s,y:a});if(o.Z===Gt)return new r(null,null);let c=Og(o.Z),u=ue(c,c),l=ue(o.X,u),d=ue(o.Y,ue(u,c)),f=new $(l.toString(16),16),h=new $(d.toString(16),16),p=new r(f,h);return t?p.neg():p}mulCT(e){if($.isBN(e)||(e=new $(e,16)),e=e,this.inf)return new r(null,null);let t=e.isNeg(),i=t?e.neg():e,n=BigInt("0x"+i.toString(16));if(n=Ql(n),n===0n)return new r(null,null);let s=this===this.curve.g?iN:BigInt("0x"+this.getX().toString(16)),a=this===this.curve.g?rN:BigInt("0x"+this.getY().toString(16)),o={X:0n,Y:1n,Z:0n},c={X:s,Y:a,Z:1n},u=n.toString(2);for(let A=0;A<u.length;A++){let g=u[A]==="1"?1n:0n;BJ(g,o,c),c=Pg(o,c),o=Fg(o),BJ(g,o,c)}if(o.Z===0n)return new r(null,null);let l=Og(o.Z),d=ue(l,l),f=ue(o.X,d),h=ue(o.Y,ue(d,l)),p=new r(f.toString(16),h.toString(16));return t?p.neg():p}mulAdd(e,t,i){let n=[this,t],s=[e,i];return this._endoWnafMulAdd(n,s)}jmulAdd(e,t,i){let n=[this,t],s=[e,i];return this._endoWnafMulAdd(n,s,!0)}eq(e){return this===e||this.inf===e.inf&&(this.inf||(this.x??new $(0)).cmp(e.x??new $(0))===0&&(this.y??new $(0)).cmp(e.y??new $(0))===0)}neg(e){if(this.inf)return this;let t=new r(this.x,(this.y??new $(0)).redNeg());if(e===!0&&this.precomputed!=null){let i=this.precomputed,n=s=>s.neg();t.precomputed={naf:i.naf!=null?{wnd:i.naf.wnd,points:i.naf.points.map(n)}:void 0,doubles:i.doubles!=null?{step:i.doubles.step,points:i.doubles.points.map(s=>s.neg())}:void 0,beta:void 0}}return t}dblp(e){let t=this;for(let i=0;i<e;i++)t=t.dbl();return t}toJ(){return this.inf?new oo(null,null,null):new oo(this.x,this.y,this.curve.one)}_getBeta(){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 t=new r((this.x??new $(0)).redMul(this.curve.endo.beta),this.y);if(e!=null){let i=this.curve,n=s=>{if(s.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 r(s.x.redMul(i.endo.beta),s.y)};e.beta=t,t.precomputed={beta:null,naf:e.naf!=null?{wnd:e.naf.wnd,points:e.naf.points.map(n)}:void 0,doubles:e.doubles!=null?{step:e.doubles.step,points:e.doubles.points.map(n)}:void 0}}return t}_fixedNafMul(e){if(typeof this.precomputed!="object"||this.precomputed===null)throw new Error("_fixedNafMul requires precomputed values for the point");let t=this._getDoubles(),i=this.curve.getNAF(e,1,this.curve._bitLength),n=(1<<t.step+1)-(t.step%2===0?2:1);n/=3;let s=[];for(let c=0;c<i.length;c+=t.step){let u=0;for(let l=c+t.step-1;l>=c;l--)u=(u<<1)+i[l];s.push(u)}let a=new oo(null,null,null),o=new oo(null,null,null);for(let c=n;c>0;c--){for(let u=0;u<s.length;u++){let l=s[u];l===c?o=o.mixedAdd(t.points[u]):l===-c&&(o=o.mixedAdd(t.points[u].neg()))}a=a.add(o)}return a.toP()}_wnafMulAdd(e,t,i,n,s){let a=this.curve._wnafT1.map(f=>f.toNumber()),o=this.curve._wnafT2.map(()=>[]),c=this.curve._wnafT3.map(()=>[]),u=0;for(let f=0;f<n;f++){let p=t[f]._getNAFPoints(e);a[f]=p.wnd,o[f]=p.points}for(let f=n-1;f>=1;f-=2){let h=f-1,p=f;if(a[h]!==1||a[p]!==1){c[h]=this.curve.getNAF(i[h],a[h],this.curve._bitLength),c[p]=this.curve.getNAF(i[p],a[p],this.curve._bitLength),u=Math.max(c[h].length,u),u=Math.max(c[p].length,u);continue}let A=[t[h],null,null,t[p]];(t[h].y??new $(0)).cmp(t[p].y??new $(0))===0?(A[1]=t[h].add(t[p]),A[2]=t[h].toJ().mixedAdd(t[p].neg())):(t[h].y??new $(0)).cmp((t[p].y??new $(0)).redNeg())===0?(A[1]=t[h].toJ().mixedAdd(t[p]),A[2]=t[h].add(t[p].neg())):(A[1]=t[h].toJ().mixedAdd(t[p]),A[2]=t[h].toJ().mixedAdd(t[p].neg()));let g=[-3,-1,-5,-7,0,7,5,1,3],m=this.curve.getJSF(i[h],i[p]);u=Math.max(m[0].length,u),c[h]=new Array(u),c[p]=new Array(u);for(let I=0;I<u;I++){let y=m[0][I]|0,v=m[1][I]|0;c[h][I]=g[(y+1)*3+(v+1)],c[p][I]=0,o[h]=A}}let l=new oo(null,null,null),d=this.curve._wnafT4;for(let f=u;f>=0;f--){let h=0;for(;f>=0;){let g=!0;for(let m=0;m<n;m++)d[m]=new $(typeof c[m][f]=="number"?c[m][f]:0),d[m].isZero()||(g=!1);if(!g)break;h++,f--}if(f>=0&&h++,l=l.dblp(h),f<0)break;let p=new $(1),A=new $(2);for(let g=0;g<n;g++){let m=d[g],I;m.cmpn(0)!==0&&(m.isNeg()?I=o[g][m.neg().sub(p).div(A).toNumber()].neg():I=o[g][m.sub(p).div(A).toNumber()],I.type==="affine"?l=l.mixedAdd(I):l=l.add(I))}}for(let f=0;f<n;f++)o[f]=[];return s===!0?l:l.toP()}_endoWnafMulAdd(e,t,i){let n=new Array(e.length*2),s=new Array(e.length*2),a;for(a=0;a<e.length;a++){let c=this.curve._endoSplit(t[a]),u=e[a],l=u._getBeta()??new r(null,null);c.k1.negative!==0&&(c.k1.ineg(),u=u.neg(!0)),c.k2.negative!==0&&(c.k2.ineg(),l=l.neg(!0)),n[a*2]=u,n[a*2+1]=l,s[a*2]=c.k1,s[a*2+1]=c.k2}let o=this._wnafMulAdd(1,n,s,a*2,i);for(let c=0;c<a*2;c++)n[c]=null,s[c]=null;return o}_hasDoubles(e){if(this.precomputed==null)return!1;let t=this.precomputed.doubles;return typeof t!="object"?!1:t.points.length>=Math.ceil((e.bitLength()+1)/t.step)}_getDoubles(e,t){if(typeof this.precomputed=="object"&&this.precomputed!==null&&typeof this.precomputed.doubles=="object"&&this.precomputed.doubles!==null)return this.precomputed.doubles;let i=[this],n=this;for(let s=0;s<(t??0);s+=e??1){for(let a=0;a<(e??1);a++)n=n.dbl();i.push(n)}return{step:e??1,points:i}}_getNAFPoints(e){if(typeof this.precomputed=="object"&&this.precomputed!==null&&typeof this.precomputed.naf=="object"&&this.precomputed.naf!==null)return this.precomputed.naf;let t=[this],i=(1<<e)-1,n=i===1?null:this.dbl();for(let s=1;s<i;s++)n!==null&&(t[s]=t[s-1].add(n));return{wnd:e,points:t}}}});var sN,ir,Cs=O(()=>{It();V3();fJ();vc();ce();ir=class r{p;red;redN;zero;one;two;g;n;a;b;tinv;zeroA;threeA;endo;_endoWnafT1;_endoWnafT2;_wnafT1;_wnafT2;_wnafT3;_wnafT4;_bitLength;static assert(e,t="Elliptic curve assertion failed"){if(!e)throw new Error(t)}getNAF(e,t,i){let n=new Array(Math.max(e.bitLength(),i)+1);n.fill(0);let s=1<<t+1,a=e.clone();for(let o=0;o<n.length;o++){let c,u=a.andln(s-1);a.isOdd()?(u>(s>>1)-1?c=(s>>1)-u:c=u,a.isubn(c)):c=0,n[o]=c,a.iushrn(1)}return n}getJSF(e,t){let i=[[],[]];e=e.clone(),t=t.clone();let n=0,s=0;for(;e.cmpn(-n)>0||t.cmpn(-s)>0;){let a=e.andln(3)+n&3,o=t.andln(3)+s&3;a===3&&(a=-1),o===3&&(o=-1);let c;if((a&1)===0)c=0;else{let l=e.andln(7)+n&7;(l===3||l===5)&&o===2?c=-a:c=a}i[0].push(c);let u;if((o&1)===0)u=0;else{let l=t.andln(7)+s&7;(l===3||l===5)&&a===2?u=-o:u=o}i[1].push(u),2*n===c+1&&(n=1-n),2*s===u+1&&(s=1-s),e.iushrn(1),t.iushrn(1)}return i}static cachedProperty(e,t,i){let n="_"+t;e.prototype[t]=function(){return this[n]!==void 0?this[n]:this[n]=i.call(this)}}static parseBytes(e){return typeof e=="string"?ke(e,"hex"):e}static intFromLE(e){return new $(e,"hex","le")}constructor(){if(typeof sN<"u")return sN;sN=this;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 $(t.p,16),this.red=new Sl(t.prime),this.zero=new $(0).toRed(this.red),this.one=new $(1).toRed(this.red),this.two=new $(2).toRed(this.red),this.n=new $(t.n,16),this.g=Wr.fromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n.bitLength(),this.redN=this.n.toRed(this.red),this.a=new $(t.a,16).toRed(this.red),this.b=new $(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=new Array(4),this._endoWnafT2=new Array(4)}_getEndomorphism(e){if(!this.zeroA||this.p.modrn(3)!==1)return;let t,i;if(e.beta!==void 0)t=new $(e.beta,16).toRed(this.red);else{let s=this._getEndoRoots(this.p);if(s===null)throw new Error("Failed to get endomorphism roots for beta.");t=s[0].cmp(s[1])<0?s[0]:s[1],t=t.toRed(this.red)}if(e.lambda!==void 0)i=new $(e.lambda,16);else{let s=this._getEndoRoots(this.n);if(s===null)throw new Error("Failed to get endomorphism roots for lambda.");if(this.g==null)throw new Error("Curve generator point (g) is not defined.");let a=this.g.mul(s[0])?.x,o=this.g.x!=null?this.g.x.redMul(t):void 0;if(a!=null&&o!=null&&a.cmp(o)===0)i=s[0];else{if(i=s[1],this.g==null)throw new Error("Curve generator point (g) is not defined.");let c=this.g.mul(i)?.x,u=this.g.x!=null?this.g.x.redMul(t):void 0;if(c==null||u==null)throw new Error("Lambda computation failed: g.mul(lambda).x or g.x.redMul(beta) is undefined.");r.assert(c.cmp(u)===0,"Lambda selection does not match computed beta.")}}let n;return typeof e.basis=="object"&&e.basis!==null?n=e.basis.map(function(s){return{a:new $(s.a,16),b:new $(s.b,16)}}):n=this._getEndoBasis(i),{beta:t,lambda:i,basis:n}}_getEndoRoots(e){let t=e===this.p?this.red:new Rg(e),i=new $(2).toRed(t).redInvm(),n=i.redNeg(),s=new $(3).toRed(t).redNeg().redSqrt().redMul(i),a=n.redAdd(s).fromRed(),o=n.redSub(s).fromRed();return[a,o]}_getEndoBasis(e){let t=this.n.ushrn(Math.floor(this.n.bitLength()/2)),i=e,n=this.n.clone(),s=new $(1),a=new $(0),o=new $(0),c=new $(1),u,l,d,f,h,p,A=new $(0),g=0,m=new $(0),I=new $(0);for(;i.cmpn(0)!==0;){let B=n.div(i);m=n.sub(B.mul(i)),I=o.sub(B.mul(s));let E=c.sub(B.mul(a));if(d===void 0&&m.cmp(t)<0)u=A.neg(),l=s,d=m.neg(),f=I;else if(d!==void 0&&++g===2)break;A=m,n=i,i=m,o=s,s=I,c=a,a=E}if(u===void 0||l===void 0||d===void 0||f===void 0)throw new Error("Failed to compute Endo Basis values");h=m.neg(),p=I;let y=d.sqr().add(f.sqr());return h.sqr().add(p.sqr()).cmp(y)>=0&&(h=u,p=l),d.negative!==0&&(d=d.neg(),f=f.neg()),h.negative!==0&&(h=h.neg(),p=p.neg()),[{a:d,b:f},{a:h,b:p}]}_endoSplit(e){if(this.endo==null)throw new Error("Endomorphism is not defined.");let t=this.endo.basis,i=t[0],n=t[1],s=n.b.mul(e).divRound(this.n),a=i.b.neg().mul(e).divRound(this.n),o=s.mul(i.a),c=a.mul(n.a),u=s.mul(i.b),l=a.mul(n.b),d=e.sub(o).sub(c),f=u.add(l).neg();return{k1:d,k2:f}}validate(e){if(e.inf)return!0;let t=e.x,i=e.y;if(t===null||i===null)throw new Error("Point coordinates cannot be null");let n=this.a.redMul(t),s=t.redSqr().redMul(t).redIAdd(n).redIAdd(this.b);return i.redSqr().redISub(s).cmpn(0)===0}}});var Nl=O(()=>{It();Ss();Rl();Ft();ce();vc();Cs()});var TJ=O(()=>{Ft();ce()});var QJ,vGe,xGe,BGe,Rl=O(()=>{It();Nl();Cs();vc();TJ();QJ=new ir,vGe=QJ.n.byteLength(),xGe=QJ.n.subn(1),BGe=SJ>>1n});var Ss=O(()=>{vc();Cs();Rl();It();Ft();Nl();ce()});var di=O(()=>{});var uN=O(()=>{It();Cs();di();ce()});var Ol=O(()=>{It();Ss();Cs();Rl();Ft();di();ce();uN()});var $Ge,YGe,JQe,zQe,XGe,RJ=O(()=>{$Ge=new Uint8Array([99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22]),YGe=[[0,0,0,0],[1,0,0,0],[2,0,0,0],[4,0,0,0],[8,0,0,0],[16,0,0,0],[32,0,0,0],[64,0,0,0],[128,0,0,0],[27,0,0,0],[54,0,0,0]].map(r=>new Uint8Array(r)),JQe=new Uint8Array(256),zQe=new Uint8Array(256);for(let r=0;r<256;r++){let e=(r<<1^((r&128)!==0?27:0))&255;JQe[r]=e,zQe[r]=e^r}XGe=(()=>{let r=new Uint8Array(16);return r[0]=225,r})()});var Ug=O(()=>{It();RJ();di();ce()});var Hg,Fl=O(()=>{Hg={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};for(let r in Hg)Hg[Hg[r]]===void 0&&(Hg[Hg[r]]=r)});var dJe,Pl=O(()=>{Fl();ce();It();dJe=typeof globalThis<"u"?globalThis.Buffer:void 0});var IJe,Ul=O(()=>{Nl();It();Ft();ce();Pl();Fl();IJe=new Uint8Array(0)});var DJ=O(()=>{It();Cs();Ft();zr()});var $Qe,YQe,SJe,_Je,TJe,QJe,NJe,OJ=O(()=>{di();Ft();ce();$Qe=BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff"),YQe=BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),SJe=$Qe-3n,_Je=BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),TJe=BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),QJe=BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"),NJe=YQe>>1n});var zr=O(()=>{It();Cs();vc();Ss();Nl();Ol();Ug();Rl();ce();Ft();di();Ul();uN();DJ();OJ()});var eh=O(()=>{Pl()});var qg=O(()=>{Pl()});var fN=O(()=>{ce()});var fze,e2e,hze,pze,Aze,hN=O(()=>{Pl();It();Fl();ce();fN();Ft();Ul();Ss();Rl();fze=1024*1024*1024,e2e=Math.pow(2,31)-1,hze=BigInt(e2e),pze=Object.freeze(new $(-1).toScriptNum()),Aze=Object.freeze(Array.from({length:17},(r,e)=>Object.freeze(new $(e).toScriptNum())))});var pN=O(()=>{Ul();ce()});var Lg=O(()=>{Fl();ce();eh();qg();Ul();Ft();pN()});var PJ=O(()=>{Fl();eh();qg();Ol();Ul();Ft();Pl()});var Kg=O(()=>{Sc();zr();ce();pN()});var gN=O(()=>{Lg();PJ();Kg()});var Sc=O(()=>{Fl();Pl();eh();qg();hN();fN();gN()});var mN=O(()=>{});var IN=O(()=>{mN()});var yN=O(()=>{});var wN=O(()=>{yN()});var bN=O(()=>{});var ih=O(()=>{wN();bN()});var vN=O(()=>{ih();di();ce()});var xN=O(()=>{vN()});var BN=O(()=>{ih()});var EN=O(()=>{BN()});var CN=O(()=>{ce();Ft();X3()});var kN=O(()=>{Ft();ce();Qc();Tc()});var SN,Tc=O(()=>{CN();kN();ce();Ft();(function(r){r[r.RAWTX=0]="RAWTX",r[r.RAWTX_AND_BUMP_INDEX=1]="RAWTX_AND_BUMP_INDEX",r[r.TXID_ONLY=2]="TXID_ONLY"})(SN||(SN={}))});var Qc=O(()=>{qg();eh();ce();Ft();IN();hN();xN();EN();Tc();Lg();Ul()});var UJ=O(()=>{});var HJ=O(()=>{Tc()});var Hl=O(()=>{Qc();CN();UJ();kN();Tc();HJ()});var MJ=O(()=>{mN();IN()});var qJ=O(()=>{ih()});var LJ=O(()=>{yN()});var _N=O(()=>{ih();LJ();wN();bN()});var KJ=O(()=>{_N()});var VJ=O(()=>{vN();qJ();KJ();xN()});var jJ=O(()=>{ih()});var WJ=O(()=>{BN();jJ();EN()});var GJ=O(()=>{Ss();Ol();Nl();Cs();di();ce()});var JJ=O(()=>{Ss();Ug();di();ce()});var zJ=O(()=>{GJ();JJ()});var $J=O(()=>{It();ce();Rl();Ft()});var YJ=O(()=>{ce();Ft();Cs();Ol();Ss();di();It()});var XJ=O(()=>{});var ZJ=O(()=>{XJ();ce();Ft();di()});function b2e(r){this._tables[0][0][0]===0&&this._precompute();let e,t,i,n=this._tables[0][4],s=this._tables[1],a=r.length,o=1;if(a!==4&&a!==6&&a!==8)throw new Error("invalid aes key size");this._key=[t=r.slice(0),i=[]];let c;for(c=a;c<4*a+28;c++)e=t[c-1],(c%a===0||a===8&&c%a===4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[e&255],c%a===0&&(e=e<<8^e>>>24^o<<24,o=o<<1^(o>>7)*283)),t[c]=t[c-a]^e;for(let u=0;c>0;u++,c--)e=t[(u&3)!==0?c:c-4],c<=4||u<4?i[u]=e:i[u]=s[0][n[e>>>24]]^s[1][n[e>>16&255]]^s[2][n[e>>8&255]]^s[3][n[e&255]]}var ez=O(()=>{di();Ol();Ss();vc();Ft();ce();b2e.prototype={encrypt:function(r){return this._crypt(r,0)},decrypt:function(r){return this._crypt(r,1)},_tables:[[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)]],_precompute:function(){let r=this._tables[0],e=this._tables[1],t=r[4],i=e[4],n,s,a,o=new Uint8Array(256),c=new Uint8Array(256),u,l,d,f,h,p;for(n=0;n<256;n++)c[(o[n]=n<<1^(n>>7)*283)^n]=n;for(s=a=0;t[s]===0;s^=u!==0?u:1,a=c[a]!==0?c[a]:1)for(f=a^a<<1^a<<2^a<<3^a<<4,f=f>>8^f&255^99,t[s]=f,i[f]=s,d=o[l=o[u=o[s]]],p=d*16843009^l*65537^u*257^s*16843008,h=o[f]*257^f*16843008,n=0;n<4;n++)r[n][s]=h=h<<24^h>>>8,e[n][f]=p=p<<24^p>>>8},_crypt:function(r,e){if(r.length!==4)throw new Error("invalid aes block size");let t=this._key[e],i=r[0]^t[0],n=r[e===1?3:1]^t[1],s=r[2]^t[2],a=r[e===1?1:3]^t[3],o,c,u,l=t.length/4-2,d,f=4,h=new Uint32Array(4),p=this._tables[e],A=p[0],g=p[1],m=p[2],I=p[3],y=p[4];for(d=0;d<l;d++)o=A[i>>>24]^g[n>>16&255]^m[s>>8&255]^I[a&255]^t[f],c=A[n>>>24]^g[s>>16&255]^m[a>>8&255]^I[i&255]^t[f+1],u=A[s>>>24]^g[a>>16&255]^m[i>>8&255]^I[n&255]^t[f+2],a=A[a>>>24]^g[i>>16&255]^m[n>>8&255]^I[s&255]^t[f+3],f+=4,i=o,n=c,s=u;for(d=0;d<4;d++)h[e===1?3&-d:d]=y[i>>>24]<<24^y[n>>16&255]<<16^y[s>>8&255]<<8^y[a&255]^t[f++],o=i,i=n,n=s,s=a,a=o;return h}}});var tz=O(()=>{Qc();eh()});var iz=O(()=>{$J();YJ();ZJ();ez();tz()});var rz=O(()=>{Ft();It();ce()});var nz=O(()=>{rz()});var TN,QN=O(()=>{(function(r){r[r.Silent=0]="Silent",r[r.App=1]="App",r[r.Counterparty=2]="Counterparty"})(TN||(TN={}))});var NN=O(()=>{zr()});var RN=O(()=>{zr();NN()});var Ix=O(()=>{RN();zr();ce()});var DN=O(()=>{});var az,rh=O(()=>{(function(r){r[r.unknownError=1]="unknownError",r[r.unsupportedAction=2]="unsupportedAction",r[r.invalidHmac=3]="invalidHmac",r[r.invalidSignature=4]="invalidSignature",r[r.reviewActions=5]="reviewActions",r[r.invalidParameter=6]="invalidParameter",r[r.insufficientFunds=7]="insufficientFunds"})(az||(az={}))});var yx=O(()=>{});var ON=O(()=>{di();ce();rh();yx()});var Ml=O(()=>{ce();Ix();Nl()});var lz,jg=O(()=>{(function(r){r[r.createAction=1]="createAction",r[r.signAction=2]="signAction",r[r.abortAction=3]="abortAction",r[r.listActions=4]="listActions",r[r.internalizeAction=5]="internalizeAction",r[r.listOutputs=6]="listOutputs",r[r.relinquishOutput=7]="relinquishOutput",r[r.getPublicKey=8]="getPublicKey",r[r.revealCounterpartyKeyLinkage=9]="revealCounterpartyKeyLinkage",r[r.revealSpecificKeyLinkage=10]="revealSpecificKeyLinkage",r[r.encrypt=11]="encrypt",r[r.decrypt=12]="decrypt",r[r.createHmac=13]="createHmac",r[r.verifyHmac=14]="verifyHmac",r[r.createSignature=15]="createSignature",r[r.verifySignature=16]="verifySignature",r[r.acquireCertificate=17]="acquireCertificate",r[r.listCertificates=18]="listCertificates",r[r.proveCertificate=19]="proveCertificate",r[r.relinquishCertificate=20]="relinquishCertificate",r[r.discoverByIdentityKey=21]="discoverByIdentityKey",r[r.discoverByAttributes=22]="discoverByAttributes",r[r.isAuthenticated=23]="isAuthenticated",r[r.waitForAuthentication=24]="waitForAuthentication",r[r.getHeight=25]="getHeight",r[r.getHeaderForHeight=26]="getHeaderForHeight",r[r.getNetwork=27]="getNetwork",r[r.getVersion=28]="getVersion"})(lz||(lz={}))});var FN=O(()=>{QN();Ml();ce();jg();rh()});var PN=O(()=>{jg();ce()});var UN=O(()=>{});var Gg=O(()=>{});var fz=O(()=>{});var HN=O(()=>{});var MN=O(()=>{UN();Gg();fz();HN()});var qN=O(()=>{di();ce();rh();yx()});var LN=O(()=>{ce();Gg();Tc()});var wx=O(()=>{DN();ON();FN();PN();MN();qN();LN();Gg()});var hz=O(()=>{});var pz=O(()=>{ce();jg();Ml()});var KN=O(()=>{yx();DN();ON();hz();jg();FN();pz();PN();MN();qN()});var Az=O(()=>{});var nh=O(()=>{QN();NN();RN();Ix();wx();rh();UN();Gg();HN();rh();LN();KN();Az()});var gz=O(()=>{Ml();ce();Ug();di()});var bx=O(()=>{Ug();ce();Ml()});var mz=O(()=>{Ol();nh()});var Iz=O(()=>{Ml();gz();bx();mz()});var vx=O(()=>{});var yz=O(()=>{ce()});var xx=O(()=>{ce();di()});var wz=O(()=>{bx()});var bz=O(()=>{bx()});var Bx=O(()=>{yz();xx();wz();bz()});var utt,VN=O(()=>{vx();Bx();di();ce();utt=typeof globalThis<"u"?globalThis.Buffer:void 0});var xz=O(()=>{});var dtt,jN=O(()=>{ce();dtt=typeof globalThis<"u"&&typeof globalThis.fetch=="function"?globalThis.fetch.bind(globalThis):fetch});var WN=O(()=>{ce();di();Lg();Ss();xx();VN();jN();vx();Bx()});var Bz=O(()=>{WN()});var Ez=O(()=>{jN()});var Cz=O(()=>{Iz();VN();vx();xz();Bx();Bz();Ez()});var Ex=O(()=>{Kg();zr()});var kz,Cx,Htt,Sz=O(()=>{kz="bsvsdk_overlay_host_reputation_v1",Cx=class{stats;store;constructor(e){this.stats=new Map,this.store=e??this.getLocalStorageAdapter(),this.loadFromStorage()}reset(){this.stats.clear()}recordSuccess(e,t){let i=this.getOrCreate(e),n=Date.now(),s=Number.isFinite(t)&&t>=0?t:1500;i.avgLatencyMs===null?i.avgLatencyMs=s:i.avgLatencyMs=(1-.25)*i.avgLatencyMs+.25*s,i.lastLatencyMs=s,i.totalSuccesses+=1,i.consecutiveFailures=0,i.backoffUntil=0,i.lastUpdatedAt=n,i.lastError=void 0,this.saveToStorage()}recordFailure(e,t){let i=this.getOrCreate(e),n=Date.now();i.totalFailures+=1,i.consecutiveFailures+=1;let s;typeof t=="string"?s=t:t instanceof Error?s=t.message:s=void 0,typeof s=="string"&&(s.includes("ERR_NAME_NOT_RESOLVED")||s.includes("ENOTFOUND")||s.includes("getaddrinfo")||s.includes("Failed to fetch"))&&i.consecutiveFailures<3&&(i.consecutiveFailures=3);let o=Math.max(i.consecutiveFailures-2,0);if(o===0)i.backoffUntil=0;else{let c=Math.min(6e4,1e3*Math.pow(2,o-1));i.backoffUntil=n+c}i.lastUpdatedAt=n,typeof t=="string"?i.lastError=t:t instanceof Error?i.lastError=t.message:i.lastError=void 0,this.saveToStorage()}rankHosts(e,t=Date.now()){let i=new Map;e.forEach((a,o)=>{typeof a!="string"||a.length===0||i.has(a)||i.set(a,o)});let s=Array.from(i.keys()).map(a=>{let o=this.getOrCreate(a);return{...o,score:this.computeScore(o,t),originalOrder:i.get(a)??0}});return s.sort((a,o)=>{let c=a.backoffUntil>t,u=o.backoffUntil>t;return c!==u?c?1:-1:a.score!==o.score?a.score-o.score:a.totalSuccesses!==o.totalSuccesses?o.totalSuccesses-a.totalSuccesses:a.originalOrder-o.originalOrder}),s.map(({originalOrder:a,...o})=>o)}snapshot(e){let t=this.stats.get(e);return t==null?void 0:{...t}}getStorage(){try{let e=typeof globalThis=="object"?globalThis:void 0;return e?.localStorage==null?void 0:e.localStorage}catch{return}}getLocalStorageAdapter(){let e=this.getStorage();if(e!=null)return{get:t=>{try{return e.getItem(t)}catch{return null}},set:(t,i)=>{try{e.setItem(t,i)}catch{}}}}loadFromStorage(){let e=this.store;if(e!=null)try{let t=e.get(kz);if(typeof t!="string"||t.length===0)return;let i=JSON.parse(t);if(typeof i!="object"||i===null)return;this.stats.clear();for(let n of Object.keys(i)){let s=i[n];if(s!=null&&typeof s=="object"){let a={host:String(s.host??n),totalSuccesses:Number(s.totalSuccesses??0),totalFailures:Number(s.totalFailures??0),consecutiveFailures:Number(s.consecutiveFailures??0),avgLatencyMs:s.avgLatencyMs==null?null:Number(s.avgLatencyMs),lastLatencyMs:s.lastLatencyMs==null?null:Number(s.lastLatencyMs),backoffUntil:Number(s.backoffUntil??0),lastUpdatedAt:Number(s.lastUpdatedAt??0),lastError:typeof s.lastError=="string"?s.lastError:void 0};this.stats.set(a.host,a)}}}catch{}}saveToStorage(){let e=this.store;if(e!=null)try{let t={};for(let[i,n]of this.stats.entries())t[i]=n;e.set(kz,JSON.stringify(t))}catch{}}computeScore(e,t){let i=e.avgLatencyMs??1500,n=e.consecutiveFailures*400,s=Math.min(e.totalSuccesses*30,i/2),a=e.backoffUntil>t?e.backoffUntil-t:0;return i+n+a-s}getOrCreate(e){let t=this.stats.get(e);return t==null&&(t={host:e,totalSuccesses:0,totalFailures:0,consecutiveFailures:0,avgLatencyMs:null,lastLatencyMs:null,backoffUntil:0,lastUpdatedAt:0},this.stats.set(e,t)),t}},Htt=new Cx});var jtt,kx=O(()=>{Hl();Ex();ce();Sz();jtt=typeof globalThis<"u"&&typeof globalThis.fetch=="function"?globalThis.fetch.bind(globalThis):fetch});var $g=O(()=>{Hl();ce();kx();Ex()});var Tz=O(()=>{Qc()});var ah=O(()=>{kx();$g();Tz();Ex();kx();$g();$g();$g()});var JN=O(()=>{ce();zr()});var Qz=O(()=>{WN();JN()});var Nz=O(()=>{ah();zN();Kg();Qc();zr()});var zN=O(()=>{JN();Qz();Nz()});var $N=O(()=>{});var Rz=O(()=>{nh();zr();Sc();Hl()});var Dz=O(()=>{$N();nh();Hl();Ml();Sc();zr();ah();Rz()});var Oz=O(()=>{Dz();$N()});var Fz=O(()=>{nh();zr();Hl();ah();Sc()});var Pz=O(()=>{});var Uz=O(()=>{Fz();Pz()});var Hz=O(()=>{Kg();ce();wx();Qc();Tc()});var Mz=O(()=>{});var YN=O(()=>{});var qz=O(()=>{Sc();ce();YN()});var Lz=O(()=>{Qc();ce();ah();Sc();wx();Tc();Mz();qz();Ix();YN()});var Kz=O(()=>{Hz();Lz()});var Vz=O(()=>{});var jz=O(()=>{});var XN=O(()=>{});var Wz=O(()=>{XN();ce();di()});var Gz=O(()=>{});var Jz=O(()=>{xx();Lg();Ss()});var zz=O(()=>{Jz()});var $z=O(()=>{Vz();jz();Wz();Gz();zz();XN()});var ZN=O(()=>{zr();Sc();gN();Hl();MJ();VJ();WJ();_N();zJ();iz();nz();nh();KN();Cz();ah();zN();Oz();Uz();Kz();$z()});import G2e from"debug";var _i={};ph(_i,{HasPropertyKey:()=>k0,IsArray:()=>Ut,IsAsyncIterator:()=>Zx,IsBigInt:()=>gh,IsBoolean:()=>Ba,IsDate:()=>Dc,IsFunction:()=>eB,IsIterator:()=>tB,IsNull:()=>iB,IsNumber:()=>br,IsObject:()=>je,IsRegExp:()=>mh,IsString:()=>et,IsSymbol:()=>rB,IsUint8Array:()=>Ea,IsUndefined:()=>Ht});function k0(r,e){return e in r}function Zx(r){return je(r)&&!Ut(r)&&!Ea(r)&&Symbol.asyncIterator in r}function Ut(r){return Array.isArray(r)}function gh(r){return typeof r=="bigint"}function Ba(r){return typeof r=="boolean"}function Dc(r){return r instanceof globalThis.Date}function eB(r){return typeof r=="function"}function tB(r){return je(r)&&!Ut(r)&&!Ea(r)&&Symbol.iterator in r}function iB(r){return r===null}function br(r){return typeof r=="number"}function je(r){return typeof r=="object"&&r!==null}function mh(r){return r instanceof globalThis.RegExp}function et(r){return typeof r=="string"}function rB(r){return typeof r=="symbol"}function Ea(r){return r instanceof globalThis.Uint8Array}function Ht(r){return r===void 0}function mX(r){return r.map(e=>S0(e))}function IX(r){return new Date(r.getTime())}function yX(r){return new Uint8Array(r)}function wX(r){return new RegExp(r.source,r.flags)}function bX(r){let e={};for(let t of Object.getOwnPropertyNames(r))e[t]=S0(r[t]);for(let t of Object.getOwnPropertySymbols(r))e[t]=S0(r[t]);return e}function S0(r){return Ut(r)?mX(r):Dc(r)?IX(r):Ea(r)?yX(r):mh(r)?wX(r):je(r)?bX(r):r}function lt(r){return S0(r)}function Yl(r,e){return e===void 0?lt(r):lt({...e,...r})}function yR(r){return r!==null&&typeof r=="object"}function wR(r){return globalThis.Array.isArray(r)&&!globalThis.ArrayBuffer.isView(r)}function bR(r){return r===void 0}function vR(r){return typeof r=="number"}var _0;(function(r){r.InstanceMode="default",r.ExactOptionalPropertyTypes=!1,r.AllowArrayObject=!1,r.AllowNaN=!1,r.AllowNullVoid=!1;function e(a,o){return r.ExactOptionalPropertyTypes?o in a:a[o]!==void 0}r.IsExactOptionalProperty=e;function t(a){let o=yR(a);return r.AllowArrayObject?o:o&&!wR(a)}r.IsObjectLike=t;function i(a){return t(a)&&!(a instanceof Date)&&!(a instanceof Uint8Array)}r.IsRecordLike=i;function n(a){return r.AllowNaN?vR(a):Number.isFinite(a)}r.IsNumberLike=n;function s(a){let o=bR(a);return r.AllowNullVoid?o||a===null:o}r.IsVoidLike=s})(_0||(_0={}));function vX(r){return globalThis.Object.freeze(r).map(e=>Ih(e))}function xX(r){let e={};for(let t of Object.getOwnPropertyNames(r))e[t]=Ih(r[t]);for(let t of Object.getOwnPropertySymbols(r))e[t]=Ih(r[t]);return globalThis.Object.freeze(e)}function Ih(r){return Ut(r)?vX(r):Dc(r)?r:Ea(r)?r:mh(r)?r:je(r)?xX(r):r}function L(r,e){let t=e!==void 0?{...e,...r}:r;switch(_0.InstanceMode){case"freeze":return Ih(t);case"clone":return lt(t);default:return t}}var fi=class extends Error{constructor(e){super(e)}};var zt=Symbol.for("TypeBox.Transform"),Kn=Symbol.for("TypeBox.Readonly"),bi=Symbol.for("TypeBox.Optional"),Yr=Symbol.for("TypeBox.Hint"),Z=Symbol.for("TypeBox.Kind");function Xl(r){return je(r)&&r[Kn]==="Readonly"}function rr(r){return je(r)&&r[bi]==="Optional"}function nB(r){return Se(r,"Any")}function sB(r){return Se(r,"Argument")}function Vn(r){return Se(r,"Array")}function Oc(r){return Se(r,"AsyncIterator")}function Fc(r){return Se(r,"BigInt")}function Ca(r){return Se(r,"Boolean")}function jn(r){return Se(r,"Computed")}function Wn(r){return Se(r,"Constructor")}function BX(r){return Se(r,"Date")}function Gn(r){return Se(r,"Function")}function Jn(r){return Se(r,"Integer")}function yt(r){return Se(r,"Intersect")}function Pc(r){return Se(r,"Iterator")}function Se(r,e){return je(r)&&Z in r&&r[Z]===e}function T0(r){return Ba(r)||br(r)||et(r)}function vr(r){return Se(r,"Literal")}function xr(r){return Se(r,"MappedKey")}function dt(r){return Se(r,"MappedResult")}function Io(r){return Se(r,"Never")}function EX(r){return Se(r,"Not")}function yh(r){return Se(r,"Null")}function zn(r){return Se(r,"Number")}function Mt(r){return Se(r,"Object")}function Uc(r){return Se(r,"Promise")}function Hc(r){return Se(r,"Record")}function _t(r){return Se(r,"Ref")}function aB(r){return Se(r,"RegExp")}function ka(r){return Se(r,"String")}function wh(r){return Se(r,"Symbol")}function Br(r){return Se(r,"TemplateLiteral")}function CX(r){return Se(r,"This")}function yo(r){return je(r)&&zt in r}function Er(r){return Se(r,"Tuple")}function bh(r){return Se(r,"Undefined")}function Te(r){return Se(r,"Union")}function kX(r){return Se(r,"Uint8Array")}function SX(r){return Se(r,"Unknown")}function _X(r){return Se(r,"Unsafe")}function TX(r){return Se(r,"Void")}function QX(r){return je(r)&&Z in r&&et(r[Z])}function Cr(r){return nB(r)||sB(r)||Vn(r)||Ca(r)||Fc(r)||Oc(r)||jn(r)||Wn(r)||BX(r)||Gn(r)||Jn(r)||yt(r)||Pc(r)||vr(r)||xr(r)||dt(r)||Io(r)||EX(r)||yh(r)||zn(r)||Mt(r)||Uc(r)||Hc(r)||_t(r)||aB(r)||ka(r)||wh(r)||Br(r)||CX(r)||Er(r)||bh(r)||Te(r)||kX(r)||SX(r)||_X(r)||TX(r)||QX(r)}var Q={};ph(Q,{IsAny:()=>CR,IsArgument:()=>kR,IsArray:()=>SR,IsAsyncIterator:()=>_R,IsBigInt:()=>TR,IsBoolean:()=>QR,IsComputed:()=>NR,IsConstructor:()=>RR,IsDate:()=>DR,IsFunction:()=>OR,IsImport:()=>PX,IsInteger:()=>FR,IsIntersect:()=>PR,IsIterator:()=>UR,IsKind:()=>l4,IsKindOf:()=>xe,IsLiteral:()=>xh,IsLiteralBoolean:()=>UX,IsLiteralNumber:()=>MR,IsLiteralString:()=>HR,IsLiteralValue:()=>qR,IsMappedKey:()=>LR,IsMappedResult:()=>KR,IsNever:()=>VR,IsNot:()=>jR,IsNull:()=>WR,IsNumber:()=>GR,IsObject:()=>JR,IsOptional:()=>FX,IsPromise:()=>zR,IsProperties:()=>Q0,IsReadonly:()=>OX,IsRecord:()=>$R,IsRecursive:()=>HX,IsRef:()=>YR,IsRegExp:()=>XR,IsSchema:()=>hi,IsString:()=>ZR,IsSymbol:()=>e4,IsTemplateLiteral:()=>t4,IsThis:()=>i4,IsTransform:()=>r4,IsTuple:()=>n4,IsUint8Array:()=>a4,IsUndefined:()=>s4,IsUnion:()=>lB,IsUnionLiteral:()=>MX,IsUnknown:()=>o4,IsUnsafe:()=>c4,IsVoid:()=>u4,TypeGuardUnknownTypeError:()=>oB});var oB=class extends fi{},NX=["Argument","Any","Array","AsyncIterator","BigInt","Boolean","Computed","Constructor","Date","Enum","Function","Integer","Intersect","Iterator","Literal","MappedKey","MappedResult","Not","Null","Number","Object","Promise","Record","Ref","RegExp","String","Symbol","TemplateLiteral","This","Tuple","Undefined","Union","Uint8Array","Unknown","Void"];function xR(r){try{return new RegExp(r),!0}catch{return!1}}function cB(r){if(!et(r))return!1;for(let e=0;e<r.length;e++){let t=r.charCodeAt(e);if(t>=7&&t<=13||t===27||t===127)return!1}return!0}function BR(r){return uB(r)||hi(r)}function vh(r){return Ht(r)||gh(r)}function tt(r){return Ht(r)||br(r)}function uB(r){return Ht(r)||Ba(r)}function We(r){return Ht(r)||et(r)}function RX(r){return Ht(r)||et(r)&&cB(r)&&xR(r)}function DX(r){return Ht(r)||et(r)&&cB(r)}function ER(r){return Ht(r)||hi(r)}function OX(r){return je(r)&&r[Kn]==="Readonly"}function FX(r){return je(r)&&r[bi]==="Optional"}function CR(r){return xe(r,"Any")&&We(r.$id)}function kR(r){return xe(r,"Argument")&&br(r.index)}function SR(r){return xe(r,"Array")&&r.type==="array"&&We(r.$id)&&hi(r.items)&&tt(r.minItems)&&tt(r.maxItems)&&uB(r.uniqueItems)&&ER(r.contains)&&tt(r.minContains)&&tt(r.maxContains)}function _R(r){return xe(r,"AsyncIterator")&&r.type==="AsyncIterator"&&We(r.$id)&&hi(r.items)}function TR(r){return xe(r,"BigInt")&&r.type==="bigint"&&We(r.$id)&&vh(r.exclusiveMaximum)&&vh(r.exclusiveMinimum)&&vh(r.maximum)&&vh(r.minimum)&&vh(r.multipleOf)}function QR(r){return xe(r,"Boolean")&&r.type==="boolean"&&We(r.$id)}function NR(r){return xe(r,"Computed")&&et(r.target)&&Ut(r.parameters)&&r.parameters.every(e=>hi(e))}function RR(r){return xe(r,"Constructor")&&r.type==="Constructor"&&We(r.$id)&&Ut(r.parameters)&&r.parameters.every(e=>hi(e))&&hi(r.returns)}function DR(r){return xe(r,"Date")&&r.type==="Date"&&We(r.$id)&&tt(r.exclusiveMaximumTimestamp)&&tt(r.exclusiveMinimumTimestamp)&&tt(r.maximumTimestamp)&&tt(r.minimumTimestamp)&&tt(r.multipleOfTimestamp)}function OR(r){return xe(r,"Function")&&r.type==="Function"&&We(r.$id)&&Ut(r.parameters)&&r.parameters.every(e=>hi(e))&&hi(r.returns)}function PX(r){return xe(r,"Import")&&k0(r,"$defs")&&je(r.$defs)&&Q0(r.$defs)&&k0(r,"$ref")&&et(r.$ref)&&r.$ref in r.$defs}function FR(r){return xe(r,"Integer")&&r.type==="integer"&&We(r.$id)&&tt(r.exclusiveMaximum)&&tt(r.exclusiveMinimum)&&tt(r.maximum)&&tt(r.minimum)&&tt(r.multipleOf)}function Q0(r){return je(r)&&Object.entries(r).every(([e,t])=>cB(e)&&hi(t))}function PR(r){return xe(r,"Intersect")&&!(et(r.type)&&r.type!=="object")&&Ut(r.allOf)&&r.allOf.every(e=>hi(e)&&!r4(e))&&We(r.type)&&(uB(r.unevaluatedProperties)||ER(r.unevaluatedProperties))&&We(r.$id)}function UR(r){return xe(r,"Iterator")&&r.type==="Iterator"&&We(r.$id)&&hi(r.items)}function xe(r,e){return je(r)&&Z in r&&r[Z]===e}function HR(r){return xh(r)&&et(r.const)}function MR(r){return xh(r)&&br(r.const)}function UX(r){return xh(r)&&Ba(r.const)}function xh(r){return xe(r,"Literal")&&We(r.$id)&&qR(r.const)}function qR(r){return Ba(r)||br(r)||et(r)}function LR(r){return xe(r,"MappedKey")&&Ut(r.keys)&&r.keys.every(e=>br(e)||et(e))}function KR(r){return xe(r,"MappedResult")&&Q0(r.properties)}function VR(r){return xe(r,"Never")&&je(r.not)&&Object.getOwnPropertyNames(r.not).length===0}function jR(r){return xe(r,"Not")&&hi(r.not)}function WR(r){return xe(r,"Null")&&r.type==="null"&&We(r.$id)}function GR(r){return xe(r,"Number")&&r.type==="number"&&We(r.$id)&&tt(r.exclusiveMaximum)&&tt(r.exclusiveMinimum)&&tt(r.maximum)&&tt(r.minimum)&&tt(r.multipleOf)}function JR(r){return xe(r,"Object")&&r.type==="object"&&We(r.$id)&&Q0(r.properties)&&BR(r.additionalProperties)&&tt(r.minProperties)&&tt(r.maxProperties)}function zR(r){return xe(r,"Promise")&&r.type==="Promise"&&We(r.$id)&&hi(r.item)}function $R(r){return xe(r,"Record")&&r.type==="object"&&We(r.$id)&&BR(r.additionalProperties)&&je(r.patternProperties)&&(e=>{let t=Object.getOwnPropertyNames(e.patternProperties);return t.length===1&&xR(t[0])&&je(e.patternProperties)&&hi(e.patternProperties[t[0]])})(r)}function HX(r){return je(r)&&Yr in r&&r[Yr]==="Recursive"}function YR(r){return xe(r,"Ref")&&We(r.$id)&&et(r.$ref)}function XR(r){return xe(r,"RegExp")&&We(r.$id)&&et(r.source)&&et(r.flags)&&tt(r.maxLength)&&tt(r.minLength)}function ZR(r){return xe(r,"String")&&r.type==="string"&&We(r.$id)&&tt(r.minLength)&&tt(r.maxLength)&&RX(r.pattern)&&DX(r.format)}function e4(r){return xe(r,"Symbol")&&r.type==="symbol"&&We(r.$id)}function t4(r){return xe(r,"TemplateLiteral")&&r.type==="string"&&et(r.pattern)&&r.pattern[0]==="^"&&r.pattern[r.pattern.length-1]==="$"}function i4(r){return xe(r,"This")&&We(r.$id)&&et(r.$ref)}function r4(r){return je(r)&&zt in r}function n4(r){return xe(r,"Tuple")&&r.type==="array"&&We(r.$id)&&br(r.minItems)&&br(r.maxItems)&&r.minItems===r.maxItems&&(Ht(r.items)&&Ht(r.additionalItems)&&r.minItems===0||Ut(r.items)&&r.items.every(e=>hi(e)))}function s4(r){return xe(r,"Undefined")&&r.type==="undefined"&&We(r.$id)}function MX(r){return lB(r)&&r.anyOf.every(e=>HR(e)||MR(e))}function lB(r){return xe(r,"Union")&&We(r.$id)&&je(r)&&Ut(r.anyOf)&&r.anyOf.every(e=>hi(e))}function a4(r){return xe(r,"Uint8Array")&&r.type==="Uint8Array"&&We(r.$id)&&tt(r.minByteLength)&&tt(r.maxByteLength)}function o4(r){return xe(r,"Unknown")&&We(r.$id)}function c4(r){return xe(r,"Unsafe")}function u4(r){return xe(r,"Void")&&r.type==="void"&&We(r.$id)}function l4(r){return je(r)&&Z in r&&et(r[Z])&&!NX.includes(r[Z])}function hi(r){return je(r)&&(CR(r)||kR(r)||SR(r)||QR(r)||TR(r)||_R(r)||NR(r)||RR(r)||DR(r)||OR(r)||FR(r)||PR(r)||UR(r)||xh(r)||LR(r)||KR(r)||VR(r)||jR(r)||WR(r)||GR(r)||JR(r)||zR(r)||$R(r)||YR(r)||XR(r)||ZR(r)||e4(r)||t4(r)||i4(r)||n4(r)||s4(r)||lB(r)||a4(r)||o4(r)||c4(r)||u4(r)||l4(r))}var dB="(true|false)",Bh="(0|[1-9][0-9]*)",fB="(.*)",qX="(?!.*)",f3e=`^${dB}$`,wo=`^${Bh}$`,bo=`^${fB}$`,d4=`^${qX}$`;function f4(r,e){return r.includes(e)}function h4(r){return[...new Set(r)]}function LX(r,e){return r.filter(t=>e.includes(t))}function KX(r,e){return r.reduce((t,i)=>LX(t,i),e)}function p4(r){return r.length===1?r[0]:r.length>1?KX(r.slice(1),r[0]):[]}function A4(r){let e=[];for(let t of r)e.push(...t);return e}function vo(r){return L({[Z]:"Any"},r)}function Zl(r,e){return L({[Z]:"Array",type:"array",items:r},e)}function g4(r){return L({[Z]:"Argument",index:r})}function ed(r,e){return L({[Z]:"AsyncIterator",type:"AsyncIterator",items:r},e)}function st(r,e,t){return L({[Z]:"Computed",target:r,parameters:e},t)}function VX(r,e){let{[e]:t,...i}=r;return i}function wt(r,e){return e.reduce((t,i)=>VX(t,i),r)}function Qe(r){return L({[Z]:"Never",not:{}},r)}function De(r){return L({[Z]:"MappedResult",properties:r})}function td(r,e,t){return L({[Z]:"Constructor",type:"Constructor",parameters:r,returns:e},t)}function Ts(r,e,t){return L({[Z]:"Function",type:"Function",parameters:r,returns:e},t)}function Eh(r,e){return L({[Z]:"Union",anyOf:r},e)}function jX(r){return r.some(e=>rr(e))}function m4(r){return r.map(e=>rr(e)?WX(e):e)}function WX(r){return wt(r,[bi])}function GX(r,e){return jX(r)?Ti(Eh(m4(r),e)):Eh(m4(r),e)}function Qs(r,e){return r.length===1?L(r[0],e):r.length===0?Qe(e):GX(r,e)}function Pe(r,e){return r.length===0?Qe(e):r.length===1?L(r[0],e):Eh(r,e)}var N0=class extends fi{};function JX(r){return r.replace(/\\\$/g,"$").replace(/\\\*/g,"*").replace(/\\\^/g,"^").replace(/\\\|/g,"|").replace(/\\\(/g,"(").replace(/\\\)/g,")")}function hB(r,e,t){return r[e]===t&&r.charCodeAt(e-1)!==92}function _a(r,e){return hB(r,e,"(")}function Ch(r,e){return hB(r,e,")")}function I4(r,e){return hB(r,e,"|")}function zX(r){if(!(_a(r,0)&&Ch(r,r.length-1)))return!1;let e=0;for(let t=0;t<r.length;t++)if(_a(r,t)&&(e+=1),Ch(r,t)&&(e-=1),e===0&&t!==r.length-1)return!1;return!0}function $X(r){return r.slice(1,r.length-1)}function YX(r){let e=0;for(let t=0;t<r.length;t++)if(_a(r,t)&&(e+=1),Ch(r,t)&&(e-=1),I4(r,t)&&e===0)return!0;return!1}function XX(r){for(let e=0;e<r.length;e++)if(_a(r,e))return!0;return!1}function ZX(r){let[e,t]=[0,0],i=[];for(let s=0;s<r.length;s++)if(_a(r,s)&&(e+=1),Ch(r,s)&&(e-=1),I4(r,s)&&e===0){let a=r.slice(t,s);a.length>0&&i.push(id(a)),t=s+1}let n=r.slice(t);return n.length>0&&i.push(id(n)),i.length===0?{type:"const",const:""}:i.length===1?i[0]:{type:"or",expr:i}}function eZ(r){function e(n,s){if(!_a(n,s))throw new N0("TemplateLiteralParser: Index must point to open parens");let a=0;for(let o=s;o<n.length;o++)if(_a(n,o)&&(a+=1),Ch(n,o)&&(a-=1),a===0)return[s,o];throw new N0("TemplateLiteralParser: Unclosed group parens in expression")}function t(n,s){for(let a=s;a<n.length;a++)if(_a(n,a))return[s,a];return[s,n.length]}let i=[];for(let n=0;n<r.length;n++)if(_a(r,n)){let[s,a]=e(r,n),o=r.slice(s,a+1);i.push(id(o)),n=a}else{let[s,a]=t(r,n),o=r.slice(s,a);o.length>0&&i.push(id(o)),n=a-1}return i.length===0?{type:"const",const:""}:i.length===1?i[0]:{type:"and",expr:i}}function id(r){return zX(r)?id($X(r)):YX(r)?ZX(r):XX(r)?eZ(r):{type:"const",const:JX(r)}}function rd(r){return id(r.slice(1,r.length-1))}var pB=class extends fi{};function tZ(r){return r.type==="or"&&r.expr.length===2&&r.expr[0].type==="const"&&r.expr[0].const==="0"&&r.expr[1].type==="const"&&r.expr[1].const==="[1-9][0-9]*"}function iZ(r){return r.type==="or"&&r.expr.length===2&&r.expr[0].type==="const"&&r.expr[0].const==="true"&&r.expr[1].type==="const"&&r.expr[1].const==="false"}function rZ(r){return r.type==="const"&&r.const===".*"}function Mc(r){return tZ(r)||rZ(r)?!1:iZ(r)?!0:r.type==="and"?r.expr.every(e=>Mc(e)):r.type==="or"?r.expr.every(e=>Mc(e)):r.type==="const"?!0:(()=>{throw new pB("Unknown expression type")})()}function y4(r){let e=rd(r.pattern);return Mc(e)}var AB=class extends fi{};function*w4(r){if(r.length===1)return yield*r[0];for(let e of r[0])for(let t of w4(r.slice(1)))yield`${e}${t}`}function*nZ(r){return yield*w4(r.expr.map(e=>[...kh(e)]))}function*sZ(r){for(let e of r.expr)yield*kh(e)}function*aZ(r){return yield r.const}function*kh(r){return r.type==="and"?yield*nZ(r):r.type==="or"?yield*sZ(r):r.type==="const"?yield*aZ(r):(()=>{throw new AB("Unknown expression")})()}function R0(r){let e=rd(r.pattern);return Mc(e)?[...kh(e)]:[]}function Fe(r,e){return L({[Z]:"Literal",const:r,type:typeof r},e)}function D0(r){return L({[Z]:"Boolean",type:"boolean"},r)}function nd(r){return L({[Z]:"BigInt",type:"bigint"},r)}function Xr(r){return L({[Z]:"Number",type:"number"},r)}function $n(r){return L({[Z]:"String",type:"string"},r)}function*oZ(r){let e=r.trim().replace(/"|'/g,"");return e==="boolean"?yield D0():e==="number"?yield Xr():e==="bigint"?yield nd():e==="string"?yield $n():yield(()=>{let t=e.split("|").map(i=>Fe(i.trim()));return t.length===0?Qe():t.length===1?t[0]:Qs(t)})()}function*cZ(r){if(r[1]!=="{"){let e=Fe("$"),t=gB(r.slice(1));return yield*[e,...t]}for(let e=2;e<r.length;e++)if(r[e]==="}"){let t=oZ(r.slice(2,e)),i=gB(r.slice(e+1));return yield*[...t,...i]}yield Fe(r)}function*gB(r){for(let e=0;e<r.length;e++)if(r[e]==="$"){let t=Fe(r.slice(0,e)),i=cZ(r.slice(e));return yield*[t,...i]}yield Fe(r)}function b4(r){return[...gB(r)]}var mB=class extends fi{};function uZ(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function v4(r,e){return Br(r)?r.pattern.slice(1,r.pattern.length-1):Te(r)?`(${r.anyOf.map(t=>v4(t,e)).join("|")})`:zn(r)?`${e}${Bh}`:Jn(r)?`${e}${Bh}`:Fc(r)?`${e}${Bh}`:ka(r)?`${e}${fB}`:vr(r)?`${e}${uZ(r.const.toString())}`:Ca(r)?`${e}${dB}`:(()=>{throw new mB(`Unexpected Kind '${r[Z]}'`)})()}function IB(r){return`^${r.map(e=>v4(e,"")).join("")}$`}function qc(r){let t=R0(r).map(i=>Fe(i));return Qs(t)}function O0(r,e){let t=et(r)?IB(b4(r)):IB(r);return L({[Z]:"TemplateLiteral",type:"string",pattern:t},e)}function lZ(r){return R0(r).map(t=>t.toString())}function dZ(r){let e=[];for(let t of r)e.push(...nr(t));return e}function fZ(r){return[r.toString()]}function nr(r){return[...new Set(Br(r)?lZ(r):Te(r)?dZ(r.anyOf):vr(r)?fZ(r.const):zn(r)?["[number]"]:Jn(r)?["[number]"]:[])]}function hZ(r,e,t){let i={};for(let n of Object.getOwnPropertyNames(e))i[n]=xo(r,nr(e[n]),t);return i}function pZ(r,e,t){return hZ(r,e.properties,t)}function x4(r,e,t){let i=pZ(r,e,t);return De(i)}function E4(r,e){return r.map(t=>C4(t,e))}function AZ(r){return r.filter(e=>!Io(e))}function gZ(r,e){return F0(AZ(E4(r,e)))}function mZ(r){return r.some(e=>Io(e))?[]:r}function IZ(r,e){return Qs(mZ(E4(r,e)))}function yZ(r,e){return e in r?r[e]:e==="[number]"?Qs(r):Qe()}function wZ(r,e){return e==="[number]"?r:Qe()}function bZ(r,e){return e in r?r[e]:Qe()}function C4(r,e){return yt(r)?gZ(r.allOf,e):Te(r)?IZ(r.anyOf,e):Er(r)?yZ(r.items??[],e):Vn(r)?wZ(r.items,e):Mt(r)?bZ(r.properties,e):Qe()}function yB(r,e){return e.map(t=>C4(r,t))}function B4(r,e){return Qs(yB(r,e))}function xo(r,e,t){if(_t(r)||_t(e)){let i="Index types using Ref parameters require both Type and Key to be of TSchema";if(!Cr(r)||!Cr(e))throw new fi(i);return st("Index",[r,e])}return dt(e)?x4(r,e,t):xr(e)?k4(r,e,t):L(Cr(e)?B4(r,nr(e)):B4(r,e),t)}function vZ(r,e,t){return{[e]:xo(r,[e],lt(t))}}function xZ(r,e,t){return e.reduce((i,n)=>({...i,...vZ(r,n,t)}),{})}function BZ(r,e,t){return xZ(r,e.keys,t)}function k4(r,e,t){let i=BZ(r,e,t);return De(i)}function sd(r,e){return L({[Z]:"Iterator",type:"Iterator",items:r},e)}function EZ(r){return globalThis.Object.keys(r).filter(e=>!rr(r[e]))}function CZ(r,e){let t=EZ(r),i=t.length>0?{[Z]:"Object",type:"object",required:t,properties:r}:{[Z]:"Object",type:"object",properties:r};return L(i,e)}var Ge=CZ;function P0(r,e){return L({[Z]:"Promise",type:"Promise",item:r},e)}function kZ(r){return L(wt(r,[Kn]))}function SZ(r){return L({...r,[Kn]:"Readonly"})}function _Z(r,e){return e===!1?kZ(r):SZ(r)}function sr(r,e){let t=e??!0;return dt(r)?S4(r,t):_Z(r,t)}function TZ(r,e){let t={};for(let i of globalThis.Object.getOwnPropertyNames(r))t[i]=sr(r[i],e);return t}function QZ(r,e){return TZ(r.properties,e)}function S4(r,e){let t=QZ(r,e);return De(t)}function Zr(r,e){return L(r.length>0?{[Z]:"Tuple",type:"array",items:r,additionalItems:!1,minItems:r.length,maxItems:r.length}:{[Z]:"Tuple",type:"array",minItems:r.length,maxItems:r.length},e)}function _4(r,e){return r in e?en(r,e[r]):De(e)}function NZ(r){return{[r]:Fe(r)}}function RZ(r){let e={};for(let t of r)e[t]=Fe(t);return e}function DZ(r,e){return f4(e,r)?NZ(r):RZ(e)}function OZ(r,e){let t=DZ(r,e);return _4(r,t)}function Sh(r,e){return e.map(t=>en(r,t))}function FZ(r,e){let t={};for(let i of globalThis.Object.getOwnPropertyNames(e))t[i]=en(r,e[i]);return t}function en(r,e){let t={...e};return rr(e)?Ti(en(r,wt(e,[bi]))):Xl(e)?sr(en(r,wt(e,[Kn]))):dt(e)?_4(r,e.properties):xr(e)?OZ(r,e.keys):Wn(e)?td(Sh(r,e.parameters),en(r,e.returns),t):Gn(e)?Ts(Sh(r,e.parameters),en(r,e.returns),t):Oc(e)?ed(en(r,e.items),t):Pc(e)?sd(en(r,e.items),t):yt(e)?Qi(Sh(r,e.allOf),t):Te(e)?Pe(Sh(r,e.anyOf),t):Er(e)?Zr(Sh(r,e.items??[]),t):Mt(e)?Ge(FZ(r,e.properties),t):Vn(e)?Zl(en(r,e.items),t):Uc(e)?P0(en(r,e.item),t):e}function PZ(r,e){let t={};for(let i of r)t[i]=en(i,e);return t}function T4(r,e,t){let i=Cr(r)?nr(r):r,n=e({[Z]:"MappedKey",keys:i}),s=PZ(i,n);return Ge(s,t)}function UZ(r){return L(wt(r,[bi]))}function HZ(r){return L({...r,[bi]:"Optional"})}function MZ(r,e){return e===!1?UZ(r):HZ(r)}function Ti(r,e){let t=e??!0;return dt(r)?Q4(r,t):MZ(r,t)}function qZ(r,e){let t={};for(let i of globalThis.Object.getOwnPropertyNames(r))t[i]=Ti(r[i],e);return t}function LZ(r,e){return qZ(r.properties,e)}function Q4(r,e){let t=LZ(r,e);return De(t)}function _h(r,e={}){let t=r.every(n=>Mt(n)),i=Cr(e.unevaluatedProperties)?{unevaluatedProperties:e.unevaluatedProperties}:{};return L(e.unevaluatedProperties===!1||Cr(e.unevaluatedProperties)||t?{...i,[Z]:"Intersect",type:"object",allOf:r}:{...i,[Z]:"Intersect",allOf:r},e)}function KZ(r){return r.every(e=>rr(e))}function VZ(r){return wt(r,[bi])}function N4(r){return r.map(e=>rr(e)?VZ(e):e)}function jZ(r,e){return KZ(r)?Ti(_h(N4(r),e)):_h(N4(r),e)}function F0(r,e={}){if(r.length===1)return L(r[0],e);if(r.length===0)return Qe(e);if(r.some(t=>yo(t)))throw new Error("Cannot intersect transform types");return jZ(r,e)}function Qi(r,e){if(r.length===1)return L(r[0],e);if(r.length===0)return Qe(e);if(r.some(t=>yo(t)))throw new Error("Cannot intersect transform types");return _h(r,e)}function Ns(...r){let[e,t]=typeof r[0]=="string"?[r[0],r[1]]:[r[0].$id,r[1]];if(typeof e!="string")throw new fi("Ref: $ref must be a string");return L({[Z]:"Ref",$ref:e},t)}function WZ(r,e){return st("Awaited",[st(r,e)])}function GZ(r){return st("Awaited",[Ns(r)])}function JZ(r){return Qi(R4(r))}function zZ(r){return Pe(R4(r))}function $Z(r){return ad(r)}function R4(r){return r.map(e=>ad(e))}function ad(r,e){return L(jn(r)?WZ(r.target,r.parameters):yt(r)?JZ(r.allOf):Te(r)?zZ(r.anyOf):Uc(r)?$Z(r.item):_t(r)?GZ(r.$ref):r,e)}function D4(r){let e=[];for(let t of r)e.push(Th(t));return e}function YZ(r){let e=D4(r);return A4(e)}function XZ(r){let e=D4(r);return p4(e)}function ZZ(r){return r.map((e,t)=>t.toString())}function eee(r){return["[number]"]}function tee(r){return globalThis.Object.getOwnPropertyNames(r)}function iee(r){return ree?globalThis.Object.getOwnPropertyNames(r).map(t=>t[0]==="^"&&t[t.length-1]==="$"?t.slice(1,t.length-1):t):[]}function Th(r){return yt(r)?YZ(r.allOf):Te(r)?XZ(r.anyOf):Er(r)?ZZ(r.items??[]):Vn(r)?eee(r.items):Mt(r)?tee(r.properties):Hc(r)?iee(r.patternProperties):[]}var ree=!1;function nee(r,e){return st("KeyOf",[st(r,e)])}function see(r){return st("KeyOf",[Ns(r)])}function aee(r,e){let t=Th(r),i=oee(t),n=Qs(i);return L(n,e)}function oee(r){return r.map(e=>e==="[number]"?Xr():Fe(e))}function od(r,e){return jn(r)?nee(r.target,r.parameters):_t(r)?see(r.$ref):dt(r)?O4(r,e):aee(r,e)}function cee(r,e){let t={};for(let i of globalThis.Object.getOwnPropertyNames(r))t[i]=od(r[i],lt(e));return t}function uee(r,e){return cee(r.properties,e)}function O4(r,e){let t=uee(r,e);return De(t)}function lee(r){let e=[];for(let t of r)e.push(...Th(t));return h4(e)}function dee(r){return r.filter(e=>!Io(e))}function fee(r,e){let t=[];for(let i of r)t.push(...yB(i,[e]));return dee(t)}function hee(r,e){let t={};for(let i of e)t[i]=F0(fee(r,i));return t}function F4(r,e){let t=lee(r),i=hee(r,t);return Ge(i,e)}function U0(r){return L({[Z]:"Date",type:"Date"},r)}function H0(r){return L({[Z]:"Null",type:"null"},r)}function M0(r){return L({[Z]:"Symbol",type:"symbol"},r)}function q0(r){return L({[Z]:"Undefined",type:"undefined"},r)}function L0(r){return L({[Z]:"Uint8Array",type:"Uint8Array"},r)}function Bo(r){return L({[Z]:"Unknown"},r)}function pee(r){return r.map(e=>wB(e,!1))}function Aee(r){let e={};for(let t of globalThis.Object.getOwnPropertyNames(r))e[t]=sr(wB(r[t],!1));return e}function K0(r,e){return e===!0?r:sr(r)}function wB(r,e){return Zx(r)?K0(vo(),e):tB(r)?K0(vo(),e):Ut(r)?sr(Zr(pee(r))):Ea(r)?L0():Dc(r)?U0():je(r)?K0(Ge(Aee(r)),e):eB(r)?K0(Ts([],Bo()),e):Ht(r)?q0():iB(r)?H0():rB(r)?M0():gh(r)?nd():br(r)?Fe(r):Ba(r)?Fe(r):et(r)?Fe(r):Ge({})}function P4(r,e){return L(wB(r,!0),e)}function U4(r,e){return Wn(r)?Zr(r.parameters,e):Qe(e)}function H4(r,e){if(Ht(r))throw new Error("Enum undefined or empty");let t=globalThis.Object.getOwnPropertyNames(r).filter(s=>isNaN(s)).map(s=>r[s]),n=[...new Set(t)].map(s=>Fe(s));return Pe(n,{...e,[Yr]:"Enum"})}var vB=class extends fi{},V;(function(r){r[r.Union=0]="Union",r[r.True=1]="True",r[r.False=2]="False"})(V||(V={}));function tn(r){return r===V.False?r:V.True}function cd(r){throw new vB(r)}function $t(r){return Q.IsNever(r)||Q.IsIntersect(r)||Q.IsUnion(r)||Q.IsUnknown(r)||Q.IsAny(r)}function Yt(r,e){return Q.IsNever(e)?W4(r,e):Q.IsIntersect(e)?V0(r,e):Q.IsUnion(e)?CB(r,e):Q.IsUnknown(e)?$4(r,e):Q.IsAny(e)?EB(r,e):cd("StructuralRight")}function EB(r,e){return V.True}function gee(r,e){return Q.IsIntersect(e)?V0(r,e):Q.IsUnion(e)&&e.anyOf.some(t=>Q.IsAny(t)||Q.IsUnknown(t))?V.True:Q.IsUnion(e)?V.Union:Q.IsUnknown(e)||Q.IsAny(e)?V.True:V.Union}function mee(r,e){return Q.IsUnknown(r)?V.False:Q.IsAny(r)?V.Union:Q.IsNever(r)?V.True:V.False}function Iee(r,e){return Q.IsObject(e)&&j0(e)?V.True:$t(e)?Yt(r,e):Q.IsArray(e)?tn(Je(r.items,e.items)):V.False}function yee(r,e){return $t(e)?Yt(r,e):Q.IsAsyncIterator(e)?tn(Je(r.items,e.items)):V.False}function wee(r,e){return $t(e)?Yt(r,e):Q.IsObject(e)?Ni(r,e):Q.IsRecord(e)?rn(r,e):Q.IsBigInt(e)?V.True:V.False}function V4(r,e){return Q.IsLiteralBoolean(r)||Q.IsBoolean(r)?V.True:V.False}function bee(r,e){return $t(e)?Yt(r,e):Q.IsObject(e)?Ni(r,e):Q.IsRecord(e)?rn(r,e):Q.IsBoolean(e)?V.True:V.False}function vee(r,e){return $t(e)?Yt(r,e):Q.IsObject(e)?Ni(r,e):Q.IsConstructor(e)?r.parameters.length>e.parameters.length?V.False:r.parameters.every((t,i)=>tn(Je(e.parameters[i],t))===V.True)?tn(Je(r.returns,e.returns)):V.False:V.False}function xee(r,e){return $t(e)?Yt(r,e):Q.IsObject(e)?Ni(r,e):Q.IsRecord(e)?rn(r,e):Q.IsDate(e)?V.True:V.False}function Bee(r,e){return $t(e)?Yt(r,e):Q.IsObject(e)?Ni(r,e):Q.IsFunction(e)?r.parameters.length>e.parameters.length?V.False:r.parameters.every((t,i)=>tn(Je(e.parameters[i],t))===V.True)?tn(Je(r.returns,e.returns)):V.False:V.False}function j4(r,e){return Q.IsLiteral(r)&&_i.IsNumber(r.const)||Q.IsNumber(r)||Q.IsInteger(r)?V.True:V.False}function Eee(r,e){return Q.IsInteger(e)||Q.IsNumber(e)?V.True:$t(e)?Yt(r,e):Q.IsObject(e)?Ni(r,e):Q.IsRecord(e)?rn(r,e):V.False}function V0(r,e){return e.allOf.every(t=>Je(r,t)===V.True)?V.True:V.False}function Cee(r,e){return r.allOf.some(t=>Je(t,e)===V.True)?V.True:V.False}function kee(r,e){return $t(e)?Yt(r,e):Q.IsIterator(e)?tn(Je(r.items,e.items)):V.False}function See(r,e){return Q.IsLiteral(e)&&e.const===r.const?V.True:$t(e)?Yt(r,e):Q.IsObject(e)?Ni(r,e):Q.IsRecord(e)?rn(r,e):Q.IsString(e)?z4(r,e):Q.IsNumber(e)?G4(r,e):Q.IsInteger(e)?j4(r,e):Q.IsBoolean(e)?V4(r,e):V.False}function W4(r,e){return V.False}function _ee(r,e){return V.True}function M4(r){let[e,t]=[r,0];for(;Q.IsNot(e);)e=e.not,t+=1;return t%2===0?e:Bo()}function Tee(r,e){return Q.IsNot(r)?Je(M4(r),e):Q.IsNot(e)?Je(r,M4(e)):cd("Invalid fallthrough for Not")}function Qee(r,e){return $t(e)?Yt(r,e):Q.IsObject(e)?Ni(r,e):Q.IsRecord(e)?rn(r,e):Q.IsNull(e)?V.True:V.False}function G4(r,e){return Q.IsLiteralNumber(r)||Q.IsNumber(r)||Q.IsInteger(r)?V.True:V.False}function Nee(r,e){return $t(e)?Yt(r,e):Q.IsObject(e)?Ni(r,e):Q.IsRecord(e)?rn(r,e):Q.IsInteger(e)||Q.IsNumber(e)?V.True:V.False}function ar(r,e){return Object.getOwnPropertyNames(r.properties).length===e}function q4(r){return j0(r)}function L4(r){return ar(r,0)||ar(r,1)&&"description"in r.properties&&Q.IsUnion(r.properties.description)&&r.properties.description.anyOf.length===2&&(Q.IsString(r.properties.description.anyOf[0])&&Q.IsUndefined(r.properties.description.anyOf[1])||Q.IsString(r.properties.description.anyOf[1])&&Q.IsUndefined(r.properties.description.anyOf[0]))}function bB(r){return ar(r,0)}function K4(r){return ar(r,0)}function Ree(r){return ar(r,0)}function Dee(r){return ar(r,0)}function Oee(r){return j0(r)}function Fee(r){let e=Xr();return ar(r,0)||ar(r,1)&&"length"in r.properties&&tn(Je(r.properties.length,e))===V.True}function Pee(r){return ar(r,0)}function j0(r){let e=Xr();return ar(r,0)||ar(r,1)&&"length"in r.properties&&tn(Je(r.properties.length,e))===V.True}function Uee(r){let e=Ts([vo()],vo());return ar(r,0)||ar(r,1)&&"then"in r.properties&&tn(Je(r.properties.then,e))===V.True}function J4(r,e){return Je(r,e)===V.False||Q.IsOptional(r)&&!Q.IsOptional(e)?V.False:V.True}function Ni(r,e){return Q.IsUnknown(r)?V.False:Q.IsAny(r)?V.Union:Q.IsNever(r)||Q.IsLiteralString(r)&&q4(e)||Q.IsLiteralNumber(r)&&bB(e)||Q.IsLiteralBoolean(r)&&K4(e)||Q.IsSymbol(r)&&L4(e)||Q.IsBigInt(r)&&Ree(e)||Q.IsString(r)&&q4(e)||Q.IsSymbol(r)&&L4(e)||Q.IsNumber(r)&&bB(e)||Q.IsInteger(r)&&bB(e)||Q.IsBoolean(r)&&K4(e)||Q.IsUint8Array(r)&&Oee(e)||Q.IsDate(r)&&Dee(e)||Q.IsConstructor(r)&&Pee(e)||Q.IsFunction(r)&&Fee(e)?V.True:Q.IsRecord(r)&&Q.IsString(xB(r))?e[Yr]==="Record"?V.True:V.False:Q.IsRecord(r)&&Q.IsNumber(xB(r))&&ar(e,0)?V.True:V.False}function Hee(r,e){return $t(e)?Yt(r,e):Q.IsRecord(e)?rn(r,e):Q.IsObject(e)?(()=>{for(let t of Object.getOwnPropertyNames(e.properties)){if(!(t in r.properties)&&!Q.IsOptional(e.properties[t]))return V.False;if(Q.IsOptional(e.properties[t]))return V.True;if(J4(r.properties[t],e.properties[t])===V.False)return V.False}return V.True})():V.False}function Mee(r,e){return $t(e)?Yt(r,e):Q.IsObject(e)&&Uee(e)?V.True:Q.IsPromise(e)?tn(Je(r.item,e.item)):V.False}function xB(r){return wo in r.patternProperties?Xr():bo in r.patternProperties?$n():cd("Unknown record key pattern")}function BB(r){return wo in r.patternProperties?r.patternProperties[wo]:bo in r.patternProperties?r.patternProperties[bo]:cd("Unable to get record value schema")}function rn(r,e){let[t,i]=[xB(e),BB(e)];return Q.IsLiteralString(r)&&Q.IsNumber(t)&&tn(Je(r,i))===V.True?V.True:Q.IsUint8Array(r)&&Q.IsNumber(t)||Q.IsString(r)&&Q.IsNumber(t)||Q.IsArray(r)&&Q.IsNumber(t)?Je(r,i):Q.IsObject(r)?(()=>{for(let n of Object.getOwnPropertyNames(r.properties))if(J4(i,r.properties[n])===V.False)return V.False;return V.True})():V.False}function qee(r,e){return $t(e)?Yt(r,e):Q.IsObject(e)?Ni(r,e):Q.IsRecord(e)?Je(BB(r),BB(e)):V.False}function Lee(r,e){let t=Q.IsRegExp(r)?$n():r,i=Q.IsRegExp(e)?$n():e;return Je(t,i)}function z4(r,e){return Q.IsLiteral(r)&&_i.IsString(r.const)||Q.IsString(r)?V.True:V.False}function Kee(r,e){return $t(e)?Yt(r,e):Q.IsObject(e)?Ni(r,e):Q.IsRecord(e)?rn(r,e):Q.IsString(e)?V.True:V.False}function Vee(r,e){return $t(e)?Yt(r,e):Q.IsObject(e)?Ni(r,e):Q.IsRecord(e)?rn(r,e):Q.IsSymbol(e)?V.True:V.False}function jee(r,e){return Q.IsTemplateLiteral(r)?Je(qc(r),e):Q.IsTemplateLiteral(e)?Je(r,qc(e)):cd("Invalid fallthrough for TemplateLiteral")}function Wee(r,e){return Q.IsArray(e)&&r.items!==void 0&&r.items.every(t=>Je(t,e.items)===V.True)}function Gee(r,e){return Q.IsNever(r)?V.True:Q.IsUnknown(r)?V.False:Q.IsAny(r)?V.Union:V.False}function Jee(r,e){return $t(e)?Yt(r,e):Q.IsObject(e)&&j0(e)||Q.IsArray(e)&&Wee(r,e)?V.True:Q.IsTuple(e)?_i.IsUndefined(r.items)&&!_i.IsUndefined(e.items)||!_i.IsUndefined(r.items)&&_i.IsUndefined(e.items)?V.False:_i.IsUndefined(r.items)&&!_i.IsUndefined(e.items)||r.items.every((t,i)=>Je(t,e.items[i])===V.True)?V.True:V.False:V.False}function zee(r,e){return $t(e)?Yt(r,e):Q.IsObject(e)?Ni(r,e):Q.IsRecord(e)?rn(r,e):Q.IsUint8Array(e)?V.True:V.False}function $ee(r,e){return $t(e)?Yt(r,e):Q.IsObject(e)?Ni(r,e):Q.IsRecord(e)?rn(r,e):Q.IsVoid(e)?Zee(r,e):Q.IsUndefined(e)?V.True:V.False}function CB(r,e){return e.anyOf.some(t=>Je(r,t)===V.True)?V.True:V.False}function Yee(r,e){return r.anyOf.every(t=>Je(t,e)===V.True)?V.True:V.False}function $4(r,e){return V.True}function Xee(r,e){return Q.IsNever(e)?W4(r,e):Q.IsIntersect(e)?V0(r,e):Q.IsUnion(e)?CB(r,e):Q.IsAny(e)?EB(r,e):Q.IsString(e)?z4(r,e):Q.IsNumber(e)?G4(r,e):Q.IsInteger(e)?j4(r,e):Q.IsBoolean(e)?V4(r,e):Q.IsArray(e)?mee(r,e):Q.IsTuple(e)?Gee(r,e):Q.IsObject(e)?Ni(r,e):Q.IsUnknown(e)?V.True:V.False}function Zee(r,e){return Q.IsUndefined(r)||Q.IsUndefined(r)?V.True:V.False}function ete(r,e){return Q.IsIntersect(e)?V0(r,e):Q.IsUnion(e)?CB(r,e):Q.IsUnknown(e)?$4(r,e):Q.IsAny(e)?EB(r,e):Q.IsObject(e)?Ni(r,e):Q.IsVoid(e)?V.True:V.False}function Je(r,e){return Q.IsTemplateLiteral(r)||Q.IsTemplateLiteral(e)?jee(r,e):Q.IsRegExp(r)||Q.IsRegExp(e)?Lee(r,e):Q.IsNot(r)||Q.IsNot(e)?Tee(r,e):Q.IsAny(r)?gee(r,e):Q.IsArray(r)?Iee(r,e):Q.IsBigInt(r)?wee(r,e):Q.IsBoolean(r)?bee(r,e):Q.IsAsyncIterator(r)?yee(r,e):Q.IsConstructor(r)?vee(r,e):Q.IsDate(r)?xee(r,e):Q.IsFunction(r)?Bee(r,e):Q.IsInteger(r)?Eee(r,e):Q.IsIntersect(r)?Cee(r,e):Q.IsIterator(r)?kee(r,e):Q.IsLiteral(r)?See(r,e):Q.IsNever(r)?_ee(r,e):Q.IsNull(r)?Qee(r,e):Q.IsNumber(r)?Nee(r,e):Q.IsObject(r)?Hee(r,e):Q.IsRecord(r)?qee(r,e):Q.IsString(r)?Kee(r,e):Q.IsSymbol(r)?Vee(r,e):Q.IsTuple(r)?Jee(r,e):Q.IsPromise(r)?Mee(r,e):Q.IsUint8Array(r)?zee(r,e):Q.IsUndefined(r)?$ee(r,e):Q.IsUnion(r)?Yee(r,e):Q.IsUnknown(r)?Xee(r,e):Q.IsVoid(r)?ete(r,e):cd(`Unknown left type operand '${r[Z]}'`)}function Eo(r,e){return Je(r,e)}function tte(r,e,t,i,n){let s={};for(let a of globalThis.Object.getOwnPropertyNames(r))s[a]=ud(r[a],e,t,i,lt(n));return s}function ite(r,e,t,i,n){return tte(r.properties,e,t,i,n)}function Y4(r,e,t,i,n){let s=ite(r,e,t,i,n);return De(s)}function rte(r,e,t,i){let n=Eo(r,e);return n===V.Union?Pe([t,i]):n===V.True?t:i}function ud(r,e,t,i,n){return dt(r)?Y4(r,e,t,i,n):xr(r)?L(X4(r,e,t,i,n)):L(rte(r,e,t,i),n)}function nte(r,e,t,i,n){return{[r]:ud(Fe(r),e,t,i,lt(n))}}function ste(r,e,t,i,n){return r.reduce((s,a)=>({...s,...nte(a,e,t,i,n)}),{})}function ate(r,e,t,i,n){return ste(r.keys,e,t,i,n)}function X4(r,e,t,i,n){let s=ate(r,e,t,i,n);return De(s)}function Z4(r,e){return ld(qc(r),e)}function ote(r,e){let t=r.filter(i=>Eo(i,e)===V.False);return t.length===1?t[0]:Pe(t)}function ld(r,e,t={}){return Br(r)?L(Z4(r,e),t):dt(r)?L(eD(r,e),t):L(Te(r)?ote(r.anyOf,e):Eo(r,e)!==V.False?Qe():r,t)}function cte(r,e){let t={};for(let i of globalThis.Object.getOwnPropertyNames(r))t[i]=ld(r[i],e);return t}function ute(r,e){return cte(r.properties,e)}function eD(r,e){let t=ute(r,e);return De(t)}function tD(r,e){return dd(qc(r),e)}function lte(r,e){let t=r.filter(i=>Eo(i,e)!==V.False);return t.length===1?t[0]:Pe(t)}function dd(r,e,t){return Br(r)?L(tD(r,e),t):dt(r)?L(iD(r,e),t):L(Te(r)?lte(r.anyOf,e):Eo(r,e)!==V.False?r:Qe(),t)}function dte(r,e){let t={};for(let i of globalThis.Object.getOwnPropertyNames(r))t[i]=dd(r[i],e);return t}function fte(r,e){return dte(r.properties,e)}function iD(r,e){let t=fte(r,e);return De(t)}function rD(r,e){return Wn(r)?L(r.returns,e):Qe(e)}function W0(r){return sr(Ti(r))}function Lc(r,e,t){return L({[Z]:"Record",type:"object",patternProperties:{[r]:e}},t)}function kB(r,e,t){let i={};for(let n of r)i[n]=e;return Ge(i,{...t,[Yr]:"Record"})}function hte(r,e,t){return y4(r)?kB(nr(r),e,t):Lc(r.pattern,e,t)}function pte(r,e,t){return kB(nr(Pe(r)),e,t)}function Ate(r,e,t){return kB([r.toString()],e,t)}function gte(r,e,t){return Lc(r.source,e,t)}function mte(r,e,t){let i=Ht(r.pattern)?bo:r.pattern;return Lc(i,e,t)}function Ite(r,e,t){return Lc(bo,e,t)}function yte(r,e,t){return Lc(d4,e,t)}function wte(r,e,t){return Ge({true:e,false:e},t)}function bte(r,e,t){return Lc(wo,e,t)}function vte(r,e,t){return Lc(wo,e,t)}function G0(r,e,t={}){return Te(r)?pte(r.anyOf,e,t):Br(r)?hte(r,e,t):vr(r)?Ate(r.const,e,t):Ca(r)?wte(r,e,t):Jn(r)?bte(r,e,t):zn(r)?vte(r,e,t):aB(r)?gte(r,e,t):ka(r)?mte(r,e,t):nB(r)?Ite(r,e,t):Io(r)?yte(r,e,t):Qe(t)}function J0(r){return globalThis.Object.getOwnPropertyNames(r.patternProperties)[0]}function nD(r){let e=J0(r);return e===bo?$n():e===wo?Xr():$n({pattern:e})}function z0(r){return r.patternProperties[J0(r)]}function xte(r,e){return e.parameters=Qh(r,e.parameters),e.returns=Yn(r,e.returns),e}function Bte(r,e){return e.parameters=Qh(r,e.parameters),e.returns=Yn(r,e.returns),e}function Ete(r,e){return e.allOf=Qh(r,e.allOf),e}function Cte(r,e){return e.anyOf=Qh(r,e.anyOf),e}function kte(r,e){return Ht(e.items)||(e.items=Qh(r,e.items)),e}function Ste(r,e){return e.items=Yn(r,e.items),e}function _te(r,e){return e.items=Yn(r,e.items),e}function Tte(r,e){return e.items=Yn(r,e.items),e}function Qte(r,e){return e.item=Yn(r,e.item),e}function Nte(r,e){let t=Fte(r,e.properties);return{...e,...Ge(t)}}function Rte(r,e){let t=Yn(r,nD(e)),i=Yn(r,z0(e)),n=G0(t,i);return{...e,...n}}function Dte(r,e){return e.index in r?r[e.index]:Bo()}function Ote(r,e){let t=Xl(e),i=rr(e),n=Yn(r,e);return t&&i?W0(n):t&&!i?sr(n):!t&&i?Ti(n):n}function Fte(r,e){return globalThis.Object.getOwnPropertyNames(e).reduce((t,i)=>({...t,[i]:Ote(r,e[i])}),{})}function Qh(r,e){return e.map(t=>Yn(r,t))}function Yn(r,e){return Wn(e)?xte(r,e):Gn(e)?Bte(r,e):yt(e)?Ete(r,e):Te(e)?Cte(r,e):Er(e)?kte(r,e):Vn(e)?Ste(r,e):Oc(e)?_te(r,e):Pc(e)?Tte(r,e):Uc(e)?Qte(r,e):Mt(e)?Nte(r,e):Hc(e)?Rte(r,e):sB(e)?Dte(r,e):e}function sD(r,e){return Yn(e,Yl(r))}function aD(r){return L({[Z]:"Integer",type:"integer"},r)}function Pte(r,e,t){return{[r]:Xn(Fe(r),e,lt(t))}}function Ute(r,e,t){return r.reduce((n,s)=>({...n,...Pte(s,e,t)}),{})}function Hte(r,e,t){return Ute(r.keys,e,t)}function oD(r,e,t){let i=Hte(r,e,t);return De(i)}function Mte(r){let[e,t]=[r.slice(0,1),r.slice(1)];return[e.toLowerCase(),t].join("")}function qte(r){let[e,t]=[r.slice(0,1),r.slice(1)];return[e.toUpperCase(),t].join("")}function Lte(r){return r.toUpperCase()}function Kte(r){return r.toLowerCase()}function Vte(r,e,t){let i=rd(r.pattern);if(!Mc(i))return{...r,pattern:cD(r.pattern,e)};let a=[...kh(i)].map(u=>Fe(u)),o=uD(a,e),c=Pe(o);return O0([c],t)}function cD(r,e){return typeof r=="string"?e==="Uncapitalize"?Mte(r):e==="Capitalize"?qte(r):e==="Uppercase"?Lte(r):e==="Lowercase"?Kte(r):r:r.toString()}function uD(r,e){return r.map(t=>Xn(t,e))}function Xn(r,e,t={}){return xr(r)?oD(r,e,t):Br(r)?Vte(r,e,t):Te(r)?Pe(uD(r.anyOf,e),t):vr(r)?Fe(cD(r.const,e),t):L(r,t)}function lD(r,e={}){return Xn(r,"Capitalize",e)}function dD(r,e={}){return Xn(r,"Lowercase",e)}function fD(r,e={}){return Xn(r,"Uncapitalize",e)}function hD(r,e={}){return Xn(r,"Uppercase",e)}function jte(r,e,t){let i={};for(let n of globalThis.Object.getOwnPropertyNames(r))i[n]=Co(r[n],e,lt(t));return i}function Wte(r,e,t){return jte(r.properties,e,t)}function pD(r,e,t){let i=Wte(r,e,t);return De(i)}function Gte(r,e){return r.map(t=>SB(t,e))}function Jte(r,e){return r.map(t=>SB(t,e))}function zte(r,e){let{[e]:t,...i}=r;return i}function $te(r,e){return e.reduce((t,i)=>zte(t,i),r)}function Yte(r,e,t){let i=wt(r,[zt,"$id","required","properties"]),n=$te(t,e);return Ge(n,i)}function Xte(r){let e=r.reduce((t,i)=>T0(i)?[...t,Fe(i)]:t,[]);return Pe(e)}function SB(r,e){return yt(r)?Qi(Gte(r.allOf,e)):Te(r)?Pe(Jte(r.anyOf,e)):Mt(r)?Yte(r,e,r.properties):Ge({})}function Co(r,e,t){let i=Ut(e)?Xte(e):e,n=Cr(e)?nr(e):e,s=_t(r),a=_t(e);return dt(r)?pD(r,n,t):xr(e)?AD(r,e,t):s&&a?st("Omit",[r,i],t):!s&&a?st("Omit",[r,i],t):s&&!a?st("Omit",[r,i],t):L({...SB(r,n),...t})}function Zte(r,e,t){return{[e]:Co(r,[e],lt(t))}}function eie(r,e,t){return e.reduce((i,n)=>({...i,...Zte(r,n,t)}),{})}function tie(r,e,t){return eie(r,e.keys,t)}function AD(r,e,t){let i=tie(r,e,t);return De(i)}function iie(r,e,t){let i={};for(let n of globalThis.Object.getOwnPropertyNames(r))i[n]=ko(r[n],e,lt(t));return i}function rie(r,e,t){return iie(r.properties,e,t)}function gD(r,e,t){let i=rie(r,e,t);return De(i)}function nie(r,e){return r.map(t=>_B(t,e))}function sie(r,e){return r.map(t=>_B(t,e))}function aie(r,e){let t={};for(let i of e)i in r&&(t[i]=r[i]);return t}function oie(r,e,t){let i=wt(r,[zt,"$id","required","properties"]),n=aie(t,e);return Ge(n,i)}function cie(r){let e=r.reduce((t,i)=>T0(i)?[...t,Fe(i)]:t,[]);return Pe(e)}function _B(r,e){return yt(r)?Qi(nie(r.allOf,e)):Te(r)?Pe(sie(r.anyOf,e)):Mt(r)?oie(r,e,r.properties):Ge({})}function ko(r,e,t){let i=Ut(e)?cie(e):e,n=Cr(e)?nr(e):e,s=_t(r),a=_t(e);return dt(r)?gD(r,n,t):xr(e)?mD(r,e,t):s&&a?st("Pick",[r,i],t):!s&&a?st("Pick",[r,i],t):s&&!a?st("Pick",[r,i],t):L({..._B(r,n),...t})}function uie(r,e,t){return{[e]:ko(r,[e],lt(t))}}function lie(r,e,t){return e.reduce((i,n)=>({...i,...uie(r,n,t)}),{})}function die(r,e,t){return lie(r,e.keys,t)}function mD(r,e,t){let i=die(r,e,t);return De(i)}function fie(r,e){return st("Partial",[st(r,e)])}function hie(r){return st("Partial",[Ns(r)])}function pie(r){let e={};for(let t of globalThis.Object.getOwnPropertyNames(r))e[t]=Ti(r[t]);return e}function Aie(r,e){let t=wt(r,[zt,"$id","required","properties"]),i=pie(e);return Ge(i,t)}function ID(r){return r.map(e=>yD(e))}function yD(r){return jn(r)?fie(r.target,r.parameters):_t(r)?hie(r.$ref):yt(r)?Qi(ID(r.allOf)):Te(r)?Pe(ID(r.anyOf)):Mt(r)?Aie(r,r.properties):Fc(r)||Ca(r)||Jn(r)||vr(r)||yh(r)||zn(r)||ka(r)||wh(r)||bh(r)?r:Ge({})}function fd(r,e){return dt(r)?wD(r,e):L({...yD(r),...e})}function gie(r,e){let t={};for(let i of globalThis.Object.getOwnPropertyNames(r))t[i]=fd(r[i],lt(e));return t}function mie(r,e){return gie(r.properties,e)}function wD(r,e){let t=mie(r,e);return De(t)}function Iie(r,e){return st("Required",[st(r,e)])}function yie(r){return st("Required",[Ns(r)])}function wie(r){let e={};for(let t of globalThis.Object.getOwnPropertyNames(r))e[t]=wt(r[t],[bi]);return e}function bie(r,e){let t=wt(r,[zt,"$id","required","properties"]),i=wie(e);return Ge(i,t)}function bD(r){return r.map(e=>vD(e))}function vD(r){return jn(r)?Iie(r.target,r.parameters):_t(r)?yie(r.$ref):yt(r)?Qi(bD(r.allOf)):Te(r)?Pe(bD(r.anyOf)):Mt(r)?bie(r,r.properties):Fc(r)||Ca(r)||Jn(r)||vr(r)||yh(r)||zn(r)||ka(r)||wh(r)||bh(r)?r:Ge({})}function hd(r,e){return dt(r)?xD(r,e):L({...vD(r),...e})}function vie(r,e){let t={};for(let i of globalThis.Object.getOwnPropertyNames(r))t[i]=hd(r[i],e);return t}function xie(r,e){return vie(r.properties,e)}function xD(r,e){let t=xie(r,e);return De(t)}function Bie(r,e){return e.map(t=>_t(t)?TB(r,t.$ref):kr(r,t))}function TB(r,e){return e in r?_t(r[e])?TB(r,r[e].$ref):kr(r,r[e]):Qe()}function Eie(r){return ad(r[0])}function Cie(r){return xo(r[0],r[1])}function kie(r){return od(r[0])}function Sie(r){return fd(r[0])}function _ie(r){return Co(r[0],r[1])}function Tie(r){return ko(r[0],r[1])}function Qie(r){return hd(r[0])}function Nie(r,e,t){let i=Bie(r,t);return e==="Awaited"?Eie(i):e==="Index"?Cie(i):e==="KeyOf"?kie(i):e==="Partial"?Sie(i):e==="Omit"?_ie(i):e==="Pick"?Tie(i):e==="Required"?Qie(i):Qe()}function Rie(r,e){return Zl(kr(r,e))}function Die(r,e){return ed(kr(r,e))}function Oie(r,e,t){return td(Nh(r,e),kr(r,t))}function Fie(r,e,t){return Ts(Nh(r,e),kr(r,t))}function Pie(r,e){return Qi(Nh(r,e))}function Uie(r,e){return sd(kr(r,e))}function Hie(r,e){return Ge(globalThis.Object.keys(e).reduce((t,i)=>({...t,[i]:kr(r,e[i])}),{}))}function Mie(r,e){let[t,i]=[kr(r,z0(e)),J0(e)],n=Yl(e);return n.patternProperties[i]=t,n}function qie(r,e){return _t(e)?{...TB(r,e.$ref),[zt]:e[zt]}:e}function Lie(r,e){return Zr(Nh(r,e))}function Kie(r,e){return Pe(Nh(r,e))}function Nh(r,e){return e.map(t=>kr(r,t))}function kr(r,e){return rr(e)?L(kr(r,wt(e,[bi])),e):Xl(e)?L(kr(r,wt(e,[Kn])),e):yo(e)?L(qie(r,e),e):Vn(e)?L(Rie(r,e.items),e):Oc(e)?L(Die(r,e.items),e):jn(e)?L(Nie(r,e.target,e.parameters)):Wn(e)?L(Oie(r,e.parameters,e.returns),e):Gn(e)?L(Fie(r,e.parameters,e.returns),e):yt(e)?L(Pie(r,e.allOf),e):Pc(e)?L(Uie(r,e.items),e):Mt(e)?L(Hie(r,e.properties),e):Hc(e)?L(Mie(r,e)):Er(e)?L(Lie(r,e.items||[]),e):Te(e)?L(Kie(r,e.anyOf),e):e}function Vie(r,e){return e in r?kr(r,r[e]):Qe()}function BD(r){return globalThis.Object.getOwnPropertyNames(r).reduce((e,t)=>({...e,[t]:Vie(r,t)}),{})}var QB=class{constructor(e){let t=BD(e),i=this.WithIdentifiers(t);this.$defs=i}Import(e,t){let i={...this.$defs,[e]:L(this.$defs[e],t)};return L({[Z]:"Import",$defs:i,$ref:e})}WithIdentifiers(e){return globalThis.Object.getOwnPropertyNames(e).reduce((t,i)=>({...t,[i]:{...e[i],$id:i}}),{})}};function ED(r){return new QB(r)}function CD(r,e){return L({[Z]:"Not",not:r},e)}function kD(r,e){return Gn(r)?Zr(r.parameters,e):Qe()}var jie=0;function SD(r,e={}){Ht(e.$id)&&(e.$id=`T${jie++}`);let t=Yl(r({[Z]:"This",$ref:`${e.$id}`}));return t.$id=e.$id,L({[Yr]:"Recursive",...t},e)}function _D(r,e){let t=et(r)?new globalThis.RegExp(r):r;return L({[Z]:"RegExp",type:"RegExp",source:t.source,flags:t.flags},e)}function Wie(r){return yt(r)?r.allOf:Te(r)?r.anyOf:Er(r)?r.items??[]:[]}function TD(r){return Wie(r)}function QD(r,e){return Gn(r)?L(r.returns,e):Qe(e)}var NB=class{constructor(e){this.schema=e}Decode(e){return new RB(this.schema,e)}},RB=class{constructor(e,t){this.schema=e,this.decode=t}EncodeTransform(e,t){let s={Encode:a=>t[zt].Encode(e(a)),Decode:a=>this.decode(t[zt].Decode(a))};return{...t,[zt]:s}}EncodeSchema(e,t){let i={Decode:this.decode,Encode:e};return{...t,[zt]:i}}Encode(e){return yo(this.schema)?this.EncodeTransform(e,this.schema):this.EncodeSchema(e,this.schema)}};function ND(r){return new NB(r)}function RD(r={}){return L({[Z]:r[Z]??"Unsafe"},r)}function DD(r){return L({[Z]:"Void",type:"void"},r)}var DB={};ph(DB,{Any:()=>vo,Argument:()=>g4,Array:()=>Zl,AsyncIterator:()=>ed,Awaited:()=>ad,BigInt:()=>nd,Boolean:()=>D0,Capitalize:()=>lD,Composite:()=>F4,Const:()=>P4,Constructor:()=>td,ConstructorParameters:()=>U4,Date:()=>U0,Enum:()=>H4,Exclude:()=>ld,Extends:()=>ud,Extract:()=>dd,Function:()=>Ts,Index:()=>xo,InstanceType:()=>rD,Instantiate:()=>sD,Integer:()=>aD,Intersect:()=>Qi,Iterator:()=>sd,KeyOf:()=>od,Literal:()=>Fe,Lowercase:()=>dD,Mapped:()=>T4,Module:()=>ED,Never:()=>Qe,Not:()=>CD,Null:()=>H0,Number:()=>Xr,Object:()=>Ge,Omit:()=>Co,Optional:()=>Ti,Parameters:()=>kD,Partial:()=>fd,Pick:()=>ko,Promise:()=>P0,Readonly:()=>sr,ReadonlyOptional:()=>W0,Record:()=>G0,Recursive:()=>SD,Ref:()=>Ns,RegExp:()=>_D,Required:()=>hd,Rest:()=>TD,ReturnType:()=>QD,String:()=>$n,Symbol:()=>M0,TemplateLiteral:()=>O0,Transform:()=>ND,Tuple:()=>Zr,Uint8Array:()=>L0,Uncapitalize:()=>fD,Undefined:()=>q0,Union:()=>Pe,Unknown:()=>Bo,Unsafe:()=>RD,Uppercase:()=>hD,Void:()=>DD});var So=DB;var oh=IR(L3(),1);import*as j2e from"node:path";import*as Sx from"node:fs";import W2e from"debug";ZN();var Yz=IR(L3(),1);ZN();import{DatabaseSync as bnt}from"node:sqlite";var Ent=W2e("openclaw:plugin:core:wallet");var wa=G2e("openclaw:plugin:arcade");var qnt={id:"openclaw-arcade-plugin",name:"BSV Arcade Broadcaster",description:"Submit and track BSV transactions with full lifecycle visibility",register(r){let e="0.2.53",t=r.pluginConfig||{},i=t.network||"mainnet",n=i==="testnet"?"https://testnet.arc.gorillapool.io":"https://arc.gorillapool.io",s=(t.arcadeUrl||n).replace(/\/$/,"");r.logger.info(`[arcade] Initializing Arcade Plugin v${e}`),r.registerService({id:"arcade-setup",start:async()=>{r.logger?.info?.("[arcade] Broadcaster service ready.")},stop:()=>{}}),r.registerTool({name:"arcade",description:"Submit and track BSV transactions with full lifecycle visibility",parameters:So.Object({action:So.String({enum:["broadcast","status","proof","config"],description:"Action to perform"}),txhex:So.Optional(So.String({description:"Hex-encoded raw transaction to broadcast"})),txid:So.Optional(So.String({description:"Transaction ID to track or fetch proof for"}))}),async execute(a,o){wa("Executing tool action: %s with params: %O",o.action,o);try{let{action:c,txhex:u,txid:l}=o;switch(c){case"broadcast":if(!u)throw new Error("txhex is required for broadcast");wa("Broadcasting transaction: %s...",u.slice(0,64));let d=await fetch(`${s}/v1/tx`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({rawTx:u})}),f=await d.json();if(!d.ok)throw wa("Broadcast failed: %O",f),new Error(`Broadcast failed: ${JSON.stringify(f)}`);return wa("Broadcast successful, TXID: %s",f.txid),{content:[{type:"text",text:`Transaction broadcasted! TXID: ${f.txid}
|
|
1375
|
+
`)}}};Jf.MonitorDaemon=A3});var EG=b(Dv=>{"use strict";Object.defineProperty(Dv,"__esModule",{value:!0});Dv.TaskSyncWhenIdle=void 0;var bTe=ui(),Rv=class r extends bTe.WalletMonitorTask{constructor(e,t=1e3*60*1){super(e,r.taskName),this.triggerMsecs=t}trigger(e){let t=this.storage;return{run:!1}}async runTask(){return""}};Dv.TaskSyncWhenIdle=Rv;Rv.taskName="SyncWhenIdle"});var CG=b(mt=>{"use strict";var vTe=mt&&mt.__createBinding||(Object.create?(function(r,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,i,n)}):(function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]})),Ii=mt&&mt.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&vTe(e,r,t)};Object.defineProperty(mt,"__esModule",{value:!0});Ii(ui(),mt);Ii(q2(),mt);Ii(ov(),mt);Ii(j2(),mt);Ii(O2(),mt);Ii(R2(),mt);Ii(L2(),mt);Ii(P2(),mt);Ii(F2(),mt);Ii(Q2(),mt);Ii(U2(),mt);Ii(J2(),mt);Ii(z2(),mt);Ii(N2(),mt);Ii(G2(),mt);Ii(V2(),mt);Ii(EG(),mt);Ii(W2(),mt)});var _G=b(Ir=>{"use strict";var kG=Ir&&Ir.__createBinding||(Object.create?(function(r,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,i,n)}):(function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]})),xTe=Ir&&Ir.__setModuleDefault||(Object.create?(function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}):function(r,e){r.default=e}),SG=Ir&&Ir.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&kG(e,r,t)},BTe=Ir&&Ir.__importStar||(function(){var r=function(e){return r=Object.getOwnPropertyNames||function(t){var i=[];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[i.length]=n);return i},r(e)};return function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var i=r(e),n=0;n<i.length;n++)i[n]!=="default"&&kG(t,e,i[n]);return xTe(t,e),t}})();Object.defineProperty(Ir,"__esModule",{value:!0});Ir.Task=void 0;SG(tr(),Ir);SG(BG(),Ir);Ir.Task=BTe(CG())});var OG=b(Ov=>{"use strict";Object.defineProperty(Ov,"__esModule",{value:!0});Ov.SetupClient=void 0;var no=se(),ETe=_2(),CTe=jT(),TG=eA(),g3=Qn(),QG=tr(),NG=_u(),RG=sA(),kTe=ae(),DG=Cy(),m3=class r{static async createWallet(e){let t=e.chain,i=no.PrivateKey.fromHex(e.rootKeyHex),n=i.toPublicKey().toString(),s=new no.CachedKeyDeriver(i),a=new TG.WalletStorageManager(n,e.active,e.backups);a.canMakeAvailable()&&await a.makeAvailable();let o=g3.Services.createDefaultOptions(t);o.taalApiKey=e.taalApiKey;let c=new g3.Services(o),u=QG.Monitor.createDefaultWalletMonitorOptions(t,a,c,void 0,"default"),l=new QG.Monitor(u),d=e.privilegedKeyGetter?new NG.PrivilegedKeyManager(e.privilegedKeyGetter):void 0,f=new RG.Wallet({chain:t,keyDeriver:s,storage:a,services:c,monitor:l,privilegedKeyManager:d});return{rootKey:i,identityKey:n,keyDeriver:s,chain:t,storage:a,services:c,monitor:l,wallet:f}}static async createWalletClientNoEnv(e){let t=e.chain,i=e.storageUrl||`https://${e.chain!=="main"?"staging-":""}storage.babbage.systems`,n=no.PrivateKey.fromHex(e.rootKeyHex),s=new no.CachedKeyDeriver(n),a=new TG.WalletStorageManager(s.identityKey),o=new g3.Services(t),c=e.privilegedKeyGetter?new NG.PrivilegedKeyManager(e.privilegedKeyGetter):void 0,u=new RG.Wallet({chain:t,keyDeriver:s,storage:a,services:o,privilegedKeyManager:c}),l=new DG.StorageClient(u,i);return await a.addWalletStorageProvider(l),await a.makeAvailable(),u}static async createWalletClient(e){let t=await r.createWallet(e),i=e.endpointUrl||`https://${e.chain!=="main"?"staging-":""}storage.babbage.systems`,n=new DG.StorageClient(t.wallet,i);return await t.storage.addWalletStorageProvider(n),await t.storage.makeAvailable(),{...t,endpointUrl:i}}static getKeyPair(e){e===void 0?e=no.PrivateKey.fromRandom():typeof e=="string"&&(e=new no.PrivateKey(e,"hex"));let t=no.PublicKey.fromPrivateKey(e),i=t.toAddress();return{privateKey:e,publicKey:t,address:i}}static getLockP2PKH(e){return new no.P2PKH().lock(e)}static getUnlockP2PKH(e,t){let i=new no.P2PKH,n=r.getLockP2PKH(r.getKeyPair(e).address);return i.unlock(e,"all",!1,t,n)}static createP2PKHOutputs(e){let t=[],i=e.length;for(let n=0;n<i;n++){let s=e[n];t.push({basket:s.basket,tags:s.tags,satoshis:s.satoshis,lockingScript:r.getLockP2PKH(s.address).toHex(),outputDescription:s.outputDescription||`p2pkh ${n}`})}return t}static async createP2PKHOutputsAction(e,t,i){let n=r.createP2PKHOutputs(t),s={description:"createP2PKHOutputs",outputs:n,options:{...i,randomizeOutputs:!1}},a=await e.createAction(s),o;return a.txid&&(o=n.map((c,u)=>`${a.txid}.${u}`)),{cr:a,outpoints:o}}static async fundWalletFromP2PKHOutpoints(e,t,i,n){return(0,ETe.fundWalletFromP2PKHOutpoints)(e,t,i,r.getUnlockP2PKH.bind(r),n)}static async createWalletIdb(e){let t=await r.createWallet(e),i=await r.createStorageIdb(e);await t.storage.addWalletStorageProvider(i);let{user:n,isNew:s}=await i.findOrInsertUser(t.identityKey),a=n.userId;return{...t,activeStorage:i,userId:a}}static async createStorageIdb(e){let t=new CTe.StorageIdb({chain:e.chain,commissionSatoshis:0,commissionPubKeyHex:void 0,feeModel:{model:"sat/kb",value:1}});return await t.migrate(e.databaseName,(0,kTe.randomBytesHex)(33)),await t.makeAvailable(),t}};Ov.SetupClient=m3});var PG=b(FG=>{"use strict";Object.defineProperty(FG,"__esModule",{value:!0})});var HG=b((Fv,UG)=>{(function(r,e){typeof Fv=="object"&&typeof UG<"u"?e(Fv):typeof define=="function"&&define.amd?define(["exports"],e):(r=typeof globalThis<"u"?globalThis:r||self,e(r.hashwasm={}))})(Fv,(function(r){"use strict";var e="adler32",t="AGFzbQEAAAABDANgAAF/YAAAYAF/AAMHBgABAgEAAgUEAQECAgYOAn8BQYCJBQt/AEGACAsHcAgGbWVtb3J5AgAOSGFzaF9HZXRCdWZmZXIAAAlIYXNoX0luaXQAAQtIYXNoX1VwZGF0ZQACCkhhc2hfRmluYWwAAw1IYXNoX0dldFN0YXRlAAQOSGFzaF9DYWxjdWxhdGUABQpTVEFURV9TSVpFAwEK6wkGBQBBgAkLCgBBAEEBNgKECAvjCAEHf0EAKAKECCIBQf//A3EhAiABQRB2IQMCQAJAIABBAUcNACACQQAtAIAJaiIBQY+AfGogASABQfD/A0sbIgEgA2oiBEEQdCIFQYCAPGogBSAEQfD/A0sbIAFyIQEMAQsCQAJAAkACQAJAIABBEEkNAEGACSEGIABBsCtJDQFBgAkhBgNAQQAhBQNAIAYgBWoiASgCACIEQf8BcSACaiICIANqIAIgBEEIdkH/AXFqIgJqIAIgBEEQdkH/AXFqIgJqIAIgBEEYdmoiAmogAiABQQRqKAIAIgRB/wFxaiICaiACIARBCHZB/wFxaiICaiACIARBEHZB/wFxaiICaiACIARBGHZqIgJqIAIgAUEIaigCACIEQf8BcWoiAmogAiAEQQh2Qf8BcWoiAmogAiAEQRB2Qf8BcWoiAmogAiAEQRh2aiIEaiAEIAFBDGooAgAiAUH/AXFqIgRqIAQgAUEIdkH/AXFqIgRqIAQgAUEQdkH/AXFqIgRqIAQgAUEYdmoiAmohAyAFQRBqIgVBsCtHDQALIANB8f8DcCEDIAJB8f8DcCECIAZBsCtqIQYgAEHQVGoiAEGvK0sNAAsgAEUNBCAAQQ9LDQEMAgsCQCAARQ0AAkACQCAAQQNxIgUNAEGACSEBIAAhBAwBCyAAQXxxIQRBACEBA0AgAiABQYAJai0AAGoiAiADaiEDIAUgAUEBaiIBRw0ACyAFQYAJaiEBCyAAQQRJDQADQCACIAEtAABqIgUgAS0AAWoiBiABLQACaiIAIAFBA2otAABqIgIgACAGIAUgA2pqamohAyABQQRqIQEgBEF8aiIEDQALCyACQY+AfGogAiACQfD/A0sbIANB8f8DcEEQdHIhAQwECwNAIAYoAgAiAUH/AXEgAmoiBCADaiAEIAFBCHZB/wFxaiIEaiAEIAFBEHZB/wFxaiIEaiAEIAFBGHZqIgRqIAQgBkEEaigCACIBQf8BcWoiBGogBCABQQh2Qf8BcWoiBGogBCABQRB2Qf8BcWoiBGogBCABQRh2aiIEaiAEIAZBCGooAgAiAUH/AXFqIgRqIAQgAUEIdkH/AXFqIgRqIAQgAUEQdkH/AXFqIgRqIAQgAUEYdmoiBGogBCAGQQxqKAIAIgFB/wFxaiIEaiAEIAFBCHZB/wFxaiIEaiAEIAFBEHZB/wFxaiIEaiAEIAFBGHZqIgJqIQMgBkEQaiEGIABBcGoiAEEPSw0ACyAARQ0BCyAAQX9qIQcCQCAAQQNxIgVFDQAgAEF8cSEAIAUhBCAGIQEDQCACIAEtAABqIgIgA2ohAyABQQFqIQEgBEF/aiIEDQALIAYgBWohBgsgB0EDSQ0AA0AgAiAGLQAAaiIBIAYtAAFqIgQgBi0AAmoiBSAGQQNqLQAAaiICIAUgBCABIANqampqIQMgBkEEaiEGIABBfGoiAA0ACwsgA0Hx/wNwIQMgAkHx/wNwIQILIAIgA0EQdHIhAQtBACABNgKECAsxAQF/QQBBACgChAgiAEEYdCAAQYD+A3FBCHRyIABBCHZBgP4DcSAAQRh2cnI2AoAJCwUAQYQICzsAQQBBATYChAggABACQQBBACgChAgiAEEYdCAAQYD+A3FBCHRyIABBCHZBgP4DcSAAQRh2cnI2AoAJCwsVAgBBgAgLBAQAAAAAQYQICwQBAAAA",i="02ddbd17",n={name:e,data:t,hash:i};function s(w,x,C,_){function K(J){return J instanceof C?J:new C(function(te){te(J)})}return new(C||(C=Promise))(function(J,te){function re(Pt){try{kt(_.next(Pt))}catch(Jt){te(Jt)}}function ye(Pt){try{kt(_.throw(Pt))}catch(Jt){te(Jt)}}function kt(Pt){Pt.done?J(Pt.value):K(Pt.value).then(re,ye)}kt((_=_.apply(w,x||[])).next())})}typeof SuppressedError=="function"&&SuppressedError;class a{constructor(){this.mutex=Promise.resolve()}lock(){let x=()=>{};return this.mutex=this.mutex.then(()=>new Promise(x)),new Promise(C=>{x=C})}dispatch(x){return s(this,void 0,void 0,function*(){let C=yield this.lock();try{return yield Promise.resolve(x())}finally{C()}})}}var o;function c(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global}let u=c(),l=(o=u.Buffer)!==null&&o!==void 0?o:null,d=u.TextEncoder?new u.TextEncoder:null;function f(w,x){return String.fromCharCode(...w.subarray(0,x))}function h(w,x){return(w&15)+(w>>6|w>>3&8)<<4|(x&15)+(x>>6|x>>3&8)}function p(w,x){let C=x.length>>1;for(let _=0;_<C;_++){let K=_<<1;w[_]=h(x.charCodeAt(K),x.charCodeAt(K+1))}}function A(w,x){if(w.length!==x.length*2)return!1;for(let C=0;C<x.length;C++){let _=C<<1;if(x[C]!==h(w.charCodeAt(_),w.charCodeAt(_+1)))return!1}return!0}let g=87,m=48;function I(w,x,C){let _=0;for(let K=0;K<C;K++){let J=x[K]>>>4;w[_++]=J>9?J+g:J+m,J=x[K]&15,w[_++]=J>9?J+g:J+m}return String.fromCharCode.apply(null,w)}let y=l!==null?w=>{if(typeof w=="string"){let x=l.from(w,"utf8");return new Uint8Array(x.buffer,x.byteOffset,x.length)}if(l.isBuffer(w))return new Uint8Array(w.buffer,w.byteOffset,w.length);if(ArrayBuffer.isView(w))return new Uint8Array(w.buffer,w.byteOffset,w.byteLength);throw new Error("Invalid data type!")}:w=>{if(typeof w=="string")return d.encode(w);if(ArrayBuffer.isView(w))return new Uint8Array(w.buffer,w.byteOffset,w.byteLength);throw new Error("Invalid data type!")},v="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",B=new Uint8Array(256);for(let w=0;w<v.length;w++)B[v.charCodeAt(w)]=w;function E(w,x=!0){let C=w.length,_=C%3,K=[],J=C-_;for(let te=0;te<J;te+=3){let re=(w[te]<<16&16711680)+(w[te+1]<<8&65280)+(w[te+2]&255),ye=v.charAt(re>>18&63)+v.charAt(re>>12&63)+v.charAt(re>>6&63)+v.charAt(re&63);K.push(ye)}if(_===1){let te=w[C-1],re=v.charAt(te>>2),ye=v.charAt(te<<4&63);K.push(`${re}${ye}`),x&&K.push("==")}else if(_===2){let te=(w[C-2]<<8)+w[C-1],re=v.charAt(te>>10),ye=v.charAt(te>>4&63),kt=v.charAt(te<<2&63);K.push(`${re}${ye}${kt}`),x&&K.push("=")}return K.join("")}function k(w){let x=Math.floor(w.length*.75),C=w.length;return w[C-1]==="="&&(x-=1,w[C-2]==="="&&(x-=1)),x}function T(w){let x=k(w),C=w.length,_=new Uint8Array(x),K=0;for(let J=0;J<C;J+=4){let te=B[w.charCodeAt(J)],re=B[w.charCodeAt(J+1)],ye=B[w.charCodeAt(J+2)],kt=B[w.charCodeAt(J+3)];_[K]=te<<2|re>>4,K+=1,_[K]=(re&15)<<4|ye>>2,K+=1,_[K]=(ye&3)<<6|kt&63,K+=1}return _}let D=16*1024,j=4,H=new a,W=new Map;function M(w,x){return s(this,void 0,void 0,function*(){let C=null,_=null,K=!1;if(typeof WebAssembly>"u")throw new Error("WebAssembly is not supported in this environment!");let J=(we,Re=0)=>{_.set(we,Re)},te=()=>_,re=()=>C.exports,ye=we=>{C.exports.Hash_SetMemorySize(we);let Re=C.exports.Hash_GetBuffer(),Ki=C.exports.memory.buffer;_=new Uint8Array(Ki,Re,we)},kt=()=>new DataView(C.exports.memory.buffer).getUint32(C.exports.STATE_SIZE,!0),Pt=H.dispatch(()=>s(this,void 0,void 0,function*(){if(!W.has(w.name)){let Re=T(w.data),Ki=WebAssembly.compile(Re);W.set(w.name,Ki)}let we=yield W.get(w.name);C=yield WebAssembly.instantiate(we,{})})),Jt=()=>s(this,void 0,void 0,function*(){C||(yield Pt);let we=C.exports.Hash_GetBuffer(),Re=C.exports.memory.buffer;_=new Uint8Array(Re,we,D)}),St=(we=null)=>{K=!0,C.exports.Hash_Init(we)},$r=we=>{let Re=0;for(;Re<we.length;){let Ki=we.subarray(Re,Re+D);Re+=Ki.length,_.set(Ki),C.exports.Hash_Update(Ki.length)}},Si=we=>{if(!K)throw new Error("update() called before init()");let Re=y(we);$r(Re)},fh=new Uint8Array(x*2),Ao=(we,Re=null)=>{if(!K)throw new Error("digest() called before init()");return K=!1,C.exports.Hash_Final(Re),we==="binary"?_.slice(0,x):I(fh,_,x)},Ln=()=>{if(!K)throw new Error("save() can only be called after init() and before digest()");let we=C.exports.Hash_GetState(),Re=kt(),Ki=C.exports.memory.buffer,Rc=new Uint8Array(Ki,we,Re),hh=new Uint8Array(j+Re);return p(hh,w.hash),hh.set(Rc,j),hh},go=we=>{if(!(we instanceof Uint8Array))throw new Error("load() expects an Uint8Array generated by save()");let Re=C.exports.Hash_GetState(),Ki=kt(),Rc=j+Ki,hh=C.exports.memory.buffer;if(we.length!==Rc)throw new Error(`Bad state length (expected ${Rc} bytes, got ${we.length})`);if(!A(w.hash,we.subarray(0,j)))throw new Error("This state was written by an incompatible hash implementation");let dX=we.subarray(j);new Uint8Array(hh,Re,Ki).set(dX),K=!0},$l=we=>typeof we=="string"?we.length<D/4:we.byteLength<D,xa=$l;switch(w.name){case"argon2":case"scrypt":xa=()=>!0;break;case"blake2b":case"blake2s":xa=(we,Re)=>Re<=512&&$l(we);break;case"blake3":xa=(we,Re)=>Re===0&&$l(we);break;case"xxhash64":case"xxhash3":case"xxhash128":case"crc64":xa=()=>!1;break}let mo=(we,Re=null,Ki=null)=>{if(!xa(we,Re))return St(Re),Si(we),Ao("hex",Ki);let Rc=y(we);return _.set(Rc),C.exports.Hash_Calculate(Rc.length,Re,Ki),I(fh,_,x)};return yield Jt(),{getMemory:te,writeMemory:J,getExports:re,setMemorySize:ye,init:St,update:Si,digest:Ao,save:Ln,load:go,calculate:mo,hashLength:x}})}function Y(w,x,C){return s(this,void 0,void 0,function*(){let _=yield w.lock(),K=yield M(x,C);return _(),K})}let F=new a,P=null;function G(w){if(P===null)return Y(F,n,4).then(x=>(P=x,P.calculate(w)));try{let x=P.calculate(w);return Promise.resolve(x)}catch(x){return Promise.reject(x)}}function q(){return M(n,4).then(w=>{w.init();let x={init:()=>(w.init(),x),update:C=>(w.update(C),x),digest:C=>w.digest(C),save:()=>w.save(),load:C=>(w.load(C),x),blockSize:4,digestSize:4};return x})}var ne="argon2",fe="AGFzbQEAAAABKQVgAX8Bf2AAAX9gEH9/f39/f39/f39/f39/f38AYAR/f39/AGACf38AAwYFAAECAwQFBgEBAoCAAgYIAX8BQZCoBAsHQQQGbWVtb3J5AgASSGFzaF9TZXRNZW1vcnlTaXplAAAOSGFzaF9HZXRCdWZmZXIAAQ5IYXNoX0NhbGN1bGF0ZQAECvEyBVgBAn9BACEBAkAgAEEAKAKICCICRg0AAkAgACACayIAQRB2IABBgIB8cSAASWoiAEAAQX9HDQBB/wHADwtBACEBQQBBACkDiAggAEEQdK18NwOICAsgAcALcAECfwJAQQAoAoAIIgANAEEAPwBBEHQiADYCgAhBACgCiAgiAUGAgCBGDQACQEGAgCAgAWsiAEEQdiAAQYCAfHEgAElqIgBAAEF/Rw0AQQAPC0EAQQApA4gIIABBEHStfDcDiAhBACgCgAghAAsgAAvcDgECfiAAIAQpAwAiECAAKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAMIBAgDCkDAIVCIIkiEDcDACAIIBAgCCkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgBCAQIAQpAwCFQiiJIhA3AwAgACAQIAApAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIAwgECAMKQMAhUIwiSIQNwMAIAggECAIKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAEIBAgBCkDAIVCAYk3AwAgASAFKQMAIhAgASkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgDSAQIA0pAwCFQiCJIhA3AwAgCSAQIAkpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAUgECAFKQMAhUIoiSIQNwMAIAEgECABKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACANIBAgDSkDAIVCMIkiEDcDACAJIBAgCSkDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgBSAQIAUpAwCFQgGJNwMAIAIgBikDACIQIAIpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIA4gECAOKQMAhUIgiSIQNwMAIAogECAKKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAGIBAgBikDAIVCKIkiEDcDACACIBAgAikDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgDiAQIA4pAwCFQjCJIhA3AwAgCiAQIAopAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIAYgECAGKQMAhUIBiTcDACADIAcpAwAiECADKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAPIBAgDykDAIVCIIkiEDcDACALIBAgCykDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgByAQIAcpAwCFQiiJIhA3AwAgAyAQIAMpAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIA8gECAPKQMAhUIwiSIQNwMAIAsgECALKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAHIBAgBykDAIVCAYk3AwAgACAFKQMAIhAgACkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgDyAQIA8pAwCFQiCJIhA3AwAgCiAQIAopAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAUgECAFKQMAhUIoiSIQNwMAIAAgECAAKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAPIBAgDykDAIVCMIkiEDcDACAKIBAgCikDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgBSAQIAUpAwCFQgGJNwMAIAEgBikDACIQIAEpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAwgECAMKQMAhUIgiSIQNwMAIAsgECALKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAGIBAgBikDAIVCKIkiEDcDACABIBAgASkDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgDCAQIAwpAwCFQjCJIhA3AwAgCyAQIAspAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIAYgECAGKQMAhUIBiTcDACACIAcpAwAiECACKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACANIBAgDSkDAIVCIIkiEDcDACAIIBAgCCkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgByAQIAcpAwCFQiiJIhA3AwAgAiAQIAIpAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIA0gECANKQMAhUIwiSIQNwMAIAggECAIKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAHIBAgBykDAIVCAYk3AwAgAyAEKQMAIhAgAykDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgDiAQIA4pAwCFQiCJIhA3AwAgCSAQIAkpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAQgECAEKQMAhUIoiSIQNwMAIAMgECADKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAOIBAgDikDAIVCMIkiEDcDACAJIBAgCSkDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgBCAQIAQpAwCFQgGJNwMAC98aAQN/QQAhBEEAIAIpAwAgASkDAIU3A5AIQQAgAikDCCABKQMIhTcDmAhBACACKQMQIAEpAxCFNwOgCEEAIAIpAxggASkDGIU3A6gIQQAgAikDICABKQMghTcDsAhBACACKQMoIAEpAyiFNwO4CEEAIAIpAzAgASkDMIU3A8AIQQAgAikDOCABKQM4hTcDyAhBACACKQNAIAEpA0CFNwPQCEEAIAIpA0ggASkDSIU3A9gIQQAgAikDUCABKQNQhTcD4AhBACACKQNYIAEpA1iFNwPoCEEAIAIpA2AgASkDYIU3A/AIQQAgAikDaCABKQNohTcD+AhBACACKQNwIAEpA3CFNwOACUEAIAIpA3ggASkDeIU3A4gJQQAgAikDgAEgASkDgAGFNwOQCUEAIAIpA4gBIAEpA4gBhTcDmAlBACACKQOQASABKQOQAYU3A6AJQQAgAikDmAEgASkDmAGFNwOoCUEAIAIpA6ABIAEpA6ABhTcDsAlBACACKQOoASABKQOoAYU3A7gJQQAgAikDsAEgASkDsAGFNwPACUEAIAIpA7gBIAEpA7gBhTcDyAlBACACKQPAASABKQPAAYU3A9AJQQAgAikDyAEgASkD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",_e="e4cdc523",Ve={name:ne,data:fe,hash:_e},ki="blake2b",Mn="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",ch="c6f286e6",lo={name:ki,data:Mn,hash:ch};let _x=new a,ba=null;function ql(w){return!Number.isInteger(w)||w<8||w>512||w%8!==0?new Error("Invalid variant! Valid values: 8, 16, ..., 512"):null}function Yg(w,x){return w|x<<16}function Tx(w,x=512,C=null){if(ql(x))return Promise.reject(ql(x));let _=null,K=x;if(C!==null){if(_=y(C),_.length>64)return Promise.reject(new Error("Max key length is 64 bytes"));K=Yg(x,_.length)}let J=x/8;if(ba===null||ba.hashLength!==J)return Y(_x,lo,J).then(te=>(ba=te,K>512&&ba.writeMemory(_),ba.calculate(w,K)));try{K>512&&ba.writeMemory(_);let te=ba.calculate(w,K);return Promise.resolve(te)}catch(te){return Promise.reject(te)}}function Ll(w=512,x=null){if(ql(w))return Promise.reject(ql(w));let C=null,_=w;if(x!==null){if(C=y(x),C.length>64)return Promise.reject(new Error("Max key length is 64 bytes"));_=Yg(w,C.length)}let K=w/8;return M(lo,K).then(J=>{_>512&&J.writeMemory(C),J.init(_);let te={init:_>512?()=>(J.writeMemory(C),J.init(_),te):()=>(J.init(_),te),update:re=>(J.update(re),te),digest:re=>J.digest(re),save:()=>J.save(),load:re=>(J.load(re),te),blockSize:128,digestSize:K};return te})}function Qx(w,x,C){let _=[`m=${x.memorySize}`,`t=${x.iterations}`,`p=${x.parallelism}`].join(",");return`$argon2${x.hashType}$v=19$${_}$${E(w,!1)}$${E(C,!1)}`}let Xg=new DataView(new ArrayBuffer(4));function qn(w){return Xg.setInt32(0,w,!0),new Uint8Array(Xg.buffer)}function uh(w,x,C){return s(this,void 0,void 0,function*(){if(C<=64){let ye=yield Ll(C*8);return ye.update(qn(C)),ye.update(x),ye.digest("binary")}let _=Math.ceil(C/32)-2,K=new Uint8Array(C);w.init(),w.update(qn(C)),w.update(x);let J=w.digest("binary");K.set(J.subarray(0,32),0);for(let ye=1;ye<_;ye++)w.init(),w.update(J),J=w.digest("binary"),K.set(J.subarray(0,32),ye*32);let te=C-32*_,re;return te===64?(re=w,re.init()):re=yield Ll(te*8),re.update(J),J=re.digest("binary"),K.set(J.subarray(0,te),_*32),K})}function Nx(w){switch(w){case"d":return 0;case"i":return 1;default:return 2}}function Kl(w){return s(this,void 0,void 0,function*(){var x;let{parallelism:C,iterations:_,hashLength:K}=w,J=y(w.password),te=y(w.salt),re=19,ye=Nx(w.hashType),{memorySize:kt}=w,Pt=y((x=w.secret)!==null&&x!==void 0?x:""),[Jt,St]=yield Promise.all([M(Ve,1024),Ll(512)]);Jt.setMemorySize(kt*1024+1024);let $r=new Uint8Array(24),Si=new DataView($r.buffer);Si.setInt32(0,C,!0),Si.setInt32(4,K,!0),Si.setInt32(8,kt,!0),Si.setInt32(12,_,!0),Si.setInt32(16,re,!0),Si.setInt32(20,ye,!0),Jt.writeMemory($r,kt*1024),St.init(),St.update($r),St.update(qn(J.length)),St.update(J),St.update(qn(te.length)),St.update(te),St.update(qn(Pt.length)),St.update(Pt),St.update(qn(0));let Ao=Math.floor(kt/(C*4))*4,Ln=new Uint8Array(72),go=St.digest("binary");Ln.set(go);for(let mo=0;mo<C;mo++){Ln.set(qn(0),64),Ln.set(qn(mo),68);let we=mo*Ao,Re=yield uh(St,Ln,1024);Jt.writeMemory(Re,we*1024),we+=1,Ln.set(qn(1),64),Re=yield uh(St,Ln,1024),Jt.writeMemory(Re,we*1024)}let $l=new Uint8Array(1024);p($l,Jt.calculate(new Uint8Array([]),kt));let xa=yield uh(St,$l,K);if(w.outputType==="hex"){let mo=new Uint8Array(K*2);return I(mo,xa,K)}return w.outputType==="encoded"?Qx(te,w,xa):xa})}let Vl=w=>{var x;if(!w||typeof w!="object")throw new Error("Invalid options parameter. It requires an object.");if(!w.password)throw new Error("Password must be specified");if(w.password=y(w.password),w.password.length<1)throw new Error("Password must be specified");if(!w.salt)throw new Error("Salt must be specified");if(w.salt=y(w.salt),w.salt.length<8)throw new Error("Salt should be at least 8 bytes long");if(w.secret=y((x=w.secret)!==null&&x!==void 0?x:""),!Number.isInteger(w.iterations)||w.iterations<1)throw new Error("Iterations should be a positive number");if(!Number.isInteger(w.parallelism)||w.parallelism<1)throw new Error("Parallelism should be a positive number");if(!Number.isInteger(w.hashLength)||w.hashLength<4)throw new Error("Hash length should be at least 4 bytes.");if(!Number.isInteger(w.memorySize))throw new Error("Memory size should be specified.");if(w.memorySize<8*w.parallelism)throw new Error("Memory size should be at least 8 * parallelism.");if(w.outputType===void 0&&(w.outputType="hex"),!["hex","binary","encoded"].includes(w.outputType))throw new Error(`Insupported output type ${w.outputType}. Valid values: ['hex', 'binary', 'encoded']`)};function Rx(w){return s(this,void 0,void 0,function*(){return Vl(w),Kl(Object.assign(Object.assign({},w),{hashType:"i"}))})}function Dx(w){return s(this,void 0,void 0,function*(){return Vl(w),Kl(Object.assign(Object.assign({},w),{hashType:"id"}))})}function Ox(w){return s(this,void 0,void 0,function*(){return Vl(w),Kl(Object.assign(Object.assign({},w),{hashType:"d"}))})}let Fx=(w,x,C)=>{let _=/^\$argon2(id|i|d)\$v=([0-9]+)\$((?:[mtp]=[0-9]+,){2}[mtp]=[0-9]+)\$([A-Za-z0-9+/]+)\$([A-Za-z0-9+/]+)$/,K=x.match(_);if(!K)throw new Error("Invalid hash");let[,J,te,re,ye,kt]=K;if(te!=="19")throw new Error(`Unsupported version: ${te}`);let Pt={},Jt={m:"memorySize",p:"parallelism",t:"iterations"};for(let St of re.split(",")){let[$r,Si]=St.split("=");Pt[Jt[$r]]=Number(Si)}return Object.assign(Object.assign({},Pt),{password:w,secret:C,hashType:J,salt:T(ye),hashLength:k(kt),outputType:"encoded"})},Px=w=>{if(!w||typeof w!="object")throw new Error("Invalid options parameter. It requires an object.");if(w.hash===void 0||typeof w.hash!="string")throw new Error("Hash should be specified")};function Ux(w){return s(this,void 0,void 0,function*(){Px(w);let x=Fx(w.password,w.hash,w.secret);Vl(x);let C=w.hash.lastIndexOf("$")+1;return(yield Kl(x)).substring(C)===w.hash.substring(C)})}var Hx="blake2s",Mx="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",qx="5c0ff166",Zg={name:Hx,data:Mx,hash:qx};let Lx=new a,va=null;function jl(w){return!Number.isInteger(w)||w<8||w>256||w%8!==0?new Error("Invalid variant! Valid values: 8, 16, ..., 256"):null}function e0(w,x){return w|x<<16}function Kx(w,x=256,C=null){if(jl(x))return Promise.reject(jl(x));let _=null,K=x;if(C!==null){if(_=y(C),_.length>32)return Promise.reject(new Error("Max key length is 32 bytes"));K=e0(x,_.length)}let J=x/8;if(va===null||va.hashLength!==J)return Y(Lx,Zg,J).then(te=>(va=te,K>512&&va.writeMemory(_),va.calculate(w,K)));try{K>512&&va.writeMemory(_);let te=va.calculate(w,K);return Promise.resolve(te)}catch(te){return Promise.reject(te)}}function Vx(w=256,x=null){if(jl(w))return Promise.reject(jl(w));let C=null,_=w;if(x!==null){if(C=y(x),C.length>32)return Promise.reject(new Error("Max key length is 32 bytes"));_=e0(w,C.length)}let K=w/8;return M(Zg,K).then(J=>{_>512&&J.writeMemory(C),J.init(_);let te={init:_>512?()=>(J.writeMemory(C),J.init(_),te):()=>(J.init(_),te),update:re=>(J.update(re),te),digest:re=>J.digest(re),save:()=>J.save(),load:re=>(J.load(re),te),blockSize:64,digestSize:K};return te})}var jx="blake3",Wx="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IQEgAkFAaiICQcAASw0ACwsCQEHAACAHQf8BcSIGayIFIAIgBSACSRsiCUUNACAJQQNxIQtBACEFAkAgCUEESQ0AIAAgBmohByAJQfwAcSEIQQAhBQNAIAcgBWoiAkEoaiABIAVqIgotAAA6AAAgAkEpaiAKQQFqLQAAOgAAIAJBKmogCkECai0AADoAACACQStqIApBA2otAAA6AAAgCCAFQQRqIgVHDQALCwJAIAtFDQAgASAFaiEBIAUgBmogAGpBKGohBQNAIAUgAS0AADoAACABQQFqIQEgBUEBaiEFIAtBf2oiCw0ACwsgAC0AaCEHCyAAIAcgCWo6AGggA0HAAGokAAveAwQFfwN+BX8GfiMAQdABayIBJAACQCAAe6ciAkEALQCQigEiA08NAEEALQCKigFBBHIhBCABQShqIQVBACkDmIkBIQBBACkDkIkBIQZBACkDiIkBIQdBACkDgIkBIQggAyEJA0AgASAANwMYIAEgBjcDECABIAc3AwggASAINwMAIAEgA0EFdCIDQdGJAWoiCikDADcDKCABIANB2YkBaiILKQMANwMwIAEgA0HhiQFqIgwpAwA3AzggASADQemJAWoiDSkDADcDQCABIANB8YkBaikDADcDSCABIANB+YkBaikDADcDUCABIANBgYoBaikDADcDWCADQYmKAWopAwAhDiABQcAAOgBoIAEgDjcDYCABQgA3AyAgASAEOgBpIAEgADcDiAEgASAGNwOAASABIAc3A3ggASAINwNwIAFBkAFqIAFB8ABqIAVBwABCACAEQf8BcRACIAEpA7ABIQ4gASkDkAEhDyABKQO4ASEQIAEpA5gBIREgASkDwAEhEiABKQOgASETIA0gASkDyAEgASkDqAGFNwMAIAwgEiAThTcDACALIBAgEYU3AwAgCiAOIA+FNwMAIAlBf2oiCUH/AXEiAyACSw0AC0EAIAk6AJCKAQsgAUHQAWokAAvHCQIKfwV+IwBB4AJrIgUkAAJAAkAgAUGACEsNACAFIAA2AvwBIAVB/AFqIAFBgAhGIgZBECACQQEgA0EBQQIgBBABIAZBCnQiByABTw0BIAVB4ABqIgZCADcDACAFQdgAaiIIQgA3AwAgBUHQAGoiCUIANwMAIAVByABqIgpCADcDACAFQcAAaiILQgA3AwAgBUE4aiIMQgA3AwAgBUEwaiINQgA3AwAgBSADOgBqIAVCADcDKCAFQQA7AWggBUEAKQOAiQE3AwAgBUEAKQOIiQE3AwggBUEAKQOQiQE3AxAgBUEAKQOYiQE3AxggBSABQYAIRiIOrSACfDcDICAFIAAgB2pBACABIA4bEAQgBUGIAWpBMGogDSkDADcDACAFQYgBakE4aiAMKQMANwMAIAUgBSkDACIPNwOIASAFIAUpAwgiEDcDkAEgBSAFKQMQIhE3A5gBIAUgBSkDGCISNwOgASAFIAUpAyg3A7ABIAUtAGohACAFLQBpIQcgBSkDICECIAUtAGghASAFQYgBakHAAGogCykDADcDACAFQYgBakHIAGogCikDADcDACAFQYgBakHQAGogCSkDADcDACAFQYgBakHYAGogCCkDADcDACAFQYgBakHgAGogBikDADcDACAFIAE6APABIAUgAjcDqAEgBSAAIAdFckECciIAOgDxASAFIBI3A5gCIAUgETcDkAIgBSAQNwOIAiAFIA83A4ACIAVBoAJqIAVBgAJqIAVBsAFqIAEgAiAAQf8BcRACIAUpA8ACIQIgBSkDoAIhDyAFKQPIAiEQIAUpA6gCIREgBSkD0AIhEiAFKQOwAiETIAQgDkEFdGoiASAFKQPYAiAFKQO4AoU3AxggASASIBOFNwMQIAEgECARhTcDCCABIAIgD4U3AwBBAkEBIA4bIQYMAQsgAEIBIAFBf2pBCnZBAXKteUI/hYYiD6dBCnQiDiACIAMgBRAGIQcgACAOaiABIA5rIA9C////AYMgAnwgAyAFQcAAQSAgDkGACEsbahAGIQECQCAHQQFHDQAgBCAFKQMANwMAIAQgBSkDCDcDCCAEIAUpAxA3AxAgBCAFKQMYNwMYIAQgBSkDIDcDICAEIAUpAyg3AyggBCAFKQMwNwMwIAQgBSkDODcDOEECIQYMAQtBACEGQQAhAAJAIAEgB2oiCUECSQ0AIAlBfmoiCkEBdkEBaiIGQQNxIQ5BACEHAkAgCkEGSQ0AIAZB/P///wdxIQhBACEHIAVBiAFqIQEgBSEAA0AgASAANgIAIAFBDGogAEHAAWo2AgAgAUEIaiAAQYABajYCACABQQRqIABBwABqNgIAIABBgAJqIQAgAUEQaiEBIAggB0EEaiIHRw0ACwsgCkF+cSEIAkAgDkUNACAFIAdBBnRqIQEgBUGIAWogB0ECdGohAANAIAAgATYCACABQcAAaiEBIABBBGohACAOQX9qIg4NAAsLIAhBAmohAAsgBUGIAWogBkEBQgBBACADQQRyQQBBACAEEAEgACAJTw0AIAQgBkEFdGoiASAFIAZBBnRqIgApAwA3AwAgASAAKQMINwMIIAEgACkDEDcDECABIAApAxg3AxggBkEBaiEGCyAFQeACaiQAIAYLrRAIAn8EfgF/AX4EfwR+BH8EfiMAQfABayIBJAACQCAARQ0AAkBBAC0AkIoBIgINACABQTBqQQApA9CJATcDACABQThqQQApA9iJATcDACABQQApA6CJASIDNwMAIAFBACkDqIkBIgQ3AwggAUEAKQOwiQEiBTcDECABQQApA7iJASIGNwMYIAFBACkDyIkBNwMoQQAtAIqKASECQQAtAImKASEHQQApA8CJASEIQQAtAIiKASEJIAFBwABqQQApA+CJATcDACABQcgAakEAKQPoiQE3AwAgAUHQAGpBACkD8IkBNwMAIAFB2ABqQQApA/iJATcDACABQeAAakEAKQOAigE3AwAgASAJOgBoIAEgCDcDICABIAIgB0VyIgJBAnI6AGkgAUEoaiEKQgAhCEGACSELIAJBCnJB/wFxIQwDQCABQbABaiABIAogCUH/AXEgCCAMEAIgASABKQPQASINIAEpA7ABhTcDcCABIAEpA9gBIg4gASkDuAGFNwN4IAEgASkD4AEiDyABKQPAAYU3A4ABIAEgASkD6AEiECAGhTcDqAEgASAPIAWFNwOgASABIA4gBIU3A5gBIAEgDSADhTcDkAEgASAQIAEpA8gBhTcDiAEgAEHAACAAQcAASRsiEUF/aiESAkACQCARQQdxIhMNACABQfAAaiECIAshByARIRQMAQsgEUH4AHEhFCABQfAAaiECIAshBwNAIAcgAi0AADoAACAHQQFqIQcgAkEBaiECIBNBf2oiEw0ACwsCQCASQQdJDQADQCAHIAIpAAA3AAAgB0EIaiEHIAJBCGohAiAUQXhqIhQNAAsLIAhCAXwhCCALIBFqIQsgACARayIADQAMAgsLAkACQAJAQQAtAImKASIHQQZ0QQBBAC0AiIoBIhFrRg0AIAEgEToAaCABQQApA4CKATcDYCABQQApA/iJATcDWCABQQApA/CJATcDUCABQQApA+iJATcDSCABQQApA+CJATcDQCABQQApA9iJATcDOCABQQApA9CJATcDMCABQQApA8iJATcDKCABQQApA8CJASIINwMgIAFBACkDuIkBIgM3AxggAUEAKQOwiQEiBDcDECABQQApA6iJASIFNwMIIAFBACkDoIkBIgY3AwAgAUEALQCKigEiEyAHRXJBAnIiCzoAaSATQQRyIRNBACkDmIkBIQ1BACkDkIkBIQ5BACkDiIkBIQ9BACkDgIkBIRAMAQtBwAAhESABQcAAOgBoQgAhCCABQgA3AyAgAUEAKQOYiQEiDTcDGCABQQApA5CJASIONwMQIAFBACkDiIkBIg83AwggAUEAKQOAiQEiEDcDACABQQAtAIqKAUEEciITOgBpIAEgAkF+aiICQQV0IgdByYoBaikDADcDYCABIAdBwYoBaikDADcDWCABIAdBuYoBaikDADcDUCABIAdBsYoBaikDADcDSCABIAdBqYoBaikDADcDQCABIAdBoYoBaikDADcDOCABIAdBmYoBaikDADcDMCABIAdBkYoBaikDADcDKCATIQsgECEGIA8hBSAOIQQgDSEDIAJFDQELIAJBf2oiB0EFdCIUQZGKAWopAwAhFSAUQZmKAWopAwAhFiAUQaGKAWopAwAhFyAUQamKAWopAwAhGCABIAM3A4gBIAEgBDcDgAEgASAFNwN4IAEgBjcDcCABQbABaiABQfAAaiABQShqIhQgESAIIAtB/wFxEAIgASATOgBpIAFBwAA6AGggASAYNwNAIAEgFzcDOCABIBY3AzAgASAVNwMoIAFCADcDICABIA03AxggASAONwMQIAEgDzcDCCABIBA3AwAgASABKQPoASABKQPIAYU3A2AgASABKQPgASABKQPAAYU3A1ggASABKQPYASABKQO4AYU3A1AgASABKQPQASABKQOwAYU3A0ggB0UNACACQQV0QemJAWohAiATQf8BcSERA0AgAkFoaikDACEIIAJBcGopAwAhAyACQXhqKQMAIQQgAikDACEFIAEgDTcDiAEgASAONwOAASABIA83A3ggASAQNwNwIAFBsAFqIAFB8ABqIBRBwABCACAREAIgASATOgBpIAFBwAA6AGggASAFNwNAIAEgBDcDOCABIAM3AzAgASAINwMoIAFCADcDICABIA03AxggASAONwMQIAEgDzcDCCABIBA3AwAgASABKQPoASABKQPIAYU3A2AgASABKQPgASABKQPAAYU3A1ggASABKQPYASABKQO4AYU3A1AgASABKQPQASABKQOwAYU3A0ggAkFgaiECIAdBf2oiBw0ACwsgAUEoaiEJQgAhCEGACSELIBNBCHJB/wFxIQoDQCABQbABaiABIAlBwAAgCCAKEAIgASABKQPQASIDIAEpA7ABhTcDcCABIAEpA9gBIgQgASkDuAGFNwN4IAEgASkD4AEiBSABKQPAAYU3A4ABIAEgDSABKQPoASIGhTcDqAEgASAOIAWFNwOgASABIA8gBIU3A5gBIAEgECADhTcDkAEgASAGIAEpA8gBhTcDiAEgAEHAACAAQcAASRsiEUF/aiESAkACQCARQQdxIhMNACABQfAAaiECIAshByARIRQMAQsgEUH4AHEhFCABQfAAaiECIAshBwNAIAcgAi0AADoAACAHQQFqIQcgAkEBaiECIBNBf2oiEw0ACwsCQCASQQdJDQADQCAHIAIpAAA3AAAgB0EIaiEHIAJBCGohAiAUQXhqIhQNAAsLIAhCAXwhCCALIBFqIQsgACARayIADQALCyABQfABaiQAC6MCAQR+AkACQCAAQSBGDQBCq7OP/JGjs/DbACEBQv+kuYjFkdqCm38hAkLy5rvjo6f9p6V/IQNC58yn0NbQ67O7fyEEQQAhAAwBC0EAKQOYCSEBQQApA5AJIQJBACkDiAkhA0EAKQOACSEEQRAhAAtBACAAOgCKigFBAEIANwOAigFBAEIANwP4iQFBAEIANwPwiQFBAEIANwPoiQFBAEIANwPgiQFBAEIANwPYiQFBAEIANwPQiQFBAEIANwPIiQFBAEIANwPAiQFBACABNwO4iQFBACACNwOwiQFBACADNwOoiQFBACAENwOgiQFBACABNwOYiQFBACACNwOQiQFBACADNwOIiQFBACAENwOAiQFBAEEAOgCQigFBAEEAOwGIigELBgAgABADCwYAIAAQBwsGAEGAiQELqwIBBH4CQAJAIAFBIEYNAEKrs4/8kaOz8NsAIQNC/6S5iMWR2oKbfyEEQvLmu+Ojp/2npX8hBULnzKfQ1tDrs7t/IQZBACEBDAELQQApA5gJIQNBACkDkAkhBEEAKQOICSEFQQApA4AJIQZBECEBC0EAIAE6AIqKAUEAQgA3A4CKAUEAQgA3A/iJAUEAQgA3A/CJAUEAQgA3A+iJAUEAQgA3A+CJAUEAQgA3A9iJAUEAQgA3A9CJAUEAQgA3A8iJAUEAQgA3A8CJAUEAIAM3A7iJAUEAIAQ3A7CJAUEAIAU3A6iJAUEAIAY3A6CJAUEAIAM3A5iJAUEAIAQ3A5CJAUEAIAU3A4iJAUEAIAY3A4CJAUEAQQA6AJCKAUEAQQA7AYiKASAAEAMgAhAHCwsLAQBBgAgLBHgHAAA=",Gx="215d875f",t0={name:jx,data:Wx,hash:Gx};let eR=new a,Nc=null;function i0(w){return!Number.isInteger(w)||w<8||w%8!==0?new Error("Invalid variant! Valid values: 8, 16, ..."):null}function Xz(w,x=256,C=null){if(i0(x))return Promise.reject(i0(x));let _=null,K=0;if(C!==null){if(_=y(C),_.length!==32)return Promise.reject(new Error("Key length must be exactly 32 bytes"));K=32}let J=x/8,te=J;if(Nc===null||Nc.hashLength!==J)return Y(eR,t0,J).then(re=>(Nc=re,K===32&&Nc.writeMemory(_),Nc.calculate(w,K,te)));try{K===32&&Nc.writeMemory(_);let re=Nc.calculate(w,K,te);return Promise.resolve(re)}catch(re){return Promise.reject(re)}}function Zz(w=256,x=null){if(i0(w))return Promise.reject(i0(w));let C=null,_=0;if(x!==null){if(C=y(x),C.length!==32)return Promise.reject(new Error("Key length must be exactly 32 bytes"));_=32}let K=w/8,J=K;return M(t0,K).then(te=>{_===32&&te.writeMemory(C),te.init(_);let re={init:_===32?()=>(te.writeMemory(C),te.init(_),re):()=>(te.init(_),re),update:ye=>(te.update(ye),re),digest:ye=>te.digest(ye,J),save:()=>te.save(),load:ye=>(te.load(ye),re),blockSize:64,digestSize:K};return re})}var e$="crc32",t$="AGFzbQEAAAABEQRgAAF/YAF/AGAAAGACf38AAwgHAAEBAQIAAwUEAQECAgYOAn8BQZDJBQt/AEGACAsHcAgGbWVtb3J5AgAOSGFzaF9HZXRCdWZmZXIAAAlIYXNoX0luaXQAAgtIYXNoX1VwZGF0ZQADCkhhc2hfRmluYWwABA1IYXNoX0dldFN0YXRlAAUOSGFzaF9DYWxjdWxhdGUABgpTVEFURV9TSVpFAwEKkggHBQBBgAkLwwMBA39BgIkBIQFBACECA0AgAUEAQQBBAEEAQQBBAEEAQQAgAkEBcWsgAHEgAkEBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnM2AgAgAUEEaiEBIAJBAWoiAkGAAkcNAAtBACEAA0AgAEGEkQFqIABBhIkBaigCACICQf8BcUECdEGAiQFqKAIAIAJBCHZzIgI2AgAgAEGEmQFqIAJB/wFxQQJ0QYCJAWooAgAgAkEIdnMiAjYCACAAQYShAWogAkH/AXFBAnRBgIkBaigCACACQQh2cyICNgIAIABBhKkBaiACQf8BcUECdEGAiQFqKAIAIAJBCHZzIgI2AgAgAEGEsQFqIAJB/wFxQQJ0QYCJAWooAgAgAkEIdnMiAjYCACAAQYS5AWogAkH/AXFBAnRBgIkBaigCACACQQh2cyICNgIAIABBhMEBaiACQf8BcUECdEGAiQFqKAIAIAJBCHZzNgIAIABBBGoiAEH8B0cNAAsLJwACQEEAKAKAyQEgAEYNACAAEAFBACAANgKAyQELQQBBADYChMkBC4gDAQN/QQAoAoTJAUF/cyEBQYAJIQICQCAAQQhJDQBBgAkhAgNAIAJBBGooAgAiA0EOdkH8B3FBgJEBaigCACADQRZ2QfwHcUGAiQFqKAIAcyADQQZ2QfwHcUGAmQFqKAIAcyADQf8BcUECdEGAoQFqKAIAcyACKAIAIAFzIgFBFnZB/AdxQYCpAWooAgBzIAFBDnZB/AdxQYCxAWooAgBzIAFBBnZB/AdxQYC5AWooAgBzIAFB/wFxQQJ0QYDBAWooAgBzIQEgAkEIaiECIABBeGoiAEEHSw0ACwsCQCAARQ0AAkACQCAAQQFxDQAgACEDDAELIAFB/wFxIAItAABzQQJ0QYCJAWooAgAgAUEIdnMhASACQQFqIQIgAEF/aiEDCyAAQQFGDQADQCABQf8BcSACLQAAc0ECdEGAiQFqKAIAIAFBCHZzIgFB/wFxIAJBAWotAABzQQJ0QYCJAWooAgAgAUEIdnMhASACQQJqIQIgA0F+aiIDDQALC0EAIAFBf3M2AoTJAQsyAQF/QQBBACgChMkBIgBBGHQgAEGA/gNxQQh0ciAAQQh2QYD+A3EgAEEYdnJyNgKACQsGAEGEyQELWQACQEEAKAKAyQEgAUYNACABEAFBACABNgKAyQELQQBBADYChMkBIAAQA0EAQQAoAoTJASIBQRh0IAFBgP4DcUEIdHIgAUEIdkGA/gNxIAFBGHZycjYCgAkLCwsBAEGACAsEBAAAAA==",i$="d2eba587",tR={name:e$,data:t$,hash:i$};let r$=new a,r0=null;function n0(w){return!Number.isInteger(w)||w<0||w>4294967295?new Error("Polynomial must be a valid 32-bit long unsigned integer"):null}function n$(w,x=3988292384){if(n0(x))return Promise.reject(n0(x));if(r0===null)return Y(r$,tR,4).then(C=>(r0=C,r0.calculate(w,x)));try{let C=r0.calculate(w,x);return Promise.resolve(C)}catch(C){return Promise.reject(C)}}function s$(w=3988292384){return n0(w)?Promise.reject(n0(w)):M(tR,4).then(x=>{x.init(w);let C={init:()=>(x.init(w),C),update:_=>(x.update(_),C),digest:_=>x.digest(_),save:()=>x.save(),load:_=>(x.load(_),C),blockSize:4,digestSize:4};return C})}var a$="crc64",o$="AGFzbQEAAAABDANgAAF/YAAAYAF/AAMHBgABAgEAAQUEAQECAgYOAn8BQZCJBgt/AEGACAsHcAgGbWVtb3J5AgAOSGFzaF9HZXRCdWZmZXIAAAlIYXNoX0luaXQAAQtIYXNoX1VwZGF0ZQACCkhhc2hfRmluYWwAAw1IYXNoX0dldFN0YXRlAAQOSGFzaF9DYWxjdWxhdGUABQpTVEFURV9TSVpFAwEKgwgGBQBBgAkL9QMDAX4BfwJ+AkBBACkDgIkCQQApA4AJIgBRDQBBgIkBIQFCACECA0AgAUIAQgBCAEIAQgBCAEIAQgAgAkIBg30gAIMgAkIBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIU3AwAgAUEIaiEBIAJCAXwiAkKAAlINAAtBACEBA0AgAUGImQFqIAFBiIkBaikDACICp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiKkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiLkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiMkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiNkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiOkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiPkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhTcDACABQQhqIgFB+A9HDQALQQAgADcDgIkCC0EAQgA3A4iJAguUAwIBfgJ/QQApA4iJAkJ/hSEBQYAJIQICQCAAQQhJDQBBgAkhAgNAIAIpAwAgAYUiAUIwiKdB/wFxQQN0QYCZAWopAwAgAUI4iKdBA3RBgIkBaikDAIUgAUIoiKdB/wFxQQN0QYCpAWopAwCFIAFCIIinQf8BcUEDdEGAuQFqKQMAhSABpyIDQRV2QfgPcUGAyQFqKQMAhSADQQ12QfgPcUGA2QFqKQMAhSADQQV2QfgPcUGA6QFqKQMAhSADQf8BcUEDdEGA+QFqKQMAhSEBIAJBCGohAiAAQXhqIgBBB0sNAAsLAkAgAEUNAAJAAkAgAEEBcQ0AIAAhAwwBCyABQv8BgyACMQAAhadBA3RBgIkBaikDACABQgiIhSEBIAJBAWohAiAAQX9qIQMLIABBAUYNAANAIAFC/wGDIAIxAACFp0EDdEGAiQFqKQMAIAFCCIiFIgFC/wGDIAJBAWoxAACFp0EDdEGAiQFqKQMAIAFCCIiFIQEgAkECaiECIANBfmoiAw0ACwtBACABQn+FNwOIiQILZAEBfkEAQQApA4iJAiIAQjiGIABCgP4Dg0IohoQgAEKAgPwHg0IYhiAAQoCAgPgPg0IIhoSEIABCCIhCgICA+A+DIABCGIhCgID8B4OEIABCKIhCgP4DgyAAQjiIhISENwOACQsGAEGIiQILAgALCwsBAEGACAsECAAAAA==",c$="c5ac6c16",iR={name:a$,data:o$,hash:c$};let u$=new a,Wl=null,s0=new Uint8Array(8);function rR(w){let x="Polynomial must be provided as a 16 char long hex string";if(typeof w!="string"||w.length!==16)return{hi:0,lo:0,err:new Error(x)};let C=+`0x${w.slice(0,8)}`,_=+`0x${w.slice(8)}`;return Number.isNaN(C)||Number.isNaN(_)?{hi:C,lo:_,err:new Error(x)}:{hi:C,lo:_,err:null}}function Jx(w,x,C){let _=new DataView(w);_.setUint32(0,x,!0),_.setUint32(4,C,!0)}function l$(w,x="c96c5795d7870f42"){let{hi:C,lo:_,err:K}=rR(x);if(K!==null)return Promise.reject(K);if(Wl===null)return Y(u$,iR,8).then(J=>(Wl=J,Jx(s0.buffer,_,C),Wl.writeMemory(s0),Wl.calculate(w)));try{Jx(s0.buffer,_,C),Wl.writeMemory(s0);let J=Wl.calculate(w);return Promise.resolve(J)}catch(J){return Promise.reject(J)}}function d$(w="c96c5795d7870f42"){let{hi:x,lo:C,err:_}=rR(w);return _!==null?Promise.reject(_):M(iR,8).then(K=>{let J=new Uint8Array(8);Jx(J.buffer,C,x),K.writeMemory(J),K.init();let te={init:()=>(K.writeMemory(J),K.init(),te),update:re=>(K.update(re),te),digest:re=>K.digest(re),save:()=>K.save(),load:re=>(K.load(re),te),blockSize:8,digestSize:8};return te})}var f$="md4",h$="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",p$="bd8ce7c7",nR={name:f$,data:h$,hash:p$};let A$=new a,a0=null;function g$(w){if(a0===null)return Y(A$,nR,16).then(x=>(a0=x,a0.calculate(w)));try{let x=a0.calculate(w);return Promise.resolve(x)}catch(x){return Promise.reject(x)}}function m$(){return M(nR,16).then(w=>{w.init();let x={init:()=>(w.init(),x),update:C=>(w.update(C),x),digest:C=>w.digest(C),save:()=>w.save(),load:C=>(w.load(C),x),blockSize:64,digestSize:16};return x})}var I$="md5",y$="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",w$="e6508e4b",sR={name:I$,data:y$,hash:w$};let b$=new a,o0=null;function v$(w){if(o0===null)return Y(b$,sR,16).then(x=>(o0=x,o0.calculate(w)));try{let x=o0.calculate(w);return Promise.resolve(x)}catch(x){return Promise.reject(x)}}function x$(){return M(sR,16).then(w=>{w.init();let x={init:()=>(w.init(),x),update:C=>(w.update(C),x),digest:C=>w.digest(C),save:()=>w.save(),load:C=>(w.load(C),x),blockSize:64,digestSize:16};return x})}var B$="sha1",E$="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",C$="6b530c24",aR={name:B$,data:E$,hash:C$};let k$=new a,c0=null;function S$(w){if(c0===null)return Y(k$,aR,20).then(x=>(c0=x,c0.calculate(w)));try{let x=c0.calculate(w);return Promise.resolve(x)}catch(x){return Promise.reject(x)}}function _$(){return M(aR,20).then(w=>{w.init();let x={init:()=>(w.init(),x),update:C=>(w.update(C),x),digest:C=>w.digest(C),save:()=>w.save(),load:C=>(w.load(C),x),blockSize:64,digestSize:20};return x})}var T$="sha3",Q$="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",N$="fb24e536",u0={name:T$,data:Q$,hash:N$};let R$=new a,lh=null;function l0(w){return[224,256,384,512].includes(w)?null:new Error("Invalid variant! Valid values: 224, 256, 384, 512")}function D$(w,x=512){if(l0(x))return Promise.reject(l0(x));let C=x/8;if(lh===null||lh.hashLength!==C)return Y(R$,u0,C).then(_=>(lh=_,lh.calculate(w,x,6)));try{let _=lh.calculate(w,x,6);return Promise.resolve(_)}catch(_){return Promise.reject(_)}}function O$(w=512){if(l0(w))return Promise.reject(l0(w));let x=w/8;return M(u0,x).then(C=>{C.init(w);let _={init:()=>(C.init(w),_),update:K=>(C.update(K),_),digest:K=>C.digest(K,6),save:()=>C.save(),load:K=>(C.load(K),_),blockSize:200-2*x,digestSize:x};return _})}let F$=new a,dh=null;function d0(w){return[224,256,384,512].includes(w)?null:new Error("Invalid variant! Valid values: 224, 256, 384, 512")}function P$(w,x=512){if(d0(x))return Promise.reject(d0(x));let C=x/8;if(dh===null||dh.hashLength!==C)return Y(F$,u0,C).then(_=>(dh=_,dh.calculate(w,x,1)));try{let _=dh.calculate(w,x,1);return Promise.resolve(_)}catch(_){return Promise.reject(_)}}function U$(w=512){if(d0(w))return Promise.reject(d0(w));let x=w/8;return M(u0,x).then(C=>{C.init(w);let _={init:()=>(C.init(w),_),update:K=>(C.update(K),_),digest:K=>C.digest(K,1),save:()=>C.save(),load:K=>(C.load(K),_),blockSize:200-2*x,digestSize:x};return _})}var H$="sha256",M$="AGFzbQEAAAABEQRgAAF/YAF/AGAAAGACf38AAwgHAAEBAQIAAwUEAQECAgYOAn8BQfCJBQt/AEGACAsHcAgGbWVtb3J5AgAOSGFzaF9HZXRCdWZmZXIAAAlIYXNoX0luaXQAAQtIYXNoX1VwZGF0ZQACCkhhc2hfRmluYWwABA1IYXNoX0dldFN0YXRlAAUOSGFzaF9DYWxjdWxhdGUABgpTVEFURV9TSVpFAwEKnEoHBQBBgAkLnQEAQQBCADcDwIkBQQBBHEEgIABB4AFGIgAbNgLoiQFBAEKnn+anxvST/b5/Qquzj/yRo7Pw2wAgABs3A+CJAUEAQrGWgP6fooWs6ABC/6S5iMWR2oKbfyAAGzcD2IkBQQBCl7rDg5Onlod3QvLmu+Ojp/2npX8gABs3A9CJAUEAQti9loj8oLW+NkLnzKfQ1tDrs7t/IAAbNwPIiQEL7wICAX4Gf0EAQQApA8CJASIBIACtfDcDwIkBAkACQAJAIAGnQT9xIgINAEGACSEDDAELAkBBwAAgAmsiBCAAIAQgAEkbIgNFDQAgA0EDcSEFIAJBgIkBaiEGQQAhAgJAIANBBEkNACADQfwAcSEHQQAhAgNAIAYgAmoiAyACQYAJai0AADoAACADQQFqIAJBgQlqLQAAOgAAIANBAmogAkGCCWotAAA6AAAgA0EDaiACQYMJai0AADoAACAHIAJBBGoiAkcNAAsLIAVFDQADQCAGIAJqIAJBgAlqLQAAOgAAIAJBAWohAiAFQX9qIgUNAAsLIAAgBEkNAUGAiQEQAyAAIARrIQAgBEGACWohAwsCQCAAQcAASQ0AA0AgAxADIANBwABqIQMgAEFAaiIAQT9LDQALCyAARQ0AQQAhAkEAIQUDQCACQYCJAWogAyACai0AADoAACACQQFqIQIgACAFQQFqIgVB/wFxSw0ACwsLoz4BRX9BACAAKAI8IgFBGHQgAUGA/gNxQQh0ciABQQh2QYD+A3EgAUEYdnJyIgFBGXcgAUEOd3MgAUEDdnMgACgCOCICQRh0IAJBgP4DcUEIdHIgAkEIdkGA/gNxIAJBGHZyciICaiAAKAIgIgNBGHQgA0GA/gNxQQh0ciADQQh2QYD+A3EgA0EYdnJyIgRBGXcgBEEOd3MgBEEDdnMgACgCHCIDQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZyciIFaiAAKAIEIgNBGHQgA0GA/gNxQQh0ciADQQh2QYD+A3EgA0EYdnJyIgZBGXcgBkEOd3MgBkEDdnMgACgCACIDQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZyciIHaiAAKAIkIgNBGHQgA0GA/gNxQQh0ciADQQh2QYD+A3EgA0EYdnJyIghqIAJBD3cgAkENd3MgAkEKdnNqIgNqIAAoAhgiCUEYdCAJQYD+A3FBCHRyIAlBCHZBgP4DcSAJQRh2cnIiCkEZdyAKQQ53cyAKQQN2cyAAKAIUIglBGHQgCUGA/gNxQQh0ciAJQQh2QYD+A3EgCUEYdnJyIgtqIAJqIAAoAhAiCUEYdCAJQYD+A3FBCHRyIAlBCHZBgP4DcSAJQRh2cnIiDEEZdyAMQQ53cyAMQQN2cyAAKAIMIglBGHQgCUGA/gNxQQh0ciAJQQh2QYD+A3EgCUEYdnJyIg1qIAAoAjAiCUEYdCAJQYD+A3FBCHRyIAlBCHZBgP4DcSAJQRh2cnIiDmogACgCCCIJQRh0IAlBgP4DcUEIdHIgCUEIdkGA/gNxIAlBGHZyciIPQRl3IA9BDndzIA9BA3ZzIAZqIAAoAigiCUEYdCAJQYD+A3FBCHRyIAlBCHZBgP4DcSAJQRh2cnIiEGogAUEPdyABQQ13cyABQQp2c2oiCUEPdyAJQQ13cyAJQQp2c2oiEUEPdyARQQ13cyARQQp2c2oiEkEPdyASQQ13cyASQQp2c2oiE2ogACgCNCIUQRh0IBRBgP4DcUEIdHIgFEEIdkGA/gNxIBRBGHZyciIVQRl3IBVBDndzIBVBA3ZzIA5qIBJqIAAoAiwiAEEYdCAAQYD+A3FBCHRyIABBCHZBgP4DcSAAQRh2cnIiFkEZdyAWQQ53cyAWQQN2cyAQaiARaiAIQRl3IAhBDndzIAhBA3ZzIARqIAlqIAVBGXcgBUEOd3MgBUEDdnMgCmogAWogC0EZdyALQQ53cyALQQN2cyAMaiAVaiANQRl3IA1BDndzIA1BA3ZzIA9qIBZqIANBD3cgA0ENd3MgA0EKdnNqIhRBD3cgFEENd3MgFEEKdnNqIhdBD3cgF0ENd3MgF0EKdnNqIhhBD3cgGEENd3MgGEEKdnNqIhlBD3cgGUENd3MgGUEKdnNqIhpBD3cgGkENd3MgGkEKdnNqIhtBD3cgG0ENd3MgG0EKdnNqIhxBGXcgHEEOd3MgHEEDdnMgAkEZdyACQQ53cyACQQN2cyAVaiAYaiAOQRl3IA5BDndzIA5BA3ZzIBZqIBdqIBBBGXcgEEEOd3MgEEEDdnMgCGogFGogE0EPdyATQQ13cyATQQp2c2oiHUEPdyAdQQ13cyAdQQp2c2oiHkEPdyAeQQ13cyAeQQp2c2oiH2ogE0EZdyATQQ53cyATQQN2cyAYaiADQRl3IANBDndzIANBA3ZzIAFqIBlqIB9BD3cgH0ENd3MgH0EKdnNqIiBqIBJBGXcgEkEOd3MgEkEDdnMgF2ogH2ogEUEZdyARQQ53cyARQQN2cyAUaiAeaiAJQRl3IAlBDndzIAlBA3ZzIANqIB1qIBxBD3cgHEENd3MgHEEKdnNqIiFBD3cgIUENd3MgIUEKdnNqIiJBD3cgIkENd3MgIkEKdnNqIiNBD3cgI0ENd3MgI0EKdnNqIiRqIBtBGXcgG0EOd3MgG0EDdnMgHmogI2ogGkEZdyAaQQ53cyAaQQN2cyAdaiAiaiAZQRl3IBlBDndzIBlBA3ZzIBNqICFqIBhBGXcgGEEOd3MgGEEDdnMgEmogHGogF0EZdyAXQQ53cyAXQQN2cyARaiAbaiAUQRl3IBRBDndzIBRBA3ZzIAlqIBpqICBBD3cgIEENd3MgIEEKdnNqIiVBD3cgJUENd3MgJUEKdnNqIiZBD3cgJkENd3MgJkEKdnNqIidBD3cgJ0ENd3MgJ0EKdnNqIihBD3cgKEENd3MgKEEKdnNqIilBD3cgKUENd3MgKUEKdnNqIipBD3cgKkENd3MgKkEKdnNqIitBGXcgK0EOd3MgK0EDdnMgH0EZdyAfQQ53cyAfQQN2cyAbaiAnaiAeQRl3IB5BDndzIB5BA3ZzIBpqICZqIB1BGXcgHUEOd3MgHUEDdnMgGWogJWogJEEPdyAkQQ13cyAkQQp2c2oiLEEPdyAsQQ13cyAsQQp2c2oiLUEPdyAtQQ13cyAtQQp2c2oiLmogJEEZdyAkQQ53cyAkQQN2cyAnaiAgQRl3ICBBDndzICBBA3ZzIBxqIChqIC5BD3cgLkENd3MgLkEKdnNqIi9qICNBGXcgI0EOd3MgI0EDdnMgJmogLmogIkEZdyAiQQ53cyAiQQN2cyAlaiAtaiAhQRl3ICFBDndzICFBA3ZzICBqICxqICtBD3cgK0ENd3MgK0EKdnNqIjBBD3cgMEENd3MgMEEKdnNqIjFBD3cgMUENd3MgMUEKdnNqIjJBD3cgMkENd3MgMkEKdnNqIjNqICpBGXcgKkEOd3MgKkEDdnMgLWogMmogKUEZdyApQQ53cyApQQN2cyAsaiAxaiAoQRl3IChBDndzIChBA3ZzICRqIDBqICdBGXcgJ0EOd3MgJ0EDdnMgI2ogK2ogJkEZdyAmQQ53cyAmQQN2cyAiaiAqaiAlQRl3ICVBDndzICVBA3ZzICFqIClqIC9BD3cgL0ENd3MgL0EKdnNqIjRBD3cgNEENd3MgNEEKdnNqIjVBD3cgNUENd3MgNUEKdnNqIjZBD3cgNkENd3MgNkEKdnNqIjdBD3cgN0ENd3MgN0EKdnNqIjhBD3cgOEENd3MgOEEKdnNqIjlBD3cgOUENd3MgOUEKdnNqIjogOCA0IC4gLCAhIBsgGSADIA4gBEEAKALYiQEiO0EadyA7QRV3cyA7QQd3c0EAKALkiQEiPGpBACgC4IkBIj1BACgC3IkBIj5zIDtxID1zaiAHakGY36iUBGoiB0EAKALUiQEiP2oiACAMaiA7IA1qID4gD2ogPSAGaiAAID4gO3NxID5zaiAAQRp3IABBFXdzIABBB3dzakGRid2JB2oiQEEAKALQiQEiQWoiDCAAIDtzcSA7c2ogDEEadyAMQRV3cyAMQQd3c2pBz/eDrntqIkJBACgCzIkBIkNqIg0gDCAAc3EgAHNqIA1BGncgDUEVd3MgDUEHd3NqQaW3181+aiJEQQAoAsiJASIAaiIPIA0gDHNxIAxzaiAPQRp3IA9BFXdzIA9BB3dzakHbhNvKA2oiRSBBIEMgAHNxIEMgAHFzIABBHncgAEETd3MgAEEKd3NqIAdqIgZqIgdqIAUgD2ogCiANaiALIAxqIAcgDyANc3EgDXNqIAdBGncgB0EVd3MgB0EHd3NqQfGjxM8FaiIKIAYgAHMgQ3EgBiAAcXMgBkEedyAGQRN3cyAGQQp3c2ogQGoiDGoiBCAHIA9zcSAPc2ogBEEadyAEQRV3cyAEQQd3c2pBpIX+kXlqIgsgDCAGcyAAcSAMIAZxcyAMQR53IAxBE3dzIAxBCndzaiBCaiINaiIPIAQgB3NxIAdzaiAPQRp3IA9BFXdzIA9BB3dzakHVvfHYemoiQCANIAxzIAZxIA0gDHFzIA1BHncgDUETd3MgDUEKd3NqIERqIgZqIgcgDyAEc3EgBHNqIAdBGncgB0EVd3MgB0EHd3NqQZjVnsB9aiJCIAYgDXMgDHEgBiANcXMgBkEedyAGQRN3cyAGQQp3c2ogRWoiDGoiBWogFiAHaiAQIA9qIAggBGogBSAHIA9zcSAPc2ogBUEadyAFQRV3cyAFQQd3c2pBgbaNlAFqIgggDCAGcyANcSAMIAZxcyAMQR53IAxBE3dzIAxBCndzaiAKaiINaiIPIAUgB3NxIAdzaiAPQRp3IA9BFXdzIA9BB3dzakG+i8ahAmoiDiANIAxzIAZxIA0gDHFzIA1BHncgDUETd3MgDUEKd3NqIAtqIgZqIgcgDyAFc3EgBXNqIAdBGncgB0EVd3MgB0EHd3NqQcP7sagFaiIQIAYgDXMgDHEgBiANcXMgBkEedyAGQRN3cyAGQQp3c2ogQGoiDGoiBCAHIA9zcSAPc2ogBEEadyAEQRV3cyAEQQd3c2pB9Lr5lQdqIhYgDCAGcyANcSAMIAZxcyAMQR53IAxBE3dzIAxBCndzaiBCaiINaiIFaiABIARqIAIgB2ogFSAPaiAFIAQgB3NxIAdzaiAFQRp3IAVBFXdzIAVBB3dzakH+4/qGeGoiByANIAxzIAZxIA0gDHFzIA1BHncgDUETd3MgDUEKd3NqIAhqIgFqIgYgBSAEc3EgBHNqIAZBGncgBkEVd3MgBkEHd3NqQaeN8N55aiIEIAEgDXMgDHEgASANcXMgAUEedyABQRN3cyABQQp3c2ogDmoiAmoiDCAGIAVzcSAFc2ogDEEadyAMQRV3cyAMQQd3c2pB9OLvjHxqIgUgAiABcyANcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiAQaiIDaiINIAwgBnNxIAZzaiANQRp3IA1BFXdzIA1BB3dzakHB0+2kfmoiCCADIAJzIAFxIAMgAnFzIANBHncgA0ETd3MgA0EKd3NqIBZqIgFqIg8gF2ogESANaiAUIAxqIAkgBmogDyANIAxzcSAMc2ogD0EadyAPQRV3cyAPQQd3c2pBho/5/X5qIgYgASADcyACcSABIANxcyABQR53IAFBE3dzIAFBCndzaiAHaiICaiIJIA8gDXNxIA1zaiAJQRp3IAlBFXdzIAlBB3dzakHGu4b+AGoiDCACIAFzIANxIAIgAXFzIAJBHncgAkETd3MgAkEKd3NqIARqIgNqIhEgCSAPc3EgD3NqIBFBGncgEUEVd3MgEUEHd3NqQczDsqACaiINIAMgAnMgAXEgAyACcXMgA0EedyADQRN3cyADQQp3c2ogBWoiAWoiFCARIAlzcSAJc2ogFEEadyAUQRV3cyAUQQd3c2pB79ik7wJqIg8gASADcyACcSABIANxcyABQR53IAFBE3dzIAFBCndzaiAIaiICaiIXaiATIBRqIBggEWogEiAJaiAXIBQgEXNxIBFzaiAXQRp3IBdBFXdzIBdBB3dzakGqidLTBGoiGCACIAFzIANxIAIgAXFzIAJBHncgAkETd3MgAkEKd3NqIAZqIgNqIgkgFyAUc3EgFHNqIAlBGncgCUEVd3MgCUEHd3NqQdzTwuUFaiIUIAMgAnMgAXEgAyACcXMgA0EedyADQRN3cyADQQp3c2ogDGoiAWoiESAJIBdzcSAXc2ogEUEadyARQRV3cyARQQd3c2pB2pHmtwdqIhcgASADcyACcSABIANxcyABQR53IAFBE3dzIAFBCndzaiANaiICaiISIBEgCXNxIAlzaiASQRp3IBJBFXdzIBJBB3dzakHSovnBeWoiGSACIAFzIANxIAIgAXFzIAJBHncgAkETd3MgAkEKd3NqIA9qIgNqIhNqIB4gEmogGiARaiAdIAlqIBMgEiARc3EgEXNqIBNBGncgE0EVd3MgE0EHd3NqQe2Mx8F6aiIaIAMgAnMgAXEgAyACcXMgA0EedyADQRN3cyADQQp3c2ogGGoiAWoiCSATIBJzcSASc2ogCUEadyAJQRV3cyAJQQd3c2pByM+MgHtqIhggASADcyACcSABIANxcyABQR53IAFBE3dzIAFBCndzaiAUaiICaiIRIAkgE3NxIBNzaiARQRp3IBFBFXdzIBFBB3dzakHH/+X6e2oiFCACIAFzIANxIAIgAXFzIAJBHncgAkETd3MgAkEKd3NqIBdqIgNqIhIgESAJc3EgCXNqIBJBGncgEkEVd3MgEkEHd3NqQfOXgLd8aiIXIAMgAnMgAXEgAyACcXMgA0EedyADQRN3cyADQQp3c2ogGWoiAWoiE2ogICASaiAcIBFqIB8gCWogEyASIBFzcSARc2ogE0EadyATQRV3cyATQQd3c2pBx6KerX1qIhkgASADcyACcSABIANxcyABQR53IAFBE3dzIAFBCndzaiAaaiICaiIJIBMgEnNxIBJzaiAJQRp3IAlBFXdzIAlBB3dzakHRxqk2aiIaIAIgAXMgA3EgAiABcXMgAkEedyACQRN3cyACQQp3c2ogGGoiA2oiESAJIBNzcSATc2ogEUEadyARQRV3cyARQQd3c2pB59KkoQFqIhggAyACcyABcSADIAJxcyADQR53IANBE3dzIANBCndzaiAUaiIBaiISIBEgCXNxIAlzaiASQRp3IBJBFXdzIBJBB3dzakGFldy9AmoiFCABIANzIAJxIAEgA3FzIAFBHncgAUETd3MgAUEKd3NqIBdqIgJqIhMgI2ogJiASaiAiIBFqICUgCWogEyASIBFzcSARc2ogE0EadyATQRV3cyATQQd3c2pBuMLs8AJqIhcgAiABcyADcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiAZaiIDaiIJIBMgEnNxIBJzaiAJQRp3IAlBFXdzIAlBB3dzakH827HpBGoiGSADIAJzIAFxIAMgAnFzIANBHncgA0ETd3MgA0EKd3NqIBpqIgFqIhEgCSATc3EgE3NqIBFBGncgEUEVd3MgEUEHd3NqQZOa4JkFaiIaIAEgA3MgAnEgASADcXMgAUEedyABQRN3cyABQQp3c2ogGGoiAmoiEiARIAlzcSAJc2ogEkEadyASQRV3cyASQQd3c2pB1OapqAZqIhggAiABcyADcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiAUaiIDaiITaiAoIBJqICQgEWogJyAJaiATIBIgEXNxIBFzaiATQRp3IBNBFXdzIBNBB3dzakG7laizB2oiFCADIAJzIAFxIAMgAnFzIANBHncgA0ETd3MgA0EKd3NqIBdqIgFqIgkgEyASc3EgEnNqIAlBGncgCUEVd3MgCUEHd3NqQa6Si454aiIXIAEgA3MgAnEgASADcXMgAUEedyABQRN3cyABQQp3c2ogGWoiAmoiESAJIBNzcSATc2ogEUEadyARQRV3cyARQQd3c2pBhdnIk3lqIhkgAiABcyADcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiAaaiIDaiISIBEgCXNxIAlzaiASQRp3IBJBFXdzIBJBB3dzakGh0f+VemoiGiADIAJz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",q$="8c18dd94",f0={name:H$,data:M$,hash:q$};let L$=new a,h0=null;function K$(w){if(h0===null)return Y(L$,f0,28).then(x=>(h0=x,h0.calculate(w,224)));try{let x=h0.calculate(w,224);return Promise.resolve(x)}catch(x){return Promise.reject(x)}}function V$(){return M(f0,28).then(w=>{w.init(224);let x={init:()=>(w.init(224),x),update:C=>(w.update(C),x),digest:C=>w.digest(C),save:()=>w.save(),load:C=>(w.load(C),x),blockSize:64,digestSize:28};return x})}let j$=new a,p0=null;function W$(w){if(p0===null)return Y(j$,f0,32).then(x=>(p0=x,p0.calculate(w,256)));try{let x=p0.calculate(w,256);return Promise.resolve(x)}catch(x){return Promise.reject(x)}}function oR(){return M(f0,32).then(w=>{w.init(256);let x={init:()=>(w.init(256),x),update:C=>(w.update(C),x),digest:C=>w.digest(C),save:()=>w.save(),load:C=>(w.load(C),x),blockSize:64,digestSize:32};return x})}var G$="sha512",J$="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",z$="f2e40eb1",A0={name:G$,data:J$,hash:z$};let $$=new a,g0=null;function Y$(w){if(g0===null)return Y($$,A0,48).then(x=>(g0=x,g0.calculate(w,384)));try{let x=g0.calculate(w,384);return Promise.resolve(x)}catch(x){return Promise.reject(x)}}function X$(){return M(A0,48).then(w=>{w.init(384);let x={init:()=>(w.init(384),x),update:C=>(w.update(C),x),digest:C=>w.digest(C),save:()=>w.save(),load:C=>(w.load(C),x),blockSize:128,digestSize:48};return x})}let Z$=new a,m0=null;function eY(w){if(m0===null)return Y(Z$,A0,64).then(x=>(m0=x,m0.calculate(w,512)));try{let x=m0.calculate(w,512);return Promise.resolve(x)}catch(x){return Promise.reject(x)}}function tY(){return M(A0,64).then(w=>{w.init(512);let x={init:()=>(w.init(512),x),update:C=>(w.update(C),x),digest:C=>w.digest(C),save:()=>w.save(),load:C=>(w.load(C),x),blockSize:128,digestSize:64};return x})}var iY="xxhash32",rY="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",nY="4bb12485",cR={name:iY,data:rY,hash:nY};let sY=new a,I0=null;function y0(w){return!Number.isInteger(w)||w<0||w>4294967295?new Error("Seed must be a valid 32-bit long unsigned integer."):null}function aY(w,x=0){if(y0(x))return Promise.reject(y0(x));if(I0===null)return Y(sY,cR,4).then(C=>(I0=C,I0.calculate(w,x)));try{let C=I0.calculate(w,x);return Promise.resolve(C)}catch(C){return Promise.reject(C)}}function oY(w=0){return y0(w)?Promise.reject(y0(w)):M(cR,4).then(x=>{x.init(w);let C={init:()=>(x.init(w),C),update:_=>(x.update(_),C),digest:_=>x.digest(_),save:()=>x.save(),load:_=>(x.load(_),C),blockSize:16,digestSize:4};return C})}var cY="xxhash64",uY="AGFzbQEAAAABDANgAAF/YAAAYAF/AAMHBgABAgEAAQUEAQECAgYOAn8BQdCJBQt/AEGACAsHcAgGbWVtb3J5AgAOSGFzaF9HZXRCdWZmZXIAAAlIYXNoX0luaXQAAQtIYXNoX1VwZGF0ZQACCkhhc2hfRmluYWwAAw1IYXNoX0dldFN0YXRlAAQOSGFzaF9DYWxjdWxhdGUABQpTVEFURV9TSVpFAwEKmxEGBQBBgAkLYwEBfkEAQgA3A8iJAUEAQQApA4AJIgA3A5CJAUEAIABC+erQ0OfJoeThAHw3A5iJAUEAIABCz9bTvtLHq9lCfDcDiIkBQQAgAELW64Lu6v2J9eAAfDcDgIkBQQBBADYCwIkBC70IAwV/BH4CfwJAIABFDQBBAEEAKQPIiQEgAK18NwPIiQECQEEAKALAiQEiASAAakEfSw0AAkACQCAAQQNxIgINAEGACSEDIAAhAQwBCyAAQXxxIQFBgAkhAwNAQQBBACgCwIkBIgRBAWo2AsCJASAEQaCJAWogAy0AADoAACADQQFqIQMgAkF/aiICDQALCyAAQQRJDQEDQEEAQQAoAsCJASICQQFqNgLAiQEgAkGgiQFqIAMtAAA6AAAgA0EBai0AACECQQBBACgCwIkBIgRBAWo2AsCJASAEQaCJAWogAjoAACADQQJqLQAAIQJBAEEAKALAiQEiBEEBajYCwIkBIARBoIkBaiACOgAAIANBA2otAAAhAkEAQQAoAsCJASIEQQFqNgLAiQEgBEGgiQFqIAI6AAAgA0EEaiEDIAFBfGoiAQ0ADAILCyAAQeAIaiEFAkACQCABDQBBACkDmIkBIQZBACkDkIkBIQdBACkDiIkBIQhBACkDgIkBIQlBgAkhAwwBC0GACSEDAkAgAUEfSw0AQYAJIQMCQAJAQQAgAWtBA3EiBA0AIAEhAgwBCyABIQIDQCACQaCJAWogAy0AADoAACACQQFqIQIgA0EBaiEDIARBf2oiBA0ACwsgAUFjakEDSQ0AQSAgAmshCkEAIQQDQCACIARqIgFBoIkBaiADIARqIgstAAA6AAAgAUGhiQFqIAtBAWotAAA6AAAgAUGiiQFqIAtBAmotAAA6AAAgAUGjiQFqIAtBA2otAAA6AAAgCiAEQQRqIgRHDQALIAMgBGohAwtBAEEAKQOgiQFCz9bTvtLHq9lCfkEAKQOAiQF8Qh+JQoeVr6+Ytt6bnn9+Igk3A4CJAUEAQQApA6iJAULP1tO+0ser2UJ+QQApA4iJAXxCH4lCh5Wvr5i23puef34iCDcDiIkBQQBBACkDsIkBQs/W077Sx6vZQn5BACkDkIkBfEIfiUKHla+vmLbem55/fiIHNwOQiQFBAEEAKQO4iQFCz9bTvtLHq9lCfkEAKQOYiQF8Qh+JQoeVr6+Ytt6bnn9+IgY3A5iJAQsgAEGACWohAgJAIAMgBUsNAANAIAMpAwBCz9bTvtLHq9lCfiAJfEIfiUKHla+vmLbem55/fiEJIANBGGopAwBCz9bTvtLHq9lCfiAGfEIfiUKHla+vmLbem55/fiEGIANBEGopAwBCz9bTvtLHq9lCfiAHfEIfiUKHla+vmLbem55/fiEHIANBCGopAwBCz9bTvtLHq9lCfiAIfEIfiUKHla+vmLbem55/fiEIIANBIGoiAyAFTQ0ACwtBACAGNwOYiQFBACAHNwOQiQFBACAINwOIiQFBACAJNwOAiQFBACACIANrNgLAiQEgAiADRg0AQQAhAgNAIAJBoIkBaiADIAJqLQAAOgAAIAJBAWoiAkEAKALAiQFJDQALCwvlBwIFfgV/AkACQEEAKQPIiQEiAEIgVA0AQQApA4iJASIBQgeJQQApA4CJASICQgGJfEEAKQOQiQEiA0IMiXxBACkDmIkBIgRCEol8IAJCz9bTvtLHq9lCfkIfiUKHla+vmLbem55/foVCh5Wvr5i23puef35C49zKlfzO8vWFf3wgAULP1tO+0ser2UJ+Qh+JQoeVr6+Ytt6bnn9+hUKHla+vmLbem55/fkLj3MqV/M7y9YV/fCADQs/W077Sx6vZQn5CH4lCh5Wvr5i23puef36FQoeVr6+Ytt6bnn9+QuPcypX8zvL1hX98IARCz9bTvtLHq9lCfkIfiUKHla+vmLbem55/foVCh5Wvr5i23puef35C49zKlfzO8vWFf3whAQwBC0EAKQOQiQFCxc/ZsvHluuonfCEBCyABIAB8IQBBoIkBIQVBqIkBIQYCQEEAKALAiQEiB0GgiQFqIghBqIkBSQ0AQaCJASEFAkAgB0F4aiIJQQhxDQBBACkDoIkBQs/W077Sx6vZQn5CH4lCh5Wvr5i23puef34gAIVCG4lCh5Wvr5i23puef35C49zKlfzO8vWFf3whAEGwiQEhBkGoiQEhBSAJQQhJDQELA0AgBikDAELP1tO+0ser2UJ+Qh+JQoeVr6+Ytt6bnn9+IAUpAwBCz9bTvtLHq9lCfkIfiUKHla+vmLbem55/fiAAhUIbiUKHla+vmLbem55/fkLj3MqV/M7y9YV/fIVCG4lCh5Wvr5i23puef35C49zKlfzO8vWFf3whACAGQQhqIQUgBkEQaiIGIAhNDQALIAZBeGohBQsCQAJAIAVBBGoiCSAITQ0AIAUhCQwBCyAFNQIAQoeVr6+Ytt6bnn9+IACFQheJQs/W077Sx6vZQn5C+fPd8Zn2masWfCEACwJAIAkgCEYNACAHQZ+JAWohBQJAAkAgByAJa0EBcQ0AIAkhBgwBCyAJQQFqIQYgCTEAAELFz9my8eW66id+IACFQguJQoeVr6+Ytt6bnn9+IQALIAUgCUYNAANAIAZBAWoxAABCxc/ZsvHluuonfiAGMQAAQsXP2bLx5brqJ34gAIVCC4lCh5Wvr5i23puef36FQguJQoeVr6+Ytt6bnn9+IQAgBkECaiIGIAhHDQALC0EAIABCIYggAIVCz9bTvtLHq9lCfiIAQh2IIACFQvnz3fGZ9pmrFn4iAEIgiCAAhSIBQjiGIAFCgP4Dg0IohoQgAUKAgPwHg0IYhiABQoCAgPgPg0IIhoSEIABCCIhCgICA+A+DIABCGIhCgID8B4OEIABCKIhCgP4DgyAAQjiIhISENwOACQsGAEGAiQELAgALCwsBAEGACAsEUAAAAA==",lY="177fbfa3",uR={name:cY,data:uY,hash:lY};let dY=new a,Gl=null,w0=new Uint8Array(8);function fo(w){return!Number.isInteger(w)||w<0||w>4294967295?new Error("Seed must be given as two valid 32-bit long unsigned integers (lo + high)."):null}function zx(w,x,C){let _=new DataView(w);_.setUint32(0,x,!0),_.setUint32(4,C,!0)}function fY(w,x=0,C=0){if(fo(x))return Promise.reject(fo(x));if(fo(C))return Promise.reject(fo(C));if(Gl===null)return Y(dY,uR,8).then(_=>(Gl=_,zx(w0.buffer,x,C),Gl.writeMemory(w0),Gl.calculate(w)));try{zx(w0.buffer,x,C),Gl.writeMemory(w0);let _=Gl.calculate(w);return Promise.resolve(_)}catch(_){return Promise.reject(_)}}function hY(w=0,x=0){return fo(w)?Promise.reject(fo(w)):fo(x)?Promise.reject(fo(x)):M(uR,8).then(C=>{let _=new Uint8Array(8);zx(_.buffer,w,x),C.writeMemory(_),C.init();let K={init:()=>(C.writeMemory(_),C.init(),K),update:J=>(C.update(J),K),digest:J=>C.digest(J),save:()=>C.save(),load:J=>(C.load(J),K),blockSize:32,digestSize:8};return K})}var pY="xxhash3",AY="AGFzbQEAAAABNAhgAAF/YAR/f39/AGAHf39/f39/fwBgBH9+fn4BfmAEf39/fgF+YAN/f34BfmAAAGABfwADDg0AAQIDBAUFBQYHBgAGBQQBAQICBg4CfwFBwI4FC38AQcAJCwdwCAZtZW1vcnkCAA5IYXNoX0dldEJ1ZmZlcgAACUhhc2hfSW5pdAAIC0hhc2hfVXBkYXRlAAkKSGFzaF9GaW5hbAAKDUhhc2hfR2V0U3RhdGUACw5IYXNoX0NhbGN1bGF0ZQAMClNUQVRFX1NJWkUDAQr6QQ0FAEGACgvkAwMPfgF/AX4CQCADRQ0AIAApAzAhBCAAKQM4IQUgACkDICEGIAApAyghByAAKQMQIQggACkDGCEJIAApAwAhCiAAKQMIIQsDQCAFIAFBMGopAwAiDHwgAkE4aikDACABQThqKQMAIg2FIgVCIIggBUL/////D4N+fCEFIAcgAUEgaikDACIOfCACQShqKQMAIAFBKGopAwAiD4UiB0IgiCAHQv////8Pg358IQcgCSABQRBqKQMAIhB8IAJBGGopAwAgAUEYaikDACIRhSIJQiCIIAlC/////w+DfnwhCSALIAEpAwAiEnwgAkEIaiITKQMAIAFBCGopAwAiFIUiC0IgiCALQv////8Pg358IQsgAkEwaikDACAMhSIMQiCIIAxC/////w+DfiAEfCANfCEEIAJBIGopAwAgDoUiDEIgiCAMQv////8Pg34gBnwgD3whBiACQRBqKQMAIBCFIgxCIIggDEL/////D4N+IAh8IBF8IQggAikDACAShSIMQiCIIAxC/////w+DfiAKfCAUfCEKIAFBwABqIQEgEyECIANBf2oiAw0ACyAAIAk3AxggACAKNwMAIAAgCzcDCCAAIAc3AyggACAINwMQIAAgBTcDOCAAIAY3AyAgACAENwMwCwveAgIBfwF+AkAgBCACIAEoAgAiB2siAkkNACAAIAMgBSAHQQN0aiACEAEgACAFIAZqIgcpAwAgACkDACIIQi+IhSAIhUKx893xCX43AwAgACAHKQMIIAApAwgiCEIviIUgCIVCsfPd8Ql+NwMIIAAgBykDECAAKQMQIghCL4iFIAiFQrHz3fEJfjcDECAAIAcpAxggACkDGCIIQi+IhSAIhUKx893xCX43AxggACAHKQMgIAApAyAiCEIviIUgCIVCsfPd8Ql+NwMgIAAgBykDKCAAKQMoIghCL4iFIAiFQrHz3fEJfjcDKCAAIAcpAzAgACkDMCIIQi+IhSAIhUKx893xCX43AzAgACAHKQM4IAApAzgiCEIviIUgCIVCsfPd8Ql+NwM4IAAgAyACQQZ0aiAFIAQgAmsiBxABIAEgBzYCAA8LIAAgAyAFIAdBA3RqIAQQASABIAcgBGo2AgALhQEBAX8gAiABhSADpyIEQRh0IARBgP4DcUEIdHIgBEEIdkGA/gNxIARBGHZycq1CIIYgA4V9QQA1AoCMAUIghiAAQfyLAWo1AgCEhSIDQjGJIANCGImFIAOFQqW+4/TRjIfZn39+IgNCI4ggAK18IAOFQqW+4/TRjIfZn39+IgNCHIggA4ULZwAgAiABc60gA3wiA0IhiEEALQCAjAFBEHQgAEEIdHIgAEEBdkGAjAFqLQAAQRh0ciAAQf+LAWotAAByrYUgA4VCz9bTvtLHq9lCfiIDQh2IIAOFQvnz3fGZ9pmrFn4iA0IgiCADhQuJAwEEfgJAIABBCUkNAEEAKQOAjAEgASkDICABKQMYhSACfIUiA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhCAArXwgAEH4iwFqKQMAIAEpAzAgASkDKIUgAn2FIgJ8IAJC/////w+DIgQgA0IgiCIFfiIGQv////8PgyACQiCIIgIgA0L/////D4MiA358IAQgA34iA0IgiHwiBEIghiADQv////8Pg4QgBkIgiCACIAV+fCAEQiCIfIV8IgNCJYggA4VC+fPd8ZnymasWfiIDQiCIIAOFDwsCQCAAQQRJDQAgACABQQhqKQMAIAFBEGopAwAgAhADDwsCQCAARQ0AIAAgASgCACABQQRqKAIAIAIQBA8LIAEpAzggASkDQIUgAoUiA0IhiCADhULP1tO+0ser2UJ+IgNCHYggA4VC+fPd8Zn2masWfiIDQiCIIAOFC94IAQZ+IACtQoeVr6+Ytt6bnn9+IQMCQCAAQSFJDQACQCAAQcEASQ0AAkAgAEHhAEkNACABKQNoIAJ9QQApA7iMAYUiBEL/////D4MiBSABKQNgIAJ8QQApA7CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgA3wgASkDeCACfSAAQciLAWopAwCFIgNC/////w+DIgQgASkDcCACfCAAQcCLAWopAwCFIgVCIIgiBn4iB0L/////D4MgA0IgiCIDIAVC/////w+DIgV+fCAEIAV+IgRCIIh8IgVCIIYgBEL/////D4OEIAdCIIggAyAGfnwgBUIgiHyFfCEDCyABKQNIIAJ9QQApA6iMAYUiBEL/////D4MiBSABKQNAIAJ8QQApA6CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgA3wgASkDWCACfSAAQdiLAWopAwCFIgNC/////w+DIgQgASkDUCACfCAAQdCLAWopAwCFIgVCIIgiBn4iB0L/////D4MgA0IgiCIDIAVC/////w+DIgV+fCAEIAV+IgRCIIh8IgVCIIYgBEL/////D4OEIAdCIIggAyAGfnwgBUIgiHyFfCEDCyABKQMoIAJ9QQApA5iMAYUiBEL/////D4MiBSABKQMgIAJ8QQApA5CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgA3wgASkDOCACfSAAQeiLAWopAwCFIgNC/////w+DIgQgASkDMCACfCAAQeCLAWopAwCFIgVCIIgiBn4iB0L/////D4MgA0IgiCIDIAVC/////w+DIgV+fCAEIAV+IgRCIIh8IgVCIIYgBEL/////D4OEIAdCIIggAyAGfnwgBUIgiHyFfCEDCyABKQMIIAJ9QQApA4iMAYUiBEL/////D4MiBSABKQMAIAJ8QQApA4CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgA3wgASkDGCACfSAAQfiLAWopAwCFIgNC/////w+DIgQgASkDECACfCAAQfCLAWopAwCFIgJCIIgiBX4iBkL/////D4MgA0IgiCIDIAJC/////w+DIgJ+fCAEIAJ+IgJCIIh8IgRCIIYgAkL/////D4OEIAZCIIggAyAFfnwgBEIgiHyFfCICQiWIIAKFQvnz3fGZ8pmrFn4iAkIgiCAChQv8CgQBfwV+An8BfkEAIQMgASkDeCACfUEAKQP4jAGFIgRC/////w+DIgUgASkDcCACfEEAKQPwjAGFIgZCIIgiB34iCEL/////D4MgBEIgiCIEIAZC/////w+DIgZ+fCAFIAZ+IgVCIIh8IgZCIIYgBUL/////D4OEIAhCIIggBCAHfnwgBkIgiHyFIAEpA2ggAn1BACkD6IwBhSIEQv////8PgyIFIAEpA2AgAnxBACkD4IwBhSIGQiCIIgd+IghC/////w+DIARCIIgiBCAGQv////8PgyIGfnwgBSAGfiIFQiCIfCIGQiCGIAVC/////w+DhCAIQiCIIAQgB358IAZCIIh8hSABKQNYIAJ9QQApA9iMAYUiBEL/////D4MiBSABKQNQIAJ8QQApA9CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgASkDSCACfUEAKQPIjAGFIgRC/////w+DIgUgASkDQCACfEEAKQPAjAGFIgZCIIgiB34iCEL/////D4MgBEIgiCIEIAZC/////w+DIgZ+fCAFIAZ+IgVCIIh8IgZCIIYgBUL/////D4OEIAhCIIggBCAHfnwgBkIgiHyFIAEpAzggAn1BACkDuIwBhSIEQv////8PgyIFIAEpAzAgAnxBACkDsIwBhSIGQiCIIgd+IghC/////w+DIARCIIgiBCAGQv////8PgyIGfnwgBSAGfiIFQiCIfCIGQiCGIAVC/////w+DhCAIQiCIIAQgB358IAZCIIh8hSABKQMoIAJ9QQApA6iMAYUiBEL/////D4MiBSABKQMgIAJ8QQApA6CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgASkDGCACfUEAKQOYjAGFIgRC/////w+DIgUgASkDECACfEEAKQOQjAGFIgZCIIgiB34iCEL/////D4MgBEIgiCIEIAZC/////w+DIgZ+fCAFIAZ+IgVCIIh8IgZCIIYgBUL/////D4OEIAhCIIggBCAHfnwgBkIgiHyFIAEpAwggAn1BACkDiIwBhSIEQv////8PgyIFIAEpAwAgAnxBACkDgIwBhSIGQiCIIgd+IghC/////w+DIARCIIgiBCAGQv////8PgyIGfnwgBSAGfiIFQiCIfCIGQiCGIAVC/////w+DhCAIQiCIIAQgB358IAZCIIh8hSAArUKHla+vmLbem55/fnx8fHx8fHx8IgRCJYggBIVC+fPd8ZnymasWfiIEQiCIIASFIQQCQCAAQZABSA0AIABBBHZBeGohCQNAIAEgA2oiCkELaikDACACfSADQYiNAWopAwCFIgVC/////w+DIgYgCkEDaikDACACfCADQYCNAWopAwCFIgdCIIgiCH4iC0L/////D4MgBUIgiCIFIAdC/////w+DIgd+fCAGIAd+IgZCIIh8IgdCIIYgBkL/////D4OEIAtCIIggBSAIfnwgB0IgiHyFIAR8IQQgA0EQaiEDIAlBf2oiCQ0ACwsgASkDfyACfSAAQfiLAWopAwCFIgVC/////w+DIgYgASkDdyACfCAAQfCLAWopAwCFIgJCIIgiB34iCEL/////D4MgBUIgiCIFIAJC/////w+DIgJ+fCAGIAJ+IgJCIIh8IgZCIIYgAkL/////D4OEIAhCIIggBSAHfnwgBkIgiHyFIAR8IgJCJYggAoVC+fPd8ZnymasWfiICQiCIIAKFC98FAgF+AX8CQAJAQQApA4AKIgBQRQ0AQYAIIQFCACEADAELAkBBACkDoI4BIABSDQBBACEBDAELQQAhAUEAQq+v79e895Kg/gAgAH03A/iLAUEAIABCxZbr+djShYIofDcD8IsBQQBCj/Hjja2P9JhOIAB9NwPoiwFBACAAQqus+MXV79HQfHw3A+CLAUEAQtOt1LKShbW0nn8gAH03A9iLAUEAIABCl5r0jvWWvO3JAHw3A9CLAUEAQsWDgv2v/8SxayAAfTcDyIsBQQAgAELqi7OdyOb09UN8NwPAiwFBAELIv/rLnJveueQAIAB9NwO4iwFBACAAQoqjgd/Ume2sMXw3A7CLAUEAQvm57738+MKnHSAA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QQApA4CKATcDACACQQApA4iKATcDCCACQQApA5CKATcDECACQQApA5iKATcDGCACQQApA6CKATcDICACQQApA6iKATcDKCACQQApA7CKASIFNwMwIAJBACkDuIoBIgY3AzgCQAJAQQAoAoCOASIHQcAASQ0AIAJBACgCiI4BNgJAIAIgAkHAAGpBACgCmI4BQYCMASAHQX9qQQZ2IANBACgCnI4BIgAQAiADIABqIgBBeWopAwAhCCAAKQMJIQkgACkDGSEKIAApAykhCyAHQcCLAWopAwAhBSAAKQMBIQwgB0HIiwFqKQMAIQYgB0HQiwFqKQMAIQ0gACkDESEOIAdB2IsBaikDACEPIAdB4IsBaikDACEQIAApAyEhESAHQeiLAWopAwAhEiACKQMAIRMgAikDECEUIAIpAyAhFSACKQMwIRYgAikDCCEXIAIpAxghGCACKQMoIRkgAiACKQM4IAdB8IsBaikDACIafCAAKQMxIAdB+IsBaikDACIbhSIcQiCIIBxC/////w+Dfnw3AzggGSAQfCARIBKFIhFCIIggEUL/////D4N+fCERIBggDXwgDiAPhSIOQiCIIA5C/////w+DfnwhDiAXIAV8IAwgBoUiDEIgiCAMQv////8Pg358IQwgGyAWIAsgGoUiC0IgiCALQv////8Pg358fCELIBIgFSAKIBCFIhBCIIggEEL/////D4N+fHwhECAPIBQgCSANhSINQiCIIA1C/////w+Dfnx8IRIgBiATIAggBYUiBUIgiCAFQv////8Pg358fCEIDAELIAdBwI0BaiEdQcAAIAdrIR4gAkHAAGohAAJAAkACQCAHQThNDQAgHiEfDAELAkACQEE4IAdrQQN2QQFqQQdxIh8NACACQcAAaiEAIB4hHwwBCyACQcAAaiEAIB9BA3QiICEfA0AgACAdKQMANwMAIABBCGohACAdQQhqIR0gH0F4aiIfDQALQcAAIAcgIGprIR8LAkAgBw0AA0AgACAdKQMANwMAIABBCGogHUEIaikDADcDACAAQRBqIB1BEGopAwA3AwAgAEEYaiAdQRhqKQMANwMAIABBIGogHUEgaikDADcDACAAQShqIB1BKGopAwA3AwAgAEEwaiAdQTBqKQMANwMAIABBOGogHUE4aikDADcDACAAQcAAaiEAIB1BwABqIR0gH0FAaiIfQQdLDQALCyAfRQ0BCyAfQX9qISECQCAfQQdxIiBFDQAgH0F4cSEfA0AgACAdLQAAOgAAIABBAWohACAdQQFqIR0gIEF/aiIgDQALCyAhQQdJDQADQCAAIB0pAAA3AAAgAEEIaiEAIB1BCGohHSAfQXhqIh8NAAsLIAJBwABqIB5qIR1BgIwBIQACQAJAAkAgB0EISQ0AAkAgB0E4akEDdkEBakEHcSIfDQAMAgsgH0EDdCEgQYCMASEAA0AgHSAAKQMANwMAIB1BCGohHSAAQQhqIQAgH0F/aiIfDQALIAcgIGshBwsgB0UNAQJAAkAgB0EHcSIgDQAgByEfDAELIAdBeHEhHwNAIB0gAC0AADoAACAdQQFqIR0gAEEBaiEAICBBf2oiIA0ACwsgB0EISQ0BCwNAIB0gACkAADcAACAdQQhqIR0gAEEIaiEAIB9BeGoiHw0ACwsgA0EAKAKcjgFqIgBBeWopAwAhCiAAKQMJIRMgACkDGSEUIAApAykhCyAAKQMBIQwgACkDESEOIAApAyEhESACKQMAIRUgAikDECEWIAIpAyAhFyACKQMIIRggAikDQCENIAIpA0ghDyACKQMYIRkgAikDUCESIAIpA1ghCCACKQMoIRogAikDYCEQIAIpA2ghCSACIAYgAikDcCIbfCAAKQMxIAIpA3giBoUiHEIgiCAcQv////8Pg358NwM4IBogEHwgESAJhSIRQiCIIBFC/////w+DfnwhESAZIBJ8IA4gCIUiDkIgiCAOQv////8Pg358IQ4gGCANfCAMIA+FIgxCIIggDEL/////D4N+fCEMIAYgCyAbhSILQiCIIAtC/////w+DfiAFfHwhCyAJIBcgFCAQhSIFQiCIIAVC/////w+Dfnx8IRAgCCAWIBMgEoUiBUIgiCAFQv////8Pg358fCESIA8gFSAKIA2FIgVCIIggBUL/////D4N+fHwhCAsgAykDQyACKQM4hSIFQv////8PgyIGIAMpAzsgC4UiC0IgiCINfiIPQv////8PgyAFQiCIIgUgC0L/////D4MiC358IAYgC34iBkIgiHwiC0IghiAGQv////8Pg4QgD0IgiCAFIA1+fCALQiCIfIUgAykDMyARhSIFQv////8PgyIGIAMpAysgEIUiC0IgiCINfiIPQv////8PgyAFQiCIIgUgC0L/////D4MiC358IAYgC34iBkIgiHwiC0IghiAGQv////8Pg4QgD0IgiCAFIA1+fCALQiCIfIUgAykDIyAOhSIFQv////8PgyIGIAMpAxsgEoUiC0IgiCINfiIPQv////8PgyAFQiCIIgUgC0L/////D4MiC358IAYgC34iBkIgiHwiC0IghiAGQv////8Pg4QgD0IgiCAFIA1+fCALQiCIfIUgAykDEyAMhSIFQv////8PgyIGIAMpAwsgCIUiC0IgiCINfiIPQv////8PgyAFQiCIIgUgC0L/////D4MiC358IAYgC34iBkIgiHwiC0IghiAGQv////8Pg4QgD0IgiCAFIA1+fCALQiCIfIUgBEKHla+vmLbem55/fnx8fHwiBEIliCAEhUL5893xmfKZqxZ+IgRCIIggBIUhBAwBCyAEpyEAAkBBACkDoI4BIgRQDQACQCAAQRBLDQAgAEGACCAEEAUhBAwCCwJAIABBgAFLDQAgAEGACCAEEAYhBAwCCyAAQYAIIAQQByEEDAELAkAgAEEQSw0AIAAgA0IAEAUhBAwBCwJAIABBgAFLDQAgACADQgAQBiEEDAELIAAgA0IAEAchBAtBACAEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISENwOACiABJAALBgBBgIoBCwIACwvMAQEAQYAIC8QBuP5sOSOkS758AYEs9yGtHN7UbemDkJfbckCkpLezZx/LeeZOzMDleIJa0H3M/3IhuAhGdPdDJI7gNZDmgTomTDwoUruRwwDLiNBlixtTLqNxZEiXog35TjgZ70ap3qzYqPp2P+OcND/53LvHxwtPHYpR4EvNtFkxyJ9+ydl4c2TqxayDNNPrw8WBoP/6E2PrFw3dUbfw2knTFlUmKdRonisWvlh9R6H8j/i40XrQMc5FyzqPlRYEKK/X+8q7S0B+QAIAAA==",gY="5a2fbdbb",lR={name:pY,data:AY,hash:gY};let mY=new a,Jl=null,b0=new Uint8Array(8);function ho(w){return!Number.isInteger(w)||w<0||w>4294967295?new Error("Seed must be given as two valid 32-bit long unsigned integers (lo + high)."):null}function $x(w,x,C){let _=new DataView(w);_.setUint32(0,x,!0),_.setUint32(4,C,!0)}function IY(w,x=0,C=0){if(ho(x))return Promise.reject(ho(x));if(ho(C))return Promise.reject(ho(C));if(Jl===null)return Y(mY,lR,8).then(_=>(Jl=_,$x(b0.buffer,x,C),Jl.writeMemory(b0),Jl.calculate(w)));try{$x(b0.buffer,x,C),Jl.writeMemory(b0);let _=Jl.calculate(w);return Promise.resolve(_)}catch(_){return Promise.reject(_)}}function yY(w=0,x=0){return ho(w)?Promise.reject(ho(w)):ho(x)?Promise.reject(ho(x)):M(lR,8).then(C=>{let _=new Uint8Array(8);$x(_.buffer,w,x),C.writeMemory(_),C.init();let K={init:()=>(C.writeMemory(_),C.init(),K),update:J=>(C.update(J),K),digest:J=>C.digest(J),save:()=>C.save(),load:J=>(C.load(J),K),blockSize:512,digestSize:8};return K})}var wY="xxhash128",bY="AGFzbQEAAAABKwdgAAF/YAR/f39/AGAHf39/f39/fwBgA39/fgF+YAR/f39+AGAAAGABfwADDQwAAQIDBAQEBQYFAAUFBAEBAgIGDgJ/AUHAjgULfwBBwAkLB3AIBm1lbW9yeQIADkhhc2hfR2V0QnVmZmVyAAAJSGFzaF9Jbml0AAcLSGFzaF9VcGRhdGUACApIYXNoX0ZpbmFsAAkNSGFzaF9HZXRTdGF0ZQAKDkhhc2hfQ2FsY3VsYXRlAAsKU1RBVEVfU0laRQMBCqBNDAUAQYAKC+QDAw9+AX8BfgJAIANFDQAgACkDMCEEIAApAzghBSAAKQMgIQYgACkDKCEHIAApAxAhCCAAKQMYIQkgACkDACEKIAApAwghCwNAIAUgAUEwaikDACIMfCACQThqKQMAIAFBOGopAwAiDYUiBUIgiCAFQv////8Pg358IQUgByABQSBqKQMAIg58IAJBKGopAwAgAUEoaikDACIPhSIHQiCIIAdC/////w+DfnwhByAJIAFBEGopAwAiEHwgAkEYaikDACABQRhqKQMAIhGFIglCIIggCUL/////D4N+fCEJIAsgASkDACISfCACQQhqIhMpAwAgAUEIaikDACIUhSILQiCIIAtC/////w+DfnwhCyACQTBqKQMAIAyFIgxCIIggDEL/////D4N+IAR8IA18IQQgAkEgaikDACAOhSIMQiCIIAxC/////w+DfiAGfCAPfCEGIAJBEGopAwAgEIUiDEIgiCAMQv////8Pg34gCHwgEXwhCCACKQMAIBKFIgxCIIggDEL/////D4N+IAp8IBR8IQogAUHAAGohASATIQIgA0F/aiIDDQALIAAgCTcDGCAAIAo3AwAgACALNwMIIAAgBzcDKCAAIAg3AxAgACAFNwM4IAAgBjcDICAAIAQ3AzALC94CAgF/AX4CQCAEIAIgASgCACIHayICSQ0AIAAgAyAFIAdBA3RqIAIQASAAIAUgBmoiBykDACAAKQMAIghCL4iFIAiFQrHz3fEJfjcDACAAIAcpAwggACkDCCIIQi+IhSAIhUKx893xCX43AwggACAHKQMQIAApAxAiCEIviIUgCIVCsfPd8Ql+NwMQIAAgBykDGCAAKQMYIghCL4iFIAiFQrHz3fEJfjcDGCAAIAcpAyAgACkDICIIQi+IhSAIhUKx893xCX43AyAgACAHKQMoIAApAygiCEIviIUgCIVCsfPd8Ql+NwMoIAAgBykDMCAAKQMwIghCL4iFIAiFQrHz3fEJfjcDMCAAIAcpAzggACkDOCIIQi+IhSAIhUKx893xCX43AzggACADIAJBBnRqIAUgBCACayIHEAEgASAHNgIADwsgACADIAUgB0EDdGogBBABIAEgByAEajYCAAvtAwEFfiABKQM4IAApAziFIgNC/////w+DIgQgASkDMCAAKQMwhSIFQiCIIgZ+IgdC/////w+DIANCIIgiAyAFQv////8PgyIFfnwgBCAFfiIEQiCIfCIFQiCGIARC/////w+DhCAHQiCIIAMgBn58IAVCIIh8hSABKQMoIAApAyiFIgNC/////w+DIgQgASkDICAAKQMghSIFQiCIIgZ+IgdC/////w+DIANCIIgiAyAFQv////8PgyIFfnwgBCAFfiIEQiCIfCIFQiCGIARC/////w+DhCAHQiCIIAMgBn58IAVCIIh8hSABKQMYIAApAxiFIgNC/////w+DIgQgASkDECAAKQMQhSIFQiCIIgZ+IgdC/////w+DIANCIIgiAyAFQv////8PgyIFfnwgBCAFfiIEQiCIfCIFQiCGIARC/////w+DhCAHQiCIIAMgBn58IAVCIIh8hSABKQMIIAApAwiFIgNC/////w+DIgQgASkDACAAKQMAhSIFQiCIIgZ+IgdC/////w+DIANCIIgiAyAFQv////8PgyIFfnwgBCAFfiIEQiCIfCIFQiCGIARC/////w+DhCAHQiCIIAMgBn58IAVCIIh8hSACfHx8fCICQiWIIAKFQvnz3fGZ8pmrFn4iAkIgiCAChQu6CAIFfgN/AkAgAUEJSQ0AIAAgAUH4iwFqKQMAIgQgAikDOCACKQMwhSADfIUiBUL/////D4NC95Svrwh+IAVCgICAgHCDfEEAKQOAjAEgAikDKCACKQMghSADfYUgBIUiA0IgiCIEQrHz3fEJfnwgBEKHla+vCH4iBEIgiHwgBEL/////D4MgA0L/////D4MiA0Kx893xCX58IANCh5Wvrwh+IgRCIIh8IgVCIIh8IgNCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIQgBEL/////D4MgAUF/aq1CNoaEIAVCIIZ8hSIEQiCIIgVCz9bTvgJ+IgZC/////w+DIARC/////w+DIgRCvdzKlQx+fCAEQs/W074CfiIEQiCIfCIHQiCGIghCJYggCCAEQv////8Pg4SFQvnz3fGZ8pmrFn4iBEIgiCAEhTcDACAAIAVCvdzKlQx+IANCz9bTvtLHq9lCfnwgBkIgiHwgB0IgiHwiA0IliCADhUL5893xmfKZqxZ+IgNCIIggA4U3AwgPCwJAIAFBBEkNACAAIAIpAxggAikDEIUgA6ciAkEYdCACQYD+A3FBCHRyIAJBCHZBgP4DcSACQRh2cnKtQiCGIAOFfCABQfyLAWo1AgBCIIZBADUCgIwBhIUiA0IgiCIEIAFBAnRBh5Wvr3hqrSIFfiIGQiCIIARCsfPd8Ql+fCAGQv////8PgyADQv////8PgyIDQrHz3fEJfnwgAyAFfiIDQiCIfCIEQiCIfCAEQiCGIANC/////w+DhCIEQgGGfCIDQiWIIAOFQvnz3fGZ8pmrFn4iBUIgiCAFhTcDCCAAIANCA4ggBIUiA0IjiCADhUKlvuP00YyH2Z9/fiIDQhyIIAOFNwMADwsCQCABRQ0AIAAgAigCBCACKAIAc60gA3wiBEIhiEEALQCAjAFBEHQgAUEIdHIiCSABQQF2QYCMAWotAABBGHRyIgogAUH/iwFqLQAAIgFyIguthSAEhULP1tO+0ser2UJ+IgRCHYggBIVC+fPd8Zn2masWfiIEQiCIIASFNwMAIAAgAigCDCACKAIIc60gA30iA0IhiCABQRh0IAtBgP4DcUEIdHIgCUEIdkGA/gNxIApBGHZyckENd62FIAOFQs/W077Sx6vZQn4iA0IdiCADhUL5893xmfaZqxZ+IgNCIIggA4U3AwgPCyAAIAIpA1AgAikDWIUgA4UiBEIhiCAEhULP1tO+0ser2UJ+IgRCHYggBIVC+fPd8Zn2masWfiIEQiCIIASFNwMIIAAgAikDQCACKQNIhSADhSIDQiGIIAOFQs/W077Sx6vZQn4iA0IdiCADhUL5893xmfaZqxZ+IgNCIIggA4U3AwALwwoBCn4gAa0iBEKHla+vmLbem55/fiEFAkACQCABQSFPDQBCACEGDAELQgAhBwJAIAFBwQBJDQBCACEHAkAgAUHhAEkNACACQfgAaikDACADfSABQciLAWopAwAiCIUiB0L/////D4MiCSACKQNwIAN8IAFBwIsBaikDACIKhSILQiCIIgx+Ig1CIIggB0IgiCIHIAx+fCANQv////8PgyAHIAtC/////w+DIgt+fCAJIAt+IgdCIIh8IglCIIh8QQApA7iMASILQQApA7CMASIMfIUgCUIghiAHQv////8Pg4SFIQcgAkHoAGopAwAgA30gC4UiCUL/////D4MiCyACKQNgIAN8IAyFIgxCIIgiDX4iBkL/////D4MgCUIgiCIJIAxC/////w+DIgx+fCALIAx+IgtCIIh8IgxCIIYgC0L/////D4OEIAZCIIggCSANfnwgDEIgiHyFIAV8IAggCnyFIQULIAJB2ABqKQMAIAN9IAFB2IsBaikDACIIhSIJQv////8PgyIKIAIpA1AgA3wgAUHQiwFqKQMAIguFIgxCIIgiDX4iBkL/////D4MgCUIgiCIJIAxC/////w+DIgx+fCAKIAx+IgpCIIh8IgxCIIYgCkL/////D4OEIAZCIIggCSANfnwgDEIgiHyFIAd8QQApA6iMASIJQQApA6CMASIKfIUhByACQcgAaikDACADfSAJhSIJQv////8PgyIMIAIpA0AgA3wgCoUiCkIgiCINfiIGQv////8PgyAJQiCIIgkgCkL/////D4MiCn58IAwgCn4iCkIgiHwiDEIghiAKQv////8Pg4QgBkIgiCAJIA1+fCAMQiCIfIUgBXwgCCALfIUhBQsgAkE4aikDACADfSABQeiLAWopAwAiCIUiCUL/////D4MiCiACKQMwIAN8IAFB4IsBaikDACILhSIMQiCIIg1+IgZC/////w+DIAlCIIgiCSAMQv////8PgyIMfnwgCiAMfiIKQiCIfCIMQiCGIApC/////w+DhCAGQiCIIAkgDX58IAxCIIh8hSAHfEEAKQOYjAEiB0EAKQOQjAEiCXyFIQYgAkEoaikDACADfSAHhSIHQv////8PgyIKIAIpAyAgA3wgCYUiCUIgiCIMfiINQv////8PgyAHQiCIIgcgCUL/////D4MiCX58IAogCX4iCUIgiHwiCkIghiAJQv////8Pg4QgDUIgiCAHIAx+fCAKQiCIfIUgBXwgCCALfIUhBQsgACACQRhqKQMAIAN9IAFB+IsBaikDACIHhSIIQv////8PgyIJIAIpAxAgA3wgAUHwiwFqKQMAIgqFIgtCIIgiDH4iDUL/////D4MgCEIgiCIIIAtC/////w+DIgt+fCAJIAt+IglCIIh8IgtCIIYgCUL/////D4OEIA1CIIggCCAMfnwgC0IgiHyFIAZ8QQApA4iMASIIQQApA4CMASIJfIUiCyACQQhqKQMAIAN9IAiFIghC/////w+DIgwgAikDACADfCAJhSIJQiCIIg1+IgZC/////w+DIAhCIIgiCCAJQv////8PgyIJfnwgDCAJfiIJQiCIfCIMQiCGIAlC/////w+DhCAGQiCIIAggDX58IAxCIIh8hSAFfCAHIAp8hSIFfCIHQiWIIAeFQvnz3fGZ8pmrFn4iB0IgiCAHhTcDACAAQgAgBUKHla+vmLbem55/fiAEIAN9Qs/W077Sx6vZQn58IAtC49zKlfzO8vWFf358IgNCJYggA4VC+fPd8ZnymasWfiIDQiCIIAOFfTcDCAuhDwMBfxR+An9BACEEIAJB+ABqKQMAIAN9QQApA/iMASIFhSIGQv////8PgyIHIAIpA3AgA3xBACkD8IwBIgiFIglCIIgiCn4iC0L/////D4MgBkIgiCIGIAlC/////w+DIgl+fCAHIAl+IgdCIIh8IglCIIYgB0L/////D4OEIAtCIIggBiAKfnwgCUIgiHyFIAJB2ABqKQMAIAN9QQApA9iMASIHhSIGQv////8PgyIJIAIpA1AgA3xBACkD0IwBIgqFIgtCIIgiDH4iDUL/////D4MgBkIgiCIGIAtC/////w+DIgt+fCAJIAt+IglCIIh8IgtCIIYgCUL/////D4OEIA1CIIggBiAMfnwgC0IgiHyFIAJBOGopAwAgA31BACkDuIwBIgmFIgZC/////w+DIgsgAikDMCADfEEAKQOwjAEiDIUiDUIgiCIOfiIPQv////8PgyAGQiCIIgYgDUL/////D4MiDX58IAsgDX4iC0IgiHwiDUIghiALQv////8Pg4QgD0IgiCAGIA5+fCANQiCIfIUgAkEYaikDACADfUEAKQOYjAEiC4UiBkL/////D4MiDSACKQMQIAN8QQApA5CMASIOhSIPQiCIIhB+IhFC/////w+DIAZCIIgiBiAPQv////8PgyIPfnwgDSAPfiINQiCIfCIPQiCGIA1C/////w+DhCARQiCIIAYgEH58IA9CIIh8hUEAKQOIjAEiDUEAKQOAjAEiD3yFfEEAKQOojAEiEEEAKQOgjAEiEXyFfEEAKQPIjAEiEkEAKQPAjAEiE3yFfEEAKQPojAEiFEEAKQPgjAEiFXyFIgZCJYggBoVC+fPd8ZnymasWfiIGQiCIIAaFIQYgAkHoAGopAwAgA30gFIUiFEL/////D4MiFiACKQNgIAN8IBWFIhVCIIgiF34iGEL/////D4MgFEIgiCIUIBVC/////w+DIhV+fCAWIBV+IhVCIIh8IhZCIIYgFUL/////D4OEIBhCIIggFCAXfnwgFkIgiHyFIAJByABqKQMAIAN9IBKFIhJC/////w+DIhQgAikDQCADfCAThSITQiCIIhV+IhZC/////w+DIBJCIIgiEiATQv////8PgyITfnwgFCATfiITQiCIfCIUQiCGIBNC/////w+DhCAWQiCIIBIgFX58IBRCIIh8hSACQShqKQMAIAN9IBCFIhBC/////w+DIhIgAikDICADfCARhSIRQiCIIhN+IhRC/////w+DIBBCIIgiECARQv////8PgyIRfnwgEiARfiIRQiCIfCISQiCGIBFC/////w+DhCAUQiCIIBAgE358IBJCIIh8hSACQQhqKQMAIAN9IA2FIg1C/////w+DIhAgAikDACADfCAPhSIPQiCIIhF+IhJC/////w+DIA1CIIgiDSAPQv////8PgyIPfnwgECAPfiIPQiCIfCIQQiCGIA9C/////w+DhCASQiCIIA0gEX58IBBCIIh8hSABrSIPQoeVr6+Ytt6bnn9+fCALIA58hXwgCSAMfIV8IAcgCnyFfCAFIAh8hSIFQiWIIAWFQvnz3fGZ8pmrFn4iBUIgiCAFhSEFAkAgAUGgAUgNACABQQV2QXxqIRkDQCACIARqIhpBG2opAwAgA30gBEGYjQFqKQMAIgeFIghC/////w+DIgkgGkETaikDACADfCAEQZCNAWopAwAiCoUiC0IgiCIMfiINQv////8PgyAIQiCIIgggC0L/////D4MiC358IAkgC34iCUIgiHwiC0IghiAJQv////8Pg4QgDUIgiCAIIAx+fCALQiCIfIUgBnwgBEGIjQFqKQMAIgggBEGAjQFqKQMAIgl8hSEGIBpBC2opAwAgA30gCIUiCEL/////D4MiCyAaQQNqKQMAIAN8IAmFIglCIIgiDH4iDUL/////D4MgCEIgiCIIIAlC/////w+DIgl+fCALIAl+IglCIIh8IgtCIIYgCUL/////D4OEIA1CIIggCCAMfnwgC0IgiHyFIAV8IAcgCnyFIQUgBEEgaiEEIBlBf2oiGQ0ACwsgACACQf8AaikDACADfCABQeiLAWopAwAiB4UiCEL/////D4MiCSACKQN3IAN9IAFB4IsBaikDACIKhSILQiCIIgx+Ig1C/////w+DIAhCIIgiCCALQv////8PgyILfnwgCSALfiIJQiCIfCILQiCGIAlC/////w+DhCANQiCIIAggDH58IAtCIIh8hSAGfCABQfiLAWopAwAiBiABQfCLAWopAwAiCHyFIgkgAkHvAGopAwAgA3wgBoUiBkL/////D4MiCyACKQNnIAN9IAiFIghCIIgiDH4iDUL/////D4MgBkIgiCIGIAhC/////w+DIgh+fCALIAh+IghCIIh8IgtCIIYgCEL/////D4OEIA1CIIggBiAMfnwgC0IgiHyFIAV8IAcgCnyFIgZ8IgVCJYggBYVC+fPd8ZnymasWfiIFQiCIIAWFNwMAIABCACAGQoeVr6+Ytt6bnn9+IA8gA31Cz9bTvtLHq9lCfnwgCULj3MqV/M7y9YV/fnwiA0IliCADhUL5893xmfKZqxZ+IgNCIIggA4V9NwMIC98FAgF+AX8CQAJAQQApA4AKIgBQRQ0AQYAIIQFCACEADAELAkBBACkDoI4BIABSDQBBACEBDAELQQAhAUEAQq+v79e895Kg/gAgAH03A/iLAUEAIABCxZbr+djShYIofDcD8IsBQQBCj/Hjja2P9JhOIAB9NwPoiwFBACAAQqus+MXV79HQfHw3A+CLAUEAQtOt1LKShbW0nn8gAH03A9iLAUEAIABCl5r0jvWWvO3JAHw3A9CLAUEAQsWDgv2v/8SxayAAfTcDyIsBQQAgAELqi7OdyOb09UN8NwPAiwFBAELIv/rLnJveueQAIAB9NwO4iwFBACAAQoqjgd/Ume2sMXw3A7CLAUEAQvm57738+MKnHSAAfTcDqIsBQQAgAEKo9dv7s5ynmj98NwOgiwFBAEK4sry3lNW31lggAH03A5iLAUEAIABC8cihuqm0w/zOAHw3A5CLAUEAQoihl9u445SXo38gAH03A4iL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AkHAAGogDGohC0GAjAEhAAJAAkACQCAHQQhJDQACQCAHQThqQQN2QQFqQQdxIg0NAAwCCyANQQN0IQ5BgIwBIQADQCALIAApAwA3AwAgC0EIaiELIABBCGohACANQX9qIg0NAAsgByAOayEHCyAHRQ0BAkACQCAHQQdxIg4NACAHIQ0MAQsgB0F4cSENA0AgCyAALQAAOgAAIAtBAWohCyAAQQFqIQAgDkF/aiIODQALCyAHQQhJDQELA0AgCyAAKQAANwAAIAtBCGohCyAAQQhqIQAgDUF4aiINDQALCyACIAIpAwggAikDQCIIfCADQQAoApyOAWoiACkDASACKQNIIgmFIgpCIIggCkL/////D4N+fDcDCCACIAIpAxggAikDUCIKfCAAKQMRIAIpA1giEIUiEUIgiCARQv////8Pg358NwMYIAIgECAKIAApAwmFIgpCIIggCkL/////D4N+IAIpAxB8fDcDECACIAkgCCAAQXlqKQMAhSIIQiCIIAhC/////w+DfiACKQMAfHw3AwAgACkDGSEIIAIpAyAhCSACIAIpAyggAikDYCIKfCAAKQMhIAIpA2giEIUiEUIgiCARQv////8Pg358NwMoIAIgECAJIAggCoUiCEIgiCAIQv////8Pg358fDcDICACIAYgAikDcCIIfCAAKQMxIAIpA3giBoUiCUIgiCAJQv////8Pg358NwM4IAIgBiAIIAApAymFIghCIIggCEL/////D4N+IAV8fDcDMAsgAiACIANBC2ogBEKHla+vmLbem55/fhADNwNAIAIgAiADQQAoApyOAWpBdWogBELP1tO+0ser2UJ+Qn+FEAM3A0gMAQsgBKchAAJAQQApA6COASIEUA0AAkAgAEEQSw0AIAJBwABqIABBgAggBBAEDAILAkAgAEGAAUsNACACQcAAaiAAQYAIIAQQBQwCCyACQcAAaiAAQYAIIAQQBgwBCwJAIABBEEsNACACQcAAaiAAIANCABAEDAELAkAgAEGAAUsNACACQcAAaiAAIANCABAFDAELIAJBwABqIAAgA0IAEAYLQQAgAikDcDcDuApBACACKQNgNwOoCkEAIAIpA1A3A5gKQQAgAkH4AGopAwA3A8AKQQAgAkHoAGopAwA3A7AKQQAgAkHYAGopAwA3A6AKQQAgAikDSCIEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISEIgQ3A4AKQQAgBDcDkApBACACKQNAIgRCOIYgBEKA/gODQiiGhCAEQoCA/AeDQhiGIARCgICA+A+DQgiGhIQgBEIIiEKAgID4D4MgBEIYiEKAgPwHg4QgBEIoiEKA/gODIARCOIiEhIQ3A4gKIAEkAAsGAEGAigELAgALC8wBAQBBgAgLxAG4/mw5I6RLvnwBgSz3Ia0c3tRt6YOQl9tyQKSkt7NnH8t55k7MwOV4glrQfcz/ciG4CEZ090MkjuA1kOaBOiZMPChSu5HDAMuI0GWLG1Muo3FkSJeiDflOOBnvRqnerNio+nY/45w0P/ncu8fHC08dilHgS820WTHIn37J2XhzZOrFrIM00+vDxYGg//oTY+sXDd1Rt/DaSdMWVSYp1GieKxa+WH1HofyP+LjRetAxzkXLOo+VFgQor9f7yrtLQH5AAgAA",vY="b9ab74e2",dR={name:wY,data:bY,hash:vY};let xY=new a,zl=null,v0=new Uint8Array(8);function po(w){return!Number.isInteger(w)||w<0||w>4294967295?new Error("Seed must be given as two valid 32-bit long unsigned integers (lo + high)."):null}function Yx(w,x,C){let _=new DataView(w);_.setUint32(0,x,!0),_.setUint32(4,C,!0)}function BY(w,x=0,C=0){if(po(x))return Promise.reject(po(x));if(po(C))return Promise.reject(po(C));if(zl===null)return Y(xY,dR,16).then(_=>(zl=_,Yx(v0.buffer,x,C),zl.writeMemory(v0),zl.calculate(w)));try{Yx(v0.buffer,x,C),zl.writeMemory(v0);let _=zl.calculate(w);return Promise.resolve(_)}catch(_){return Promise.reject(_)}}function EY(w=0,x=0){return po(w)?Promise.reject(po(w)):po(x)?Promise.reject(po(x)):M(dR,16).then(C=>{let _=new Uint8Array(8);Yx(_.buffer,w,x),C.writeMemory(_),C.init();let K={init:()=>(C.writeMemory(_),C.init(),K),update:J=>(C.update(J),K),digest:J=>C.digest(J),save:()=>C.save(),load:J=>(C.load(J),K),blockSize:512,digestSize:16};return K})}var CY="ripemd160",kY="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",SY="6abbce74",fR={name:CY,data:kY,hash:SY};let _Y=new a,x0=null;function TY(w){if(x0===null)return Y(_Y,fR,20).then(x=>(x0=x,x0.calculate(w)));try{let x=x0.calculate(w);return Promise.resolve(x)}catch(x){return Promise.reject(x)}}function QY(){return M(fR,20).then(w=>{w.init();let x={init:()=>(w.init(),x),update:C=>(w.update(C),x),digest:C=>w.digest(C),save:()=>w.save(),load:C=>(w.load(C),x),blockSize:64,digestSize:20};return x})}function NY(w,x){let{blockSize:C}=w,_=y(x);if(_.length>C){w.update(_);let K=w.digest("binary");return w.init(),K}return new Uint8Array(_.buffer,_.byteOffset,_.length)}function RY(w,x){w.init();let{blockSize:C}=w,_=NY(w,x),K=new Uint8Array(C);K.set(_);let J=new Uint8Array(C);for(let re=0;re<C;re++){let ye=K[re];J[re]=ye^92,K[re]=ye^54}w.update(K);let te={init:()=>(w.init(),w.update(K),te),update:re=>(w.update(re),te),digest:(re=>{let ye=w.digest("binary");return w.init(),w.update(J),w.update(ye),w.digest(re)}),save:()=>{throw new Error("save() not supported")},load:()=>{throw new Error("load() not supported")},blockSize:w.blockSize,digestSize:w.digestSize};return te}function hR(w,x){if(!w||!w.then)throw new Error('Invalid hash function is provided! Usage: createHMAC(createMD5(), "key").');return w.then(C=>RY(C,x))}function DY(w,x,C,_,K){return s(this,void 0,void 0,function*(){let J=new Uint8Array(_),te=new Uint8Array(x.length+4),re=new DataView(te.buffer),ye=y(x),kt=new Uint8Array(ye.buffer,ye.byteOffset,ye.length);te.set(kt);let Pt=0,Jt=w.digestSize,St=Math.ceil(_/Jt),$r=null,Si=null;for(let Ao=1;Ao<=St;Ao++){re.setUint32(x.length,Ao),w.init(),w.update(te),$r=w.digest("binary"),Si=$r.slice();for(let Ln=1;Ln<C;Ln++){w.init(),w.update(Si),Si=w.digest("binary");for(let go=0;go<Jt;go++)$r[go]^=Si[go]}J.set($r.subarray(0,_-Pt),Pt),Pt+=Jt}if(K==="binary")return J;let fh=new Uint8Array(_*2);return I(fh,J,_)})}let OY=w=>{if(!w||typeof w!="object")throw new Error("Invalid options parameter. It requires an object.");if(!w.hashFunction||!w.hashFunction.then)throw new Error('Invalid hash function is provided! Usage: pbkdf2("password", "salt", 1000, 32, createSHA1()).');if(!Number.isInteger(w.iterations)||w.iterations<1)throw new Error("Iterations should be a positive number");if(!Number.isInteger(w.hashLength)||w.hashLength<1)throw new Error("Hash length should be a positive number");if(w.outputType===void 0&&(w.outputType="hex"),!["hex","binary"].includes(w.outputType))throw new Error(`Insupported output type ${w.outputType}. Valid values: ['hex', 'binary']`)};function Xx(w){return s(this,void 0,void 0,function*(){OY(w);let x=yield hR(w.hashFunction,w.password);return DY(x,w.salt,w.iterations,w.hashLength,w.outputType)})}var FY="scrypt",PY="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cyICajYCOCAAIAAoAjwgAiAKakESdyAGc2o2AjwLvxIDFX8Bfg5/AkAgAkUNACAAQQd0IgNBQGoiBEEAKAKACCIFIAMgAmwiBmogAyABbGoiByADaiIIaiEJIAAgAkEHdCIKIAFBB3RqIgtsIQwgACALQYABamwhDSAAQQV0IgtBASALQQFLGyILQWBxIQ4gC0EBcSEPIAdBeGohECAHQXBqIREgB0FoaiESIAdBYGohEyAHQVhqIRQgB0FQaiEVIAdBSGohFiAHQUBqIRcgAa1Cf3whGCAEIAdqIRkgByAAQQh0IhpqIRsgACAKQYABamwhHCALQQRJIR1BACEeQQAhHwNAQQAoAoAIIiAgAyAfbGohIQJAIABFDQBBACEiAkAgHQ0AICAgHmohI0EAIQtBACEiA0AgByALaiIEICMgC2oiJCgCADYCACAEQQRqICRBBGooAgA2AgAgBEEIaiAkQQhqKAIANgIAIARBDGogJEEMaigCADYCACALQRBqIQsgDiAiQQRqIiJHDQALCyAPRQ0AIAcgIkECdCILaiAhIAtqKAIANgIACwJAIAFFDQBBACElIBwhIyAGISYDQCAFISQgACEiAkACQCAADQAgGyAXKQMANwMAIBsgFikDADcDCCAbIBUpAwA3AxAgGyAUKQMANwMYIBsgEykDADcDICAbIBIpAwA3AyggGyARKQMANwMwIBsgECkDADcDOAwBCwNAICQgJmoiCyAkIAxqIgQpAwA3AwAgC0EIaiAEQQhqKQMANwMAIAtBEGogBEEQaikDADcDACALQRhqIARBGGopAwA3AwAgC0EgaiAEQSBqKQMANwMAIAtBKGogBEEoaikDADcDACALQTBqIARBMGopAwA3AwAgC0E4aiAEQThqKQMANwMAIAtBwABqIARBwABqKQMANwMAIAtByABqIARByABqKQMANwMAIAtB0ABqIARB0ABqKQMANwMAIAtB2ABqIARB2ABqKQMANwMAIAtB4ABqIARB4ABqKQMANwMAIAtB6ABqIARB6ABqKQMANwMAIAtB8ABqIARB8ABqKQMANwMAIAtB+ABqIARB+ABqKQMANwMAICRBgAFqISQgIkF/aiIiDQALIAcgCCAbIAAQAiAFISQgACEiA0AgJCAjaiILICQgDWoiBCkDADcDACALQQhqIARBCGopAwA3AwAgC0EQaiAEQRBqKQMANwMAIAtBGGogBEEYaikDADcDACALQSBqIARBIGopAwA3AwAgC0EoaiAEQShqKQMANwMAIAtBMGogBEEwaikDADcDACALQThqIARBOGopAwA3AwAgC0HAAGogBEHAAGopAwA3AwAgC0HIAGogBEHIAGopAwA3AwAgC0HQAGogBEHQAGopAwA3AwAgC0HYAGogBEHYAGopAwA3AwAgC0HgAGogBEHgAGopAwA3AwAgC0HoAGogBEHoAGopAwA3AwAgC0HwAGogBEHwAGopAwA3AwAgC0H4AGogBEH4AGopAwA3AwAgJEGAAWohJCAiQX9qIiINAAsLIAggByAbIAAQAiAjIBpqISMgJiAaaiEmICVBAmoiJSABSQ0AC0EAISUDQAJAAkAgAA0AIBsgFykDADcDACAbIBYpAwA3AwggGyAVKQMANwMQIBsgFCkDADcDGCAbIBMpAwA3AyAgGyASKQMANwMoIBsgESkDADcDMCAbIBApAwA3AzgMAQsgACAKIBkpAgAgGIOnQQd0amwhJiAFISQgACEiA0AgJCAMaiILIAspAwAgJCAmaiIEKQMAhTcDACALQQhqIiMgIykDACAEQQhqKQMAhTcDACALQRBqIiMgIykDACAEQRBqKQMAhTcDACALQRhqIiMgIykDACAEQRhqKQMAhTcDACALQSBqIiMgIykDACAEQSBqKQMAhTcDACALQShqIiMgIykDACAEQShqKQMAhTcDACALQTBqIiMgIykDACAEQTBqKQMAhTcDACALQThqIiMgIykDACAEQThqKQMAhTcDACALQcAAaiIjICMpAwAgBEHAAGopAwCFNwMAIAtByABqIiMgIykDACAEQcgAaikDAIU3AwAgC0HQAGoiIyAjKQMAIARB0ABqKQMAhTcDACALQdgAaiIjICMpAwAgBEHYAGopAwCFNwMAIAtB4ABqIiMgIykDACAEQeAAaikDAIU3AwAgC0HoAGoiIyAjKQMAIARB6ABqKQMAhTcDACALQfAAaiIjICMpAwAgBEHwAGopAwCFNwMAIAtB+ABqIgsgCykDACAEQfgAaikDAIU3AwAgJEGAAWohJCAiQX9qIiINAAsgByAIIBsgABACIAAgCiAJKQIAIBiDp0EHdGpsISYgBSEkIAAhIgNAICQgDWoiCyALKQMAICQgJmoiBCkDAIU3AwAgC0EIaiIjICMpAwAgBEEIaikDAIU3AwAgC0EQaiIjICMpAwAgBEEQaikDAIU3AwAgC0EYaiIjICMpAwAgBEEYaikDAIU3AwAgC0EgaiIjICMpAwAgBEEgaikDAIU3AwAgC0EoaiIjICMpAwAgBEEoaikDAIU3AwAgC0EwaiIjICMpAwAgBEEwaikDAIU3AwAgC0E4aiIjICMpAwAgBEE4aikDAIU3AwAgC0HAAGoiIyAjKQMAIARBwABqKQMAhTcDACALQcgAaiIjICMpAwAgBEHIAGopAwCFNwMAIAtB0ABqIiMgIykDACAEQdAAaikDAIU3AwAgC0HYAGoiIyAjKQMAIARB2ABqKQMAhTcDACALQeAAaiIjICMpAwAgBEHgAGopAwCFNwMAIAtB6ABqIiMgIykDACAEQegAaikDAIU3AwAgC0HwAGoiIyAjKQMAIARB8ABqKQMAhTcDACALQfgAaiILIAspAwAgBEH4AGopAwCFNwMAICRBgAFqISQgIkF/aiIiDQALCyAIIAcgGyAAEAIgJUECaiIlIAFJDQALCwJAIABFDQBBACEiAkAgHQ0AICAgHmohI0EAIQtBACEiA0AgIyALaiIEIAcgC2oiJCgCADYCACAEQQRqICRBBGooAgA2AgAgBEEIaiAkQQhqKAIANgIAIARBDGogJEEMaigCADYCACALQRBqIQsgDiAiQQRqIiJHDQALCyAPRQ0AICEgIkECdCILaiAHIAtqKAIANgIACyAeIANqIR4gH0EBaiIfIAJHDQALCws=",UY="b32721f8",HY={name:FY,data:PY,hash:UY};function MY(w){return s(this,void 0,void 0,function*(){let{costFactor:x,blockSize:C,parallelism:_,hashLength:K}=w,J=oR(),te=yield Xx({password:w.password,salt:w.salt,iterations:1,hashLength:128*C*_,hashFunction:J,outputType:"binary"}),re=yield M(HY,0),ye=128*C*x,kt=256*C;re.setMemorySize(te.length+ye+kt),re.writeMemory(te,0),re.getExports().scrypt(C,x,_);let Pt=re.getMemory().subarray(0,128*C*_),Jt=yield Xx({password:w.password,salt:Pt,iterations:1,hashLength:K,hashFunction:J,outputType:"binary"});if(w.outputType==="hex"){let St=new Uint8Array(K*2);return I(St,Jt,K)}return Jt})}let qY=w=>w&&!(w&w-1),LY=w=>{if(!w||typeof w!="object")throw new Error("Invalid options parameter. It requires an object.");if(!Number.isInteger(w.blockSize)||w.blockSize<1)throw new Error("Block size should be a positive number");if(!Number.isInteger(w.costFactor)||w.costFactor<2||!qY(w.costFactor))throw new Error("Cost factor should be a power of 2, greater than 1");if(!Number.isInteger(w.parallelism)||w.parallelism<1)throw new Error("Parallelism should be a positive number");if(!Number.isInteger(w.hashLength)||w.hashLength<1)throw new Error("Hash length should be a positive number.");if(w.outputType===void 0&&(w.outputType="hex"),!["hex","binary"].includes(w.outputType))throw new Error(`Insupported output type ${w.outputType}. Valid values: ['hex', 'binary']`)};function KY(w){return s(this,void 0,void 0,function*(){return LY(w),MY(w)})}var VY="bcrypt",jY="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",WY="8bd8822d",pR={name:VY,data:jY,hash:WY};function GY(w){return s(this,void 0,void 0,function*(){let{costFactor:x,password:C,salt:_}=w,K=yield M(pR,0);K.writeMemory(y(_),0);let J=y(C);K.writeMemory(J,16);let te=w.outputType==="encoded"?1:0;K.getExports().bcrypt(J.length,x,te);let re=K.getMemory();if(w.outputType==="encoded")return f(re,60);if(w.outputType==="hex"){let ye=new Uint8Array(48);return I(ye,re,24)}return re.slice(0,24)})}let JY=w=>{if(!w||typeof w!="object")throw new Error("Invalid options parameter. It requires an object.");if(!Number.isInteger(w.costFactor)||w.costFactor<4||w.costFactor>31)throw new Error("Cost factor should be a number between 4 and 31");if(w.password=y(w.password),w.password.length<1)throw new Error("Password should be at least 1 byte long");if(w.password.length>72)throw new Error("Password should be at most 72 bytes long");if(w.salt=y(w.salt),w.salt.length!==16)throw new Error("Salt should be 16 bytes long");if(w.outputType===void 0&&(w.outputType="encoded"),!["hex","binary","encoded"].includes(w.outputType))throw new Error(`Insupported output type ${w.outputType}. Valid values: ['hex', 'binary', 'encoded']`)};function zY(w){return s(this,void 0,void 0,function*(){return JY(w),GY(w)})}let $Y=w=>!(!/^\$2[axyb]\$[0-3][0-9]\$[./A-Za-z0-9]{53}$/.test(w)||w[4]==="0"&&Number(w[5])<4||w[4]==="3"&&Number(w[5])>1),YY=w=>{if(!w||typeof w!="object")throw new Error("Invalid options parameter. It requires an object.");if(w.hash===void 0||typeof w.hash!="string")throw new Error("Hash should be specified");if(w.hash.length!==60)throw new Error("Hash should be 60 bytes long");if(!$Y(w.hash))throw new Error("Invalid hash");if(w.password=y(w.password),w.password.length<1)throw new Error("Password should be at least 1 byte long");if(w.password.length>72)throw new Error("Password should be at most 72 bytes long")};function XY(w){return s(this,void 0,void 0,function*(){YY(w);let{hash:x,password:C}=w,_=yield M(pR,0);_.writeMemory(y(x),0);let K=y(C);return _.writeMemory(K,60),!!_.getExports().bcrypt_verify(K.length)})}var ZY="whirlpool",eX="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",tX="8d8f6035",AR={name:ZY,data:eX,hash:tX};let iX=new a,B0=null;function rX(w){if(B0===null)return Y(iX,AR,64).then(x=>(B0=x,B0.calculate(w)));try{let x=B0.calculate(w);return Promise.resolve(x)}catch(x){return Promise.reject(x)}}function nX(){return M(AR,64).then(w=>{w.init();let x={init:()=>(w.init(),x),update:C=>(w.update(C),x),digest:C=>w.digest(C),save:()=>w.save(),load:C=>(w.load(C),x),blockSize:64,digestSize:64};return x})}var sX="sm3",aX="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",oX="b6fb4b8e",gR={name:sX,data:aX,hash:oX};let cX=new a,E0=null;function uX(w){if(E0===null)return Y(cX,gR,32).then(x=>(E0=x,E0.calculate(w)));try{let x=E0.calculate(w);return Promise.resolve(x)}catch(x){return Promise.reject(x)}}function lX(){return M(gR,32).then(w=>{w.init();let x={init:()=>(w.init(),x),update:C=>(w.update(C),x),digest:C=>w.digest(C),save:()=>w.save(),load:C=>(w.load(C),x),blockSize:64,digestSize:32};return x})}r.adler32=G,r.argon2Verify=Ux,r.argon2d=Ox,r.argon2i=Rx,r.argon2id=Dx,r.bcrypt=zY,r.bcryptVerify=XY,r.blake2b=Tx,r.blake2s=Kx,r.blake3=Xz,r.crc32=n$,r.crc64=l$,r.createAdler32=q,r.createBLAKE2b=Ll,r.createBLAKE2s=Vx,r.createBLAKE3=Zz,r.createCRC32=s$,r.createCRC64=d$,r.createHMAC=hR,r.createKeccak=U$,r.createMD4=m$,r.createMD5=x$,r.createRIPEMD160=QY,r.createSHA1=_$,r.createSHA224=V$,r.createSHA256=oR,r.createSHA3=O$,r.createSHA384=X$,r.createSHA512=tY,r.createSM3=lX,r.createWhirlpool=nX,r.createXXHash128=EY,r.createXXHash3=yY,r.createXXHash32=oY,r.createXXHash64=hY,r.keccak=P$,r.md4=g$,r.md5=v$,r.pbkdf2=Xx,r.ripemd160=TY,r.scrypt=KY,r.sha1=S$,r.sha224=K$,r.sha256=W$,r.sha3=D$,r.sha384=Y$,r.sha512=eY,r.sm3=uX,r.whirlpool=rX,r.xxhash128=BY,r.xxhash3=IY,r.xxhash32=aY,r.xxhash64=fY}))});var y3=b(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.CWIStyleWalletManager=Ne.OverlayUMPTokenInteractor=Ne.DEFAULT_PROFILE_ID=Ne.ARGON2ID_DEFAULT_HASH_LENGTH=Ne.ARGON2ID_DEFAULT_PARALLELISM=Ne.ARGON2ID_DEFAULT_MEMORY_KIB=Ne.ARGON2ID_DEFAULT_ITERATIONS=Ne.PBKDF2_NUM_ROUNDS=void 0;var ie=se(),Uv=HG(),Pv=_u();Ne.PBKDF2_NUM_ROUNDS=7777;Ne.ARGON2ID_DEFAULT_ITERATIONS=7;Ne.ARGON2ID_DEFAULT_MEMORY_KIB=131072;Ne.ARGON2ID_DEFAULT_PARALLELISM=1;Ne.ARGON2ID_DEFAULT_HASH_LENGTH=32;function STe(r){return!r||r.length<8||r.length>80||r[0]!==48?!1:r[1]===r.length-2}function _Te(r,e){if(r.length<=11)return r;let t=r.length-1,i=r[t];if(!i||!STe(i))return r;try{let n=0;for(let c=0;c<t;c++)n+=r[c].length;let s=new Array(n),a=0;for(let c=0;c<t;c++){let u=r[c];for(let l=0;l<u.length;l++)s[a++]=u[l]}if(ie.Signature.fromDER(i).verify(s,e))return r.slice(0,t)}catch{return r}return r}async function TTe(r,e,t,i,n="sha512"){var s;let a=(s=globalThis?.crypto)===null||s===void 0?void 0:s.subtle;if(a)try{let u=await a.importKey("raw",new Uint8Array(r),{name:"PBKDF2"},!1,["deriveBits"]),l=await a.deriveBits({name:"PBKDF2",salt:new Uint8Array(e),iterations:t,hash:n.toUpperCase()},u,i*8);return Array.from(new Uint8Array(l))}catch{}let o=n==="sha256"?(0,Uv.createSHA256)():(0,Uv.createSHA512)(),c=await(0,Uv.pbkdf2)({password:new Uint8Array(r),salt:new Uint8Array(e),iterations:t,hashLength:i,hashFunction:o,outputType:"binary"});return Array.from(c)}async function Bg(r,e,t){var i,n,s,a,o;let c=t||r.passwordKdf;if(!c||c.algorithm==="pbkdf2-sha512")return TTe(e,r.passwordSalt,(i=c?.iterations)!==null&&i!==void 0?i:Ne.PBKDF2_NUM_ROUNDS,32,"sha512");if(c.algorithm==="argon2id"){let u=(n=c.iterations)!==null&&n!==void 0?n:Ne.ARGON2ID_DEFAULT_ITERATIONS,l=(s=c.memoryKiB)!==null&&s!==void 0?s:Ne.ARGON2ID_DEFAULT_MEMORY_KIB,d=(a=c.parallelism)!==null&&a!==void 0?a:Ne.ARGON2ID_DEFAULT_PARALLELISM,f=(o=c.hashLength)!==null&&o!==void 0?o:Ne.ARGON2ID_DEFAULT_HASH_LENGTH,h=await(0,Uv.argon2id)({password:new Uint8Array(e),salt:new Uint8Array(r.passwordSalt),iterations:u,memorySize:l,parallelism:d,hashLength:f,outputType:"binary"});return Array.from(h)}throw new Error(`Unsupported KDF algorithm: ${c.algorithm}`)}Ne.DEFAULT_PROFILE_ID=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];var Hv=class{constructor(e=new ie.LookupResolver,t=new ie.SHIPBroadcaster(["tm_users"])){this.resolver=e,this.broadcaster=t}async findByPresentationKeyHash(e){let t={service:"ls_users",query:{presentationHash:ie.Utils.toHex(e)}},i=await this.resolver.query(t);return this.parseLookupAnswer(i)}async findByRecoveryKeyHash(e){let t={service:"ls_users",query:{recoveryHash:ie.Utils.toHex(e)}},i=await this.resolver.query(t);return this.parseLookupAnswer(i)}async buildAndSend(e,t,i,n){let s=[];if(s[0]=i.passwordSalt,s[1]=i.passwordPresentationPrimary,s[2]=i.passwordRecoveryPrimary,s[3]=i.presentationRecoveryPrimary,s[4]=i.passwordPrimaryPrivileged,s[5]=i.presentationRecoveryPrivileged,s[6]=i.presentationHash,s[7]=i.recoveryHash,s[8]=i.presentationKeyEncrypted,s[9]=i.passwordKeyEncrypted,s[10]=i.recoveryKeyEncrypted,i.profilesEncrypted&&(s[11]=i.profilesEncrypted),i.umpVersion===3&&i.passwordKdf){let p=i.profilesEncrypted?12:11;s[p]=[i.umpVersion],s[p+1]=ie.Utils.toArray(i.passwordKdf.algorithm,"utf8");let A={iterations:i.passwordKdf.iterations};i.passwordKdf.memoryKiB!==void 0&&(A.memoryKiB=i.passwordKdf.memoryKiB),i.passwordKdf.parallelism!==void 0&&(A.parallelism=i.passwordKdf.parallelism),i.passwordKdf.hashLength!==void 0&&(A.hashLength=i.passwordKdf.hashLength),s[p+2]=ie.Utils.toArray(JSON.stringify(A),"utf8")}let a=await new ie.PushDrop(e,t).lock(s,[2,"admin user management token"],"1","self",!0,!0),o=[],c;n?.currentOutpoint&&(c=await this.findByOutpoint(n.currentOutpoint),c?o.push({outpoint:n.currentOutpoint,unlockingScriptLength:73,inputDescription:"Consume old UMP token"}):n=void 0);let u=[{lockingScript:a.toHex(),satoshis:1,outputDescription:"New UMP token output"}],l;try{l=await e.createAction({description:n?"Renew UMP token (consume old, create new)":"Create new UMP token",inputs:o,outputs:u,inputBEEF:c?.beef,options:{randomizeOutputs:!1,acceptDelayedBroadcast:!1}},t)}catch(p){console.error("Error with UMP token update. Attempting a last-ditch effort to get a new one",p),l=await e.createAction({description:"Recover UMP token",outputs:u,options:{randomizeOutputs:!1,acceptDelayedBroadcast:!1}},t)}if(!l.signableTransaction){let p=l.txid||(l.tx?ie.Transaction.fromAtomicBEEF(l.tx).id("hex"):void 0);if(!p)throw new Error("No signableTransaction and no final TX found.");let A=ie.Transaction.fromAtomicBEEF(l.tx),g=await this.broadcaster.broadcast(A);return console.log("BROADCAST RESULT",g),`${p}.0`}let d="",f=l.signableTransaction.reference,h=ie.Transaction.fromBEEF(l.signableTransaction.tx);if(n?.currentOutpoint){let A=await new ie.PushDrop(e,t).unlock([2,"admin user management token"],"1","self").sign(h,0),g=await e.signAction({reference:f,spends:{0:{unlockingScript:A.toHex()}}},t);if(d=g.txid||(g.tx?ie.Transaction.fromAtomicBEEF(g.tx).id("hex"):""),!d)throw new Error("Could not finalize transaction for renewed UMP token.");let m=g.tx;if(!m)throw new Error("Final transaction data missing after signing renewed UMP token.");let I=ie.Transaction.fromAtomicBEEF(m),y=await this.broadcaster.broadcast(I);return console.log("BROADCAST RESULT",y),`${d}.0`}else{let p=await e.signAction({reference:f,spends:{}},t);if(d=p.txid||(p.tx?ie.Transaction.fromAtomicBEEF(p.tx).id("hex"):""),!d)throw new Error("Failed to finalize new UMP token transaction.");let A=p.tx;if(!A)throw new Error("Final transaction data missing after signing new UMP token.");let g=ie.Transaction.fromAtomicBEEF(A),m=await this.broadcaster.broadcast(g);return console.log("BROADCAST RESULT",m),`${d}.0`}}parseLookupAnswer(e){var t,i,n;if(e.type!=="output-list"||!e.outputs||e.outputs.length===0)return;let{beef:s,outputIndex:a}=e.outputs[0];try{let o=ie.Transaction.fromBEEF(s),c=`${o.id("hex")}.${a}`,u=ie.PushDrop.decode(o.outputs[a].lockingScript);if(!u.fields||u.fields.length<11){console.warn(`Unexpected number of fields in UMP token: ${(t=u.fields)===null||t===void 0?void 0:t.length}`);return}let l=_Te(u.fields,u.lockingPublicKey),d=l.length>=15&&((i=l[12])===null||i===void 0?void 0:i.length)===1&&l[12][0]===3,f=l.length>=14&&((n=l[11])===null||n===void 0?void 0:n.length)===1&&l[11][0]===3,h=d?12:f?11:-1,p={passwordSalt:l[0],passwordPresentationPrimary:l[1],passwordRecoveryPrimary:l[2],presentationRecoveryPrimary:l[3],passwordPrimaryPrivileged:l[4],presentationRecoveryPrivileged:l[5],presentationHash:l[6],recoveryHash:l[7],presentationKeyEncrypted:l[8],passwordKeyEncrypted:l[9],recoveryKeyEncrypted:l[10],currentOutpoint:c};if((d||!f&&l[11])&&l[11]&&l[11].length>0&&(p.profilesEncrypted=l[11]),h!==-1){p.umpVersion=l[h][0];let g=l[h+1],m=l[h+2];if(!g||!m)return p;let I=ie.Utils.toUTF8(g),y=ie.Utils.toUTF8(m);try{let v=JSON.parse(y);p.passwordKdf={algorithm:I,iterations:v.iterations,memoryKiB:v.memoryKiB,parallelism:v.parallelism,hashLength:v.hashLength}}catch(v){console.warn("Failed to parse v3 KDF params:",v)}}return p}catch(o){console.error("Failed to parse or decode UMP token:",o);return}}async findByOutpoint(e){let t=await this.resolver.query({service:"ls_users",query:{outpoint:e}});if(t.type==="output-list"&&!(!t.outputs||!t.outputs.length))return t.outputs[0]}};Ne.OverlayUMPTokenInteractor=Hv;var I3=class{constructor(e,t,i=new Hv,n,s,a,o,c){var u,l,d,f,h;this.authenticationMode="presentation-key-and-password",this.authenticationFlow="new-user",this.activeProfileId=Ne.DEFAULT_PROFILE_ID,this.profiles=[],this.adminOriginator=e,this.walletBuilder=t,this.UMPTokenInteractor=i,this.recoveryKeySaver=n,this.passwordRetriever=s,this.authenticated=!1,this.newWalletFunder=a,this.kdfConfig={algorithm:(u=c?.algorithm)!==null&&u!==void 0?u:"argon2id",iterations:(l=c?.iterations)!==null&&l!==void 0?l:Ne.ARGON2ID_DEFAULT_ITERATIONS,memoryKiB:(d=c?.memoryKiB)!==null&&d!==void 0?d:Ne.ARGON2ID_DEFAULT_MEMORY_KIB,parallelism:(f=c?.parallelism)!==null&&f!==void 0?f:Ne.ARGON2ID_DEFAULT_PARALLELISM,hashLength:(h=c?.hashLength)!==null&&h!==void 0?h:Ne.ARGON2ID_DEFAULT_HASH_LENGTH},o&&this.loadSnapshot(o).catch(p=>{console.error("Failed to load snapshot during construction:",p),this.destroy()})}async providePresentationKey(e){if(this.authenticated)throw new Error("User is already authenticated");if(this.authenticationMode==="recovery-key-and-password")throw new Error("Presentation key is not needed in this mode");let t=ie.Hash.sha256(e),i=await this.UMPTokenInteractor.findByPresentationKeyHash(t);i?(this.authenticationFlow="existing-user",this.presentationKey=e,this.currentUMPToken=i):(this.authenticationFlow="new-user",this.presentationKey=e)}async providePassword(e){if(this.authenticated)throw new Error("User is already authenticated");if(this.authenticationMode==="presentation-key-and-recovery-key")throw new Error("Password is not needed in this mode");if(this.authenticationFlow==="existing-user"){if(!this.currentUMPToken)throw new Error("Provide presentation or recovery key first.");let t=await Bg(this.currentUMPToken,ie.Utils.toArray(e,"utf8")),i,n;if(this.authenticationMode==="presentation-key-and-password"){if(!this.presentationKey)throw new Error("No presentation key found!");let s=this.XOR(this.presentationKey,t);i=new ie.SymmetricKey(s).decrypt(this.currentUMPToken.passwordPresentationPrimary)}else{if(!this.recoveryKey)throw new Error("No recovery key found!");let s=this.XOR(this.recoveryKey,t);i=new ie.SymmetricKey(s).decrypt(this.currentUMPToken.passwordRecoveryPrimary);let a=this.XOR(i,t);n=new ie.SymmetricKey(a).decrypt(this.currentUMPToken.passwordPrimaryPrivileged)}await this.setupRootInfrastructure(i,n),await this.switchProfile(this.activeProfileId)}else{if(this.authenticationMode!=="presentation-key-and-password")throw new Error("New-user flow requires presentation key and password mode.");if(!this.presentationKey)throw new Error("No presentation key provided for new-user flow.");let t=(0,ie.Random)(32);await this.recoveryKeySaver(t);let i=(0,ie.Random)(32),n={passwordSalt:i,passwordKdf:this.kdfConfig},s=await Bg(n,ie.Utils.toArray(e,"utf8")),a=(0,ie.Random)(32),o=(0,ie.Random)(32),c=new ie.SymmetricKey(this.XOR(this.presentationKey,s)),u=new ie.SymmetricKey(this.XOR(this.presentationKey,t)),l=new ie.SymmetricKey(this.XOR(t,s)),d=new ie.SymmetricKey(this.XOR(a,s)),f=new Pv.PrivilegedKeyManager(async()=>new ie.PrivateKey(o)),h={passwordSalt:i,passwordPresentationPrimary:c.encrypt(a),passwordRecoveryPrimary:l.encrypt(a),presentationRecoveryPrimary:u.encrypt(a),passwordPrimaryPrivileged:d.encrypt(o),presentationRecoveryPrivileged:u.encrypt(o),presentationHash:ie.Hash.sha256(this.presentationKey),recoveryHash:ie.Hash.sha256(t),presentationKeyEncrypted:(await f.encrypt({plaintext:this.presentationKey,protocolID:[2,"admin key wrapping"],keyID:"1"})).ciphertext,passwordKeyEncrypted:(await f.encrypt({plaintext:s,protocolID:[2,"admin key wrapping"],keyID:"1"})).ciphertext,recoveryKeyEncrypted:(await f.encrypt({plaintext:t,protocolID:[2,"admin key wrapping"],keyID:"1"})).ciphertext,profilesEncrypted:void 0,umpVersion:3,passwordKdf:this.kdfConfig};if(this.currentUMPToken=h,await this.setupRootInfrastructure(a),await this.switchProfile(Ne.DEFAULT_PROFILE_ID),this.newWalletFunder&&this.underlying)try{await this.newWalletFunder(this.presentationKey,this.underlying,this.adminOriginator)}catch(p){console.error("Error funding new wallet:",p);let A=p instanceof Error?p.message:String(p);throw new Error(`Failed to fund new wallet before publishing UMP token: ${A}`)}if(!this.underlying)throw new Error("Default profile wallet not built before attempting to publish UMP token.");this.currentUMPToken.currentOutpoint=await this.UMPTokenInteractor.buildAndSend(this.underlying,this.adminOriginator,h)}}async provideRecoveryKey(e){if(this.authenticated)throw new Error("Already authenticated");if(this.authenticationFlow==="new-user"&&this.authenticationMode!=="recovery-key-and-password")throw new Error("Do not submit recovery key in new-user flow");if(this.authenticationMode==="presentation-key-and-password")throw new Error("No recovery key required in this mode");if(this.authenticationMode==="recovery-key-and-password"){let t=ie.Hash.sha256(e),i=await this.UMPTokenInteractor.findByRecoveryKeyHash(t);if(!i)throw new Error("No user found with this recovery key");this.authenticationFlow="existing-user",this.recoveryKey=e,this.currentUMPToken=i}else{if(!this.presentationKey)throw new Error("Provide the presentation key first");if(!this.currentUMPToken)throw new Error("Current UMP token not found");let t=this.XOR(this.presentationKey,e),i=new ie.SymmetricKey(t).decrypt(this.currentUMPToken.presentationRecoveryPrimary),n=new ie.SymmetricKey(t).decrypt(this.currentUMPToken.presentationRecoveryPrivileged);await this.setupRootInfrastructure(i,n),await this.switchProfile(this.activeProfileId)}}saveSnapshot(){if(!this.rootPrimaryKey||!this.currentUMPToken)throw new Error("No root primary key or current UMP token set");let e=(0,ie.Random)(32),t=new ie.Utils.Writer;if(t.write(this.rootPrimaryKey),!this.currentUMPToken.currentOutpoint)throw new Error("UMP token cannot be saved without a current outpoint.");let i=this.serializeUMPToken(this.currentUMPToken);t.writeVarIntNum(i.length),t.write(i);let n=t.toArray(),s=new ie.SymmetricKey(e).encrypt(n),a=new ie.Utils.Writer;return a.writeUInt8(2),a.write(e),a.write(this.activeProfileId),a.write(s),a.toArray()}async loadSnapshot(e){try{let t=new ie.Utils.Reader(e),i=t.readUInt8(),n,s,a=Ne.DEFAULT_PROFILE_ID;if(i===1)n=t.read(32),s=t.read();else if(i===2)n=t.read(32),a=t.read(16),s=t.read();else throw new Error(`Unsupported snapshot version: ${i}`);let o=new ie.SymmetricKey(n).decrypt(s),c=new ie.Utils.Reader(o),u=c.read(32),l=c.readVarIntNum(),d=c.read(l),f=this.deserializeUMPToken(d);this.currentUMPToken=f,await this.setupRootInfrastructure(u),await this.switchProfile(a),this.authenticationFlow="existing-user"}catch(t){throw this.destroy(),new Error(`Failed to load snapshot: ${t.message}`)}}async syncUMPToken(){if(!this.authenticated||!this.currentUMPToken||!this.rootPrimaryKey)throw new Error("Wallet not authenticated or missing UMP token.");let e=this.currentUMPToken,t;return e.presentationHash&&e.presentationHash.length&&(t=await this.UMPTokenInteractor.findByPresentationKeyHash(e.presentationHash)),!t&&e.recoveryHash&&e.recoveryHash.length&&(t=await this.UMPTokenInteractor.findByRecoveryKeyHash(e.recoveryHash)),!t||t.currentOutpoint&&e.currentOutpoint&&t.currentOutpoint===e.currentOutpoint?!1:(this.currentUMPToken=t,await this.setupRootInfrastructure(this.rootPrimaryKey),this.saveSnapshot(),!0)}destroy(){this.underlying=void 0,this.rootPrivilegedKeyManager=void 0,this.authenticated=!1,this.rootPrimaryKey=void 0,this.currentUMPToken=void 0,this.presentationKey=void 0,this.recoveryKey=void 0,this.profiles=[],this.activeProfileId=Ne.DEFAULT_PROFILE_ID,this.authenticationMode="presentation-key-and-password",this.authenticationFlow="new-user"}listProfiles(){if(!this.authenticated)throw new Error("Not authenticated.");return[{id:Ne.DEFAULT_PROFILE_ID,name:"default",createdAt:null,active:this.activeProfileId.every(t=>t===0),identityKey:new ie.PrivateKey(this.rootPrimaryKey).toPublicKey().toString()},...this.profiles.map(t=>({id:t.id,name:t.name,createdAt:t.createdAt,active:this.activeProfileId.every((i,n)=>i===t.id[n]),identityKey:new ie.PrivateKey(this.XOR(this.rootPrimaryKey,t.primaryPad)).toPublicKey().toString()}))]}async addProfile(e){if(!this.authenticated||!this.rootPrimaryKey||!this.currentUMPToken||!this.rootPrivilegedKeyManager)throw new Error("Wallet not fully initialized or authenticated.");if(e==="default"||this.profiles.some(i=>i.name.toLowerCase()===e.toLowerCase()))throw new Error(`Profile name "${e}" is already in use.`);let t={name:e,id:(0,ie.Random)(16),primaryPad:(0,ie.Random)(32),privilegedPad:(0,ie.Random)(32),createdAt:Math.floor(Date.now()/1e3)};return this.profiles.push(t),await this.updateAuthFactors(this.currentUMPToken.passwordSalt,await this.getFactor("passwordKey"),await this.getFactor("presentationKey"),await this.getFactor("recoveryKey"),this.rootPrimaryKey,await this.getFactor("privilegedKey"),this.profiles),t.id}async deleteProfile(e){if(!this.authenticated||!this.rootPrimaryKey||!this.currentUMPToken||!this.rootPrivilegedKeyManager)throw new Error("Wallet not fully initialized or authenticated.");if(e.every(i=>i===0))throw new Error("Cannot delete the default profile.");let t=this.profiles.findIndex(i=>i.id.every((n,s)=>n===e[s]));if(t===-1)throw new Error("Profile not found.");this.profiles.splice(t,1),this.activeProfileId.every((i,n)=>i===e[n])&&await this.switchProfile(Ne.DEFAULT_PROFILE_ID),await this.updateAuthFactors(this.currentUMPToken.passwordSalt,await this.getFactor("passwordKey"),await this.getFactor("presentationKey"),await this.getFactor("recoveryKey"),this.rootPrimaryKey,await this.getFactor("privilegedKey"),this.profiles)}async switchProfile(e){if(!this.authenticated||!this.rootPrimaryKey||!this.rootPrivilegedKeyManager)throw new Error("Cannot switch profile: Wallet not authenticated or root keys missing.");let t,i;if(e.every(s=>s===0))t=this.rootPrimaryKey,i=void 0,this.activeProfileId=Ne.DEFAULT_PROFILE_ID;else{let s=this.profiles.find(a=>a.id.every((o,c)=>o===e[c]));if(!s)throw new Error("Profile not found.");t=this.XOR(this.rootPrimaryKey,s.primaryPad),i=s.privilegedPad,this.activeProfileId=e}let n=new Pv.PrivilegedKeyManager(async s=>{let o=(await this.rootPrivilegedKeyManager.getPrivilegedKey(s)).toArray(),c=i?this.XOR(o,i):o;return new ie.PrivateKey(c)});this.underlying=await this.walletBuilder(t,n,this.activeProfileId)}async changePassword(e){var t;if(!this.authenticated||!this.currentUMPToken||!this.rootPrimaryKey||!this.rootPrivilegedKeyManager)throw new Error("Not authenticated or missing required data.");let i=(0,ie.Random)(32),n=(t=this.currentUMPToken.passwordKdf)!==null&&t!==void 0?t:this.kdfConfig,a=await Bg({passwordSalt:i,passwordKdf:n},ie.Utils.toArray(e,"utf8")),o=await this.getFactor("recoveryKey"),c=await this.getFactor("presentationKey"),u=await this.getFactor("privilegedKey");await this.updateAuthFactors(i,a,c,o,this.rootPrimaryKey,u,this.profiles)}async getRecoveryKey(){if(!this.authenticated||!this.currentUMPToken||!this.rootPrivilegedKeyManager)throw new Error("Not authenticated or missing required data.");return this.getFactor("recoveryKey")}async changeRecoveryKey(){if(!this.authenticated||!this.currentUMPToken||!this.rootPrimaryKey||!this.rootPrivilegedKeyManager)throw new Error("Not authenticated or missing required data.");let e=await this.getFactor("passwordKey"),t=await this.getFactor("presentationKey"),i=await this.getFactor("privilegedKey"),n=(0,ie.Random)(32);await this.recoveryKeySaver(n),await this.updateAuthFactors(this.currentUMPToken.passwordSalt,e,t,n,this.rootPrimaryKey,i,this.profiles)}async changePresentationKey(e){if(!this.authenticated||!this.currentUMPToken||!this.rootPrimaryKey||!this.rootPrivilegedKeyManager)throw new Error("Not authenticated or missing required data.");if(e.length!==32)throw new Error("Presentation key must be 32 bytes.");let t=await this.getFactor("recoveryKey"),i=await this.getFactor("passwordKey"),n=await this.getFactor("privilegedKey");await this.updateAuthFactors(this.currentUMPToken.passwordSalt,i,e,t,this.rootPrimaryKey,n,this.profiles),this.presentationKey&&(this.presentationKey=e)}XOR(e,t){if(e.length!==t.length)throw new Error(`XOR length mismatch: ${e.length} vs ${t.length}`);let i=new Array(e.length);for(let n=0;n<e.length;n++)i[n]=e[n]^t[n];return i}async getFactor(e){if(!this.authenticated||!this.currentUMPToken||!this.rootPrivilegedKeyManager)throw new Error(`Cannot get factor "${e}": Wallet not ready.`);let t=[2,"admin key wrapping"],i="1";try{switch(e){case"passwordKey":return(await this.rootPrivilegedKeyManager.decrypt({ciphertext:this.currentUMPToken.passwordKeyEncrypted,protocolID:t,keyID:i})).plaintext;case"presentationKey":return(await this.rootPrivilegedKeyManager.decrypt({ciphertext:this.currentUMPToken.presentationKeyEncrypted,protocolID:t,keyID:i})).plaintext;case"recoveryKey":return(await this.rootPrivilegedKeyManager.decrypt({ciphertext:this.currentUMPToken.recoveryKeyEncrypted,protocolID:t,keyID:i})).plaintext;case"privilegedKey":return(await this.rootPrivilegedKeyManager.getPrivilegedKey("UMP token update",!0)).toArray();default:throw new Error(`Unknown factor name: ${e}`)}}catch(n){throw console.error(`Error decrypting factor ${e}:`,n),new Error(`Failed to decrypt factor "${e}": ${n.message}`)}}async updateAuthFactors(e,t,i,n,s,a,o){if(!this.authenticated||!this.rootPrimaryKey||!this.currentUMPToken)throw new Error("Wallet is not properly authenticated or missing data for update.");let c={...this.currentUMPToken};if(!c.currentOutpoint)throw new Error("Cannot update UMP token: Old token has no outpoint.");let u=new ie.SymmetricKey(this.XOR(i,t)),l=new ie.SymmetricKey(this.XOR(i,n)),d=new ie.SymmetricKey(this.XOR(n,t)),f=new ie.SymmetricKey(this.XOR(s,t)),h=new Pv.PrivilegedKeyManager(async()=>new ie.PrivateKey(a)),p;if(o&&o.length>0){let y=JSON.stringify(o),v=ie.Utils.toArray(y,"utf8");p=new ie.SymmetricKey(s).encrypt(v)}let A=this.currentUMPToken.passwordKdf,g={passwordSalt:e,passwordPresentationPrimary:u.encrypt(s),passwordRecoveryPrimary:d.encrypt(s),presentationRecoveryPrimary:l.encrypt(s),passwordPrimaryPrivileged:f.encrypt(a),presentationRecoveryPrivileged:l.encrypt(a),presentationHash:ie.Hash.sha256(i),recoveryHash:ie.Hash.sha256(n),presentationKeyEncrypted:(await h.encrypt({plaintext:i,protocolID:[2,"admin key wrapping"],keyID:"1"})).ciphertext,passwordKeyEncrypted:(await h.encrypt({plaintext:t,protocolID:[2,"admin key wrapping"],keyID:"1"})).ciphertext,recoveryKeyEncrypted:(await h.encrypt({plaintext:n,protocolID:[2,"admin key wrapping"],keyID:"1"})).ciphertext,profilesEncrypted:p,...A?{umpVersion:3,passwordKdf:A}:{}},m=this.activeProfileId,I=this.underlying;if(m.every(y=>y===0)||(console.log("Temporarily switching to default profile to update UMP token..."),await this.switchProfile(Ne.DEFAULT_PROFILE_ID),I=this.underlying),!I)throw new Error("Default profile wallet could not be activated for UMP token update.");try{g.currentOutpoint=await this.UMPTokenInteractor.buildAndSend(I,this.adminOriginator,g,c),this.currentUMPToken=g}finally{m.every(y=>y===0)||(console.log("Switching back to original profile..."),await this.switchProfile(m))}}serializeUMPToken(e){if(!e.currentOutpoint)throw new Error("Token must have outpoint for serialization");let t=new ie.Utils.Writer,i=e.umpVersion===3&&e.passwordKdf;t.writeUInt8(i?3:2);let n=a=>{t.writeVarIntNum(a.length),t.write(a)};if(n(e.passwordSalt),n(e.passwordPresentationPrimary),n(e.passwordRecoveryPrimary),n(e.presentationRecoveryPrimary),n(e.passwordPrimaryPrivileged),n(e.presentationRecoveryPrivileged),n(e.presentationHash),n(e.recoveryHash),n(e.presentationKeyEncrypted),n(e.passwordKeyEncrypted),n(e.recoveryKeyEncrypted),e.profilesEncrypted&&e.profilesEncrypted.length>0?(t.writeUInt8(1),n(e.profilesEncrypted)):t.writeUInt8(0),i){t.writeUInt8(1),t.writeUInt8(e.umpVersion);let a=ie.Utils.toArray(e.passwordKdf.algorithm,"utf8");n(a);let o={iterations:e.passwordKdf.iterations};e.passwordKdf.memoryKiB!==void 0&&(o.memoryKiB=e.passwordKdf.memoryKiB),e.passwordKdf.parallelism!==void 0&&(o.parallelism=e.passwordKdf.parallelism),e.passwordKdf.hashLength!==void 0&&(o.hashLength=e.passwordKdf.hashLength);let c=ie.Utils.toArray(JSON.stringify(o),"utf8");n(c)}else t.toArray()[0]===3&&t.writeUInt8(0);let s=ie.Utils.toArray(e.currentOutpoint,"utf8");return t.writeVarIntNum(s.length),t.write(s),t.toArray()}deserializeUMPToken(e){let t=new ie.Utils.Reader(e),i=t.readUInt8();if(i!==1&&i!==2&&i!==3)throw new Error(`Unsupported UMP token serialization version: ${i}`);let n=()=>{let k=t.readVarIntNum();return t.read(k)},s=n(),a=n(),o=n(),c=n(),u=n(),l=n(),d=n(),f=n(),h=n(),p=n(),A=n(),g;i>=2&&t.readUInt8()===1&&(g=n());let m,I;if(i===3&&t.readUInt8()===1){m=t.readUInt8();let T=n(),D=ie.Utils.toUTF8(T),j=n(),H=ie.Utils.toUTF8(j);try{let W=JSON.parse(H);I={algorithm:D,iterations:W.iterations,memoryKiB:W.memoryKiB,parallelism:W.parallelism,hashLength:W.hashLength}}catch(W){console.warn("Failed to parse KDF params during deserialization:",W)}}let y=t.readVarIntNum(),v=t.read(y),B=ie.Utils.toUTF8(v);return{passwordSalt:s,passwordPresentationPrimary:a,passwordRecoveryPrimary:o,presentationRecoveryPrimary:c,passwordPrimaryPrivileged:u,presentationRecoveryPrivileged:l,presentationHash:d,recoveryHash:f,presentationKeyEncrypted:h,passwordKeyEncrypted:p,recoveryKeyEncrypted:A,profilesEncrypted:g,currentOutpoint:B,umpVersion:m,passwordKdf:I}}async setupRootInfrastructure(e,t){if(!this.currentUMPToken)throw new Error("A UMP token must exist before setting up root infrastructure!");this.rootPrimaryKey=e;let i=t?new ie.PrivateKey(t):void 0;if(this.rootPrivilegedKeyManager=new Pv.PrivilegedKeyManager(async n=>{if(i){let u=i;return i=void 0,u}let s=await this.passwordRetriever(n,async u=>{try{let l=await Bg(this.currentUMPToken,ie.Utils.toArray(u,"utf8")),d=this.XOR(this.rootPrimaryKey,l);return!!new ie.SymmetricKey(d).decrypt(this.currentUMPToken.passwordPrimaryPrivileged)}catch{return!1}}),a=await Bg(this.currentUMPToken,ie.Utils.toArray(s,"utf8")),o=this.XOR(this.rootPrimaryKey,a),c=new ie.SymmetricKey(o).decrypt(this.currentUMPToken.passwordPrimaryPrivileged);return new ie.PrivateKey(c)}),this.profiles=[],this.currentUMPToken.profilesEncrypted&&this.currentUMPToken.profilesEncrypted.length>0)try{let n=new ie.SymmetricKey(e).decrypt(this.currentUMPToken.profilesEncrypted),s=ie.Utils.toUTF8(n);this.profiles=JSON.parse(s)}catch(n){throw console.error("Failed to decrypt or parse profiles:",n),this.profiles=[],new Error(`Failed to load profiles: ${n.message}`)}this.authenticated=!0}checkAuthAndUnderlying(e){if(!this.authenticated)throw new Error("User is not authenticated.");if(!this.underlying)throw new Error("Underlying wallet for the active profile is not initialized.");if(e===this.adminOriginator)throw new Error("External applications are not allowed to use the admin originator.")}async getPublicKey(e,t){return this.checkAuthAndUnderlying(t),this.underlying.getPublicKey(e,t)}async revealCounterpartyKeyLinkage(e,t){return this.checkAuthAndUnderlying(t),this.underlying.revealCounterpartyKeyLinkage(e,t)}async revealSpecificKeyLinkage(e,t){return this.checkAuthAndUnderlying(t),this.underlying.revealSpecificKeyLinkage(e,t)}async encrypt(e,t){return this.checkAuthAndUnderlying(t),this.underlying.encrypt(e,t)}async decrypt(e,t){return this.checkAuthAndUnderlying(t),this.underlying.decrypt(e,t)}async createHmac(e,t){return this.checkAuthAndUnderlying(t),this.underlying.createHmac(e,t)}async verifyHmac(e,t){return this.checkAuthAndUnderlying(t),this.underlying.verifyHmac(e,t)}async createSignature(e,t){return this.checkAuthAndUnderlying(t),this.underlying.createSignature(e,t)}async verifySignature(e,t){return this.checkAuthAndUnderlying(t),this.underlying.verifySignature(e,t)}async createAction(e,t){return this.checkAuthAndUnderlying(t),this.underlying.createAction(e,t)}async signAction(e,t){return this.checkAuthAndUnderlying(t),this.underlying.signAction(e,t)}async abortAction(e,t){return this.checkAuthAndUnderlying(t),this.underlying.abortAction(e,t)}async listActions(e,t){return this.checkAuthAndUnderlying(t),this.underlying.listActions(e,t)}async internalizeAction(e,t){return this.checkAuthAndUnderlying(t),this.underlying.internalizeAction(e,t)}async listOutputs(e,t){return this.checkAuthAndUnderlying(t),this.underlying.listOutputs(e,t)}async relinquishOutput(e,t){return this.checkAuthAndUnderlying(t),this.underlying.relinquishOutput(e,t)}async acquireCertificate(e,t){return this.checkAuthAndUnderlying(t),this.underlying.acquireCertificate(e,t)}async listCertificates(e,t){return this.checkAuthAndUnderlying(t),this.underlying.listCertificates(e,t)}async proveCertificate(e,t){return this.checkAuthAndUnderlying(t),this.underlying.proveCertificate(e,t)}async relinquishCertificate(e,t){return this.checkAuthAndUnderlying(t),this.underlying.relinquishCertificate(e,t)}async discoverByIdentityKey(e,t){return this.checkAuthAndUnderlying(t),this.underlying.discoverByIdentityKey(e,t)}async discoverByAttributes(e,t){return this.checkAuthAndUnderlying(t),this.underlying.discoverByAttributes(e,t)}async isAuthenticated(e,t){if(!this.authenticated)throw new Error("User is not authenticated.");if(t===this.adminOriginator)throw new Error("External applications are not allowed to use the admin originator.");return{authenticated:!0}}async waitForAuthentication(e,t){if(t===this.adminOriginator)throw new Error("External applications are not allowed to use the admin originator.");for(;!this.authenticated||!this.underlying;)await new Promise(i=>setTimeout(i,100));return await this.underlying.waitForAuthentication({},t)}async getHeight(e,t){return this.checkAuthAndUnderlying(t),this.underlying.getHeight({},t)}async getHeaderForHeight(e,t){return this.checkAuthAndUnderlying(t),this.underlying.getHeaderForHeight(e,t)}async getNetwork(e,t){return this.checkAuthAndUnderlying(t),this.underlying.getNetwork({},t)}async getVersion(e,t){return this.checkAuthAndUnderlying(t),this.underlying.getVersion({},t)}};Ne.CWIStyleWalletManager=I3});var MG=b(Mv=>{"use strict";Object.defineProperty(Mv,"__esModule",{value:!0});Mv.WalletSigner=void 0;var w3=class{constructor(e,t,i){this.isWalletSigner=!0,this.chain=e,this.keyDeriver=t,this.storage=i}};Mv.WalletSigner=w3});var qG=b(qv=>{"use strict";Object.defineProperty(qv,"__esModule",{value:!0});qv.SimpleWalletManager=void 0;var Bl=se(),b3=class{constructor(e,t,i){this.authenticated=!1,this.adminOriginator=e,this.walletBuilder=t,i&&this.loadSnapshot(i)}async providePrimaryKey(e){this.primaryKey=e,await this.tryBuildUnderlying()}async providePrivilegedKeyManager(e){this.underlyingPrivilegedKeyManager=e,await this.tryBuildUnderlying()}async tryBuildUnderlying(){if(this.authenticated)throw new Error("The user is already authenticated.");!this.primaryKey||!this.underlyingPrivilegedKeyManager||(this.underlying=await this.walletBuilder(this.primaryKey,this.underlyingPrivilegedKeyManager),this.authenticated=!0)}destroy(){this.underlying=void 0,this.underlyingPrivilegedKeyManager=void 0,this.authenticated=!1,this.primaryKey=void 0}saveSnapshot(){if(!this.primaryKey)throw new Error("No primary key is set; cannot save snapshot.");let e=(0,Bl.Random)(32),t=new Bl.Utils.Writer;t.writeUInt8(1),t.writeVarIntNum(this.primaryKey.length),t.write(this.primaryKey);let i=t.toArray(),n=new Bl.SymmetricKey(e).encrypt(i),s=new Bl.Utils.Writer;return s.write(e),s.write(n),s.toArray()}async loadSnapshot(e){try{let t=new Bl.Utils.Reader(e),i=t.read(32),n=t.read(),s=new Bl.SymmetricKey(i).decrypt(n),a=new Bl.Utils.Reader(s),o=a.readUInt8();if(o!==1)throw new Error(`Unsupported snapshot version: ${o}`);let c=a.readVarIntNum(),u=a.read(c);this.primaryKey=u,await this.tryBuildUnderlying()}catch(t){throw new Error(`Failed to load snapshot: ${t.message}`)}}async isAuthenticated(e,t){return this.ensureCanCall(t),{authenticated:!0}}async waitForAuthentication(e,t){if(t===this.adminOriginator)throw new Error("External applications cannot use the admin originator.");for(;!this.authenticated;)await new Promise(i=>setTimeout(i,100));return{authenticated:!0}}async getPublicKey(e,t){return this.ensureCanCall(t),this.underlying.getPublicKey(e,t)}async revealCounterpartyKeyLinkage(e,t){return this.ensureCanCall(t),this.underlying.revealCounterpartyKeyLinkage(e,t)}async revealSpecificKeyLinkage(e,t){return this.ensureCanCall(t),this.underlying.revealSpecificKeyLinkage(e,t)}async encrypt(e,t){return this.ensureCanCall(t),this.underlying.encrypt(e,t)}async decrypt(e,t){return this.ensureCanCall(t),this.underlying.decrypt(e,t)}async createHmac(e,t){return this.ensureCanCall(t),this.underlying.createHmac(e,t)}async verifyHmac(e,t){return this.ensureCanCall(t),this.underlying.verifyHmac(e,t)}async createSignature(e,t){return this.ensureCanCall(t),this.underlying.createSignature(e,t)}async verifySignature(e,t){return this.ensureCanCall(t),this.underlying.verifySignature(e,t)}async createAction(e,t){return this.ensureCanCall(t),this.underlying.createAction(e,t)}async signAction(e,t){return this.ensureCanCall(t),this.underlying.signAction(e,t)}async abortAction(e,t){return this.ensureCanCall(t),this.underlying.abortAction(e,t)}async listActions(e,t){return this.ensureCanCall(t),this.underlying.listActions(e,t)}async internalizeAction(e,t){return this.ensureCanCall(t),this.underlying.internalizeAction(e,t)}async listOutputs(e,t){return this.ensureCanCall(t),this.underlying.listOutputs(e,t)}async relinquishOutput(e,t){return this.ensureCanCall(t),this.underlying.relinquishOutput(e,t)}async acquireCertificate(e,t){return this.ensureCanCall(t),this.underlying.acquireCertificate(e,t)}async listCertificates(e,t){return this.ensureCanCall(t),this.underlying.listCertificates(e,t)}async proveCertificate(e,t){return this.ensureCanCall(t),this.underlying.proveCertificate(e,t)}async relinquishCertificate(e,t){return this.ensureCanCall(t),this.underlying.relinquishCertificate(e,t)}async discoverByIdentityKey(e,t){return this.ensureCanCall(t),this.underlying.discoverByIdentityKey(e,t)}async discoverByAttributes(e,t){return this.ensureCanCall(t),this.underlying.discoverByAttributes(e,t)}async getHeight(e,t){return this.ensureCanCall(t),this.underlying.getHeight({},t)}async getHeaderForHeight(e,t){return this.ensureCanCall(t),this.underlying.getHeaderForHeight(e,t)}async getNetwork(e,t){return this.ensureCanCall(t),this.underlying.getNetwork({},t)}async getVersion(e,t){return this.ensureCanCall(t),this.underlying.getVersion({},t)}ensureCanCall(e){if(e===this.adminOriginator)throw new Error("External applications cannot use the admin originator.");if(!this.authenticated)throw new Error("User is not authenticated.")}};qv.SimpleWalletManager=b3});var Eg=b(Lv=>{"use strict";Object.defineProperty(Lv,"__esModule",{value:!0});Lv.AuthMethodInteractor=void 0;var v3=class{async postAuth(e,t,i,n){let s=await fetch(`${e}/auth/${t}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({methodType:this.methodType,presentationKey:i,payload:n})});return s.ok?s.json():{success:!1,message:`HTTP error ${s.status}`}}async startAuth(e,t,i){return this.postAuth(e,"start",t,i)}async completeAuth(e,t,i){return this.postAuth(e,"complete",t,i)}};Lv.AuthMethodInteractor=v3});var LG=b(Kv=>{"use strict";Object.defineProperty(Kv,"__esModule",{value:!0});Kv.PersonaIDInteractor=void 0;var QTe=Eg(),x3=class extends QTe.AuthMethodInteractor{constructor(){super(...arguments),this.methodType="PersonaID"}};Kv.PersonaIDInteractor=x3});var KG=b(Vv=>{"use strict";Object.defineProperty(Vv,"__esModule",{value:!0});Vv.TwilioPhoneInteractor=void 0;var NTe=Eg(),B3=class extends NTe.AuthMethodInteractor{constructor(){super(...arguments),this.methodType="TwilioPhone"}};Vv.TwilioPhoneInteractor=B3});var VG=b(jv=>{"use strict";Object.defineProperty(jv,"__esModule",{value:!0});jv.DevConsoleInteractor=void 0;var RTe=Eg(),E3=class extends RTe.AuthMethodInteractor{constructor(){super(...arguments),this.methodType="DevConsole"}};jv.DevConsoleInteractor=E3});var k3=b(Wv=>{"use strict";Object.defineProperty(Wv,"__esModule",{value:!0});Wv.WABClient=void 0;var DTe=se(),C3=class{constructor(e){this.serverUrl=e}async getInfo(){return(await fetch(`${this.serverUrl}/info`)).json()}generateRandomPresentationKey(){return DTe.PrivateKey.fromRandom().toHex()}async startAuthMethod(e,t,i){return e.startAuth(this.serverUrl,t,i)}async completeAuthMethod(e,t,i){return e.completeAuth(this.serverUrl,t,i)}async listLinkedMethods(e){return(await fetch(`${this.serverUrl}/user/linkedMethods`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({presentationKey:e})})).json()}async unlinkMethod(e,t){return(await fetch(`${this.serverUrl}/user/unlinkMethod`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({presentationKey:e,authMethodId:t})})).json()}async requestFaucet(e){return(await fetch(`${this.serverUrl}/faucet/request`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({presentationKey:e})})).json()}async deleteUser(e){return(await fetch(`${this.serverUrl}/user/delete`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({presentationKey:e})})).json()}async startShareAuth(e,t,i){return(await fetch(`${this.serverUrl}/auth/start`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({methodType:e,presentationKey:t,payload:i})})).json()}async storeShare(e,t,i,n){return(await fetch(`${this.serverUrl}/share/store`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({methodType:e,payload:t,shareB:i,userIdHash:n})})).json()}async retrieveShare(e,t,i){return(await fetch(`${this.serverUrl}/share/retrieve`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({methodType:e,payload:t,userIdHash:i})})).json()}async updateShare(e,t,i,n){return(await fetch(`${this.serverUrl}/share/update`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({methodType:e,payload:t,userIdHash:i,newShareB:n})})).json()}async deleteShamirUser(e,t,i){return(await fetch(`${this.serverUrl}/share/delete`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({methodType:e,payload:t,userIdHash:i})})).json()}};Wv.WABClient=C3});var WG=b(Gv=>{"use strict";Object.defineProperty(Gv,"__esModule",{value:!0});Gv.WalletAuthenticationManager=void 0;var jG=y3(),so=se(),S3=class extends jG.CWIStyleWalletManager{constructor(e,t,i=new jG.OverlayUMPTokenInteractor,n,s,a,o,c){super(e,t,i,n,s,async(u,l,d)=>{let f=await this.wabClient.requestFaucet(so.Utils.toHex(u)),h=f?.paymentData;if(!f?.success||!h)throw new Error(`Faucet request failed: ${f?.message||"Missing paymentData from WAB"}`);if(!h.k||!h.tx||!h.txid)throw new Error("Faucet response missing required fields: k, tx, or txid");try{let p=so.Transaction.fromAtomicBEEF(h.tx),A=await l.createAction({inputBEEF:p.toBEEF(),inputs:[{outpoint:`${h.txid}.0`,unlockingScriptLength:108,inputDescription:"Fund from faucet"}],description:"Fund wallet",options:{acceptDelayedBroadcast:!1}},d);if(!A.signableTransaction)throw new Error("Faucet redemption did not return a signableTransaction");let g=so.Transaction.fromAtomicBEEF(A.signableTransaction.tx),m=new so.RPuzzle,I=so.PrivateKey.fromRandom(),v=await m.unlock(new so.BigNumber(h.k,16),I).sign(g,0);await l.signAction({reference:A.signableTransaction.reference,spends:{0:{unlockingScript:v.toHex()}}})}catch(p){let A=p instanceof Error?p.message:String(p);throw new Error(`Faucet redemption failed: ${A}`)}},c),this.wabClient=a,this.authMethod=o}setAuthMethod(e){this.authMethod=e}async startAuth(e){if(!this.authMethod)throw new Error("No AuthMethod selected in WalletAuthenticationManager");this.tempPresentationKey=this.generateTemporaryPresentationKey();let t=await this.wabClient.startAuthMethod(this.authMethod,this.tempPresentationKey,e);if(!t.success)throw new Error(t.message||"Failed to start WAB auth method")}async completeAuth(e){if(!this.authMethod||!this.tempPresentationKey)throw new Error("No AuthMethod selected in WalletAuthenticationManager or startAuth has yet to be called.");let t=this.tempPresentationKey;this.tempPresentationKey=void 0;let i=await this.wabClient.completeAuthMethod(this.authMethod,t,e);if(!i.success||!i.presentationKey)throw new Error(i.message||"Failed to complete WAB auth");let n=i.presentationKey,s=so.Utils.toArray(n,"hex");await this.providePresentationKey(s)}generateTemporaryPresentationKey(){let e=(0,so.Random)(32);return so.Utils.toHex(e)}};Gv.WalletAuthenticationManager=S3});var JG=b(Jv=>{"use strict";Object.defineProperty(Jv,"__esModule",{value:!0});Jv.WalletPermissionsManager=void 0;var ee=se(),OTe=qw();function El(r,e){if(r==null||e===null||e===void 0)return r===e;let t=Object.keys(r),i=Object.keys(e);if(t.length!==i.length)return!1;for(let n of t){let s=r[n],a=e[n],o=GG(s)&&GG(a);if(o&&!El(s,a)||!o&&s!==a)return!1}return!0}function GG(r){return r!=null&&typeof r=="object"}var jr={protocol:"admin protocol-permission",basket:"admin basket-access",certificate:"admin certificate-access",spending:"admin spending-authorization"},ao=class r{constructor(e,t,i={}){this.callbacks={onProtocolPermissionRequested:[],onBasketAccessRequested:[],onCertificateAccessRequested:[],onSpendingAuthorizationRequested:[],onGroupedPermissionRequested:[],onCounterpartyPermissionRequested:[]},this.activeRequests=new Map,this.permissionCache=new Map,this.recentGrants=new Map,this.manifestCache=new Map,this.manifestFetchInProgress=new Map,this.groupedPermissionFlowTail=new Map,this.pactEstablishedCache=new Map,this.underlying=e,this.adminOriginator=this.normalizeOriginator(t)||t,this.config={seekProtocolPermissionsForSigning:!0,seekProtocolPermissionsForEncrypting:!0,seekProtocolPermissionsForHMAC:!0,seekPermissionsForKeyLinkageRevelation:!0,seekPermissionsForPublicKeyRevelation:!0,seekPermissionsForIdentityKeyRevelation:!0,seekPermissionsForIdentityResolution:!0,seekBasketInsertionPermissions:!0,seekBasketRemovalPermissions:!0,seekBasketListingPermissions:!0,seekPermissionWhenApplyingActionLabels:!0,seekPermissionWhenListingActionsByLabel:!0,seekCertificateDisclosurePermissions:!0,seekCertificateAcquisitionPermissions:!0,seekCertificateRelinquishmentPermissions:!0,seekCertificateListingPermissions:!0,encryptWalletMetadata:!0,seekSpendingPermissions:!0,seekGroupedPermission:!0,differentiatePrivilegedOperations:!0,whitelistedCounterparties:{},...i}}async delegateToPModuleIfNeeded(e,t,i,n,s){var a;if(!e.startsWith("p "))return null;let o=e.split(" ")[1],c=(a=this.config.permissionModules)===null||a===void 0?void 0:a[o];if(!c)throw new Error(`Unsupported P-module scheme: p ${o}`);let u=await c.onRequest({method:t,args:i,originator:n}),l=await s(u.args,n);return await c.onResponse(l,{method:t,originator:n})}addPModuleByScheme(e,t,i){var n;if(i.has(e))return;let s=(n=this.config.permissionModules)===null||n===void 0?void 0:n[e];if(!s)throw new Error(`Unsupported P-${t} scheme: p ${e}`);i.set(e,s)}splitLabelsByPermissionModule(e,t){let i=[];if(!e)return i;for(let n of e)if(n.startsWith("p ")){let s=n.slice(2),a=s.indexOf(" ");if(a<=0||a===s.length-1)throw new Error(`Invalid P-label format: ${n}`);if(s[a+1]===" ")throw new Error(`Invalid P-label format: ${n}`);let o=s.slice(0,a);this.addPModuleByScheme(o,"label",t)}else i.push(n);return i}async decryptListOutputsMetadata(e){if(e.outputs)for(let t=0;t<e.outputs.length;t++)e.outputs[t].customInstructions&&(e.outputs[t].customInstructions=await this.maybeDecryptMetadata(e.outputs[t].customInstructions));return e}async decryptListActionsMetadata(e){if(e.actions)for(let t=0;t<e.actions.length;t++){if(e.actions[t].description&&(e.actions[t].description=await this.maybeDecryptMetadata(e.actions[t].description)),e.actions[t].inputs)for(let i=0;i<e.actions[t].inputs.length;i++)e.actions[t].inputs[i].inputDescription&&(e.actions[t].inputs[i].inputDescription=await this.maybeDecryptMetadata(e.actions[t].inputs[i].inputDescription));if(e.actions[t].outputs)for(let i=0;i<e.actions[t].outputs.length;i++)e.actions[t].outputs[i].outputDescription&&(e.actions[t].outputs[i].outputDescription=await this.maybeDecryptMetadata(e.actions[t].outputs[i].outputDescription)),e.actions[t].outputs[i].customInstructions&&(e.actions[t].outputs[i].customInstructions=await this.maybeDecryptMetadata(e.actions[t].outputs[i].customInstructions))}return e}bindCallback(e,t){let i=this.callbacks[e];return i.push(t),i.length-1}unbindCallback(e,t){if(!this.callbacks[e])return!1;let i=this.callbacks[e];if(typeof t=="number")return i[t]?(i[t]=null,!0):!1;{let n=i.indexOf(t);return n!==-1?(i[n]=null,!0):!1}}async callEvent(e,t){let i=this.callbacks[e]||[];for(let n of i)if(typeof n=="function")try{await n(t)}catch{}}async grantPermission(e){let t=this.activeRequests.get(e.requestID);if(!t)throw new Error("Request ID not found.");for(let i of t.pending)i.resolve(!0);if(this.activeRequests.delete(e.requestID),!e.ephemeral){let i=t.request;i.renewal?await this.renewPermissionOnChain(i.previousToken,i,e.expiry||0,e.amount):await this.createPermissionOnChain(i,e.expiry||0,e.amount)}if(!e.ephemeral){let i=e.expiry||0,n=this.buildRequestKey(t.request);this.cachePermission(n,i),this.markRecentGrant(t.request)}}async denyPermission(e){let t=this.activeRequests.get(e);if(!t)throw new Error("Request ID not found.");for(let i of t.pending)i.reject(new Error("Permission denied."));this.activeRequests.delete(e)}async grantGroupedPermission(e){var t,i,n;let s=this.activeRequests.get(e.requestID);if(!s)throw new Error("Request ID not found.");try{let a=s.request,{originator:o,permissions:c,displayOriginator:u}=a,l=this.buildOriginatorLookupValues(u,o);if(e.granted.spendingAuthorization&&!c.spendingAuthorization)throw new Error("Granted spending authorization was not part of the original request.");if(!((t=e.granted.protocolPermissions)===null||t===void 0)&&t.some(I=>{var y;return!(!((y=c.protocolPermissions)===null||y===void 0)&&y.find(v=>El(v,I)))}))throw new Error("Granted protocol permissions are not a subset of the original request.");if(!((i=e.granted.basketAccess)===null||i===void 0)&&i.some(I=>{var y;return!(!((y=c.basketAccess)===null||y===void 0)&&y.find(v=>El(v,I)))}))throw new Error("Granted basket access permissions are not a subset of the original request.");if(!((n=e.granted.certificateAccess)===null||n===void 0)&&n.some(I=>{var y;return!(!((y=c.certificateAccess)===null||y===void 0)&&y.find(v=>El(v,I)))}))throw new Error("Granted certificate access permissions are not a subset of the original request.");let d=e.expiry||0,f=[],h=[];e.granted.spendingAuthorization&&f.push({request:{type:"spending",originator:o,spending:{satoshis:e.granted.spendingAuthorization.amount},reason:e.granted.spendingAuthorization.description},expiry:0,amount:e.granted.spendingAuthorization.amount});let p=e.granted.protocolPermissions||[],A=await this.mapWithConcurrency(p,8,async I=>{var y,v;let B=((v=(y=I.protocolID)===null||y===void 0?void 0:y[0])!==null&&v!==void 0?v:0)===1?"":I.counterparty||"self",E=await this.findProtocolToken(o,!1,I.protocolID,B,!0,l);return{p:I,token:E,counterparty:B}});for(let{p:I,token:y,counterparty:v}of A){let B={type:"protocol",originator:o,privileged:!1,protocolID:I.protocolID,counterparty:v,reason:I.description};y?h.push({oldToken:y,request:B,expiry:d}):f.push({request:B,expiry:d})}for(let I of e.granted.basketAccess||[])f.push({request:{type:"basket",originator:o,basket:I.basket,reason:I.description},expiry:d});for(let I of e.granted.certificateAccess||[])f.push({request:{type:"certificate",originator:o,privileged:!1,certificate:{verifier:I.verifierPublicKey,certType:I.type,fields:I.fields},reason:I.description},expiry:d});let g=await this.createPermissionTokensBestEffort(f),m=await this.renewPermissionTokensBestEffort(h);for(let I of[...g,...m])this.markRecentGrant(I);for(let I of s.pending)I.resolve(!0)}catch(a){for(let o of s.pending)o.reject(a);throw a}finally{this.activeRequests.delete(e.requestID)}}async denyGroupedPermission(e){let t=this.activeRequests.get(e);if(!t)throw new Error("Request ID not found.");let i=new Error("The user has denied the request for permission.");i.code="ERR_PERMISSION_DENIED";for(let n of t.pending)n.reject(i);this.activeRequests.delete(e)}async dismissGroupedPermission(e){let t=this.activeRequests.get(e);if(!t)throw new Error("Request ID not found.");for(let i of t.pending)i.resolve(!0);this.activeRequests.delete(e)}async grantCounterpartyPermission(e){var t;let i=this.activeRequests.get(e.requestID);if(!i)throw new Error("Request ID not found.");let n=i.request,{originator:s,counterparty:a,permissions:o,displayOriginator:c}=n,u=this.buildOriginatorLookupValues(c,s),l=I=>{if(I){if(typeof I.protocolName=="string")return I.protocolName;if(Array.isArray(I.protocolID)&&typeof I.protocolID[1]=="string")return I.protocolID[1]}};if(!((t=e.granted.protocols)===null||t===void 0)&&t.some(I=>{let y=l(I);return y?!o.protocols.some(v=>v.protocolName===y):!0}))throw new Error("Granted protocol permissions are not a subset of the original request.");let d=e.expiry||0,f=[],h=[],p=e.granted.protocols||[],A=await this.mapWithConcurrency(p,8,async I=>{let y=l(I);if(!y)throw new Error("Invalid counterparty permission protocol entry: missing protocolName/protocolID.");let v=[2,y],B=await this.findProtocolToken(s,!1,v,a,!0,u);return{p:I,token:B,protocolID:v}});for(let{p:I,token:y,protocolID:v}of A){let B={type:"protocol",originator:s,privileged:!1,protocolID:v,counterparty:a,reason:I.description};y?h.push({oldToken:y,request:B,expiry:d}):f.push({request:B,expiry:d})}let g=await this.createPermissionTokensBestEffort(f),m=await this.renewPermissionTokensBestEffort(h);for(let I of[...g,...m])this.markRecentGrant(I);for(let I of i.pending)I.resolve(!0);this.activeRequests.delete(e.requestID)}async denyCounterpartyPermission(e){let t=this.activeRequests.get(e);if(!t)throw new Error("Request ID not found.");let i=new Error("The user has denied the request for permission.");i.code="ERR_PERMISSION_DENIED";for(let n of t.pending)n.reject(i);this.activeRequests.delete(e)}async ensureProtocolPermission({originator:e,privileged:t,protocolID:i,counterparty:n,reason:s,seekPermission:a=!0,usageType:o}){let{normalized:c,lookupValues:u}=this.prepareOriginator(e);if(e=c,this.isAdminOriginator(e))return!0;let[l,d]=i;if(l===0)return!0;if(l===1&&(n=""),this.isAdminProtocol(i))throw new Error(`Protocol \u201C${d}\u201D is admin-only.`);if(o==="signing"&&!this.config.seekProtocolPermissionsForSigning||o==="encrypting"&&!this.config.seekProtocolPermissionsForEncrypting||o==="hmac"&&!this.config.seekProtocolPermissionsForHMAC||o==="publicKey"&&!this.config.seekPermissionsForPublicKeyRevelation||o==="identityKey"&&!this.config.seekPermissionsForIdentityKeyRevelation||o==="linkageRevelation"&&!this.config.seekPermissionsForKeyLinkageRevelation||(this.config.differentiatePrivilegedOperations||(t=!1),!t&&this.isWhitelistedCounterpartyProtocol(n,i)))return!0;let f=this.buildRequestKey({type:"protocol",originator:e,privileged:t,protocolID:i,counterparty:n});if(this.isPermissionCached(f)||this.isRecentlyGranted(f))return!0;let h=await this.findProtocolToken(e,t,i,n,!0,u);if(h)if(this.isTokenExpired(h.expiry)){if(!a)throw new Error("Protocol permission expired and no further user consent allowed (seekPermission=false).");return await this.requestPermissionFlow({type:"protocol",originator:e,privileged:t,protocolID:i,counterparty:n,usageType:o,reason:s,renewal:!0,previousToken:h})}else return this.cachePermission(f,h.expiry),!0;else{if(!a)throw new Error("No protocol permission token found (seekPermission=false).");return await this.requestPermissionFlow({type:"protocol",originator:e,privileged:t,protocolID:i,counterparty:n,usageType:o,reason:s,renewal:!1})}}async ensureBasketAccess({originator:e,basket:t,reason:i,seekPermission:n=!0,usageType:s}){let{normalized:a,lookupValues:o}=this.prepareOriginator(e);if(e=a,this.isAdminOriginator(e))return!0;if(this.isAdminBasket(t))throw new Error(`Basket \u201C${t}\u201D is admin-only.`);if(s==="insertion"&&!this.config.seekBasketInsertionPermissions||s==="removal"&&!this.config.seekBasketRemovalPermissions||s==="listing"&&!this.config.seekBasketListingPermissions)return!0;let c=this.buildRequestKey({type:"basket",originator:e,basket:t});if(this.isPermissionCached(c)||this.isRecentlyGranted(c))return!0;let u=await this.findBasketToken(e,t,!0,o);if(u)if(this.isTokenExpired(u.expiry)){if(!n)throw new Error("Basket permission expired (seekPermission=false).");return await this.requestPermissionFlow({type:"basket",originator:e,basket:t,usageType:s,reason:i,renewal:!0,previousToken:u})}else return this.cachePermission(c,u.expiry),!0;else{if(!n)throw new Error("No basket permission found, and no user consent allowed (seekPermission=false).");return await this.requestPermissionFlow({type:"basket",originator:e,basket:t,usageType:s,reason:i,renewal:!1})}}async ensureCertificateAccess({originator:e,privileged:t,verifier:i,certType:n,fields:s,reason:a,seekPermission:o=!0,usageType:c}){let{normalized:u,lookupValues:l}=this.prepareOriginator(e);if(e=u,this.isAdminOriginator(e)||c==="disclosure"&&!this.config.seekCertificateDisclosurePermissions)return!0;this.config.differentiatePrivilegedOperations||(t=!1);let d=this.buildRequestKey({type:"certificate",originator:e,privileged:t,certificate:{verifier:i,certType:n,fields:s}});if(this.isPermissionCached(d)||this.isRecentlyGranted(d))return!0;let f=await this.findCertificateToken(e,t,i,n,s,!0,l);if(f)if(this.isTokenExpired(f.expiry)){if(!o)throw new Error("Certificate permission expired (seekPermission=false).");return await this.requestPermissionFlow({type:"certificate",originator:e,privileged:t,certificate:{verifier:i,certType:n,fields:s},usageType:c,reason:a,renewal:!0,previousToken:f})}else return this.cachePermission(d,f.expiry),!0;else{if(!o)throw new Error("No certificate permission found (seekPermission=false).");return await this.requestPermissionFlow({type:"certificate",originator:e,privileged:t,certificate:{verifier:i,certType:n,fields:s},usageType:c,reason:a,renewal:!1})}}async ensureSpendingAuthorization({originator:e,satoshis:t,lineItems:i,reason:n,seekPermission:s=!0}){let{normalized:a,lookupValues:o}=this.prepareOriginator(e);if(e=a,this.isAdminOriginator(e)||!this.config.seekSpendingPermissions)return!0;let c=this.buildRequestKey({type:"spending",originator:e,spending:{satoshis:t}});if(this.isPermissionCached(c))return!0;let u=await this.findSpendingToken(e,o);if(u?.authorizedAmount){if(await this.querySpentSince(u)+t<=u.authorizedAmount)return this.cachePermission(c,u.expiry),!0;if(!s)throw new Error(`Spending authorization insufficient for ${t}, no user consent (seekPermission=false).`);return await this.requestPermissionFlow({type:"spending",originator:e,spending:{satoshis:t,lineItems:i},reason:n,renewal:!0,previousToken:u})}else{if(!s)throw new Error("No spending authorization found, (seekPermission=false).");return await this.requestPermissionFlow({type:"spending",originator:e,spending:{satoshis:t,lineItems:i},reason:n,renewal:!1})}}async ensureLabelAccess({originator:e,label:t,reason:i,seekPermission:n=!0,usageType:s}){let{normalized:a}=this.prepareOriginator(e);if(e=a,this.isAdminOriginator(e))return!0;if(this.isAdminLabel(t))throw new Error(`Label \u201C${t}\u201D is admin-only.`);if(s==="apply"&&!this.config.seekPermissionWhenApplyingActionLabels||s==="list"&&!this.config.seekPermissionWhenListingActionsByLabel)return!0;let o=this.buildRequestKey({type:"protocol",originator:e,privileged:!1,protocolID:[1,`action label ${t}`],counterparty:"self"});return this.isPermissionCached(o)?!0:await this.ensureProtocolPermission({originator:e,privileged:!1,protocolID:[1,`action label ${t}`],counterparty:"self",reason:i,seekPermission:n,usageType:"generic"})}isProtocolInCounterpartyPermissions(e,t){let[,i]=e;return!!t.protocols.find(n=>n.protocolName===i)}validateCounterpartyPermissions(e){if(!e||!Array.isArray(e.protocols)||e.protocols.length===0)return null;let t=(s,a)=>{if(!s||typeof s!="object")return;let o=a.toLowerCase(),c=Object.keys(s).find(u=>u.toLowerCase()===o);return c?s[c]:void 0},i=s=>!Array.isArray(s)||s[0]!==2||typeof s[1]!="string"?null:s[1],n=e.protocols.map(s=>{var a,o;let c=t(s,"protocolName");if(typeof c=="string")return{protocolName:c,protocolID:[2,c],description:typeof s?.description=="string"?s.description:void 0};let u=(o=(a=t(s,"protocolID"))!==null&&a!==void 0?a:t(s,"protocolId"))!==null&&o!==void 0?o:t(s,"protocolid"),l=i(u);return l?{protocolName:l,protocolID:[2,l],description:typeof s?.description=="string"?s.description:void 0}:null}).filter(Boolean);return n.length===0?null:{description:typeof e.description=="string"?e.description:void 0,protocols:n}}async fetchManifestPermissions(e){let t=this.manifestCache.get(e);if(t&&Date.now()-t.fetchedAt<r.MANIFEST_CACHE_TTL_MS)return{groupPermissions:t.groupPermissions,counterpartyPermissions:t.counterpartyPermissions};let i=this.manifestFetchInProgress.get(e);if(i)return i;let n=(async()=>{try{let a=e.startsWith("localhost:")?"http":"https",o=await fetch(`${a}://${e}/manifest.json`);if(o.ok){let c=await o.json(),u=c?.metanet||c?.babbage,l=u?.groupPermissions||null,d=this.validateCounterpartyPermissions(u?.counterpartyPermissions);return this.manifestCache.set(e,{groupPermissions:l,counterpartyPermissions:d,fetchedAt:Date.now()}),{groupPermissions:l,counterpartyPermissions:d}}}catch{}let s={groupPermissions:null,counterpartyPermissions:null};return this.manifestCache.set(e,{...s,fetchedAt:Date.now()}),s})();this.manifestFetchInProgress.set(e,n);try{return await n}finally{this.manifestFetchInProgress.delete(e)}}async fetchManifestGroupPermissions(e){let{groupPermissions:t}=await this.fetchManifestPermissions(e);return t}async filterAlreadyGrantedPermissions(e,t){let i={description:t.description,protocolPermissions:[],basketAccess:[],certificateAccess:[]},[n,s,a,o]=await Promise.all([(async()=>t.spendingAuthorization?await this.hasSpendingAuthorization({originator:e,satoshis:t.spendingAuthorization.amount})?void 0:t.spendingAuthorization:void 0)(),(async()=>(await Promise.all((t.protocolPermissions||[]).map(async u=>{var l;if(u.counterparty==="")return null;let[d]=u.protocolID||[0];return d===2&&(u.counterparty===void 0||u.counterparty===null)||await this.hasProtocolPermission({originator:e,privileged:!1,protocolID:u.protocolID,counterparty:(l=u.counterparty)!==null&&l!==void 0?l:"self"})?null:u}))).filter(Boolean))(),(async()=>(await Promise.all((t.basketAccess||[]).map(async u=>await this.hasBasketAccess({originator:e,basket:u.basket})?null:u))).filter(Boolean))(),(async()=>(await Promise.all((t.certificateAccess||[]).map(async u=>await this.hasCertificateAccess({originator:e,privileged:!1,verifier:u.verifierPublicKey,certType:u.type,fields:u.fields})?null:u))).filter(Boolean))()]);return n&&(i.spendingAuthorization=n),i.protocolPermissions=s,i.basketAccess=a,i.certificateAccess=o,i}hasAnyPermissionsToRequest(e){var t,i,n,s,a,o;return!!(e.spendingAuthorization||((i=(t=e.protocolPermissions)===null||t===void 0?void 0:t.length)!==null&&i!==void 0?i:0)>0||((s=(n=e.basketAccess)===null||n===void 0?void 0:n.length)!==null&&s!==void 0?s:0)>0||((o=(a=e.certificateAccess)===null||a===void 0?void 0:a.length)!==null&&o!==void 0?o:0)>0)}hasGroupedPermissionRequestedHandlers(){return(this.callbacks.onGroupedPermissionRequested||[]).some(t=>typeof t=="function")}hasCounterpartyPermissionRequestedHandlers(){return(this.callbacks.onCounterpartyPermissionRequested||[]).some(t=>typeof t=="function")}async hasPactEstablished(e,t){var i;if(t==="self"||t==="anyone")return!0;let n=`${e}:${t}`;if(this.pactEstablishedCache.has(n))return!0;let{counterpartyPermissions:s}=await this.fetchManifestPermissions(e);if(!(!((i=s?.protocols)===null||i===void 0)&&i.length))return!0;let a=s.protocols[0];return await this.hasProtocolPermission({originator:e,privileged:!1,protocolID:[2,a.protocolName],counterparty:t})?(this.pactEstablishedCache.set(n,Date.now()),!0):!1}markPactEstablished(e,t){let i=`${e}:${t}`;this.pactEstablishedCache.set(i,Date.now())}async maybeRequestPact(e){var t;if(!this.config.seekGroupedPermission||!this.hasCounterpartyPermissionRequestedHandlers()||e.type!=="protocol"||e.privileged)return null;let[i]=e.protocolID;if(i!==2)return null;let n=e.originator,s=e.counterparty;if(!s||s==="self"||s==="anyone"||!/^[0-9a-fA-F]{66}$/.test(s))return null;let{counterpartyPermissions:a}=await this.fetchManifestPermissions(n);if(!(!((t=a?.protocols)===null||t===void 0)&&t.length)||!this.isProtocolInCounterpartyPermissions(e.protocolID,a)||await this.hasPactEstablished(n,s))return null;let c=(await Promise.all(a.protocols.map(async h=>await this.hasProtocolPermission({originator:n,privileged:!1,protocolID:[2,h.protocolName],counterparty:s})?null:h))).filter(Boolean);if(c.length===0)return this.markPactEstablished(n,s),null;let u={description:a.description,protocols:c},l=`pact:${n}:${s}`,d=this.activeRequests.get(l);if(d){let h=d.request;for(let p of u.protocols)h.permissions.protocols.find(A=>A.protocolName===p.protocolName)||h.permissions.protocols.push(p);await new Promise((p,A)=>{d.pending.push({resolve:p,reject:A})})}else{let h=new Promise((p,A)=>{this.activeRequests.set(l,{request:{originator:n,counterparty:s,permissions:u,displayOriginator:e.displayOriginator},pending:[{resolve:p,reject:A}]})});await this.callEvent("onCounterpartyPermissionRequested",{requestID:l,originator:n,counterparty:s,permissions:u}),await h}return this.markPactEstablished(n,s),await this.hasProtocolPermission({originator:n,privileged:!1,protocolID:e.protocolID,counterparty:s})?!0:null}async maybeRequestPeerGroupedLevel2ProtocolPermissions(e){var t,i;if(!this.config.seekGroupedPermission||!this.hasGroupedPermissionRequestedHandlers()||e.type!=="protocol")return null;let[n]=e.protocolID;if(n!==2)return null;let s=e.originator,a=(t=e.privileged)!==null&&t!==void 0?t:!1,o=(i=e.counterparty)!==null&&i!==void 0?i:"self",c=await this.fetchManifestGroupPermissions(s);if(!c)return null;let u=m=>m===""?"":m??o,l=(c.protocolPermissions||[]).filter(m=>{var I,y;return((y=(I=m.protocolID)===null||I===void 0?void 0:I[0])!==null&&y!==void 0?y:0)===2}).map(m=>({protocolID:m.protocolID,counterparty:u(m.counterparty),description:m.description})).filter(m=>m.counterparty!=="").filter(m=>m.counterparty===o);if(!l.some(m=>El(m.protocolID,e.protocolID)))return null;let f={protocolPermissions:[]},h=await Promise.all(l.map(async m=>await this.hasProtocolPermission({originator:s,privileged:a,protocolID:m.protocolID,counterparty:m.counterparty})?null:{protocolID:m.protocolID,counterparty:m.counterparty,description:m.description}));if(f.protocolPermissions=h.filter(Boolean),!this.hasAnyPermissionsToRequest(f))return null;let p=`group-peer:${s}:${a}:${o}`,A=this.activeRequests.get(p);if(A){let m=A.request;m.permissions.protocolPermissions||(m.permissions.protocolPermissions=[]);for(let I of f.protocolPermissions||[])m.permissions.protocolPermissions.find(y=>El(y,I))||m.permissions.protocolPermissions.push(I);await new Promise((I,y)=>{A.pending.push({resolve:I,reject:y})})}else{let m=f,I=new Promise((y,v)=>{this.activeRequests.set(p,{request:{originator:s,permissions:m,displayOriginator:e.displayOriginator},pending:[{resolve:y,reject:v}]})});await this.callEvent("onGroupedPermissionRequested",{requestID:p,originator:s,permissions:m}),await I}return await this.checkSpecificPermissionAfterGroupFlow(e)?!0:null}async withGroupedPermissionFlowLock(e,t){let n=(this.groupedPermissionFlowTail.get(e)||Promise.resolve()).catch(()=>{}),s,a=new Promise(c=>{s=c}),o=n.then(()=>a);this.groupedPermissionFlowTail.set(e,o),await n;try{return await t()}finally{s?.(),o.finally(()=>{this.groupedPermissionFlowTail.get(e)===o&&this.groupedPermissionFlowTail.delete(e)})}}async checkSpecificPermissionAfterGroupFlow(e){var t,i,n;switch(e.type){case"protocol":return await this.hasProtocolPermission({originator:e.originator,privileged:(t=e.privileged)!==null&&t!==void 0?t:!1,protocolID:e.protocolID,counterparty:(i=e.counterparty)!==null&&i!==void 0?i:"self"});case"basket":return await this.hasBasketAccess({originator:e.originator,basket:e.basket});case"certificate":return await this.hasCertificateAccess({originator:e.originator,privileged:(n=e.privileged)!==null&&n!==void 0?n:!1,verifier:e.certificate.verifier,certType:e.certificate.certType,fields:e.certificate.fields});case"spending":return await this.hasSpendingAuthorization({originator:e.originator,satoshis:e.spending.satoshis});default:return!1}}isRequestIncludedInGroupPermissions(e,t){var i,n,s,a;switch(e.type){case"protocol":{if(e.privileged)return!1;let o=e.protocolID;if(!o)return!1;let c=(i=e.counterparty)!==null&&i!==void 0?i:"self";return!!(!((n=t.protocolPermissions)===null||n===void 0)&&n.some(u=>{var l;if(u.counterparty==="")return!1;let[d]=u.protocolID||[0];if(d===2&&(u.counterparty===void 0||u.counterparty===null))return!1;let f=d===1?"":(l=u.counterparty)!==null&&l!==void 0?l:"self";return El(u.protocolID,o)&&f===c}))}case"basket":{let o=e.basket;return o?!!(!((s=t.basketAccess)===null||s===void 0)&&s.some(c=>c.basket===o)):!1}case"certificate":{if(e.privileged)return!1;let o=e.certificate;return o?!!(!((a=t.certificateAccess)===null||a===void 0)&&a.some(c=>{let u=new Set(c.fields||[]),l=new Set(o.fields||[]);if(u.size!==l.size)return!1;for(let d of u)if(!l.has(d))return!1;return c.type===o.certType&&c.verifierPublicKey===o.verifier})):!1}case"spending":return!!t.spendingAuthorization;default:return!1}}async maybeRequestGroupedPermissions(e){if(!this.config.seekGroupedPermission)return null;let t=e.originator,i=await this.fetchManifestGroupPermissions(t);if(!i||!this.isRequestIncludedInGroupPermissions(e,i))return null;let n=await this.filterAlreadyGrantedPermissions(t,i);if(!this.hasAnyPermissionsToRequest(n))return null;let s=`group:${t}`;if(this.activeRequests.has(s))await new Promise((o,c)=>{this.activeRequests.get(s).pending.push({resolve:o,reject:c})});else{let o=new Promise((c,u)=>{this.activeRequests.set(s,{request:{originator:t,permissions:n,displayOriginator:e.displayOriginator},pending:[{resolve:c,reject:u}]})});await this.callEvent("onGroupedPermissionRequested",{requestID:s,originator:t,permissions:n}),await o}return await this.checkSpecificPermissionAfterGroupFlow(e)?!0:null}async requestPermissionFlow(e){var t,i,n,s;let a=this.normalizeOriginator(e.originator)||e.originator,o={...e,originator:a,displayOriginator:(n=(t=e.displayOriginator)!==null&&t!==void 0?t:(i=e.previousToken)===null||i===void 0?void 0:i.rawOriginator)!==null&&n!==void 0?n:e.originator};o.type==="protocol"&&((s=o.protocolID)===null||s===void 0?void 0:s[0])===1&&(o.counterparty="");let c=this.buildActiveRequestKey(o),u=this.activeRequests.get(c);if(u&&u.pending.length>0)return new Promise((A,g)=>{u.pending.push({resolve:A,reject:g})});let l=await this.maybeRequestPact(o);if(l!==null)return l;let d=await this.maybeRequestPeerGroupedLevel2ProtocolPermissions(o);if(d!==null)return d;let f=this.config.seekGroupedPermission&&this.groupedPermissionFlowTail.has(o.originator),h=null;if(this.config.seekGroupedPermission?h=await this.withGroupedPermissionFlowLock(o.originator,async()=>await this.maybeRequestGroupedPermissions(o)):h=await this.maybeRequestGroupedPermissions(o),h!==null)return h;if(this.config.seekGroupedPermission&&f&&await this.checkSpecificPermissionAfterGroupFlow(o))return!0;let p=this.activeRequests.get(c);return p&&p.pending.length>0?new Promise((A,g)=>{p.pending.push({resolve:A,reject:g})}):new Promise(async(A,g)=>{var m;this.activeRequests.set(c,{request:o,pending:[{resolve:A,reject:g}]});try{switch(o.type){case"protocol":await this.callEvent("onProtocolPermissionRequested",{...o,counterparty:((m=o.protocolID)===null||m===void 0?void 0:m[0])===1?void 0:o.counterparty,requestID:c});break;case"basket":await this.callEvent("onBasketAccessRequested",{...o,requestID:c});break;case"certificate":await this.callEvent("onCertificateAccessRequested",{...o,requestID:c});break;case"spending":await this.callEvent("onSpendingAuthorizationRequested",{...o,requestID:c});break}}catch(I){let y=this.activeRequests.get(c);if(y){for(let v of y.pending)v.reject(I);this.activeRequests.delete(c)}}})}async encryptPermissionTokenField(e){let t=typeof e=="string"?ee.Utils.toArray(e,"utf8"):e,{ciphertext:i}=await this.underlying.encrypt({plaintext:t,protocolID:r.PERM_TOKEN_ENCRYPTION_PROTOCOL,keyID:"1"},this.adminOriginator);return i}async decryptPermissionTokenField(e){try{let{plaintext:t}=await this.underlying.decrypt({ciphertext:e,protocolID:r.PERM_TOKEN_ENCRYPTION_PROTOCOL,keyID:"1"},this.adminOriginator);return t}catch{return e}}async maybeEncryptMetadata(e){if(!this.config.encryptWalletMetadata)return e;let{ciphertext:t}=await this.underlying.encrypt({plaintext:ee.Utils.toArray(e,"utf8"),protocolID:r.METADATA_ENCRYPTION_PROTOCOL,keyID:"1"},this.adminOriginator);return ee.Utils.toBase64(t)}async maybeDecryptMetadata(e){try{let{plaintext:t}=await this.underlying.decrypt({ciphertext:ee.Utils.toArray(e,"base64"),protocolID:r.METADATA_ENCRYPTION_PROTOCOL,keyID:"1"},this.adminOriginator);return ee.Utils.toUTF8(t)}catch{return e}}isTokenExpired(e){let t=Math.floor(Date.now()/1e3);return e>0&&e<t}async findProtocolToken(e,t,i,n,s,a){let[o,c]=i,u=a?.length?a:[e];for(let l of u){let d=[`originator ${l}`,`privileged ${!!t}`,`protocolName ${c}`,`protocolSecurityLevel ${o}`];o===2&&d.push(`counterparty ${n}`);let f=await this.underlying.listOutputs({basket:jr.protocol,tags:d,tagQueryMode:"all",include:"entire transactions"},this.adminOriginator);for(let h of f.outputs){let[p,A]=h.outpoint.split("."),g=ee.Transaction.fromBEEF(f.BEEF,p),m=ee.PushDrop.decode(g.outputs[Number(A)].lockingScript);if(!m||!m.fields||m.fields.length<6)continue;let I=m.fields[0],y=m.fields[1],v=m.fields[2],B=m.fields[3],E=m.fields[4],k=m.fields[5],T=ee.Utils.toUTF8(await this.decryptPermissionTokenField(I));if(this.normalizeOriginator(T)!==e)continue;let j=parseInt(ee.Utils.toUTF8(await this.decryptPermissionTokenField(y)),10),H=ee.Utils.toUTF8(await this.decryptPermissionTokenField(v))==="true",W=parseInt(ee.Utils.toUTF8(await this.decryptPermissionTokenField(B)),10),M=ee.Utils.toUTF8(await this.decryptPermissionTokenField(E)),Y=ee.Utils.toUTF8(await this.decryptPermissionTokenField(k));if(!(H!==!!t||W!==o||M!==c||W===2&&Y!==n)&&!(!s&&this.isTokenExpired(j)))return{tx:g.toBEEF(),txid:h.outpoint.split(".")[0],outputIndex:parseInt(h.outpoint.split(".")[1],10),outputScript:g.outputs[Number(A)].lockingScript.toHex(),satoshis:h.satoshis,originator:e,rawOriginator:T,privileged:t,protocol:c,securityLevel:o,expiry:j,counterparty:Y}}}}async findAllProtocolTokens(e,t,i,n,s){let[a,o]=i,c=s?.length?s:[e],u=[],l=new Set;for(let d of c){let f=[`originator ${d}`,`privileged ${!!t}`,`protocolName ${o}`,`protocolSecurityLevel ${a}`];a===2&&f.push(`counterparty ${n}`);let h=await this.underlying.listOutputs({basket:jr.protocol,tags:f,tagQueryMode:"all",include:"entire transactions"},this.adminOriginator);for(let p of h.outputs){if(l.has(p.outpoint))continue;let[A,g]=p.outpoint.split("."),m=ee.Transaction.fromBEEF(h.BEEF,A),I=Number(g),y=ee.PushDrop.decode(m.outputs[I].lockingScript);if(!y||!y.fields||y.fields.length<6)continue;let v=y.fields[0],B=y.fields[1],E=y.fields[2],k=y.fields[3],T=y.fields[4],D=y.fields[5],j=ee.Utils.toUTF8(await this.decryptPermissionTokenField(v));if(this.normalizeOriginator(j)!==e)continue;let W=parseInt(ee.Utils.toUTF8(await this.decryptPermissionTokenField(B)),10),M=ee.Utils.toUTF8(await this.decryptPermissionTokenField(E))==="true",Y=parseInt(ee.Utils.toUTF8(await this.decryptPermissionTokenField(k)),10),F=ee.Utils.toUTF8(await this.decryptPermissionTokenField(T)),P=ee.Utils.toUTF8(await this.decryptPermissionTokenField(D));M!==!!t||Y!==a||F!==o||Y===2&&P!==n||(l.add(p.outpoint),u.push({tx:m.toBEEF(),txid:A,outputIndex:I,outputScript:m.outputs[I].lockingScript.toHex(),satoshis:p.satoshis,originator:e,rawOriginator:j,privileged:t,protocol:o,securityLevel:a,expiry:W,counterparty:P}))}}return u}async findBasketToken(e,t,i,n){let s=n?.length?n:[e];for(let a of s){let o=await this.underlying.listOutputs({basket:jr.basket,tags:[`originator ${a}`,`basket ${t}`],tagQueryMode:"all",include:"entire transactions"},this.adminOriginator);for(let c of o.outputs){let[u,l]=c.outpoint.split("."),d=ee.Transaction.fromBEEF(o.BEEF,u),f=ee.PushDrop.decode(d.outputs[Number(l)].lockingScript);if(!f?.fields||f.fields.length<3)continue;let h=f.fields[0],p=f.fields[1],A=f.fields[2],g=ee.Utils.toUTF8(await this.decryptPermissionTokenField(h));if(this.normalizeOriginator(g)!==e)continue;let I=parseInt(ee.Utils.toUTF8(await this.decryptPermissionTokenField(p)),10),y=ee.Utils.toUTF8(await this.decryptPermissionTokenField(A));if(y===t&&!(!i&&this.isTokenExpired(I)))return{tx:d.toBEEF(),txid:c.outpoint.split(".")[0],outputIndex:parseInt(c.outpoint.split(".")[1],10),outputScript:d.outputs[Number(l)].lockingScript.toHex(),satoshis:c.satoshis,originator:e,rawOriginator:g,basketName:y,expiry:I}}}}async findCertificateToken(e,t,i,n,s,a,o){let c=o?.length?o:[e];for(let u of c){let l=await this.underlying.listOutputs({basket:jr.certificate,tags:[`originator ${u}`,`privileged ${!!t}`,`type ${n}`,`verifier ${i}`],tagQueryMode:"all",include:"entire transactions"},this.adminOriginator);for(let d of l.outputs){let[f,h]=d.outpoint.split("."),p=ee.Transaction.fromBEEF(l.BEEF,f),A=ee.PushDrop.decode(p.outputs[Number(h)].lockingScript);if(!A?.fields||A.fields.length<6)continue;let[g,m,I,y,v,B]=A.fields,E=ee.Utils.toUTF8(await this.decryptPermissionTokenField(g));if(this.normalizeOriginator(E)!==e)continue;let T=parseInt(ee.Utils.toUTF8(await this.decryptPermissionTokenField(m)),10),D=ee.Utils.toUTF8(await this.decryptPermissionTokenField(I))==="true",j=ee.Utils.toUTF8(await this.decryptPermissionTokenField(y)),H=ee.Utils.toUTF8(await this.decryptPermissionTokenField(B)),W=await this.decryptPermissionTokenField(v),M=JSON.parse(ee.Utils.toUTF8(W));if(D!==!!t||j!==n||H!==i)continue;let Y=new Set(M);if(!s.some(F=>!Y.has(F))&&!(!a&&this.isTokenExpired(T)))return{tx:p.toBEEF(),txid:d.outpoint.split(".")[0],outputIndex:parseInt(d.outpoint.split(".")[1],10),outputScript:p.outputs[Number(h)].lockingScript.toHex(),satoshis:d.satoshis,originator:e,rawOriginator:E,privileged:t,verifier:H,certType:j,certFields:M,expiry:T}}}}async findSpendingToken(e,t){let i=t?.length?t:[e];for(let n of i){let s=await this.underlying.listOutputs({basket:jr.spending,tags:[`originator ${n}`],tagQueryMode:"all",include:"entire transactions"},this.adminOriginator);for(let a of s.outputs){let[o,c]=a.outpoint.split("."),u=ee.Transaction.fromBEEF(s.BEEF,o),l=ee.PushDrop.decode(u.outputs[Number(c)].lockingScript);if(!l?.fields||l.fields.length<2)continue;let d=l.fields[0],f=l.fields[1],h=ee.Utils.toUTF8(await this.decryptPermissionTokenField(d));if(this.normalizeOriginator(h)!==e)continue;let A=ee.Utils.toUTF8(await this.decryptPermissionTokenField(f)),g=parseInt(A,10);return{tx:u.toBEEF(),txid:a.outpoint.split(".")[0],outputIndex:parseInt(a.outpoint.split(".")[1],10),outputScript:u.outputs[Number(c)].lockingScript.toHex(),satoshis:a.satoshis,originator:e,rawOriginator:h,authorizedAmount:g,expiry:0}}}}getCurrentMonthYearUTC(){let e=new Date,t=e.getUTCFullYear(),i=(e.getUTCMonth()+1).toString().padStart(2,"0");return`${t}-${i}`}async querySpentSince(e){let t=this.buildOriginatorLookupValues(e.rawOriginator,e.originator),i=0;for(let n of t){let{actions:s}=await this.underlying.listActions({labels:[`admin originator ${n}`,`admin month ${this.getCurrentMonthYearUTC()}`],labelQueryMode:"all"},this.adminOriginator);i+=s.reduce((a,o)=>a+o.satoshis,0)}return i}async createPermissionOnChain(e,t,i){let n=this.normalizeOriginator(e.originator)||e.originator;e.originator=n;let s=jr[e.type];if(!s)return;let a=await this.buildPushdropFields(e,t,i),o=await new ee.PushDrop(this.underlying).lock(a,r.PERM_TOKEN_ENCRYPTION_PROTOCOL,"1","self",!0,!0),c=this.buildTagsForRequest(e);await this.createAction({description:`Grant ${e.type} permission`,outputs:[{lockingScript:o.toHex(),satoshis:1,outputDescription:`${e.type} permission token`,basket:s,tags:c}],options:{acceptDelayedBroadcast:!0}},this.adminOriginator)}async mapWithConcurrency(e,t,i){if(!e.length)return[];let n=new Array(e.length),s=0,a=async()=>{for(;;){let o=s++;if(o>=e.length)return;n[o]=await i(e[o])}};return await Promise.all(Array.from({length:Math.min(t,e.length)},()=>a())),n}async runBestEffortBatches(e,t,i){if(!e.length)return[];let n=[];for(let s=0;s<e.length;s+=t){let a=e.slice(s,s+t);n.push(...await this.runBestEffortChunk(a,i))}return n}async runBestEffortChunk(e,t){try{return await t(e)}catch(i){if(e.length<=1)return console.error("Permission batch failed:",i),[];let n=Math.ceil(e.length/2),s=await this.runBestEffortChunk(e.slice(0,n),t),a=await this.runBestEffortChunk(e.slice(n),t);return[...s,...a]}}async buildPermissionOutput(e,t,i){let n=this.normalizeOriginator(e.originator)||e.originator;e.originator=n;let s=jr[e.type];if(!s)throw new Error(`Unsupported permission type: ${e.type}`);let a=await this.buildPushdropFields(e,t,i),o=await new ee.PushDrop(this.underlying).lock(a,r.PERM_TOKEN_ENCRYPTION_PROTOCOL,"1","self",!0,!0),c=this.buildTagsForRequest(e);return{request:e,output:{lockingScript:o.toHex(),satoshis:1,outputDescription:`${e.type} permission token`,basket:s,tags:c}}}async createPermissionTokensBestEffort(e){return this.runBestEffortBatches(e,25,async i=>{let n=await this.mapWithConcurrency(i,8,s=>this.buildPermissionOutput(s.request,s.expiry,s.amount));return await this.createAction({description:`Grant ${n.length} permissions`,outputs:n.map(s=>s.output),options:{acceptDelayedBroadcast:!0}},this.adminOriginator),n.map(s=>s.request)})}async renewPermissionTokensBestEffort(e){return this.runBestEffortBatches(e,15,async i=>{let n=await this.mapWithConcurrency(i,8,d=>this.buildPermissionOutput(d.request,d.expiry,d.amount)),s=new ee.Beef;for(let d of i)s.mergeBeef(ee.Beef.fromBinary(d.oldToken.tx));let{signableTransaction:a}=await this.createAction({description:`Renew ${i.length} permissions`,inputBEEF:s.toBinary(),inputs:i.map((d,f)=>({outpoint:`${d.oldToken.txid}.${d.oldToken.outputIndex}`,unlockingScriptLength:73,inputDescription:`Consume old permission token #${f+1}`})),outputs:n.map(d=>d.output),options:{acceptDelayedBroadcast:!0,randomizeOutputs:!1,signAndProcess:!1}},this.adminOriginator);if(!a?.reference||!a.tx)throw new Error("Failed to create signable transaction");let o=ee.Transaction.fromAtomicBEEF(a.tx),c=new ee.PushDrop(this.underlying),u={};for(let d=0;d<i.length;d++){let f=i[d].oldToken,p=await c.unlock(r.PERM_TOKEN_ENCRYPTION_PROTOCOL,"1","self","all",!1,1,ee.LockingScript.fromHex(f.outputScript)).sign(o,d);u[d]={unlockingScript:p.toHex()}}let{txid:l}=await this.underlying.signAction({reference:a.reference,spends:u});if(!l)throw new Error("Failed to finalize renewal transaction");return n.map(d=>d.request)})}async coalescePermissionTokens(e,t,i){var n;if(!e?.length)throw new Error("No permission tokens to coalesce");if(e.length<2)throw new Error("Need at least 2 tokens to coalesce");let s=new ee.Beef;for(let d of e)s.mergeBeef(ee.Beef.fromBinary(d.tx));let{signableTransaction:a}=await this.createAction({description:(n=i?.description)!==null&&n!==void 0?n:`Coalesce ${e.length} permission tokens`,inputBEEF:s.toBinary(),inputs:e.map((d,f)=>({outpoint:`${d.txid}.${d.outputIndex}`,unlockingScriptLength:74,inputDescription:`Consume permission token #${f+1}`})),outputs:[{lockingScript:t.toHex(),satoshis:1,outputDescription:"Renewed permission token",...i?.basket?{basket:i.basket}:{},...i?.tags?{tags:i.tags}:{}}],options:{acceptDelayedBroadcast:!0,randomizeOutputs:!1,signAndProcess:!1}},this.adminOriginator);if(!a?.reference||!a.tx)throw new Error("Failed to create signable transaction");let o=ee.Transaction.fromAtomicBEEF(a.tx),c=new ee.PushDrop(this.underlying),u={};for(let d=0;d<e.length;d++){let f=e[d],p=await c.unlock(r.PERM_TOKEN_ENCRYPTION_PROTOCOL,"1","self","all",!1,1,ee.LockingScript.fromHex(f.outputScript)).sign(o,d);u[d]={unlockingScript:p.toHex()}}let{txid:l}=await this.underlying.signAction({reference:a.reference,spends:u});if(!l)throw new Error("Failed to finalize coalescing transaction");return l}async renewPermissionOnChain(e,t,i,n){t.originator=this.normalizeOriginator(t.originator)||t.originator;let s=await this.buildPushdropFields(t,i,n),a=await new ee.PushDrop(this.underlying).lock(s,r.PERM_TOKEN_ENCRYPTION_PROTOCOL,"1","self",!0,!0),o=this.buildTagsForRequest(t),c=await this.findAllProtocolTokens(e.originator,e.privileged,[e.securityLevel,e.protocol],e.counterparty,this.buildOriginatorLookupValues(e.rawOriginator,e.originator));if(c.length>1)await this.coalescePermissionTokens(c,a,{tags:o,basket:jr[t.type],description:`Coalesce ${t.type} permission tokens`});else{let u=`${e.txid}.${e.outputIndex}`,{signableTransaction:l}=await this.createAction({description:`Renew ${t.type} permission`,inputBEEF:e.tx,inputs:[{outpoint:u,unlockingScriptLength:73,inputDescription:`Consume old ${t.type} token`}],outputs:[{lockingScript:a.toHex(),satoshis:1,outputDescription:`Renewed ${t.type} permission token`,basket:jr[t.type],tags:o}],options:{acceptDelayedBroadcast:!0}},this.adminOriginator),d=ee.Transaction.fromBEEF(l.tx),h=await new ee.PushDrop(this.underlying).unlock(r.PERM_TOKEN_ENCRYPTION_PROTOCOL,"1","self","all",!1,1,ee.LockingScript.fromHex(e.outputScript)).sign(d,0);await this.underlying.signAction({reference:l.reference,spends:{0:{unlockingScript:h.toHex()}}})}}async buildPushdropFields(e,t,i){var n,s;switch(e.type){case"protocol":{let[a,o]=e.protocolID,c=a===2?(n=e.counterparty)!==null&&n!==void 0?n:"self":"";return[await this.encryptPermissionTokenField(e.originator),await this.encryptPermissionTokenField(String(t)),await this.encryptPermissionTokenField(e.privileged===!0?"true":"false"),await this.encryptPermissionTokenField(String(a)),await this.encryptPermissionTokenField(o),await this.encryptPermissionTokenField(c)]}case"basket":return[await this.encryptPermissionTokenField(e.originator),await this.encryptPermissionTokenField(String(t)),await this.encryptPermissionTokenField(e.basket)];case"certificate":{let{certType:a,fields:o,verifier:c}=e.certificate;return[await this.encryptPermissionTokenField(e.originator),await this.encryptPermissionTokenField(String(t)),await this.encryptPermissionTokenField(e.privileged?"true":"false"),await this.encryptPermissionTokenField(a),await this.encryptPermissionTokenField(JSON.stringify(o)),await this.encryptPermissionTokenField(c)]}case"spending":{let a=i??(((s=e.spending)===null||s===void 0?void 0:s.satoshis)||0);return[await this.encryptPermissionTokenField(e.originator),await this.encryptPermissionTokenField(String(a))]}}}buildTagsForRequest(e){var t;let i=[`originator ${e.originator}`];switch(e.type){case"protocol":{i.push(`privileged ${!!e.privileged}`),i.push(`protocolName ${e.protocolID[1]}`),i.push(`protocolSecurityLevel ${e.protocolID[0]}`),e.protocolID[0]===2&&i.push(`counterparty ${(t=e.counterparty)!==null&&t!==void 0?t:"self"}`);break}case"basket":{i.push(`basket ${e.basket}`);break}case"certificate":{i.push(`privileged ${!!e.privileged}`),i.push(`type ${e.certificate.certType}`),i.push(`verifier ${e.certificate.verifier}`);break}case"spending":break}return i}async listProtocolPermissions({originator:e,privileged:t,protocolName:i,protocolSecurityLevel:n,counterparty:s}={}){let a=jr.protocol,o=[];t!==void 0&&o.push(`privileged ${!!t}`),i&&o.push(`protocolName ${i}`),n!==void 0&&o.push(`protocolSecurityLevel ${n}`),s&&o.push(`counterparty ${s}`);let c=e?this.prepareOriginator(e):void 0,u=c?c.lookupValues:[void 0],l=new Set,d=[];for(let f of u){let h=[...o];f&&h.push(`originator ${f}`);let p=await this.underlying.listOutputs({basket:a,tags:h,tagQueryMode:"all",include:"entire transactions",limit:1e4},this.adminOriginator);for(let A of p.outputs){if(l.has(A.outpoint))continue;let[g,m]=A.outpoint.split("."),I=ee.Transaction.fromBEEF(p.BEEF,g),y=ee.PushDrop.decode(I.outputs[Number(m)].lockingScript);if(!y?.fields||y.fields.length<6)continue;let[v,B,E,k,T,D]=y.fields,j=ee.Utils.toUTF8(await this.decryptPermissionTokenField(v)),H=this.normalizeOriginator(j);if(c&&H!==c.normalized)continue;let W=parseInt(ee.Utils.toUTF8(await this.decryptPermissionTokenField(B)),10),M=ee.Utils.toUTF8(await this.decryptPermissionTokenField(E))==="true",Y=parseInt(ee.Utils.toUTF8(await this.decryptPermissionTokenField(k)),10),F=ee.Utils.toUTF8(await this.decryptPermissionTokenField(T)),P=ee.Utils.toUTF8(await this.decryptPermissionTokenField(D));l.add(A.outpoint),d.push({tx:I.toBEEF(),txid:A.outpoint.split(".")[0],outputIndex:parseInt(A.outpoint.split(".")[1],10),outputScript:I.outputs[Number(m)].lockingScript.toHex(),satoshis:A.satoshis,originator:H,rawOriginator:j,expiry:W,privileged:M,securityLevel:Y,protocol:F,counterparty:P})}}return d}async hasProtocolPermission(e){try{return await this.ensureProtocolPermission({...e,reason:"hasProtocolPermission",seekPermission:!1,usageType:"generic"}),!0}catch{return!1}}async listBasketAccess(e={}){let t=jr.basket,i=[];e.basket&&i.push(`basket ${e.basket}`);let n=e.originator?this.prepareOriginator(e.originator):void 0,s=n?n.lookupValues:[void 0],a=new Set,o=[];for(let c of s){let u=[...i];c&&u.push(`originator ${c}`);let l=await this.underlying.listOutputs({basket:t,tags:u,tagQueryMode:"all",include:"entire transactions",limit:1e4},this.adminOriginator);for(let d of l.outputs){if(a.has(d.outpoint))continue;let[f,h]=d.outpoint.split("."),p=ee.Transaction.fromBEEF(l.BEEF,f),A=ee.PushDrop.decode(p.outputs[Number(h)].lockingScript);if(!A?.fields||A.fields.length<3)continue;let[g,m,I]=A.fields,y=ee.Utils.toUTF8(await this.decryptPermissionTokenField(g)),v=this.normalizeOriginator(y);if(n&&v!==n.normalized)continue;let B=parseInt(ee.Utils.toUTF8(await this.decryptPermissionTokenField(m)),10),E=ee.Utils.toUTF8(await this.decryptPermissionTokenField(I));a.add(d.outpoint),o.push({tx:p.toBEEF(),txid:d.outpoint.split(".")[0],outputIndex:parseInt(d.outpoint.split(".")[1],10),satoshis:d.satoshis,outputScript:p.outputs[Number(h)].lockingScript.toHex(),originator:v,rawOriginator:y,basketName:E,expiry:B})}}return o}async hasBasketAccess(e){try{return await this.ensureBasketAccess({originator:e.originator,basket:e.basket,seekPermission:!1,usageType:"insertion"}),!0}catch{return!1}}async listSpendingAuthorizations(e){let t=jr.spending,i=[];e.originator&&i.push(`originator ${e.originator}`);let n=await this.underlying.listOutputs({basket:t,tags:i,tagQueryMode:"all",include:"entire transactions",limit:1e4},this.adminOriginator),s=[];for(let a of n.outputs){let[o,c]=a.outpoint.split("."),u=ee.Transaction.fromBEEF(n.BEEF,o),l=ee.PushDrop.decode(u.outputs[Number(c)].lockingScript);if(!l?.fields||l.fields.length<2)continue;let[d,f]=l.fields,h=ee.Utils.toUTF8(await this.decryptPermissionTokenField(d)),p=ee.Utils.toUTF8(await this.decryptPermissionTokenField(f)),A=parseInt(p,10);s.push({tx:u.toBEEF(),txid:a.outpoint.split(".")[0],outputIndex:parseInt(a.outpoint.split(".")[1],10),satoshis:a.satoshis,outputScript:u.outputs[Number(c)].lockingScript.toHex(),originator:h,authorizedAmount:A,expiry:0})}return s}async hasSpendingAuthorization(e){try{return await this.ensureSpendingAuthorization({originator:e.originator,satoshis:e.satoshis,seekPermission:!1}),!0}catch{return!1}}async listCertificateAccess(e={}){let t=jr.certificate,i=[];e.privileged!==void 0&&i.push(`privileged ${!!e.privileged}`),e.certType&&i.push(`type ${e.certType}`),e.verifier&&i.push(`verifier ${e.verifier}`);let n=e.originator?this.prepareOriginator(e.originator):void 0,s=n?n.lookupValues:[void 0],a=new Set,o=[];for(let c of s){let u=[...i];c&&u.push(`originator ${c}`);let l=await this.underlying.listOutputs({basket:t,tags:u,tagQueryMode:"all",include:"entire transactions",limit:1e4},this.adminOriginator);for(let d of l.outputs){if(a.has(d.outpoint))continue;let[f,h]=d.outpoint.split("."),p=ee.Transaction.fromBEEF(l.BEEF,f),A=ee.PushDrop.decode(p.outputs[Number(h)].lockingScript);if(!A?.fields||A.fields.length<6)continue;let[g,m,I,y,v,B]=A.fields,E=ee.Utils.toUTF8(await this.decryptPermissionTokenField(g)),k=this.normalizeOriginator(E);if(n&&k!==n.normalized)continue;let T=parseInt(ee.Utils.toUTF8(await this.decryptPermissionTokenField(m)),10),D=ee.Utils.toUTF8(await this.decryptPermissionTokenField(I))==="true",j=ee.Utils.toUTF8(await this.decryptPermissionTokenField(y)),H=ee.Utils.toUTF8(await this.decryptPermissionTokenField(B)),W=await this.decryptPermissionTokenField(v),M=JSON.parse(ee.Utils.toUTF8(W));a.add(d.outpoint),o.push({tx:p.toBEEF(),txid:d.outpoint.split(".")[0],outputIndex:parseInt(d.outpoint.split(".")[1],10),satoshis:d.satoshis,outputScript:p.outputs[Number(h)].lockingScript.toHex(),originator:k,rawOriginator:E,privileged:D,certType:j,certFields:M,verifier:H,expiry:T})}}return o}async hasCertificateAccess(e){try{return await this.ensureCertificateAccess({originator:e.originator,privileged:e.privileged,verifier:e.verifier,certType:e.certType,fields:e.fields,seekPermission:!1,usageType:"disclosure"}),!0}catch{return!1}}async revokePermissions(e){return await this.revokePermissionTokensBestEffort(e)}async revokeAllForOriginator(e,t){let i=this.prepareOriginator(e),n={protocol:!0,basket:!0,certificate:!0,spending:!0,...t||{}},[s,a,o,c]=await Promise.all([n.protocol?this.listProtocolPermissions({originator:e}):Promise.resolve([]),n.basket?this.listBasketAccess({originator:e}):Promise.resolve([]),n.certificate?this.listCertificateAccess({originator:e}):Promise.resolve([]),n.spending?this.listSpendingAuthorizations({originator:i.normalized}):Promise.resolve([])]),u=c.length?[c[0]]:[],l=[...s,...a,...o,...u],d=new Set,f=l.filter(h=>{let p=`${h.txid}.${h.outputIndex}`;return d.has(p)?!1:(d.add(p),!0)});return await this.revokePermissions(f)}async revokePermissionTokensBestEffort(e){return this.runBestEffortBatches(e,15,async i=>(await this.revokePermissionTokensChunk(i),i))}async revokePermissionTokensChunk(e){if(!e.length)return;let t=new ee.Beef;for(let p of e)t.mergeBeef(ee.Beef.fromBinary(p.tx));let{signableTransaction:i}=await this.createAction({description:`Revoke ${e.length} permissions`,inputBEEF:t.toBinary(),inputs:e.map((p,A)=>({outpoint:`${p.txid}.${p.outputIndex}`,unlockingScriptLength:73,inputDescription:`Consume old permission token #${A+1}`})),options:{acceptDelayedBroadcast:!0,randomizeOutputs:!1,signAndProcess:!1}},this.adminOriginator);if(!i?.reference||!i.tx)throw new Error("Failed to create signable transaction");let n=ee.Transaction.fromAtomicBEEF(i.tx),s=p=>(p??"").toLowerCase(),a=p=>{let A=s(p);if(!/^[0-9a-f]{64}$/.test(A))return A;let g=A.match(/../g);return g?g.reverse().join(""):A},o=(p,A)=>{let g=p.lastIndexOf("."),m=p.lastIndexOf(":"),I=g>m?g:m;if(I===-1)return!1;let y=p.slice(0,I),v=p.slice(I+1),B=Number(v);return Number.isFinite(B)?s(y)===s(A.txid)&&B===A.outputIndex:!1},c=p=>n.inputs.findIndex(A=>{var g,m,I,y,v,B,E,k,T,D,j,H,W;let M=(E=(B=(v=(y=(I=(m=(g=A?.sourceTXID)!==null&&g!==void 0?g:A?.sourceTxid)!==null&&m!==void 0?m:A?.sourceTxId)!==null&&I!==void 0?I:A?.prevTxId)!==null&&y!==void 0?y:A?.prevTxid)!==null&&v!==void 0?v:A?.prevTXID)!==null&&B!==void 0?B:A?.txid)!==null&&E!==void 0?E:A?.txID,Y=(j=(D=(T=(k=A?.sourceOutputIndex)!==null&&k!==void 0?k:A?.sourceOutput)!==null&&T!==void 0?T:A?.outputIndex)!==null&&D!==void 0?D:A?.vout)!==null&&j!==void 0?j:A?.prevOutIndex;if(typeof M=="string"&&typeof Y=="number"){let P=s(M),G=s(p.txid);if(P===G&&Y===p.outputIndex||P===a(p.txid)&&Y===p.outputIndex)return!0}let F=(W=(H=A?.outpoint)!==null&&H!==void 0?H:A?.sourceOutpoint)!==null&&W!==void 0?W:A?.prevOutpoint;return!!(typeof F=="string"&&o(F,p))}),u=e.map(p=>{let A=c(p);if(A===-1&&n.inputs.length===1&&(A=0),A===-1)throw new Error("Unable to locate permission token input for revocation.");return{token:p,permInputIndex:A}}),l=new ee.PushDrop(this.underlying),d={},f=await this.mapWithConcurrency(u,8,async({token:p,permInputIndex:A})=>{let m=await l.unlock(r.PERM_TOKEN_ENCRYPTION_PROTOCOL,"1","self","all",!1,1,ee.LockingScript.fromHex(p.outputScript)).sign(n,A);return{permInputIndex:A,unlockingScriptHex:m.toHex()}});for(let p of f)d[p.permInputIndex]={unlockingScript:p.unlockingScriptHex};let{txid:h}=await this.underlying.signAction({reference:i.reference,spends:d});if(!h)throw new Error("Failed to finalize revoke transaction")}async revokePermission(e){let t=`${e.txid}.${e.outputIndex}`,{signableTransaction:i}=await this.createAction({description:"Revoke permission",inputBEEF:e.tx,inputs:[{outpoint:t,unlockingScriptLength:73,inputDescription:"Consume old permission token"}],options:{acceptDelayedBroadcast:!0}},this.adminOriginator),n=ee.Transaction.fromBEEF(i.tx),s=d=>(d??"").toLowerCase(),a=d=>{let f=s(d);if(!/^[0-9a-f]{64}$/.test(f))return f;let h=f.match(/../g);return h?h.reverse().join(""):f},o=d=>{let f=d.lastIndexOf("."),h=d.lastIndexOf(":"),p=f>h?f:h;if(p===-1)return!1;let A=d.slice(0,p),g=d.slice(p+1),m=Number(g);return Number.isFinite(m)?s(A)===s(e.txid)&&m===e.outputIndex:!1},c=n.inputs.findIndex(d=>{var f,h,p,A,g,m,I,y,v,B,E,k,T;let D=(I=(m=(g=(A=(p=(h=(f=d?.sourceTXID)!==null&&f!==void 0?f:d?.sourceTxid)!==null&&h!==void 0?h:d?.sourceTxId)!==null&&p!==void 0?p:d?.prevTxId)!==null&&A!==void 0?A:d?.prevTxid)!==null&&g!==void 0?g:d?.prevTXID)!==null&&m!==void 0?m:d?.txid)!==null&&I!==void 0?I:d?.txID,j=(E=(B=(v=(y=d?.sourceOutputIndex)!==null&&y!==void 0?y:d?.sourceOutput)!==null&&v!==void 0?v:d?.outputIndex)!==null&&B!==void 0?B:d?.vout)!==null&&E!==void 0?E:d?.prevOutIndex;if(typeof D=="string"&&typeof j=="number"){let W=s(D),M=s(e.txid);if(W===M&&j===e.outputIndex||W===a(e.txid)&&j===e.outputIndex)return!0}let H=(T=(k=d?.outpoint)!==null&&k!==void 0?k:d?.sourceOutpoint)!==null&&T!==void 0?T:d?.prevOutpoint;return!!(typeof H=="string"&&o(H))});if(c===-1&&n.inputs.length===1&&(c=0),c===-1)throw new Error("Unable to locate permission token input for revocation.");let l=await new ee.PushDrop(this.underlying).unlock(r.PERM_TOKEN_ENCRYPTION_PROTOCOL,"1","self","all",!1,1,ee.LockingScript.fromHex(e.outputScript)).sign(n,c);await this.underlying.signAction({reference:i.reference,spends:{[c]:{unlockingScript:l.toHex()}}})}async createAction(e,t){let i=new Map,n=[];if(e.outputs){for(let E of e.outputs)if(E.basket)if(E.basket.startsWith("p ")){let k=E.basket.split(" ")[1];this.addPModuleByScheme(k,"basket",i)}else n.push(E.basket)}let s=this.splitLabelsByPermissionModule(e.labels,i);for(let E of n)await this.ensureBasketAccess({originator:t,basket:E,reason:e.description,usageType:"insertion"});for(let E of s)await this.ensureLabelAccess({originator:t,label:E,reason:e.description,usageType:"apply"});let a={...e.options||{}};if(a.signAndProcess!==!0)a.signAndProcess=!1;else if(!this.isAdminOriginator(t))throw new Error("Only the admin originator can set signAndProcess=true explicitly.");let o=e.description,c={},u={},l=(e.inputs||[]).map(async(E,k)=>{E.inputDescription&&(c[k]=E.inputDescription,E.inputDescription=await this.maybeEncryptMetadata(E.inputDescription))}),d=(e.outputs||[]).map(async(E,k)=>{E.outputDescription&&(u[k]=E.outputDescription,E.outputDescription=await this.maybeEncryptMetadata(E.outputDescription)),E.customInstructions&&(E.customInstructions=await this.maybeEncryptMetadata(E.customInstructions))});await Promise.all([(async()=>{e.description=await this.maybeEncryptMetadata(e.description)})(),...l,...d]);let f={...e,options:a,labels:[...e.labels||[],`admin originator ${t}`,`admin month ${this.getCurrentMonthYearUTC()}`]},h;if(i.size>0){let E=Array.from(i.values()),k=f;for(let T of E)k=(await T.onRequest({method:"createAction",args:k,originator:t})).args;h=await this.underlying.createAction(k,t);for(let T=E.length-1;T>=0;T--)h=await E[T].onResponse(h,{method:"createAction",originator:t})}else h=await this.underlying.createAction(f,t);if(!h.signableTransaction)return h;let p=ee.Transaction.fromAtomicBEEF(h.signableTransaction.tx),A=h.signableTransaction.reference,g=0,m=[],I=0;for(let E of p.inputs){let k=`${E.sourceTXID}.${E.sourceOutputIndex}`,T=(e.inputs||[]).findIndex(D=>D.outpoint===k);if(T!==-1){let D=E.sourceTransaction.outputs[E.sourceOutputIndex].satoshis;I+=D,m.push({type:"input",description:c[T]||"No input description provided",satoshis:D})}}let y=(e.outputs||[]).reduce((E,k)=>E+k.satoshis,0);for(let E in e.outputs||[]){let k=e.outputs[E];m.push({type:"output",satoshis:k.satoshis,description:u[E]||"No output description provided"})}if(m.push({type:"fee",satoshis:p.getFee(),description:"Network fee"}),g=y+p.getFee()-I,g>0)try{await this.ensureSpendingAuthorization({originator:t,satoshis:g,lineItems:m,reason:o})}catch(E){throw await this.underlying.abortAction({reference:A}),E}if(ee.Validation.validateCreateActionArgs(e).isSignAction)return h;let B=await this.underlying.signAction({reference:A,spends:{},options:e.options},t);return{...h,...B,signableTransaction:void 0}}async signAction(...e){return this.underlying.signAction(...e)}async abortAction(...e){return this.underlying.abortAction(...e)}async listActions(...e){let[t,i]=e,{remainingLabels:n}=(0,OTe.parseBrc114ActionTimeLabels)(t.labels),s=new Map,a=this.splitLabelsByPermissionModule(n,s);for(let c of a)await this.ensureLabelAccess({originator:i,label:c,reason:"listActions",usageType:"list"});let o;if(s.size>0){let c=Array.from(s.values()),u=t;for(let l of c)u=(await l.onRequest({method:"listActions",args:u,originator:i})).args;o=await this.underlying.listActions(u,i);for(let l=c.length-1;l>=0;l--)o=await c[l].onResponse(o,{method:"listActions",originator:i})}else o=await this.underlying.listActions(...e);return await this.decryptListActionsMetadata(o)}async internalizeAction(...e){var t;let[i,n]=e,s=new Map,a=[];for(let c in i.outputs){let u=i.outputs[c];if(u.protocol==="basket insertion"){let l=u.insertionRemittance.basket;if(l.startsWith("p ")){let d=l.split(" ")[1];this.addPModuleByScheme(d,"basket",s)}else a.push({outIndex:c,basket:l,customInstructions:u.insertionRemittance.customInstructions})}}let o=this.splitLabelsByPermissionModule(i.labels,s);for(let{outIndex:c,basket:u,customInstructions:l}of a)await this.ensureBasketAccess({originator:n,basket:u,reason:i.description,usageType:"insertion"}),l&&(i.outputs[c].insertionRemittance.customInstructions=await this.maybeEncryptMetadata(l));for(let c of o)await this.ensureLabelAccess({originator:n,label:c,reason:i.description,usageType:"apply"});if(s.size>0){let c=Array.from(s.values()),u=i;for(let d of c)u=(await d.onRequest({method:"internalizeAction",args:u,originator:n})).args;for(let d in u.outputs){let f=u.outputs[d];f.protocol==="basket insertion"&&(!((t=f.insertionRemittance)===null||t===void 0)&&t.customInstructions)&&(f.insertionRemittance.customInstructions=await this.maybeEncryptMetadata(f.insertionRemittance.customInstructions))}let l=await this.underlying.internalizeAction(u,n);for(let d=c.length-1;d>=0;d--)l=await c[d].onResponse(l,{method:"internalizeAction",originator:n});return l}return this.underlying.internalizeAction(...e)}async listOutputs(...e){let[t,i]=e,n=await this.delegateToPModuleIfNeeded(t.basket,"listOutputs",t,i,async a=>{let o=await this.underlying.listOutputs(a,i);return await this.decryptListOutputsMetadata(o)});if(n!==null)return n;await this.ensureBasketAccess({originator:i,basket:t.basket,reason:"listOutputs",usageType:"listing"});let s=await this.underlying.listOutputs(...e);return await this.decryptListOutputsMetadata(s)}async relinquishOutput(...e){let[t,i]=e,n=await this.delegateToPModuleIfNeeded(t.basket,"relinquishOutput",t,i,async s=>await this.underlying.relinquishOutput(s,i));return n!==null?n:(await this.ensureBasketAccess({originator:i,basket:t.basket,reason:"relinquishOutput",usageType:"removal"}),this.underlying.relinquishOutput(...e))}async getPublicKey(...e){let[t,i]=e;if(t.protocolID){let n=await this.delegateToPModuleIfNeeded(t.protocolID[1],"getPublicKey",t,i,async s=>await this.underlying.getPublicKey(s,i));if(n!==null)return n;await this.ensureProtocolPermission({originator:i,privileged:t.privileged,protocolID:t.protocolID,counterparty:t.counterparty||"self",reason:t.privilegedReason,usageType:"publicKey"})}return t.identityKey&&await this.ensureProtocolPermission({originator:i,privileged:t.privileged,protocolID:[1,"identity key retrieval"],counterparty:"self",reason:t.privilegedReason,usageType:"identityKey"}),this.underlying.getPublicKey(...e)}async revealCounterpartyKeyLinkage(...e){let[t,i]=e;return await this.ensureProtocolPermission({originator:i,privileged:t.privileged,protocolID:[2,`counterparty key linkage revelation ${t.counterparty}`],counterparty:t.verifier,reason:t.privilegedReason,usageType:"linkageRevelation"}),this.underlying.revealCounterpartyKeyLinkage(...e)}async revealSpecificKeyLinkage(...e){let[t,i]=e;return await this.ensureProtocolPermission({originator:i,privileged:t.privileged,protocolID:[2,`specific key linkage revelation ${t.protocolID[1]} ${t.protocolID[0]===2?t.keyID:"all"}`],counterparty:t.verifier,reason:t.privilegedReason,usageType:"linkageRevelation"}),this.underlying.revealSpecificKeyLinkage(...e)}async encrypt(...e){let[t,i]=e,n=await this.delegateToPModuleIfNeeded(t.protocolID[1],"encrypt",t,i,async s=>await this.underlying.encrypt(s,i));return n!==null?n:(await this.ensureProtocolPermission({originator:i,protocolID:t.protocolID,privileged:t.privileged,counterparty:t.counterparty||"self",reason:t.privilegedReason,usageType:"encrypting"}),this.underlying.encrypt(...e))}async decrypt(...e){let[t,i]=e,n=await this.delegateToPModuleIfNeeded(t.protocolID[1],"decrypt",t,i,async s=>await this.underlying.decrypt(s,i));return n!==null?n:(await this.ensureProtocolPermission({originator:i,privileged:t.privileged,protocolID:t.protocolID,counterparty:t.counterparty||"self",reason:t.privilegedReason,usageType:"encrypting"}),this.underlying.decrypt(...e))}async createHmac(...e){let[t,i]=e,n=await this.delegateToPModuleIfNeeded(t.protocolID[1],"createHmac",t,i,async s=>await this.underlying.createHmac(s,i));return n!==null?n:(await this.ensureProtocolPermission({originator:i,privileged:t.privileged,protocolID:t.protocolID,counterparty:t.counterparty||"self",reason:t.privilegedReason,usageType:"hmac"}),this.underlying.createHmac(...e))}async verifyHmac(...e){let[t,i]=e,n=await this.delegateToPModuleIfNeeded(t.protocolID[1],"verifyHmac",t,i,async s=>await this.underlying.verifyHmac(s,i));return n!==null?n:(await this.ensureProtocolPermission({originator:i,privileged:t.privileged,protocolID:t.protocolID,counterparty:t.counterparty||"self",reason:t.privilegedReason,usageType:"hmac"}),this.underlying.verifyHmac(...e))}async createSignature(...e){let[t,i]=e,n=await this.delegateToPModuleIfNeeded(t.protocolID[1],"createSignature",t,i,async s=>await this.underlying.createSignature(s,i));return n!==null?n:(await this.ensureProtocolPermission({originator:i,privileged:t.privileged,protocolID:t.protocolID,counterparty:t.counterparty||"self",reason:t.privilegedReason,usageType:"signing"}),this.underlying.createSignature(...e))}async verifySignature(...e){let[t,i]=e,n=await this.delegateToPModuleIfNeeded(t.protocolID[1],"verifySignature",t,i,async s=>await this.underlying.verifySignature(s,i));return n!==null?n:(await this.ensureProtocolPermission({originator:i,privileged:t.privileged,protocolID:t.protocolID,counterparty:t.counterparty||"self",reason:t.privilegedReason,usageType:"signing"}),this.underlying.verifySignature(...e))}async acquireCertificate(...e){let[t,i]=e;return this.config.seekCertificateAcquisitionPermissions&&await this.ensureProtocolPermission({originator:i,privileged:t.privileged,protocolID:[1,`certificate acquisition ${t.type}`],counterparty:"self",reason:t.privilegedReason,usageType:"generic"}),this.underlying.acquireCertificate(...e)}async listCertificates(...e){let[t,i]=e;return this.config.seekCertificateListingPermissions&&await this.ensureProtocolPermission({originator:i,privileged:t.privileged,protocolID:[1,"certificate list"],counterparty:"self",reason:t.privilegedReason,usageType:"generic"}),this.underlying.listCertificates(...e)}async proveCertificate(...e){let[t,i]=e;return await this.ensureCertificateAccess({originator:i,privileged:t.privileged,verifier:t.verifier,certType:t.certificate.type,fields:t.fieldsToReveal,reason:"proveCertificate",usageType:"disclosure"}),this.underlying.proveCertificate(...e)}async relinquishCertificate(...e){let[t,i]=e;return this.config.seekCertificateRelinquishmentPermissions&&await this.ensureProtocolPermission({originator:i,privileged:!!t.privileged,protocolID:[1,`certificate relinquishment ${t.type}`],counterparty:"self",reason:t.privilegedReason||"relinquishCertificate",usageType:"generic"}),this.underlying.relinquishCertificate(...e)}async discoverByIdentityKey(...e){let[t,i]=e;return this.config.seekPermissionsForIdentityResolution&&await this.ensureProtocolPermission({originator:i,privileged:!1,protocolID:[1,"identity resolution"],counterparty:"self",reason:"discoverByIdentityKey",usageType:"generic"}),this.underlying.discoverByIdentityKey(...e)}async discoverByAttributes(...e){let[t,i]=e;return this.config.seekPermissionsForIdentityResolution&&await this.ensureProtocolPermission({originator:i,privileged:!1,protocolID:[1,"identity resolution"],counterparty:"self",reason:"discoverByAttributes",usageType:"generic"}),this.underlying.discoverByAttributes(...e)}async isAuthenticated(...e){return this.underlying.isAuthenticated(...e)}async waitForAuthentication(...e){let[t,i]=e;if(this.config.seekGroupedPermission&&i){let{normalized:n}=this.prepareOriginator(i),s=n;await this.withGroupedPermissionFlowLock(s,async()=>{let a=await this.fetchManifestGroupPermissions(s);if(a){let o=await this.filterAlreadyGrantedPermissions(s,a);if(this.hasAnyPermissionsToRequest(o)){let c=`group:${s}`;if(this.activeRequests.has(c))await new Promise((u,l)=>{this.activeRequests.get(c).pending.push({resolve:u,reject:l})});else{let u=new Promise((l,d)=>{this.activeRequests.set(c,{request:{originator:s,permissions:o},pending:[{resolve:l,reject:d}]})});await this.callEvent("onGroupedPermissionRequested",{requestID:c,originator:s,permissions:o}),await u}}}})}return this.underlying.waitForAuthentication(...e)}async getHeight(...e){return this.underlying.getHeight(...e)}async getHeaderForHeight(...e){return this.underlying.getHeaderForHeight(...e)}async getNetwork(...e){return this.underlying.getNetwork(...e)}async getVersion(...e){return this.underlying.getVersion(...e)}isAdminOriginator(e){return this.normalizeOriginator(e)===this.adminOriginator}isAdminProtocol(e){return!!e[1].startsWith("admin")}isAdminLabel(e){return!!(e.startsWith("admin")||e.startsWith("p "))}isAdminBasket(e){return!!(e==="default"||e.startsWith("admin"))}isPermissionCached(e){let t=this.permissionCache.get(e);return t?Date.now()-t.cachedAt>r.CACHE_TTL_MS?(this.permissionCache.delete(e),!1):this.isTokenExpired(t.expiry)?(this.permissionCache.delete(e),!1):!0:!1}cachePermission(e,t){this.permissionCache.set(e,{expiry:t,cachedAt:Date.now()})}markRecentGrant(e){if(e.type==="spending")return;let t=this.buildRequestKey(e);t&&this.recentGrants.set(t,Date.now()+r.RECENT_GRANT_COVER_MS)}isRecentlyGranted(e){let t=this.recentGrants.get(e);return t?Date.now()>t?(this.recentGrants.delete(e),!1):!0:!1}normalizeOriginator(e){if(!e)return"";let t=e.trim();if(!t)return"";try{let n=/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(t)?t:`https://${t}`,s=new URL(n);if(!s.hostname)return t.toLowerCase();let a=s.hostname.toLowerCase(),c=a.includes(":")?`[${a}]`:a,u=s.port,l=r.DEFAULT_PORTS[s.protocol];return u&&l&&u===l?c:u?`${c}:${u}`:c}catch{return t.toLowerCase()}}isWhitelistedCounterpartyProtocol(e,t){var i;let n=this.config.whitelistedCounterparties;if(!n||!e||e==="self"||e==="anyone")return!1;let s=n[e]||n[e.toLowerCase()]||n[e.toUpperCase()];if(!s||s.length===0)return!1;let a=((i=t?.[1])!==null&&i!==void 0?i:"").toString().toLowerCase();return a?s.some(o=>(o??"").toString().toLowerCase()===a):!1}prepareOriginator(e){let t=e?.trim();if(!t)throw new Error("Originator is required for permission checks.");let i=this.normalizeOriginator(t)||t.toLowerCase(),n=Array.from(new Set([t,i])).filter(Boolean);return{normalized:i,lookupValues:n}}buildOriginatorLookupValues(...e){let t=new Set;for(let i of e){let n=i?.trim();n&&t.add(n)}return Array.from(t)}buildRequestKey(e){var t,i,n,s,a;let o=this.normalizeOriginator(e.originator);switch(e.type){case"protocol":return`proto:${o}:${!!e.privileged}:${(t=e.protocolID)===null||t===void 0?void 0:t.join(",")}:${e.counterparty}`;case"basket":return`basket:${o}:${e.basket}`;case"certificate":return`cert:${o}:${!!e.privileged}:${(i=e.certificate)===null||i===void 0?void 0:i.verifier}:${(n=e.certificate)===null||n===void 0?void 0:n.certType}:${(s=e.certificate)===null||s===void 0?void 0:s.fields.join("|")}`;case"spending":return`spend:${o}:${(a=e.spending)===null||a===void 0?void 0:a.satoshis}`}}buildActiveRequestKey(e){var t;let i=this.buildRequestKey(e);return e.type==="protocol"||e.type==="basket"||e.type==="certificate"?`${i}:${(t=e.usageType)!==null&&t!==void 0?t:""}`:i}};Jv.WalletPermissionsManager=ao;ao.MANIFEST_CACHE_TTL_MS=300*1e3;ao.CACHE_TTL_MS=300*1e3;ao.RECENT_GRANT_COVER_MS=15*1e3;ao.DEFAULT_PORTS={"http:":"80","https:":"443"};ao.PERM_TOKEN_ENCRYPTION_PROTOCOL=[2,"admin permission token encryption"];ao.METADATA_ENCRYPTION_PROTOCOL=[2,"admin metadata encryption"]});var Q3=b(zv=>{"use strict";Object.defineProperty(zv,"__esModule",{value:!0});zv.EntropyCollector=void 0;var _3=se(),T3=class{constructor(e={}){var t,i;this.rawEntropy={mousePositions:[],timingDeltas:[]},this.lastSampleTime=0,this.config={targetSamples:(t=e.targetSamples)!==null&&t!==void 0?t:256,minSampleInterval:(i=e.minSampleInterval)!==null&&i!==void 0?i:10}}reset(){this.rawEntropy={mousePositions:[],timingDeltas:[]},this.lastSampleTime=0}addMouseSample(e,t){let i=performance.now();return i-this.lastSampleTime<this.config.minSampleInterval?null:(this.lastSampleTime>0&&this.rawEntropy.timingDeltas.push(i-this.lastSampleTime),this.lastSampleTime=i,this.rawEntropy.mousePositions.push({x:e,y:t,time:i}),this.getProgress())}getProgress(){let e=this.rawEntropy.mousePositions.length;return{collected:e,target:this.config.targetSamples,percent:Math.min(100,Math.floor(e/this.config.targetSamples*100))}}isComplete(){return this.rawEntropy.mousePositions.length>=this.config.targetSamples}extractRawEntropy(){let e=[];for(let i of this.rawEntropy.mousePositions)e.push(i.x&255),e.push(i.y&255),e.push(Math.floor(i.time*1e3)&255),e.push(Math.floor(i.time*1e6)&255);for(let i of this.rawEntropy.timingDeltas)e.push(Math.floor(i*1e3)&255),e.push(Math.floor(i*1e6)&255);let t=_3.Hash.sha256(e);return new Uint8Array(t)}mixWithCSPRNG(){let e=this.extractRawEntropy(),t=new Uint8Array((0,_3.Random)(32)),i=new Uint8Array(32);for(let s=0;s<32;s++)i[s]=e[s]^t[s];let n=_3.Hash.sha256(Array.from(i));return new Uint8Array(n)}generateEntropy(){return this.isComplete()||console.warn(`EntropyCollector: Only ${this.rawEntropy.mousePositions.length}/${this.config.targetSamples} samples collected. Supplementing with additional CSPRNG entropy.`),this.mixWithCSPRNG()}async collectFromBrowser(e=document,t){return new Promise(i=>{let n=s=>{if(s instanceof MouseEvent){let a=this.addMouseSample(s.clientX,s.clientY);a&&(t?.(a),this.isComplete()&&(e.removeEventListener("mousemove",n),i(this.generateEntropy())))}};e.addEventListener("mousemove",n)})}estimateEntropyBits(){let e=this.rawEntropy.mousePositions.length;return e===0?0:Math.min(256,e*6)}};zv.EntropyCollector=T3});var zG=b($v=>{"use strict";Object.defineProperty($v,"__esModule",{value:!0});$v.ShamirWalletManager=void 0;var Cl=se(),FTe=_u(),PTe=k3(),UTe=Q3(),N3=class{constructor(e){var t,i;if(this.config=e,this.wabClient=new PTe.WABClient(e.wabServerUrl),this.entropyCollector=new UTe.EntropyCollector,this.threshold=(t=e.threshold)!==null&&t!==void 0?t:2,this.totalShares=(i=e.totalShares)!==null&&i!==void 0?i:3,this.threshold<2)throw new Error("Threshold must be at least 2");if(this.totalShares<3)throw new Error("Total shares must be at least 3");let n=this.totalShares-1;if(n<this.threshold)throw new Error(`User must have at least ${this.threshold} shares to recover independently. With ${this.totalShares} total shares and server holding 1, user only gets ${n}. Increase totalShares to at least ${this.threshold+1}.`)}getThreshold(){return this.threshold}getTotalShares(){return this.totalShares}resetEntropy(){this.entropyCollector.reset()}addMouseEntropy(e,t){return this.entropyCollector.addMouseSample(e,t)}hasEnoughEntropy(){return this.entropyCollector.isComplete()}getEntropyProgress(){return this.entropyCollector.getProgress()}async collectEntropyFromBrowser(e,t){await this.entropyCollector.collectFromBrowser(e,t)}generateUserIdHash(e){let t=e.toPublicKey().toString(),i=Cl.Hash.sha256(Cl.Utils.toArray(t,"utf8"));return Cl.Utils.toHex(i)}async createNewWallet(e,t){let i=this.entropyCollector.generateEntropy(),n=new Cl.PrivateKey(Array.from(i)),s=n.toBackupShares(this.threshold,this.totalShares),a=s[0],o=s.slice(1),c=this.generateUserIdHash(n),u=await this.wabClient.storeShare(this.config.authMethodType,e,a,c);if(!u.success)throw new Error(u.message||"Failed to store share on server");return await t(o,this.threshold,this.totalShares)||console.warn("User shares may not have been saved. Recovery may be limited."),this.privateKey=n,this.userIdHash=c,{userShares:o,userIdHash:c,privateKey:n,threshold:this.threshold,totalShares:this.totalShares}}async startOTPVerification(e){if(!this.userIdHash)throw new Error("User ID hash not set. Call setUserIdHash first for recovery.");let t=await this.wabClient.startShareAuth(this.config.authMethodType,this.userIdHash,e);if(!t.success)throw new Error(t.message||"Failed to start OTP verification")}setUserIdHash(e){this.userIdHash=e}async recoverWithServerShare(e,t){for(let c of e)this.validateShareFormat(c);if(!this.userIdHash)throw new Error("User ID hash not set. Call setUserIdHash first.");let i=this.getThresholdFromShare(e[0]);if(e.length<i-1)throw new Error(`Need at least ${i-1} user shares to recover with server share. Got ${e.length}.`);let n=await this.wabClient.retrieveShare(this.config.authMethodType,t,this.userIdHash);if(!n.success||!n.shareB)throw new Error(n.message||"Failed to retrieve share from server");let s=[n.shareB,...e.slice(0,i-1)],a=Cl.PrivateKey.fromBackupShares(s);if(this.generateUserIdHash(a)!==this.userIdHash)throw new Error("Share reconstruction failed: integrity check failed");return this.privateKey=a,a}async recoverWithUserShares(e){if(e.length<2)throw new Error("Need at least 2 shares to recover");for(let n of e)this.validateShareFormat(n);let t=this.getThresholdFromShare(e[0]);if(e.length<t)throw new Error(`Need at least ${t} shares to recover. Got ${e.length}.`);let i=Cl.PrivateKey.fromBackupShares(e.slice(0,t));return this.userIdHash=this.generateUserIdHash(i),this.privateKey=i,i}getThresholdFromShare(e){let t=e.split(".");if(t.length!==4)throw new Error("Invalid share format");let i=parseInt(t[2],10);if(isNaN(i)||i<2)throw new Error("Invalid threshold in share");return i}async buildWallet(){if(!this.privateKey)throw new Error("No private key available. Create or recover wallet first.");let e=new FTe.PrivilegedKeyManager(async()=>this.privateKey);return this.underlying=await this.config.walletBuilder(this.privateKey,e),this.underlying}getWallet(){if(!this.underlying)throw new Error("Wallet not built. Call buildWallet first.");return this.underlying}async rotateKeys(e,t){if(!this.userIdHash)throw new Error("User ID hash not set. Cannot rotate keys.");if(!this.hasEnoughEntropy())throw new Error("Collect entropy before key rotation");let i=this.entropyCollector.generateEntropy(),n=new Cl.PrivateKey(Array.from(i)),s=n.toBackupShares(this.threshold,this.totalShares),a=s[0],o=s.slice(1),c=this.generateUserIdHash(n),u=await this.wabClient.updateShare(this.config.authMethodType,e,this.userIdHash,a);if(!u.success)throw new Error(u.message||"Failed to update share on server");return await t(o,this.threshold,this.totalShares)||console.warn("User shares may not have been saved. Recovery may be limited."),this.privateKey=n,this.userIdHash=c,{userShares:o,userIdHash:c,privateKey:n,threshold:this.threshold,totalShares:this.totalShares}}validateShareFormat(e){let t=e.split(".");if(t.length!==4)throw new Error(`Invalid share format. Expected 4 dot-separated parts, got ${t.length}`);let i=parseInt(t[2],10);if(isNaN(i)||i<2)throw new Error("Invalid share: threshold must be at least 2")}hasPrivateKey(){return this.privateKey!==void 0}getUserIdHash(){return this.userIdHash}async deleteAccount(e){if(!this.userIdHash)throw new Error("User ID hash not set. Cannot delete account.");let t=await this.wabClient.deleteShamirUser(this.config.authMethodType,e,this.userIdHash);if(!t.success)throw new Error(t.message||"Failed to delete account");this.privateKey=void 0,this.userIdHash=void 0,this.underlying=void 0}};$v.ShamirWalletManager=N3});var D3=b(Yv=>{"use strict";Object.defineProperty(Yv,"__esModule",{value:!0});Yv.MockChainMigrations=void 0;var R3=class{constructor(){this.migrations={},this.migrations=this.setupMigrations()}async getMigrations(){return Object.keys(this.migrations).sort((e,t)=>e.localeCompare(t))}getMigrationName(e){return e}async getMigration(e){return this.migrations[e]}setupMigrations(){let e={};return e["2026-01-01-001 initial mockchain tables"]={async up(t){await t.schema.createTable("mockchain_block_headers",i=>{i.integer("height").primary(),i.string("hash",64).notNullable().unique(),i.string("previousHash",64).notNullable(),i.string("merkleRoot",64).notNullable(),i.integer("version").notNullable().defaultTo(1),i.integer("time").unsigned().notNullable(),i.integer("bits").unsigned().notNullable(),i.integer("nonce").unsigned().notNullable(),i.string("coinbaseTxid",64).notNullable(),i.timestamp("created_at").defaultTo(t.fn.now()).notNullable()}),await t.schema.createTable("mockchain_transactions",i=>{i.string("txid",64).primary(),i.binary("rawTx").notNullable(),i.integer("blockHeight").nullable(),i.integer("blockIndex").nullable(),i.timestamp("created_at").defaultTo(t.fn.now()).notNullable()}),await t.schema.createTable("mockchain_utxos",i=>{i.increments("id").primary(),i.string("txid",64).notNullable(),i.integer("vout").notNullable(),i.binary("lockingScript").notNullable(),i.bigInteger("satoshis").notNullable(),i.string("scriptHash",64).notNullable(),i.string("spentByTxid",64).nullable(),i.boolean("isCoinbase").notNullable().defaultTo(!1),i.integer("blockHeight").nullable(),i.timestamp("created_at").defaultTo(t.fn.now()).notNullable(),i.unique(["txid","vout"]),i.index("scriptHash"),i.index("spentByTxid")})},async down(t){await t.schema.dropTableIfExists("mockchain_utxos"),await t.schema.dropTableIfExists("mockchain_transactions"),await t.schema.dropTableIfExists("mockchain_block_headers")}},e}};Yv.MockChainMigrations=R3});var Zv=b(Xv=>{"use strict";Object.defineProperty(Xv,"__esModule",{value:!0});Xv.MockChainStorage=void 0;var HTe=D3(),O3=class{constructor(e){this.knex=e}async migrate(){let e=new HTe.MockChainMigrations;await this.knex.migrate.latest({migrationSource:e,tableName:"knex_migrations_mockchain"})}async insertTransaction(e,t){await this.knex("mockchain_transactions").insert({txid:e,rawTx:Buffer.from(t),blockHeight:null,blockIndex:null})}async getTransaction(e){return this.knex("mockchain_transactions").where({txid:e}).first()}async getUnminedTransactions(){return this.knex("mockchain_transactions").whereNull("blockHeight")}async setTransactionBlock(e,t,i){await this.knex("mockchain_transactions").where({txid:e}).update({blockHeight:t,blockIndex:i})}async insertUtxo(e,t,i,n,s,a=!1,o=null){await this.knex("mockchain_utxos").insert({txid:e,vout:t,lockingScript:Buffer.from(i),satoshis:n,scriptHash:s,spentByTxid:null,isCoinbase:a,blockHeight:o})}async getUtxo(e,t){return this.knex("mockchain_utxos").where({txid:e,vout:t}).first()}async getUtxosByScriptHash(e){return this.knex("mockchain_utxos").where({scriptHash:e})}async markUtxoSpent(e,t,i){await this.knex("mockchain_utxos").where({txid:e,vout:t}).update({spentByTxid:i})}async insertBlockHeader(e){await this.knex("mockchain_block_headers").insert(e)}async getBlockHeaderByHeight(e){let t=await this.knex("mockchain_block_headers").where({height:e}).first();return t?this.rowToBlockHeader(t):void 0}async getBlockHeaderByHash(e){let t=await this.knex("mockchain_block_headers").where({hash:e}).first();return t?this.rowToBlockHeader(t):void 0}async getChainTip(){let e=await this.knex("mockchain_block_headers").orderBy("height","desc").first();return e?this.rowToBlockHeader(e):void 0}async getTransactionsInBlock(e){return this.knex("mockchain_transactions").where({blockHeight:e}).orderBy("blockIndex","asc")}async deleteBlockHeader(e){await this.knex("mockchain_block_headers").where({height:e}).delete()}async deleteTransaction(e){await this.knex("mockchain_transactions").where({txid:e}).delete()}async deleteUtxosByTxid(e){await this.knex("mockchain_utxos").where({txid:e}).delete()}async setUtxoBlockHeight(e,t){await this.knex("mockchain_utxos").where({txid:e}).update({blockHeight:t})}async unspendUtxo(e,t){await this.knex("mockchain_utxos").where({txid:e,vout:t}).update({spentByTxid:null})}rowToBlockHeader(e){return{height:e.height,hash:e.hash,previousHash:e.previousHash,merkleRoot:e.merkleRoot,version:e.version,time:e.time,bits:e.bits,nonce:e.nonce}}};Xv.MockChainStorage=O3});var U3=b(ex=>{"use strict";Object.defineProperty(ex,"__esModule",{value:!0});ex.MockChainTracker=void 0;var MTe=se(),qTe=Qn(),F3=de(),P3=class{constructor(e,t){this.chain=e,this.storage=t}async currentHeight(){let e=await this.storage.getChainTip();return e?e.height:-1}async isValidRootForHeight(e,t){let i=await this.storage.getBlockHeaderByHeight(t);return i?i.merkleRoot===e:!1}async getChain(){return this.chain}async getInfo(){let e=await this.storage.getChainTip();return{chain:this.chain,heightBulk:e?e.height:-1,heightLive:e?e.height:-1,storage:"mockchain",bulkIngestors:[],liveIngestors:[],packages:[]}}async getPresentHeight(){return this.currentHeight()}async getHeaders(e,t){let i="";for(let n=e;n<e+t;n++){let s=await this.storage.getBlockHeaderByHeight(n);if(!s)break;let a=(0,qTe.toBinaryBaseBlockHeader)(s);i+=MTe.Utils.toHex(a)}return i}async findChainTipHeader(){let e=await this.storage.getChainTip();if(!e)throw new Error("Mock chain has no blocks");return e}async findChainTipHash(){let e=await this.storage.getChainTip();if(!e)throw new Error("Mock chain has no blocks");return e.hash}async findHeaderForHeight(e){return this.storage.getBlockHeaderByHeight(e)}async findHeaderForBlockHash(e){return this.storage.getBlockHeaderByHash(e)}async addHeader(e){}async startListening(){}async listening(){}async isListening(){return!0}async isSynchronized(){return!0}async subscribeHeaders(e){throw new F3.WERR_NOT_IMPLEMENTED("subscribeHeaders not supported on mock chain")}async subscribeReorgs(e){throw new F3.WERR_NOT_IMPLEMENTED("subscribeReorgs not supported on mock chain")}async unsubscribe(e){throw new F3.WERR_NOT_IMPLEMENTED("unsubscribe not supported on mock chain")}};ex.MockChainTracker=P3});var kg=b(tx=>{"use strict";Object.defineProperty(tx,"__esModule",{value:!0});tx.computeMerkleRoot=LTe;tx.computeMerklePath=KTe;var $G=se(),YG=ae(),Cg=xt();function LTe(r){if(r.length===0)throw new Error("Cannot compute merkle root of empty txid list");let e=r.map(t=>(0,Cg.asArray)(t).reverse());for(;e.length>1;){let t=[];for(let i=0;i<e.length;i+=2){let n=e[i],s=i+1<e.length?e[i+1]:e[i],a=[...n,...s],o=(0,YG.doubleSha256BE)(a).reverse();t.push(o)}e=t}return(0,Cg.asString)(e[0].reverse())}function KTe(r,e,t){if(r.length===0)throw new Error("Cannot compute merkle path of empty txid list");if(e<0||e>=r.length)throw new Error(`targetIndex ${e} out of range [0, ${r.length})`);if(r.length===1){let c=[[{offset:0,hash:r[0],txid:!0}]];return new $G.MerklePath(t,c)}let i=0,n=r.length;for(;n>1;)i++,n=Math.ceil(n/2);let s=Array(i).fill(0).map(()=>[]),a=e,o=[...r];for(let c=0;c<i;c++){let u=a%2===1,l=u?a-1:a+1;if(c===0){let f={offset:e,hash:r[e],txid:!0};if(l>=o.length){let h={offset:l,duplicate:!0};s[0].push(f),s[0].push(h)}else{let h={offset:l,hash:o[l]};u?(s[0].push(h),s[0].push(f)):(s[0].push(f),s[0].push(h))}}else l>=o.length?s[c].push({offset:l,duplicate:!0}):s[c].push({offset:l,hash:o[l]});let d=[];for(let f=0;f<o.length;f+=2){let h=(0,Cg.asArray)(o[f]).reverse(),p=f+1<o.length?(0,Cg.asArray)(o[f+1]).reverse():h,A=[...h,...p],g=(0,YG.doubleSha256BE)(A);d.push((0,Cg.asString)(g))}o=d,a=Math.floor(a/2)}return new $G.MerklePath(t,s)}});var rx=b(Sg=>{"use strict";Object.defineProperty(Sg,"__esModule",{value:!0});Sg.MockMiner=void 0;Sg.createCoinbaseTransaction=eJ;var ix=se(),VTe=Zv(),jTe=kg(),WTe=Qn(),XG=ae(),ZG=xt();function eJ(r){let e=new ix.Transaction,t=[],i=r;if(i===0)t.push(0);else{for(;i>0;)t.push(i&255),i>>=8;t[t.length-1]&128&&t.push(0)}let n=[t.length,...t],s=ix.Script.fromBinary(n);return e.addInput({sourceTXID:"00".repeat(32),sourceOutputIndex:4294967295,unlockingScript:s,sequence:4294967295}),e.addOutput({satoshis:5e9,lockingScript:ix.Script.fromHex("51")}),e}var H3=class{async mineBlock(e){let t=await e.getChainTip(),i=t?t.height+1:0,n=t?t.hash:"00".repeat(32),s=await e.getUnminedTransactions(),a=eJ(i),o=a.id("hex"),c=Array.from(a.toBinary()),u=[o,...s.map(v=>v.txid)],l=(0,jTe.computeMerkleRoot)(u),d=Math.floor(Date.now()/1e3),f=545259519,h=(0,ix.Random)(4),p=(h[0]<<24|h[1]<<16|h[2]<<8|h[3])>>>0,A={version:1,previousHash:n,merkleRoot:l,time:d,bits:f,nonce:p},g=(0,WTe.toBinaryBaseBlockHeader)(A),m=(0,ZG.asString)((0,XG.doubleSha256BE)(g)),I=[81],y=(0,ZG.asString)((0,XG.sha256Hash)(I));return await e.knex.transaction(async v=>{let B=new VTe.MockChainStorage(v);await B.knex("mockchain_transactions").insert({txid:o,rawTx:Buffer.from(c),blockHeight:i,blockIndex:0}),await B.knex("mockchain_utxos").insert({txid:o,vout:0,lockingScript:Buffer.from(I),satoshis:5e9,scriptHash:y,spentByTxid:null,isCoinbase:!0,blockHeight:i});for(let k=0;k<s.length;k++)await B.knex("mockchain_transactions").where({txid:s[k].txid}).update({blockHeight:i,blockIndex:k+1}),await B.knex("mockchain_utxos").where({txid:s[k].txid}).update({blockHeight:i});let E={height:i,hash:m,previousHash:n,merkleRoot:l,version:1,time:d,bits:f,nonce:p,coinbaseTxid:o};await B.knex("mockchain_block_headers").insert(E)}),{height:i,hash:m,previousHash:n,merkleRoot:l,version:1,time:d,bits:f,nonce:p}}};Sg.MockMiner=H3});var nJ=b(ga=>{"use strict";var GTe=ga&&ga.__createBinding||(Object.create?(function(r,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,i,n)}):(function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]})),JTe=ga&&ga.__setModuleDefault||(Object.create?(function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}):function(r,e){r.default=e}),tJ=ga&&ga.__importStar||(function(){var r=function(e){return r=Object.getOwnPropertyNames||function(t){var i=[];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[i.length]=n);return i},r(e)};return function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var i=r(e),n=0;n<i.length;n++)i[n]!=="default"&>e(t,e,i[n]);return JTe(t,e),t}})();Object.defineProperty(ga,"__esModule",{value:!0});ga.MockServices=void 0;var Es=se(),Ci=de(),nx=ae(),_g=xt(),M3=Qn(),iJ=Zv(),zTe=U3(),$Te=rx(),rJ=kg(),q3=class{constructor(e){this.knex=e,this.chain="mock",this.storage=new iJ.MockChainStorage(e),this.tracker=new zTe.MockChainTracker("mock",this.storage),this.miner=new $Te.MockMiner}async initialize(){await this.storage.migrate(),await this.storage.getChainTip()||await this.miner.mineBlock(this.storage)}async mineBlock(){return this.miner.mineBlock(this.storage)}async postBeef(e,t){var i;let n=[];for(let s of t)try{let a=e.findTxid(s);if(!a){n.push({name:"MockServices",status:"error",error:new Ci.WERR_INVALID_PARAMETER("txid",`present in provided BEEF. txid: ${s}`),txidResults:[{txid:s,status:"error"}]});continue}let o=a.rawTx;if(!o){n.push({name:"MockServices",status:"error",error:new Ci.WERR_INVALID_PARAMETER("rawTx",`present in BEEF for txid: ${s}`),txidResults:[{txid:s,status:"error"}]});continue}let c=Es.Transaction.fromBinary(o),u=await this.tracker.currentHeight();for(let d=0;d<c.inputs.length;d++){let f=c.inputs[d],h=f.sourceTXID||(f.sourceTransaction?f.sourceTransaction.id("hex"):void 0);if(!h)throw new Ci.WERR_INVALID_PARAMETER("input.sourceTXID",`defined for input ${d}`);let p=f.sourceOutputIndex,A=await this.storage.getUtxo(h,p);if(!A)throw new Ci.WERR_INVALID_PARAMETER("input",`reference a known UTXO. Input ${d}: ${h}.${p} not found`);if(A.spentByTxid)throw new Ci.WERR_INVALID_PARAMETER("input",`not be already spent. Input ${d}: ${h}.${p} spent by ${A.spentByTxid}`);if(A.isCoinbase&&A.blockHeight!==null&&u-A.blockHeight<100)throw new Ci.WERR_INVALID_PARAMETER("input",`not spend immature coinbase. Input ${d}: coinbase at height ${A.blockHeight}, current height ${u}, need 100 confirmations`);if(!f.sourceTransaction){let g=await this.storage.getTransaction(h);if(g){let m=g.rawTx instanceof Buffer?Array.from(g.rawTx):Array.isArray(g.rawTx)?g.rawTx:Array.from(g.rawTx);f.sourceTransaction=Es.Transaction.fromBinary(m)}}}for(let d of c.inputs)if(d.sourceTransaction&&!d.sourceTransaction.merklePath){let f=d.sourceTransaction.id("hex"),h=await this.storage.getTransaction(f);if(h&&h.blockHeight!==null){let A=(await this.storage.getTransactionsInBlock(h.blockHeight)).map(m=>m.txid),g=A.indexOf(f);g>=0&&(d.sourceTransaction.merklePath=(0,rJ.computeMerklePath)(A,g,h.blockHeight))}}let l=await c.verify("scripts only");if(l!==!0)throw new Ci.WERR_INVALID_PARAMETER("transaction",`pass script validation: ${l}`);await this.storage.insertTransaction(s,Array.from(o));for(let d=0;d<c.outputs.length;d++){let f=c.outputs[d],h=f.lockingScript.toBinary(),p=(0,_g.asString)((0,nx.sha256Hash)(Array.from(h)));await this.storage.insertUtxo(s,d,Array.from(h),(i=f.satoshis)!==null&&i!==void 0?i:0,p)}for(let d of c.inputs){let f=d.sourceTXID||(d.sourceTransaction?d.sourceTransaction.id("hex"):"");await this.storage.markUtxoSpent(f,d.sourceOutputIndex,s)}n.push({name:"MockServices",status:"success",txidResults:[{txid:s,status:"success"}]})}catch(a){let o=a instanceof Error?new Ci.WERR_INTERNAL(a.message):new Ci.WERR_INTERNAL(String(a));n.push({name:"MockServices",status:"error",error:o,txidResults:[{txid:s,status:"error"}]})}return n}async reorg(e,t,i){let n=await this.storage.getChainTip();if(!n)throw new Ci.WERR_INTERNAL("Cannot reorg empty chain");if(e>n.height)throw new Ci.WERR_INVALID_PARAMETER("startingHeight",`<= current tip height ${n.height}`);let s=[];for(let o=e;o<=n.height;o++){let c=await this.storage.getBlockHeaderByHeight(o);c&&s.push(c)}await this.knex.transaction(async o=>{let c=new iJ.MockChainStorage(o);for(let u=n.height;u>=e;u--){let l=await c.getTransactionsInBlock(u),d=await c.knex("mockchain_block_headers").where({height:u}).first(),f=d?.coinbaseTxid;for(let h of l)f&&h.txid===f?(await c.deleteUtxosByTxid(h.txid),await c.deleteTransaction(h.txid)):(await c.setTransactionBlock(h.txid,null,null),await c.setUtxoBlockHeight(h.txid,null));d&&await c.deleteBlockHeader(u)}for(let u=0;u<t;u++){let l=e+u,d=[];if(i)for(let[M,Y]of Object.entries(i))Y===u&&d.push(M);let f;if(l===0)f="00".repeat(32);else{let M=await c.getBlockHeaderByHeight(l-1);if(!M)throw new Ci.WERR_INTERNAL(`Missing block header at height ${l-1}`);f=M.hash}let{createCoinbaseTransaction:h}=await Promise.resolve().then(()=>tJ(rx())),p=h(l),A=p.id("hex"),g=Array.from(p.toBinary()),m=[A,...d],{computeMerkleRoot:I}=await Promise.resolve().then(()=>tJ(kg())),y=I(m),v=Math.floor(Date.now()/1e3),B=545259519,E=(0,Es.Random)(4),k=(E[0]<<24|E[1]<<16|E[2]<<8|E[3])>>>0,T={version:1,previousHash:f,merkleRoot:y,time:v,bits:B,nonce:k},D=(0,M3.toBinaryBaseBlockHeader)(T),j=(0,_g.asString)((0,nx.doubleSha256BE)(D));await c.knex("mockchain_transactions").insert({txid:A,rawTx:Buffer.from(g),blockHeight:l,blockIndex:0});let H=[81],W=(0,_g.asString)((0,nx.sha256Hash)(H));await c.knex("mockchain_utxos").insert({txid:A,vout:0,lockingScript:Buffer.from(H),satoshis:5e9,scriptHash:W,spentByTxid:null,isCoinbase:!0,blockHeight:l});for(let M=0;M<d.length;M++)await c.setTransactionBlock(d[M],l,M+1),await c.setUtxoBlockHeight(d[M],l);await c.knex("mockchain_block_headers").insert({height:l,hash:j,previousHash:f,merkleRoot:y,version:1,time:v,bits:B,nonce:k,coinbaseTxid:A})}});let a=await this.storage.getChainTip();if(!a)throw new Ci.WERR_INTERNAL("Chain tip missing after reorg");return{oldTip:n,newTip:a,deactivatedHeaders:s}}async getRawTx(e){let t=await this.storage.getTransaction(e);if(!t)return{txid:e};let i=t.rawTx instanceof Buffer?Array.from(t.rawTx):Array.isArray(t.rawTx)?t.rawTx:Array.from(t.rawTx);return{txid:e,rawTx:i,name:"MockServices"}}async getMerklePath(e){let t=await this.storage.getTransaction(e);if(!t||t.blockHeight===null)return{};let n=(await this.storage.getTransactionsInBlock(t.blockHeight)).map(c=>c.txid),s=n.indexOf(e);if(s<0)return{};let a=await this.storage.getBlockHeaderByHeight(t.blockHeight);return{merklePath:(0,rJ.computeMerklePath)(n,s,t.blockHeight),header:a||void 0,name:"MockServices"}}async getUtxoStatus(e,t,i){let n=(0,M3.validateScriptHash)(e,t),s=(0,_g.asString)((0,_g.asArray)(n).reverse()),o=(await this.storage.getUtxosByScriptHash(s)).filter(l=>!l.spentByTxid),c=o.length>0,u=o.map(l=>{var d;return{txid:l.txid,index:l.vout,height:(d=l.blockHeight)!==null&&d!==void 0?d:void 0,satoshis:Number(l.satoshis)}});if(i&&c){let[l,d]=i.split("."),f=parseInt(d,10);c=!!u.find(p=>p.txid===l&&p.index===f)}return{name:"MockServices",status:"success",isUtxo:c,details:u}}async getStatusForTxids(e){let t=await this.tracker.currentHeight();return{name:"MockServices",status:"success",results:await Promise.all(e.map(async n=>{let s=await this.storage.getTransaction(n);if(!s)return{txid:n,status:"unknown",depth:void 0};if(s.blockHeight!==null){let a=t-s.blockHeight+1;return{txid:n,status:"mined",depth:a}}return{txid:n,status:"known",depth:0}}))}}async getScriptHashHistory(e){return{name:"MockServices",status:"success",history:(await this.storage.getUtxosByScriptHash(e)).map(n=>{var s;return{txid:n.txid,height:(s=n.blockHeight)!==null&&s!==void 0?s:void 0}})}}async getChainTracker(){return this.tracker}async getHeaderForHeight(e){let t=await this.storage.getBlockHeaderByHeight(e);if(!t)throw new Ci.WERR_INVALID_PARAMETER("height",`valid height '${e}' on mock chain`);return(0,M3.toBinaryBaseBlockHeader)(t)}async getHeight(){return this.tracker.currentHeight()}async hashToHeader(e){let t=await this.storage.getBlockHeaderByHash(e);if(!t)throw new Ci.WERR_INVALID_PARAMETER("hash",`valid blockhash '${e}' on mock chain`);return t}hashOutputScript(e){return Es.Utils.toHex((0,nx.sha256Hash)(Es.Utils.toArray(e,"hex")))}async isUtxo(e){if(!e.lockingScript)throw new Ci.WERR_INVALID_PARAMETER("output.lockingScript","validated by storage provider validateOutputScript.");let t=this.hashOutputScript(Es.Utils.toHex(e.lockingScript));return(await this.getUtxoStatus(t,void 0,`${e.txid}.${e.vout}`)).isUtxo===!0}async getBsvExchangeRate(){return 50}async getFiatExchangeRate(e,t){return 1}async getFiatExchangeRates(e){let t={};for(let i of e)t[i]=1;return{timestamp:new Date,base:"USD",rates:t}}async nLockTimeIsFinal(e){let n;if(typeof e=="number")n=e;else if(typeof e=="string"?e=Es.Transaction.fromHex(e):Array.isArray(e)&&(e=Es.Transaction.fromBinary(e)),e instanceof Es.Transaction){if(e.inputs.every(a=>a.sequence===4294967295))return!0;n=e.lockTime}else throw new Ci.WERR_INTERNAL("Unsupported transaction format");if(n>=5e8){let a=Math.floor(Date.now()/1e3);return n<a}let s=await this.getHeight();return n<s}async getBeefForTxid(e){let t=new Es.Beef,i=async(n,s)=>{if(s.has(n))return;s.add(n);let a=await this.storage.getTransaction(n);if(!a)return;let o=a.rawTx instanceof Buffer?Array.from(a.rawTx):Array.isArray(a.rawTx)?a.rawTx:Array.from(a.rawTx);if(a.blockHeight!==null){let u=await this.getMerklePath(n);if(u.merklePath){let l=t.mergeBump(u.merklePath);t.mergeRawTx(o,l);return}}let c=Es.Transaction.fromBinary(o);for(let u of c.inputs){let l=u.sourceTXID||(u.sourceTransaction?u.sourceTransaction.id("hex"):void 0);l&&l!=="00".repeat(32)&&await i(l,s)}t.mergeRawTx(o)};return await i(e,new Set),t}getServicesCallHistory(){return{version:2,getMerklePath:{serviceName:"getMerklePath",historyByProvider:{}},getRawTx:{serviceName:"getRawTx",historyByProvider:{}},postBeef:{serviceName:"postBeef",historyByProvider:{}},getUtxoStatus:{serviceName:"getUtxoStatus",historyByProvider:{}},getStatusForTxids:{serviceName:"getStatusForTxids",historyByProvider:{}},getScriptHashHistory:{serviceName:"getScriptHashHistory",historyByProvider:{}},updateFiatExchangeRates:{serviceName:"updateFiatExchangeRates",historyByProvider:{}}}}};ga.MockServices=q3});var oJ=b(yi=>{"use strict";Object.defineProperty(yi,"__esModule",{value:!0});yi.computeMerklePath=yi.computeMerkleRoot=yi.MockServices=yi.createCoinbaseTransaction=yi.MockMiner=yi.MockChainTracker=yi.MockChainStorage=yi.MockChainMigrations=void 0;var YTe=D3();Object.defineProperty(yi,"MockChainMigrations",{enumerable:!0,get:function(){return YTe.MockChainMigrations}});var XTe=Zv();Object.defineProperty(yi,"MockChainStorage",{enumerable:!0,get:function(){return XTe.MockChainStorage}});var ZTe=U3();Object.defineProperty(yi,"MockChainTracker",{enumerable:!0,get:function(){return ZTe.MockChainTracker}});var sJ=rx();Object.defineProperty(yi,"MockMiner",{enumerable:!0,get:function(){return sJ.MockMiner}});Object.defineProperty(yi,"createCoinbaseTransaction",{enumerable:!0,get:function(){return sJ.createCoinbaseTransaction}});var eQe=nJ();Object.defineProperty(yi,"MockServices",{enumerable:!0,get:function(){return eQe.MockServices}});var aJ=kg();Object.defineProperty(yi,"computeMerkleRoot",{enumerable:!0,get:function(){return aJ.computeMerkleRoot}});Object.defineProperty(yi,"computeMerklePath",{enumerable:!0,get:function(){return aJ.computeMerklePath}})});var uJ=b(Be=>{"use strict";var cJ=Be&&Be.__createBinding||(Object.create?(function(r,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,i,n)}):(function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]})),tQe=Be&&Be.__setModuleDefault||(Object.create?(function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}):function(r,e){r.default=e}),iQe=Be&&Be.__importStar||(function(){var r=function(e){return r=Object.getOwnPropertyNames||function(t){var i=[];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[i.length]=n);return i},r(e)};return function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var i=r(e),n=0;n<i.length;n++)i[n]!=="default"&&cJ(t,e,i[n]);return tQe(t,e),t}})(),ut=Be&&Be.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&cJ(e,r,t)};Object.defineProperty(Be,"__esModule",{value:!0});Be.sdk=void 0;Be.sdk=iQe(Di());ut(Y6(),Be);ut(NV(),Be);ut($W(),Be);ut(bG(),Be);ut(_G(),Be);ut(OG(),Be);ut(PG(),Be);ut(y3(),Be);ut(_u(),Be);ut(Qn(),Be);ut(M2(),Be);ut(MG(),Be);ut(qG(),Be);ut(Eg(),Be);ut(LG(),Be);ut(KG(),Be);ut(VG(),Be);ut(k3(),Be);ut(sA(),Be);ut(By(),Be);ut(WG(),Be);ut(JG(),Be);ut(WS(),Be);ut(zG(),Be);ut(Q3(),Be);ut(oJ(),Be)});var L3=b(kl=>{"use strict";var rQe=kl&&kl.__createBinding||(Object.create?(function(r,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,i,n)}):(function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]})),nQe=kl&&kl.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&rQe(e,r,t)};Object.defineProperty(kl,"__esModule",{value:!0});nQe(uJ(),kl)});var K3,sQe,Tg,$,It=O(()=>{K3=typeof globalThis<"u"?globalThis.Buffer:void 0,sQe=K3!=null&&typeof K3.from=="function",Tg=new Int8Array(256).fill(-1);for(let r=0;r<10;r++)Tg[48+r]=r;for(let r=0;r<6;r++)Tg[65+r]=10+r,Tg[97+r]=10+r;$=class r{static 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"];static 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];static 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];static wordSize=26;static WORD_SIZE_BIGINT=BigInt(r.wordSize);static WORD_MASK=(1n<<r.WORD_SIZE_BIGINT)-1n;static MAX_SAFE_INTEGER_BIGINT=BigInt(Number.MAX_SAFE_INTEGER);static MIN_SAFE_INTEGER_BIGINT=BigInt(Number.MIN_SAFE_INTEGER);static MAX_IMULN_ARG=67108863;static MAX_NUMBER_CONSTRUCTOR_MAG_BIGINT=(1n<<53n)-1n;_magnitude;_sign;_nominalWordLength;red;get negative(){return this._sign}set negative(e){this.assert(e===0||e===1,"Negative property must be 0 or 1");let t=e===1?1:0;this._magnitude===0n?this._sign=0:this._sign=t}get _computedWordsArray(){if(this._magnitude===0n)return[0];let e=[],t=this._magnitude;for(;t>0n;)e.push(Number(t&r.WORD_MASK)),t>>=r.WORD_SIZE_BIGINT;return e.length>0?e:[0]}get words(){let e=this._computedWordsArray;if(this._nominalWordLength<=e.length)return e;let t=new Array(this._nominalWordLength).fill(0);for(let i=0;i<e.length;i++)t[i]=e[i];return t}set words(e){let t=this._sign,i=0n,n=e.length>0?e.length:1;for(let s=n-1;s>=0;s--){let a=e[s]===void 0?0:e[s];i=i<<r.WORD_SIZE_BIGINT|BigInt(a&Number(r.WORD_MASK))}this._magnitude=i,this._sign=t,this._nominalWordLength=n,this.normSign()}get length(){return Math.max(1,this._nominalWordLength)}static isBN(e){return e instanceof r?!0:e!==null&&typeof e=="object"&&e.constructor?.wordSize===r.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}constructor(e=0,t=10,i="be"){if(this._magnitude=0n,this._sign=0,this._nominalWordLength=1,this.red=null,e===void 0&&(e=0),e===null){this._initializeState(0n,0);return}if(typeof e=="bigint"){this._initializeState(e<0n?-e:e,e<0n?1:0),this.normSign();return}let n=t,s=i;if((t==="le"||t==="be")&&(s=t,n=10),typeof e=="number"){this.initNumber(e,s);return}if(Array.isArray(e)){this.initArray(e,s);return}if(typeof e=="string"){n==="hex"&&(n=16),this.assert(typeof n=="number"&&n===(n|0)&&n>=2&&n<=36,"Base must be an integer between 2 and 36");let a=e.toString().replace(/\s+/g,""),o=0,c=0;a.startsWith("-")?(o++,c=1):a.startsWith("+")&&o++;let u=a.substring(o);if(u.length===0){this._initializeState(0n,c===1&&a.startsWith("-")?1:0),this.normSign();return}if(n===16){let l;if(s==="le"){let d=[],f=u;f.length%2!==0&&(f="0"+f);for(let h=0;h<f.length;h+=2){let p=f.substring(h,h+2),A=parseInt(p,16);if(isNaN(A))throw new Error("Invalid character in "+f);d.push(A)}this.initArray(d,"le"),this._sign=c,this.normSign();return}else try{l=BigInt("0x"+u)}catch{throw new Error("Invalid character in "+u)}this._initializeState(l,c),this.normSign()}else try{if(this._parseBaseString(u,n),this._sign=c,this.normSign(),s==="le"){let l=this._sign;this.initArray(this.toArray("be"),"le"),this._sign=l,this.normSign()}}catch(l){let d=l;throw d.message.includes("Invalid character in string")||d.message.includes("Invalid digit for base")||d.message.startsWith("Invalid character:")?new Error("Invalid character"):d}}else e!==0?this.assert(!1,"Unsupported input type for BigNumber constructor"):this._initializeState(0n,0)}_bigIntToStringInBase(e,t){if(e===0n)return"0";if(t<2||t>36)throw new Error("Base must be between 2 and 36");let i="0123456789abcdefghijklmnopqrstuvwxyz",n="",s=e>0n?e:-e,a=BigInt(t);for(;s>0n;)n=i[Number(s%a)]+n,s/=a;return n}_parseBaseString(e,t){if(e.length===0){this._magnitude=0n,this._finishInitialization();return}this._magnitude=0n;let i=BigInt(t),n=r.groupSizes[t],s=BigInt(r.groupBases[t]);(n===0||s===0n)&&(n=Math.floor(Math.log(67108863)/Math.log(t)),n===0&&(n=1),s=i**BigInt(n));let a=0,o=e.length,c=o%n;if(c===0&&o>0&&(c=n),c>0){let u=e.substring(a,a+c);this._magnitude=BigInt(this._parseBaseWord(u,t)),a+=c}for(;a<o;){let u=e.substring(a,a+n),l=BigInt(this._parseBaseWord(u,t));this._magnitude=this._magnitude*s+l,a+=n}this._finishInitialization()}_parseBaseWord(e,t){let i=0;for(let n=0;n<e.length;n++){let s=e.charCodeAt(n),a;if(s>=48&&s<=57)a=s-48;else if(s>=65&&s<=90)a=s-65+10;else if(s>=97&&s<=122)a=s-97+10;else throw new Error("Invalid character: "+e[n]);if(a>=t)throw new Error("Invalid character");i=i*t+a}return i}_initializeState(e,t){this._magnitude=e,this._sign=e===0n?0:t,this._finishInitialization()}_finishInitialization(){if(this._magnitude===0n)this._nominalWordLength=1,this._sign=0;else{let e=this._magnitude.toString(2).length;this._nominalWordLength=Math.max(1,Math.ceil(e/r.wordSize))}}assert(e,t="Assertion failed"){if(!e)throw new Error(t)}initNumber(e,t="be"){if(this.assert(BigInt(Math.abs(e))<=r.MAX_NUMBER_CONSTRUCTOR_MAG_BIGINT,"The number is larger than 2 ^ 53 (unsafe)"),this.assert(e%1===0,"Number must be an integer for BigNumber conversion"),this._initializeState(BigInt(Math.abs(e)),e<0?1:0),t==="le"){let i=this._sign,n=this.toArray("be");this.initArray(n,"le"),this._sign=i,this.normSign()}return this}initArray(e,t){if(e.length===0)return this._initializeState(0n,0),this;let i=0n;if(t==="be")for(let n=0;n<e.length;n++)i=i<<8n|BigInt(e[n]&255);else for(let n=e.length-1;n>=0;n--)i=i<<8n|BigInt(e[n]&255);return this._initializeState(i,0),this}copy(e){e._magnitude=this._magnitude,e._sign=this._sign,e._nominalWordLength=this._nominalWordLength,e.red=this.red}static move(e,t){e._magnitude=t._magnitude,e._sign=t._sign,e._nominalWordLength=t._nominalWordLength,e.red=t.red}clone(){let e=new r(0n);return this.copy(e),e}expand(e){return this.assert(e>=0,"Expand size must be non-negative"),this._nominalWordLength=Math.max(this._nominalWordLength,e,1),this}strip(){return this._finishInitialization(),this.normSign()}normSign(){return this._magnitude===0n&&(this._sign=0),this}inspect(){return(this.red!==null?"<BN-R: ":"<BN: ")+this.toString(16)+">"}_getMinimalHex(){return this._magnitude===0n?"0":this._magnitude.toString(16)}toString(e=10,t=1){if(e===16||e==="hex"){let i=this._getMinimalHex();if(t>1)for(i!=="0"&&i.length%2!==0&&(i="0"+i);i.length%t!==0;)i="0"+i;return(this.isNeg()?"-":"")+i}if(typeof e!="number"||e<2||e>36||e%1!==0)throw new Error("Base should be an integer between 2 and 36");return this.toBaseString(e,t)}toBaseString(e,t){if(this._magnitude===0n){let o="0";if(t>1)for(;o.length<t;)o="0"+o;return o}let i=r.groupSizes[e],n=BigInt(r.groupBases[e]);(i===0||n===0n)&&(i=Math.floor(Math.log(Number.MAX_SAFE_INTEGER)/Math.log(e)),i===0&&(i=1),n=BigInt(e)**BigInt(i));let s="",a=this._magnitude;for(;a>0n;){let o=a%n;a/=n;let c=this._bigIntToStringInBase(o,e);if(a>0n){let u=i-c.length;u>0&&u<r.zeros.length?s=r.zeros[u]+c+s:u>0?s="0".repeat(u)+c+s:s=c+s}else s=c+s}if(t>0)for(;s.length<t;)s="0"+s;return(this._sign===1?"-":"")+s}toNumber(){let e=this._getSignedValue();if(e>r.MAX_SAFE_INTEGER_BIGINT||e<r.MIN_SAFE_INTEGER_BIGINT)throw new Error("Number can only safely store up to 53 bits");return Number(e)}toBigInt(){return this._getSignedValue()}toJSON(){let e=this._getMinimalHex();return(this.isNeg()?"-":"")+e}toArrayLikeGeneric(e,t){let i=this._magnitude,n=t?0:e.length-1,s=t?1:-1;for(let a=0;a<e.length;++a){if(i===0n&&n>=0&&n<e.length)e[n]=0;else if(n>=0&&n<e.length)e[n]=Number(i&0xffn);else break;i>>=8n,n+=s}}toArray(e="be",t){this.strip();let i=this.byteLength(),n=t??Math.max(1,i);this.assert(i<=n,"byte array longer than desired length"),this.assert(n>0,"Requested array length <= 0");let s=new Array(n).fill(0);return this._magnitude===0n&&n>0?s:this._magnitude===0n&&n===0?[]:(this.toArrayLikeGeneric(s,e==="le"),s)}bitLength(){return this._magnitude===0n?0:this._magnitude.toString(2).length}static toBitArray(e){let t=e.bitLength();if(t===0)return[];let i=new Array(t),n=e._magnitude;for(let s=0;s<t;s++)i[s]=(n>>BigInt(s)&1n)!==0n?1:0;return i}toBitArray(){return r.toBitArray(this)}zeroBits(){if(this._magnitude===0n)return 0;let e=0,t=this._magnitude;for(;(t&1n)===0n&&t!==0n;)e++,t>>=1n;return e}byteLength(){return this._magnitude===0n?0:Math.ceil(this.bitLength()/8)}_getSignedValue(){return this._sign===1?-this._magnitude:this._magnitude}_setValueFromSigned(e){e<0n?(this._magnitude=-e,this._sign=1):(this._magnitude=e,this._sign=0),this._finishInitialization(),this.normSign()}toTwos(e){this.assert(e>=0);let t=BigInt(e),i=this._getSignedValue();this._sign===1&&this._magnitude!==0n&&(i=(1n<<t)+i);let n=(1n<<t)-1n;i&=n;let s=new r(0n);return s._initializeState(i,0),s}fromTwos(e){this.assert(e>=0);let t=BigInt(e),i=this._magnitude;if(e>0&&(i>>t-1n&1n)!==0n&&this._sign===0){let n=i-(1n<<t),s=new r(0n);return s._setValueFromSigned(n),s}return this.clone()}isNeg(){return this._sign===1&&this._magnitude!==0n}neg(){return this.clone().ineg()}ineg(){return this._magnitude!==0n&&(this._sign=this._sign===1?0:1),this}_iuop(e,t,i=!1){let n=t(this._magnitude,e._magnitude),s=this._nominalWordLength;return i&&(s=Math.max(this.length,e.length)),this._magnitude=n,this._finishInitialization(),i&&(this._nominalWordLength=Math.max(this._nominalWordLength,s)),this.strip()}iuor(e){return this._iuop(e,(t,i)=>t|i)}iuand(e){return this._iuop(e,(t,i)=>t&i)}iuxor(e){return this._iuop(e,(t,i)=>t^i,!0)}_iop(e,t,i=!1){return this.assert(this._sign===0&&e._sign===0),this._iuop(e,t,i)}ior(e){return this._iop(e,(t,i)=>t|i)}iand(e){return this._iop(e,(t,i)=>t&i)}ixor(e){return this._iop(e,(t,i)=>t^i,!0)}_uop_new(e,t){return this.length>=e.length?this.clone()[t](e):e.clone()[t](this)}or(e){return this.assert(this._sign===0&&e._sign===0),this._uop_new(e,"iuor")}uor(e){return this._uop_new(e,"iuor")}and(e){return this.assert(this._sign===0&&e._sign===0),this._uop_new(e,"iuand")}uand(e){return this._uop_new(e,"iuand")}xor(e){return this.assert(this._sign===0&&e._sign===0),this._uop_new(e,"iuxor")}uxor(e){return this._uop_new(e,"iuxor")}inotn(e){this.assert(typeof e=="number"&&e>=0);let i=(1n<<BigInt(e))-1n;this._magnitude=~this._magnitude&i;let n=e===0?1:Math.ceil(e/r.wordSize);return this._nominalWordLength=Math.max(1,n),this.strip(),this._nominalWordLength=Math.max(this._nominalWordLength,Math.max(1,n)),this}notn(e){return this.clone().inotn(e)}setn(e,t){this.assert(typeof e=="number"&&e>=0);let i=BigInt(e);t===1||t===!0?this._magnitude|=1n<<i:this._magnitude&=~(1n<<i);let n=Math.floor(e/r.wordSize)+1;return this._nominalWordLength=Math.max(this._nominalWordLength,n),this._finishInitialization(),this.strip()}iadd(e){return this._setValueFromSigned(this._getSignedValue()+e._getSignedValue()),this}add(e){let t=new r(0n);return t._setValueFromSigned(this._getSignedValue()+e._getSignedValue()),t}isub(e){return this._setValueFromSigned(this._getSignedValue()-e._getSignedValue()),this}sub(e){let t=new r(0n);return t._setValueFromSigned(this._getSignedValue()-e._getSignedValue()),t}mul(e){let t=new r(0n);return t._magnitude=this._magnitude*e._magnitude,t._sign=t._magnitude===0n?0:this._sign^e._sign,t._nominalWordLength=this.length+e.length,t.red=null,t.normSign()}imul(e){return this._magnitude*=e._magnitude,this._sign=this._magnitude===0n?0:this._sign^e._sign,this._nominalWordLength=this.length+e.length,this.red=null,this.normSign()}imuln(e){return this.assert(typeof e=="number","Assertion failed"),this.assert(Math.abs(e)<=r.MAX_IMULN_ARG,"Assertion failed"),this._setValueFromSigned(this._getSignedValue()*BigInt(e)),this}muln(e){return this.clone().imuln(e)}sqr(){let e=new r(0n);return e._magnitude=this._magnitude*this._magnitude,e._sign=0,e._nominalWordLength=this.length*2,e.red=null,e}isqr(){return this._magnitude*=this._magnitude,this._sign=0,this._nominalWordLength=this.length*2,this.red=null,this}pow(e){if(this.assert(e._sign===0,"Exponent for pow must be non-negative"),e.isZero())return new r(1n);let t=new r(1n),i=this.clone(),n=e.clone(),s=i.isNeg(),a=n.isOdd();for(s&&i.ineg();!n.isZero();)n.isOdd()&&t.imul(i),i.isqr(),n.iushrn(1);return s&&a&&t.ineg(),t}static normalizeNonNegativeBigInt(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}iushln(e){let t=r.normalizeNonNegativeBigInt(e,"Shift bits");return t===0n?this:(this._magnitude<<=t,this._finishInitialization(),this.strip())}ishln(e){return this.assert(this._sign===0,"ishln requires positive number"),this.iushln(e)}iushrn(e,t,i){let n=r.normalizeNonNegativeBigInt(e,"Shift bits");if(n===0n)return i?._initializeState(0n,0),this;if(i!=null){let s=(1n<<n)-1n,a=this._magnitude&s;i._initializeState(a,0)}return this._magnitude>>=n,this._finishInitialization(),this.strip()}ishrn(e,t,i){return this.assert(this._sign===0,"ishrn requires positive number"),this.iushrn(e,t,i)}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 this.assert(typeof e=="number"&&e>=0),(this._magnitude>>BigInt(e)&1n)!==0n}imaskn(e){this.assert(typeof e=="number"&&e>=0),this.assert(this._sign===0,"imaskn works only with positive numbers");let t=BigInt(e),i=t===0n?0n:(1n<<t)-1n;this._magnitude&=i;let n=e===0?1:Math.max(1,Math.ceil(e/r.wordSize));return this._nominalWordLength=n,this._finishInitialization(),this._nominalWordLength=Math.max(this._nominalWordLength,n),this.strip()}maskn(e){return this.clone().imaskn(e)}iaddn(e){return this.assert(typeof e=="number"),this.assert(Math.abs(e)<=r.MAX_IMULN_ARG,"num is too large"),this._setValueFromSigned(this._getSignedValue()+BigInt(e)),this}_iaddn(e){return this.iaddn(e)}isubn(e){return this.assert(typeof e=="number"),this.assert(Math.abs(e)<=r.MAX_IMULN_ARG,"Assertion failed"),this._setValueFromSigned(this._getSignedValue()-BigInt(e)),this}addn(e){return this.clone().iaddn(e)}subn(e){return this.clone().isubn(e)}iabs(){return this._sign=0,this}abs(){return this.clone().iabs()}divmod(e,t,i){if(this.assert(!e.isZero(),"Division by zero"),this.isZero()){let l=new r(0n);return{div:t!=="mod"?l:null,mod:t!=="div"?l:null}}let n=this._getSignedValue(),s=e._getSignedValue(),a=null,o=null;t!=="mod"&&(a=n/s),t!=="div"&&(o=n%s,i===!0&&o<0n&&(o+=s<0n?-s:s));let c=a!==null?new r(0n):null;c!==null&&a!==null&&c._setValueFromSigned(a);let u=o!==null?new r(0n):null;return u!==null&&o!==null&&u._setValueFromSigned(o),{div:c,mod:u}}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){this.assert(!e.isZero());let t=this._getSignedValue(),i=e._getSignedValue(),n=t/i,s=t%i;if(s===0n){let u=new r(0n);return u._setValueFromSigned(n),u}let a=s<0n?-s:s,o=i<0n?-i:i;a*2n>=o&&(t>0n&&i>0n||t<0n&&i<0n?n+=1n:n-=1n);let c=new r(0n);return c._setValueFromSigned(n),c}modrn(e){this.assert(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 i=this._magnitude%t;return e<0?Number(-i):Number(i)}idivn(e){return this.assert(e!==0),this.assert(Math.abs(e)<=r.MAX_IMULN_ARG,"num is too large"),this._setValueFromSigned(this._getSignedValue()/BigInt(e)),this}divn(e){return this.clone().idivn(e)}egcd(e){this.assert(e._sign===0,"p must not be negative"),this.assert(!e.isZero(),"p must not be zero");let t=this._getSignedValue(),i=e._magnitude,n=1n,s=0n,a=0n,o=1n;for(;i!==0n;){let d=t/i,f=i;i=t%i,t=f,f=s,s=n-d*s,n=f,f=o,o=a-d*o,a=f}let c=new r(0n);c._setValueFromSigned(n);let u=new r(0n);u._setValueFromSigned(a);let l=new r(0n);return l._initializeState(t<0n?-t:t,0),{a:c,b:u,gcd:l}}gcd(e){let t=this._magnitude,i=e._magnitude;if(t===0n){let s=new r(0n);return s._setValueFromSigned(i),s.iabs()}if(i===0n){let s=new r(0n);return s._setValueFromSigned(t),s.iabs()}for(;i!==0n;){let s=t%i;t=i,i=s}let n=new r(0n);return n._initializeState(t,0),n}invm(e){this.assert(!e.isZero()&&e._sign===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 this._magnitude%2n===0n}isOdd(){return this._magnitude%2n===1n}andln(e){return this.assert(e>=0),Number(this._magnitude&BigInt(e))}bincn(e){this.assert(typeof e=="number"&&e>=0);let t=1n<<BigInt(e);return this._setValueFromSigned(this._getSignedValue()+t),this}isZero(){return this._magnitude===0n}cmpn(e){this.assert(Math.abs(e)<=r.MAX_IMULN_ARG,"Number is too big");let t=this._getSignedValue(),i=BigInt(e);return t<i?-1:t>i?1:0}cmp(e){let t=this._getSignedValue(),i=e._getSignedValue();return t<i?-1:t>i?1:0}ucmp(e){return this._magnitude<e._magnitude?-1:this._magnitude>e._magnitude?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 this.assert(this.red==null,"Already a number in reduction context"),this.assert(this._sign===0,"toRed works only with positives"),e.convertTo(this).forceRed(e)}fromRed(){return this.assert(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)}forceRed(e){return this.red=e,this}redAdd(e){return this.assert(this.red,"redAdd works only with red numbers"),this.red.add(this,e)}redIAdd(e){return this.assert(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)}redSub(e){return this.assert(this.red,"redSub works only with red numbers"),this.red.sub(this,e)}redISub(e){return this.assert(this.red,"redISub works only with red numbers"),this.red.isub(this,e)}redShl(e){return this.assert(this.red,"redShl works only with red numbers"),this.red.shl(this,e)}redMul(e){return this.assert(this.red,"redMul works only with red numbers"),this.red.verify2(this,e),this.red.mul(this,e)}redIMul(e){return this.assert(this.red,"redIMul works only with red numbers"),this.red.verify2(this,e),this.red.imul(this,e)}redSqr(){return this.assert(this.red,"redSqr works only with red numbers"),this.red.verify1(this),this.red.sqr(this)}redISqr(){return this.assert(this.red,"redISqr works only with red numbers"),this.red.verify1(this),this.red.isqr(this)}redSqrt(){return this.assert(this.red,"redSqrt works only with red numbers"),this.red.verify1(this),this.red.sqrt(this)}redInvm(){return this.assert(this.red,"redInvm works only with red numbers"),this.red.verify1(this),this.red.invm(this)}redNeg(){return this.assert(this.red,"redNeg works only with red numbers"),this.red.verify1(this),this.red.neg(this)}redPow(e){return this.assert(this.red!=null&&e.red==null,"redPow(normalNum)"),this.red.verify1(this),this.red.pow(this,e)}static fromHex(e,t){let i="be";return(t==="little"||t==="le")&&(i="le"),new r(e,16,i)}toHex(e=0){if(this.isZero()&&e===0)return"";let t=this._getMinimalHex();t!=="0"&&t.length%2!==0&&(t="0"+t);let i=e*2;for(;t.length<i;)t="0"+t;return(this.isNeg()?"-":"")+t}static fromJSON(e){return new r(e,16)}static fromNumber(e){return new r(e)}static fromString(e,t){return new r(e,t)}static fromSm(e,t="big"){if(e.length===0)return new r(0n);let i=e.slice();t==="little"&&i.reverse();let n=0;i.length>0&&(i[0]&128)!==0&&(n=1,i[0]&=127);let s=0n;if(sQe){let o=K3.from(i).toString("hex");s=o.length===0?0n:BigInt("0x"+o)}else{let o="";for(let c of i)o+=c<16?"0"+c.toString(16):c.toString(16);s=o.length===0?0n:BigInt("0x"+o)}let a=new r(0n);return a._initializeState(s,n),a}toSm(e="big"){if(this._magnitude===0n)return this._sign===1?[128]:[];let t=this._getMinimalHex();t.length%2!==0&&(t="0"+t);let i=t.length/2,n=new Array(i);for(let a=0,o=0;a<t.length;a+=2){let c=Tg[t.charCodeAt(a)],u=Tg[t.charCodeAt(a+1)];n[o++]=(c&15)<<4|u&15}let s;return this._sign===1?(n[0]&128)!==0?s=[128,...n]:(s=n.slice(),s[0]|=128):(n[0]&128)!==0?s=[0,...n]:s=n.slice(),e==="little"?s.reverse():s}static fromBits(e,t=!1){let i=e>>>24,n=e&8388607,s=(e&8388608)!==0;if(t&&s)throw new Error("negative bit set");if(i===0&&n===0){if(s&&t)throw new Error("negative bit set for zero value");return new r(0n)}let a=new r(n);return i<=3?a.iushrn((3-i)*8):a.iushln((i-3)*8),s&&a.ineg(),a}toBits(){if(this.strip(),this.isZero()&&!this.isNeg())return 0;let e=this.isNeg(),t=this.abs(),i=t.toArray("be"),n=0;for(;n<i.length-1&&i[n]===0;)n++;i=i.slice(n);let s=i.length;s===0&&!t.isZero()&&(i=[0],s=1),t.isZero()&&(s=0,i=[]);let a;if(s===0)a=0;else if(s<=3){a=0;for(let c=0;c<s;c++)a=a<<8|i[c]}else a=i[0]<<16|i[1]<<8|i[2];(a&8388608)!==0&&s<=255&&(a>>>=8,s++);let o=s<<24|a;return e&&(o|=8388608),o>>>0}static fromScriptNum(e,t=!1,i){if(i!==void 0&&e.length>i)throw new Error("script number overflow");if(e.length===0)return new r(0n);if(t&&(e[e.length-1]&127)===0&&(e.length<=1||(e[e.length-2]&128)===0))throw new Error("non-minimally encoded script number");return r.fromSm(e,"little")}toScriptNum(){return this.toSm("little")}_invmp(e){this.assert(e._sign===0,"p must not be negative for _invmp"),this.assert(!e.isZero(),"p must not be zero for _invmp");let t=this.umod(e),i=e.subn(2);if(t.red!==null)return t.redPow(i);let n=new r(1n),s=t.clone(),a=i.clone();for(;!a.isZero();)a.isOdd()&&(n=n.mul(s).umod(e)),s=s.sqr().umod(e),a.iushrn(1);return n}mulTo(e,t){return t._magnitude=this._magnitude*e._magnitude,t._sign=t._magnitude===0n?0:this._sign^e._sign,t._nominalWordLength=this.length+e.length,t.red=null,t.normSign(),t}}});var Qg,lJ=O(()=>{It();Qg=class{name;p;k;n;tmp;constructor(e,t){this.name=e,this.p=new $(t,16),this.n=this.p.bitLength(),this.k=new $(BigInt(1)).iushln(this.n).isub(this.p),this.tmp=this._tmp()}_tmp(){let e=new $(BigInt(0)),t=Math.ceil(this.n/$.wordSize);return e.expand(Math.max(1,t)),e}ireduce(e){let t=e,i;do this.split(t,this.tmp),this.imulK(t),t.iadd(this.tmp),i=t.bitLength();while(i>this.n);let n=i<this.n?-1:t.ucmp(this.p);return n===0?t.words=[0]:n>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 Ng,dJ=O(()=>{lJ();Ng=class extends Qg{constructor(){super("k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}split(e,t){let n=e.words,s=e.length,a=Math.min(s,9),o=new Array(a+(s>9?1:0)).fill(0);for(let p=0;p<a;p++)o[p]=n[p];let c=a;if(s<=9){let p=new Array(c);for(let A=0;A<c;++A)p[A]=o[A];t.words=p,e.words=[0];return}let u=n[9];o[c++]=u&4194303;let l=new Array(c);for(let p=0;p<c;++p)l[p]=o[p];t.words=l;let d=new Array(Math.max(1,s-9)).fill(0),f=0;for(let p=10;p<s;p++){let A=n[p]|0;f<d.length&&(d[f++]=(A&4194303)<<4|u>>>22),u=A}u>>>=22,f<d.length?d[f++]=u:u!==0&&d.length>0;let h=new Array(f);for(let p=0;p<f;++p)h[p]=d[p];e.words=h}imulK(e){let t=e.words,i=e.length,n=i+2,s=new Array(n).fill(0);for(let o=0;o<i;o++)s[o]=t[o];let a=0;for(let o=0;o<n;o++){let c=s[o]|0;a+=c*977,s[o]=a&67108863,a=c*64+(a/67108864|0)}return e.words=s,e}}});var Sl,V3=O(()=>{It();dJ();Sl=class{prime;m;constructor(e){if(e==="k256"){let t=new Ng;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):($.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 i=e.clone();return i.iadd(t),i.isub(this.m),i.isNeg()&&i.iadd(this.m),i}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 i=e.sub(t);return i.cmpn(0)<0&&i.iadd(this.m),i.forceRed(this)}isub(e,t){this.verify2(e,t);let i=e.isub(t);return i.cmpn(0)<0&&i.iadd(this.m),i}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 p=this.m.add(new $(1)).iushrn(2);return this.pow(e,p)}let i=this.m.subn(1),n=0;for(;!i.isZero()&&i.andln(1)===0;)n++,i.iushrn(1);this.assert(!i.isZero());let s=new $(1).toRed(this),a=s.redNeg(),o=this.m.subn(1).iushrn(1),c=this.m.bitLength(),u=new $(2*c*c).toRed(this);for(;this.pow(u,o).cmp(a)!==0;)u.redIAdd(a);let l=this.pow(u,i),d=this.pow(e,i.addn(1).iushrn(1)),f=this.pow(e,i),h=n;for(;f.cmp(s)!==0;){let p=f,A=0;for(;p.cmp(s)!==0;A++)p=p.redSqr();this.assert(A<h);let g=this.pow(l,new $(1).iushln(h-A-1));d=d.redMul(g),l=g.redSqr(),f=f.redMul(l),h=A}return d}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 $(1).toRed(this);let i=new $(1).toRed(this),n=e.clone(),s=t.bitLength();for(let a=s-1;a>=0;a--)i=this.sqr(i),t.testn(a)&&(i=this.mul(i,n));return i}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 Rg,fJ=O(()=>{V3();It();Rg=class extends Sl{shift;r;r2;rinv;minv;constructor(e){super(e),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new $(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 t=this.imod(e.mul(this.rinv));return t.red=null,t}imul(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;let i=e.imul(t),n=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),s=i.isub(n).iushrn(this.shift),a=s;return s.cmp(this.m)>=0?a=s.isub(this.m):s.cmpn(0)<0&&(a=s.iadd(this.m)),a.forceRed(this)}mul(e,t){if(e.isZero()||t.isZero())return new $(0).forceRed(this);let i=e.mul(t),n=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),s=i.isub(n).iushrn(this.shift),a=s;return s.cmp(this.m)>=0?a=s.isub(this.m):s.cmpn(0)<0&&(a=s.iadd(this.m)),a.forceRed(this)}invm(e){return this.imod(e._invmp(this.m).mul(this.r2)).forceRed(this)}}});var _l,j3=O(()=>{Cs();_l=class{curve;type;precomputed;constructor(e){this.curve=new ir,this.type=e,this.precomputed=null}}});var oo,hJ=O(()=>{j3();It();vc();oo=class r extends _l{x;y;z;zOne;constructor(e,t,i){super("jacobian"),e===null&&t===null&&i===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new $(0)):($.isBN(e)||(e=new $(e,16)),this.x=e,$.isBN(t)||(t=new $(t,16)),this.y=t,$.isBN(i)||(i=new $(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 $(0).toRed(this.curve.red),this.zOne=!1)}toP(){if(this.isInfinity())return new Wr(null,null);let e=this.z.redInvm(),t=e.redSqr(),i=this.x.redMul(t),n=this.y.redMul(t).redMul(e);return new Wr(i,n)}neg(){return new r(this.x,this.y.redNeg(),this.z)}add(e){if(this.isInfinity())return e;if(e.isInfinity())return this;let t=e.z.redSqr(),i=this.z.redSqr(),n=this.x.redMul(t),s=e.x.redMul(i),a=this.y.redMul(t.redMul(e.z)),o=e.y.redMul(i.redMul(this.z)),c=n.redSub(s),u=a.redSub(o);if(c.cmpn(0)===0)return u.cmpn(0)!==0?new r(null,null,null):this.dbl();let l=c.redSqr(),d=l.redMul(c),f=n.redMul(l),h=u.redSqr().redIAdd(d).redISub(f).redISub(f),p=u.redMul(f.redISub(h)).redISub(a.redMul(d)),A=this.z.redMul(e.z).redMul(c);return new r(h,p,A)}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 t=this.z.redSqr(),i=this.x,n=e.x.redMul(t),s=this.y,a=e.y.redMul(t).redMul(this.z),o=i.redSub(n),c=s.redSub(a);if(o.cmpn(0)===0)return c.cmpn(0)!==0?new r(null,null,null):this.dbl();let u=o.redSqr(),l=u.redMul(o),d=i.redMul(u),f=c.redSqr().redIAdd(l).redISub(d).redISub(d),h=c.redMul(d.redISub(f)).redISub(s.redMul(l)),p=this.z.redMul(o);return new r(f,h,p)}dblp(e){if(e===0)return this;if(this.isInfinity())return this;if(typeof e>"u")return this.dbl();let t=this;for(let i=0;i<e;i++)t=t.dbl();return t}dbl(){if(this.isInfinity())return this;let e,t,i;if(this.zOne){let n=this.x.redSqr(),s=this.y.redSqr(),a=s.redSqr(),o=this.x.redAdd(s).redSqr().redISub(n).redISub(a);o=o.redIAdd(o);let c=n.redAdd(n).redIAdd(n),u=c.redSqr().redISub(o).redISub(o),l=a.redIAdd(a);l=l.redIAdd(l),l=l.redIAdd(l),e=u,t=c.redMul(o.redISub(u)).redISub(l),i=this.y.redAdd(this.y)}else{let n=this.x.redSqr(),s=this.y.redSqr(),a=s.redSqr(),o=this.x.redAdd(s).redSqr().redISub(n).redISub(a);o=o.redIAdd(o);let c=n.redAdd(n).redIAdd(n),u=c.redSqr(),l=a.redIAdd(a);l=l.redIAdd(l),l=l.redIAdd(l),e=u.redISub(o).redISub(o),t=c.redMul(o.redISub(e)).redISub(l),i=this.y.redMul(this.z),i=i.redIAdd(i)}return new r(e,t,i)}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 t=this.z.redSqr(),i=e.z.redSqr();if(this.x.redMul(i).redISub(e.x.redMul(t)).cmpn(0)!==0)return!1;let n=t.redMul(this.z),s=i.redMul(e.z);return this.y.redMul(s).redISub(e.y.redMul(n)).cmpn(0)===0}eqXToP(e){let t=this.z.redSqr(),i=e.toRed(this.curve?.red).redMul(t);if(this.x.cmp(i)===0)return!0;let n=e.clone();if(this.curve===null||this.curve.redN==null)throw new Error("Curve or redN is not initialized.");let s=this.curve.redN.redMul(t);for(;n.cmp(this.curve.p)<0;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(i.redIAdd(s),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 W3(r){if(typeof r!="string")throw new TypeError("Invalid hex string");if(r.length!==0&&!aQe.test(r))throw new Error("Invalid hex string")}var aQe,G3=O(()=>{aQe=/^[0-9a-fA-F]*$/});function ma(r,e){return r>>>e|r<<32-e}function yr(r,e){return r+e>>>0}function oQe(r,e,t,i,n){return r+e+t+i+n>>>0}function cQe(r,e,t){return r&e^~r&t}function uQe(r,e,t){return r&e^r&t^e&t}function lQe(r){return ma(r,2)^ma(r,13)^ma(r,22)}function dQe(r){return ma(r,6)^ma(r,11)^ma(r,25)}function fQe(r){return ma(r,7)^ma(r,18)^r>>>3}function hQe(r){return ma(r,17)^ma(r,19)^r>>>10}function pQe(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"}function pJ(r){if(!Number.isSafeInteger(r)||r<0)throw new Error(`positive integer expected, got ${r}`)}function fx(r,...e){if(!pQe(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 AQe(r){if(typeof r!="function"||typeof r.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");pJ(r.outputLen),pJ(r.blockLen)}function cx(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 gQe(r,e){fx(r);let t=e.outputLen;if(r.length<t)throw new Error(`digestInto() expects output buffer of length at least ${t}`)}function Yf(...r){for(let e=0;e<r.length;e++)r[e].fill(0)}function J3(r){return new DataView(r.buffer,r.byteOffset,r.byteLength)}function Y3(r){return typeof r=="string"&&(r=mQe(r)),fx(r),r}function mQe(r){if(typeof r!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(r))}function IJ(r){let e=i=>r().update(Y3(i)).digest(),t=r();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>r(),e}function IQe(r,e=!1){return e?{h:Number(r&sx),l:Number(r>>AJ&sx)}:{h:Number(r>>AJ&sx)|0,l:Number(r&sx)|0}}function yQe(r,e=!1){let t=r.length,i=new Uint32Array(t),n=new Uint32Array(t);for(let s=0;s<t;s++){let{h:a,l:o}=IQe(r[s],e);i[s]=a,n[s]=o}return[i,n]}function co(r,e,t,i){let n=(e>>>0)+(i>>>0);return{h:r+t+(n/2**32|0)|0,l:n|0}}function CQe(r,e,t,i){if(typeof r.setBigUint64=="function")return r.setBigUint64(e,t,i);let n=BigInt(32),s=BigInt(4294967295),a=Number(t>>n&s),o=Number(t&s),c=i?4:0,u=i?0:4;r.setUint32(e+c,a,i),r.setUint32(e+u,o,i)}var ux,sx,AJ,gJ,mJ,zf,$f,ax,ox,wQe,bQe,vQe,xQe,BQe,EQe,lx,xc,kQe,Bc,z3,_We,Li,yJ,SQe,_Qe,Ec,Cc,$3,TWe,dx,TQe,QWe,Ft=O(()=>{G3();ux=class{};sx=BigInt(2**32-1),AJ=BigInt(32);gJ=(r,e,t)=>r>>>t,mJ=(r,e,t)=>r<<32-t|e>>>t,zf=(r,e,t)=>r>>>t|e<<32-t,$f=(r,e,t)=>r<<32-t|e>>>t,ax=(r,e,t)=>r<<64-t|e>>>t-32,ox=(r,e,t)=>r>>>t-32|e<<64-t;wQe=(r,e,t)=>(r>>>0)+(e>>>0)+(t>>>0),bQe=(r,e,t,i)=>e+t+i+(r/2**32|0)|0,vQe=(r,e,t,i)=>(r>>>0)+(e>>>0)+(t>>>0)+(i>>>0),xQe=(r,e,t,i,n)=>e+t+i+n+(r/2**32|0)|0,BQe=(r,e,t,i,n)=>(r>>>0)+(e>>>0)+(t>>>0)+(i>>>0)+(n>>>0),EQe=(r,e,t,i,n,s)=>e+t+i+n+s+(r/2**32|0)|0,lx=class extends ux{blockLen;outputLen;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(e,t,i,n){super(),this.blockLen=e,this.outputLen=t,this.padOffset=i,this.isLE=n,this.buffer=new Uint8Array(e),this.view=J3(this.buffer)}update(e){cx(this),e=Y3(e),fx(e);let{view:t,buffer:i,blockLen:n}=this,s=e.length;for(let a=0;a<s;){let o=Math.min(n-this.pos,s-a);if(o===n){let c=J3(e);for(;n<=s-a;a+=n)this.process(c,a);continue}i.set(e.subarray(a,a+o),this.pos),this.pos+=o,a+=o,this.pos===n&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){cx(this),gQe(e,this),this.finished=!0;let{buffer:t,view:i,blockLen:n,isLE:s}=this,{pos:a}=this;t[a++]=128,Yf(this.buffer.subarray(a)),this.padOffset>n-a&&(this.process(i,0),a=0);for(let d=a;d<n;d++)t[d]=0;CQe(i,n-8,BigInt(this.length*8),s),this.process(i,0);let o=J3(e),c=this.outputLen;if(c%4!==0)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,l=this.get();if(u>l.length)throw new Error("_sha2: outputLen bigger than state");for(let d=0;d<u;d++)o.setUint32(4*d,l[d],s)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let i=e.slice(0,t);return this.destroy(),i}_cloneInto(e){e||=new this.constructor,e.set(...this.get());let{blockLen:t,buffer:i,length:n,finished:s,destroyed:a,pos:o}=this;return e.destroyed=a,e.finished=s,e.length=n,e.pos=o,n%t!==0&&e.buffer.set(i),e}clone(){return this._cloneInto()}};xc=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),kQe=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]),Bc=new Uint32Array(64),z3=class extends lx{A=xc[0]|0;B=xc[1]|0;C=xc[2]|0;D=xc[3]|0;E=xc[4]|0;F=xc[5]|0;G=xc[6]|0;H=xc[7]|0;constructor(e=32){super(64,e,8,!1)}get(){let{A:e,B:t,C:i,D:n,E:s,F:a,G:o,H:c}=this;return[e,t,i,n,s,a,o,c]}set(e,t,i,n,s,a,o,c){this.A=e|0,this.B=t|0,this.C=i|0,this.D=n|0,this.E=s|0,this.F=a|0,this.G=o|0,this.H=c|0}process(e,t){for(let d=0;d<16;d++,t+=4)Bc[d]=e.getUint32(t);for(let d=16;d<64;d++){let f=Bc[d-15],h=Bc[d-2],p=fQe(f),A=hQe(h);Bc[d]=yr(yr(p,Bc[d-7]),yr(A,Bc[d-16]))}let{A:i,B:n,C:s,D:a,E:o,F:c,G:u,H:l}=this;for(let d=0;d<64;d++){let f=oQe(l,dQe(o),cQe(o,c,u),kQe[d],Bc[d]),h=yr(lQe(i),uQe(i,n,s));l=u,u=c,c=o,o=yr(a,f),a=s,s=n,n=i,i=yr(f,h)}this.A=yr(this.A,i),this.B=yr(this.B,n),this.C=yr(this.C,s),this.D=yr(this.D,a),this.E=yr(this.E,o),this.F=yr(this.F,c),this.G=yr(this.G,u),this.H=yr(this.H,l)}roundClean(){Yf(Bc)}destroy(){Yf(this.buffer),this.set(0,0,0,0,0,0,0,0)}},_We=IJ(()=>new z3),Li=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),yJ=yQe(["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(r=>BigInt(r))),SQe=yJ[0],_Qe=yJ[1],Ec=new Uint32Array(80),Cc=new Uint32Array(80),$3=class extends lx{Ah=Li[0]|0;Al=Li[1]|0;Bh=Li[2]|0;Bl=Li[3]|0;Ch=Li[4]|0;Cl=Li[5]|0;Dh=Li[6]|0;Dl=Li[7]|0;Eh=Li[8]|0;El=Li[9]|0;Fh=Li[10]|0;Fl=Li[11]|0;Gh=Li[12]|0;Gl=Li[13]|0;Hh=Li[14]|0;Hl=Li[15]|0;constructor(e=64){super(128,e,16,!1)}get(){let{Ah:e,Al:t,Bh:i,Bl:n,Ch:s,Cl:a,Dh:o,Dl:c,Eh:u,El:l,Fh:d,Fl:f,Gh:h,Gl:p,Hh:A,Hl:g}=this;return[e,t,i,n,s,a,o,c,u,l,d,f,h,p,A,g]}set(e,t,i,n,s,a,o,c,u,l,d,f,h,p,A,g){this.Ah=e|0,this.Al=t|0,this.Bh=i|0,this.Bl=n|0,this.Ch=s|0,this.Cl=a|0,this.Dh=o|0,this.Dl=c|0,this.Eh=u|0,this.El=l|0,this.Fh=d|0,this.Fl=f|0,this.Gh=h|0,this.Gl=p|0,this.Hh=A|0,this.Hl=g|0}process(e,t){for(let y=0;y<16;y++,t+=4)Ec[y]=e.getUint32(t),Cc[y]=e.getUint32(t+=4);for(let y=16;y<80;y++){let v=Ec[y-15]|0,B=Cc[y-15]|0,E=zf(v,B,1)^zf(v,B,8)^gJ(v,B,7),k=$f(v,B,1)^$f(v,B,8)^mJ(v,B,7),T=Ec[y-2]|0,D=Cc[y-2]|0,j=zf(T,D,19)^ax(T,D,61)^gJ(T,D,6),H=$f(T,D,19)^ox(T,D,61)^mJ(T,D,6),W=vQe(k,H,Cc[y-7],Cc[y-16]),M=xQe(W,E,j,Ec[y-7],Ec[y-16]);Ec[y]=M|0,Cc[y]=W|0}let{Ah:i,Al:n,Bh:s,Bl:a,Ch:o,Cl:c,Dh:u,Dl:l,Eh:d,El:f,Fh:h,Fl:p,Gh:A,Gl:g,Hh:m,Hl:I}=this;for(let y=0;y<80;y++){let v=zf(d,f,14)^zf(d,f,18)^ax(d,f,41),B=$f(d,f,14)^$f(d,f,18)^ox(d,f,41),E=d&h^~d&A,k=f&p^~f&g,T=BQe(I,B,k,_Qe[y],Cc[y]),D=EQe(T,m,v,E,SQe[y],Ec[y]),j=T|0,H=zf(i,n,28)^ax(i,n,34)^ax(i,n,39),W=$f(i,n,28)^ox(i,n,34)^ox(i,n,39),M=i&s^i&o^s&o,Y=n&a^n&c^a&c;m=A|0,I=g|0,A=h|0,g=p|0,h=d|0,p=f|0,{h:d,l:f}=co(u|0,l|0,D|0,j|0),u=o|0,l=c|0,o=s|0,c=a|0,s=i|0,a=n|0;let F=wQe(W,Y,j);i=bQe(F,H,M,D),n=F|0}({h:i,l:n}=co(i,n,this.Ah,this.Al)),{h:s,l:a}=co(s,a,this.Bh,this.Bl),{h:o,l:c}=co(o,c,this.Ch,this.Cl),{h:u,l}=co(u,l,this.Dh,this.Dl),{h:d,l:f}=co(d,f,this.Eh,this.El),{h,l:p}=co(h,p,this.Fh,this.Fl),{h:A,l:g}=co(A,g,this.Gh,this.Gl),{h:m,l:I}=co(m,I,this.Hh,this.Hl),this.set(i,n,s,a,o,c,u,l,d,f,h,p,A,g,m,I)}roundClean(){Yf(Ec,Cc)}destroy(){Yf(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},TWe=IJ(()=>new $3),dx=class extends ux{oHash;iHash;blockLen;outputLen;finished=!1;destroyed=!1;constructor(e,t){super(),AQe(e);let i=Y3(t);if(this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let n=this.blockLen,s=new Uint8Array(n);s.set(i.length>n?e.create().update(i).digest():i);for(let a=0;a<s.length;a++)s[a]^=54;this.iHash.update(s),this.oHash=e.create();for(let a=0;a<s.length;a++)s[a]^=106;this.oHash.update(s),Yf(s)}update(e){return cx(this),this.iHash.update(e),this}digestInto(e){cx(this),fx(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||=Object.create(Object.getPrototypeOf(this),{});let{oHash:t,iHash:i,finished:n,destroyed:s,blockLen:a,outputLen:o}=this;return e=e,e.finished=n,e.destroyed=s,e.blockLen=a,e.outputLen=o,e.oHash=t._cloneInto(e.oHash??void 0),e.iHash=i._cloneInto(e.iHash??void 0),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},TQe=(r,e,t)=>new dx(r,e).update(t).digest();TQe.create=(r,e)=>new dx(r,e);QWe=(()=>{let r=new ArrayBuffer(4),e=new Uint32Array(r),t=new Uint8Array(r);return e[0]=16909060,t[0]===4})()});var wJ=O(()=>{It();ce()});var X3=O(()=>{It();ce()});function NQe(r){if(typeof r!="string")throw new TypeError("msg must be a string");let e=r.trim().replace(/[\r\n\t\f\v ]+/g,"");e=e.replace(/-/g,"+").replace(/_/g,"/");let t=e.indexOf("=");if(t!==-1){let a=e.slice(t);if(!/^={1,2}$/.test(a))throw new Error("Invalid base64 padding");if(e.slice(0,t).includes("="))throw new Error("Invalid base64 padding");e=e.slice(0,t)}let i=[],n=0,s=0;for(let a=0;a<e.length;a++){let o=e.charCodeAt(a),c=-1;if(o>=65&&o<=90)c=o-65;else if(o>=97&&o<=122)c=o-97+26;else if(o>=48&&o<=57)c=o-48+52;else if(o===43)c=62;else if(o===47)c=63;else throw new Error(`Invalid base64 character at index ${a}`);for(n=n<<6|c,s+=6;s>=8;)s-=8,i.push(n>>s&255),n&=(1<<s)-1}return i}function RQe(r){return Array.from(new TextEncoder().encode(r))}var hx,vJ,bJ,xJ,ht,ke,Dg,QQe,KWe,VWe,ce=O(()=>{It();Ft();G3();wJ();X3();hx=typeof globalThis<"u"?globalThis.Buffer:void 0,vJ=hx!=null&&typeof hx.from=="function",bJ="0123456789abcdef",xJ=new Array(256);for(let r=0;r<256;r++)xJ[r]=bJ[r>>4&15]+bJ[r&15];ht=r=>{if(vJ)return hx.from(r).toString("hex");if(r.length===0)return"";let e=new Array(r.length);for(let t=0;t<r.length;t++)e[t]=xJ[r[t]&255];return e.join("")},ke=(r,e)=>{if(Array.isArray(r))return r.slice();if(r===void 0)return[];if(typeof r!="string")return Array.from(r,t=>t|0);switch(e){case"hex":return QQe(r);case"base64":return NQe(r);default:return RQe(r)}},Dg=new Int8Array(256).fill(-1);for(let r=0;r<10;r++)Dg[48+r]=r;for(let r=0;r<6;r++)Dg[65+r]=10+r,Dg[97+r]=10+r;QQe=r=>{W3(r);let e=r.length%2===0?r:"0"+r;if(vJ)return Array.from(hx.from(e,"hex"));let t=new Array(e.length/2),i=0;for(let n=0;n<e.length;n+=2){let s=Dg[e.charCodeAt(n)],a=Dg[e.charCodeAt(n+1)];t[i++]=s<<4|a}return t};KWe=new $(2).pow(new $(63)),VWe=new $(2).pow(new $(64))});function BJ(r,e,t){let i=-r,n=(e.X^t.X)&i,s=(e.Y^t.Y)&i,a=(e.Z^t.Z)&i;e.X^=n,t.X^=n,e.Y^=s,t.Y^=s,e.Z^=a,t.Z^=a}function nN(r){let e=r>>256n;return r=(r&EJ)+(e<<32n)+e*977n,e=r>>256n,r=(r&EJ)+(e<<32n)+e*977n,r>=ya&&(r-=ya),r}var Gt,wr,tN,DQe,OQe,FQe,ya,SJ,EJ,Ql,Ia,ue,CJ,Og,PQe,UQe,HQe,MQe,qQe,iN,rN,kJ,Fg,Pg,LQe,_J,Wr,vc=O(()=>{j3();hJ();It();ce();Gt=0n,wr=1n,tN=2n,DQe=3n,OQe=4n,FQe=8n,ya=0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn,SJ=0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141n,EJ=(1n<<256n)-1n;Ql=r=>nN((r%ya+ya)%ya),Ia=(r,e)=>r>=e?r-e:ya-(e-r),ue=(r,e)=>nN(r*e),CJ=(r,e)=>nN(r+e),Og=r=>{let e=wr,t=Gt,i=Ql(r),n=ya;for(;i>wr;){let s=n/i;[e,t]=[t-e*s,e],[i,n]=[n-i*s,i]}return Ql(e)},PQe=r=>ue(r,r),UQe=(r,e)=>{let t=1n;for(r=Ql(r);e>0n;)(e&1n)!==0n&&(t=ue(t,r)),r=ue(r,r),e>>=1n;return t},HQe=ya+1n>>2n,MQe=r=>{let e=UQe(r,HQe);return ue(e,e)!==Ql(r)?null:e},qQe=r=>$.isBN(r)?BigInt("0x"+r.toString(16)):typeof r=="string"?BigInt("0x"+r):Array.isArray(r)?BigInt("0x"+ht(r)):BigInt(r),iN=BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),rN=BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"),kJ=new Map,Fg=r=>{let{X:e,Y:t,Z:i}=r;if(t===Gt)return{X:Gt,Y:wr,Z:Gt};let n=ue(t,t),s=ue(OQe,ue(e,n)),a=ue(DQe,ue(e,e)),o=Ia(ue(a,a),ue(tN,s)),c=Ia(ue(a,Ia(s,o)),ue(FQe,ue(n,n))),u=ue(tN,ue(t,i));return{X:o,Y:c,Z:u}},Pg=(r,e)=>{if(r.Z===Gt)return e;if(e.Z===Gt)return r;let t=ue(r.Z,r.Z),i=ue(e.Z,e.Z),n=ue(r.X,i),s=ue(e.X,t),a=ue(r.Y,ue(i,e.Z)),o=ue(e.Y,ue(t,r.Z)),c=Ia(s,n),u=Ia(o,a);if(c===Gt)return u===Gt?Fg(r):{X:Gt,Y:wr,Z:Gt};let l=ue(c,c),d=ue(c,l),f=ue(n,l),h=Ia(Ia(ue(u,u),d),ue(tN,f)),p=Ia(ue(u,Ia(f,h)),ue(a,d)),A=ue(c,ue(r.Z,e.Z));return{X:h,Y:p,Z:A}},LQe=r=>r.Z===Gt?r:{X:r.X,Y:ya-r.Y,Z:r.Z},_J=(r,e,t=5)=>{let i=`${t}:${e.x.toString(16)}:${e.y.toString(16)}`,n=kJ.get(i),s;if(n===void 0){let d=1<<t-1;n=new Array(d),s={X:e.x,Y:e.y,Z:wr},n[0]=s;let f=Fg(s);for(let h=1;h<d;h++)n[h]=Pg(n[h-1],f);kJ.set(i,n)}else s=n[0];let a=[],o=1n<<BigInt(t),c=o>>1n,u=r;for(;u>0n;)if((u&wr)===Gt)a.push(0),u>>=wr;else{let d=u&o-1n;d>c&&(d-=o),a.push(Number(d)),u-=d,u>>=wr}let l={X:Gt,Y:wr,Z:Gt};for(let d=a.length-1;d>=0;d--){l=Fg(l);let f=a[d];if(f!==0){let h=Math.abs(f)>>1,p=f>0?n[h]:LQe(n[h]);l=Pg(l,p)}}return l},Wr=class r extends _l{x;y;inf;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[e.length-1]%2!==0)throw new Error("Point string value is wrong length")}else if(e[0]===7&&e[e.length-1]%2!==1)throw new Error("Point string value is wrong length");let i=new r(e.slice(1,33),e.slice(33,65));return r._assertOnCurve(i)}else if((e[0]===2||e[0]===3)&&e.length-1===32)return r._assertOnCurve(r.fromX(e.slice(1,33),e[0]===3));throw new Error("Unknown point format")}static fromString(e){let t=ke(e,"hex");return r._assertOnCurve(r.fromDER(t))}static fromX(e,t){let i=qQe(e);i=Ql(i);let n=CJ(ue(PQe(i),i),7n),s=MQe(n);if(s===null)throw new Error("Invalid point");let a=s;(a&wr)!==(t?wr:Gt)&&(a=Ia(ya,a));let o=new $(i.toString(16),16),c=new $(a.toString(16),16);return r._assertOnCurve(new r(o,c))}static fromJSON(e,t){typeof e=="string"&&(e=JSON.parse(e));let i=new r(e[0],e[1],t);if(i=r._assertOnCurve(i),typeof e[2]!="object"||e[2]===null)return i;let n=e[2],s=a=>{let o=new r(a[0],a[1],t);return r._assertOnCurve(o)};return i.precomputed={beta:null,doubles:typeof n.doubles=="object"&&n.doubles!==null?{step:n.doubles.step,points:[i].concat(n.doubles.points.map(s))}:void 0,naf:typeof n.naf=="object"&&n.naf!==null?{wnd:n.naf.wnd,points:[i].concat(n.naf.points.map(s))}:void 0},i}constructor(e,t,i=!0){super("affine"),this.precomputed=null,e===null&&t===null?(this.x=null,this.y=null,this.inf=!0):($.isBN(e)||(e=new $(e,16)),this.x=e,$.isBN(t)||(t=new $(t,16)),this.y=t,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)}validate(){if(this.inf||this.x==null||this.y==null)return!1;try{let e=BigInt("0x"+this.x.fromRed().toString(16)),t=BigInt("0x"+this.y.fromRed().toString(16)),i=ue(t,t),n=CJ(ue(ue(e,e),e),7n);return i===n}catch{return!1}}encode(e=!0,t){if(this.inf)return t==="hex"?"00":[0];let i=this.curve.p.byteLength(),n=this.getX().toArray("be",i),s;return e?s=[this.getY().isEven()?2:3].concat(n):s=[4].concat(n,this.getY().toArray("be",i)),t!=="hex"?s:ht(s)}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?{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)}:void 0,naf:this.precomputed.naf!=null?{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}:void 0}: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 r(null,null);if(this.x?.cmp(e.x??new $(0))===0)return new r(null,null);let t={X:BigInt("0x"+this.x.fromRed().toString(16)),Y:BigInt("0x"+this.y.fromRed().toString(16)),Z:wr},i={X:BigInt("0x"+e.x.fromRed().toString(16)),Y:BigInt("0x"+e.y.fromRed().toString(16)),Z:wr},n=Pg(t,i);if(n.Z===Gt)return new r(null,null);let s=Og(n.Z),a=ue(s,s),o=ue(n.X,a),c=ue(n.Y,ue(a,s));return new r(o.toString(16),c.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)),t=BigInt("0x"+this.y.fromRed().toString(16));if(t===Gt)return new r(null,null);let i=Fg({X:e,Y:t,Z:wr}),n=Og(i.Z),s=ue(n,n),a=ue(i.X,s),o=ue(i.Y,ue(s,n));return new r(a.toString(16),o.toString(16))}getX(){return(this.x??new $(0)).fromRed()}getY(){return(this.y??new $(0)).fromRed()}mul(e){if($.isBN(e)||(e=new $(e,16)),e=e,this.inf)return this;let t=e.isNeg(),i=t?e.neg():e,n=BigInt("0x"+i.toString(16));if(n=Ql(n),n===Gt)return new r(null,null);if(n===Gt)return new r(null,null);if(this.x===null||this.y===null)throw new Error("Point coordinates cannot be null");let s,a;this===this.curve.g?(s=iN,a=rN):(s=BigInt("0x"+this.x.fromRed().toString(16)),a=BigInt("0x"+this.y.fromRed().toString(16)));let o=_J(n,{x:s,y:a});if(o.Z===Gt)return new r(null,null);let c=Og(o.Z),u=ue(c,c),l=ue(o.X,u),d=ue(o.Y,ue(u,c)),f=new $(l.toString(16),16),h=new $(d.toString(16),16),p=new r(f,h);return t?p.neg():p}mulCT(e){if($.isBN(e)||(e=new $(e,16)),e=e,this.inf)return new r(null,null);let t=e.isNeg(),i=t?e.neg():e,n=BigInt("0x"+i.toString(16));if(n=Ql(n),n===0n)return new r(null,null);let s=this===this.curve.g?iN:BigInt("0x"+this.getX().toString(16)),a=this===this.curve.g?rN:BigInt("0x"+this.getY().toString(16)),o={X:0n,Y:1n,Z:0n},c={X:s,Y:a,Z:1n},u=n.toString(2);for(let A=0;A<u.length;A++){let g=u[A]==="1"?1n:0n;BJ(g,o,c),c=Pg(o,c),o=Fg(o),BJ(g,o,c)}if(o.Z===0n)return new r(null,null);let l=Og(o.Z),d=ue(l,l),f=ue(o.X,d),h=ue(o.Y,ue(d,l)),p=new r(f.toString(16),h.toString(16));return t?p.neg():p}mulAdd(e,t,i){let n=[this,t],s=[e,i];return this._endoWnafMulAdd(n,s)}jmulAdd(e,t,i){let n=[this,t],s=[e,i];return this._endoWnafMulAdd(n,s,!0)}eq(e){return this===e||this.inf===e.inf&&(this.inf||(this.x??new $(0)).cmp(e.x??new $(0))===0&&(this.y??new $(0)).cmp(e.y??new $(0))===0)}neg(e){if(this.inf)return this;let t=new r(this.x,(this.y??new $(0)).redNeg());if(e===!0&&this.precomputed!=null){let i=this.precomputed,n=s=>s.neg();t.precomputed={naf:i.naf!=null?{wnd:i.naf.wnd,points:i.naf.points.map(n)}:void 0,doubles:i.doubles!=null?{step:i.doubles.step,points:i.doubles.points.map(s=>s.neg())}:void 0,beta:void 0}}return t}dblp(e){let t=this;for(let i=0;i<e;i++)t=t.dbl();return t}toJ(){return this.inf?new oo(null,null,null):new oo(this.x,this.y,this.curve.one)}_getBeta(){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 t=new r((this.x??new $(0)).redMul(this.curve.endo.beta),this.y);if(e!=null){let i=this.curve,n=s=>{if(s.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 r(s.x.redMul(i.endo.beta),s.y)};e.beta=t,t.precomputed={beta:null,naf:e.naf!=null?{wnd:e.naf.wnd,points:e.naf.points.map(n)}:void 0,doubles:e.doubles!=null?{step:e.doubles.step,points:e.doubles.points.map(n)}:void 0}}return t}_fixedNafMul(e){if(typeof this.precomputed!="object"||this.precomputed===null)throw new Error("_fixedNafMul requires precomputed values for the point");let t=this._getDoubles(),i=this.curve.getNAF(e,1,this.curve._bitLength),n=(1<<t.step+1)-(t.step%2===0?2:1);n/=3;let s=[];for(let c=0;c<i.length;c+=t.step){let u=0;for(let l=c+t.step-1;l>=c;l--)u=(u<<1)+i[l];s.push(u)}let a=new oo(null,null,null),o=new oo(null,null,null);for(let c=n;c>0;c--){for(let u=0;u<s.length;u++){let l=s[u];l===c?o=o.mixedAdd(t.points[u]):l===-c&&(o=o.mixedAdd(t.points[u].neg()))}a=a.add(o)}return a.toP()}_wnafMulAdd(e,t,i,n,s){let a=this.curve._wnafT1.map(f=>f.toNumber()),o=this.curve._wnafT2.map(()=>[]),c=this.curve._wnafT3.map(()=>[]),u=0;for(let f=0;f<n;f++){let p=t[f]._getNAFPoints(e);a[f]=p.wnd,o[f]=p.points}for(let f=n-1;f>=1;f-=2){let h=f-1,p=f;if(a[h]!==1||a[p]!==1){c[h]=this.curve.getNAF(i[h],a[h],this.curve._bitLength),c[p]=this.curve.getNAF(i[p],a[p],this.curve._bitLength),u=Math.max(c[h].length,u),u=Math.max(c[p].length,u);continue}let A=[t[h],null,null,t[p]];(t[h].y??new $(0)).cmp(t[p].y??new $(0))===0?(A[1]=t[h].add(t[p]),A[2]=t[h].toJ().mixedAdd(t[p].neg())):(t[h].y??new $(0)).cmp((t[p].y??new $(0)).redNeg())===0?(A[1]=t[h].toJ().mixedAdd(t[p]),A[2]=t[h].add(t[p].neg())):(A[1]=t[h].toJ().mixedAdd(t[p]),A[2]=t[h].toJ().mixedAdd(t[p].neg()));let g=[-3,-1,-5,-7,0,7,5,1,3],m=this.curve.getJSF(i[h],i[p]);u=Math.max(m[0].length,u),c[h]=new Array(u),c[p]=new Array(u);for(let I=0;I<u;I++){let y=m[0][I]|0,v=m[1][I]|0;c[h][I]=g[(y+1)*3+(v+1)],c[p][I]=0,o[h]=A}}let l=new oo(null,null,null),d=this.curve._wnafT4;for(let f=u;f>=0;f--){let h=0;for(;f>=0;){let g=!0;for(let m=0;m<n;m++)d[m]=new $(typeof c[m][f]=="number"?c[m][f]:0),d[m].isZero()||(g=!1);if(!g)break;h++,f--}if(f>=0&&h++,l=l.dblp(h),f<0)break;let p=new $(1),A=new $(2);for(let g=0;g<n;g++){let m=d[g],I;m.cmpn(0)!==0&&(m.isNeg()?I=o[g][m.neg().sub(p).div(A).toNumber()].neg():I=o[g][m.sub(p).div(A).toNumber()],I.type==="affine"?l=l.mixedAdd(I):l=l.add(I))}}for(let f=0;f<n;f++)o[f]=[];return s===!0?l:l.toP()}_endoWnafMulAdd(e,t,i){let n=new Array(e.length*2),s=new Array(e.length*2),a;for(a=0;a<e.length;a++){let c=this.curve._endoSplit(t[a]),u=e[a],l=u._getBeta()??new r(null,null);c.k1.negative!==0&&(c.k1.ineg(),u=u.neg(!0)),c.k2.negative!==0&&(c.k2.ineg(),l=l.neg(!0)),n[a*2]=u,n[a*2+1]=l,s[a*2]=c.k1,s[a*2+1]=c.k2}let o=this._wnafMulAdd(1,n,s,a*2,i);for(let c=0;c<a*2;c++)n[c]=null,s[c]=null;return o}_hasDoubles(e){if(this.precomputed==null)return!1;let t=this.precomputed.doubles;return typeof t!="object"?!1:t.points.length>=Math.ceil((e.bitLength()+1)/t.step)}_getDoubles(e,t){if(typeof this.precomputed=="object"&&this.precomputed!==null&&typeof this.precomputed.doubles=="object"&&this.precomputed.doubles!==null)return this.precomputed.doubles;let i=[this],n=this;for(let s=0;s<(t??0);s+=e??1){for(let a=0;a<(e??1);a++)n=n.dbl();i.push(n)}return{step:e??1,points:i}}_getNAFPoints(e){if(typeof this.precomputed=="object"&&this.precomputed!==null&&typeof this.precomputed.naf=="object"&&this.precomputed.naf!==null)return this.precomputed.naf;let t=[this],i=(1<<e)-1,n=i===1?null:this.dbl();for(let s=1;s<i;s++)n!==null&&(t[s]=t[s-1].add(n));return{wnd:e,points:t}}}});var sN,ir,Cs=O(()=>{It();V3();fJ();vc();ce();ir=class r{p;red;redN;zero;one;two;g;n;a;b;tinv;zeroA;threeA;endo;_endoWnafT1;_endoWnafT2;_wnafT1;_wnafT2;_wnafT3;_wnafT4;_bitLength;static assert(e,t="Elliptic curve assertion failed"){if(!e)throw new Error(t)}getNAF(e,t,i){let n=new Array(Math.max(e.bitLength(),i)+1);n.fill(0);let s=1<<t+1,a=e.clone();for(let o=0;o<n.length;o++){let c,u=a.andln(s-1);a.isOdd()?(u>(s>>1)-1?c=(s>>1)-u:c=u,a.isubn(c)):c=0,n[o]=c,a.iushrn(1)}return n}getJSF(e,t){let i=[[],[]];e=e.clone(),t=t.clone();let n=0,s=0;for(;e.cmpn(-n)>0||t.cmpn(-s)>0;){let a=e.andln(3)+n&3,o=t.andln(3)+s&3;a===3&&(a=-1),o===3&&(o=-1);let c;if((a&1)===0)c=0;else{let l=e.andln(7)+n&7;(l===3||l===5)&&o===2?c=-a:c=a}i[0].push(c);let u;if((o&1)===0)u=0;else{let l=t.andln(7)+s&7;(l===3||l===5)&&a===2?u=-o:u=o}i[1].push(u),2*n===c+1&&(n=1-n),2*s===u+1&&(s=1-s),e.iushrn(1),t.iushrn(1)}return i}static cachedProperty(e,t,i){let n="_"+t;e.prototype[t]=function(){return this[n]!==void 0?this[n]:this[n]=i.call(this)}}static parseBytes(e){return typeof e=="string"?ke(e,"hex"):e}static intFromLE(e){return new $(e,"hex","le")}constructor(){if(typeof sN<"u")return sN;sN=this;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 $(t.p,16),this.red=new Sl(t.prime),this.zero=new $(0).toRed(this.red),this.one=new $(1).toRed(this.red),this.two=new $(2).toRed(this.red),this.n=new $(t.n,16),this.g=Wr.fromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n.bitLength(),this.redN=this.n.toRed(this.red),this.a=new $(t.a,16).toRed(this.red),this.b=new $(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=new Array(4),this._endoWnafT2=new Array(4)}_getEndomorphism(e){if(!this.zeroA||this.p.modrn(3)!==1)return;let t,i;if(e.beta!==void 0)t=new $(e.beta,16).toRed(this.red);else{let s=this._getEndoRoots(this.p);if(s===null)throw new Error("Failed to get endomorphism roots for beta.");t=s[0].cmp(s[1])<0?s[0]:s[1],t=t.toRed(this.red)}if(e.lambda!==void 0)i=new $(e.lambda,16);else{let s=this._getEndoRoots(this.n);if(s===null)throw new Error("Failed to get endomorphism roots for lambda.");if(this.g==null)throw new Error("Curve generator point (g) is not defined.");let a=this.g.mul(s[0])?.x,o=this.g.x!=null?this.g.x.redMul(t):void 0;if(a!=null&&o!=null&&a.cmp(o)===0)i=s[0];else{if(i=s[1],this.g==null)throw new Error("Curve generator point (g) is not defined.");let c=this.g.mul(i)?.x,u=this.g.x!=null?this.g.x.redMul(t):void 0;if(c==null||u==null)throw new Error("Lambda computation failed: g.mul(lambda).x or g.x.redMul(beta) is undefined.");r.assert(c.cmp(u)===0,"Lambda selection does not match computed beta.")}}let n;return typeof e.basis=="object"&&e.basis!==null?n=e.basis.map(function(s){return{a:new $(s.a,16),b:new $(s.b,16)}}):n=this._getEndoBasis(i),{beta:t,lambda:i,basis:n}}_getEndoRoots(e){let t=e===this.p?this.red:new Rg(e),i=new $(2).toRed(t).redInvm(),n=i.redNeg(),s=new $(3).toRed(t).redNeg().redSqrt().redMul(i),a=n.redAdd(s).fromRed(),o=n.redSub(s).fromRed();return[a,o]}_getEndoBasis(e){let t=this.n.ushrn(Math.floor(this.n.bitLength()/2)),i=e,n=this.n.clone(),s=new $(1),a=new $(0),o=new $(0),c=new $(1),u,l,d,f,h,p,A=new $(0),g=0,m=new $(0),I=new $(0);for(;i.cmpn(0)!==0;){let B=n.div(i);m=n.sub(B.mul(i)),I=o.sub(B.mul(s));let E=c.sub(B.mul(a));if(d===void 0&&m.cmp(t)<0)u=A.neg(),l=s,d=m.neg(),f=I;else if(d!==void 0&&++g===2)break;A=m,n=i,i=m,o=s,s=I,c=a,a=E}if(u===void 0||l===void 0||d===void 0||f===void 0)throw new Error("Failed to compute Endo Basis values");h=m.neg(),p=I;let y=d.sqr().add(f.sqr());return h.sqr().add(p.sqr()).cmp(y)>=0&&(h=u,p=l),d.negative!==0&&(d=d.neg(),f=f.neg()),h.negative!==0&&(h=h.neg(),p=p.neg()),[{a:d,b:f},{a:h,b:p}]}_endoSplit(e){if(this.endo==null)throw new Error("Endomorphism is not defined.");let t=this.endo.basis,i=t[0],n=t[1],s=n.b.mul(e).divRound(this.n),a=i.b.neg().mul(e).divRound(this.n),o=s.mul(i.a),c=a.mul(n.a),u=s.mul(i.b),l=a.mul(n.b),d=e.sub(o).sub(c),f=u.add(l).neg();return{k1:d,k2:f}}validate(e){if(e.inf)return!0;let t=e.x,i=e.y;if(t===null||i===null)throw new Error("Point coordinates cannot be null");let n=this.a.redMul(t),s=t.redSqr().redMul(t).redIAdd(n).redIAdd(this.b);return i.redSqr().redISub(s).cmpn(0)===0}}});var Nl=O(()=>{It();Ss();Rl();Ft();ce();vc();Cs()});var TJ=O(()=>{Ft();ce()});var QJ,vGe,xGe,BGe,Rl=O(()=>{It();Nl();Cs();vc();TJ();QJ=new ir,vGe=QJ.n.byteLength(),xGe=QJ.n.subn(1),BGe=SJ>>1n});var Ss=O(()=>{vc();Cs();Rl();It();Ft();Nl();ce()});var di=O(()=>{});var uN=O(()=>{It();Cs();di();ce()});var Ol=O(()=>{It();Ss();Cs();Rl();Ft();di();ce();uN()});var $Ge,YGe,JQe,zQe,XGe,RJ=O(()=>{$Ge=new Uint8Array([99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22]),YGe=[[0,0,0,0],[1,0,0,0],[2,0,0,0],[4,0,0,0],[8,0,0,0],[16,0,0,0],[32,0,0,0],[64,0,0,0],[128,0,0,0],[27,0,0,0],[54,0,0,0]].map(r=>new Uint8Array(r)),JQe=new Uint8Array(256),zQe=new Uint8Array(256);for(let r=0;r<256;r++){let e=(r<<1^((r&128)!==0?27:0))&255;JQe[r]=e,zQe[r]=e^r}XGe=(()=>{let r=new Uint8Array(16);return r[0]=225,r})()});var Ug=O(()=>{It();RJ();di();ce()});var Hg,Fl=O(()=>{Hg={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};for(let r in Hg)Hg[Hg[r]]===void 0&&(Hg[Hg[r]]=r)});var dJe,Pl=O(()=>{Fl();ce();It();dJe=typeof globalThis<"u"?globalThis.Buffer:void 0});var IJe,Ul=O(()=>{Nl();It();Ft();ce();Pl();Fl();IJe=new Uint8Array(0)});var DJ=O(()=>{It();Cs();Ft();zr()});var $Qe,YQe,SJe,_Je,TJe,QJe,NJe,OJ=O(()=>{di();Ft();ce();$Qe=BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff"),YQe=BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),SJe=$Qe-3n,_Je=BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),TJe=BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),QJe=BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"),NJe=YQe>>1n});var zr=O(()=>{It();Cs();vc();Ss();Nl();Ol();Ug();Rl();ce();Ft();di();Ul();uN();DJ();OJ()});var eh=O(()=>{Pl()});var qg=O(()=>{Pl()});var fN=O(()=>{ce()});var fze,e2e,hze,pze,Aze,hN=O(()=>{Pl();It();Fl();ce();fN();Ft();Ul();Ss();Rl();fze=1024*1024*1024,e2e=Math.pow(2,31)-1,hze=BigInt(e2e),pze=Object.freeze(new $(-1).toScriptNum()),Aze=Object.freeze(Array.from({length:17},(r,e)=>Object.freeze(new $(e).toScriptNum())))});var pN=O(()=>{Ul();ce()});var Lg=O(()=>{Fl();ce();eh();qg();Ul();Ft();pN()});var PJ=O(()=>{Fl();eh();qg();Ol();Ul();Ft();Pl()});var Kg=O(()=>{Sc();zr();ce();pN()});var gN=O(()=>{Lg();PJ();Kg()});var Sc=O(()=>{Fl();Pl();eh();qg();hN();fN();gN()});var mN=O(()=>{});var IN=O(()=>{mN()});var yN=O(()=>{});var wN=O(()=>{yN()});var bN=O(()=>{});var ih=O(()=>{wN();bN()});var vN=O(()=>{ih();di();ce()});var xN=O(()=>{vN()});var BN=O(()=>{ih()});var EN=O(()=>{BN()});var CN=O(()=>{ce();Ft();X3()});var kN=O(()=>{Ft();ce();Qc();Tc()});var SN,Tc=O(()=>{CN();kN();ce();Ft();(function(r){r[r.RAWTX=0]="RAWTX",r[r.RAWTX_AND_BUMP_INDEX=1]="RAWTX_AND_BUMP_INDEX",r[r.TXID_ONLY=2]="TXID_ONLY"})(SN||(SN={}))});var Qc=O(()=>{qg();eh();ce();Ft();IN();hN();xN();EN();Tc();Lg();Ul()});var UJ=O(()=>{});var HJ=O(()=>{Tc()});var Hl=O(()=>{Qc();CN();UJ();kN();Tc();HJ()});var MJ=O(()=>{mN();IN()});var qJ=O(()=>{ih()});var LJ=O(()=>{yN()});var _N=O(()=>{ih();LJ();wN();bN()});var KJ=O(()=>{_N()});var VJ=O(()=>{vN();qJ();KJ();xN()});var jJ=O(()=>{ih()});var WJ=O(()=>{BN();jJ();EN()});var GJ=O(()=>{Ss();Ol();Nl();Cs();di();ce()});var JJ=O(()=>{Ss();Ug();di();ce()});var zJ=O(()=>{GJ();JJ()});var $J=O(()=>{It();ce();Rl();Ft()});var YJ=O(()=>{ce();Ft();Cs();Ol();Ss();di();It()});var XJ=O(()=>{});var ZJ=O(()=>{XJ();ce();Ft();di()});function b2e(r){this._tables[0][0][0]===0&&this._precompute();let e,t,i,n=this._tables[0][4],s=this._tables[1],a=r.length,o=1;if(a!==4&&a!==6&&a!==8)throw new Error("invalid aes key size");this._key=[t=r.slice(0),i=[]];let c;for(c=a;c<4*a+28;c++)e=t[c-1],(c%a===0||a===8&&c%a===4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[e&255],c%a===0&&(e=e<<8^e>>>24^o<<24,o=o<<1^(o>>7)*283)),t[c]=t[c-a]^e;for(let u=0;c>0;u++,c--)e=t[(u&3)!==0?c:c-4],c<=4||u<4?i[u]=e:i[u]=s[0][n[e>>>24]]^s[1][n[e>>16&255]]^s[2][n[e>>8&255]]^s[3][n[e&255]]}var ez=O(()=>{di();Ol();Ss();vc();Ft();ce();b2e.prototype={encrypt:function(r){return this._crypt(r,0)},decrypt:function(r){return this._crypt(r,1)},_tables:[[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)]],_precompute:function(){let r=this._tables[0],e=this._tables[1],t=r[4],i=e[4],n,s,a,o=new Uint8Array(256),c=new Uint8Array(256),u,l,d,f,h,p;for(n=0;n<256;n++)c[(o[n]=n<<1^(n>>7)*283)^n]=n;for(s=a=0;t[s]===0;s^=u!==0?u:1,a=c[a]!==0?c[a]:1)for(f=a^a<<1^a<<2^a<<3^a<<4,f=f>>8^f&255^99,t[s]=f,i[f]=s,d=o[l=o[u=o[s]]],p=d*16843009^l*65537^u*257^s*16843008,h=o[f]*257^f*16843008,n=0;n<4;n++)r[n][s]=h=h<<24^h>>>8,e[n][f]=p=p<<24^p>>>8},_crypt:function(r,e){if(r.length!==4)throw new Error("invalid aes block size");let t=this._key[e],i=r[0]^t[0],n=r[e===1?3:1]^t[1],s=r[2]^t[2],a=r[e===1?1:3]^t[3],o,c,u,l=t.length/4-2,d,f=4,h=new Uint32Array(4),p=this._tables[e],A=p[0],g=p[1],m=p[2],I=p[3],y=p[4];for(d=0;d<l;d++)o=A[i>>>24]^g[n>>16&255]^m[s>>8&255]^I[a&255]^t[f],c=A[n>>>24]^g[s>>16&255]^m[a>>8&255]^I[i&255]^t[f+1],u=A[s>>>24]^g[a>>16&255]^m[i>>8&255]^I[n&255]^t[f+2],a=A[a>>>24]^g[i>>16&255]^m[n>>8&255]^I[s&255]^t[f+3],f+=4,i=o,n=c,s=u;for(d=0;d<4;d++)h[e===1?3&-d:d]=y[i>>>24]<<24^y[n>>16&255]<<16^y[s>>8&255]<<8^y[a&255]^t[f++],o=i,i=n,n=s,s=a,a=o;return h}}});var tz=O(()=>{Qc();eh()});var iz=O(()=>{$J();YJ();ZJ();ez();tz()});var rz=O(()=>{Ft();It();ce()});var nz=O(()=>{rz()});var TN,QN=O(()=>{(function(r){r[r.Silent=0]="Silent",r[r.App=1]="App",r[r.Counterparty=2]="Counterparty"})(TN||(TN={}))});var NN=O(()=>{zr()});var RN=O(()=>{zr();NN()});var Ix=O(()=>{RN();zr();ce()});var DN=O(()=>{});var az,rh=O(()=>{(function(r){r[r.unknownError=1]="unknownError",r[r.unsupportedAction=2]="unsupportedAction",r[r.invalidHmac=3]="invalidHmac",r[r.invalidSignature=4]="invalidSignature",r[r.reviewActions=5]="reviewActions",r[r.invalidParameter=6]="invalidParameter",r[r.insufficientFunds=7]="insufficientFunds"})(az||(az={}))});var yx=O(()=>{});var ON=O(()=>{di();ce();rh();yx()});var Ml=O(()=>{ce();Ix();Nl()});var lz,jg=O(()=>{(function(r){r[r.createAction=1]="createAction",r[r.signAction=2]="signAction",r[r.abortAction=3]="abortAction",r[r.listActions=4]="listActions",r[r.internalizeAction=5]="internalizeAction",r[r.listOutputs=6]="listOutputs",r[r.relinquishOutput=7]="relinquishOutput",r[r.getPublicKey=8]="getPublicKey",r[r.revealCounterpartyKeyLinkage=9]="revealCounterpartyKeyLinkage",r[r.revealSpecificKeyLinkage=10]="revealSpecificKeyLinkage",r[r.encrypt=11]="encrypt",r[r.decrypt=12]="decrypt",r[r.createHmac=13]="createHmac",r[r.verifyHmac=14]="verifyHmac",r[r.createSignature=15]="createSignature",r[r.verifySignature=16]="verifySignature",r[r.acquireCertificate=17]="acquireCertificate",r[r.listCertificates=18]="listCertificates",r[r.proveCertificate=19]="proveCertificate",r[r.relinquishCertificate=20]="relinquishCertificate",r[r.discoverByIdentityKey=21]="discoverByIdentityKey",r[r.discoverByAttributes=22]="discoverByAttributes",r[r.isAuthenticated=23]="isAuthenticated",r[r.waitForAuthentication=24]="waitForAuthentication",r[r.getHeight=25]="getHeight",r[r.getHeaderForHeight=26]="getHeaderForHeight",r[r.getNetwork=27]="getNetwork",r[r.getVersion=28]="getVersion"})(lz||(lz={}))});var FN=O(()=>{QN();Ml();ce();jg();rh()});var PN=O(()=>{jg();ce()});var UN=O(()=>{});var Gg=O(()=>{});var fz=O(()=>{});var HN=O(()=>{});var MN=O(()=>{UN();Gg();fz();HN()});var qN=O(()=>{di();ce();rh();yx()});var LN=O(()=>{ce();Gg();Tc()});var wx=O(()=>{DN();ON();FN();PN();MN();qN();LN();Gg()});var hz=O(()=>{});var pz=O(()=>{ce();jg();Ml()});var KN=O(()=>{yx();DN();ON();hz();jg();FN();pz();PN();MN();qN()});var Az=O(()=>{});var nh=O(()=>{QN();NN();RN();Ix();wx();rh();UN();Gg();HN();rh();LN();KN();Az()});var gz=O(()=>{Ml();ce();Ug();di()});var bx=O(()=>{Ug();ce();Ml()});var mz=O(()=>{Ol();nh()});var Iz=O(()=>{Ml();gz();bx();mz()});var vx=O(()=>{});var yz=O(()=>{ce()});var xx=O(()=>{ce();di()});var wz=O(()=>{bx()});var bz=O(()=>{bx()});var Bx=O(()=>{yz();xx();wz();bz()});var utt,VN=O(()=>{vx();Bx();di();ce();utt=typeof globalThis<"u"?globalThis.Buffer:void 0});var xz=O(()=>{});var dtt,jN=O(()=>{ce();dtt=typeof globalThis<"u"&&typeof globalThis.fetch=="function"?globalThis.fetch.bind(globalThis):fetch});var WN=O(()=>{ce();di();Lg();Ss();xx();VN();jN();vx();Bx()});var Bz=O(()=>{WN()});var Ez=O(()=>{jN()});var Cz=O(()=>{Iz();VN();vx();xz();Bx();Bz();Ez()});var Ex=O(()=>{Kg();zr()});var kz,Cx,Htt,Sz=O(()=>{kz="bsvsdk_overlay_host_reputation_v1",Cx=class{stats;store;constructor(e){this.stats=new Map,this.store=e??this.getLocalStorageAdapter(),this.loadFromStorage()}reset(){this.stats.clear()}recordSuccess(e,t){let i=this.getOrCreate(e),n=Date.now(),s=Number.isFinite(t)&&t>=0?t:1500;i.avgLatencyMs===null?i.avgLatencyMs=s:i.avgLatencyMs=(1-.25)*i.avgLatencyMs+.25*s,i.lastLatencyMs=s,i.totalSuccesses+=1,i.consecutiveFailures=0,i.backoffUntil=0,i.lastUpdatedAt=n,i.lastError=void 0,this.saveToStorage()}recordFailure(e,t){let i=this.getOrCreate(e),n=Date.now();i.totalFailures+=1,i.consecutiveFailures+=1;let s;typeof t=="string"?s=t:t instanceof Error?s=t.message:s=void 0,typeof s=="string"&&(s.includes("ERR_NAME_NOT_RESOLVED")||s.includes("ENOTFOUND")||s.includes("getaddrinfo")||s.includes("Failed to fetch"))&&i.consecutiveFailures<3&&(i.consecutiveFailures=3);let o=Math.max(i.consecutiveFailures-2,0);if(o===0)i.backoffUntil=0;else{let c=Math.min(6e4,1e3*Math.pow(2,o-1));i.backoffUntil=n+c}i.lastUpdatedAt=n,typeof t=="string"?i.lastError=t:t instanceof Error?i.lastError=t.message:i.lastError=void 0,this.saveToStorage()}rankHosts(e,t=Date.now()){let i=new Map;e.forEach((a,o)=>{typeof a!="string"||a.length===0||i.has(a)||i.set(a,o)});let s=Array.from(i.keys()).map(a=>{let o=this.getOrCreate(a);return{...o,score:this.computeScore(o,t),originalOrder:i.get(a)??0}});return s.sort((a,o)=>{let c=a.backoffUntil>t,u=o.backoffUntil>t;return c!==u?c?1:-1:a.score!==o.score?a.score-o.score:a.totalSuccesses!==o.totalSuccesses?o.totalSuccesses-a.totalSuccesses:a.originalOrder-o.originalOrder}),s.map(({originalOrder:a,...o})=>o)}snapshot(e){let t=this.stats.get(e);return t==null?void 0:{...t}}getStorage(){try{let e=typeof globalThis=="object"?globalThis:void 0;return e?.localStorage==null?void 0:e.localStorage}catch{return}}getLocalStorageAdapter(){let e=this.getStorage();if(e!=null)return{get:t=>{try{return e.getItem(t)}catch{return null}},set:(t,i)=>{try{e.setItem(t,i)}catch{}}}}loadFromStorage(){let e=this.store;if(e!=null)try{let t=e.get(kz);if(typeof t!="string"||t.length===0)return;let i=JSON.parse(t);if(typeof i!="object"||i===null)return;this.stats.clear();for(let n of Object.keys(i)){let s=i[n];if(s!=null&&typeof s=="object"){let a={host:String(s.host??n),totalSuccesses:Number(s.totalSuccesses??0),totalFailures:Number(s.totalFailures??0),consecutiveFailures:Number(s.consecutiveFailures??0),avgLatencyMs:s.avgLatencyMs==null?null:Number(s.avgLatencyMs),lastLatencyMs:s.lastLatencyMs==null?null:Number(s.lastLatencyMs),backoffUntil:Number(s.backoffUntil??0),lastUpdatedAt:Number(s.lastUpdatedAt??0),lastError:typeof s.lastError=="string"?s.lastError:void 0};this.stats.set(a.host,a)}}}catch{}}saveToStorage(){let e=this.store;if(e!=null)try{let t={};for(let[i,n]of this.stats.entries())t[i]=n;e.set(kz,JSON.stringify(t))}catch{}}computeScore(e,t){let i=e.avgLatencyMs??1500,n=e.consecutiveFailures*400,s=Math.min(e.totalSuccesses*30,i/2),a=e.backoffUntil>t?e.backoffUntil-t:0;return i+n+a-s}getOrCreate(e){let t=this.stats.get(e);return t==null&&(t={host:e,totalSuccesses:0,totalFailures:0,consecutiveFailures:0,avgLatencyMs:null,lastLatencyMs:null,backoffUntil:0,lastUpdatedAt:0},this.stats.set(e,t)),t}},Htt=new Cx});var jtt,kx=O(()=>{Hl();Ex();ce();Sz();jtt=typeof globalThis<"u"&&typeof globalThis.fetch=="function"?globalThis.fetch.bind(globalThis):fetch});var $g=O(()=>{Hl();ce();kx();Ex()});var Tz=O(()=>{Qc()});var ah=O(()=>{kx();$g();Tz();Ex();kx();$g();$g();$g()});var JN=O(()=>{ce();zr()});var Qz=O(()=>{WN();JN()});var Nz=O(()=>{ah();zN();Kg();Qc();zr()});var zN=O(()=>{JN();Qz();Nz()});var $N=O(()=>{});var Rz=O(()=>{nh();zr();Sc();Hl()});var Dz=O(()=>{$N();nh();Hl();Ml();Sc();zr();ah();Rz()});var Oz=O(()=>{Dz();$N()});var Fz=O(()=>{nh();zr();Hl();ah();Sc()});var Pz=O(()=>{});var Uz=O(()=>{Fz();Pz()});var Hz=O(()=>{Kg();ce();wx();Qc();Tc()});var Mz=O(()=>{});var YN=O(()=>{});var qz=O(()=>{Sc();ce();YN()});var Lz=O(()=>{Qc();ce();ah();Sc();wx();Tc();Mz();qz();Ix();YN()});var Kz=O(()=>{Hz();Lz()});var Vz=O(()=>{});var jz=O(()=>{});var XN=O(()=>{});var Wz=O(()=>{XN();ce();di()});var Gz=O(()=>{});var Jz=O(()=>{xx();Lg();Ss()});var zz=O(()=>{Jz()});var $z=O(()=>{Vz();jz();Wz();Gz();zz();XN()});var ZN=O(()=>{zr();Sc();gN();Hl();MJ();VJ();WJ();_N();zJ();iz();nz();nh();KN();Cz();ah();zN();Oz();Uz();Kz();$z()});import G2e from"debug";var _i={};ph(_i,{HasPropertyKey:()=>k0,IsArray:()=>Ut,IsAsyncIterator:()=>Zx,IsBigInt:()=>gh,IsBoolean:()=>Ba,IsDate:()=>Dc,IsFunction:()=>eB,IsIterator:()=>tB,IsNull:()=>iB,IsNumber:()=>br,IsObject:()=>je,IsRegExp:()=>mh,IsString:()=>et,IsSymbol:()=>rB,IsUint8Array:()=>Ea,IsUndefined:()=>Ht});function k0(r,e){return e in r}function Zx(r){return je(r)&&!Ut(r)&&!Ea(r)&&Symbol.asyncIterator in r}function Ut(r){return Array.isArray(r)}function gh(r){return typeof r=="bigint"}function Ba(r){return typeof r=="boolean"}function Dc(r){return r instanceof globalThis.Date}function eB(r){return typeof r=="function"}function tB(r){return je(r)&&!Ut(r)&&!Ea(r)&&Symbol.iterator in r}function iB(r){return r===null}function br(r){return typeof r=="number"}function je(r){return typeof r=="object"&&r!==null}function mh(r){return r instanceof globalThis.RegExp}function et(r){return typeof r=="string"}function rB(r){return typeof r=="symbol"}function Ea(r){return r instanceof globalThis.Uint8Array}function Ht(r){return r===void 0}function mX(r){return r.map(e=>S0(e))}function IX(r){return new Date(r.getTime())}function yX(r){return new Uint8Array(r)}function wX(r){return new RegExp(r.source,r.flags)}function bX(r){let e={};for(let t of Object.getOwnPropertyNames(r))e[t]=S0(r[t]);for(let t of Object.getOwnPropertySymbols(r))e[t]=S0(r[t]);return e}function S0(r){return Ut(r)?mX(r):Dc(r)?IX(r):Ea(r)?yX(r):mh(r)?wX(r):je(r)?bX(r):r}function lt(r){return S0(r)}function Yl(r,e){return e===void 0?lt(r):lt({...e,...r})}function yR(r){return r!==null&&typeof r=="object"}function wR(r){return globalThis.Array.isArray(r)&&!globalThis.ArrayBuffer.isView(r)}function bR(r){return r===void 0}function vR(r){return typeof r=="number"}var _0;(function(r){r.InstanceMode="default",r.ExactOptionalPropertyTypes=!1,r.AllowArrayObject=!1,r.AllowNaN=!1,r.AllowNullVoid=!1;function e(a,o){return r.ExactOptionalPropertyTypes?o in a:a[o]!==void 0}r.IsExactOptionalProperty=e;function t(a){let o=yR(a);return r.AllowArrayObject?o:o&&!wR(a)}r.IsObjectLike=t;function i(a){return t(a)&&!(a instanceof Date)&&!(a instanceof Uint8Array)}r.IsRecordLike=i;function n(a){return r.AllowNaN?vR(a):Number.isFinite(a)}r.IsNumberLike=n;function s(a){let o=bR(a);return r.AllowNullVoid?o||a===null:o}r.IsVoidLike=s})(_0||(_0={}));function vX(r){return globalThis.Object.freeze(r).map(e=>Ih(e))}function xX(r){let e={};for(let t of Object.getOwnPropertyNames(r))e[t]=Ih(r[t]);for(let t of Object.getOwnPropertySymbols(r))e[t]=Ih(r[t]);return globalThis.Object.freeze(e)}function Ih(r){return Ut(r)?vX(r):Dc(r)?r:Ea(r)?r:mh(r)?r:je(r)?xX(r):r}function L(r,e){let t=e!==void 0?{...e,...r}:r;switch(_0.InstanceMode){case"freeze":return Ih(t);case"clone":return lt(t);default:return t}}var fi=class extends Error{constructor(e){super(e)}};var zt=Symbol.for("TypeBox.Transform"),Kn=Symbol.for("TypeBox.Readonly"),bi=Symbol.for("TypeBox.Optional"),Yr=Symbol.for("TypeBox.Hint"),Z=Symbol.for("TypeBox.Kind");function Xl(r){return je(r)&&r[Kn]==="Readonly"}function rr(r){return je(r)&&r[bi]==="Optional"}function nB(r){return Se(r,"Any")}function sB(r){return Se(r,"Argument")}function Vn(r){return Se(r,"Array")}function Oc(r){return Se(r,"AsyncIterator")}function Fc(r){return Se(r,"BigInt")}function Ca(r){return Se(r,"Boolean")}function jn(r){return Se(r,"Computed")}function Wn(r){return Se(r,"Constructor")}function BX(r){return Se(r,"Date")}function Gn(r){return Se(r,"Function")}function Jn(r){return Se(r,"Integer")}function yt(r){return Se(r,"Intersect")}function Pc(r){return Se(r,"Iterator")}function Se(r,e){return je(r)&&Z in r&&r[Z]===e}function T0(r){return Ba(r)||br(r)||et(r)}function vr(r){return Se(r,"Literal")}function xr(r){return Se(r,"MappedKey")}function dt(r){return Se(r,"MappedResult")}function Io(r){return Se(r,"Never")}function EX(r){return Se(r,"Not")}function yh(r){return Se(r,"Null")}function zn(r){return Se(r,"Number")}function Mt(r){return Se(r,"Object")}function Uc(r){return Se(r,"Promise")}function Hc(r){return Se(r,"Record")}function _t(r){return Se(r,"Ref")}function aB(r){return Se(r,"RegExp")}function ka(r){return Se(r,"String")}function wh(r){return Se(r,"Symbol")}function Br(r){return Se(r,"TemplateLiteral")}function CX(r){return Se(r,"This")}function yo(r){return je(r)&&zt in r}function Er(r){return Se(r,"Tuple")}function bh(r){return Se(r,"Undefined")}function Te(r){return Se(r,"Union")}function kX(r){return Se(r,"Uint8Array")}function SX(r){return Se(r,"Unknown")}function _X(r){return Se(r,"Unsafe")}function TX(r){return Se(r,"Void")}function QX(r){return je(r)&&Z in r&&et(r[Z])}function Cr(r){return nB(r)||sB(r)||Vn(r)||Ca(r)||Fc(r)||Oc(r)||jn(r)||Wn(r)||BX(r)||Gn(r)||Jn(r)||yt(r)||Pc(r)||vr(r)||xr(r)||dt(r)||Io(r)||EX(r)||yh(r)||zn(r)||Mt(r)||Uc(r)||Hc(r)||_t(r)||aB(r)||ka(r)||wh(r)||Br(r)||CX(r)||Er(r)||bh(r)||Te(r)||kX(r)||SX(r)||_X(r)||TX(r)||QX(r)}var Q={};ph(Q,{IsAny:()=>CR,IsArgument:()=>kR,IsArray:()=>SR,IsAsyncIterator:()=>_R,IsBigInt:()=>TR,IsBoolean:()=>QR,IsComputed:()=>NR,IsConstructor:()=>RR,IsDate:()=>DR,IsFunction:()=>OR,IsImport:()=>PX,IsInteger:()=>FR,IsIntersect:()=>PR,IsIterator:()=>UR,IsKind:()=>l4,IsKindOf:()=>xe,IsLiteral:()=>xh,IsLiteralBoolean:()=>UX,IsLiteralNumber:()=>MR,IsLiteralString:()=>HR,IsLiteralValue:()=>qR,IsMappedKey:()=>LR,IsMappedResult:()=>KR,IsNever:()=>VR,IsNot:()=>jR,IsNull:()=>WR,IsNumber:()=>GR,IsObject:()=>JR,IsOptional:()=>FX,IsPromise:()=>zR,IsProperties:()=>Q0,IsReadonly:()=>OX,IsRecord:()=>$R,IsRecursive:()=>HX,IsRef:()=>YR,IsRegExp:()=>XR,IsSchema:()=>hi,IsString:()=>ZR,IsSymbol:()=>e4,IsTemplateLiteral:()=>t4,IsThis:()=>i4,IsTransform:()=>r4,IsTuple:()=>n4,IsUint8Array:()=>a4,IsUndefined:()=>s4,IsUnion:()=>lB,IsUnionLiteral:()=>MX,IsUnknown:()=>o4,IsUnsafe:()=>c4,IsVoid:()=>u4,TypeGuardUnknownTypeError:()=>oB});var oB=class extends fi{},NX=["Argument","Any","Array","AsyncIterator","BigInt","Boolean","Computed","Constructor","Date","Enum","Function","Integer","Intersect","Iterator","Literal","MappedKey","MappedResult","Not","Null","Number","Object","Promise","Record","Ref","RegExp","String","Symbol","TemplateLiteral","This","Tuple","Undefined","Union","Uint8Array","Unknown","Void"];function xR(r){try{return new RegExp(r),!0}catch{return!1}}function cB(r){if(!et(r))return!1;for(let e=0;e<r.length;e++){let t=r.charCodeAt(e);if(t>=7&&t<=13||t===27||t===127)return!1}return!0}function BR(r){return uB(r)||hi(r)}function vh(r){return Ht(r)||gh(r)}function tt(r){return Ht(r)||br(r)}function uB(r){return Ht(r)||Ba(r)}function We(r){return Ht(r)||et(r)}function RX(r){return Ht(r)||et(r)&&cB(r)&&xR(r)}function DX(r){return Ht(r)||et(r)&&cB(r)}function ER(r){return Ht(r)||hi(r)}function OX(r){return je(r)&&r[Kn]==="Readonly"}function FX(r){return je(r)&&r[bi]==="Optional"}function CR(r){return xe(r,"Any")&&We(r.$id)}function kR(r){return xe(r,"Argument")&&br(r.index)}function SR(r){return xe(r,"Array")&&r.type==="array"&&We(r.$id)&&hi(r.items)&&tt(r.minItems)&&tt(r.maxItems)&&uB(r.uniqueItems)&&ER(r.contains)&&tt(r.minContains)&&tt(r.maxContains)}function _R(r){return xe(r,"AsyncIterator")&&r.type==="AsyncIterator"&&We(r.$id)&&hi(r.items)}function TR(r){return xe(r,"BigInt")&&r.type==="bigint"&&We(r.$id)&&vh(r.exclusiveMaximum)&&vh(r.exclusiveMinimum)&&vh(r.maximum)&&vh(r.minimum)&&vh(r.multipleOf)}function QR(r){return xe(r,"Boolean")&&r.type==="boolean"&&We(r.$id)}function NR(r){return xe(r,"Computed")&&et(r.target)&&Ut(r.parameters)&&r.parameters.every(e=>hi(e))}function RR(r){return xe(r,"Constructor")&&r.type==="Constructor"&&We(r.$id)&&Ut(r.parameters)&&r.parameters.every(e=>hi(e))&&hi(r.returns)}function DR(r){return xe(r,"Date")&&r.type==="Date"&&We(r.$id)&&tt(r.exclusiveMaximumTimestamp)&&tt(r.exclusiveMinimumTimestamp)&&tt(r.maximumTimestamp)&&tt(r.minimumTimestamp)&&tt(r.multipleOfTimestamp)}function OR(r){return xe(r,"Function")&&r.type==="Function"&&We(r.$id)&&Ut(r.parameters)&&r.parameters.every(e=>hi(e))&&hi(r.returns)}function PX(r){return xe(r,"Import")&&k0(r,"$defs")&&je(r.$defs)&&Q0(r.$defs)&&k0(r,"$ref")&&et(r.$ref)&&r.$ref in r.$defs}function FR(r){return xe(r,"Integer")&&r.type==="integer"&&We(r.$id)&&tt(r.exclusiveMaximum)&&tt(r.exclusiveMinimum)&&tt(r.maximum)&&tt(r.minimum)&&tt(r.multipleOf)}function Q0(r){return je(r)&&Object.entries(r).every(([e,t])=>cB(e)&&hi(t))}function PR(r){return xe(r,"Intersect")&&!(et(r.type)&&r.type!=="object")&&Ut(r.allOf)&&r.allOf.every(e=>hi(e)&&!r4(e))&&We(r.type)&&(uB(r.unevaluatedProperties)||ER(r.unevaluatedProperties))&&We(r.$id)}function UR(r){return xe(r,"Iterator")&&r.type==="Iterator"&&We(r.$id)&&hi(r.items)}function xe(r,e){return je(r)&&Z in r&&r[Z]===e}function HR(r){return xh(r)&&et(r.const)}function MR(r){return xh(r)&&br(r.const)}function UX(r){return xh(r)&&Ba(r.const)}function xh(r){return xe(r,"Literal")&&We(r.$id)&&qR(r.const)}function qR(r){return Ba(r)||br(r)||et(r)}function LR(r){return xe(r,"MappedKey")&&Ut(r.keys)&&r.keys.every(e=>br(e)||et(e))}function KR(r){return xe(r,"MappedResult")&&Q0(r.properties)}function VR(r){return xe(r,"Never")&&je(r.not)&&Object.getOwnPropertyNames(r.not).length===0}function jR(r){return xe(r,"Not")&&hi(r.not)}function WR(r){return xe(r,"Null")&&r.type==="null"&&We(r.$id)}function GR(r){return xe(r,"Number")&&r.type==="number"&&We(r.$id)&&tt(r.exclusiveMaximum)&&tt(r.exclusiveMinimum)&&tt(r.maximum)&&tt(r.minimum)&&tt(r.multipleOf)}function JR(r){return xe(r,"Object")&&r.type==="object"&&We(r.$id)&&Q0(r.properties)&&BR(r.additionalProperties)&&tt(r.minProperties)&&tt(r.maxProperties)}function zR(r){return xe(r,"Promise")&&r.type==="Promise"&&We(r.$id)&&hi(r.item)}function $R(r){return xe(r,"Record")&&r.type==="object"&&We(r.$id)&&BR(r.additionalProperties)&&je(r.patternProperties)&&(e=>{let t=Object.getOwnPropertyNames(e.patternProperties);return t.length===1&&xR(t[0])&&je(e.patternProperties)&&hi(e.patternProperties[t[0]])})(r)}function HX(r){return je(r)&&Yr in r&&r[Yr]==="Recursive"}function YR(r){return xe(r,"Ref")&&We(r.$id)&&et(r.$ref)}function XR(r){return xe(r,"RegExp")&&We(r.$id)&&et(r.source)&&et(r.flags)&&tt(r.maxLength)&&tt(r.minLength)}function ZR(r){return xe(r,"String")&&r.type==="string"&&We(r.$id)&&tt(r.minLength)&&tt(r.maxLength)&&RX(r.pattern)&&DX(r.format)}function e4(r){return xe(r,"Symbol")&&r.type==="symbol"&&We(r.$id)}function t4(r){return xe(r,"TemplateLiteral")&&r.type==="string"&&et(r.pattern)&&r.pattern[0]==="^"&&r.pattern[r.pattern.length-1]==="$"}function i4(r){return xe(r,"This")&&We(r.$id)&&et(r.$ref)}function r4(r){return je(r)&&zt in r}function n4(r){return xe(r,"Tuple")&&r.type==="array"&&We(r.$id)&&br(r.minItems)&&br(r.maxItems)&&r.minItems===r.maxItems&&(Ht(r.items)&&Ht(r.additionalItems)&&r.minItems===0||Ut(r.items)&&r.items.every(e=>hi(e)))}function s4(r){return xe(r,"Undefined")&&r.type==="undefined"&&We(r.$id)}function MX(r){return lB(r)&&r.anyOf.every(e=>HR(e)||MR(e))}function lB(r){return xe(r,"Union")&&We(r.$id)&&je(r)&&Ut(r.anyOf)&&r.anyOf.every(e=>hi(e))}function a4(r){return xe(r,"Uint8Array")&&r.type==="Uint8Array"&&We(r.$id)&&tt(r.minByteLength)&&tt(r.maxByteLength)}function o4(r){return xe(r,"Unknown")&&We(r.$id)}function c4(r){return xe(r,"Unsafe")}function u4(r){return xe(r,"Void")&&r.type==="void"&&We(r.$id)}function l4(r){return je(r)&&Z in r&&et(r[Z])&&!NX.includes(r[Z])}function hi(r){return je(r)&&(CR(r)||kR(r)||SR(r)||QR(r)||TR(r)||_R(r)||NR(r)||RR(r)||DR(r)||OR(r)||FR(r)||PR(r)||UR(r)||xh(r)||LR(r)||KR(r)||VR(r)||jR(r)||WR(r)||GR(r)||JR(r)||zR(r)||$R(r)||YR(r)||XR(r)||ZR(r)||e4(r)||t4(r)||i4(r)||n4(r)||s4(r)||lB(r)||a4(r)||o4(r)||c4(r)||u4(r)||l4(r))}var dB="(true|false)",Bh="(0|[1-9][0-9]*)",fB="(.*)",qX="(?!.*)",f3e=`^${dB}$`,wo=`^${Bh}$`,bo=`^${fB}$`,d4=`^${qX}$`;function f4(r,e){return r.includes(e)}function h4(r){return[...new Set(r)]}function LX(r,e){return r.filter(t=>e.includes(t))}function KX(r,e){return r.reduce((t,i)=>LX(t,i),e)}function p4(r){return r.length===1?r[0]:r.length>1?KX(r.slice(1),r[0]):[]}function A4(r){let e=[];for(let t of r)e.push(...t);return e}function vo(r){return L({[Z]:"Any"},r)}function Zl(r,e){return L({[Z]:"Array",type:"array",items:r},e)}function g4(r){return L({[Z]:"Argument",index:r})}function ed(r,e){return L({[Z]:"AsyncIterator",type:"AsyncIterator",items:r},e)}function st(r,e,t){return L({[Z]:"Computed",target:r,parameters:e},t)}function VX(r,e){let{[e]:t,...i}=r;return i}function wt(r,e){return e.reduce((t,i)=>VX(t,i),r)}function Qe(r){return L({[Z]:"Never",not:{}},r)}function De(r){return L({[Z]:"MappedResult",properties:r})}function td(r,e,t){return L({[Z]:"Constructor",type:"Constructor",parameters:r,returns:e},t)}function Ts(r,e,t){return L({[Z]:"Function",type:"Function",parameters:r,returns:e},t)}function Eh(r,e){return L({[Z]:"Union",anyOf:r},e)}function jX(r){return r.some(e=>rr(e))}function m4(r){return r.map(e=>rr(e)?WX(e):e)}function WX(r){return wt(r,[bi])}function GX(r,e){return jX(r)?Ti(Eh(m4(r),e)):Eh(m4(r),e)}function Qs(r,e){return r.length===1?L(r[0],e):r.length===0?Qe(e):GX(r,e)}function Pe(r,e){return r.length===0?Qe(e):r.length===1?L(r[0],e):Eh(r,e)}var N0=class extends fi{};function JX(r){return r.replace(/\\\$/g,"$").replace(/\\\*/g,"*").replace(/\\\^/g,"^").replace(/\\\|/g,"|").replace(/\\\(/g,"(").replace(/\\\)/g,")")}function hB(r,e,t){return r[e]===t&&r.charCodeAt(e-1)!==92}function _a(r,e){return hB(r,e,"(")}function Ch(r,e){return hB(r,e,")")}function I4(r,e){return hB(r,e,"|")}function zX(r){if(!(_a(r,0)&&Ch(r,r.length-1)))return!1;let e=0;for(let t=0;t<r.length;t++)if(_a(r,t)&&(e+=1),Ch(r,t)&&(e-=1),e===0&&t!==r.length-1)return!1;return!0}function $X(r){return r.slice(1,r.length-1)}function YX(r){let e=0;for(let t=0;t<r.length;t++)if(_a(r,t)&&(e+=1),Ch(r,t)&&(e-=1),I4(r,t)&&e===0)return!0;return!1}function XX(r){for(let e=0;e<r.length;e++)if(_a(r,e))return!0;return!1}function ZX(r){let[e,t]=[0,0],i=[];for(let s=0;s<r.length;s++)if(_a(r,s)&&(e+=1),Ch(r,s)&&(e-=1),I4(r,s)&&e===0){let a=r.slice(t,s);a.length>0&&i.push(id(a)),t=s+1}let n=r.slice(t);return n.length>0&&i.push(id(n)),i.length===0?{type:"const",const:""}:i.length===1?i[0]:{type:"or",expr:i}}function eZ(r){function e(n,s){if(!_a(n,s))throw new N0("TemplateLiteralParser: Index must point to open parens");let a=0;for(let o=s;o<n.length;o++)if(_a(n,o)&&(a+=1),Ch(n,o)&&(a-=1),a===0)return[s,o];throw new N0("TemplateLiteralParser: Unclosed group parens in expression")}function t(n,s){for(let a=s;a<n.length;a++)if(_a(n,a))return[s,a];return[s,n.length]}let i=[];for(let n=0;n<r.length;n++)if(_a(r,n)){let[s,a]=e(r,n),o=r.slice(s,a+1);i.push(id(o)),n=a}else{let[s,a]=t(r,n),o=r.slice(s,a);o.length>0&&i.push(id(o)),n=a-1}return i.length===0?{type:"const",const:""}:i.length===1?i[0]:{type:"and",expr:i}}function id(r){return zX(r)?id($X(r)):YX(r)?ZX(r):XX(r)?eZ(r):{type:"const",const:JX(r)}}function rd(r){return id(r.slice(1,r.length-1))}var pB=class extends fi{};function tZ(r){return r.type==="or"&&r.expr.length===2&&r.expr[0].type==="const"&&r.expr[0].const==="0"&&r.expr[1].type==="const"&&r.expr[1].const==="[1-9][0-9]*"}function iZ(r){return r.type==="or"&&r.expr.length===2&&r.expr[0].type==="const"&&r.expr[0].const==="true"&&r.expr[1].type==="const"&&r.expr[1].const==="false"}function rZ(r){return r.type==="const"&&r.const===".*"}function Mc(r){return tZ(r)||rZ(r)?!1:iZ(r)?!0:r.type==="and"?r.expr.every(e=>Mc(e)):r.type==="or"?r.expr.every(e=>Mc(e)):r.type==="const"?!0:(()=>{throw new pB("Unknown expression type")})()}function y4(r){let e=rd(r.pattern);return Mc(e)}var AB=class extends fi{};function*w4(r){if(r.length===1)return yield*r[0];for(let e of r[0])for(let t of w4(r.slice(1)))yield`${e}${t}`}function*nZ(r){return yield*w4(r.expr.map(e=>[...kh(e)]))}function*sZ(r){for(let e of r.expr)yield*kh(e)}function*aZ(r){return yield r.const}function*kh(r){return r.type==="and"?yield*nZ(r):r.type==="or"?yield*sZ(r):r.type==="const"?yield*aZ(r):(()=>{throw new AB("Unknown expression")})()}function R0(r){let e=rd(r.pattern);return Mc(e)?[...kh(e)]:[]}function Fe(r,e){return L({[Z]:"Literal",const:r,type:typeof r},e)}function D0(r){return L({[Z]:"Boolean",type:"boolean"},r)}function nd(r){return L({[Z]:"BigInt",type:"bigint"},r)}function Xr(r){return L({[Z]:"Number",type:"number"},r)}function $n(r){return L({[Z]:"String",type:"string"},r)}function*oZ(r){let e=r.trim().replace(/"|'/g,"");return e==="boolean"?yield D0():e==="number"?yield Xr():e==="bigint"?yield nd():e==="string"?yield $n():yield(()=>{let t=e.split("|").map(i=>Fe(i.trim()));return t.length===0?Qe():t.length===1?t[0]:Qs(t)})()}function*cZ(r){if(r[1]!=="{"){let e=Fe("$"),t=gB(r.slice(1));return yield*[e,...t]}for(let e=2;e<r.length;e++)if(r[e]==="}"){let t=oZ(r.slice(2,e)),i=gB(r.slice(e+1));return yield*[...t,...i]}yield Fe(r)}function*gB(r){for(let e=0;e<r.length;e++)if(r[e]==="$"){let t=Fe(r.slice(0,e)),i=cZ(r.slice(e));return yield*[t,...i]}yield Fe(r)}function b4(r){return[...gB(r)]}var mB=class extends fi{};function uZ(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function v4(r,e){return Br(r)?r.pattern.slice(1,r.pattern.length-1):Te(r)?`(${r.anyOf.map(t=>v4(t,e)).join("|")})`:zn(r)?`${e}${Bh}`:Jn(r)?`${e}${Bh}`:Fc(r)?`${e}${Bh}`:ka(r)?`${e}${fB}`:vr(r)?`${e}${uZ(r.const.toString())}`:Ca(r)?`${e}${dB}`:(()=>{throw new mB(`Unexpected Kind '${r[Z]}'`)})()}function IB(r){return`^${r.map(e=>v4(e,"")).join("")}$`}function qc(r){let t=R0(r).map(i=>Fe(i));return Qs(t)}function O0(r,e){let t=et(r)?IB(b4(r)):IB(r);return L({[Z]:"TemplateLiteral",type:"string",pattern:t},e)}function lZ(r){return R0(r).map(t=>t.toString())}function dZ(r){let e=[];for(let t of r)e.push(...nr(t));return e}function fZ(r){return[r.toString()]}function nr(r){return[...new Set(Br(r)?lZ(r):Te(r)?dZ(r.anyOf):vr(r)?fZ(r.const):zn(r)?["[number]"]:Jn(r)?["[number]"]:[])]}function hZ(r,e,t){let i={};for(let n of Object.getOwnPropertyNames(e))i[n]=xo(r,nr(e[n]),t);return i}function pZ(r,e,t){return hZ(r,e.properties,t)}function x4(r,e,t){let i=pZ(r,e,t);return De(i)}function E4(r,e){return r.map(t=>C4(t,e))}function AZ(r){return r.filter(e=>!Io(e))}function gZ(r,e){return F0(AZ(E4(r,e)))}function mZ(r){return r.some(e=>Io(e))?[]:r}function IZ(r,e){return Qs(mZ(E4(r,e)))}function yZ(r,e){return e in r?r[e]:e==="[number]"?Qs(r):Qe()}function wZ(r,e){return e==="[number]"?r:Qe()}function bZ(r,e){return e in r?r[e]:Qe()}function C4(r,e){return yt(r)?gZ(r.allOf,e):Te(r)?IZ(r.anyOf,e):Er(r)?yZ(r.items??[],e):Vn(r)?wZ(r.items,e):Mt(r)?bZ(r.properties,e):Qe()}function yB(r,e){return e.map(t=>C4(r,t))}function B4(r,e){return Qs(yB(r,e))}function xo(r,e,t){if(_t(r)||_t(e)){let i="Index types using Ref parameters require both Type and Key to be of TSchema";if(!Cr(r)||!Cr(e))throw new fi(i);return st("Index",[r,e])}return dt(e)?x4(r,e,t):xr(e)?k4(r,e,t):L(Cr(e)?B4(r,nr(e)):B4(r,e),t)}function vZ(r,e,t){return{[e]:xo(r,[e],lt(t))}}function xZ(r,e,t){return e.reduce((i,n)=>({...i,...vZ(r,n,t)}),{})}function BZ(r,e,t){return xZ(r,e.keys,t)}function k4(r,e,t){let i=BZ(r,e,t);return De(i)}function sd(r,e){return L({[Z]:"Iterator",type:"Iterator",items:r},e)}function EZ(r){return globalThis.Object.keys(r).filter(e=>!rr(r[e]))}function CZ(r,e){let t=EZ(r),i=t.length>0?{[Z]:"Object",type:"object",required:t,properties:r}:{[Z]:"Object",type:"object",properties:r};return L(i,e)}var Ge=CZ;function P0(r,e){return L({[Z]:"Promise",type:"Promise",item:r},e)}function kZ(r){return L(wt(r,[Kn]))}function SZ(r){return L({...r,[Kn]:"Readonly"})}function _Z(r,e){return e===!1?kZ(r):SZ(r)}function sr(r,e){let t=e??!0;return dt(r)?S4(r,t):_Z(r,t)}function TZ(r,e){let t={};for(let i of globalThis.Object.getOwnPropertyNames(r))t[i]=sr(r[i],e);return t}function QZ(r,e){return TZ(r.properties,e)}function S4(r,e){let t=QZ(r,e);return De(t)}function Zr(r,e){return L(r.length>0?{[Z]:"Tuple",type:"array",items:r,additionalItems:!1,minItems:r.length,maxItems:r.length}:{[Z]:"Tuple",type:"array",minItems:r.length,maxItems:r.length},e)}function _4(r,e){return r in e?en(r,e[r]):De(e)}function NZ(r){return{[r]:Fe(r)}}function RZ(r){let e={};for(let t of r)e[t]=Fe(t);return e}function DZ(r,e){return f4(e,r)?NZ(r):RZ(e)}function OZ(r,e){let t=DZ(r,e);return _4(r,t)}function Sh(r,e){return e.map(t=>en(r,t))}function FZ(r,e){let t={};for(let i of globalThis.Object.getOwnPropertyNames(e))t[i]=en(r,e[i]);return t}function en(r,e){let t={...e};return rr(e)?Ti(en(r,wt(e,[bi]))):Xl(e)?sr(en(r,wt(e,[Kn]))):dt(e)?_4(r,e.properties):xr(e)?OZ(r,e.keys):Wn(e)?td(Sh(r,e.parameters),en(r,e.returns),t):Gn(e)?Ts(Sh(r,e.parameters),en(r,e.returns),t):Oc(e)?ed(en(r,e.items),t):Pc(e)?sd(en(r,e.items),t):yt(e)?Qi(Sh(r,e.allOf),t):Te(e)?Pe(Sh(r,e.anyOf),t):Er(e)?Zr(Sh(r,e.items??[]),t):Mt(e)?Ge(FZ(r,e.properties),t):Vn(e)?Zl(en(r,e.items),t):Uc(e)?P0(en(r,e.item),t):e}function PZ(r,e){let t={};for(let i of r)t[i]=en(i,e);return t}function T4(r,e,t){let i=Cr(r)?nr(r):r,n=e({[Z]:"MappedKey",keys:i}),s=PZ(i,n);return Ge(s,t)}function UZ(r){return L(wt(r,[bi]))}function HZ(r){return L({...r,[bi]:"Optional"})}function MZ(r,e){return e===!1?UZ(r):HZ(r)}function Ti(r,e){let t=e??!0;return dt(r)?Q4(r,t):MZ(r,t)}function qZ(r,e){let t={};for(let i of globalThis.Object.getOwnPropertyNames(r))t[i]=Ti(r[i],e);return t}function LZ(r,e){return qZ(r.properties,e)}function Q4(r,e){let t=LZ(r,e);return De(t)}function _h(r,e={}){let t=r.every(n=>Mt(n)),i=Cr(e.unevaluatedProperties)?{unevaluatedProperties:e.unevaluatedProperties}:{};return L(e.unevaluatedProperties===!1||Cr(e.unevaluatedProperties)||t?{...i,[Z]:"Intersect",type:"object",allOf:r}:{...i,[Z]:"Intersect",allOf:r},e)}function KZ(r){return r.every(e=>rr(e))}function VZ(r){return wt(r,[bi])}function N4(r){return r.map(e=>rr(e)?VZ(e):e)}function jZ(r,e){return KZ(r)?Ti(_h(N4(r),e)):_h(N4(r),e)}function F0(r,e={}){if(r.length===1)return L(r[0],e);if(r.length===0)return Qe(e);if(r.some(t=>yo(t)))throw new Error("Cannot intersect transform types");return jZ(r,e)}function Qi(r,e){if(r.length===1)return L(r[0],e);if(r.length===0)return Qe(e);if(r.some(t=>yo(t)))throw new Error("Cannot intersect transform types");return _h(r,e)}function Ns(...r){let[e,t]=typeof r[0]=="string"?[r[0],r[1]]:[r[0].$id,r[1]];if(typeof e!="string")throw new fi("Ref: $ref must be a string");return L({[Z]:"Ref",$ref:e},t)}function WZ(r,e){return st("Awaited",[st(r,e)])}function GZ(r){return st("Awaited",[Ns(r)])}function JZ(r){return Qi(R4(r))}function zZ(r){return Pe(R4(r))}function $Z(r){return ad(r)}function R4(r){return r.map(e=>ad(e))}function ad(r,e){return L(jn(r)?WZ(r.target,r.parameters):yt(r)?JZ(r.allOf):Te(r)?zZ(r.anyOf):Uc(r)?$Z(r.item):_t(r)?GZ(r.$ref):r,e)}function D4(r){let e=[];for(let t of r)e.push(Th(t));return e}function YZ(r){let e=D4(r);return A4(e)}function XZ(r){let e=D4(r);return p4(e)}function ZZ(r){return r.map((e,t)=>t.toString())}function eee(r){return["[number]"]}function tee(r){return globalThis.Object.getOwnPropertyNames(r)}function iee(r){return ree?globalThis.Object.getOwnPropertyNames(r).map(t=>t[0]==="^"&&t[t.length-1]==="$"?t.slice(1,t.length-1):t):[]}function Th(r){return yt(r)?YZ(r.allOf):Te(r)?XZ(r.anyOf):Er(r)?ZZ(r.items??[]):Vn(r)?eee(r.items):Mt(r)?tee(r.properties):Hc(r)?iee(r.patternProperties):[]}var ree=!1;function nee(r,e){return st("KeyOf",[st(r,e)])}function see(r){return st("KeyOf",[Ns(r)])}function aee(r,e){let t=Th(r),i=oee(t),n=Qs(i);return L(n,e)}function oee(r){return r.map(e=>e==="[number]"?Xr():Fe(e))}function od(r,e){return jn(r)?nee(r.target,r.parameters):_t(r)?see(r.$ref):dt(r)?O4(r,e):aee(r,e)}function cee(r,e){let t={};for(let i of globalThis.Object.getOwnPropertyNames(r))t[i]=od(r[i],lt(e));return t}function uee(r,e){return cee(r.properties,e)}function O4(r,e){let t=uee(r,e);return De(t)}function lee(r){let e=[];for(let t of r)e.push(...Th(t));return h4(e)}function dee(r){return r.filter(e=>!Io(e))}function fee(r,e){let t=[];for(let i of r)t.push(...yB(i,[e]));return dee(t)}function hee(r,e){let t={};for(let i of e)t[i]=F0(fee(r,i));return t}function F4(r,e){let t=lee(r),i=hee(r,t);return Ge(i,e)}function U0(r){return L({[Z]:"Date",type:"Date"},r)}function H0(r){return L({[Z]:"Null",type:"null"},r)}function M0(r){return L({[Z]:"Symbol",type:"symbol"},r)}function q0(r){return L({[Z]:"Undefined",type:"undefined"},r)}function L0(r){return L({[Z]:"Uint8Array",type:"Uint8Array"},r)}function Bo(r){return L({[Z]:"Unknown"},r)}function pee(r){return r.map(e=>wB(e,!1))}function Aee(r){let e={};for(let t of globalThis.Object.getOwnPropertyNames(r))e[t]=sr(wB(r[t],!1));return e}function K0(r,e){return e===!0?r:sr(r)}function wB(r,e){return Zx(r)?K0(vo(),e):tB(r)?K0(vo(),e):Ut(r)?sr(Zr(pee(r))):Ea(r)?L0():Dc(r)?U0():je(r)?K0(Ge(Aee(r)),e):eB(r)?K0(Ts([],Bo()),e):Ht(r)?q0():iB(r)?H0():rB(r)?M0():gh(r)?nd():br(r)?Fe(r):Ba(r)?Fe(r):et(r)?Fe(r):Ge({})}function P4(r,e){return L(wB(r,!0),e)}function U4(r,e){return Wn(r)?Zr(r.parameters,e):Qe(e)}function H4(r,e){if(Ht(r))throw new Error("Enum undefined or empty");let t=globalThis.Object.getOwnPropertyNames(r).filter(s=>isNaN(s)).map(s=>r[s]),n=[...new Set(t)].map(s=>Fe(s));return Pe(n,{...e,[Yr]:"Enum"})}var vB=class extends fi{},V;(function(r){r[r.Union=0]="Union",r[r.True=1]="True",r[r.False=2]="False"})(V||(V={}));function tn(r){return r===V.False?r:V.True}function cd(r){throw new vB(r)}function $t(r){return Q.IsNever(r)||Q.IsIntersect(r)||Q.IsUnion(r)||Q.IsUnknown(r)||Q.IsAny(r)}function Yt(r,e){return Q.IsNever(e)?W4(r,e):Q.IsIntersect(e)?V0(r,e):Q.IsUnion(e)?CB(r,e):Q.IsUnknown(e)?$4(r,e):Q.IsAny(e)?EB(r,e):cd("StructuralRight")}function EB(r,e){return V.True}function gee(r,e){return Q.IsIntersect(e)?V0(r,e):Q.IsUnion(e)&&e.anyOf.some(t=>Q.IsAny(t)||Q.IsUnknown(t))?V.True:Q.IsUnion(e)?V.Union:Q.IsUnknown(e)||Q.IsAny(e)?V.True:V.Union}function mee(r,e){return Q.IsUnknown(r)?V.False:Q.IsAny(r)?V.Union:Q.IsNever(r)?V.True:V.False}function Iee(r,e){return Q.IsObject(e)&&j0(e)?V.True:$t(e)?Yt(r,e):Q.IsArray(e)?tn(Je(r.items,e.items)):V.False}function yee(r,e){return $t(e)?Yt(r,e):Q.IsAsyncIterator(e)?tn(Je(r.items,e.items)):V.False}function wee(r,e){return $t(e)?Yt(r,e):Q.IsObject(e)?Ni(r,e):Q.IsRecord(e)?rn(r,e):Q.IsBigInt(e)?V.True:V.False}function V4(r,e){return Q.IsLiteralBoolean(r)||Q.IsBoolean(r)?V.True:V.False}function bee(r,e){return $t(e)?Yt(r,e):Q.IsObject(e)?Ni(r,e):Q.IsRecord(e)?rn(r,e):Q.IsBoolean(e)?V.True:V.False}function vee(r,e){return $t(e)?Yt(r,e):Q.IsObject(e)?Ni(r,e):Q.IsConstructor(e)?r.parameters.length>e.parameters.length?V.False:r.parameters.every((t,i)=>tn(Je(e.parameters[i],t))===V.True)?tn(Je(r.returns,e.returns)):V.False:V.False}function xee(r,e){return $t(e)?Yt(r,e):Q.IsObject(e)?Ni(r,e):Q.IsRecord(e)?rn(r,e):Q.IsDate(e)?V.True:V.False}function Bee(r,e){return $t(e)?Yt(r,e):Q.IsObject(e)?Ni(r,e):Q.IsFunction(e)?r.parameters.length>e.parameters.length?V.False:r.parameters.every((t,i)=>tn(Je(e.parameters[i],t))===V.True)?tn(Je(r.returns,e.returns)):V.False:V.False}function j4(r,e){return Q.IsLiteral(r)&&_i.IsNumber(r.const)||Q.IsNumber(r)||Q.IsInteger(r)?V.True:V.False}function Eee(r,e){return Q.IsInteger(e)||Q.IsNumber(e)?V.True:$t(e)?Yt(r,e):Q.IsObject(e)?Ni(r,e):Q.IsRecord(e)?rn(r,e):V.False}function V0(r,e){return e.allOf.every(t=>Je(r,t)===V.True)?V.True:V.False}function Cee(r,e){return r.allOf.some(t=>Je(t,e)===V.True)?V.True:V.False}function kee(r,e){return $t(e)?Yt(r,e):Q.IsIterator(e)?tn(Je(r.items,e.items)):V.False}function See(r,e){return Q.IsLiteral(e)&&e.const===r.const?V.True:$t(e)?Yt(r,e):Q.IsObject(e)?Ni(r,e):Q.IsRecord(e)?rn(r,e):Q.IsString(e)?z4(r,e):Q.IsNumber(e)?G4(r,e):Q.IsInteger(e)?j4(r,e):Q.IsBoolean(e)?V4(r,e):V.False}function W4(r,e){return V.False}function _ee(r,e){return V.True}function M4(r){let[e,t]=[r,0];for(;Q.IsNot(e);)e=e.not,t+=1;return t%2===0?e:Bo()}function Tee(r,e){return Q.IsNot(r)?Je(M4(r),e):Q.IsNot(e)?Je(r,M4(e)):cd("Invalid fallthrough for Not")}function Qee(r,e){return $t(e)?Yt(r,e):Q.IsObject(e)?Ni(r,e):Q.IsRecord(e)?rn(r,e):Q.IsNull(e)?V.True:V.False}function G4(r,e){return Q.IsLiteralNumber(r)||Q.IsNumber(r)||Q.IsInteger(r)?V.True:V.False}function Nee(r,e){return $t(e)?Yt(r,e):Q.IsObject(e)?Ni(r,e):Q.IsRecord(e)?rn(r,e):Q.IsInteger(e)||Q.IsNumber(e)?V.True:V.False}function ar(r,e){return Object.getOwnPropertyNames(r.properties).length===e}function q4(r){return j0(r)}function L4(r){return ar(r,0)||ar(r,1)&&"description"in r.properties&&Q.IsUnion(r.properties.description)&&r.properties.description.anyOf.length===2&&(Q.IsString(r.properties.description.anyOf[0])&&Q.IsUndefined(r.properties.description.anyOf[1])||Q.IsString(r.properties.description.anyOf[1])&&Q.IsUndefined(r.properties.description.anyOf[0]))}function bB(r){return ar(r,0)}function K4(r){return ar(r,0)}function Ree(r){return ar(r,0)}function Dee(r){return ar(r,0)}function Oee(r){return j0(r)}function Fee(r){let e=Xr();return ar(r,0)||ar(r,1)&&"length"in r.properties&&tn(Je(r.properties.length,e))===V.True}function Pee(r){return ar(r,0)}function j0(r){let e=Xr();return ar(r,0)||ar(r,1)&&"length"in r.properties&&tn(Je(r.properties.length,e))===V.True}function Uee(r){let e=Ts([vo()],vo());return ar(r,0)||ar(r,1)&&"then"in r.properties&&tn(Je(r.properties.then,e))===V.True}function J4(r,e){return Je(r,e)===V.False||Q.IsOptional(r)&&!Q.IsOptional(e)?V.False:V.True}function Ni(r,e){return Q.IsUnknown(r)?V.False:Q.IsAny(r)?V.Union:Q.IsNever(r)||Q.IsLiteralString(r)&&q4(e)||Q.IsLiteralNumber(r)&&bB(e)||Q.IsLiteralBoolean(r)&&K4(e)||Q.IsSymbol(r)&&L4(e)||Q.IsBigInt(r)&&Ree(e)||Q.IsString(r)&&q4(e)||Q.IsSymbol(r)&&L4(e)||Q.IsNumber(r)&&bB(e)||Q.IsInteger(r)&&bB(e)||Q.IsBoolean(r)&&K4(e)||Q.IsUint8Array(r)&&Oee(e)||Q.IsDate(r)&&Dee(e)||Q.IsConstructor(r)&&Pee(e)||Q.IsFunction(r)&&Fee(e)?V.True:Q.IsRecord(r)&&Q.IsString(xB(r))?e[Yr]==="Record"?V.True:V.False:Q.IsRecord(r)&&Q.IsNumber(xB(r))&&ar(e,0)?V.True:V.False}function Hee(r,e){return $t(e)?Yt(r,e):Q.IsRecord(e)?rn(r,e):Q.IsObject(e)?(()=>{for(let t of Object.getOwnPropertyNames(e.properties)){if(!(t in r.properties)&&!Q.IsOptional(e.properties[t]))return V.False;if(Q.IsOptional(e.properties[t]))return V.True;if(J4(r.properties[t],e.properties[t])===V.False)return V.False}return V.True})():V.False}function Mee(r,e){return $t(e)?Yt(r,e):Q.IsObject(e)&&Uee(e)?V.True:Q.IsPromise(e)?tn(Je(r.item,e.item)):V.False}function xB(r){return wo in r.patternProperties?Xr():bo in r.patternProperties?$n():cd("Unknown record key pattern")}function BB(r){return wo in r.patternProperties?r.patternProperties[wo]:bo in r.patternProperties?r.patternProperties[bo]:cd("Unable to get record value schema")}function rn(r,e){let[t,i]=[xB(e),BB(e)];return Q.IsLiteralString(r)&&Q.IsNumber(t)&&tn(Je(r,i))===V.True?V.True:Q.IsUint8Array(r)&&Q.IsNumber(t)||Q.IsString(r)&&Q.IsNumber(t)||Q.IsArray(r)&&Q.IsNumber(t)?Je(r,i):Q.IsObject(r)?(()=>{for(let n of Object.getOwnPropertyNames(r.properties))if(J4(i,r.properties[n])===V.False)return V.False;return V.True})():V.False}function qee(r,e){return $t(e)?Yt(r,e):Q.IsObject(e)?Ni(r,e):Q.IsRecord(e)?Je(BB(r),BB(e)):V.False}function Lee(r,e){let t=Q.IsRegExp(r)?$n():r,i=Q.IsRegExp(e)?$n():e;return Je(t,i)}function z4(r,e){return Q.IsLiteral(r)&&_i.IsString(r.const)||Q.IsString(r)?V.True:V.False}function Kee(r,e){return $t(e)?Yt(r,e):Q.IsObject(e)?Ni(r,e):Q.IsRecord(e)?rn(r,e):Q.IsString(e)?V.True:V.False}function Vee(r,e){return $t(e)?Yt(r,e):Q.IsObject(e)?Ni(r,e):Q.IsRecord(e)?rn(r,e):Q.IsSymbol(e)?V.True:V.False}function jee(r,e){return Q.IsTemplateLiteral(r)?Je(qc(r),e):Q.IsTemplateLiteral(e)?Je(r,qc(e)):cd("Invalid fallthrough for TemplateLiteral")}function Wee(r,e){return Q.IsArray(e)&&r.items!==void 0&&r.items.every(t=>Je(t,e.items)===V.True)}function Gee(r,e){return Q.IsNever(r)?V.True:Q.IsUnknown(r)?V.False:Q.IsAny(r)?V.Union:V.False}function Jee(r,e){return $t(e)?Yt(r,e):Q.IsObject(e)&&j0(e)||Q.IsArray(e)&&Wee(r,e)?V.True:Q.IsTuple(e)?_i.IsUndefined(r.items)&&!_i.IsUndefined(e.items)||!_i.IsUndefined(r.items)&&_i.IsUndefined(e.items)?V.False:_i.IsUndefined(r.items)&&!_i.IsUndefined(e.items)||r.items.every((t,i)=>Je(t,e.items[i])===V.True)?V.True:V.False:V.False}function zee(r,e){return $t(e)?Yt(r,e):Q.IsObject(e)?Ni(r,e):Q.IsRecord(e)?rn(r,e):Q.IsUint8Array(e)?V.True:V.False}function $ee(r,e){return $t(e)?Yt(r,e):Q.IsObject(e)?Ni(r,e):Q.IsRecord(e)?rn(r,e):Q.IsVoid(e)?Zee(r,e):Q.IsUndefined(e)?V.True:V.False}function CB(r,e){return e.anyOf.some(t=>Je(r,t)===V.True)?V.True:V.False}function Yee(r,e){return r.anyOf.every(t=>Je(t,e)===V.True)?V.True:V.False}function $4(r,e){return V.True}function Xee(r,e){return Q.IsNever(e)?W4(r,e):Q.IsIntersect(e)?V0(r,e):Q.IsUnion(e)?CB(r,e):Q.IsAny(e)?EB(r,e):Q.IsString(e)?z4(r,e):Q.IsNumber(e)?G4(r,e):Q.IsInteger(e)?j4(r,e):Q.IsBoolean(e)?V4(r,e):Q.IsArray(e)?mee(r,e):Q.IsTuple(e)?Gee(r,e):Q.IsObject(e)?Ni(r,e):Q.IsUnknown(e)?V.True:V.False}function Zee(r,e){return Q.IsUndefined(r)||Q.IsUndefined(r)?V.True:V.False}function ete(r,e){return Q.IsIntersect(e)?V0(r,e):Q.IsUnion(e)?CB(r,e):Q.IsUnknown(e)?$4(r,e):Q.IsAny(e)?EB(r,e):Q.IsObject(e)?Ni(r,e):Q.IsVoid(e)?V.True:V.False}function Je(r,e){return Q.IsTemplateLiteral(r)||Q.IsTemplateLiteral(e)?jee(r,e):Q.IsRegExp(r)||Q.IsRegExp(e)?Lee(r,e):Q.IsNot(r)||Q.IsNot(e)?Tee(r,e):Q.IsAny(r)?gee(r,e):Q.IsArray(r)?Iee(r,e):Q.IsBigInt(r)?wee(r,e):Q.IsBoolean(r)?bee(r,e):Q.IsAsyncIterator(r)?yee(r,e):Q.IsConstructor(r)?vee(r,e):Q.IsDate(r)?xee(r,e):Q.IsFunction(r)?Bee(r,e):Q.IsInteger(r)?Eee(r,e):Q.IsIntersect(r)?Cee(r,e):Q.IsIterator(r)?kee(r,e):Q.IsLiteral(r)?See(r,e):Q.IsNever(r)?_ee(r,e):Q.IsNull(r)?Qee(r,e):Q.IsNumber(r)?Nee(r,e):Q.IsObject(r)?Hee(r,e):Q.IsRecord(r)?qee(r,e):Q.IsString(r)?Kee(r,e):Q.IsSymbol(r)?Vee(r,e):Q.IsTuple(r)?Jee(r,e):Q.IsPromise(r)?Mee(r,e):Q.IsUint8Array(r)?zee(r,e):Q.IsUndefined(r)?$ee(r,e):Q.IsUnion(r)?Yee(r,e):Q.IsUnknown(r)?Xee(r,e):Q.IsVoid(r)?ete(r,e):cd(`Unknown left type operand '${r[Z]}'`)}function Eo(r,e){return Je(r,e)}function tte(r,e,t,i,n){let s={};for(let a of globalThis.Object.getOwnPropertyNames(r))s[a]=ud(r[a],e,t,i,lt(n));return s}function ite(r,e,t,i,n){return tte(r.properties,e,t,i,n)}function Y4(r,e,t,i,n){let s=ite(r,e,t,i,n);return De(s)}function rte(r,e,t,i){let n=Eo(r,e);return n===V.Union?Pe([t,i]):n===V.True?t:i}function ud(r,e,t,i,n){return dt(r)?Y4(r,e,t,i,n):xr(r)?L(X4(r,e,t,i,n)):L(rte(r,e,t,i),n)}function nte(r,e,t,i,n){return{[r]:ud(Fe(r),e,t,i,lt(n))}}function ste(r,e,t,i,n){return r.reduce((s,a)=>({...s,...nte(a,e,t,i,n)}),{})}function ate(r,e,t,i,n){return ste(r.keys,e,t,i,n)}function X4(r,e,t,i,n){let s=ate(r,e,t,i,n);return De(s)}function Z4(r,e){return ld(qc(r),e)}function ote(r,e){let t=r.filter(i=>Eo(i,e)===V.False);return t.length===1?t[0]:Pe(t)}function ld(r,e,t={}){return Br(r)?L(Z4(r,e),t):dt(r)?L(eD(r,e),t):L(Te(r)?ote(r.anyOf,e):Eo(r,e)!==V.False?Qe():r,t)}function cte(r,e){let t={};for(let i of globalThis.Object.getOwnPropertyNames(r))t[i]=ld(r[i],e);return t}function ute(r,e){return cte(r.properties,e)}function eD(r,e){let t=ute(r,e);return De(t)}function tD(r,e){return dd(qc(r),e)}function lte(r,e){let t=r.filter(i=>Eo(i,e)!==V.False);return t.length===1?t[0]:Pe(t)}function dd(r,e,t){return Br(r)?L(tD(r,e),t):dt(r)?L(iD(r,e),t):L(Te(r)?lte(r.anyOf,e):Eo(r,e)!==V.False?r:Qe(),t)}function dte(r,e){let t={};for(let i of globalThis.Object.getOwnPropertyNames(r))t[i]=dd(r[i],e);return t}function fte(r,e){return dte(r.properties,e)}function iD(r,e){let t=fte(r,e);return De(t)}function rD(r,e){return Wn(r)?L(r.returns,e):Qe(e)}function W0(r){return sr(Ti(r))}function Lc(r,e,t){return L({[Z]:"Record",type:"object",patternProperties:{[r]:e}},t)}function kB(r,e,t){let i={};for(let n of r)i[n]=e;return Ge(i,{...t,[Yr]:"Record"})}function hte(r,e,t){return y4(r)?kB(nr(r),e,t):Lc(r.pattern,e,t)}function pte(r,e,t){return kB(nr(Pe(r)),e,t)}function Ate(r,e,t){return kB([r.toString()],e,t)}function gte(r,e,t){return Lc(r.source,e,t)}function mte(r,e,t){let i=Ht(r.pattern)?bo:r.pattern;return Lc(i,e,t)}function Ite(r,e,t){return Lc(bo,e,t)}function yte(r,e,t){return Lc(d4,e,t)}function wte(r,e,t){return Ge({true:e,false:e},t)}function bte(r,e,t){return Lc(wo,e,t)}function vte(r,e,t){return Lc(wo,e,t)}function G0(r,e,t={}){return Te(r)?pte(r.anyOf,e,t):Br(r)?hte(r,e,t):vr(r)?Ate(r.const,e,t):Ca(r)?wte(r,e,t):Jn(r)?bte(r,e,t):zn(r)?vte(r,e,t):aB(r)?gte(r,e,t):ka(r)?mte(r,e,t):nB(r)?Ite(r,e,t):Io(r)?yte(r,e,t):Qe(t)}function J0(r){return globalThis.Object.getOwnPropertyNames(r.patternProperties)[0]}function nD(r){let e=J0(r);return e===bo?$n():e===wo?Xr():$n({pattern:e})}function z0(r){return r.patternProperties[J0(r)]}function xte(r,e){return e.parameters=Qh(r,e.parameters),e.returns=Yn(r,e.returns),e}function Bte(r,e){return e.parameters=Qh(r,e.parameters),e.returns=Yn(r,e.returns),e}function Ete(r,e){return e.allOf=Qh(r,e.allOf),e}function Cte(r,e){return e.anyOf=Qh(r,e.anyOf),e}function kte(r,e){return Ht(e.items)||(e.items=Qh(r,e.items)),e}function Ste(r,e){return e.items=Yn(r,e.items),e}function _te(r,e){return e.items=Yn(r,e.items),e}function Tte(r,e){return e.items=Yn(r,e.items),e}function Qte(r,e){return e.item=Yn(r,e.item),e}function Nte(r,e){let t=Fte(r,e.properties);return{...e,...Ge(t)}}function Rte(r,e){let t=Yn(r,nD(e)),i=Yn(r,z0(e)),n=G0(t,i);return{...e,...n}}function Dte(r,e){return e.index in r?r[e.index]:Bo()}function Ote(r,e){let t=Xl(e),i=rr(e),n=Yn(r,e);return t&&i?W0(n):t&&!i?sr(n):!t&&i?Ti(n):n}function Fte(r,e){return globalThis.Object.getOwnPropertyNames(e).reduce((t,i)=>({...t,[i]:Ote(r,e[i])}),{})}function Qh(r,e){return e.map(t=>Yn(r,t))}function Yn(r,e){return Wn(e)?xte(r,e):Gn(e)?Bte(r,e):yt(e)?Ete(r,e):Te(e)?Cte(r,e):Er(e)?kte(r,e):Vn(e)?Ste(r,e):Oc(e)?_te(r,e):Pc(e)?Tte(r,e):Uc(e)?Qte(r,e):Mt(e)?Nte(r,e):Hc(e)?Rte(r,e):sB(e)?Dte(r,e):e}function sD(r,e){return Yn(e,Yl(r))}function aD(r){return L({[Z]:"Integer",type:"integer"},r)}function Pte(r,e,t){return{[r]:Xn(Fe(r),e,lt(t))}}function Ute(r,e,t){return r.reduce((n,s)=>({...n,...Pte(s,e,t)}),{})}function Hte(r,e,t){return Ute(r.keys,e,t)}function oD(r,e,t){let i=Hte(r,e,t);return De(i)}function Mte(r){let[e,t]=[r.slice(0,1),r.slice(1)];return[e.toLowerCase(),t].join("")}function qte(r){let[e,t]=[r.slice(0,1),r.slice(1)];return[e.toUpperCase(),t].join("")}function Lte(r){return r.toUpperCase()}function Kte(r){return r.toLowerCase()}function Vte(r,e,t){let i=rd(r.pattern);if(!Mc(i))return{...r,pattern:cD(r.pattern,e)};let a=[...kh(i)].map(u=>Fe(u)),o=uD(a,e),c=Pe(o);return O0([c],t)}function cD(r,e){return typeof r=="string"?e==="Uncapitalize"?Mte(r):e==="Capitalize"?qte(r):e==="Uppercase"?Lte(r):e==="Lowercase"?Kte(r):r:r.toString()}function uD(r,e){return r.map(t=>Xn(t,e))}function Xn(r,e,t={}){return xr(r)?oD(r,e,t):Br(r)?Vte(r,e,t):Te(r)?Pe(uD(r.anyOf,e),t):vr(r)?Fe(cD(r.const,e),t):L(r,t)}function lD(r,e={}){return Xn(r,"Capitalize",e)}function dD(r,e={}){return Xn(r,"Lowercase",e)}function fD(r,e={}){return Xn(r,"Uncapitalize",e)}function hD(r,e={}){return Xn(r,"Uppercase",e)}function jte(r,e,t){let i={};for(let n of globalThis.Object.getOwnPropertyNames(r))i[n]=Co(r[n],e,lt(t));return i}function Wte(r,e,t){return jte(r.properties,e,t)}function pD(r,e,t){let i=Wte(r,e,t);return De(i)}function Gte(r,e){return r.map(t=>SB(t,e))}function Jte(r,e){return r.map(t=>SB(t,e))}function zte(r,e){let{[e]:t,...i}=r;return i}function $te(r,e){return e.reduce((t,i)=>zte(t,i),r)}function Yte(r,e,t){let i=wt(r,[zt,"$id","required","properties"]),n=$te(t,e);return Ge(n,i)}function Xte(r){let e=r.reduce((t,i)=>T0(i)?[...t,Fe(i)]:t,[]);return Pe(e)}function SB(r,e){return yt(r)?Qi(Gte(r.allOf,e)):Te(r)?Pe(Jte(r.anyOf,e)):Mt(r)?Yte(r,e,r.properties):Ge({})}function Co(r,e,t){let i=Ut(e)?Xte(e):e,n=Cr(e)?nr(e):e,s=_t(r),a=_t(e);return dt(r)?pD(r,n,t):xr(e)?AD(r,e,t):s&&a?st("Omit",[r,i],t):!s&&a?st("Omit",[r,i],t):s&&!a?st("Omit",[r,i],t):L({...SB(r,n),...t})}function Zte(r,e,t){return{[e]:Co(r,[e],lt(t))}}function eie(r,e,t){return e.reduce((i,n)=>({...i,...Zte(r,n,t)}),{})}function tie(r,e,t){return eie(r,e.keys,t)}function AD(r,e,t){let i=tie(r,e,t);return De(i)}function iie(r,e,t){let i={};for(let n of globalThis.Object.getOwnPropertyNames(r))i[n]=ko(r[n],e,lt(t));return i}function rie(r,e,t){return iie(r.properties,e,t)}function gD(r,e,t){let i=rie(r,e,t);return De(i)}function nie(r,e){return r.map(t=>_B(t,e))}function sie(r,e){return r.map(t=>_B(t,e))}function aie(r,e){let t={};for(let i of e)i in r&&(t[i]=r[i]);return t}function oie(r,e,t){let i=wt(r,[zt,"$id","required","properties"]),n=aie(t,e);return Ge(n,i)}function cie(r){let e=r.reduce((t,i)=>T0(i)?[...t,Fe(i)]:t,[]);return Pe(e)}function _B(r,e){return yt(r)?Qi(nie(r.allOf,e)):Te(r)?Pe(sie(r.anyOf,e)):Mt(r)?oie(r,e,r.properties):Ge({})}function ko(r,e,t){let i=Ut(e)?cie(e):e,n=Cr(e)?nr(e):e,s=_t(r),a=_t(e);return dt(r)?gD(r,n,t):xr(e)?mD(r,e,t):s&&a?st("Pick",[r,i],t):!s&&a?st("Pick",[r,i],t):s&&!a?st("Pick",[r,i],t):L({..._B(r,n),...t})}function uie(r,e,t){return{[e]:ko(r,[e],lt(t))}}function lie(r,e,t){return e.reduce((i,n)=>({...i,...uie(r,n,t)}),{})}function die(r,e,t){return lie(r,e.keys,t)}function mD(r,e,t){let i=die(r,e,t);return De(i)}function fie(r,e){return st("Partial",[st(r,e)])}function hie(r){return st("Partial",[Ns(r)])}function pie(r){let e={};for(let t of globalThis.Object.getOwnPropertyNames(r))e[t]=Ti(r[t]);return e}function Aie(r,e){let t=wt(r,[zt,"$id","required","properties"]),i=pie(e);return Ge(i,t)}function ID(r){return r.map(e=>yD(e))}function yD(r){return jn(r)?fie(r.target,r.parameters):_t(r)?hie(r.$ref):yt(r)?Qi(ID(r.allOf)):Te(r)?Pe(ID(r.anyOf)):Mt(r)?Aie(r,r.properties):Fc(r)||Ca(r)||Jn(r)||vr(r)||yh(r)||zn(r)||ka(r)||wh(r)||bh(r)?r:Ge({})}function fd(r,e){return dt(r)?wD(r,e):L({...yD(r),...e})}function gie(r,e){let t={};for(let i of globalThis.Object.getOwnPropertyNames(r))t[i]=fd(r[i],lt(e));return t}function mie(r,e){return gie(r.properties,e)}function wD(r,e){let t=mie(r,e);return De(t)}function Iie(r,e){return st("Required",[st(r,e)])}function yie(r){return st("Required",[Ns(r)])}function wie(r){let e={};for(let t of globalThis.Object.getOwnPropertyNames(r))e[t]=wt(r[t],[bi]);return e}function bie(r,e){let t=wt(r,[zt,"$id","required","properties"]),i=wie(e);return Ge(i,t)}function bD(r){return r.map(e=>vD(e))}function vD(r){return jn(r)?Iie(r.target,r.parameters):_t(r)?yie(r.$ref):yt(r)?Qi(bD(r.allOf)):Te(r)?Pe(bD(r.anyOf)):Mt(r)?bie(r,r.properties):Fc(r)||Ca(r)||Jn(r)||vr(r)||yh(r)||zn(r)||ka(r)||wh(r)||bh(r)?r:Ge({})}function hd(r,e){return dt(r)?xD(r,e):L({...vD(r),...e})}function vie(r,e){let t={};for(let i of globalThis.Object.getOwnPropertyNames(r))t[i]=hd(r[i],e);return t}function xie(r,e){return vie(r.properties,e)}function xD(r,e){let t=xie(r,e);return De(t)}function Bie(r,e){return e.map(t=>_t(t)?TB(r,t.$ref):kr(r,t))}function TB(r,e){return e in r?_t(r[e])?TB(r,r[e].$ref):kr(r,r[e]):Qe()}function Eie(r){return ad(r[0])}function Cie(r){return xo(r[0],r[1])}function kie(r){return od(r[0])}function Sie(r){return fd(r[0])}function _ie(r){return Co(r[0],r[1])}function Tie(r){return ko(r[0],r[1])}function Qie(r){return hd(r[0])}function Nie(r,e,t){let i=Bie(r,t);return e==="Awaited"?Eie(i):e==="Index"?Cie(i):e==="KeyOf"?kie(i):e==="Partial"?Sie(i):e==="Omit"?_ie(i):e==="Pick"?Tie(i):e==="Required"?Qie(i):Qe()}function Rie(r,e){return Zl(kr(r,e))}function Die(r,e){return ed(kr(r,e))}function Oie(r,e,t){return td(Nh(r,e),kr(r,t))}function Fie(r,e,t){return Ts(Nh(r,e),kr(r,t))}function Pie(r,e){return Qi(Nh(r,e))}function Uie(r,e){return sd(kr(r,e))}function Hie(r,e){return Ge(globalThis.Object.keys(e).reduce((t,i)=>({...t,[i]:kr(r,e[i])}),{}))}function Mie(r,e){let[t,i]=[kr(r,z0(e)),J0(e)],n=Yl(e);return n.patternProperties[i]=t,n}function qie(r,e){return _t(e)?{...TB(r,e.$ref),[zt]:e[zt]}:e}function Lie(r,e){return Zr(Nh(r,e))}function Kie(r,e){return Pe(Nh(r,e))}function Nh(r,e){return e.map(t=>kr(r,t))}function kr(r,e){return rr(e)?L(kr(r,wt(e,[bi])),e):Xl(e)?L(kr(r,wt(e,[Kn])),e):yo(e)?L(qie(r,e),e):Vn(e)?L(Rie(r,e.items),e):Oc(e)?L(Die(r,e.items),e):jn(e)?L(Nie(r,e.target,e.parameters)):Wn(e)?L(Oie(r,e.parameters,e.returns),e):Gn(e)?L(Fie(r,e.parameters,e.returns),e):yt(e)?L(Pie(r,e.allOf),e):Pc(e)?L(Uie(r,e.items),e):Mt(e)?L(Hie(r,e.properties),e):Hc(e)?L(Mie(r,e)):Er(e)?L(Lie(r,e.items||[]),e):Te(e)?L(Kie(r,e.anyOf),e):e}function Vie(r,e){return e in r?kr(r,r[e]):Qe()}function BD(r){return globalThis.Object.getOwnPropertyNames(r).reduce((e,t)=>({...e,[t]:Vie(r,t)}),{})}var QB=class{constructor(e){let t=BD(e),i=this.WithIdentifiers(t);this.$defs=i}Import(e,t){let i={...this.$defs,[e]:L(this.$defs[e],t)};return L({[Z]:"Import",$defs:i,$ref:e})}WithIdentifiers(e){return globalThis.Object.getOwnPropertyNames(e).reduce((t,i)=>({...t,[i]:{...e[i],$id:i}}),{})}};function ED(r){return new QB(r)}function CD(r,e){return L({[Z]:"Not",not:r},e)}function kD(r,e){return Gn(r)?Zr(r.parameters,e):Qe()}var jie=0;function SD(r,e={}){Ht(e.$id)&&(e.$id=`T${jie++}`);let t=Yl(r({[Z]:"This",$ref:`${e.$id}`}));return t.$id=e.$id,L({[Yr]:"Recursive",...t},e)}function _D(r,e){let t=et(r)?new globalThis.RegExp(r):r;return L({[Z]:"RegExp",type:"RegExp",source:t.source,flags:t.flags},e)}function Wie(r){return yt(r)?r.allOf:Te(r)?r.anyOf:Er(r)?r.items??[]:[]}function TD(r){return Wie(r)}function QD(r,e){return Gn(r)?L(r.returns,e):Qe(e)}var NB=class{constructor(e){this.schema=e}Decode(e){return new RB(this.schema,e)}},RB=class{constructor(e,t){this.schema=e,this.decode=t}EncodeTransform(e,t){let s={Encode:a=>t[zt].Encode(e(a)),Decode:a=>this.decode(t[zt].Decode(a))};return{...t,[zt]:s}}EncodeSchema(e,t){let i={Decode:this.decode,Encode:e};return{...t,[zt]:i}}Encode(e){return yo(this.schema)?this.EncodeTransform(e,this.schema):this.EncodeSchema(e,this.schema)}};function ND(r){return new NB(r)}function RD(r={}){return L({[Z]:r[Z]??"Unsafe"},r)}function DD(r){return L({[Z]:"Void",type:"void"},r)}var DB={};ph(DB,{Any:()=>vo,Argument:()=>g4,Array:()=>Zl,AsyncIterator:()=>ed,Awaited:()=>ad,BigInt:()=>nd,Boolean:()=>D0,Capitalize:()=>lD,Composite:()=>F4,Const:()=>P4,Constructor:()=>td,ConstructorParameters:()=>U4,Date:()=>U0,Enum:()=>H4,Exclude:()=>ld,Extends:()=>ud,Extract:()=>dd,Function:()=>Ts,Index:()=>xo,InstanceType:()=>rD,Instantiate:()=>sD,Integer:()=>aD,Intersect:()=>Qi,Iterator:()=>sd,KeyOf:()=>od,Literal:()=>Fe,Lowercase:()=>dD,Mapped:()=>T4,Module:()=>ED,Never:()=>Qe,Not:()=>CD,Null:()=>H0,Number:()=>Xr,Object:()=>Ge,Omit:()=>Co,Optional:()=>Ti,Parameters:()=>kD,Partial:()=>fd,Pick:()=>ko,Promise:()=>P0,Readonly:()=>sr,ReadonlyOptional:()=>W0,Record:()=>G0,Recursive:()=>SD,Ref:()=>Ns,RegExp:()=>_D,Required:()=>hd,Rest:()=>TD,ReturnType:()=>QD,String:()=>$n,Symbol:()=>M0,TemplateLiteral:()=>O0,Transform:()=>ND,Tuple:()=>Zr,Uint8Array:()=>L0,Uncapitalize:()=>fD,Undefined:()=>q0,Union:()=>Pe,Unknown:()=>Bo,Unsafe:()=>RD,Uppercase:()=>hD,Void:()=>DD});var So=DB;var oh=IR(L3(),1);import*as j2e from"node:path";import*as Sx from"node:fs";import W2e from"debug";ZN();var Yz=IR(L3(),1);ZN();import{DatabaseSync as bnt}from"node:sqlite";var Ent=W2e("openclaw:plugin:core:wallet");var wa=G2e("openclaw:plugin:arcade");var qnt={id:"openclaw-arcade-plugin",name:"BSV Arcade Broadcaster",description:"Submit and track BSV transactions with full lifecycle visibility",register(r){let e="0.2.55",t=r.pluginConfig||{},i=t.network||"mainnet",n=i==="testnet"?"https://testnet.arc.gorillapool.io":"https://arc.gorillapool.io",s=(t.arcadeUrl||n).replace(/\/$/,"");r.logger.info(`[arcade] Initializing Arcade Plugin v${e}`),r.registerService({id:"arcade-setup",start:async()=>{r.logger?.info?.("[arcade] Broadcaster service ready.")},stop:()=>{}}),r.registerTool({name:"arcade",description:"Submit and track BSV transactions with full lifecycle visibility",parameters:So.Object({action:So.String({enum:["broadcast","status","proof","config"],description:"Action to perform"}),txhex:So.Optional(So.String({description:"Hex-encoded raw transaction to broadcast"})),txid:So.Optional(So.String({description:"Transaction ID to track or fetch proof for"}))}),async execute(a,o){wa("Executing tool action: %s with params: %O",o.action,o);try{let{action:c,txhex:u,txid:l}=o;switch(c){case"broadcast":if(!u)throw new Error("txhex is required for broadcast");wa("Broadcasting transaction: %s...",u.slice(0,64));let d=await fetch(`${s}/v1/tx`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({rawTx:u})}),f=await d.json();if(!d.ok)throw wa("Broadcast failed: %O",f),new Error(`Broadcast failed: ${JSON.stringify(f)}`);return wa("Broadcast successful, TXID: %s",f.txid),{content:[{type:"text",text:`Transaction broadcasted! TXID: ${f.txid}
|
|
1376
1376
|
Status: ${f.txStatus}`}]};case"status":if(!l)throw new Error("txid is required for status check");wa("Checking status for TXID: %s",l);let h=await fetch(`${s}/v1/tx/${l}`),p=await h.json();if(!h.ok)throw wa("Status check failed: %O",p),new Error(`Status check failed: ${JSON.stringify(p)}`);return wa("Status: %s, Block: %s",p.txStatus,p.blockHeight),{content:[{type:"text",text:`Transaction ${l}:
|
|
1377
1377
|
Status: ${p.txStatus}
|
|
1378
1378
|
Block: ${p.blockHeight||"Pending"}`}]};case"proof":if(!l)throw new Error("txid is required for proof retrieval");wa("Fetching proof for TXID: %s",l);let A=await fetch(`${s}/v1/tx/${l}/proof`);if(!A.ok)throw wa("Proof retrieval failed: %d",A.status),new Error(`Proof retrieval failed: ${A.status}`);let g=await A.arrayBuffer(),m=Buffer.from(g).toString("base64");return wa("Proof retrieved, length: %d bytes",g.byteLength),{content:[{type:"text",text:`Merkle Proof (Base64): ${m}`}]};case"config":return{content:[{type:"text",text:`Arcade Configuration:
|