diff --git a/README.md b/README.md index d0a560e..4f59597 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ 3. Paste it in the "Plugin Binding" section, and click **Request**. 4. Refresh your app's **Settings** page and wait for a few seconds. 5. Approve the Pending Request. -6. Back in the **Options** popup, click **'Confirm Manually'**. +6. Back in the **Options** popup, click **'Confirm'**. 7. Close and Restart Obsidian. ## How to Use diff --git a/main.js b/main.js index 484fdc1..f61ce90 100644 --- a/main.js +++ b/main.js @@ -3,7 +3,7 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD if you want to view the source, please visit the github repository of this plugin */ -"use strict";var di=Object.defineProperty;var uf=Object.getOwnPropertyDescriptor;var ff=Object.getOwnPropertyNames;var df=Object.prototype.hasOwnProperty;var Ca=e=>{throw TypeError(e)};var Oa=(e,t)=>{for(var r in t)di(e,r,{get:t[r],enumerable:!0})},lf=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of ff(t))!df.call(e,s)&&s!==r&&di(e,s,{get:()=>t[s],enumerable:!(n=uf(t,s))||n.enumerable});return e};var hf=e=>lf(di({},"__esModule",{value:!0}),e);var li=(e,t,r)=>t.has(e)||Ca("Cannot "+r);var x=(e,t,r)=>(li(e,t,"read from private field"),r?r.call(e):t.get(e)),F=(e,t,r)=>t.has(e)?Ca("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),P=(e,t,r,n)=>(li(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),Y=(e,t,r)=>(li(e,t,"access private method"),r);var Ra=(e,t,r,n)=>({set _(s){P(e,t,s,r)},get _(){return x(e,t,n)}});var rh={};Oa(rh,{default:()=>fi});module.exports=hf(rh);var Ht=require("obsidian");var Q=require("obsidian"),Na={canisterId:"4p5ty-yyaaa-aaaam-qfana-cai",host:"https://icp-api.io",userPrincipal:"",bindingData:"",principal:null},Ps=class extends Q.PluginSettingTab{constructor(t,r){super(t,r),this.plugin=r}display(){let{containerEl:t}=this;t.empty(),new Q.Setting(t).setHeading().setName("Settings"),new Q.Setting(t).setName("Canister ID").setDesc("The canister ID of the hyvmind backend").addText(u=>u.setPlaceholder("Enter canister ID").setValue(this.plugin.settings.canisterId).onChange(d=>{this.plugin.settings.canisterId=d.trim(),this.plugin.saveSettings()})),new Q.Setting(t).setName("Host").setDesc("Network host").addText(u=>u.setPlaceholder("https://icp-api.io").setValue(this.plugin.settings.host).onChange(d=>{this.plugin.settings.host=d.trim(),this.plugin.saveSettings()})),new Q.Setting(t).setHeading().setName("Plugin binding"),t.createDiv({cls:"hyvmind-auth-desc"}).createEl("p",{text:"Link this plugin to your hyvmind account so uploads appear in your notes."}),new Q.Setting(t).setName("Your hyvmind principal").setDesc("Copy this from hyvmind.app settings \u2192 plugin binding").addText(u=>u.setPlaceholder("Your principal ID").setValue(this.plugin.settings.userPrincipal).onChange(d=>{this.plugin.settings.userPrincipal=d.trim(),this.plugin.saveSettings()})),new Q.Setting(t).setName("Plugin principal").setDesc("Your plugin's identity \u2014 share this when binding").addText(u=>u.setValue(this.plugin.binding.getPrincipalText()||"").setDisabled(!0));let n=t.createDiv({cls:"hyvmind-auth-buttons"}),s=new Q.ButtonComponent(n);s.setButtonText("Request binding"),s.setCta(),s.onClick(()=>{this.handleRequestBinding()}),new Q.Setting(t).setName("Binding status").setDesc("Current binding state"),this.bindingStatusEl=t.createDiv({cls:"hyvmind-token-status"}),this.updateBindingStatus();let o=new Q.ButtonComponent(n);o.setButtonText("Clear local binding"),o.setWarning(),o.onClick(()=>{this.plugin.binding.clearBinding(),this.plugin.settings.principal=null,this.plugin.saveSettings(),this.updateBindingStatus(),new Q.Notice("Local binding cleared (identity preserved)")});let i=new Q.ButtonComponent(n);i.setButtonText("Check stale bindings"),i.onClick(()=>{this.handleCheckStaleBindings()}),this.addStaleBindingsUI(t),this.addPrivacySection(t),new Q.Setting(t).setName("Manual binding").setDesc("If auto-check fails, paste your principal here and confirm").addText(u=>u.setPlaceholder("Your principal ID").setValue(this.plugin.settings.userPrincipal).onChange(d=>{this.plugin.settings.userPrincipal=d.trim(),this.plugin.saveSettings()}));let a=new Q.ButtonComponent(n);a.setButtonText("Confirm binding manually"),a.onClick(()=>{let u=this.plugin.settings.userPrincipal;if(!u){new Q.Notice("Enter your hyvmind principal first");return}this.plugin.binding.persistBoundUser(u),this.plugin.settings.principal=u,this.plugin.saveSettings(),this.updateBindingStatus(),new Q.Notice("Binding confirmed manually")}),new Q.Setting(t).setHeading().setName("Environment presets");let c=t.createDiv({cls:"hyvmind-preset-container"});new Q.ButtonComponent(c).setButtonText("Use mainnet").onClick(()=>{this.plugin.settings.host="https://icp-api.io",this.plugin.saveSettings(),this.display()}),new Q.ButtonComponent(c).setButtonText("Use local").onClick(()=>{this.plugin.settings.host="http://localhost:8000",this.plugin.saveSettings(),this.display()})}async handleRequestBinding(){let t=this.plugin.settings.userPrincipal;if(!t){new Q.Notice("Please enter your hyvmind principal first");return}let r=this.plugin.binding.getIdentity();if(!r){new Q.Notice("Plugin identity not initialized");return}try{await this.plugin.agent.requestPluginBinding(r.getPrincipal().toText(),t),new Q.Notice("Binding request sent! Approve it in hyvmind.app settings")}catch(n){new Q.Notice(`Failed to request binding: ${n instanceof Error?n.message:String(n)}`)}}addPrivacySection(t){t.createEl("hr"),new Q.Setting(t).setName("Privacy notice").setHeading(),t.createEl("p",{text:"Folder contents are sent to the hyvmind backend",cls:"hyvmind-privacy-notice"})}addStaleBindingsUI(t){new Q.Setting(t).setName("Stale plugin keys").setDesc("Old plugin keys still bound to your account on the backend"),this.staleBindingsEl=t.createDiv({cls:"hyvmind-token-status"}),this.staleBindingsEl.setText("Click 'check stale bindings' above")}async handleCheckStaleBindings(){try{let t=await this.plugin.agent.getBoundPluginKeys(),r=this.plugin.binding.getPrincipalText(),n=r?t.filter(s=>s!==r):t;if(this.staleBindingsEl.empty(),n.length===0){this.staleBindingsEl.createSpan({cls:"hyvmind-status hyvmind-status-valid"}).setText("No stale bindings found");return}for(let s of n){let o=this.staleBindingsEl.createDiv({cls:"hyvmind-stale-key-row"});o.createSpan({text:s.slice(0,16)+"...",cls:"hyvmind-stale-key-text",attr:{title:s}});let i=new Q.ButtonComponent(o);i.setButtonText("Revoke"),i.setWarning(),i.onClick(()=>{this.handleRevokeBinding(s,o)})}}catch(t){new Q.Notice(`Failed to check stale bindings: ${t instanceof Error?t.message:String(t)}`)}}async handleRevokeBinding(t,r){try{await this.plugin.agent.revokePluginBinding(t),r.remove(),new Q.Notice("Stale binding revoked")}catch(n){new Q.Notice(`Failed to revoke binding: ${n instanceof Error?n.message:String(n)}`)}}updateBindingStatus(){this.bindingStatusEl.empty();let t=this.bindingStatusEl.createSpan({cls:"hyvmind-status"});if(this.plugin.binding.isBound()){t.addClass("hyvmind-status-valid");let r=this.plugin.binding.getBoundUser();t.setText(`Bound to ${r?r.slice(0,8)+"...":"user"}`)}else t.addClass("hyvmind-status-none"),t.setText("Not bound")}};var Ua;(function(e){e[e.SysFatal=1]="SysFatal",e[e.SysTransient=2]="SysTransient",e[e.DestinationInvalid=3]="DestinationInvalid",e[e.CanisterReject=4]="CanisterReject",e[e.CanisterError=5]="CanisterError"})(Ua||(Ua={}));var Qe;(function(e){e.Replied="replied",e.Rejected="rejected"})(Qe||(Qe={}));function Pa(e){return e!=null&&"reject_code"in e}function Da(e){return e!=null&&"certificate"in e}var Ds="abcdefghijklmnopqrstuvwxyz234567",en=Object.create(null);for(let e=0;e>-t:r=o<3?(t-=8,1):(t<4&&(n+=Ds[r>>3],t+=5),0)}for(let o=0;o>3]:"")}function ka(e){let t=0,r=0,n=new Uint8Array(e.length*4/3|0),s=0;function o(i){let a=en[i.toLowerCase()];if(a===void 0)throw new Error(`Invalid character: ${JSON.stringify(i)}`);a<<=3,r|=a>>>t,t+=5,t>=8&&(n[s++]=r,t-=8,t>0?r=a<<5-t&255:r=0)}for(let i of e)o(i);return n.slice(0,s)}var pf=new Uint32Array([0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117]);function Ma(e){let t=-1;for(let r=0;r>>8}return(t^-1)>>>0}var Sr=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;function Be(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function hi(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function dt(e,...t){if(!Be(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function pi(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function La(e,t){dt(e);let r=t.outputLen;if(e.length>>t}var $a=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",mf=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function V(e){if(dt(e),$a)return e.toHex();let t="";for(let r=0;r=Ne._0&&e<=Ne._9)return e-Ne._0;if(e>=Ne.A&&e<=Ne.F)return e-(Ne.A-10);if(e>=Ne.a&&e<=Ne.f)return e-(Ne.a-10)}function Bt(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);if($a)return Uint8Array.fromHex(e);let t=e.length,r=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);let n=new Uint8Array(r);for(let s=0,o=0;se().update(mi(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function rn(e=32){if(Sr&&typeof Sr.getRandomValues=="function")return Sr.getRandomValues(new Uint8Array(e));if(Sr&&typeof Sr.randomBytes=="function")return Uint8Array.from(Sr.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}function yf(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);let s=BigInt(32),o=BigInt(4294967295),i=Number(r>>s&o),a=Number(r&o),c=n?4:0,u=n?0:4;e.setUint32(t+c,i,n),e.setUint32(t+u,a,n)}function Va(e,t,r){return e&t^~e&r}function ja(e,t,r){return e&t^e&r^t&r}var Dn=class extends qs{constructor(t,r,n,s){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=t,this.outputLen=r,this.padOffset=n,this.isLE=s,this.buffer=new Uint8Array(t),this.view=ks(this.buffer)}update(t){pi(this),t=mi(t),dt(t);let{view:r,buffer:n,blockLen:s}=this,o=t.length;for(let i=0;is-i&&(this.process(n,0),i=0);for(let l=i;ld.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l>Ha&Fs)}:{h:Number(e>>Ha&Fs)|0,l:Number(e&Fs)|0}}function Ka(e,t=!1){let r=e.length,n=new Uint32Array(r),s=new Uint32Array(r);for(let o=0;oe>>>r,bi=(e,t,r)=>e<<32-r|t>>>r,Ar=(e,t,r)=>e>>>r|t<<32-r,Cr=(e,t,r)=>e<<32-r|t>>>r,qn=(e,t,r)=>e<<64-r|t>>>r-32,kn=(e,t,r)=>e>>>r-32|t<<64-r;function Te(e,t,r,n){let s=(t>>>0)+(n>>>0);return{h:e+r+(s/2**32|0)|0,l:s|0}}var Ga=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),Za=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,Ya=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),za=(e,t,r,n,s)=>t+r+n+s+(e/2**32|0)|0,Xa=(e,t,r,n,s)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(s>>>0),Wa=(e,t,r,n,s,o)=>t+r+n+s+o+(e/2**32|0)|0;var xf=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]),tr=new Uint32Array(64),Ls=class extends Dn{constructor(t=32){super(64,t,8,!1),this.A=Ue[0]|0,this.B=Ue[1]|0,this.C=Ue[2]|0,this.D=Ue[3]|0,this.E=Ue[4]|0,this.F=Ue[5]|0,this.G=Ue[6]|0,this.H=Ue[7]|0}get(){let{A:t,B:r,C:n,D:s,E:o,F:i,G:a,H:c}=this;return[t,r,n,s,o,i,a,c]}set(t,r,n,s,o,i,a,c){this.A=t|0,this.B=r|0,this.C=n|0,this.D=s|0,this.E=o|0,this.F=i|0,this.G=a|0,this.H=c|0}process(t,r){for(let l=0;l<16;l++,r+=4)tr[l]=t.getUint32(r,!1);for(let l=16;l<64;l++){let f=tr[l-15],h=tr[l-2],p=ae(f,7)^ae(f,18)^f>>>3,m=ae(h,17)^ae(h,19)^h>>>10;tr[l]=m+tr[l-7]+p+tr[l-16]|0}let{A:n,B:s,C:o,D:i,E:a,F:c,G:u,H:d}=this;for(let l=0;l<64;l++){let f=ae(a,6)^ae(a,11)^ae(a,25),h=d+f+Va(a,c,u)+xf[l]+tr[l]|0,m=(ae(n,2)^ae(n,13)^ae(n,22))+ja(n,s,o)|0;d=u,u=c,c=a,a=i+h|0,i=o,o=s,s=n,n=h+m|0}n=n+this.A|0,s=s+this.B|0,o=o+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,d=d+this.H|0,this.set(n,s,o,i,a,c,u,d)}roundClean(){Ir(tr)}destroy(){this.set(0,0,0,0,0,0,0,0),Ir(this.buffer)}},gi=class extends Ls{constructor(){super(28),this.A=Pe[0]|0,this.B=Pe[1]|0,this.C=Pe[2]|0,this.D=Pe[3]|0,this.E=Pe[4]|0,this.F=Pe[5]|0,this.G=Pe[6]|0,this.H=Pe[7]|0}},Ja=Ka(["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(e=>BigInt(e))),wf=Ja[0],Ef=Ja[1],er=new Uint32Array(80),rr=new Uint32Array(80),xi=class extends Dn{constructor(t=64){super(128,t,16,!1),this.Ah=_t[0]|0,this.Al=_t[1]|0,this.Bh=_t[2]|0,this.Bl=_t[3]|0,this.Ch=_t[4]|0,this.Cl=_t[5]|0,this.Dh=_t[6]|0,this.Dl=_t[7]|0,this.Eh=_t[8]|0,this.El=_t[9]|0,this.Fh=_t[10]|0,this.Fl=_t[11]|0,this.Gh=_t[12]|0,this.Gl=_t[13]|0,this.Hh=_t[14]|0,this.Hl=_t[15]|0}get(){let{Ah:t,Al:r,Bh:n,Bl:s,Ch:o,Cl:i,Dh:a,Dl:c,Eh:u,El:d,Fh:l,Fl:f,Gh:h,Gl:p,Hh:m,Hl:g}=this;return[t,r,n,s,o,i,a,c,u,d,l,f,h,p,m,g]}set(t,r,n,s,o,i,a,c,u,d,l,f,h,p,m,g){this.Ah=t|0,this.Al=r|0,this.Bh=n|0,this.Bl=s|0,this.Ch=o|0,this.Cl=i|0,this.Dh=a|0,this.Dl=c|0,this.Eh=u|0,this.El=d|0,this.Fh=l|0,this.Fl=f|0,this.Gh=h|0,this.Gl=p|0,this.Hh=m|0,this.Hl=g|0}process(t,r){for(let b=0;b<16;b++,r+=4)er[b]=t.getUint32(r),rr[b]=t.getUint32(r+=4);for(let b=16;b<80;b++){let v=er[b-15]|0,T=rr[b-15]|0,I=Ar(v,T,1)^Ar(v,T,8)^yi(v,T,7),S=Cr(v,T,1)^Cr(v,T,8)^bi(v,T,7),C=er[b-2]|0,_=rr[b-2]|0,A=Ar(C,_,19)^qn(C,_,61)^yi(C,_,6),D=Cr(C,_,19)^kn(C,_,61)^bi(C,_,6),R=Ya(S,D,rr[b-7],rr[b-16]),E=za(R,I,A,er[b-7],er[b-16]);er[b]=E|0,rr[b]=R|0}let{Ah:n,Al:s,Bh:o,Bl:i,Ch:a,Cl:c,Dh:u,Dl:d,Eh:l,El:f,Fh:h,Fl:p,Gh:m,Gl:g,Hh:y,Hl:w}=this;for(let b=0;b<80;b++){let v=Ar(l,f,14)^Ar(l,f,18)^qn(l,f,41),T=Cr(l,f,14)^Cr(l,f,18)^kn(l,f,41),I=l&h^~l&m,S=f&p^~f&g,C=Xa(w,T,S,Ef[b],rr[b]),_=Wa(C,y,v,I,wf[b],er[b]),A=C|0,D=Ar(n,s,28)^qn(n,s,34)^qn(n,s,39),R=Cr(n,s,28)^kn(n,s,34)^kn(n,s,39),E=n&o^n&a^o&a,B=s&i^s&c^i&c;y=m|0,w=g|0,m=h|0,g=p|0,h=l|0,p=f|0,{h:l,l:f}=Te(u|0,d|0,_|0,A|0),u=a|0,d=c|0,a=o|0,c=i|0,o=n|0,i=s|0;let U=Ga(A,R,B);n=Za(U,_,D,E),s=U|0}({h:n,l:s}=Te(this.Ah|0,this.Al|0,n|0,s|0)),{h:o,l:i}=Te(this.Bh|0,this.Bl|0,o|0,i|0),{h:a,l:c}=Te(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l:d}=Te(this.Dh|0,this.Dl|0,u|0,d|0),{h:l,l:f}=Te(this.Eh|0,this.El|0,l|0,f|0),{h,l:p}=Te(this.Fh|0,this.Fl|0,h|0,p|0),{h:m,l:g}=Te(this.Gh|0,this.Gl|0,m|0,g|0),{h:y,l:w}=Te(this.Hh|0,this.Hl|0,y|0,w|0),this.set(n,s,o,i,a,c,u,d,l,f,h,p,m,g,y,w)}roundClean(){Ir(er,rr)}destroy(){Ir(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}};var Tt=Ms(()=>new Ls),Qa=Ms(()=>new gi),tc=Ms(()=>new xi);var $s="__principal__",_f=2,ec=4,vf="aaaaa-aa",L=class e{static anonymous(){return new this(new Uint8Array([ec]))}static managementCanister(){return this.fromText(vf)}static selfAuthenticating(t){let r=Qa(t);return new this(new Uint8Array([...r,_f]))}static from(t){if(typeof t=="string")return e.fromText(t);if(Object.getPrototypeOf(t)===Uint8Array.prototype)return new e(t);if(e.isPrincipal(t))return new e(t._arr);throw new Error(`Impossible to convert ${JSON.stringify(t)} to Principal.`)}static fromHex(t){return new this(Bt(t))}static fromText(t){let r=t;if(t.includes($s)){let i=JSON.parse(t);$s in i&&(r=i[$s])}let n=r.toLowerCase().replace(/-/g,""),s=ka(n);s=s.slice(4,s.length);let o=new this(s);if(o.toText()!==r)throw new Error(`Principal "${o.toText()}" does not have a valid checksum (original value "${r}" may not be a valid Principal ID).`);return o}static fromUint8Array(t){return new this(t)}static isPrincipal(t){return t instanceof e||typeof t=="object"&&t!==null&&"_isPrincipal"in t&&t._isPrincipal===!0&&"_arr"in t&&t._arr instanceof Uint8Array}constructor(t){this._arr=t,this._isPrincipal=!0}isAnonymous(){return this._arr.byteLength===1&&this._arr[0]===ec}toUint8Array(){return this._arr}toHex(){return V(this._arr).toUpperCase()}toText(){let t=new ArrayBuffer(4);new DataView(t).setUint32(0,Ma(this._arr));let n=new Uint8Array(t),s=new Uint8Array([...n,...this._arr]),i=qa(s).match(/.{1,5}/g);if(!i)throw new Error;return i.join("-")}toString(){return this.toText()}toJSON(){return{[$s]:this.toText()}}compareTo(t){for(let r=0;rt._arr[r])return"gt"}return this._arr.lengtht._arr.length?"gt":"eq"}ltEq(t){let r=this.compareTo(t);return r=="lt"||r=="eq"}gtEq(t){let r=this.compareTo(t);return r=="gt"||r=="eq"}};var De;(function(e){e.Trust="Trust",e.Protocol="Protocol",e.Reject="Reject",e.Transport="Transport",e.External="External",e.Limit="Limit",e.Input="Input",e.Unknown="Unknown"})(De||(De={}));var Vs;(function(e){e.Normal="normal",e.Verbose="verbose"})(Vs||(Vs={}));var Bf=new Set(["arg","certificate","nonce"]);function wi(e){return(t,r)=>r instanceof Uint8Array?e===Vs.Normal&&Bf.has(t)?`<${r.length} bytes, set ErrorCode.verbosity = ErrorVerbosity.Verbose to display>`:`hex(${r.length}):${V(r)}`:r}var lo=class lo{constructor(t=!1){this.isCertified=t}toString(){let t=this.toErrorMessage();return this.requestContext&&(t+=` +"use strict";var di=Object.defineProperty;var uf=Object.getOwnPropertyDescriptor;var ff=Object.getOwnPropertyNames;var df=Object.prototype.hasOwnProperty;var Ca=e=>{throw TypeError(e)};var Oa=(e,t)=>{for(var r in t)di(e,r,{get:t[r],enumerable:!0})},lf=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of ff(t))!df.call(e,s)&&s!==r&&di(e,s,{get:()=>t[s],enumerable:!(n=uf(t,s))||n.enumerable});return e};var hf=e=>lf(di({},"__esModule",{value:!0}),e);var li=(e,t,r)=>t.has(e)||Ca("Cannot "+r);var x=(e,t,r)=>(li(e,t,"read from private field"),r?r.call(e):t.get(e)),k=(e,t,r)=>t.has(e)?Ca("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),P=(e,t,r,n)=>(li(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),Y=(e,t,r)=>(li(e,t,"access private method"),r);var Ra=(e,t,r,n)=>({set _(s){P(e,t,s,r)},get _(){return x(e,t,n)}});var rh={};Oa(rh,{default:()=>fi});module.exports=hf(rh);var Ht=require("obsidian");var ot=require("obsidian"),Na={canisterId:"4p5ty-yyaaa-aaaam-qfana-cai",host:"https://icp-api.io",userPrincipal:"",bindingData:"",principal:null},Ps=class extends ot.PluginSettingTab{constructor(t,r){super(t,r),this.plugin=r}display(){let{containerEl:t}=this;t.empty(),new ot.Setting(t).setHeading().setName("Settings"),new ot.Setting(t).setName("Canister ID").setDesc("The canister ID of the hyvmind backend").addText(a=>a.setPlaceholder("Enter canister ID").setValue(this.plugin.settings.canisterId).onChange(c=>{this.plugin.settings.canisterId=c.trim(),this.plugin.saveSettings()})),new ot.Setting(t).setName("Host").setDesc("Network host").addText(a=>a.setPlaceholder("https://icp-api.io").setValue(this.plugin.settings.host).onChange(c=>{this.plugin.settings.host=c.trim(),this.plugin.saveSettings()})),new ot.Setting(t).setHeading().setName("Plugin binding"),t.createDiv({cls:"hyvmind-auth-desc"}).createEl("p",{text:"Link this plugin to your hyvmind account so uploads appear in your notes."}),new ot.Setting(t).setName("Your hyvmind principal").setDesc("Copy this from hyvmind.app settings \u2192 plugin binding").addText(a=>a.setPlaceholder("Your principal ID").setValue(this.plugin.settings.userPrincipal).onChange(c=>{this.plugin.settings.userPrincipal=c.trim(),this.plugin.saveSettings()})),new ot.Setting(t).setName("Plugin principal").setDesc("Your plugin's identity \u2014 share this when binding").addText(a=>a.setValue(this.plugin.binding.getPrincipalText()||"").setDisabled(!0));let n=t.createDiv({cls:"hyvmind-auth-buttons"}),s=new ot.ButtonComponent(n);s.setButtonText("Request"),s.setCta(),s.onClick(()=>{this.handleRequestBinding()}),new ot.Setting(t).setName("Binding status").setDesc("Current binding state"),this.bindingStatusEl=t.createDiv({cls:"hyvmind-token-status"}),this.updateBindingStatus();let o=new ot.ButtonComponent(n);o.setButtonText("Clear"),o.setWarning(),o.onClick(()=>{this.plugin.binding.clearBinding(),this.plugin.settings.principal=null,this.plugin.saveSettings(),this.updateBindingStatus(),new ot.Notice("Local binding cleared (identity preserved)")}),this.addPrivacySection(t),new ot.Setting(t).setName("Manual binding").setDesc("If auto-check fails, paste your principal here and confirm").addText(a=>a.setPlaceholder("Your principal ID").setValue(this.plugin.settings.userPrincipal).onChange(c=>{this.plugin.settings.userPrincipal=c.trim(),this.plugin.saveSettings()}));let i=new ot.ButtonComponent(n);i.setButtonText("Confirm"),i.onClick(()=>{let a=this.plugin.settings.userPrincipal;if(!a){new ot.Notice("Enter your hyvmind principal first");return}this.plugin.binding.persistBoundUser(a),this.plugin.settings.principal=a,this.plugin.saveSettings(),this.updateBindingStatus(),new ot.Notice("Binding confirmed manually")})}async handleRequestBinding(){let t=this.plugin.settings.userPrincipal;if(!t){new ot.Notice("Please enter your hyvmind principal first");return}let r=this.plugin.binding.getIdentity();if(!r){new ot.Notice("Plugin identity not initialized");return}try{await this.plugin.agent.requestPluginBinding(r.getPrincipal().toText(),t),new ot.Notice("Binding request sent! Approve it in hyvmind.app settings")}catch(n){new ot.Notice(`Failed to request binding: ${n instanceof Error?n.message:String(n)}`)}}addPrivacySection(t){t.createEl("hr"),new ot.Setting(t).setName("Privacy notice").setHeading(),t.createEl("p",{text:"Folder contents are sent to Hyvmind's frontend canister.",cls:"hyvmind-privacy-notice"})}updateBindingStatus(){this.bindingStatusEl.empty();let t=this.bindingStatusEl.createSpan({cls:"hyvmind-status"});if(this.plugin.binding.isBound()){t.addClass("hyvmind-status-valid");let r=this.plugin.binding.getBoundUser();t.setText(`Bound to ${r?r.slice(0,8)+"...":"user"}`)}else t.addClass("hyvmind-status-none"),t.setText("Not bound")}};var Ua;(function(e){e[e.SysFatal=1]="SysFatal",e[e.SysTransient=2]="SysTransient",e[e.DestinationInvalid=3]="DestinationInvalid",e[e.CanisterReject=4]="CanisterReject",e[e.CanisterError=5]="CanisterError"})(Ua||(Ua={}));var Qe;(function(e){e.Replied="replied",e.Rejected="rejected"})(Qe||(Qe={}));function Pa(e){return e!=null&&"reject_code"in e}function Da(e){return e!=null&&"certificate"in e}var Ds="abcdefghijklmnopqrstuvwxyz234567",en=Object.create(null);for(let e=0;e>-t:r=o<3?(t-=8,1):(t<4&&(n+=Ds[r>>3],t+=5),0)}for(let o=0;o>3]:"")}function Ma(e){let t=0,r=0,n=new Uint8Array(e.length*4/3|0),s=0;function o(i){let a=en[i.toLowerCase()];if(a===void 0)throw new Error(`Invalid character: ${JSON.stringify(i)}`);a<<=3,r|=a>>>t,t+=5,t>=8&&(n[s++]=r,t-=8,t>0?r=a<<5-t&255:r=0)}for(let i of e)o(i);return n.slice(0,s)}var pf=new Uint32Array([0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117]);function Fa(e){let t=-1;for(let r=0;r>>8}return(t^-1)>>>0}var Sr=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;function Be(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function hi(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function dt(e,...t){if(!Be(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function pi(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function La(e,t){dt(e);let r=t.outputLen;if(e.length>>t}var $a=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",mf=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function V(e){if(dt(e),$a)return e.toHex();let t="";for(let r=0;r=Ne._0&&e<=Ne._9)return e-Ne._0;if(e>=Ne.A&&e<=Ne.F)return e-(Ne.A-10);if(e>=Ne.a&&e<=Ne.f)return e-(Ne.a-10)}function Bt(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);if($a)return Uint8Array.fromHex(e);let t=e.length,r=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);let n=new Uint8Array(r);for(let s=0,o=0;se().update(mi(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function rn(e=32){if(Sr&&typeof Sr.getRandomValues=="function")return Sr.getRandomValues(new Uint8Array(e));if(Sr&&typeof Sr.randomBytes=="function")return Uint8Array.from(Sr.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}function yf(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);let s=BigInt(32),o=BigInt(4294967295),i=Number(r>>s&o),a=Number(r&o),c=n?4:0,f=n?0:4;e.setUint32(t+c,i,n),e.setUint32(t+f,a,n)}function Va(e,t,r){return e&t^~e&r}function ja(e,t,r){return e&t^e&r^t&r}var Dn=class extends qs{constructor(t,r,n,s){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=t,this.outputLen=r,this.padOffset=n,this.isLE=s,this.buffer=new Uint8Array(t),this.view=Ms(this.buffer)}update(t){pi(this),t=mi(t),dt(t);let{view:r,buffer:n,blockLen:s}=this,o=t.length;for(let i=0;is-i&&(this.process(n,0),i=0);for(let d=i;dl.length)throw new Error("_sha2: outputLen bigger than state");for(let d=0;d>Ha&ks)}:{h:Number(e>>Ha&ks)|0,l:Number(e&ks)|0}}function Ka(e,t=!1){let r=e.length,n=new Uint32Array(r),s=new Uint32Array(r);for(let o=0;oe>>>r,bi=(e,t,r)=>e<<32-r|t>>>r,Ar=(e,t,r)=>e>>>r|t<<32-r,Cr=(e,t,r)=>e<<32-r|t>>>r,qn=(e,t,r)=>e<<64-r|t>>>r-32,Mn=(e,t,r)=>e>>>r-32|t<<64-r;function Te(e,t,r,n){let s=(t>>>0)+(n>>>0);return{h:e+r+(s/2**32|0)|0,l:s|0}}var Ga=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),Za=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,Ya=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),za=(e,t,r,n,s)=>t+r+n+s+(e/2**32|0)|0,Xa=(e,t,r,n,s)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(s>>>0),Wa=(e,t,r,n,s,o)=>t+r+n+s+o+(e/2**32|0)|0;var xf=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]),tr=new Uint32Array(64),Ls=class extends Dn{constructor(t=32){super(64,t,8,!1),this.A=Ue[0]|0,this.B=Ue[1]|0,this.C=Ue[2]|0,this.D=Ue[3]|0,this.E=Ue[4]|0,this.F=Ue[5]|0,this.G=Ue[6]|0,this.H=Ue[7]|0}get(){let{A:t,B:r,C:n,D:s,E:o,F:i,G:a,H:c}=this;return[t,r,n,s,o,i,a,c]}set(t,r,n,s,o,i,a,c){this.A=t|0,this.B=r|0,this.C=n|0,this.D=s|0,this.E=o|0,this.F=i|0,this.G=a|0,this.H=c|0}process(t,r){for(let d=0;d<16;d++,r+=4)tr[d]=t.getUint32(r,!1);for(let d=16;d<64;d++){let u=tr[d-15],h=tr[d-2],p=ae(u,7)^ae(u,18)^u>>>3,m=ae(h,17)^ae(h,19)^h>>>10;tr[d]=m+tr[d-7]+p+tr[d-16]|0}let{A:n,B:s,C:o,D:i,E:a,F:c,G:f,H:l}=this;for(let d=0;d<64;d++){let u=ae(a,6)^ae(a,11)^ae(a,25),h=l+u+Va(a,c,f)+xf[d]+tr[d]|0,m=(ae(n,2)^ae(n,13)^ae(n,22))+ja(n,s,o)|0;l=f,f=c,c=a,a=i+h|0,i=o,o=s,s=n,n=h+m|0}n=n+this.A|0,s=s+this.B|0,o=o+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,f=f+this.G|0,l=l+this.H|0,this.set(n,s,o,i,a,c,f,l)}roundClean(){Ir(tr)}destroy(){this.set(0,0,0,0,0,0,0,0),Ir(this.buffer)}},gi=class extends Ls{constructor(){super(28),this.A=Pe[0]|0,this.B=Pe[1]|0,this.C=Pe[2]|0,this.D=Pe[3]|0,this.E=Pe[4]|0,this.F=Pe[5]|0,this.G=Pe[6]|0,this.H=Pe[7]|0}},Ja=Ka(["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(e=>BigInt(e))),wf=Ja[0],Ef=Ja[1],er=new Uint32Array(80),rr=new Uint32Array(80),xi=class extends Dn{constructor(t=64){super(128,t,16,!1),this.Ah=_t[0]|0,this.Al=_t[1]|0,this.Bh=_t[2]|0,this.Bl=_t[3]|0,this.Ch=_t[4]|0,this.Cl=_t[5]|0,this.Dh=_t[6]|0,this.Dl=_t[7]|0,this.Eh=_t[8]|0,this.El=_t[9]|0,this.Fh=_t[10]|0,this.Fl=_t[11]|0,this.Gh=_t[12]|0,this.Gl=_t[13]|0,this.Hh=_t[14]|0,this.Hl=_t[15]|0}get(){let{Ah:t,Al:r,Bh:n,Bl:s,Ch:o,Cl:i,Dh:a,Dl:c,Eh:f,El:l,Fh:d,Fl:u,Gh:h,Gl:p,Hh:m,Hl:g}=this;return[t,r,n,s,o,i,a,c,f,l,d,u,h,p,m,g]}set(t,r,n,s,o,i,a,c,f,l,d,u,h,p,m,g){this.Ah=t|0,this.Al=r|0,this.Bh=n|0,this.Bl=s|0,this.Ch=o|0,this.Cl=i|0,this.Dh=a|0,this.Dl=c|0,this.Eh=f|0,this.El=l|0,this.Fh=d|0,this.Fl=u|0,this.Gh=h|0,this.Gl=p|0,this.Hh=m|0,this.Hl=g|0}process(t,r){for(let b=0;b<16;b++,r+=4)er[b]=t.getUint32(r),rr[b]=t.getUint32(r+=4);for(let b=16;b<80;b++){let v=er[b-15]|0,T=rr[b-15]|0,I=Ar(v,T,1)^Ar(v,T,8)^yi(v,T,7),S=Cr(v,T,1)^Cr(v,T,8)^bi(v,T,7),C=er[b-2]|0,_=rr[b-2]|0,A=Ar(C,_,19)^qn(C,_,61)^yi(C,_,6),D=Cr(C,_,19)^Mn(C,_,61)^bi(C,_,6),R=Ya(S,D,rr[b-7],rr[b-16]),E=za(R,I,A,er[b-7],er[b-16]);er[b]=E|0,rr[b]=R|0}let{Ah:n,Al:s,Bh:o,Bl:i,Ch:a,Cl:c,Dh:f,Dl:l,Eh:d,El:u,Fh:h,Fl:p,Gh:m,Gl:g,Hh:y,Hl:w}=this;for(let b=0;b<80;b++){let v=Ar(d,u,14)^Ar(d,u,18)^qn(d,u,41),T=Cr(d,u,14)^Cr(d,u,18)^Mn(d,u,41),I=d&h^~d&m,S=u&p^~u&g,C=Xa(w,T,S,Ef[b],rr[b]),_=Wa(C,y,v,I,wf[b],er[b]),A=C|0,D=Ar(n,s,28)^qn(n,s,34)^qn(n,s,39),R=Cr(n,s,28)^Mn(n,s,34)^Mn(n,s,39),E=n&o^n&a^o&a,B=s&i^s&c^i&c;y=m|0,w=g|0,m=h|0,g=p|0,h=d|0,p=u|0,{h:d,l:u}=Te(f|0,l|0,_|0,A|0),f=a|0,l=c|0,a=o|0,c=i|0,o=n|0,i=s|0;let U=Ga(A,R,B);n=Za(U,_,D,E),s=U|0}({h:n,l:s}=Te(this.Ah|0,this.Al|0,n|0,s|0)),{h:o,l:i}=Te(this.Bh|0,this.Bl|0,o|0,i|0),{h:a,l:c}=Te(this.Ch|0,this.Cl|0,a|0,c|0),{h:f,l}=Te(this.Dh|0,this.Dl|0,f|0,l|0),{h:d,l:u}=Te(this.Eh|0,this.El|0,d|0,u|0),{h,l:p}=Te(this.Fh|0,this.Fl|0,h|0,p|0),{h:m,l:g}=Te(this.Gh|0,this.Gl|0,m|0,g|0),{h:y,l:w}=Te(this.Hh|0,this.Hl|0,y|0,w|0),this.set(n,s,o,i,a,c,f,l,d,u,h,p,m,g,y,w)}roundClean(){Ir(er,rr)}destroy(){Ir(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}};var Tt=Fs(()=>new Ls),Qa=Fs(()=>new gi),tc=Fs(()=>new xi);var $s="__principal__",_f=2,ec=4,vf="aaaaa-aa",L=class e{static anonymous(){return new this(new Uint8Array([ec]))}static managementCanister(){return this.fromText(vf)}static selfAuthenticating(t){let r=Qa(t);return new this(new Uint8Array([...r,_f]))}static from(t){if(typeof t=="string")return e.fromText(t);if(Object.getPrototypeOf(t)===Uint8Array.prototype)return new e(t);if(e.isPrincipal(t))return new e(t._arr);throw new Error(`Impossible to convert ${JSON.stringify(t)} to Principal.`)}static fromHex(t){return new this(Bt(t))}static fromText(t){let r=t;if(t.includes($s)){let i=JSON.parse(t);$s in i&&(r=i[$s])}let n=r.toLowerCase().replace(/-/g,""),s=Ma(n);s=s.slice(4,s.length);let o=new this(s);if(o.toText()!==r)throw new Error(`Principal "${o.toText()}" does not have a valid checksum (original value "${r}" may not be a valid Principal ID).`);return o}static fromUint8Array(t){return new this(t)}static isPrincipal(t){return t instanceof e||typeof t=="object"&&t!==null&&"_isPrincipal"in t&&t._isPrincipal===!0&&"_arr"in t&&t._arr instanceof Uint8Array}constructor(t){this._arr=t,this._isPrincipal=!0}isAnonymous(){return this._arr.byteLength===1&&this._arr[0]===ec}toUint8Array(){return this._arr}toHex(){return V(this._arr).toUpperCase()}toText(){let t=new ArrayBuffer(4);new DataView(t).setUint32(0,Fa(this._arr));let n=new Uint8Array(t),s=new Uint8Array([...n,...this._arr]),i=qa(s).match(/.{1,5}/g);if(!i)throw new Error;return i.join("-")}toString(){return this.toText()}toJSON(){return{[$s]:this.toText()}}compareTo(t){for(let r=0;rt._arr[r])return"gt"}return this._arr.lengtht._arr.length?"gt":"eq"}ltEq(t){let r=this.compareTo(t);return r=="lt"||r=="eq"}gtEq(t){let r=this.compareTo(t);return r=="gt"||r=="eq"}};var De;(function(e){e.Trust="Trust",e.Protocol="Protocol",e.Reject="Reject",e.Transport="Transport",e.External="External",e.Limit="Limit",e.Input="Input",e.Unknown="Unknown"})(De||(De={}));var Vs;(function(e){e.Normal="normal",e.Verbose="verbose"})(Vs||(Vs={}));var Bf=new Set(["arg","certificate","nonce"]);function wi(e){return(t,r)=>r instanceof Uint8Array?e===Vs.Normal&&Bf.has(t)?`<${r.length} bytes, set ErrorCode.verbosity = ErrorVerbosity.Verbose to display>`:`hex(${r.length}):${V(r)}`:r}var lo=class lo{constructor(t=!1){this.isCertified=t}toString(){let t=this.toErrorMessage();return this.requestContext&&(t+=` Request context: Request ID (hex): ${this.requestContext.requestId?V(this.requestContext.requestId):"undefined"} Sender pubkey (hex): ${V(this.requestContext.senderPubKey)} @@ -12,7 +12,7 @@ Request context: Call context: Canister ID: ${this.callContext.canisterId.toText()} Method name: ${this.callContext.methodName}`,"httpDetails"in this.callContext&&(t+=` - HTTP details: ${JSON.stringify(this.callContext.httpDetails,wi(lo.verbosity),2)}`)),t}};lo.verbosity=Vs.Normal;var H=lo,Kt=class e extends Error{get code(){return this.cause.code}set code(t){this.cause.code=t}get kind(){return this.cause.kind}set kind(t){this.cause.kind=t}get isCertified(){return this.code.isCertified}constructor(t,r){super(t.toString()),this.name="AgentError",this.cause={code:t,kind:r},Object.setPrototypeOf(this,e.prototype)}hasCode(t){return this.code instanceof t}toString(){return`${this.name} (${this.kind}): ${this.message}`}},qe=class extends Kt{static fromCode(t){return new this(t)}},kt=class e extends qe{constructor(t){super(t,De.Trust),this.name="TrustError",Object.setPrototypeOf(this,e.prototype)}},nt=class e extends qe{constructor(t){super(t,De.Protocol),this.name="ProtocolError",Object.setPrototypeOf(this,e.prototype)}},ce=class e extends qe{constructor(t){super(t,De.Reject),this.name="RejectError",Object.setPrototypeOf(this,e.prototype)}},Mn=class e extends qe{constructor(t){super(t,De.Transport),this.name="TransportError",Object.setPrototypeOf(this,e.prototype)}},St=class e extends qe{constructor(t){super(t,De.External),this.name="ExternalError",Object.setPrototypeOf(this,e.prototype)}};var J=class e extends qe{constructor(t){super(t,De.Input),this.name="InputError",Object.setPrototypeOf(this,e.prototype)}},it=class e extends qe{constructor(t){super(t,De.Unknown),this.name="UnknownError",Object.setPrototypeOf(this,e.prototype)}},ue=class e extends H{constructor(t,r){super(),this.reason=t,this.error=r,this.name="CertificateVerificationErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){let t=this.reason;return this.error&&(t+=`: ${Kn(this.error)}`),`Certificate verification error: "${t}"`}},ke=class e extends H{constructor(t,r,n,s,o){super(),this.maxAgeInMinutes=t,this.certificateTime=r,this.currentTime=n,this.timeDiffMsecs=s,this.ageType=o,this.name="CertificateTimeErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Certificate is signed more than ${this.maxAgeInMinutes} minutes in the ${this.ageType}. Certificate time: ${this.certificateTime.toISOString()} Current time: ${this.currentTime.toISOString()} Clock drift: ${this.timeDiffMsecs}ms`}},js=class e extends H{constructor(){super(),this.name="CertificateHasTooManyDelegationsErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return"Certificate has too many delegations"}},Or=class e extends H{constructor(t,r){super(),this.canisterId=t,this.subnetId=r,this.name="CertificateNotAuthorizedErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`The certificate contains a delegation that does not include the canister ${this.canisterId.toText()} in the canister_ranges field. Subnet ID: ${this.subnetId.toText()}`}},Hs=class e extends H{constructor(t){super(),this.subnetId=t,this.name="CertificateNotAuthorizedForSubnetErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`The certificate is not authorized for subnet ${this.subnetId.toText()}`}},fe=class e extends H{constructor(t,r){super(),this.message=t,this.lookupStatus=r,this.name="LookupErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`${this.message}. Lookup status: ${this.lookupStatus}`}},Ks=class e extends H{constructor(t){super(),this.message=t,this.name="MalformedLookupFoundValueErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return this.message}},Gs=class e extends H{constructor(t){super(),this.message=t,this.name="MissingLookupValueErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return this.message}},nn=class e extends H{constructor(t,r){super(),this.expectedLength=t,this.actualLength=r,this.name="DerKeyLengthMismatchErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`BLS DER-encoded public key must be ${this.expectedLength} bytes long, but is ${this.actualLength} bytes long`}},Zs=class e extends H{constructor(t,r){super(),this.expectedPrefix=t,this.actualPrefix=r,this.name="DerPrefixMismatchErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`BLS DER-encoded public key is invalid. Expected the following prefix: ${V(this.expectedPrefix)}, but got ${V(this.actualPrefix)}`}},Ys=class e extends H{constructor(t,r){super(),this.expectedLength=t,this.actualLength=r,this.name="DerDecodeLengthMismatchErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`DER payload mismatch: Expected length ${this.expectedLength}, actual length: ${this.actualLength}`}},de=class e extends H{constructor(t){super(),this.error=t,this.name="DerDecodeErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to decode DER: ${this.error}`}},Fn=class e extends H{constructor(t){super(),this.error=t,this.name="DerEncodeErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to encode DER: ${this.error}`}},zs=class e extends H{constructor(t,r){super(),this.error=t,this.input=r,this.name="CborDecodeErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to decode CBOR: ${Kn(this.error)}, input: ${V(this.input)}`}},Xs=class e extends H{constructor(t,r){super(),this.error=t,this.value=r,this.name="CborEncodeErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to encode CBOR: ${Kn(this.error)}, input: ${this.value}`}};var Rr=class e extends H{constructor(t,r,n){super(),this.message=t,this.requestId=r,this.status=n,this.name="TimeoutWaitingForResponseErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){let t=`${this.message} + HTTP details: ${JSON.stringify(this.callContext.httpDetails,wi(lo.verbosity),2)}`)),t}};lo.verbosity=Vs.Normal;var H=lo,Kt=class e extends Error{get code(){return this.cause.code}set code(t){this.cause.code=t}get kind(){return this.cause.kind}set kind(t){this.cause.kind=t}get isCertified(){return this.code.isCertified}constructor(t,r){super(t.toString()),this.name="AgentError",this.cause={code:t,kind:r},Object.setPrototypeOf(this,e.prototype)}hasCode(t){return this.code instanceof t}toString(){return`${this.name} (${this.kind}): ${this.message}`}},qe=class extends Kt{static fromCode(t){return new this(t)}},Mt=class e extends qe{constructor(t){super(t,De.Trust),this.name="TrustError",Object.setPrototypeOf(this,e.prototype)}},rt=class e extends qe{constructor(t){super(t,De.Protocol),this.name="ProtocolError",Object.setPrototypeOf(this,e.prototype)}},ce=class e extends qe{constructor(t){super(t,De.Reject),this.name="RejectError",Object.setPrototypeOf(this,e.prototype)}},Fn=class e extends qe{constructor(t){super(t,De.Transport),this.name="TransportError",Object.setPrototypeOf(this,e.prototype)}},St=class e extends qe{constructor(t){super(t,De.External),this.name="ExternalError",Object.setPrototypeOf(this,e.prototype)}};var J=class e extends qe{constructor(t){super(t,De.Input),this.name="InputError",Object.setPrototypeOf(this,e.prototype)}},it=class e extends qe{constructor(t){super(t,De.Unknown),this.name="UnknownError",Object.setPrototypeOf(this,e.prototype)}},ue=class e extends H{constructor(t,r){super(),this.reason=t,this.error=r,this.name="CertificateVerificationErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){let t=this.reason;return this.error&&(t+=`: ${Kn(this.error)}`),`Certificate verification error: "${t}"`}},Me=class e extends H{constructor(t,r,n,s,o){super(),this.maxAgeInMinutes=t,this.certificateTime=r,this.currentTime=n,this.timeDiffMsecs=s,this.ageType=o,this.name="CertificateTimeErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Certificate is signed more than ${this.maxAgeInMinutes} minutes in the ${this.ageType}. Certificate time: ${this.certificateTime.toISOString()} Current time: ${this.currentTime.toISOString()} Clock drift: ${this.timeDiffMsecs}ms`}},js=class e extends H{constructor(){super(),this.name="CertificateHasTooManyDelegationsErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return"Certificate has too many delegations"}},Or=class e extends H{constructor(t,r){super(),this.canisterId=t,this.subnetId=r,this.name="CertificateNotAuthorizedErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`The certificate contains a delegation that does not include the canister ${this.canisterId.toText()} in the canister_ranges field. Subnet ID: ${this.subnetId.toText()}`}},Hs=class e extends H{constructor(t){super(),this.subnetId=t,this.name="CertificateNotAuthorizedForSubnetErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`The certificate is not authorized for subnet ${this.subnetId.toText()}`}},fe=class e extends H{constructor(t,r){super(),this.message=t,this.lookupStatus=r,this.name="LookupErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`${this.message}. Lookup status: ${this.lookupStatus}`}},Ks=class e extends H{constructor(t){super(),this.message=t,this.name="MalformedLookupFoundValueErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return this.message}},Gs=class e extends H{constructor(t){super(),this.message=t,this.name="MissingLookupValueErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return this.message}},nn=class e extends H{constructor(t,r){super(),this.expectedLength=t,this.actualLength=r,this.name="DerKeyLengthMismatchErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`BLS DER-encoded public key must be ${this.expectedLength} bytes long, but is ${this.actualLength} bytes long`}},Zs=class e extends H{constructor(t,r){super(),this.expectedPrefix=t,this.actualPrefix=r,this.name="DerPrefixMismatchErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`BLS DER-encoded public key is invalid. Expected the following prefix: ${V(this.expectedPrefix)}, but got ${V(this.actualPrefix)}`}},Ys=class e extends H{constructor(t,r){super(),this.expectedLength=t,this.actualLength=r,this.name="DerDecodeLengthMismatchErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`DER payload mismatch: Expected length ${this.expectedLength}, actual length: ${this.actualLength}`}},de=class e extends H{constructor(t){super(),this.error=t,this.name="DerDecodeErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to decode DER: ${this.error}`}},kn=class e extends H{constructor(t){super(),this.error=t,this.name="DerEncodeErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to encode DER: ${this.error}`}},zs=class e extends H{constructor(t,r){super(),this.error=t,this.input=r,this.name="CborDecodeErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to decode CBOR: ${Kn(this.error)}, input: ${V(this.input)}`}},Xs=class e extends H{constructor(t,r){super(),this.error=t,this.value=r,this.name="CborEncodeErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to encode CBOR: ${Kn(this.error)}, input: ${this.value}`}};var Rr=class e extends H{constructor(t,r,n){super(),this.message=t,this.requestId=r,this.status=n,this.name="TimeoutWaitingForResponseErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){let t=`${this.message} `;return this.requestId&&(t+=` Request ID: ${V(this.requestId)} `),this.status&&(t+=` Request status: ${this.status} `),t}},Ws=class e extends H{constructor(t,r,n){super(),this.maxIngressExpiryInMinutes=t,this.requestId=r,this.retryTimes=n,this.name="CertificateOutdatedErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){let t=`Certificate is stale (over ${this.maxIngressExpiryInMinutes} minutes). Is the computer's clock synchronized? @@ -40,25 +40,25 @@ Call context: Status: ${this.status} (${this.statusText}) Headers: ${JSON.stringify(this.headers,wi(H.verbosity))} `;return this.bodyText&&(t+=` Body: ${this.bodyText} -`),t}},$n=class e extends H{constructor(){super(),this.name="HttpV4ApiNotSupportedErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return"HTTP request failed: v4 API is not supported"}},Vn=class e extends H{constructor(t){super(),this.error=t,this.name="HttpFetchErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to fetch HTTP request: ${Kn(this.error)}`}},jn=class e extends H{constructor(t){super(),this.receivedCanisterId=t,this.name="MissingCanisterIdErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Canister ID is required, but received ${typeof this.receivedCanisterId} instead. If you are using automatically generated declarations, this may be because your application is not setting the canister ID in process.env correctly.`}},fo=class e extends H{constructor(t){super(),this.request=t,this.name="InvalidReadStateRequestErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Invalid read state request: ${this.request}`}},Hn=class e extends H{constructor(t){super(),this.error=t,this.name="ExpiryJsonDeserializeErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to deserialize expiry: ${this.error}`}};function Kn(e){var t;if(e instanceof Error)return(t=e.stack)!=null?t:e.message;try{return JSON.stringify(e,wi(H.verbosity))}catch(r){return String(e)}}var Xt=new Error("unreachable");var cr={};Oa(cr,{Bool:()=>fc,BoolClass:()=>bo,CandidDecodeError:()=>Mt,ConstructType:()=>Ae,Empty:()=>cc,EmptyClass:()=>Zn,FixedIntClass:()=>Le,FixedNatClass:()=>Ie,Float32:()=>mc,Float64:()=>yc,FloatClass:()=>Xn,Func:()=>Nc,FuncClass:()=>Pr,Int:()=>hc,Int16:()=>gc,Int32:()=>xc,Int64:()=>wc,Int8:()=>bc,IntClass:()=>Yn,Nat:()=>pc,Nat16:()=>_c,Nat32:()=>vc,Nat64:()=>Bc,Nat8:()=>Ec,NatClass:()=>zn,Null:()=>dc,NullClass:()=>Nr,Opt:()=>Ac,OptClass:()=>ar,PrimitiveType:()=>Ft,Principal:()=>Tc,PrincipalClass:()=>wo,Rec:()=>Rc,RecClass:()=>Wt,Record:()=>Cc,RecordClass:()=>Ur,Reserved:()=>uc,ReservedClass:()=>Ce,Service:()=>Uc,ServiceClass:()=>fn,Text:()=>lc,TextClass:()=>go,Tuple:()=>Sc,TupleClass:()=>xo,Type:()=>an,Unknown:()=>Cf,UnknownClass:()=>yo,Variant:()=>Oc,VariantClass:()=>un,Vec:()=>Ic,VecClass:()=>cn,Visitor:()=>Si,decode:()=>Af,encode:()=>If,resetSubtypeCache:()=>Ii,subtype:()=>Ci});function tt(...e){let t=new Uint8Array(e.reduce((n,s)=>n+s.byteLength,0)),r=0;for(let n of e)t.set(n,r),r+=n.byteLength;return t}var he=class{save(){return this._view}restore(t){if(!(t instanceof Uint8Array))throw new Error("Checkpoint must be a Uint8Array");this._view=t}constructor(t,r=(t==null?void 0:t.byteLength)||0){if(t&&!(t instanceof Uint8Array))try{t=sn(t)}catch(n){throw new Error("Buffer must be a Uint8Array")}if(r<0||!Number.isInteger(r))throw new Error("Length must be a non-negative integer");if(t&&r>t.byteLength)throw new Error("Length cannot exceed buffer length");this._buffer=t||new Uint8Array(0),this._view=new Uint8Array(this._buffer.buffer,0,r)}get buffer(){return this._view.slice()}get byteLength(){return this._view.byteLength}read(t){let r=this._view.subarray(0,t);return this._view=this._view.subarray(t),r.slice()}readUint8(){if(this._view.byteLength===0)return;let t=this._view[0];return this._view=this._view.subarray(1),t}write(t){if(!(t instanceof Uint8Array))throw new Error("Buffer must be a Uint8Array");let r=this._view.byteLength;this._view.byteOffset+this._view.byteLength+t.byteLength>=this._buffer.byteLength?this.alloc(t.byteLength):this._view=new Uint8Array(this._buffer.buffer,this._view.byteOffset,this._view.byteLength+t.byteLength),this._view.set(t,r)}get end(){return this._view.byteLength===0}alloc(t){if(t<=0||!Number.isInteger(t))throw new Error("Amount must be a positive integer");let r=new Uint8Array((this._buffer.byteLength+t)*1.2|0),n=new Uint8Array(r.buffer,0,this._view.byteLength+t);n.set(this._view),this._buffer=r,this._view=n}};function sn(e){if(!e)throw new Error("Input cannot be null or undefined");return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):Array.isArray(e)?new Uint8Array(e):"buffer"in e?sn(e.buffer):new Uint8Array(e)}function on(e,t){if(e.byteLength!==t.byteLength)return e.byteLength-t.byteLength;for(let r=0;r=0&&t<2**32)return t}return Tf(e)}function Ei(e){let t=BigInt(e);if(e<=0)throw new RangeError("Input must be positive");return t.toString(2).length-1}function ho(e){let t=BigInt(e);if(e<0)throw new RangeError("Input must be non-negative");return BigInt(1)<=128);return r}function pt(e){typeof e=="number"&&(e=BigInt(e));let t=e=0;o--)s=s*BigInt(128)+BigInt(128-(n[o]&127)-1);return-s-BigInt(1)}function oc(e,t){if(BigInt(e)=n&&(r-=n*BigInt(2)),r}var Mt=class e extends Error{constructor(t){super(t),this.name="CandidDecodeError",Object.setPrototypeOf(this,e.prototype)}},rt;(function(e){e[e.Null=-1]="Null",e[e.Bool=-2]="Bool",e[e.Nat=-3]="Nat",e[e.Int=-4]="Int",e[e.Float32=-13]="Float32",e[e.Float64=-14]="Float64",e[e.Text=-15]="Text",e[e.Reserved=-16]="Reserved",e[e.Empty=-17]="Empty",e[e.Opt=-18]="Opt",e[e.Vector=-19]="Vector",e[e.Record=-20]="Record",e[e.Variant=-21]="Variant",e[e.Func=-22]="Func",e[e.Service=-23]="Service",e[e.Principal=-24]="Principal"})(rt||(rt={}));var po="DIDL",Sf=new TextEncoder().encode(po),ac=400;function Gn(e,t,r){return e.map((n,s)=>r(n,t[s]))}var Ti=class{constructor(){this._typs=[],this._idx=new Map,this._idxRefCount=new Map}has(t){return this._idx.has(t.name)}add(t,r){let n=this._typs.length;this._idx.set(t.name,n),this._idxRefCount.set(n,1),this._typs.push(r)}merge(t,r){let n=this._idx.get(t.name),s=this._idx.get(r);if(n===void 0)throw new Error(`Missing type index for ${t}`);if(s===void 0)throw new Error(`Missing type index for ${r}`);this._typs[n]=this._typs[s];let o=this._getIdxRefCount(n),i=this._getIdxRefCount(s);this._idxRefCount.set(n,o+i),this._idx.set(r,n),this._idxRefCount.set(s,0),this._compactFromEnd()}_getIdxRefCount(t){return this._idxRefCount.get(t)||0}_compactFromEnd(){for(;this._typs.length>0;){let t=this._typs.length-1;if(this._getIdxRefCount(t)>0)break;this._typs.pop(),this._idxRefCount.delete(t)}}encode(){let t=ot(this._typs.length),r=tt(...this._typs);return tt(t,r)}indexOf(t){if(!this._idx.has(t))throw new Error(`Missing type index for ${t}`);return pt(this._idx.get(t)||0)}},Si=class{visitType(t,r){throw new Error("Not implemented")}visitPrimitive(t,r){return this.visitType(t,r)}visitEmpty(t,r){return this.visitPrimitive(t,r)}visitBool(t,r){return this.visitPrimitive(t,r)}visitNull(t,r){return this.visitPrimitive(t,r)}visitReserved(t,r){return this.visitPrimitive(t,r)}visitText(t,r){return this.visitPrimitive(t,r)}visitNumber(t,r){return this.visitPrimitive(t,r)}visitInt(t,r){return this.visitNumber(t,r)}visitNat(t,r){return this.visitNumber(t,r)}visitFloat(t,r){return this.visitPrimitive(t,r)}visitFixedInt(t,r){return this.visitNumber(t,r)}visitFixedNat(t,r){return this.visitNumber(t,r)}visitPrincipal(t,r){return this.visitPrimitive(t,r)}visitConstruct(t,r){return this.visitType(t,r)}visitVec(t,r,n){return this.visitConstruct(t,n)}visitOpt(t,r,n){return this.visitConstruct(t,n)}visitRecord(t,r,n){return this.visitConstruct(t,n)}visitTuple(t,r,n){let s=r.map((o,i)=>[`_${i}_`,o]);return this.visitRecord(t,s,n)}visitVariant(t,r,n){return this.visitConstruct(t,n)}visitRec(t,r,n){return this.visitConstruct(r,n)}visitFunc(t,r){return this.visitConstruct(t,r)}visitService(t,r){return this.visitConstruct(t,r)}},G;(function(e){e.EmptyClass="__IDL_EmptyClass__",e.UnknownClass="__IDL_UnknownClass__",e.BoolClass="__IDL_BoolClass__",e.NullClass="__IDL_NullClass__",e.ReservedClass="__IDL_ReservedClass__",e.TextClass="__IDL_TextClass__",e.IntClass="__IDL_IntClass__",e.NatClass="__IDL_NatClass__",e.FloatClass="__IDL_FloatClass__",e.FixedIntClass="__IDL_FixedIntClass__",e.FixedNatClass="__IDL_FixedNatClass__",e.VecClass="__IDL_VecClass__",e.OptClass="__IDL_OptClass__",e.RecordClass="__IDL_RecordClass__",e.TupleClass="__IDL_TupleClass__",e.VariantClass="__IDL_VariantClass__",e.RecClass="__IDL_RecClass__",e.PrincipalClass="__IDL_PrincipalClass__",e.FuncClass="__IDL_FuncClass__",e.ServiceClass="__IDL_ServiceClass__"})(G||(G={}));var an=class{display(){return this.name}valueToString(t){return lt(t)}buildTypeTable(t){t.has(this)||this._buildTypeTableImpl(t)}},Ft=class extends an{checkType(t){if(this.name!==t.name)throw new Error(`type mismatch: type on the wire ${t.name}, expect type ${this.name}`);return t}_buildTypeTableImpl(t){}},Ae=class extends an{checkType(t){if(t instanceof Wt){let r=t.getType();if(typeof r=="undefined")throw new Mt("Type mismatch: cannot decode from uninitialized recursive type");return r}throw new Error(`type mismatch: type on the wire ${t.name}, expect type ${this.name}`)}encodeType(t){return t.indexOf(this.name)}},Zn=class extends Ft{get typeName(){return G.EmptyClass}static[Symbol.hasInstance](t){return t.typeName===G.EmptyClass}accept(t,r){return t.visitEmpty(this,r)}covariant(t){throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(){throw new Error("Empty cannot appear as a function argument")}valueToString(){throw new Error("Empty cannot appear as a value")}encodeType(){return pt(rt.Empty)}decodeValue(){throw new Error("Empty cannot appear as an output")}get name(){return"empty"}},yo=class extends an{get typeName(){return G.UnknownClass}static[Symbol.hasInstance](t){return t.typeName===G.UnknownClass}checkType(t){throw new Error("Method not implemented for unknown.")}accept(t,r){throw t.visitType(this,r)}covariant(t){throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(){throw new Error("Unknown cannot appear as a function argument")}valueToString(){throw new Error("Unknown cannot appear as a value")}encodeType(){throw new Error("Unknown cannot be serialized")}decodeValue(t,r){let n=r.decodeValue(t,r);Object(n)!==n&&(n=Object(n));let s;return r instanceof Wt?s=()=>r.getType():s=()=>r,Object.defineProperty(n,"type",{value:s,writable:!0,enumerable:!1,configurable:!0}),n}_buildTypeTableImpl(){throw new Error("Unknown cannot be serialized")}get name(){return"Unknown"}},bo=class extends Ft{get typeName(){return G.BoolClass}static[Symbol.hasInstance](t){return t.typeName===G.BoolClass}accept(t,r){return t.visitBool(this,r)}covariant(t){if(typeof t=="boolean")return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){return new Uint8Array([t?1:0])}encodeType(){return pt(rt.Bool)}decodeValue(t,r){switch(this.checkType(r),or(t)){case 0:return!1;case 1:return!0;default:throw new Error("Boolean value out of range")}}get name(){return"bool"}},Nr=class extends Ft{get typeName(){return G.NullClass}static[Symbol.hasInstance](t){return t.typeName===G.NullClass}accept(t,r){return t.visitNull(this,r)}covariant(t){if(t===null)return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(){return new Uint8Array(0)}encodeType(){return pt(rt.Null)}decodeValue(t,r){return this.checkType(r),null}get name(){return"null"}},Ce=class extends Ft{get typeName(){return G.ReservedClass}static[Symbol.hasInstance](t){return t.typeName===G.ReservedClass}accept(t,r){return t.visitReserved(this,r)}covariant(t){return!0}encodeValue(){return new Uint8Array(0)}encodeType(){return pt(rt.Reserved)}decodeValue(t,r){return r.name!==this.name&&r.decodeValue(t,r),null}get name(){return"reserved"}},go=class extends Ft{get typeName(){return G.TextClass}static[Symbol.hasInstance](t){return t.typeName===G.TextClass}accept(t,r){return t.visitText(this,r)}covariant(t){if(typeof t=="string")return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){let r=new TextEncoder().encode(t),n=ot(r.byteLength);return tt(n,r)}encodeType(){return pt(rt.Text)}decodeValue(t,r){this.checkType(r);let n=ht(t),s=ir(t,Number(n));return new TextDecoder("utf8",{fatal:!0}).decode(s)}get name(){return"text"}valueToString(t){return`"${t}"`}},Yn=class extends Ft{get typeName(){return G.IntClass}static[Symbol.hasInstance](t){return t.typeName===G.IntClass}accept(t,r){return t.visitInt(this,r)}covariant(t){if(typeof t=="bigint"||Number.isInteger(t))return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){return pt(t)}encodeType(){return pt(rt.Int)}decodeValue(t,r){return this.checkType(r),Me(t)}get name(){return"int"}valueToString(t){return t.toString()}},zn=class extends Ft{get typeName(){return G.NatClass}static[Symbol.hasInstance](t){return t.typeName===G.NatClass}accept(t,r){return t.visitNat(this,r)}covariant(t){if(typeof t=="bigint"&&t>=BigInt(0)||Number.isInteger(t)&&t>=0)return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){return ot(t)}encodeType(){return pt(rt.Nat)}decodeValue(t,r){return this.checkType(r),ht(t)}get name(){return"nat"}valueToString(t){return t.toString()}},Xn=class extends Ft{get typeName(){return G.FloatClass}static[Symbol.hasInstance](t){return t.typeName===G.FloatClass}constructor(t){if(super(),this._bits=t,t!==32&&t!==64)throw new Error("not a valid float type")}accept(t,r){return t.visitFloat(this,r)}covariant(t){if(typeof t=="number"||t instanceof Number)return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){let r=new ArrayBuffer(this._bits/8),n=new DataView(r);return this._bits===32?n.setFloat32(0,t,!0):n.setFloat64(0,t,!0),new Uint8Array(r)}encodeType(){let t=this._bits===32?rt.Float32:rt.Float64;return pt(t)}decodeValue(t,r){this.checkType(r);let n=ir(t,this._bits/8),s=nc(n);return this._bits===32?s.getFloat32(0,!0):s.getFloat64(0,!0)}get name(){return`float${this._bits}`}valueToString(t){return t.toString()}},Le=class extends Ft{get typeName(){return G.FixedIntClass}static[Symbol.hasInstance](t){return t.typeName===G.FixedIntClass}constructor(t){super(),this._bits=t}accept(t,r){return t.visitFixedInt(this,r)}covariant(t){let r=ho(this._bits-1)*BigInt(-1),n=ho(this._bits-1)-BigInt(1);if(typeof t=="bigint"){if(t>=r&&t<=n)return!0}else if(Number.isInteger(t)){let s=BigInt(t);if(s>=r&&s<=n)return!0}throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){return _i(t,this._bits/8)}encodeType(){let t=Math.log2(this._bits)-3;return pt(-9-t)}decodeValue(t,r){this.checkType(r);let n=ic(t,this._bits/8);return this._bits<=32?Number(n):n}get name(){return`int${this._bits}`}valueToString(t){return t.toString()}},Ie=class extends Ft{get typeName(){return G.FixedNatClass}static[Symbol.hasInstance](t){return t.typeName===G.FixedNatClass}constructor(t){super(),this._bits=t}accept(t,r){return t.visitFixedNat(this,r)}covariant(t){let r=ho(this._bits);if(typeof t=="bigint"&&t>=BigInt(0)){if(t=0&&BigInt(t){try{return this._type.covariant(n)}catch(o){throw new Error(`Invalid ${this.display()} argument: +`),t}},$n=class e extends H{constructor(){super(),this.name="HttpV4ApiNotSupportedErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return"HTTP request failed: v4 API is not supported"}},Vn=class e extends H{constructor(t){super(),this.error=t,this.name="HttpFetchErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to fetch HTTP request: ${Kn(this.error)}`}},jn=class e extends H{constructor(t){super(),this.receivedCanisterId=t,this.name="MissingCanisterIdErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Canister ID is required, but received ${typeof this.receivedCanisterId} instead. If you are using automatically generated declarations, this may be because your application is not setting the canister ID in process.env correctly.`}},fo=class e extends H{constructor(t){super(),this.request=t,this.name="InvalidReadStateRequestErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Invalid read state request: ${this.request}`}},Hn=class e extends H{constructor(t){super(),this.error=t,this.name="ExpiryJsonDeserializeErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to deserialize expiry: ${this.error}`}};function Kn(e){var t;if(e instanceof Error)return(t=e.stack)!=null?t:e.message;try{return JSON.stringify(e,wi(H.verbosity))}catch(r){return String(e)}}var Xt=new Error("unreachable");var cr={};Oa(cr,{Bool:()=>fc,BoolClass:()=>bo,CandidDecodeError:()=>Ft,ConstructType:()=>Ae,Empty:()=>cc,EmptyClass:()=>Zn,FixedIntClass:()=>Le,FixedNatClass:()=>Ie,Float32:()=>mc,Float64:()=>yc,FloatClass:()=>Xn,Func:()=>Nc,FuncClass:()=>Pr,Int:()=>hc,Int16:()=>gc,Int32:()=>xc,Int64:()=>wc,Int8:()=>bc,IntClass:()=>Yn,Nat:()=>pc,Nat16:()=>_c,Nat32:()=>vc,Nat64:()=>Bc,Nat8:()=>Ec,NatClass:()=>zn,Null:()=>dc,NullClass:()=>Nr,Opt:()=>Ac,OptClass:()=>ar,PrimitiveType:()=>kt,Principal:()=>Tc,PrincipalClass:()=>wo,Rec:()=>Rc,RecClass:()=>Wt,Record:()=>Cc,RecordClass:()=>Ur,Reserved:()=>uc,ReservedClass:()=>Ce,Service:()=>Uc,ServiceClass:()=>fn,Text:()=>lc,TextClass:()=>go,Tuple:()=>Sc,TupleClass:()=>xo,Type:()=>an,Unknown:()=>Cf,UnknownClass:()=>yo,Variant:()=>Oc,VariantClass:()=>un,Vec:()=>Ic,VecClass:()=>cn,Visitor:()=>Si,decode:()=>Af,encode:()=>If,resetSubtypeCache:()=>Ii,subtype:()=>Ci});function Q(...e){let t=new Uint8Array(e.reduce((n,s)=>n+s.byteLength,0)),r=0;for(let n of e)t.set(n,r),r+=n.byteLength;return t}var he=class{save(){return this._view}restore(t){if(!(t instanceof Uint8Array))throw new Error("Checkpoint must be a Uint8Array");this._view=t}constructor(t,r=(t==null?void 0:t.byteLength)||0){if(t&&!(t instanceof Uint8Array))try{t=sn(t)}catch(n){throw new Error("Buffer must be a Uint8Array")}if(r<0||!Number.isInteger(r))throw new Error("Length must be a non-negative integer");if(t&&r>t.byteLength)throw new Error("Length cannot exceed buffer length");this._buffer=t||new Uint8Array(0),this._view=new Uint8Array(this._buffer.buffer,0,r)}get buffer(){return this._view.slice()}get byteLength(){return this._view.byteLength}read(t){let r=this._view.subarray(0,t);return this._view=this._view.subarray(t),r.slice()}readUint8(){if(this._view.byteLength===0)return;let t=this._view[0];return this._view=this._view.subarray(1),t}write(t){if(!(t instanceof Uint8Array))throw new Error("Buffer must be a Uint8Array");let r=this._view.byteLength;this._view.byteOffset+this._view.byteLength+t.byteLength>=this._buffer.byteLength?this.alloc(t.byteLength):this._view=new Uint8Array(this._buffer.buffer,this._view.byteOffset,this._view.byteLength+t.byteLength),this._view.set(t,r)}get end(){return this._view.byteLength===0}alloc(t){if(t<=0||!Number.isInteger(t))throw new Error("Amount must be a positive integer");let r=new Uint8Array((this._buffer.byteLength+t)*1.2|0),n=new Uint8Array(r.buffer,0,this._view.byteLength+t);n.set(this._view),this._buffer=r,this._view=n}};function sn(e){if(!e)throw new Error("Input cannot be null or undefined");return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):Array.isArray(e)?new Uint8Array(e):"buffer"in e?sn(e.buffer):new Uint8Array(e)}function on(e,t){if(e.byteLength!==t.byteLength)return e.byteLength-t.byteLength;for(let r=0;r=0&&t<2**32)return t}return Tf(e)}function Ei(e){let t=BigInt(e);if(e<=0)throw new RangeError("Input must be positive");return t.toString(2).length-1}function ho(e){let t=BigInt(e);if(e<0)throw new RangeError("Input must be non-negative");return BigInt(1)<=128);return r}function pt(e){typeof e=="number"&&(e=BigInt(e));let t=e=0;o--)s=s*BigInt(128)+BigInt(128-(n[o]&127)-1);return-s-BigInt(1)}function oc(e,t){if(BigInt(e)=n&&(r-=n*BigInt(2)),r}var Ft=class e extends Error{constructor(t){super(t),this.name="CandidDecodeError",Object.setPrototypeOf(this,e.prototype)}},et;(function(e){e[e.Null=-1]="Null",e[e.Bool=-2]="Bool",e[e.Nat=-3]="Nat",e[e.Int=-4]="Int",e[e.Float32=-13]="Float32",e[e.Float64=-14]="Float64",e[e.Text=-15]="Text",e[e.Reserved=-16]="Reserved",e[e.Empty=-17]="Empty",e[e.Opt=-18]="Opt",e[e.Vector=-19]="Vector",e[e.Record=-20]="Record",e[e.Variant=-21]="Variant",e[e.Func=-22]="Func",e[e.Service=-23]="Service",e[e.Principal=-24]="Principal"})(et||(et={}));var po="DIDL",Sf=new TextEncoder().encode(po),ac=400;function Gn(e,t,r){return e.map((n,s)=>r(n,t[s]))}var Ti=class{constructor(){this._typs=[],this._idx=new Map,this._idxRefCount=new Map}has(t){return this._idx.has(t.name)}add(t,r){let n=this._typs.length;this._idx.set(t.name,n),this._idxRefCount.set(n,1),this._typs.push(r)}merge(t,r){let n=this._idx.get(t.name),s=this._idx.get(r);if(n===void 0)throw new Error(`Missing type index for ${t}`);if(s===void 0)throw new Error(`Missing type index for ${r}`);this._typs[n]=this._typs[s];let o=this._getIdxRefCount(n),i=this._getIdxRefCount(s);this._idxRefCount.set(n,o+i),this._idx.set(r,n),this._idxRefCount.set(s,0),this._compactFromEnd()}_getIdxRefCount(t){return this._idxRefCount.get(t)||0}_compactFromEnd(){for(;this._typs.length>0;){let t=this._typs.length-1;if(this._getIdxRefCount(t)>0)break;this._typs.pop(),this._idxRefCount.delete(t)}}encode(){let t=st(this._typs.length),r=Q(...this._typs);return Q(t,r)}indexOf(t){if(!this._idx.has(t))throw new Error(`Missing type index for ${t}`);return pt(this._idx.get(t)||0)}},Si=class{visitType(t,r){throw new Error("Not implemented")}visitPrimitive(t,r){return this.visitType(t,r)}visitEmpty(t,r){return this.visitPrimitive(t,r)}visitBool(t,r){return this.visitPrimitive(t,r)}visitNull(t,r){return this.visitPrimitive(t,r)}visitReserved(t,r){return this.visitPrimitive(t,r)}visitText(t,r){return this.visitPrimitive(t,r)}visitNumber(t,r){return this.visitPrimitive(t,r)}visitInt(t,r){return this.visitNumber(t,r)}visitNat(t,r){return this.visitNumber(t,r)}visitFloat(t,r){return this.visitPrimitive(t,r)}visitFixedInt(t,r){return this.visitNumber(t,r)}visitFixedNat(t,r){return this.visitNumber(t,r)}visitPrincipal(t,r){return this.visitPrimitive(t,r)}visitConstruct(t,r){return this.visitType(t,r)}visitVec(t,r,n){return this.visitConstruct(t,n)}visitOpt(t,r,n){return this.visitConstruct(t,n)}visitRecord(t,r,n){return this.visitConstruct(t,n)}visitTuple(t,r,n){let s=r.map((o,i)=>[`_${i}_`,o]);return this.visitRecord(t,s,n)}visitVariant(t,r,n){return this.visitConstruct(t,n)}visitRec(t,r,n){return this.visitConstruct(r,n)}visitFunc(t,r){return this.visitConstruct(t,r)}visitService(t,r){return this.visitConstruct(t,r)}},G;(function(e){e.EmptyClass="__IDL_EmptyClass__",e.UnknownClass="__IDL_UnknownClass__",e.BoolClass="__IDL_BoolClass__",e.NullClass="__IDL_NullClass__",e.ReservedClass="__IDL_ReservedClass__",e.TextClass="__IDL_TextClass__",e.IntClass="__IDL_IntClass__",e.NatClass="__IDL_NatClass__",e.FloatClass="__IDL_FloatClass__",e.FixedIntClass="__IDL_FixedIntClass__",e.FixedNatClass="__IDL_FixedNatClass__",e.VecClass="__IDL_VecClass__",e.OptClass="__IDL_OptClass__",e.RecordClass="__IDL_RecordClass__",e.TupleClass="__IDL_TupleClass__",e.VariantClass="__IDL_VariantClass__",e.RecClass="__IDL_RecClass__",e.PrincipalClass="__IDL_PrincipalClass__",e.FuncClass="__IDL_FuncClass__",e.ServiceClass="__IDL_ServiceClass__"})(G||(G={}));var an=class{display(){return this.name}valueToString(t){return lt(t)}buildTypeTable(t){t.has(this)||this._buildTypeTableImpl(t)}},kt=class extends an{checkType(t){if(this.name!==t.name)throw new Error(`type mismatch: type on the wire ${t.name}, expect type ${this.name}`);return t}_buildTypeTableImpl(t){}},Ae=class extends an{checkType(t){if(t instanceof Wt){let r=t.getType();if(typeof r=="undefined")throw new Ft("Type mismatch: cannot decode from uninitialized recursive type");return r}throw new Error(`type mismatch: type on the wire ${t.name}, expect type ${this.name}`)}encodeType(t){return t.indexOf(this.name)}},Zn=class extends kt{get typeName(){return G.EmptyClass}static[Symbol.hasInstance](t){return t.typeName===G.EmptyClass}accept(t,r){return t.visitEmpty(this,r)}covariant(t){throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(){throw new Error("Empty cannot appear as a function argument")}valueToString(){throw new Error("Empty cannot appear as a value")}encodeType(){return pt(et.Empty)}decodeValue(){throw new Error("Empty cannot appear as an output")}get name(){return"empty"}},yo=class extends an{get typeName(){return G.UnknownClass}static[Symbol.hasInstance](t){return t.typeName===G.UnknownClass}checkType(t){throw new Error("Method not implemented for unknown.")}accept(t,r){throw t.visitType(this,r)}covariant(t){throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(){throw new Error("Unknown cannot appear as a function argument")}valueToString(){throw new Error("Unknown cannot appear as a value")}encodeType(){throw new Error("Unknown cannot be serialized")}decodeValue(t,r){let n=r.decodeValue(t,r);Object(n)!==n&&(n=Object(n));let s;return r instanceof Wt?s=()=>r.getType():s=()=>r,Object.defineProperty(n,"type",{value:s,writable:!0,enumerable:!1,configurable:!0}),n}_buildTypeTableImpl(){throw new Error("Unknown cannot be serialized")}get name(){return"Unknown"}},bo=class extends kt{get typeName(){return G.BoolClass}static[Symbol.hasInstance](t){return t.typeName===G.BoolClass}accept(t,r){return t.visitBool(this,r)}covariant(t){if(typeof t=="boolean")return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){return new Uint8Array([t?1:0])}encodeType(){return pt(et.Bool)}decodeValue(t,r){switch(this.checkType(r),or(t)){case 0:return!1;case 1:return!0;default:throw new Error("Boolean value out of range")}}get name(){return"bool"}},Nr=class extends kt{get typeName(){return G.NullClass}static[Symbol.hasInstance](t){return t.typeName===G.NullClass}accept(t,r){return t.visitNull(this,r)}covariant(t){if(t===null)return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(){return new Uint8Array(0)}encodeType(){return pt(et.Null)}decodeValue(t,r){return this.checkType(r),null}get name(){return"null"}},Ce=class extends kt{get typeName(){return G.ReservedClass}static[Symbol.hasInstance](t){return t.typeName===G.ReservedClass}accept(t,r){return t.visitReserved(this,r)}covariant(t){return!0}encodeValue(){return new Uint8Array(0)}encodeType(){return pt(et.Reserved)}decodeValue(t,r){return r.name!==this.name&&r.decodeValue(t,r),null}get name(){return"reserved"}},go=class extends kt{get typeName(){return G.TextClass}static[Symbol.hasInstance](t){return t.typeName===G.TextClass}accept(t,r){return t.visitText(this,r)}covariant(t){if(typeof t=="string")return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){let r=new TextEncoder().encode(t),n=st(r.byteLength);return Q(n,r)}encodeType(){return pt(et.Text)}decodeValue(t,r){this.checkType(r);let n=ht(t),s=ir(t,Number(n));return new TextDecoder("utf8",{fatal:!0}).decode(s)}get name(){return"text"}valueToString(t){return`"${t}"`}},Yn=class extends kt{get typeName(){return G.IntClass}static[Symbol.hasInstance](t){return t.typeName===G.IntClass}accept(t,r){return t.visitInt(this,r)}covariant(t){if(typeof t=="bigint"||Number.isInteger(t))return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){return pt(t)}encodeType(){return pt(et.Int)}decodeValue(t,r){return this.checkType(r),Fe(t)}get name(){return"int"}valueToString(t){return t.toString()}},zn=class extends kt{get typeName(){return G.NatClass}static[Symbol.hasInstance](t){return t.typeName===G.NatClass}accept(t,r){return t.visitNat(this,r)}covariant(t){if(typeof t=="bigint"&&t>=BigInt(0)||Number.isInteger(t)&&t>=0)return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){return st(t)}encodeType(){return pt(et.Nat)}decodeValue(t,r){return this.checkType(r),ht(t)}get name(){return"nat"}valueToString(t){return t.toString()}},Xn=class extends kt{get typeName(){return G.FloatClass}static[Symbol.hasInstance](t){return t.typeName===G.FloatClass}constructor(t){if(super(),this._bits=t,t!==32&&t!==64)throw new Error("not a valid float type")}accept(t,r){return t.visitFloat(this,r)}covariant(t){if(typeof t=="number"||t instanceof Number)return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){let r=new ArrayBuffer(this._bits/8),n=new DataView(r);return this._bits===32?n.setFloat32(0,t,!0):n.setFloat64(0,t,!0),new Uint8Array(r)}encodeType(){let t=this._bits===32?et.Float32:et.Float64;return pt(t)}decodeValue(t,r){this.checkType(r);let n=ir(t,this._bits/8),s=nc(n);return this._bits===32?s.getFloat32(0,!0):s.getFloat64(0,!0)}get name(){return`float${this._bits}`}valueToString(t){return t.toString()}},Le=class extends kt{get typeName(){return G.FixedIntClass}static[Symbol.hasInstance](t){return t.typeName===G.FixedIntClass}constructor(t){super(),this._bits=t}accept(t,r){return t.visitFixedInt(this,r)}covariant(t){let r=ho(this._bits-1)*BigInt(-1),n=ho(this._bits-1)-BigInt(1);if(typeof t=="bigint"){if(t>=r&&t<=n)return!0}else if(Number.isInteger(t)){let s=BigInt(t);if(s>=r&&s<=n)return!0}throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){return _i(t,this._bits/8)}encodeType(){let t=Math.log2(this._bits)-3;return pt(-9-t)}decodeValue(t,r){this.checkType(r);let n=ic(t,this._bits/8);return this._bits<=32?Number(n):n}get name(){return`int${this._bits}`}valueToString(t){return t.toString()}},Ie=class extends kt{get typeName(){return G.FixedNatClass}static[Symbol.hasInstance](t){return t.typeName===G.FixedNatClass}constructor(t){super(),this._bits=t}accept(t,r){return t.visitFixedNat(this,r)}covariant(t){let r=ho(this._bits);if(typeof t=="bigint"&&t>=BigInt(0)){if(t=0&&BigInt(t){try{return this._type.covariant(n)}catch(o){throw new Error(`Invalid ${this.display()} argument: -index ${s} -> ${o.message}`,{cause:o})}}))return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){let r=ot(t.length);if(this._blobOptimization)return tt(r,new Uint8Array(t));if(ArrayBuffer.isView(t)){if(t instanceof Int16Array||t instanceof Uint16Array){let s=new DataView(new ArrayBuffer(t.length*2));for(let o=0;othis._type.valueToString(n)).join("; ")}}`}},ar=class e extends Ae{get typeName(){return G.OptClass}static[Symbol.hasInstance](t){return t.typeName===G.OptClass}constructor(t){super(),this._type=t}accept(t,r){return t.visitOpt(this,this._type,r)}covariant(t){try{if(Array.isArray(t)&&(t.length===0||t.length===1&&this._type.covariant(t[0])))return!0}catch(r){throw new Error(`Invalid ${this.display()} argument: ${lt(t)} +index ${s} -> ${o.message}`,{cause:o})}}))return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){let r=st(t.length);if(this._blobOptimization)return Q(r,new Uint8Array(t));if(ArrayBuffer.isView(t)){if(t instanceof Int16Array||t instanceof Uint16Array){let s=new DataView(new ArrayBuffer(t.length*2));for(let o=0;othis._type.valueToString(n)).join("; ")}}`}},ar=class e extends Ae{get typeName(){return G.OptClass}static[Symbol.hasInstance](t){return t.typeName===G.OptClass}constructor(t){super(),this._type=t}accept(t,r){return t.visitOpt(this,this._type,r)}covariant(t){try{if(Array.isArray(t)&&(t.length===0||t.length===1&&this._type.covariant(t[0])))return!0}catch(r){throw new Error(`Invalid ${this.display()} argument: ${lt(t)} --> ${r.message}`,{cause:r})}throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){return t.length===0?new Uint8Array([0]):tt(new Uint8Array([1]),this._type.encodeValue(t[0]))}_buildTypeTableImpl(t){this._type.buildTypeTable(t);let r=pt(rt.Opt),n=this._type.encodeType(t);t.add(this,tt(r,n))}decodeValue(t,r){if(r instanceof Nr)return[];if(r instanceof Ce)return[];let n=r;if(r instanceof Wt){let s=r.getType();if(typeof s=="undefined")throw new Mt("Type mismatch: cannot decode from uninitialized recursive type");n=s}if(n instanceof e)switch(or(t)){case 0:return[];case 1:{let s=t.save();try{return[this._type.decodeValue(t,n._type)]}catch(o){return t.restore(s),n._type.decodeValue(t,n._type),[]}}default:throw new Mt(`Invalid option value: expected 0 (None) or 1 (Some) for type '${this.display()}'`)}else{if(this._type instanceof Nr||this._type instanceof e||this._type instanceof Ce)return n.decodeValue(t,n),[];{let s=t.save();try{return[this._type.decodeValue(t,r)]}catch(o){return t.restore(s),n.decodeValue(t,r),[]}}}}get name(){return`opt ${this._type.name}`}display(){return`opt ${this._type.display()}`}valueToString(t){return t.length===0?"null":`opt ${this._type.valueToString(t[0])}`}},Ur=class e extends Ae{get typeName(){return G.RecordClass}static[Symbol.hasInstance](t){return t.typeName===G.RecordClass||t.typeName===G.TupleClass}constructor(t={}){super(),this._fields=Object.entries(t).sort((r,n)=>Rt(r[0])-Rt(n[0]))}accept(t,r){return t.visitRecord(this,this._fields,r)}tryAsTuple(){let t=[];for(let r=0;r{if(!t.hasOwnProperty(r))throw new Error(`Record is missing key "${r}".`);try{return n.covariant(t[r])}catch(s){throw new Error(`Invalid ${this.display()} argument: +-> ${r.message}`,{cause:r})}throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){return t.length===0?new Uint8Array([0]):Q(new Uint8Array([1]),this._type.encodeValue(t[0]))}_buildTypeTableImpl(t){this._type.buildTypeTable(t);let r=pt(et.Opt),n=this._type.encodeType(t);t.add(this,Q(r,n))}decodeValue(t,r){if(r instanceof Nr)return[];if(r instanceof Ce)return[];let n=r;if(r instanceof Wt){let s=r.getType();if(typeof s=="undefined")throw new Ft("Type mismatch: cannot decode from uninitialized recursive type");n=s}if(n instanceof e)switch(or(t)){case 0:return[];case 1:{let s=t.save();try{return[this._type.decodeValue(t,n._type)]}catch(o){return t.restore(s),n._type.decodeValue(t,n._type),[]}}default:throw new Ft(`Invalid option value: expected 0 (None) or 1 (Some) for type '${this.display()}'`)}else{if(this._type instanceof Nr||this._type instanceof e||this._type instanceof Ce)return n.decodeValue(t,n),[];{let s=t.save();try{return[this._type.decodeValue(t,r)]}catch(o){return t.restore(s),n.decodeValue(t,r),[]}}}}get name(){return`opt ${this._type.name}`}display(){return`opt ${this._type.display()}`}valueToString(t){return t.length===0?"null":`opt ${this._type.valueToString(t[0])}`}},Ur=class e extends Ae{get typeName(){return G.RecordClass}static[Symbol.hasInstance](t){return t.typeName===G.RecordClass||t.typeName===G.TupleClass}constructor(t={}){super(),this._fields=Object.entries(t).sort((r,n)=>Rt(r[0])-Rt(n[0]))}accept(t,r){return t.visitRecord(this,this._fields,r)}tryAsTuple(){let t=[];for(let r=0;r{if(!t.hasOwnProperty(r))throw new Error(`Record is missing key "${r}".`);try{return n.covariant(t[r])}catch(s){throw new Error(`Invalid ${this.display()} argument: -field ${r} -> ${s.message}`,{cause:s})}}))return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){let r=this._fields.map(([s])=>t[s]),n=Gn(this._fields,r,([,s],o)=>s.encodeValue(o));return tt(...n)}_buildTypeTableImpl(t){this._fields.forEach(([o,i])=>i.buildTypeTable(t));let r=pt(rt.Record),n=ot(this._fields.length),s=this._fields.map(([o,i])=>tt(ot(Rt(o)),i.encodeType(t)));t.add(this,tt(r,n,tt(...s)))}decodeValue(t,r){let n=this.checkType(r);if(!(n instanceof e))throw new Mt(`Expected type '${this.display()}', but received non-record type '${n.display()}'`);let s={},o=0,i=0;for(;i=this._fields.length){c.decodeValue(t,c),i++;continue}let[u,d]=this._fields[o],l=Rt(this._fields[o][0]),f=Rt(a);if(l===f)s[u]=d.decodeValue(t,c),o++,i++;else if(f>l)if(d instanceof ar||d instanceof Ce)s[u]=[],o++;else{let h=this._fields.map(([m])=>m).join(", "),p=n._fields.map(([m])=>m).join(", ");throw new Mt(`Cannot find required field '${u}' in record, expected fields: [${h}], received fields: [${p}]`)}else c.decodeValue(t,c),i++}for(let[a,c]of this._fields.slice(o))if(c instanceof ar||c instanceof Ce)s[a]=[];else{let u=this._fields.map(([l])=>l).join(", "),d=n._fields.map(([l])=>l).join(", ");throw new Mt(`Cannot find required field '${a}' in record, expected fields: [${u}], received fields: [${d}]`)}return s}get fieldsAsObject(){let t={};for(let[r,n]of this._fields)t[Rt(r)]=n;return t}get name(){return`record {${this._fields.map(([r,n])=>`${r}:${n.name}`).join("; ")}}`}display(){return`record {${this._fields.map(([r,n])=>`${r}:${n.display()}`).join("; ")}}`}valueToString(t){let r=this._fields.map(([s])=>t[s]);return`record {${Gn(this._fields,r,([s,o],i)=>`${s}=${o.valueToString(i)}`).join("; ")}}`}},xo=class e extends Ur{get typeName(){return G.TupleClass}static[Symbol.hasInstance](t){return t.typeName===G.TupleClass}constructor(t){let r={};t.forEach((n,s)=>r[`_${s}_`]=n),super(r),this._components=t}accept(t,r){return t.visitTuple(this,this._components,r)}covariant(t){if(Array.isArray(t)&&t.length>=this._fields.length&&this._components.every((r,n)=>{try{return r.covariant(t[n])}catch(s){throw new Error(`Invalid ${this.display()} argument: +field ${r} -> ${s.message}`,{cause:s})}}))return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){let r=this._fields.map(([s])=>t[s]),n=Gn(this._fields,r,([,s],o)=>s.encodeValue(o));return Q(...n)}_buildTypeTableImpl(t){this._fields.forEach(([o,i])=>i.buildTypeTable(t));let r=pt(et.Record),n=st(this._fields.length),s=this._fields.map(([o,i])=>Q(st(Rt(o)),i.encodeType(t)));t.add(this,Q(r,n,Q(...s)))}decodeValue(t,r){let n=this.checkType(r);if(!(n instanceof e))throw new Ft(`Expected type '${this.display()}', but received non-record type '${n.display()}'`);let s={},o=0,i=0;for(;i=this._fields.length){c.decodeValue(t,c),i++;continue}let[f,l]=this._fields[o],d=Rt(this._fields[o][0]),u=Rt(a);if(d===u)s[f]=l.decodeValue(t,c),o++,i++;else if(u>d)if(l instanceof ar||l instanceof Ce)s[f]=[],o++;else{let h=this._fields.map(([m])=>m).join(", "),p=n._fields.map(([m])=>m).join(", ");throw new Ft(`Cannot find required field '${f}' in record, expected fields: [${h}], received fields: [${p}]`)}else c.decodeValue(t,c),i++}for(let[a,c]of this._fields.slice(o))if(c instanceof ar||c instanceof Ce)s[a]=[];else{let f=this._fields.map(([d])=>d).join(", "),l=n._fields.map(([d])=>d).join(", ");throw new Ft(`Cannot find required field '${a}' in record, expected fields: [${f}], received fields: [${l}]`)}return s}get fieldsAsObject(){let t={};for(let[r,n]of this._fields)t[Rt(r)]=n;return t}get name(){return`record {${this._fields.map(([r,n])=>`${r}:${n.name}`).join("; ")}}`}display(){return`record {${this._fields.map(([r,n])=>`${r}:${n.display()}`).join("; ")}}`}valueToString(t){let r=this._fields.map(([s])=>t[s]);return`record {${Gn(this._fields,r,([s,o],i)=>`${s}=${o.valueToString(i)}`).join("; ")}}`}},xo=class e extends Ur{get typeName(){return G.TupleClass}static[Symbol.hasInstance](t){return t.typeName===G.TupleClass}constructor(t){let r={};t.forEach((n,s)=>r[`_${s}_`]=n),super(r),this._components=t}accept(t,r){return t.visitTuple(this,this._components,r)}covariant(t){if(Array.isArray(t)&&t.length>=this._fields.length&&this._components.every((r,n)=>{try{return r.covariant(t[n])}catch(s){throw new Error(`Invalid ${this.display()} argument: -index ${n} -> ${s.message}`,{cause:s})}}))return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){let r=Gn(this._components,t,(n,s)=>n.encodeValue(s));return tt(...r)}decodeValue(t,r){let n=this.checkType(r);if(!(n instanceof e))throw new Mt(`Expected type '${this.display()}', but received non-tuple type '${n.display()}'`);if(n._components.length=this._components.length?i.decodeValue(t,i):s.push(this._components[o].decodeValue(t,i));return s}display(){return`record {${this._components.map(r=>r.display()).join("; ")}}`}valueToString(t){return`record {${Gn(this._components,t,(n,s)=>n.valueToString(s)).join("; ")}}`}},un=class e extends Ae{get typeName(){return G.VariantClass}static[Symbol.hasInstance](t){return t.typeName===G.VariantClass}constructor(t={}){super(),this._fields=Object.entries(t).sort((r,n)=>Rt(r[0])-Rt(n[0]))}accept(t,r){return t.visitVariant(this,this._fields,r)}covariant(t){if(typeof t=="object"&&Object.entries(t).length===1&&this._fields.every(([r,n])=>{try{return!t.hasOwnProperty(r)||n.covariant(t[r])}catch(s){throw new Error(`Invalid ${this.display()} argument: +index ${n} -> ${s.message}`,{cause:s})}}))return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){let r=Gn(this._components,t,(n,s)=>n.encodeValue(s));return Q(...r)}decodeValue(t,r){let n=this.checkType(r);if(!(n instanceof e))throw new Ft(`Expected type '${this.display()}', but received non-tuple type '${n.display()}'`);if(n._components.length=this._components.length?i.decodeValue(t,i):s.push(this._components[o].decodeValue(t,i));return s}display(){return`record {${this._components.map(r=>r.display()).join("; ")}}`}valueToString(t){return`record {${Gn(this._components,t,(n,s)=>n.valueToString(s)).join("; ")}}`}},un=class e extends Ae{get typeName(){return G.VariantClass}static[Symbol.hasInstance](t){return t.typeName===G.VariantClass}constructor(t={}){super(),this._fields=Object.entries(t).sort((r,n)=>Rt(r[0])-Rt(n[0]))}accept(t,r){return t.visitVariant(this,this._fields,r)}covariant(t){if(typeof t=="object"&&Object.entries(t).length===1&&this._fields.every(([r,n])=>{try{return!t.hasOwnProperty(r)||n.covariant(t[r])}catch(s){throw new Error(`Invalid ${this.display()} argument: -variant ${r} -> ${s.message}`,{cause:s})}}))return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){for(let r=0;r{o.buildTypeTable(t)});let r=pt(rt.Variant),n=ot(this._fields.length),s=this._fields.map(([o,i])=>tt(ot(Rt(o)),i.encodeType(t)));t.add(this,tt(r,n,...s))}decodeValue(t,r){let n=this.checkType(r);if(!(n instanceof e))throw new Mt(`Expected type '${this.display()}', but received non-variant type '${n.display()}'`);let s=Number(ht(t));if(s>=n._fields.length)throw Error(`Invalid variant index: ${s}`);let[o,i]=n._fields[s];for(let[c,u]of this._fields)if(Rt(o)===Rt(c)){let d=u.decodeValue(t,i);return{[c]:d}}let a=this._fields.map(([c])=>c).join(", ");throw new Mt(`Cannot find field hash ${o} in variant, expected fields: [${a}]`)}get name(){return`variant {${this._fields.map(([r,n])=>`${r}:${n.name}`).join("; ")}}`}display(){return`variant {${this._fields.map(([r,n])=>r+(n.name==="null"?"":`:${n.display()}`)).join("; ")}}`}valueToString(t){for(let[r,n]of this._fields)if(t.hasOwnProperty(r)){let s=n.valueToString(t[r]);return s==="null"?`variant {${r}}`:`variant {${r}=${s}}`}throw new Error(`Variant has no data: ${t}`)}get alternativesAsObject(){let t={};for(let[r,n]of this._fields)t[Rt(r)]=n;return t}},_o=class _o extends Ae{constructor(){super(...arguments),this._id=_o._counter++}get typeName(){return G.RecClass}static[Symbol.hasInstance](t){return t.typeName===G.RecClass}accept(t,r){if(!this._type)throw Error("Recursive type uninitialized.");return t.visitRec(this,this._type,r)}fill(t){this._type=t}getType(){return this._type}covariant(t){if(this._type&&this._type.covariant(t))return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){if(!this._type)throw Error("Recursive type uninitialized.");return this._type.encodeValue(t)}_buildTypeTableImpl(t){if(!this._type)throw Error("Recursive type uninitialized.");t.add(this,new Uint8Array([])),this._type.buildTypeTable(t),t.merge(this,this._type.name)}decodeValue(t,r){if(!this._type)throw Error("Recursive type uninitialized.");return this._type.decodeValue(t,r)}get name(){return`rec_${this._id}`}display(){if(!this._type)throw Error("Recursive type uninitialized.");return`\u03BC${this.name}.${this._type.name}`}valueToString(t){if(!this._type)throw Error("Recursive type uninitialized.");return this._type.valueToString(t)}};_o._counter=0;var Wt=_o;function Ai(e){if(or(e)!==1)throw new Error("Cannot decode principal");let r=Number(ht(e));return L.fromUint8Array(new Uint8Array(ir(e,r)))}var wo=class extends Ft{get typeName(){return G.PrincipalClass}static[Symbol.hasInstance](t){return t.typeName===G.PrincipalClass}accept(t,r){return t.visitPrincipal(this,r)}covariant(t){if(t&&t._isPrincipal)return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){let r=t.toUint8Array(),n=ot(r.byteLength);return tt(new Uint8Array([1]),n,r)}encodeType(){return pt(rt.Principal)}decodeValue(t,r){return this.checkType(r),Ai(t)}get name(){return"principal"}valueToString(t){return`${this.name} "${t.toText()}"`}},Pr=class extends Ae{get typeName(){return G.FuncClass}static[Symbol.hasInstance](t){return t.typeName===G.FuncClass}static argsToString(t,r){if(t.length!==r.length)throw new Error("arity mismatch");return`(${t.map((n,s)=>n.valueToString(r[s])).join(", ")})`}constructor(t,r,n=[]){super(),this.argTypes=t,this.retTypes=r,this.annotations=n}accept(t,r){return t.visitFunc(this,r)}covariant(t){if(Array.isArray(t)&&t.length===2&&t[0]&&t[0]._isPrincipal&&typeof t[1]=="string")return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue([t,r]){let n=t.toUint8Array(),s=ot(n.byteLength),o=tt(new Uint8Array([1]),s,n),i=new TextEncoder().encode(r),a=ot(i.byteLength);return tt(new Uint8Array([1]),o,a,i)}_buildTypeTableImpl(t){this.argTypes.forEach(u=>u.buildTypeTable(t)),this.retTypes.forEach(u=>u.buildTypeTable(t));let r=pt(rt.Func),n=ot(this.argTypes.length),s=tt(...this.argTypes.map(u=>u.encodeType(t))),o=ot(this.retTypes.length),i=tt(...this.retTypes.map(u=>u.encodeType(t))),a=ot(this.annotations.length),c=tt(...this.annotations.map(u=>this.encodeAnnotation(u)));t.add(this,tt(r,n,s,o,i,a,c))}decodeValue(t,r){var d;let n=r instanceof Wt&&(d=r.getType())!=null?d:r;if(!Ci(n,this))throw new Error(`Cannot decode function reference at type ${this.display()} from wire type ${n.display()}`);if(or(t)!==1)throw new Error("Cannot decode function reference");let o=Ai(t),i=Number(ht(t)),a=ir(t,i),u=new TextDecoder("utf8",{fatal:!0}).decode(a);return[o,u]}get name(){let t=this.argTypes.map(s=>s.name).join(", "),r=this.retTypes.map(s=>s.name).join(", "),n=` ${this.annotations.join(" ")}`;return`(${t}) -> (${r})${n}`}valueToString([t,r]){return`func "${t.toText()}".${r}`}display(){let t=this.argTypes.map(s=>s.display()).join(", "),r=this.retTypes.map(s=>s.display()).join(", "),n=` ${this.annotations.join(" ")}`;return`(${t}) \u2192 (${r})${n}`}encodeAnnotation(t){if(t==="query")return new Uint8Array([1]);if(t==="oneway")return new Uint8Array([2]);if(t==="composite_query")return new Uint8Array([3]);throw new Error("Illegal function annotation")}},fn=class extends Ae{get typeName(){return G.ServiceClass}static[Symbol.hasInstance](t){return t.typeName===G.ServiceClass}constructor(t){super(),this._fields=Object.entries(t).sort((r,n)=>r[0]n[0]?1:0)}accept(t,r){return t.visitService(this,r)}covariant(t){if(t&&t._isPrincipal)return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){let r=t.toUint8Array(),n=ot(r.length);return tt(new Uint8Array([1]),n,r)}_buildTypeTableImpl(t){this._fields.forEach(([o,i])=>i.buildTypeTable(t));let r=pt(rt.Service),n=ot(this._fields.length),s=this._fields.map(([o,i])=>{let a=new TextEncoder().encode(o),c=ot(a.length);return tt(c,a,i.encodeType(t))});t.add(this,tt(r,n,...s))}decodeValue(t,r){var s;let n=r instanceof Wt&&(s=r.getType())!=null?s:r;if(!Ci(n,this))throw new Error(`Cannot decode service reference at type ${this.display()} from wire type ${n.display()}`);return Ai(t)}get name(){return`service {${this._fields.map(([r,n])=>`${r}:${n.name}`).join("; ")}}`}valueToString(t){return`service "${t.toText()}"`}fieldsAsObject(){let t={};for(let[r,n]of this._fields)t[r]=n;return t}};function lt(e){let t=JSON.stringify(e,(r,n)=>typeof n=="bigint"?`BigInt(${n})`:n);return t&&t.length>ac?`${t.substring(0,ac-3)}...`:t}function If(e,t){if(t.lengtha.buildTypeTable(r));let n=r.encode(),s=ot(t.length),o=tt(...e.map(a=>a.encodeType(r))),i=tt(...Gn(e,t,(a,c)=>{try{a.covariant(c)}catch(u){throw new Error(`${u.message} +variant ${r} -> ${s.message}`,{cause:s})}}))return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){for(let r=0;r{o.buildTypeTable(t)});let r=pt(et.Variant),n=st(this._fields.length),s=this._fields.map(([o,i])=>Q(st(Rt(o)),i.encodeType(t)));t.add(this,Q(r,n,...s))}decodeValue(t,r){let n=this.checkType(r);if(!(n instanceof e))throw new Ft(`Expected type '${this.display()}', but received non-variant type '${n.display()}'`);let s=Number(ht(t));if(s>=n._fields.length)throw Error(`Invalid variant index: ${s}`);let[o,i]=n._fields[s];for(let[c,f]of this._fields)if(Rt(o)===Rt(c)){let l=f.decodeValue(t,i);return{[c]:l}}let a=this._fields.map(([c])=>c).join(", ");throw new Ft(`Cannot find field hash ${o} in variant, expected fields: [${a}]`)}get name(){return`variant {${this._fields.map(([r,n])=>`${r}:${n.name}`).join("; ")}}`}display(){return`variant {${this._fields.map(([r,n])=>r+(n.name==="null"?"":`:${n.display()}`)).join("; ")}}`}valueToString(t){for(let[r,n]of this._fields)if(t.hasOwnProperty(r)){let s=n.valueToString(t[r]);return s==="null"?`variant {${r}}`:`variant {${r}=${s}}`}throw new Error(`Variant has no data: ${t}`)}get alternativesAsObject(){let t={};for(let[r,n]of this._fields)t[Rt(r)]=n;return t}},_o=class _o extends Ae{constructor(){super(...arguments),this._id=_o._counter++}get typeName(){return G.RecClass}static[Symbol.hasInstance](t){return t.typeName===G.RecClass}accept(t,r){if(!this._type)throw Error("Recursive type uninitialized.");return t.visitRec(this,this._type,r)}fill(t){this._type=t}getType(){return this._type}covariant(t){if(this._type&&this._type.covariant(t))return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){if(!this._type)throw Error("Recursive type uninitialized.");return this._type.encodeValue(t)}_buildTypeTableImpl(t){if(!this._type)throw Error("Recursive type uninitialized.");t.add(this,new Uint8Array([])),this._type.buildTypeTable(t),t.merge(this,this._type.name)}decodeValue(t,r){if(!this._type)throw Error("Recursive type uninitialized.");return this._type.decodeValue(t,r)}get name(){return`rec_${this._id}`}display(){if(!this._type)throw Error("Recursive type uninitialized.");return`\u03BC${this.name}.${this._type.name}`}valueToString(t){if(!this._type)throw Error("Recursive type uninitialized.");return this._type.valueToString(t)}};_o._counter=0;var Wt=_o;function Ai(e){if(or(e)!==1)throw new Error("Cannot decode principal");let r=Number(ht(e));return L.fromUint8Array(new Uint8Array(ir(e,r)))}var wo=class extends kt{get typeName(){return G.PrincipalClass}static[Symbol.hasInstance](t){return t.typeName===G.PrincipalClass}accept(t,r){return t.visitPrincipal(this,r)}covariant(t){if(t&&t._isPrincipal)return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){let r=t.toUint8Array(),n=st(r.byteLength);return Q(new Uint8Array([1]),n,r)}encodeType(){return pt(et.Principal)}decodeValue(t,r){return this.checkType(r),Ai(t)}get name(){return"principal"}valueToString(t){return`${this.name} "${t.toText()}"`}},Pr=class extends Ae{get typeName(){return G.FuncClass}static[Symbol.hasInstance](t){return t.typeName===G.FuncClass}static argsToString(t,r){if(t.length!==r.length)throw new Error("arity mismatch");return`(${t.map((n,s)=>n.valueToString(r[s])).join(", ")})`}constructor(t,r,n=[]){super(),this.argTypes=t,this.retTypes=r,this.annotations=n}accept(t,r){return t.visitFunc(this,r)}covariant(t){if(Array.isArray(t)&&t.length===2&&t[0]&&t[0]._isPrincipal&&typeof t[1]=="string")return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue([t,r]){let n=t.toUint8Array(),s=st(n.byteLength),o=Q(new Uint8Array([1]),s,n),i=new TextEncoder().encode(r),a=st(i.byteLength);return Q(new Uint8Array([1]),o,a,i)}_buildTypeTableImpl(t){this.argTypes.forEach(f=>f.buildTypeTable(t)),this.retTypes.forEach(f=>f.buildTypeTable(t));let r=pt(et.Func),n=st(this.argTypes.length),s=Q(...this.argTypes.map(f=>f.encodeType(t))),o=st(this.retTypes.length),i=Q(...this.retTypes.map(f=>f.encodeType(t))),a=st(this.annotations.length),c=Q(...this.annotations.map(f=>this.encodeAnnotation(f)));t.add(this,Q(r,n,s,o,i,a,c))}decodeValue(t,r){var l;let n=r instanceof Wt&&(l=r.getType())!=null?l:r;if(!Ci(n,this))throw new Error(`Cannot decode function reference at type ${this.display()} from wire type ${n.display()}`);if(or(t)!==1)throw new Error("Cannot decode function reference");let o=Ai(t),i=Number(ht(t)),a=ir(t,i),f=new TextDecoder("utf8",{fatal:!0}).decode(a);return[o,f]}get name(){let t=this.argTypes.map(s=>s.name).join(", "),r=this.retTypes.map(s=>s.name).join(", "),n=` ${this.annotations.join(" ")}`;return`(${t}) -> (${r})${n}`}valueToString([t,r]){return`func "${t.toText()}".${r}`}display(){let t=this.argTypes.map(s=>s.display()).join(", "),r=this.retTypes.map(s=>s.display()).join(", "),n=` ${this.annotations.join(" ")}`;return`(${t}) \u2192 (${r})${n}`}encodeAnnotation(t){if(t==="query")return new Uint8Array([1]);if(t==="oneway")return new Uint8Array([2]);if(t==="composite_query")return new Uint8Array([3]);throw new Error("Illegal function annotation")}},fn=class extends Ae{get typeName(){return G.ServiceClass}static[Symbol.hasInstance](t){return t.typeName===G.ServiceClass}constructor(t){super(),this._fields=Object.entries(t).sort((r,n)=>r[0]n[0]?1:0)}accept(t,r){return t.visitService(this,r)}covariant(t){if(t&&t._isPrincipal)return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){let r=t.toUint8Array(),n=st(r.length);return Q(new Uint8Array([1]),n,r)}_buildTypeTableImpl(t){this._fields.forEach(([o,i])=>i.buildTypeTable(t));let r=pt(et.Service),n=st(this._fields.length),s=this._fields.map(([o,i])=>{let a=new TextEncoder().encode(o),c=st(a.length);return Q(c,a,i.encodeType(t))});t.add(this,Q(r,n,...s))}decodeValue(t,r){var s;let n=r instanceof Wt&&(s=r.getType())!=null?s:r;if(!Ci(n,this))throw new Error(`Cannot decode service reference at type ${this.display()} from wire type ${n.display()}`);return Ai(t)}get name(){return`service {${this._fields.map(([r,n])=>`${r}:${n.name}`).join("; ")}}`}valueToString(t){return`service "${t.toText()}"`}fieldsAsObject(){let t={};for(let[r,n]of this._fields)t[r]=n;return t}};function lt(e){let t=JSON.stringify(e,(r,n)=>typeof n=="bigint"?`BigInt(${n})`:n);return t&&t.length>ac?`${t.substring(0,ac-3)}...`:t}function If(e,t){if(t.lengtha.buildTypeTable(r));let n=r.encode(),s=st(t.length),o=Q(...e.map(a=>a.encodeType(r))),i=Q(...Gn(e,t,(a,c)=>{try{a.covariant(c)}catch(f){throw new Error(`${f.message} -`)}return a.encodeValue(c)}));return tt(Sf,n,s,o,i)}function Af(e,t){let r=new he(t);if(t.byteLength=Math.pow(2,32))throw new Error("field id out of 32-bit range");if(typeof T=="number"&&T>=I)throw new Error("field id collision or not sorted");T=I;let S=Number(Me(f));b.push([I,S])}h.push([w,b]);break}case rt.Func:{let b=[],v=Number(ht(f));for(;v--;)b.push(Number(Me(f)));let T=[],I=Number(ht(f));for(;I--;)T.push(Number(Me(f)));let S=[],C=Number(ht(f));for(;C--;)switch(Number(ht(f))){case 1:{S.push("query");break}case 2:{S.push("oneway");break}case 3:{S.push("composite_query");break}default:throw new Error("unknown annotation")}h.push([w,[b,T,S]]);break}case rt.Service:{let b=Number(ht(f)),v=[];for(;b--;){let T=Number(ht(f)),I=new TextDecoder().decode(ir(f,T)),S=Me(f);v.push([I,S])}h.push([w,v]);break}default:throw new Error(`Illegal op_code: ${w}`)}}let m=[],g=Number(ht(f));for(let y=0;yRc());function u(f){if(f<-24)throw new Error("future value not supported");if(f<0)switch(f){case-1:return dc;case-2:return fc;case-3:return pc;case-4:return hc;case-5:return Ec;case-6:return _c;case-7:return vc;case-8:return Bc;case-9:return bc;case-10:return gc;case-11:return xc;case-12:return wc;case-13:return mc;case-14:return yc;case-15:return lc;case-16:return uc;case-17:return cc;case-24:return Tc;default:throw new Error(`Illegal op_code: ${f}`)}if(f>=i.length)throw new Error("type index out of range");return c[f]}function d(f){switch(f[0]){case rt.Vector:{let h=u(f[1]);return Ic(h)}case rt.Opt:{let h=u(f[1]);return Ac(h)}case rt.Record:{let h={};for(let[g,y]of f[1]){let w=`_${g}_`;h[w]=u(y)}let p=Cc(h),m=p.tryAsTuple();return Array.isArray(m)?Sc(...m):p}case rt.Variant:{let h={};for(let[p,m]of f[1]){let g=`_${p}_`;h[g]=u(m)}return Oc(h)}case rt.Func:{let[h,p,m]=f[1];return Nc(h.map(g=>u(g)),p.map(g=>u(g)),m)}case rt.Service:{let h={},p=f[1];for(let[m,g]of p){let y=u(g);if(y instanceof Wt&&(y=y.getType()),!(y instanceof Pr))throw new Error("Illegal service definition: services can only contain functions");h[m]=y}return Uc(h)}default:throw new Error(`Illegal op_code: ${f[0]}`)}}i.forEach((f,h)=>{if(f[0]===rt.Func){let p=d(f);c[h].fill(p)}}),i.forEach((f,h)=>{if(f[0]!==rt.Func){let p=d(f);c[h].fill(p)}}),Ii();let l=a.map(f=>u(f));try{let f=e.map((h,p)=>h.decodeValue(r,l[p]));for(let h=e.length;h0)throw new Error("decode: Left-over bytes");return f}finally{Ii()}}var cc=new Zn,uc=new Ce,Cf=new yo,fc=new bo,dc=new Nr,lc=new go,hc=new Yn,pc=new zn,mc=new Xn(32),yc=new Xn(64),bc=new Le(8),gc=new Le(16),xc=new Le(32),wc=new Le(64),Ec=new Ie(8),_c=new Ie(16),vc=new Ie(32),Bc=new Ie(64),Tc=new wo;function Sc(...e){return new xo(e)}function Ic(e){return new cn(e)}function Ac(e){return new ar(e)}function Cc(e){return new Ur(e)}function Oc(e){return new un(e)}function Rc(){return new Wt}function Nc(e,t,r=[]){return new Pr(e,t,r)}function Uc(e){return new fn(e)}var Eo=class e{constructor(t=new Map){this.rels=t}copy(){let t=new Map;for(let[r,n]of this.rels.entries()){let s=new Map(n);t.set(r,s)}return new e(t)}known(t,r){var n;return(n=this.rels.get(t.name))==null?void 0:n.get(r.name)}addNegative(t,r){this.addNames(t.name,r.name,!1)}add(t,r){this.addNames(t.name,r.name,!0)}display(){let t="";for(let[r,n]of this.rels)for(let[s,o]of n)t+=`${r} ${o?":<":"!<:"} ${s} -`;return t}addNames(t,r,n){let s=this.rels.get(t);if(s==null){let o=new Map;o.set(r,n),this.rels.set(t,o)}else s.set(r,n)}},mo=new Eo;function Ii(){mo=new Eo}function Of(e,t){let r=new Set(e.annotations),n=new Set(t.annotations);if(r.size!==n.size)return!1;for(let s of r)if(!n.has(s))return!1;return!0}function Bi(e){return e instanceof ar||e instanceof Nr||e instanceof Ce}function Ci(e,t){let r=mo.copy(),n=Fe(r,e,t);return n?mo.add(e,t):mo.addNegative(e,t),n}function Fe(e,t,r){if(t.name===r.name)return!0;let n=e.known(t,r);if(n!==void 0)return n;if(e.add(t,r),r instanceof Ce||t instanceof Zn||t instanceof zn&&r instanceof Yn)return!0;if(t instanceof cn&&r instanceof cn)return Fe(e,t._type,r._type);if(r instanceof ar)return!0;if(t instanceof Ur&&r instanceof Ur){let s=t.fieldsAsObject;for(let[o,i]of r._fields){let a=s[Rt(o)];if(a){if(!Fe(e,a,i))return!1}else if(!Bi(i))return!1}return!0}if(t instanceof Pr&&r instanceof Pr){if(!Of(t,r))return!1;for(let s=0;s{let t=new TextEncoder().encode(e);return Tt(t)};function ln(e){return Wn(e)}function Wn(e){let n=Object.entries(e).filter(([,i])=>i!==void 0).map(([i,a])=>{let c=Pc(i),u=Oi(a);return[c,u]}).sort(([i],[a])=>on(i,a)),s=K(...n.map(i=>K(...i)));return Tt(s)}var Dc=new TextEncoder().encode("\ric-state-root"),qc=new TextEncoder().encode(` -ic-request`),kc=new TextEncoder().encode("\vic-response"),Xh=new TextEncoder().encode("ic-request-auth-delegation");var vo=class{getPrincipal(){return this._principal||(this._principal=L.selfAuthenticating(new Uint8Array(this.getPublicKey().toDer()))),this._principal}async transformRequest(t){let{body:r,...n}=t,s=ln(r);return{...n,body:{content:r,sender_pubkey:this.getPublicKey().toDer(),sender_sig:await this.sign(K(qc,s))}}}},hn=class{getPrincipal(){return L.anonymous()}async transformRequest(t){return{...t,body:{content:t.body}}}};var $e=class extends Error{constructor(t){super(t),this.name="DecodingError"}},Fc=55799,Lc=Symbol("CBOR_STOP_CODE"),ye=(e=>(e[e.False=20]="False",e[e.True=21]="True",e[e.Null=22]="Null",e[e.Undefined=23]="Undefined",e[e.Break=31]="Break",e))(ye||{}),bt=(e=>(e[e.UnsignedInteger=0]="UnsignedInteger",e[e.NegativeInteger=1]="NegativeInteger",e[e.ByteString=2]="ByteString",e[e.TextString=3]="TextString",e[e.Array=4]="Array",e[e.Map=5]="Map",e[e.Tag=6]="Tag",e[e.Simple=7]="Simple",e))(bt||{}),Rf=23,Nf=255,Uf=65535,Pf=4294967295,Df=BigInt("0xffffffffffffffff"),me=(e=>(e[e.Value=23]="Value",e[e.OneByte=24]="OneByte",e[e.TwoBytes=25]="TwoBytes",e[e.FourBytes=26]="FourBytes",e[e.EightBytes=27]="EightBytes",e[e.Indefinite=31]="Indefinite",e))(me||{}),pn=!1;function qf(e){return e==null}function $c(e,t){let r=new Uint8Array(t);return r.set(e),r}var kf=new TextDecoder;function Mf(e){return(e&224)>>5}function Ff(e){return e&31}var ts=new Uint8Array,Jn,be=0;function Vc(e,t){var n;ts=e,be=0;let r=qr(t);return(n=t==null?void 0:t(r))!=null?n:r}function qr(e){let[t,r]=Bo();switch(t){case bt.UnsignedInteger:return mn(r);case bt.NegativeInteger:return jf(r);case bt.ByteString:return jc(r);case bt.TextString:return Ni(r);case bt.Array:return Lf(r,e);case bt.Map:return Vf(r,e);case bt.Tag:return Hf(r,e);case bt.Simple:return $f(r)}throw new $e(`Unsupported major type: ${t}`)}function Bo(){let e=ts.at(be);if(qf(e))throw new $e("Provided CBOR data is empty");let t=Mf(e),r=Ff(e);return be++,[t,r]}function Lf(e,t){var s,o;let r=mn(e);if(r===1/0){let i=[],a=qr(t);for(;a!==Lc;)i.push((s=t==null?void 0:t(a))!=null?s:a),a=qr(t);return i}let n=new Array(r);for(let i=0;iNumber.MAX_SAFE_INTEGER)throw new $e("Byte length is too large");let r=Number(t);return be+=r,ts.slice(be-r,be)}function Ni(e){let t=jc(e);return kf.decode(t)}function Hf(e,t){let r=mn(e);if(r===Fc)return qr(t);throw new $e(`Unsupported tag: ${r}.`)}var es=class extends Error{constructor(t){super(t),this.name="SerializationError"}},Kf=2*1024,Gf=100,Zf=new TextEncoder;function Qn(e){return e<<5}var Gt=new Uint8Array(Kf),pe=new DataView(Gt.buffer),yt=0,Ri=[];function Hc(e,t){var n;yt=0;let r=(n=t==null?void 0:t(e))!=null?n:e;return ed(Fc,r,t),Gt.slice(0,yt)}function Ui(e,t){if(yt>Gt.length-Gf&&(Gt=$c(Gt,Gt.length*2),pe=new DataView(Gt.buffer)),e===!1||e===!0||e===null||e===void 0){Xf(e);return}if(typeof e=="number"||typeof e=="bigint"){td(e);return}if(typeof e=="string"){Zc(e);return}if(e instanceof Uint8Array){Mc(e);return}if(e instanceof ArrayBuffer){Mc(new Uint8Array(e));return}if(Array.isArray(e)){Yf(e,t);return}if(typeof e=="object"){zf(e,t);return}throw new es(`Unsupported type: ${typeof e}`)}function Yf(e,t){yn(bt.Array,e.length),e.forEach((r,n)=>{var s;Ui((s=t==null?void 0:t(r,n.toString()))!=null?s:r,t)})}function zf(e,t){Ri=Object.entries(e),yn(bt.Map,Ri.length),Ri.forEach(([r,n])=>{var s;Zc(r),Ui((s=t==null?void 0:t(n,r))!=null?s:n,t)})}function yn(e,t){if(t<=Rf){pe.setUint8(yt++,Qn(e)|Number(t));return}if(t<=Nf){pe.setUint8(yt++,Qn(e)|me.OneByte),pe.setUint8(yt,Number(t)),yt+=1;return}if(t<=Uf){pe.setUint8(yt++,Qn(e)|me.TwoBytes),pe.setUint16(yt,Number(t),pn),yt+=2;return}if(t<=Pf){pe.setUint8(yt++,Qn(e)|me.FourBytes),pe.setUint32(yt,Number(t),pn),yt+=4;return}if(t<=Df){pe.setUint8(yt++,Qn(e)|me.EightBytes),pe.setBigUint64(yt,BigInt(t),pn),yt+=8;return}throw new es(`Value too large to encode: ${t}`)}function Xf(e){yn(bt.Simple,Wf(e))}function Wf(e){if(e===!1)return ye.False;if(e===!0)return ye.True;if(e===null)return ye.Null;if(e===void 0)return ye.Undefined;throw new es(`Unrecognized simple value: ${e.toString()}`)}function Kc(e,t){yn(e,t.length),yt>Gt.length-t.length&&(Gt=$c(Gt,Gt.length+t.length),pe=new DataView(Gt.buffer)),Gt.set(t,yt),yt+=t.length}function Gc(e,t){yn(e,t)}function Jf(e){Gc(bt.UnsignedInteger,e)}function Qf(e){Gc(bt.NegativeInteger,typeof e=="bigint"?-BigInt(1)-e:-1-e)}function td(e){e>=0?Jf(e):Qf(e)}function Zc(e){Kc(bt.TextString,Zf.encode(e))}function Mc(e){Kc(bt.ByteString,e)}function ed(e,t,r){yn(bt.Tag,e),Ui(t,r)}var rs="__expiry__",Pi=BigInt(1e3),nd=BigInt(1e6),sd=BigInt(60),Di=sd*Pi,od=BigInt(1)*Di;function id(e){return e/Pi*Pi}function ad(e){return e/Di*Di}var kr=class e{constructor(t){this.__expiry__=t,this._isExpiry=!0}static fromDeltaInMilliseconds(t,r=0){let n=BigInt(Date.now())+BigInt(r),s=n+BigInt(t),o=ad(s),i;return o>=n+od?i=o:i=id(s),new e(i*nd)}toBigInt(){return this.__expiry__}toHash(){return ot(this.__expiry__)}toString(){return this.__expiry__.toString()}toJSON(){return{[rs]:this.toString()}}static fromJSON(t){let r=JSON.parse(t);if(r[rs])try{let n=BigInt(r[rs]);return new e(n)}catch(n){throw new J(new Hn(`Not a valid BigInt: ${n}`))}throw new J(new Hn(`The input does not contain the key ${rs}`))}static isExpiry(t){return t instanceof e||typeof t=="object"&&t!==null&&"_isExpiry"in t&&t._isExpiry===!0&&"__expiry__"in t&&typeof t.__expiry__=="bigint"}};function cd(e){return typeof e=="object"&&e!==null&&"toCborValue"in e}function To(e){try{return Hc(e,t=>L.isPrincipal(t)?t.toUint8Array():kr.isExpiry(t)?t.toBigInt():cd(t)?t.toCborValue():t)}catch(t){throw J.fromCode(new Xs(t,e))}}function Lt(e){try{return Vc(e)}catch(t){throw J.fromCode(new zs(t,e))}}var ns=()=>{if(typeof window!="undefined"&&window.crypto&&window.crypto.getRandomValues){let e=new Uint32Array(1);return window.crypto.getRandomValues(e),e[0]}if(typeof crypto!="undefined"&&crypto.getRandomValues){let e=new Uint32Array(1);return crypto.getRandomValues(e),e[0]}return typeof crypto!="undefined"&&crypto.randomInt?crypto.randomInt(0,4294967295):Math.floor(Math.random()*4294967295)};var Ve;(function(e){e.Query="read",e.ReadState="read_state",e.Call="call"})(Ve||(Ve={}));var Io;(function(e){e.Call="call"})(Io||(Io={}));var Mr;(function(e){e.Query="query",e.ReadState="read_state"})(Mr||(Mr={}));var Zt;(function(e){e.Received="received",e.Processing="processing",e.Replied="replied",e.Rejected="rejected",e.Unknown="unknown",e.Done="done"})(Zt||(Zt={}));function ss(){let e=new ArrayBuffer(16),t=new DataView(e),r=ns(),n=ns(),s=ns(),o=ns();return t.setUint32(0,r),t.setUint32(4,n),t.setUint32(8,s),t.setUint32(12,o),Object.assign(new Uint8Array(e),{__nonce__:void 0})}function qi(e=ss){return async t=>{let r=t.request.headers;t.request.headers=r,t.endpoint===Ve.Call&&(t.body.nonce=e())}}function ki(e){let t=[];return e.forEach((r,n)=>{t.push([n,r])}),t}var Fi=BigInt(0),Ao=BigInt(1);function Fr(e,t=""){if(typeof e!="boolean"){let r=t&&`"${t}"`;throw new Error(r+"expected boolean, got type="+typeof e)}return e}function ur(e,t,r=""){let n=Be(e),s=e==null?void 0:e.length,o=t!==void 0;if(!n||o&&s!==t){let i=r&&`"${r}" `,a=o?` of length ${t}`:"",c=n?`length=${s}`:`type=${typeof e}`;throw new Error(i+"expected Uint8Array"+a+", got "+c)}return e}function Yc(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return e===""?Fi:BigInt("0x"+e)}function $t(e){return Yc(V(e))}function je(e){return dt(e),Yc(V(Uint8Array.from(e).reverse()))}function gt(e,t){return Bt(e.toString(16).padStart(t*2,"0"))}function Li(e,t){return gt(e,t).reverse()}function ut(e,t,r){let n;if(typeof t=="string")try{n=Bt(t)}catch(o){throw new Error(e+" must be hex string or Uint8Array, cause: "+o)}else if(Be(t))n=Uint8Array.from(t);else throw new Error(e+" must be hex string or Uint8Array");let s=n.length;if(typeof r=="number"&&s!==r)throw new Error(e+" of length "+r+" expected, got "+s);return n}function zc(e,t){if(e.length!==t.length)return!1;let r=0;for(let n=0;ntypeof e=="bigint"&&Fi<=e;function Vi(e,t,r){return Mi(e)&&Mi(t)&&Mi(r)&&t<=e&&eFi;e>>=Ao,t+=1);return t}function Xc(e,t){return e>>BigInt(t)&Ao}var ge=e=>(Ao<n(s,o,!1)),Object.entries(r).forEach(([s,o])=>n(s,o,!0))}var bn=()=>{throw new Error("not implemented")};function fr(e){let t=new WeakMap;return(r,...n)=>{let s=t.get(r);if(s!==void 0)return s;let o=e(r,...n);return t.set(r,o),o}}var Nt=BigInt(0),xt=BigInt(1),Lr=BigInt(2),Qc=BigInt(3),tu=BigInt(4),eu=BigInt(5),ud=BigInt(7),ru=BigInt(8),fd=BigInt(9),nu=BigInt(16);function at(e,t){let r=e%t;return r>=Nt?r:t+r}function xe(e,t,r){let n=e;for(;t-- >Nt;)n*=n,n%=r;return n}function Jc(e,t){if(e===Nt)throw new Error("invert: expected non-zero number");if(t<=Nt)throw new Error("invert: expected positive modulus, got "+t);let r=at(e,t),n=t,s=Nt,o=xt,i=xt,a=Nt;for(;r!==Nt;){let u=n/r,d=n%r,l=s-i*u,f=o-a*u;n=r,r=d,s=i,o=a,i=l,a=f}if(n!==xt)throw new Error("invert: does not exist");return at(s,t)}function ji(e,t,r){if(!e.eql(e.sqr(t),r))throw new Error("Cannot find square root")}function su(e,t){let r=(e.ORDER+xt)/tu,n=e.pow(t,r);return ji(e,n,t),n}function dd(e,t){let r=(e.ORDER-eu)/ru,n=e.mul(t,Lr),s=e.pow(n,r),o=e.mul(t,s),i=e.mul(e.mul(o,Lr),s),a=e.mul(o,e.sub(i,e.ONE));return ji(e,a,t),a}function ld(e){let t=Ut(e),r=ou(e),n=r(t,t.neg(t.ONE)),s=r(t,n),o=r(t,t.neg(n)),i=(e+ud)/nu;return(a,c)=>{let u=a.pow(c,i),d=a.mul(u,n),l=a.mul(u,s),f=a.mul(u,o),h=a.eql(a.sqr(d),c),p=a.eql(a.sqr(l),c);u=a.cmov(u,d,h),d=a.cmov(f,l,p);let m=a.eql(a.sqr(d),c),g=a.cmov(u,d,m);return ji(a,g,c),g}}function ou(e){if(e1e3)throw new Error("Cannot find square root: probably non-prime P");if(r===1)return su;let o=s.pow(n,t),i=(t+xt)/Lr;return function(c,u){if(c.is0(u))return u;if(os(c,u)!==1)throw new Error("Cannot find square root");let d=r,l=c.mul(c.ONE,o),f=c.pow(u,t),h=c.pow(u,i);for(;!c.eql(f,c.ONE);){if(c.is0(f))return c.ZERO;let p=1,m=c.sqr(f);for(;!c.eql(m,c.ONE);)if(p++,m=c.sqr(m),p===d)throw new Error("Cannot find square root");let g=xt<(at(e,t)&xt)===xt,pd=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Oo(e){let t={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},r=pd.reduce((n,s)=>(n[s]="function",n),t);return Ke(e,r),e}function is(e,t,r){if(rNt;)r&xt&&(n=e.mul(n,s)),s=e.sqr(s),r>>=xt;return n}function Jt(e,t,r=!1){let n=new Array(t.length).fill(r?e.ZERO:void 0),s=t.reduce((i,a,c)=>e.is0(a)?i:(n[c]=i,e.mul(i,a)),e.ONE),o=e.inv(s);return t.reduceRight((i,a,c)=>e.is0(a)?i:(n[c]=e.mul(i,n[c]),e.mul(i,a)),o),n}function os(e,t){let r=(e.ORDER-xt)/Lr,n=e.pow(t,r),s=e.eql(n,e.ONE),o=e.eql(n,e.ZERO),i=e.eql(n,e.neg(e.ONE));if(!s&&!o&&!i)throw new Error("invalid Legendre symbol result");return s?1:o?0:-1}function Hi(e,t){t!==void 0&&hi(t);let r=t!==void 0?t:e.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function Ut(e,t,r=!1,n={}){if(e<=Nt)throw new Error("invalid field: expected ORDER > 0, got "+e);let s,o,i=!1,a;if(typeof t=="object"&&t!=null){if(n.sqrt||r)throw new Error("cannot specify opts in two arguments");let f=t;f.BITS&&(s=f.BITS),f.sqrt&&(o=f.sqrt),typeof f.isLE=="boolean"&&(r=f.isLE),typeof f.modFromBytes=="boolean"&&(i=f.modFromBytes),a=f.allowedLengths}else typeof t=="number"&&(s=t),n.sqrt&&(o=n.sqrt);let{nBitLength:c,nByteLength:u}=Hi(e,s);if(u>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let d,l=Object.freeze({ORDER:e,isLE:r,BITS:c,BYTES:u,MASK:ge(c),ZERO:Nt,ONE:xt,allowedLengths:a,create:f=>at(f,e),isValid:f=>{if(typeof f!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof f);return Nt<=f&&ff===Nt,isValidNot0:f=>!l.is0(f)&&l.isValid(f),isOdd:f=>(f&xt)===xt,neg:f=>at(-f,e),eql:(f,h)=>f===h,sqr:f=>at(f*f,e),add:(f,h)=>at(f+h,e),sub:(f,h)=>at(f-h,e),mul:(f,h)=>at(f*h,e),pow:(f,h)=>is(l,f,h),div:(f,h)=>at(f*Jc(h,e),e),sqrN:f=>f*f,addN:(f,h)=>f+h,subN:(f,h)=>f-h,mulN:(f,h)=>f*h,inv:f=>Jc(f,e),sqrt:o||(f=>(d||(d=hd(e)),d(l,f))),toBytes:f=>r?Li(f,u):gt(f,u),fromBytes:(f,h=!0)=>{if(a){if(!a.includes(f.length)||f.length>u)throw new Error("Field.fromBytes: expected "+a+" bytes, got "+f.length);let m=new Uint8Array(u);m.set(f,r?0:m.length-f.length),f=m}if(f.length!==u)throw new Error("Field.fromBytes: expected "+u+" bytes, got "+f.length);let p=r?je(f):$t(f);if(i&&(p=at(p,e)),!h&&!l.isValid(p))throw new Error("invalid field element: outside of range 0..ORDER");return p},invertBatch:f=>Jt(l,f),cmov:(f,h,p)=>p?h:f});return Object.freeze(l)}function iu(e){if(typeof e!="bigint")throw new Error("field order must be bigint");let t=e.toString(2).length;return Math.ceil(t/8)}function Ro(e){let t=iu(e);return t+Math.ceil(t/2)}function Ki(e,t,r=!1){let n=e.length,s=iu(t),o=Ro(t);if(n<16||n1024)throw new Error("expected "+o+"-1024 bytes of input, got "+n);let i=r?je(e):$t(e),a=at(i,t-xt)+xt;return r?Li(a,s):gt(a,s)}var gn=BigInt(0),$r=BigInt(1);function as(e,t){let r=t.negate();return e?r:t}function Qt(e,t){let r=Jt(e.Fp,t.map(n=>n.Z));return t.map((n,s)=>e.fromAffine(n.toAffine(r[s])))}function fu(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function Gi(e,t){fu(e,t);let r=Math.ceil(t/e)+1,n=2**(e-1),s=2**e,o=ge(e),i=BigInt(e);return{windows:r,windowSize:n,mask:o,maxNumber:s,shiftBy:i}}function au(e,t,r){let{windowSize:n,mask:s,maxNumber:o,shiftBy:i}=r,a=Number(e&s),c=e>>i;a>n&&(a-=o,c+=$r);let u=t*n,d=u+Math.abs(a)-1,l=a===0,f=a<0,h=t%2!==0;return{nextN:c,offset:d,isZero:l,isNeg:f,isNegF:h,offsetF:u}}function yd(e,t){if(!Array.isArray(e))throw new Error("array expected");e.forEach((r,n)=>{if(!(r instanceof t))throw new Error("invalid point at index "+n)})}function bd(e,t){if(!Array.isArray(e))throw new Error("array of scalars expected");e.forEach((r,n)=>{if(!t.isValid(r))throw new Error("invalid scalar at index "+n)})}var Zi=new WeakMap,du=new WeakMap;function Yi(e){return du.get(e)||1}function cu(e){if(e!==gn)throw new Error("invalid wNAF")}var xn=class{constructor(t,r){this.BASE=t.BASE,this.ZERO=t.ZERO,this.Fn=t.Fn,this.bits=r}_unsafeLadder(t,r,n=this.ZERO){let s=t;for(;r>gn;)r&$r&&(n=n.add(s)),s=s.double(),r>>=$r;return n}precomputeWindow(t,r){let{windows:n,windowSize:s}=Gi(r,this.bits),o=[],i=t,a=i;for(let c=0;cgn||n>gn;)r&$r&&(o=o.add(s)),n&$r&&(i=i.add(s)),s=s.double(),r>>=$r,n>>=$r;return{p1:o,p2:i}}function wn(e,t,r,n){yd(r,e),bd(n,t);let s=r.length,o=n.length;if(s!==o)throw new Error("arrays of points and scalars must have equal length");let i=e.ZERO,a=He(BigInt(s)),c=1;a>12?c=a-3:a>4?c=a-2:a>0&&(c=2);let u=ge(c),d=new Array(Number(u)+1).fill(i),l=Math.floor((t.BITS-1)/c)*c,f=i;for(let h=l;h>=0;h-=c){d.fill(i);for(let m=0;m>BigInt(h)&u);d[y]=d[y].add(r[m])}let p=i;for(let m=d.length-1,g=i;m>0;m--)g=g.add(d[m]),p=p.add(g);if(f=f.add(p),h!==0)for(let m=0;mgn))throw new Error(`CURVE.${c} must be positive bigint`)}let s=uu(t.p,r.Fp,n),o=uu(t.n,r.Fn,n),a=["Gx","Gy","a",e==="weierstrass"?"b":"d"];for(let c of a)if(!s.isValid(t[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return t=Object.freeze(Object.assign({},t)),{CURVE:t,Fp:s,Fn:o}}var gd=$t;function dr(e,t){if(cs(e),cs(t),e<0||e>=1<<8*t)throw new Error("invalid I2OSP input: "+e);let r=Array.from({length:t}).fill(0);for(let n=t-1;n>=0;n--)r[n]=e&255,e>>>=8;return new Uint8Array(r)}function xd(e,t){let r=new Uint8Array(e.length);for(let n=0;n255&&(t=n(K(z("H2C-OVERSIZE-DST-"),t)));let{outputLen:s,blockLen:o}=n,i=Math.ceil(r/s);if(r>65535||i>255)throw new Error("expand_message_xmd: invalid lenInBytes");let a=K(t,dr(t.length,1)),c=dr(0,o),u=dr(r,2),d=new Array(i),l=n(K(c,e,u,dr(0,1),a));d[0]=n(K(l,dr(1,1),a));for(let h=1;h<=i;h++){let p=[xd(l,d[h-1]),dr(h+1,1),a];d[h]=n(K(...p))}return K(...d).slice(0,r)}function Ed(e,t,r,n,s){if(dt(e),cs(r),t=hu(t),t.length>255){let o=Math.ceil(2*n/8);t=s.create({dkLen:o}).update(z("H2C-OVERSIZE-DST-")).update(t).digest()}if(r>65535||t.length>255)throw new Error("expand_message_xof: invalid lenInBytes");return s.create({dkLen:r}).update(e).update(dr(r,2)).update(t).update(dr(t.length,1)).digest()}function zi(e,t,r){Ke(r,{p:"bigint",m:"number",k:"number",hash:"function"});let{p:n,k:s,m:o,hash:i,expand:a,DST:c}=r;if(!Wc(r.hash))throw new Error("expected valid hash");dt(e),cs(t);let u=n.toString(2).length,d=Math.ceil((u+s)/8),l=t*o*d,f;if(a==="xmd")f=wd(e,c,l,i);else if(a==="xof")f=Ed(e,c,l,s,i);else if(a==="_internal_pass")f=e;else throw new Error('expand must be "xmd" or "xof"');let h=new Array(t);for(let p=0;pArray.from(n).reverse());return(n,s)=>{let[o,i,a,c]=r.map(l=>l.reduce((f,h)=>e.add(e.mul(f,n),h))),[u,d]=Jt(e,[i,c],!0);return n=e.mul(o,u),s=e.mul(s,e.mul(a,d)),{x:n,y:s}}}var _d=z("HashToScalar-");function Wi(e,t,r){if(typeof t!="function")throw new Error("mapToCurve() must be defined");function n(o){return e.fromAffine(t(o))}function s(o){let i=o.clearCofactor();return i.equals(e.ZERO)?e.ZERO:(i.assertValidity(),i)}return{defaults:r,hashToCurve(o,i){let a=Object.assign({},r,i),c=zi(o,2,a),u=n(c[0]),d=n(c[1]);return s(u.add(d))},encodeToCurve(o,i){let a=r.encodeDST?{DST:r.encodeDST}:{},c=Object.assign({},r,a,i),u=zi(o,1,c),d=n(u[0]);return s(d)},mapToCurve(o){if(!Array.isArray(o))throw new Error("expected array of bigints");for(let i of o)if(typeof i!="bigint")throw new Error("expected array of bigints");return s(n(o))},hashToScalar(o,i){let a=e.Fn.ORDER,c=Object.assign({},r,{p:a,m:1,DST:_d},i);return zi(o,1,c)[0][0]}}}var pu=(e,t)=>(e+(e>=0?t:-t)/Ze)/t;function vd(e,t,r){let[[n,s],[o,i]]=t,a=pu(i*e,r),c=pu(-s*e,r),u=e-a*n-c*o,d=-a*s-c*i,l=u=h||d=h)throw new Error("splitScalar (endomorphism): failed, k="+e);return{k1neg:l,k1:u,k2neg:f,k2:d}}var Vr=BigInt(0),Pt=BigInt(1),Ze=BigInt(2),En=BigInt(3),Ji=BigInt(4);function us(e,t){let{BYTES:r}=e,n;if(typeof t=="bigint")n=t;else{let s=ut("private key",t);try{n=e.fromBytes(s)}catch(o){throw new Error(`invalid private key: expected ui8a of size ${r}, got ${typeof t}`)}}if(!e.isValidNot0(n))throw new Error("invalid private key: out of range [1..N-1]");return n}function Bd(e,t={}){let r=No("weierstrass",e,t),{Fp:n,Fn:s}=r,o=r.CURVE,{h:i,n:a}=o;Ke(t,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});let{endo:c}=t;if(c&&(!n.is0(o.a)||typeof c.beta!="bigint"||!Array.isArray(c.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');let u=Id(n,s);function d(){if(!n.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function l(R,E,B){let{x:U,y:M}=E.toAffine(),X=n.toBytes(U);if(Fr(B,"isCompressed"),B){d();let O=!n.isOdd(M);return K(Td(O),X)}else return K(Uint8Array.of(4),X,n.toBytes(M))}function f(R){ur(R,void 0,"Point");let{publicKey:E,publicKeyUncompressed:B}=u,U=R.length,M=R[0],X=R.subarray(1);if(U===E&&(M===2||M===3)){let O=n.fromBytes(X);if(!n.isValid(O))throw new Error("bad point: is not on curve, wrong x");let N=m(O),q;try{q=n.sqrt(N)}catch(Et){let mt=Et instanceof Error?": "+Et.message:"";throw new Error("bad point: is not on curve, sqrt error"+mt)}d();let $=n.isOdd(q);return(M&1)===1!==$&&(q=n.neg(q)),{x:O,y:q}}else if(U===B&&M===4){let O=n.BYTES,N=n.fromBytes(X.subarray(0,O)),q=n.fromBytes(X.subarray(O,O*2));if(!g(N,q))throw new Error("bad point: is not on curve");return{x:N,y:q}}else throw new Error(`bad point: got length ${U}, expected compressed=${E} or uncompressed=${B}`)}let h=t.toBytes||l,p=t.fromBytes||f;function m(R){let E=n.sqr(R),B=n.mul(E,R);return n.add(n.add(B,n.mul(R,o.a)),o.b)}function g(R,E){let B=n.sqr(E),U=m(R);return n.eql(B,U)}if(!g(o.Gx,o.Gy))throw new Error("bad curve params: generator point");let y=n.mul(n.pow(o.a,En),Ji),w=n.mul(n.sqr(o.b),BigInt(27));if(n.is0(n.add(y,w)))throw new Error("bad curve params: a or b");function b(R,E,B=!1){if(!n.isValid(E)||B&&n.is0(E))throw new Error(`bad point coordinate ${R}`);return E}function v(R){if(!(R instanceof _))throw new Error("ProjectivePoint expected")}function T(R){if(!c||!c.basises)throw new Error("no endo");return vd(R,c.basises,s.ORDER)}let I=fr((R,E)=>{let{X:B,Y:U,Z:M}=R;if(n.eql(M,n.ONE))return{x:B,y:U};let X=R.is0();E==null&&(E=X?n.ONE:n.inv(M));let O=n.mul(B,E),N=n.mul(U,E),q=n.mul(M,E);if(X)return{x:n.ZERO,y:n.ZERO};if(!n.eql(q,n.ONE))throw new Error("invZ was invalid");return{x:O,y:N}}),S=fr(R=>{if(R.is0()){if(t.allowInfinityPoint&&!n.is0(R.Y))return;throw new Error("bad point: ZERO")}let{x:E,y:B}=R.toAffine();if(!n.isValid(E)||!n.isValid(B))throw new Error("bad point: x or y not field elements");if(!g(E,B))throw new Error("bad point: equation left != right");if(!R.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function C(R,E,B,U,M){return B=new _(n.mul(B.X,R),B.Y,B.Z),E=as(U,E),B=as(M,B),E.add(B)}class _{constructor(E,B,U){this.X=b("x",E),this.Y=b("y",B,!0),this.Z=b("z",U),Object.freeze(this)}static CURVE(){return o}static fromAffine(E){let{x:B,y:U}=E||{};if(!E||!n.isValid(B)||!n.isValid(U))throw new Error("invalid affine point");if(E instanceof _)throw new Error("projective point not allowed");return n.is0(B)&&n.is0(U)?_.ZERO:new _(B,U,n.ONE)}static fromBytes(E){let B=_.fromAffine(p(ur(E,void 0,"point")));return B.assertValidity(),B}static fromHex(E){return _.fromBytes(ut("pointHex",E))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(E=8,B=!0){return D.createCache(this,E),B||this.multiply(En),this}assertValidity(){S(this)}hasEvenY(){let{y:E}=this.toAffine();if(!n.isOdd)throw new Error("Field doesn't support isOdd");return!n.isOdd(E)}equals(E){v(E);let{X:B,Y:U,Z:M}=this,{X,Y:O,Z:N}=E,q=n.eql(n.mul(B,N),n.mul(X,M)),$=n.eql(n.mul(U,N),n.mul(O,M));return q&&$}negate(){return new _(this.X,n.neg(this.Y),this.Z)}double(){let{a:E,b:B}=o,U=n.mul(B,En),{X:M,Y:X,Z:O}=this,N=n.ZERO,q=n.ZERO,$=n.ZERO,j=n.mul(M,M),Et=n.mul(X,X),mt=n.mul(O,O),st=n.mul(M,X);return st=n.add(st,st),$=n.mul(M,O),$=n.add($,$),N=n.mul(E,$),q=n.mul(U,mt),q=n.add(N,q),N=n.sub(Et,q),q=n.add(Et,q),q=n.mul(N,q),N=n.mul(st,N),$=n.mul(U,$),mt=n.mul(E,mt),st=n.sub(j,mt),st=n.mul(E,st),st=n.add(st,$),$=n.add(j,j),j=n.add($,j),j=n.add(j,mt),j=n.mul(j,st),q=n.add(q,j),mt=n.mul(X,O),mt=n.add(mt,mt),j=n.mul(mt,st),N=n.sub(N,j),$=n.mul(mt,Et),$=n.add($,$),$=n.add($,$),new _(N,q,$)}add(E){v(E);let{X:B,Y:U,Z:M}=this,{X,Y:O,Z:N}=E,q=n.ZERO,$=n.ZERO,j=n.ZERO,Et=o.a,mt=n.mul(o.b,En),st=n.mul(B,X),oe=n.mul(U,O),ie=n.mul(M,N),tn=n.add(B,U),Ot=n.add(X,O);tn=n.mul(tn,Ot),Ot=n.add(st,oe),tn=n.sub(tn,Ot),Ot=n.add(B,M);let ve=n.add(X,N);return Ot=n.mul(Ot,ve),ve=n.add(st,ie),Ot=n.sub(Ot,ve),ve=n.add(U,M),q=n.add(O,N),ve=n.mul(ve,q),q=n.add(oe,ie),ve=n.sub(ve,q),j=n.mul(Et,Ot),q=n.mul(mt,ie),j=n.add(q,j),q=n.sub(oe,j),j=n.add(oe,j),$=n.mul(q,j),oe=n.add(st,st),oe=n.add(oe,st),ie=n.mul(Et,ie),Ot=n.mul(mt,Ot),oe=n.add(oe,ie),ie=n.sub(st,ie),ie=n.mul(Et,ie),Ot=n.add(Ot,ie),st=n.mul(oe,Ot),$=n.add($,st),st=n.mul(ve,Ot),q=n.mul(tn,q),q=n.sub(q,st),st=n.mul(tn,oe),j=n.mul(ve,j),j=n.add(j,st),new _(q,$,j)}subtract(E){return this.add(E.negate())}is0(){return this.equals(_.ZERO)}multiply(E){let{endo:B}=t;if(!s.isValidNot0(E))throw new Error("invalid scalar: out of range");let U,M,X=O=>D.cached(this,O,N=>Qt(_,N));if(B){let{k1neg:O,k1:N,k2neg:q,k2:$}=T(E),{p:j,f:Et}=X(N),{p:mt,f:st}=X($);M=Et.add(st),U=C(B.beta,j,mt,O,q)}else{let{p:O,f:N}=X(E);U=O,M=N}return Qt(_,[U,M])[0]}multiplyUnsafe(E){let{endo:B}=t,U=this;if(!s.isValid(E))throw new Error("invalid scalar: out of range");if(E===Vr||U.is0())return _.ZERO;if(E===Pt)return U;if(D.hasCache(this))return this.multiply(E);if(B){let{k1neg:M,k1:X,k2neg:O,k2:N}=T(E),{p1:q,p2:$}=lu(_,U,X,N);return C(B.beta,q,$,M,O)}else return D.unsafe(U,E)}multiplyAndAddUnsafe(E,B,U){let M=this.multiplyUnsafe(B).add(E.multiplyUnsafe(U));return M.is0()?void 0:M}toAffine(E){return I(this,E)}isTorsionFree(){let{isTorsionFree:E}=t;return i===Pt?!0:E?E(_,this):D.unsafe(this,a).is0()}clearCofactor(){let{clearCofactor:E}=t;return i===Pt?this:E?E(_,this):this.multiplyUnsafe(i)}isSmallOrder(){return this.multiplyUnsafe(i).is0()}toBytes(E=!0){return Fr(E,"isCompressed"),this.assertValidity(),h(_,this,E)}toHex(E=!0){return V(this.toBytes(E))}toString(){return``}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(E=!0){return this.toBytes(E)}_setWindowSize(E){this.precompute(E)}static normalizeZ(E){return Qt(_,E)}static msm(E,B){return wn(_,s,E,B)}static fromPrivateKey(E){return _.BASE.multiply(us(s,E))}}_.BASE=new _(o.Gx,o.Gy,n.ONE),_.ZERO=new _(n.ZERO,n.ONE,n.ZERO),_.Fp=n,_.Fn=s;let A=s.BITS,D=new xn(_,t.endo?Math.ceil(A/2):A);return _.BASE.precompute(8),_}function Td(e){return Uint8Array.of(e?2:3)}function Sd(e,t){let r=e.ORDER,n=Vr;for(let p=r-Pt;p%Ze===Vr;p/=Ze)n+=Pt;let s=n,o=Ze<{let g=l,y=e.pow(m,u),w=e.sqr(y);w=e.mul(w,m);let b=e.mul(p,w);b=e.pow(b,c),b=e.mul(b,y),y=e.mul(b,m),w=e.mul(b,p);let v=e.mul(w,y);b=e.pow(v,d);let T=e.eql(b,e.ONE);y=e.mul(w,f),b=e.mul(v,g),w=e.cmov(y,w,T),v=e.cmov(b,v,T);for(let I=s;I>Pt;I--){let S=I-Ze;S=Ze<{let w=e.sqr(y),b=e.mul(g,y);w=e.mul(w,b);let v=e.pow(w,p);v=e.mul(v,b);let T=e.mul(v,m),I=e.mul(e.sqr(v),y),S=e.eql(I,g),C=e.cmov(T,v,S);return{isValid:S,value:C}}}return h}function Qi(e,t){Oo(e);let{A:r,B:n,Z:s}=t;if(!e.isValid(r)||!e.isValid(n)||!e.isValid(s))throw new Error("mapToCurveSimpleSWU: invalid opts");let o=Sd(e,s);if(!e.isOdd)throw new Error("Field does not have .isOdd()");return i=>{let a,c,u,d,l,f,h,p;a=e.sqr(i),a=e.mul(a,s),c=e.sqr(a),c=e.add(c,a),u=e.add(c,e.ONE),u=e.mul(u,n),d=e.cmov(s,e.neg(c),!e.eql(c,e.ZERO)),d=e.mul(d,r),c=e.sqr(u),f=e.sqr(d),l=e.mul(f,r),c=e.add(c,l),c=e.mul(c,u),f=e.mul(f,d),l=e.mul(f,n),c=e.add(c,l),h=e.mul(a,u);let{isValid:m,value:g}=o(c,f);p=e.mul(a,i),p=e.mul(p,g),h=e.cmov(h,u,m),p=e.cmov(p,g,m);let y=e.isOdd(i)===e.isOdd(p);p=e.cmov(e.neg(p),p,y);let w=Jt(e,[d],!0)[0];return h=e.mul(h,w),{x:h,y:p}}}function Id(e,t){return{secretKey:t.BYTES,publicKey:1+e.BYTES,publicKeyUncompressed:1+2*e.BYTES,publicKeyHasPrefix:!0,signature:2*t.BYTES}}function ta(e){let{CURVE:t,curveOpts:r}=Ad(e),n=Bd(t,r);return Od(e,n)}function Ad(e){let t={a:e.a,b:e.b,p:e.Fp.ORDER,n:e.n,h:e.h,Gx:e.Gx,Gy:e.Gy},r=e.Fp,n=e.allowedPrivateKeyLengths?Array.from(new Set(e.allowedPrivateKeyLengths.map(i=>Math.ceil(i/2)))):void 0,s=Ut(t.n,{BITS:e.nBitLength,allowedLengths:n,modFromBytes:e.wrapPrivateKey}),o={Fp:r,Fn:s,allowInfinityPoint:e.allowInfinityPoint,endo:e.endo,isTorsionFree:e.isTorsionFree,clearCofactor:e.clearCofactor,fromBytes:e.fromBytes,toBytes:e.toBytes};return{CURVE:t,curveOpts:o}}function Cd(e,t,r){function n(s){let o=e.sqr(s),i=e.mul(o,s);return e.add(e.add(i,e.mul(s,t)),r)}return n}function Od(e,t){let{Fp:r,Fn:n}=t;function s(i){return Vi(i,Pt,n.ORDER)}let o=Cd(r,e.a,e.b);return Object.assign({},{CURVE:e,Point:t,ProjectivePoint:t,normPrivateKeyToScalar:i=>us(n,i),weierstrassEquation:o,isWithinCurveOrder:s})}var Rd=BigInt(0),Uo=BigInt(1),mu=BigInt(2),_n=BigInt(3);function Nd(e){let t=[];for(;e>Uo;e>>=Uo)(e&Uo)===Rd?t.unshift(0):(e&_n)===_n?(t.unshift(-1),e+=Uo):t.unshift(1);return t}function ea(e){if(!Array.isArray(e)||e.length===0)throw new Error("expected non-empty array")}function Ud(e,t,r,n){let{Fp2:s,Fp12:o}=e,{twistType:i,ateLoopSize:a,xNegative:c,postPrecompute:u}=n,d;if(i==="multiplicative")d=(b,v,T,I,S,C)=>o.mul014(I,b,s.mul(v,S),s.mul(T,C));else if(i==="divisive")d=(b,v,T,I,S,C)=>o.mul034(I,s.mul(T,C),s.mul(v,S),b);else throw new Error("bls: unknown twist type");let l=s.div(s.ONE,s.mul(s.ONE,mu));function f(b,v,T,I){let S=s.sqr(T),C=s.sqr(I),_=s.mulByB(s.mul(C,_n)),A=s.mul(_,_n),D=s.sub(s.sub(s.sqr(s.add(T,I)),C),S),R=s.sub(_,S),E=s.mul(s.sqr(v),_n),B=s.neg(D);return b.push([R,E,B]),v=s.mul(s.mul(s.mul(s.sub(S,A),v),T),l),T=s.sub(s.sqr(s.mul(s.add(S,A),l)),s.mul(s.sqr(_),_n)),I=s.mul(S,D),{Rx:v,Ry:T,Rz:I}}function h(b,v,T,I,S,C){let _=s.sub(T,s.mul(C,I)),A=s.sub(v,s.mul(S,I)),D=s.sub(s.mul(_,S),s.mul(A,C)),R=s.neg(_),E=A;b.push([D,R,E]);let B=s.sqr(A),U=s.mul(B,A),M=s.mul(B,v),X=s.add(s.sub(U,s.mul(M,mu)),s.mul(s.sqr(_),I));return v=s.mul(A,X),T=s.sub(s.mul(s.sub(M,X),_),s.mul(U,T)),I=s.mul(I,U),{Rx:v,Ry:T,Rz:I}}let p=Nd(a),m=fr(b=>{let v=b,{x:T,y:I}=v.toAffine(),S=T,C=I,_=s.neg(I),A=S,D=C,R=s.ONE,E=[];for(let B of p){let U=[];({Rx:A,Ry:D,Rz:R}=f(U,A,D,R)),B&&({Rx:A,Ry:D,Rz:R}=h(U,A,D,R,S,B===-1?_:C)),E.push(U)}if(u){let B=E[E.length-1];u(A,D,R,S,C,h.bind(null,B))}return E});function g(b,v=!1){let T=o.ONE;if(b.length){let I=b[0][0].length;for(let S=0;SI)),Qt(r,b.map(({g2:I})=>I));for(let{g1:I,g2:S}of b){if(I.is0()||S.is0())throw new Error("pairing is not available for ZERO point");I.assertValidity(),S.assertValidity();let C=I.toAffine();T.push([m(S),C.x,C.y])}return g(T,v)}function w(b,v,T=!0){return y([{g1:b,g2:v}],T)}return{Fp12:o,millerLoopBatch:g,pairing:w,pairingBatch:y,calcPairingPrecomputes:m}}function yu(e,t,r,n,s){let{Fp12:o,pairingBatch:i}=e;function a(l){return l instanceof t.Point?l:t.Point.fromHex(l)}function c(l){return l instanceof r.Point?l:r.Point.fromHex(l)}function u(l){if(!(l instanceof r.Point))throw new Error(`expected valid message hashed to ${s?"G1":"G2"} curve`);return l}let d=s?(l,f)=>({g1:f,g2:l}):(l,f)=>({g1:l,g2:f});return{getPublicKey(l){let f=us(t.Point.Fn,l);return t.Point.BASE.multiply(f)},sign(l,f,h){if(h!=null)throw new Error("sign() expects 2 arguments");let p=us(t.Point.Fn,f);return u(l).assertValidity(),l.multiply(p)},verify(l,f,h,p){if(p!=null)throw new Error("verify() expects 3 arguments");l=c(l),h=a(h);let m=h.negate(),g=t.Point.BASE,y=u(f),w=l,b=i([d(m,y),d(g,w)]);return o.eql(b,o.ONE)},verifyBatch(l,f,h){if(ea(f),h.length!==f.length)throw new Error("amount of public keys and messages should be equal");let p=c(l),m=f,g=h.map(a),y=new Map;for(let v=0;vS.add(C));w.push(d(I,v))}return w.push(d(b.negate(),p)),o.eql(i(w),o.ONE)}catch(v){return!1}},aggregatePublicKeys(l){ea(l),l=l.map(h=>a(h));let f=l.reduce((h,p)=>h.add(p),t.Point.ZERO);return f.assertValidity(),f},aggregateSignatures(l){ea(l),l=l.map(h=>c(h));let f=l.reduce((h,p)=>h.add(p),r.Point.ZERO);return f.assertValidity(),f},hash(l,f){dt(l);let h=f?{DST:f}:void 0;return r.hashToCurve(l,h)},Signature:n}}function bu(e){let{Fp:t,Fr:r,Fp2:n,Fp6:s,Fp12:o}=e.fields,i=ta(e.G1),a=Object.assign(i,Wi(i.Point,e.G1.mapToCurve,{...e.htfDefaults,...e.G1.htfDefaults})),c=ta(e.G2),u=Object.assign(c,Wi(c.Point,e.G2.mapToCurve,{...e.htfDefaults,...e.G2.htfDefaults})),d=Ud(e.fields,a.Point,u.Point,{...e.params,postPrecompute:e.postPrecompute}),{millerLoopBatch:l,pairing:f,pairingBatch:h,calcPairingPrecomputes:p}=d,m=yu(d,a,u,e.G2.Signature,!1),g=yu(d,u,a,e.G1.ShortSignature,!0),y=e.randomBytes||rn,w=()=>{let O=Ro(r.ORDER);return Ki(y(O),r.ORDER)},b={randomSecretKey:w,randomPrivateKey:w,calcPairingPrecomputes:p},{ShortSignature:v}=e.G1,{Signature:T}=e.G2;function I(O,N){return O instanceof a.Point?O:g.hash(ut("point",O),N==null?void 0:N.DST)}function S(O,N){return O instanceof u.Point?O:m.hash(ut("point",O),N==null?void 0:N.DST)}function C(O){return m.getPublicKey(O).toBytes(!0)}function _(O){return g.getPublicKey(O).toBytes(!0)}function A(O,N,q){let $=S(O,q),j=m.sign($,N);return O instanceof u.Point?j:T.toBytes(j)}function D(O,N,q){let $=I(O,q),j=g.sign($,N);return O instanceof a.Point?j:v.toBytes(j)}function R(O,N,q,$){let j=S(N,$);return m.verify(O,j,q)}function E(O,N,q,$){let j=I(N,$);return g.verify(O,j,q)}function B(O){let N=m.aggregatePublicKeys(O);return O[0]instanceof a.Point?N:N.toBytes(!0)}function U(O){let N=m.aggregateSignatures(O);return O[0]instanceof u.Point?N:T.toBytes(N)}function M(O){let N=g.aggregateSignatures(O);return O[0]instanceof a.Point?N:v.toBytes(N)}function X(O,N,q,$){let j=N.map(Et=>S(Et,$));return m.verifyBatch(O,j,q)}return a.Point.BASE.precompute(4),{longSignatures:m,shortSignatures:g,millerLoopBatch:l,pairing:f,pairingBatch:h,verifyBatch:X,fields:{Fr:r,Fp:t,Fp2:n,Fp6:s,Fp12:o},params:{ateLoopSize:e.params.ateLoopSize,twistType:e.params.twistType,r:e.params.r,G1b:e.G1.b,G2b:e.G2.b},utils:b,getPublicKey:C,getPublicKeyForShortSignatures:_,sign:A,signShortSignature:D,verify:R,verifyShortSignature:E,aggregatePublicKeys:B,aggregateSignatures:U,aggregateShortSignatures:M,G1:a,G2:u,Signature:T,ShortSignature:v}}var gu=BigInt(0),Ye=BigInt(1),Dt=BigInt(2),xu=BigInt(3);function oa(e,t,r,n,s=1,o){let i=BigInt(o===void 0?n:o),a=r**BigInt(n),c=[];for(let u=0;u(h,p)=>{let m=p.toAffine(),g=f(m.x,m.y);return h.fromAffine({x:g[0],y:g[1]})},d=u(o),l=u(c);return{psi:o,psi2:c,G2psi:d,G2psi2:l,PSI_X:n,PSI_Y:s,PSI2_X:i,PSI2_Y:a}}var wu=(e,t)=>{if(t.length!==2)throw new Error("invalid tuple");let r=t.map(n=>e.create(n));return{c0:r[0],c1:r[1]}},ra=class{constructor(t,r={}){this.MASK=Ye;let n=t.ORDER,s=n*n;this.Fp=t,this.ORDER=s,this.BITS=He(s),this.BYTES=Math.ceil(He(s)/8),this.isLE=t.isLE,this.ZERO={c0:t.ZERO,c1:t.ZERO},this.ONE={c0:t.ONE,c1:t.ZERO},this.Fp_NONRESIDUE=t.create(r.NONRESIDUE||BigInt(-1)),this.Fp_div2=t.div(t.ONE,Dt),this.NONRESIDUE=wu(t,r.FP2_NONRESIDUE),this.FROBENIUS_COEFFICIENTS=oa(t,this.Fp_NONRESIDUE,t.ORDER,2)[0],this.mulByB=r.Fp2mulByB,Object.seal(this)}fromBigTuple(t){return wu(this.Fp,t)}create(t){return t}isValid({c0:t,c1:r}){function n(s,o){return typeof s=="bigint"&&gu<=s&&sg||p===g&&h>m?l:f}isOdd(t){let{re:r,im:n}=this.reim(t),s=r%Dt,o=r===gu,i=n%Dt;return BigInt(s||o&&i)==Ye}fromBytes(t){let{Fp:r}=this;if(t.length!==this.BYTES)throw new Error("fromBytes invalid length="+t.length);return{c0:r.fromBytes(t.subarray(0,r.BYTES)),c1:r.fromBytes(t.subarray(r.BYTES))}}toBytes({c0:t,c1:r}){return K(this.Fp.toBytes(t),this.Fp.toBytes(r))}cmov({c0:t,c1:r},{c0:n,c1:s},o){return{c0:this.Fp.cmov(t,n,o),c1:this.Fp.cmov(r,s,o)}}reim({c0:t,c1:r}){return{re:t,im:r}}Fp4Square(t,r){let n=this,s=n.sqr(t),o=n.sqr(r);return{first:n.add(n.mulByNonresidue(o),s),second:n.sub(n.sub(n.sqr(n.add(t,r)),s),o)}}mulByNonresidue({c0:t,c1:r}){return this.mul({c0:t,c1:r},this.NONRESIDUE)}frobeniusMap({c0:t,c1:r},n){return{c0:t,c1:this.Fp.mul(r,this.FROBENIUS_COEFFICIENTS[n%2])}}},na=class{constructor(t){this.MASK=Ye,this.Fp2=t,this.ORDER=t.ORDER,this.BITS=3*t.BITS,this.BYTES=3*t.BYTES,this.isLE=t.isLE,this.ZERO={c0:t.ZERO,c1:t.ZERO,c2:t.ZERO},this.ONE={c0:t.ONE,c1:t.ZERO,c2:t.ZERO};let{Fp:r}=t,n=oa(t,t.NONRESIDUE,r.ORDER,6,2,3);this.FROBENIUS_COEFFICIENTS_1=n[0],this.FROBENIUS_COEFFICIENTS_2=n[1],Object.seal(this)}add({c0:t,c1:r,c2:n},{c0:s,c1:o,c2:i}){let{Fp2:a}=this;return{c0:a.add(t,s),c1:a.add(r,o),c2:a.add(n,i)}}sub({c0:t,c1:r,c2:n},{c0:s,c1:o,c2:i}){let{Fp2:a}=this;return{c0:a.sub(t,s),c1:a.sub(r,o),c2:a.sub(n,i)}}mul({c0:t,c1:r,c2:n},s){let{Fp2:o}=this;if(typeof s=="bigint")return{c0:o.mul(t,s),c1:o.mul(r,s),c2:o.mul(n,s)};let{c0:i,c1:a,c2:c}=s,u=o.mul(t,i),d=o.mul(r,a),l=o.mul(n,c);return{c0:o.add(u,o.mulByNonresidue(o.sub(o.mul(o.add(r,n),o.add(a,c)),o.add(d,l)))),c1:o.add(o.sub(o.mul(o.add(t,r),o.add(i,a)),o.add(u,d)),o.mulByNonresidue(l)),c2:o.sub(o.add(d,o.mul(o.add(t,n),o.add(i,c))),o.add(u,l))}}sqr({c0:t,c1:r,c2:n}){let{Fp2:s}=this,o=s.sqr(t),i=s.mul(s.mul(t,r),Dt),a=s.mul(s.mul(r,n),Dt),c=s.sqr(n);return{c0:s.add(s.mulByNonresidue(a),o),c1:s.add(s.mulByNonresidue(c),i),c2:s.sub(s.sub(s.add(s.add(i,s.sqr(s.add(s.sub(t,r),n))),a),o),c)}}addN(t,r){return this.add(t,r)}subN(t,r){return this.sub(t,r)}mulN(t,r){return this.mul(t,r)}sqrN(t){return this.sqr(t)}create(t){return t}isValid({c0:t,c1:r,c2:n}){let{Fp2:s}=this;return s.isValid(t)&&s.isValid(r)&&s.isValid(n)}is0({c0:t,c1:r,c2:n}){let{Fp2:s}=this;return s.is0(t)&&s.is0(r)&&s.is0(n)}isValidNot0(t){return!this.is0(t)&&this.isValid(t)}neg({c0:t,c1:r,c2:n}){let{Fp2:s}=this;return{c0:s.neg(t),c1:s.neg(r),c2:s.neg(n)}}eql({c0:t,c1:r,c2:n},{c0:s,c1:o,c2:i}){let{Fp2:a}=this;return a.eql(t,s)&&a.eql(r,o)&&a.eql(n,i)}sqrt(t){return bn()}div(t,r){let{Fp2:n}=this,{Fp:s}=n;return this.mul(t,typeof r=="bigint"?s.inv(s.create(r)):this.inv(r))}pow(t,r){return is(this,t,r)}invertBatch(t){return Jt(this,t)}inv({c0:t,c1:r,c2:n}){let{Fp2:s}=this,o=s.sub(s.sqr(t),s.mulByNonresidue(s.mul(n,r))),i=s.sub(s.mulByNonresidue(s.sqr(n)),s.mul(t,r)),a=s.sub(s.sqr(r),s.mul(t,n)),c=s.inv(s.add(s.mulByNonresidue(s.add(s.mul(n,i),s.mul(r,a))),s.mul(t,o)));return{c0:s.mul(c,o),c1:s.mul(c,i),c2:s.mul(c,a)}}fromBytes(t){let{Fp2:r}=this;if(t.length!==this.BYTES)throw new Error("fromBytes invalid length="+t.length);let n=r.BYTES;return{c0:r.fromBytes(t.subarray(0,n)),c1:r.fromBytes(t.subarray(n,n*2)),c2:r.fromBytes(t.subarray(2*n))}}toBytes({c0:t,c1:r,c2:n}){let{Fp2:s}=this;return K(s.toBytes(t),s.toBytes(r),s.toBytes(n))}cmov({c0:t,c1:r,c2:n},{c0:s,c1:o,c2:i},a){let{Fp2:c}=this;return{c0:c.cmov(t,s,a),c1:c.cmov(r,o,a),c2:c.cmov(n,i,a)}}fromBigSix(t){let{Fp2:r}=this;if(!Array.isArray(t)||t.length!==6)throw new Error("invalid Fp6 usage");return{c0:r.fromBigTuple(t.slice(0,2)),c1:r.fromBigTuple(t.slice(2,4)),c2:r.fromBigTuple(t.slice(4,6))}}frobeniusMap({c0:t,c1:r,c2:n},s){let{Fp2:o}=this;return{c0:o.frobeniusMap(t,s),c1:o.mul(o.frobeniusMap(r,s),this.FROBENIUS_COEFFICIENTS_1[s%6]),c2:o.mul(o.frobeniusMap(n,s),this.FROBENIUS_COEFFICIENTS_2[s%6])}}mulByFp2({c0:t,c1:r,c2:n},s){let{Fp2:o}=this;return{c0:o.mul(t,s),c1:o.mul(r,s),c2:o.mul(n,s)}}mulByNonresidue({c0:t,c1:r,c2:n}){let{Fp2:s}=this;return{c0:s.mulByNonresidue(n),c1:t,c2:r}}mul1({c0:t,c1:r,c2:n},s){let{Fp2:o}=this;return{c0:o.mulByNonresidue(o.mul(n,s)),c1:o.mul(t,s),c2:o.mul(r,s)}}mul01({c0:t,c1:r,c2:n},s,o){let{Fp2:i}=this,a=i.mul(t,s),c=i.mul(r,o);return{c0:i.add(i.mulByNonresidue(i.sub(i.mul(i.add(r,n),o),c)),a),c1:i.sub(i.sub(i.mul(i.add(s,o),i.add(t,r)),a),c),c2:i.add(i.sub(i.mul(i.add(t,n),s),a),c)}}},sa=class{constructor(t,r){this.MASK=Ye;let{Fp2:n}=t,{Fp:s}=n;this.Fp6=t,this.ORDER=n.ORDER,this.BITS=2*t.BITS,this.BYTES=2*t.BYTES,this.isLE=t.isLE,this.ZERO={c0:t.ZERO,c1:t.ZERO},this.ONE={c0:t.ONE,c1:t.ZERO},this.FROBENIUS_COEFFICIENTS=oa(n,n.NONRESIDUE,s.ORDER,12,1,6)[0],this.X_LEN=r.X_LEN,this.finalExponentiate=r.Fp12finalExponentiate}create(t){return t}isValid({c0:t,c1:r}){let{Fp6:n}=this;return n.isValid(t)&&n.isValid(r)}is0({c0:t,c1:r}){let{Fp6:n}=this;return n.is0(t)&&n.is0(r)}isValidNot0(t){return!this.is0(t)&&this.isValid(t)}neg({c0:t,c1:r}){let{Fp6:n}=this;return{c0:n.neg(t),c1:n.neg(r)}}eql({c0:t,c1:r},{c0:n,c1:s}){let{Fp6:o}=this;return o.eql(t,n)&&o.eql(r,s)}sqrt(t){bn()}inv({c0:t,c1:r}){let{Fp6:n}=this,s=n.inv(n.sub(n.sqr(t),n.mulByNonresidue(n.sqr(r))));return{c0:n.mul(t,s),c1:n.neg(n.mul(r,s))}}div(t,r){let{Fp6:n}=this,{Fp2:s}=n,{Fp:o}=s;return this.mul(t,typeof r=="bigint"?o.inv(o.create(r)):this.inv(r))}pow(t,r){return is(this,t,r)}invertBatch(t){return Jt(this,t)}add({c0:t,c1:r},{c0:n,c1:s}){let{Fp6:o}=this;return{c0:o.add(t,n),c1:o.add(r,s)}}sub({c0:t,c1:r},{c0:n,c1:s}){let{Fp6:o}=this;return{c0:o.sub(t,n),c1:o.sub(r,s)}}mul({c0:t,c1:r},n){let{Fp6:s}=this;if(typeof n=="bigint")return{c0:s.mul(t,n),c1:s.mul(r,n)};let{c0:o,c1:i}=n,a=s.mul(t,o),c=s.mul(r,i);return{c0:s.add(a,s.mulByNonresidue(c)),c1:s.sub(s.mul(s.add(t,r),s.add(o,i)),s.add(a,c))}}sqr({c0:t,c1:r}){let{Fp6:n}=this,s=n.mul(t,r);return{c0:n.sub(n.sub(n.mul(n.add(n.mulByNonresidue(r),t),n.add(t,r)),s),n.mulByNonresidue(s)),c1:n.add(s,s)}}addN(t,r){return this.add(t,r)}subN(t,r){return this.sub(t,r)}mulN(t,r){return this.mul(t,r)}sqrN(t){return this.sqr(t)}fromBytes(t){let{Fp6:r}=this;if(t.length!==this.BYTES)throw new Error("fromBytes invalid length="+t.length);return{c0:r.fromBytes(t.subarray(0,r.BYTES)),c1:r.fromBytes(t.subarray(r.BYTES))}}toBytes({c0:t,c1:r}){let{Fp6:n}=this;return K(n.toBytes(t),n.toBytes(r))}cmov({c0:t,c1:r},{c0:n,c1:s},o){let{Fp6:i}=this;return{c0:i.cmov(t,n,o),c1:i.cmov(r,s,o)}}fromBigTwelve(t){let{Fp6:r}=this;return{c0:r.fromBigSix(t.slice(0,6)),c1:r.fromBigSix(t.slice(6,12))}}frobeniusMap(t,r){let{Fp6:n}=this,{Fp2:s}=n,{c0:o,c1:i,c2:a}=n.frobeniusMap(t.c1,r),c=this.FROBENIUS_COEFFICIENTS[r%12];return{c0:n.frobeniusMap(t.c0,r),c1:n.create({c0:s.mul(o,c),c1:s.mul(i,c),c2:s.mul(a,c)})}}mulByFp2({c0:t,c1:r},n){let{Fp6:s}=this;return{c0:s.mulByFp2(t,n),c1:s.mulByFp2(r,n)}}conjugate({c0:t,c1:r}){return{c0:t,c1:this.Fp6.neg(r)}}mul014({c0:t,c1:r},n,s,o){let{Fp6:i}=this,{Fp2:a}=i,c=i.mul01(t,n,s),u=i.mul1(r,o);return{c0:i.add(i.mulByNonresidue(u),c),c1:i.sub(i.sub(i.mul01(i.add(r,t),n,a.add(s,o)),c),u)}}mul034({c0:t,c1:r},n,s,o){let{Fp6:i}=this,{Fp2:a}=i,c=i.create({c0:a.mul(t.c0,n),c1:a.mul(t.c1,n),c2:a.mul(t.c2,n)}),u=i.mul01(r,s,o),d=i.mul01(i.add(t,r),a.add(n,s),o);return{c0:i.add(i.mulByNonresidue(u),c),c1:i.sub(d,i.add(c,u))}}_cyclotomicSquare({c0:t,c1:r}){let{Fp6:n}=this,{Fp2:s}=n,{c0:o,c1:i,c2:a}=t,{c0:c,c1:u,c2:d}=r,{first:l,second:f}=s.Fp4Square(o,u),{first:h,second:p}=s.Fp4Square(c,a),{first:m,second:g}=s.Fp4Square(i,d),y=s.mulByNonresidue(g);return{c0:n.create({c0:s.add(s.mul(s.sub(l,o),Dt),l),c1:s.add(s.mul(s.sub(h,i),Dt),h),c2:s.add(s.mul(s.sub(m,a),Dt),m)}),c1:n.create({c0:s.add(s.mul(s.add(y,c),Dt),y),c1:s.add(s.mul(s.add(f,u),Dt),f),c2:s.add(s.mul(s.add(p,d),Dt),p)})}}_cyclotomicExp(t,r){let n=this.ONE;for(let s=this.X_LEN-1;s>=0;s--)n=this._cyclotomicSquare(n),Xc(r,s)&&(n=this.mul(n,t));return n}};function _u(e){let t=Ut(e.ORDER),r=new ra(t,e),n=new na(r),s=new sa(n,e);return{Fp:t,Fp2:r,Fp6:n,Fp12:s}}var It=BigInt(0),Po=BigInt(1),te=BigInt(2),Do=BigInt(3),fs=BigInt(4),lr=BigInt("0xd201000000010000"),Pd=He(lr),jr={p:BigInt("0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab"),n:BigInt("0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001"),h:BigInt("0x396c8c005555e1568c00aaab0000aaab"),a:It,b:fs,Gx:BigInt("0x17f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb"),Gy:BigInt("0x08b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1")},Dd=Ut(jr.n,{modFromBytes:!0,isLE:!0}),{Fp:k,Fp2:W,Fp6:qd,Fp12:et}=_u({ORDER:jr.p,X_LEN:Pd,FP2_NONRESIDUE:[Po,Po],Fp2mulByB:({c0:e,c1:t})=>{let r=k.mul(e,fs),n=k.mul(t,fs);return{c0:k.sub(r,n),c1:k.add(r,n)}},Fp12finalExponentiate:e=>{let t=lr,r=et.div(et.frobeniusMap(e,6),e),n=et.mul(et.frobeniusMap(r,2),r),s=et.conjugate(et._cyclotomicExp(n,t)),o=et.mul(et.conjugate(et._cyclotomicSquare(n)),s),i=et.conjugate(et._cyclotomicExp(o,t)),a=et.conjugate(et._cyclotomicExp(i,t)),c=et.mul(et.conjugate(et._cyclotomicExp(a,t)),et._cyclotomicSquare(s)),u=et.conjugate(et._cyclotomicExp(c,t)),d=et.frobeniusMap(et.mul(s,a),2),l=et.frobeniusMap(et.mul(i,n),3),f=et.frobeniusMap(et.mul(c,et.conjugate(n)),1),h=et.mul(et.mul(u,et.conjugate(o)),n);return et.mul(et.mul(et.mul(d,l),f),h)}}),{G2psi:vu,G2psi2:kd}=Eu(k,W,W.div(W.ONE,W.NONRESIDUE)),ia=Object.freeze({DST:"BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_",encodeDST:"BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_",p:k.ORDER,m:2,k:128,expand:"xmd",hash:Tt}),ua={p:W.ORDER,n:jr.n,h:BigInt("0x5d543a95414e7f1091d50792876a202cd91de4547085abaa68a205b2e5a7ddfa628f1cb4d9e82ef21537e293a6691ae1616ec6e786f0c70cf1c38e31c7238e5"),a:W.ZERO,b:W.fromBigTuple([fs,fs]),Gx:W.fromBigTuple([BigInt("0x024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb8"),BigInt("0x13e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e")]),Gy:W.fromBigTuple([BigInt("0x0ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801"),BigInt("0x0606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be")])},qo=ds(k.toBytes(It),{infinity:!0,compressed:!0});function ko(e){e=e.slice();let t=e[0]&224,r=!!(t>>7&1),n=!!(t>>6&1),s=!!(t>>5&1);return e[0]&=31,{compressed:r,infinity:n,sort:s,value:e}}function ds(e,t){if(e[0]&224)throw new Error("setMask: non-empty mask");return t.compressed&&(e[0]|=128),t.infinity&&(e[0]|=64),t.sort&&(e[0]|=32),e}function Md(e,t,r){let{BYTES:n,ORDER:s}=k,o=t.is0(),{x:i,y:a}=t.toAffine();if(r){if(o)return qo.slice();let c=!!(a*te/s);return ds(gt(i,n),{compressed:!0,sort:c})}else return o?K(Uint8Array.of(64),new Uint8Array(2*n-1)):K(gt(i,n),gt(a,n))}function aa(e){e.assertValidity();let{BYTES:t,ORDER:r}=k,{x:n,y:s}=e.toAffine();if(e.is0())return qo.slice();let o=!!(s*te/r);return ds(gt(n,t),{compressed:!0,sort:o})}function Fd(e){let{compressed:t,infinity:r,sort:n,value:s}=ko(e),{BYTES:o,ORDER:i}=k;if(s.length===48&&t){let a=$t(s),c=k.create(a&ge(k.BITS));if(r){if(c!==It)throw new Error("invalid G1 point: non-empty, at infinity, with compression");return{x:It,y:It}}let u=k.add(k.pow(c,Do),k.create(jr.b)),d=k.sqrt(u);if(!d)throw new Error("invalid G1 point: compressed point");return d*te/i!==BigInt(n)&&(d=k.neg(d)),{x:k.create(c),y:k.create(d)}}else if(s.length===96&&!t){let a=$t(s.subarray(0,o)),c=$t(s.subarray(o));if(r){if(a!==It||c!==It)throw new Error("G1: non-empty point at infinity");return ls.G1.Point.ZERO.toAffine()}return{x:k.create(a),y:k.create(c)}}else throw new Error("invalid G1 point: expected 48/96 bytes")}function Bu(e){let{infinity:t,sort:r,value:n}=ko(ut("signatureHex",e,48)),s=k.ORDER,o=ls.G1.Point,i=$t(n);if(t)return o.ZERO;let a=k.create(i&ge(k.BITS)),c=k.add(k.pow(a,Do),k.create(jr.b)),u=k.sqrt(c);if(!u)throw new Error("invalid G1 point: compressed");let d=BigInt(r);u*te/s!==d&&(u=k.neg(u));let l=o.fromAffine({x:a,y:u});return l.assertValidity(),l}function Ld(e,t,r){let{BYTES:n,ORDER:s}=k,o=t.is0(),{x:i,y:a}=t.toAffine();if(r){if(o)return K(qo,gt(It,n));let c=!!(a.c1===It?a.c0*te/s:a.c1*te/s);return K(ds(gt(i.c1,n),{compressed:!0,sort:c}),gt(i.c0,n))}else{if(o)return K(Uint8Array.of(64),new Uint8Array(4*n-1));let{re:c,im:u}=W.reim(i),{re:d,im:l}=W.reim(a);return K(gt(u,n),gt(c,n),gt(l,n),gt(d,n))}}function ca(e){e.assertValidity();let{BYTES:t}=k;if(e.is0())return K(qo,gt(It,t));let{x:r,y:n}=e.toAffine(),{re:s,im:o}=W.reim(r),{re:i,im:a}=W.reim(n),u=!!((a>It?a*te:i*te)/k.ORDER&Po),d=s;return K(ds(gt(o,t),{sort:u,compressed:!0}),gt(d,t))}function $d(e){let{BYTES:t,ORDER:r}=k,{compressed:n,infinity:s,sort:o,value:i}=ko(e);if(!n&&!s&&o||!n&&s&&o||o&&s&&n)throw new Error("invalid encoding flag: "+(e[0]&224));let a=(c,u,d)=>$t(c.slice(u,d));if(i.length===96&&n){if(s){if(i.reduce((p,m)=>p!==0?m+1:m,0)>0)throw new Error("invalid G2 point: compressed");return{x:W.ZERO,y:W.ZERO}}let c=a(i,0,t),u=a(i,t,2*t),d=W.create({c0:k.create(u),c1:k.create(c)}),l=W.add(W.pow(d,Do),ua.b),f=W.sqrt(l),h=f.c1===It?f.c0*te/r:f.c1*te/r?Po:It;return f=o&&h>0?f:W.neg(f),{x:d,y:f}}else if(i.length===192&&!n){if(s){if(i.reduce((f,h)=>f!==0?h+1:h,0)>0)throw new Error("invalid G2 point: uncompressed");return{x:W.ZERO,y:W.ZERO}}let c=a(i,0*t,1*t),u=a(i,1*t,2*t),d=a(i,2*t,3*t),l=a(i,3*t,4*t);return{x:W.fromBigTuple([u,c]),y:W.fromBigTuple([l,d])}}else throw new Error("invalid G2 point: expected 96/192 bytes")}function Tu(e){let{ORDER:t}=k,{infinity:r,sort:n,value:s}=ko(ut("signatureHex",e)),o=ls.G2.Point,i=s.length/2;if(i!==48&&i!==96)throw new Error("invalid compressed signature length, expected 96/192 bytes");let a=$t(s.slice(0,i)),c=$t(s.slice(i));if(r)return o.ZERO;let u=k.create(a&ge(k.BITS)),d=k.create(c),l=W.create({c0:d,c1:u}),f=W.add(W.pow(l,Do),ua.b),h=W.sqrt(f);if(!h)throw new Error("Failed to find a square root");let{re:p,im:m}=W.reim(h),g=BigInt(n),y=m>It&&m*te/t!==g,w=m===It&&p*te/t!==g;(y||w)&&(h=W.neg(h));let b=o.fromAffine({x:l,y:h});return b.assertValidity(),b}var ls=bu({fields:{Fp:k,Fp2:W,Fp6:qd,Fp12:et,Fr:Dd},G1:{...jr,Fp:k,htfDefaults:{...ia,m:1,DST:"BLS_SIG_BLS12381G1_XMD:SHA-256_SSWU_RO_NUL_"},wrapPrivateKey:!0,allowInfinityPoint:!0,isTorsionFree:(e,t)=>{let r=BigInt("0x5f19672fdf76ce51ba69c6076a0f77eaddb3a93be6f89688de17d813620a00022e01fffffffefffe"),n=new e(k.mul(t.X,r),t.Y,t.Z);return t.multiplyUnsafe(lr).negate().multiplyUnsafe(lr).equals(n)},clearCofactor:(e,t)=>t.multiplyUnsafe(lr).add(t),mapToCurve:Gd,fromBytes:Fd,toBytes:Md,ShortSignature:{fromBytes(e){return dt(e),Bu(e)},fromHex(e){return Bu(e)},toBytes(e){return aa(e)},toRawBytes(e){return aa(e)},toHex(e){return V(aa(e))}}},G2:{...ua,Fp:W,hEff:BigInt("0xbc69f08f2ee75b3584c6a0ea91b352888e2a8e9145ad7689986ff031508ffe1329c2f178731db956d82bf015d1212b02ec0ec69d7477c1ae954cbc06689f6a359894c0adebbf6b4e8020005aaa95551"),htfDefaults:{...ia},wrapPrivateKey:!0,allowInfinityPoint:!0,mapToCurve:Zd,isTorsionFree:(e,t)=>t.multiplyUnsafe(lr).negate().equals(vu(e,t)),clearCofactor:(e,t)=>{let r=lr,n=t.multiplyUnsafe(r).negate(),s=vu(e,t),o=t.double();return o=kd(e,o),o=o.subtract(s),s=n.add(s),s=s.multiplyUnsafe(r).negate(),o=o.add(s),o=o.subtract(n),o.subtract(t)},fromBytes:$d,toBytes:Ld,Signature:{fromBytes(e){return dt(e),Tu(e)},fromHex(e){return Tu(e)},toBytes(e){return ca(e)},toRawBytes(e){return ca(e)},toHex(e){return V(ca(e))}}},params:{ateLoopSize:lr,r:jr.n,xNegative:!0,twistType:"multiplicative"},htfDefaults:ia,hash:Tt}),Vd=Xi(W,[[["0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6","0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6"],["0x0","0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71a"],["0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71e","0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38d"],["0x171d6541fa38ccfaed6dea691f5fb614cb14b4e7f4e810aa22d6108f142b85757098e38d0f671c7188e2aaaaaaaa5ed1","0x0"]],[["0x0","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa63"],["0xc","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa9f"],["0x1","0x0"]],[["0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706","0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706"],["0x0","0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97be"],["0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71c","0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38f"],["0x124c9ad43b6cf79bfbf7043de3811ad0761b0f37a1e26286b0e977c69aa274524e79097a56dc4bd9e1b371c71c718b10","0x0"]],[["0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb"],["0x0","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa9d3"],["0x12","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa99"],["0x1","0x0"]]].map(e=>e.map(t=>W.fromBigTuple(t.map(BigInt))))),jd=Xi(k,[["0x11a05f2b1e833340b809101dd99815856b303e88a2d7005ff2627b56cdb4e2c85610c2d5f2e62d6eaeac1662734649b7","0x17294ed3e943ab2f0588bab22147a81c7c17e75b2f6a8417f565e33c70d1e86b4838f2a6f318c356e834eef1b3cb83bb","0xd54005db97678ec1d1048c5d10a9a1bce032473295983e56878e501ec68e25c958c3e3d2a09729fe0179f9dac9edcb0","0x1778e7166fcc6db74e0609d307e55412d7f5e4656a8dbf25f1b33289f1b330835336e25ce3107193c5b388641d9b6861","0xe99726a3199f4436642b4b3e4118e5499db995a1257fb3f086eeb65982fac18985a286f301e77c451154ce9ac8895d9","0x1630c3250d7313ff01d1201bf7a74ab5db3cb17dd952799b9ed3ab9097e68f90a0870d2dcae73d19cd13c1c66f652983","0xd6ed6553fe44d296a3726c38ae652bfb11586264f0f8ce19008e218f9c86b2a8da25128c1052ecaddd7f225a139ed84","0x17b81e7701abdbe2e8743884d1117e53356de5ab275b4db1a682c62ef0f2753339b7c8f8c8f475af9ccb5618e3f0c88e","0x80d3cf1f9a78fc47b90b33563be990dc43b756ce79f5574a2c596c928c5d1de4fa295f296b74e956d71986a8497e317","0x169b1f8e1bcfa7c42e0c37515d138f22dd2ecb803a0c5c99676314baf4bb1b7fa3190b2edc0327797f241067be390c9e","0x10321da079ce07e272d8ec09d2565b0dfa7dccdde6787f96d50af36003b14866f69b771f8c285decca67df3f1605fb7b","0x6e08c248e260e70bd1e962381edee3d31d79d7e22c837bc23c0bf1bc24c6b68c24b1b80b64d391fa9c8ba2e8ba2d229"],["0x8ca8d548cff19ae18b2e62f4bd3fa6f01d5ef4ba35b48ba9c9588617fc8ac62b558d681be343df8993cf9fa40d21b1c","0x12561a5deb559c4348b4711298e536367041e8ca0cf0800c0126c2588c48bf5713daa8846cb026e9e5c8276ec82b3bff","0xb2962fe57a3225e8137e629bff2991f6f89416f5a718cd1fca64e00b11aceacd6a3d0967c94fedcfcc239ba5cb83e19","0x3425581a58ae2fec83aafef7c40eb545b08243f16b1655154cca8abc28d6fd04976d5243eecf5c4130de8938dc62cd8","0x13a8e162022914a80a6f1d5f43e7a07dffdfc759a12062bb8d6b44e833b306da9bd29ba81f35781d539d395b3532a21e","0xe7355f8e4e667b955390f7f0506c6e9395735e9ce9cad4d0a43bcef24b8982f7400d24bc4228f11c02df9a29f6304a5","0x772caacf16936190f3e0c63e0596721570f5799af53a1894e2e073062aede9cea73b3538f0de06cec2574496ee84a3a","0x14a7ac2a9d64a8b230b3f5b074cf01996e7f63c21bca68a81996e1cdf9822c580fa5b9489d11e2d311f7d99bbdcc5a5e","0xa10ecf6ada54f825e920b3dafc7a3cce07f8d1d7161366b74100da67f39883503826692abba43704776ec3a79a1d641","0x95fc13ab9e92ad4476d6e3eb3a56680f682b4ee96f7d03776df533978f31c1593174e4b4b7865002d6384d168ecdd0a","0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"],["0x90d97c81ba24ee0259d1f094980dcfa11ad138e48a869522b52af6c956543d3cd0c7aee9b3ba3c2be9845719707bb33","0x134996a104ee5811d51036d776fb46831223e96c254f383d0f906343eb67ad34d6c56711962fa8bfe097e75a2e41c696","0xcc786baa966e66f4a384c86a3b49942552e2d658a31ce2c344be4b91400da7d26d521628b00523b8dfe240c72de1f6","0x1f86376e8981c217898751ad8746757d42aa7b90eeb791c09e4a3ec03251cf9de405aba9ec61deca6355c77b0e5f4cb","0x8cc03fdefe0ff135caf4fe2a21529c4195536fbe3ce50b879833fd221351adc2ee7f8dc099040a841b6daecf2e8fedb","0x16603fca40634b6a2211e11db8f0a6a074a7d0d4afadb7bd76505c3d3ad5544e203f6326c95a807299b23ab13633a5f0","0x4ab0b9bcfac1bbcb2c977d027796b3ce75bb8ca2be184cb5231413c4d634f3747a87ac2460f415ec961f8855fe9d6f2","0x987c8d5333ab86fde9926bd2ca6c674170a05bfe3bdd81ffd038da6c26c842642f64550fedfe935a15e4ca31870fb29","0x9fc4018bd96684be88c9e221e4da1bb8f3abd16679dc26c1e8b6e6a1f20cabe69d65201c78607a360370e577bdba587","0xe1bba7a1186bdb5223abde7ada14a23c42a0ca7915af6fe06985e7ed1e4d43b9b3f7055dd4eba6f2bafaaebca731c30","0x19713e47937cd1be0dfd0b8f1d43fb93cd2fcbcb6caf493fd1183e416389e61031bf3a5cce3fbafce813711ad011c132","0x18b46a908f36f6deb918c143fed2edcc523559b8aaf0c2462e6bfe7f911f643249d9cdf41b44d606ce07c8a4d0074d8e","0xb182cac101b9399d155096004f53f447aa7b12a3426b08ec02710e807b4633f06c851c1919211f20d4c04f00b971ef8","0x245a394ad1eca9b72fc00ae7be315dc757b3b080d4c158013e6632d3c40659cc6cf90ad1c232a6442d9d3f5db980133","0x5c129645e44cf1102a159f748c4a3fc5e673d81d7e86568d9ab0f5d396a7ce46ba1049b6579afb7866b1e715475224b","0x15e6be4e990f03ce4ea50b3b42df2eb5cb181d8f84965a3957add4fa95af01b2b665027efec01c7704b456be69c8b604"],["0x16112c4c3a9c98b252181140fad0eae9601a6de578980be6eec3232b5be72e7a07f3688ef60c206d01479253b03663c1","0x1962d75c2381201e1a0cbd6c43c348b885c84ff731c4d59ca4a10356f453e01f78a4260763529e3532f6102c2e49a03d","0x58df3306640da276faaae7d6e8eb15778c4855551ae7f310c35a5dd279cd2eca6757cd636f96f891e2538b53dbf67f2","0x16b7d288798e5395f20d23bf89edb4d1d115c5dbddbcd30e123da489e726af41727364f2c28297ada8d26d98445f5416","0xbe0e079545f43e4b00cc912f8228ddcc6d19c9f0f69bbb0542eda0fc9dec916a20b15dc0fd2ededda39142311a5001d","0x8d9e5297186db2d9fb266eaac783182b70152c65550d881c5ecd87b6f0f5a6449f38db9dfa9cce202c6477faaf9b7ac","0x166007c08a99db2fc3ba8734ace9824b5eecfdfa8d0cf8ef5dd365bc400a0051d5fa9c01a58b1fb93d1a1399126a775c","0x16a3ef08be3ea7ea03bcddfabba6ff6ee5a4375efa1f4fd7feb34fd206357132b920f5b00801dee460ee415a15812ed9","0x1866c8ed336c61231a1be54fd1d74cc4f9fb0ce4c6af5920abc5750c4bf39b4852cfe2f7bb9248836b233d9d55535d4a","0x167a55cda70a6e1cea820597d94a84903216f763e13d87bb5308592e7ea7d4fbc7385ea3d529b35e346ef48bb8913f55","0x4d2f259eea405bd48f010a01ad2911d9c6dd039bb61a6290e591b36e636a5c871a5c29f4f83060400f8b49cba8f6aa8","0xaccbb67481d033ff5852c1e48c50c477f94ff8aefce42d28c0f9a88cea7913516f968986f7ebbea9684b529e2561092","0xad6b9514c767fe3c3613144b45f1496543346d98adf02267d5ceef9a00d9b8693000763e3b90ac11e99b138573345cc","0x2660400eb2e4f3b628bdd0d53cd76f2bf565b94e72927c1cb748df27942480e420517bd8714cc80d1fadc1326ed06f7","0xe0fa1d816ddc03e6b24255e0d7819c171c40f65e273b853324efcd6356caa205ca2f570f13497804415473a1d634b8f","0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"]].map(e=>e.map(t=>BigInt(t)))),Hd=Qi(k,{A:k.create(BigInt("0x144698a3b8e9433d693a02c96d4982b0ea985383ee66a8d8e8981aefd881ac98936f8da0e0f97f5cf428082d584c1d")),B:k.create(BigInt("0x12e2908d11688030018b12e8753eee3b2016c1f0f24f4070a0b9c14fcef35ef55a23215a316ceaa5d1cc48e98e172be0")),Z:k.create(BigInt(11))}),Kd=Qi(W,{A:W.create({c0:k.create(It),c1:k.create(BigInt(240))}),B:W.create({c0:k.create(BigInt(1012)),c1:k.create(BigInt(1012))}),Z:W.create({c0:k.create(BigInt(-2)),c1:k.create(BigInt(-1))})});function Gd(e){let{x:t,y:r}=Hd(k.create(e[0]));return jd(t,r)}function Zd(e){let{x:t,y:r}=Kd(W.fromBigTuple(e));return Vd(t,r)}function Su(e,t,r){let n=typeof e=="string"?e:V(e),s=typeof t=="string"?t:V(t),o=typeof r=="string"?r:V(r);return ls.verifyShortSignature(s,o,n)}var zd=BigInt(1e6),fa=e=>ht(new he(e)),hr=e=>{let r=fa(e)/zd;return new Date(Number(r))};var Iu=60*1e3,Xd=60,Wd=24,Jd=Wd*Xd,Qd=5,tl=5,el=30*Jd,ft;(function(e){e[e.Empty=0]="Empty",e[e.Fork=1]="Fork",e[e.Labeled=2]="Labeled",e[e.Leaf=3]="Leaf",e[e.Pruned=4]="Pruned"})(ft||(ft={}));function rl(e,t){for(let r=0;rt[r])return!0;return!1}var vn,ee,ms=class ms{constructor(t,r,n,s,o=Qd,i=!1,a){F(this,vn,!1);F(this,ee);this._rootKey=r,this._principal=n,this._blsVerify=s,this._maxAgeInMinutes=o,P(this,vn,i),this.cert=Lt(t),a&&"getTimeDiffMsecs"in a&&"hasSyncedTime"in a&&"syncTime"in a&&"syncTimeWithSubnet"in a&&P(this,ee,a)}static async create(t){let r=ms.createUnverified(t);return await r.verify(),r}static createUnverified(t){var r;return new ms(t.certificate,t.rootKey,t.principal,(r=t.blsVerify)!=null?r:Su,t.maxAgeInMinutes,t.disableTimeVerification,t.agent)}lookup_path(t){return ze(t,this.cert.tree)}lookup_subtree(t){return ys(t,this.cert.tree)}async verify(){var a,c,u;let t=await Fo(this.cert.tree),r=await this._checkDelegationAndGetKey(this.cert.delegation),n=this.cert.signature,s=sl(r),o=K(Dc,t),i=Ct(this.lookup_path(["time"]));if(!i)throw nt.fromCode(new ue("Certificate does not contain a time"));if(!x(this,vn)){let d=(c=(a=x(this,ee))==null?void 0:a.getTimeDiffMsecs())!=null?c:0,l=this._maxAgeInMinutes*Iu,f=new Date,h=f.getTime()+d,p=h-l,m=h+tl*Iu,g=hr(i),y=g.getTime()m;if((y||w)&&x(this,ee)&&!x(this,ee).hasSyncedTime())return await this._syncTime(),await this.verify();if(y)throw kt.fromCode(new ke(this._maxAgeInMinutes,g,f,d,"past"));if(w)throw(u=x(this,ee))!=null&&u.hasSyncedTime()?it.fromCode(new vt("System time has been synced with the IC network, but certificate is still too far in the future.")):kt.fromCode(new ke(5,g,f,d,"future"))}try{if(!await this._blsVerify(s,n,o))throw kt.fromCode(new ue("Invalid signature"))}catch(d){throw kt.fromCode(new ue("Signature verification failed",d))}}async _checkDelegationAndGetKey(t){if(!t)return this._rootKey;let r=ms.createUnverified({certificate:t.certificate,rootKey:this._rootKey,principal:this._principal,blsVerify:this._blsVerify,disableTimeVerification:x(this,vn),maxAgeInMinutes:el,agent:x(this,ee)});if(r.cert.delegation)throw nt.fromCode(new js);await r.verify();let n;if(Cu(this._principal)){let o=this._principal.canisterId;if(n=L.fromUint8Array(t.subnet_id),!da({canisterId:o,subnetId:n,tree:r.cert.tree}))throw kt.fromCode(new Or(o,n))}else if(Au(this._principal))n=this._principal.subnetId;else throw Xt;let s=Ct(r.lookup_path(["subnet",n.toUint8Array(),"public_key"]));if(!s)throw Au(this._principal)?kt.fromCode(new Hs(n)):kt.fromCode(new Gs(`Could not find subnet key for subnet ID ${n.toText()}`));return s}async _syncTime(){x(this,ee)&&(Cu(this._principal)?await x(this,ee).syncTime(this._principal.canisterId):await x(this,ee).syncTimeWithSubnet(this._principal.subnetId))}};vn=new WeakMap,ee=new WeakMap;var re=ms;function Au(e){return"subnetId"in e}function Cu(e){return"canisterId"in e}var hs=Bt("308182301d060d2b0601040182dc7c0503010201060c2b0601040182dc7c05030201036100"),nl=96;function sl(e){let t=hs.byteLength+nl;if(e.byteLength!==t)throw nt.fromCode(new nn(t,e.byteLength));let r=e.slice(0,hs.byteLength);if(!Dr(r,hs))throw nt.fromCode(new Zs(hs,r));return e.slice(hs.byteLength)}function Ct(e){if(e.status===At.Found&&e.value instanceof Uint8Array)return e.value}async function Fo(e){switch(e[0]){case ft.Empty:return Tt(Mo("ic-hashtree-empty"));case ft.Pruned:return e[1];case ft.Leaf:return Tt(K(Mo("ic-hashtree-leaf"),e[1]));case ft.Labeled:return Tt(K(Mo("ic-hashtree-labeled"),e[1],await Fo(e[2])));case ft.Fork:return Tt(K(Mo("ic-hashtree-fork"),await Fo(e[1]),await Fo(e[2])));default:throw Xt}}function Mo(e){let t=new Uint8Array([e.length]),r=new TextEncoder().encode(e);return K(t,r)}function Ou(e){return typeof e[0]=="string"?z(e[0]):e[0]}var At;(function(e){e.Unknown="Unknown",e.Absent="Absent",e.Found="Found",e.Error="Error"})(At||(At={}));var pr;(function(e){e.Absent="Absent",e.Unknown="Unknown",e.Found="Found"})(pr||(pr={}));var ct;(function(e){e.Absent="Absent",e.Unknown="Unknown",e.Found="Found",e.Less="Less",e.Greater="Greater"})(ct||(ct={}));function ze(e,t){if(e.length===0)switch(t[0]){case ft.Empty:return{status:At.Absent};case ft.Leaf:{if(!t[1])throw it.fromCode(new sr("Invalid tree structure for leaf"));if(t[1]instanceof Uint8Array)return{status:At.Found,value:t[1].slice(t[1].byteOffset,t[1].byteLength+t[1].byteOffset)};throw Xt}case ft.Pruned:return{status:At.Unknown};case ft.Labeled:case ft.Fork:return{status:At.Error};default:throw Xt}let r=Ou(e),n=ps(r,t);switch(n.status){case ct.Found:return ze(e.slice(1),n.value);case ct.Absent:case ct.Greater:case ct.Less:return{status:At.Absent};case ct.Unknown:return{status:At.Unknown};default:throw Xt}}function ys(e,t){if(e.length===0)return{status:pr.Found,value:t};let r=Ou(e),n=ps(r,t);switch(n.status){case ct.Found:return ys(e.slice(1),n.value);case ct.Unknown:return{status:pr.Unknown};case ct.Absent:case ct.Greater:case ct.Less:return{status:pr.Absent};default:throw Xt}}function $o(e){switch(e[0]){case ft.Empty:return[];case ft.Fork:return $o(e[1]).concat($o(e[2]));default:return[e]}}function ps(e,t){switch(t[0]){case ft.Labeled:return rl(e,t[1])?{status:ct.Greater}:Dr(e,t[1])?{status:ct.Found,value:t[2]}:{status:ct.Less};case ft.Fork:{let r=ps(e,t[1]);switch(r.status){case ct.Greater:{let n=ps(e,t[2]);return n.status===ct.Less?{status:ct.Absent}:n}case ct.Unknown:{let n=ps(e,t[2]);return n.status===ct.Less?{status:ct.Unknown}:n}default:return r}}case ft.Pruned:return{status:ct.Unknown};default:return{status:ct.Absent}}}function Lo(e,t){switch(t[0]){case ft.Empty|ft.Pruned:return[];case ft.Leaf:return[e];case ft.Fork:return Lo(e,t[1]).concat(Lo(e,t[2]));case ft.Labeled:{let r=t[1],n=t[2],s=[...e,r];return Lo(s,n)}default:throw Xt}}function da(e){let t=ol(e),r=la(t),{canisterId:n}=e;return r.some(o=>o[0].ltEq(n)&&o[1].gtEq(n))}function ol(e){let{subnetId:t,tree:r,canisterId:n}=e,s=ys(["canister_ranges",t.toUint8Array()],r);if(s.status!==pr.Found)return il(t,r);let o=s.value,i=al(o);if(i.length===0)throw nt.fromCode(new Or(n,t));i.sort(on);let a=cl(i,n),c=i[a];return ul(c,o)}function il(e,t){let r=ze(["subnet",e.toUint8Array(),"canister_ranges"],t);if(r.status!==At.Found)throw nt.fromCode(new fe(`Could not find canister ranges for subnet ${e.toText()}`,r.status));return r.value}function la(e){return Lt(e).map(n=>[L.fromUint8Array(n[0]),L.fromUint8Array(n[1])])}function al(e){let t=[];for(let r of Lo([],e)){let n=r[0];if(!n)throw nt.fromCode(new ue("Path is invalid"));t.push(n)}return t}function cl(e,t){let r=t.toUint8Array(),n=0,s=e.length-1;for(;nL.fromUint8Array(r))}function Uu(e,t){let r=typeof e=="string"?z(e):e;return[z("canister"),t,z("metadata"),r]}function mr(e){return typeof e=="object"&&e!==null&&"key"in e&&"path"in e}function Bn(e,t){let r=ys(["subnet",t.toUint8Array(),"node"],e.tree);if(r.status!==pr.Found)throw nt.fromCode(new fe("Node not found",r.status));if(r.value instanceof Uint8Array)throw it.fromCode(new sr("Invalid node tree"));let n=$o(r.value),s=new Map;return n.forEach(o=>{let i=L.from(o[1]).toText(),a=ze(["public_key"],o[2]);if(a.status!==At.Found)throw nt.fromCode(new fe("Public key not found",a.status));let c=a.value;if(c.byteLength!==44)throw nt.fromCode(new nn(44,c.byteLength));s.set(i,c)}),s}var Pu=async e=>{let{agent:t,paths:r,disableCertificateTimeVerification:n=!1}=e,s=L.from(e.canisterId),o=[...new Set(r)],i=new Map,a=o.map((c,u)=>{let d=dl(c,s);return(async()=>{try{if(t.rootKey===null)throw St.fromCode(new le);let l=t.rootKey,f=await t.readState(s,{paths:[d]}),h=await re.create({certificate:f.certificate,rootKey:l,principal:{canisterId:s},disableTimeVerification:n,agent:t}),p=(y,w)=>{if(w==="subnet"){let b=fl(f.certificate,s,l);return{path:w,data:b}}return{path:w,data:Ct(y.lookup_path(d))}},{path:m,data:g}=p(h,o[u]);if(!g)typeof m=="string"?i.set(m,null):i.set(m.key,null);else switch(m){case"time":{i.set(m,hr(g));break}case"controllers":{i.set(m,Nu(g));break}case"module_hash":{i.set(m,V(g));break}case"subnet":{i.set(m,g);break}case"candid":{i.set(m,new TextDecoder().decode(g));break}default:mr(m)&&i.set(m.key,Vo(g,m.decodeStrategy))}}catch(l){if(l instanceof Kt&&(l.hasCode(ue)||l.hasCode(ke)))throw l;mr(c)?i.set(c.key,null):i.set(c,null)}})()});return await Promise.all(a),i},fl=(e,t,r)=>{if(!t._isPrincipal)throw J.fromCode(new vt("Invalid canisterId"));let n=Lt(e),{delegation:s}=n,o;s&&s.subnet_id?o=L.fromUint8Array(new Uint8Array(s.subnet_id)):!s&&typeof r!="undefined"?o=L.selfAuthenticating(new Uint8Array(r)):o=Ru;let i=Bn(n,o);return{subnetId:o.toText(),nodeKeys:i}},dl=(e,t)=>{let r=t.toUint8Array();switch(e){case"time":return[z("time")];case"controllers":return[z("canister"),r,z("controllers")];case"module_hash":return[z("canister"),r,z("module_hash")];case"subnet":return[z("subnet")];case"candid":return[z("canister"),r,z("metadata"),z("candid:service")];default:if(mr(e))return typeof e.path=="string"||e.path instanceof Uint8Array?Uu(e.path,r):e.path}throw it.fromCode(new vt(`Error while encoding your path for canister status. Please ensure that your path ${e} was formatted correctly.`))};async function Du(e){let{agent:t,paths:r,disableCertificateTimeVerification:n=!1}=e,s=L.from(e.subnetId),o=[...new Set(r)],i=new Map,a=o.map((c,u)=>{let d=ll(c,s);return(async()=>{try{if(t.rootKey===null)throw St.fromCode(new le);let l=t.rootKey,f=await t.readSubnetState(s,{paths:[d]}),h=await re.create({certificate:f.certificate,rootKey:l,principal:{subnetId:s},disableTimeVerification:n,agent:t}),p=(y,w)=>{if(w==="nodeKeys"){let b=Bn(y.cert,s);return{path:w,data:b}}return{path:w,data:Ct(y.lookup_path(d))}},{path:m,data:g}=p(h,o[u]);if(!g)typeof m=="string"?i.set(m,null):i.set(m.key,null);else switch(m){case"time":{i.set(m,hr(g));break}case"canisterRanges":{i.set(m,la(g));break}case"publicKey":{i.set(m,g);break}case"nodeKeys":{i.set(m,g);break}default:mr(m)&&i.set(m.key,Vo(g,m.decodeStrategy))}}catch(l){if(l instanceof Kt&&(l.hasCode(ue)||l.hasCode(ke)))throw l;mr(c)?i.set(c.key,null):i.set(c,null)}})()});return await Promise.all(a),i}function ll(e,t){let r=t.toUint8Array();switch(e){case"time":return[z("time")];case"canisterRanges":return[z("canister_ranges"),r];case"publicKey":return[z("subnet"),r,z("public_key")];case"nodeKeys":return[z("subnet"),r,z("node")];default:if(mr(e)){if(typeof e.path=="string"||e.path instanceof Uint8Array){let n=typeof e.path=="string"?z(e.path):e.path;return[z("subnet"),r,n]}return e.path}}throw it.fromCode(new vt(`Error while encoding your path for subnet status. Please ensure that your path ${e} was formatted correctly.`))}function jo(e,t,r){let n=new Uint8Array(Ct(e.lookup_path([...t,"reject_code"])))[0],s=new TextDecoder().decode(Ct(e.lookup_path([...t,"reject_message"]))),o=Ct(e.lookup_path([...t,"error_code"])),i=o?new TextDecoder().decode(o):void 0;return new Js(r,n,s,i)}var yr=BigInt(0),wt=BigInt(1),pa=BigInt(2),hl=BigInt(8);function pl(e,t,r,n){let s=e.sqr(r),o=e.sqr(n),i=e.add(e.mul(t.a,s),o),a=e.add(e.ONE,e.mul(t.d,e.mul(s,o)));return e.eql(i,a)}function ml(e,t={}){let r=No("edwards",e,t,t.FpFnLE),{Fp:n,Fn:s}=r,o=r.CURVE,{h:i}=o;Ke(t,{},{uvRatio:"function"});let a=pa<n.create(g),u=t.uvRatio||((g,y)=>{try{return{isValid:!0,value:n.sqrt(n.div(g,y))}}catch(w){return{isValid:!1,value:yr}}});if(!pl(n,o,o.Gx,o.Gy))throw new Error("bad curve params: generator point");function d(g,y,w=!1){let b=w?wt:yr;return Co("coordinate "+g,y,b,a),y}function l(g){if(!(g instanceof p))throw new Error("ExtendedPoint expected")}let f=fr((g,y)=>{let{X:w,Y:b,Z:v}=g,T=g.is0();y==null&&(y=T?hl:n.inv(v));let I=c(w*y),S=c(b*y),C=n.mul(v,y);if(T)return{x:yr,y:wt};if(C!==wt)throw new Error("invZ was invalid");return{x:I,y:S}}),h=fr(g=>{let{a:y,d:w}=o;if(g.is0())throw new Error("bad point: ZERO");let{X:b,Y:v,Z:T,T:I}=g,S=c(b*b),C=c(v*v),_=c(T*T),A=c(_*_),D=c(S*y),R=c(_*c(D+C)),E=c(A+c(w*c(S*C)));if(R!==E)throw new Error("bad point: equation left != right (1)");let B=c(b*v),U=c(T*I);if(B!==U)throw new Error("bad point: equation left != right (2)");return!0});class p{constructor(y,w,b,v){this.X=d("x",y),this.Y=d("y",w),this.Z=d("z",b,!0),this.T=d("t",v),Object.freeze(this)}static CURVE(){return o}static fromAffine(y){if(y instanceof p)throw new Error("extended point not allowed");let{x:w,y:b}=y||{};return d("x",w),d("y",b),new p(w,b,wt,c(w*b))}static fromBytes(y,w=!1){let b=n.BYTES,{a:v,d:T}=o;y=$i(ur(y,b,"point")),Fr(w,"zip215");let I=$i(y),S=y[b-1];I[b-1]=S&-129;let C=je(I),_=w?a:n.ORDER;Co("point.y",C,yr,_);let A=c(C*C),D=c(A-wt),R=c(T*A-v),{isValid:E,value:B}=u(D,R);if(!E)throw new Error("bad point: invalid y coordinate");let U=(B&wt)===wt,M=(S&128)!==0;if(!w&&B===yr&&M)throw new Error("bad point: x=0 and x_0=1");return M!==U&&(B=c(-B)),p.fromAffine({x:B,y:C})}static fromHex(y,w=!1){return p.fromBytes(ut("point",y),w)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(y=8,w=!0){return m.createCache(this,y),w||this.multiply(pa),this}assertValidity(){h(this)}equals(y){l(y);let{X:w,Y:b,Z:v}=this,{X:T,Y:I,Z:S}=y,C=c(w*S),_=c(T*v),A=c(b*S),D=c(I*v);return C===_&&A===D}is0(){return this.equals(p.ZERO)}negate(){return new p(c(-this.X),this.Y,this.Z,c(-this.T))}double(){let{a:y}=o,{X:w,Y:b,Z:v}=this,T=c(w*w),I=c(b*b),S=c(pa*c(v*v)),C=c(y*T),_=w+b,A=c(c(_*_)-T-I),D=C+I,R=D-S,E=C-I,B=c(A*R),U=c(D*E),M=c(A*E),X=c(R*D);return new p(B,U,X,M)}add(y){l(y);let{a:w,d:b}=o,{X:v,Y:T,Z:I,T:S}=this,{X:C,Y:_,Z:A,T:D}=y,R=c(v*C),E=c(T*_),B=c(S*b*D),U=c(I*A),M=c((v+T)*(C+_)-R-E),X=U-B,O=U+B,N=c(E-w*R),q=c(M*X),$=c(O*N),j=c(M*N),Et=c(X*O);return new p(q,$,Et,j)}subtract(y){return this.add(y.negate())}multiply(y){if(!s.isValidNot0(y))throw new Error("invalid scalar: expected 1 <= sc < curve.n");let{p:w,f:b}=m.cached(this,y,v=>Qt(p,v));return Qt(p,[w,b])[0]}multiplyUnsafe(y,w=p.ZERO){if(!s.isValid(y))throw new Error("invalid scalar: expected 0 <= sc < curve.n");return y===yr?p.ZERO:this.is0()||y===wt?this:m.unsafe(this,y,b=>Qt(p,b),w)}isSmallOrder(){return this.multiplyUnsafe(i).is0()}isTorsionFree(){return m.unsafe(this,o.n).is0()}toAffine(y){return f(this,y)}clearCofactor(){return i===wt?this:this.multiplyUnsafe(i)}toBytes(){let{x:y,y:w}=this.toAffine(),b=n.toBytes(w);return b[b.length-1]|=y&wt?128:0,b}toHex(){return V(this.toBytes())}toString(){return``}get ex(){return this.X}get ey(){return this.Y}get ez(){return this.Z}get et(){return this.T}static normalizeZ(y){return Qt(p,y)}static msm(y,w){return wn(p,s,y,w)}_setWindowSize(y){this.precompute(y)}toRawBytes(){return this.toBytes()}}p.BASE=new p(o.Gx,o.Gy,wt,c(o.Gx*o.Gy)),p.ZERO=new p(yr,wt,wt,yr),p.Fp=n,p.Fn=s;let m=new xn(p,s.BITS);return p.BASE.precompute(8),p}var Ho=class{constructor(t){this.ep=t}static fromBytes(t){bn()}static fromHex(t){bn()}get x(){return this.toAffine().x}get y(){return this.toAffine().y}clearCofactor(){return this}assertValidity(){this.ep.assertValidity()}toAffine(t){return this.ep.toAffine(t)}toHex(){return V(this.toBytes())}toString(){return this.toHex()}isTorsionFree(){return!0}isSmallOrder(){return!1}add(t){return this.assertSame(t),this.init(this.ep.add(t.ep))}subtract(t){return this.assertSame(t),this.init(this.ep.subtract(t.ep))}multiply(t){return this.init(this.ep.multiply(t))}multiplyUnsafe(t){return this.init(this.ep.multiplyUnsafe(t))}double(){return this.init(this.ep.double())}negate(){return this.init(this.ep.negate())}precompute(t,r){return this.init(this.ep.precompute(t,r))}toRawBytes(){return this.toBytes()}};function yl(e,t,r={}){if(typeof t!="function")throw new Error('"hash" function param is required');Ke(r,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",mapToCurve:"function"});let{prehash:n}=r,{BASE:s,Fp:o,Fn:i}=e,a=r.randomBytes||rn,c=r.adjustScalarBytes||(_=>_),u=r.domain||((_,A,D)=>{if(Fr(D,"phflag"),A.length||D)throw new Error("Contexts/pre-hash are not supported");return _});function d(_){return i.create(je(_))}function l(_){let A=b.secretKey;_=ut("private key",_,A);let D=ut("hashed private key",t(_),2*A),R=c(D.slice(0,A)),E=D.slice(A,2*A),B=d(R);return{head:R,prefix:E,scalar:B}}function f(_){let{head:A,prefix:D,scalar:R}=l(_),E=s.multiply(R),B=E.toBytes();return{head:A,prefix:D,scalar:R,point:E,pointBytes:B}}function h(_){return f(_).pointBytes}function p(_=Uint8Array.of(),...A){let D=K(...A);return d(t(u(D,ut("context",_),!!n)))}function m(_,A,D={}){_=ut("message",_),n&&(_=n(_));let{prefix:R,scalar:E,pointBytes:B}=f(A),U=p(D.context,R,_),M=s.multiply(U).toBytes(),X=p(D.context,M,B,_),O=i.create(U+X*E);if(!i.isValid(O))throw new Error("sign failed: invalid s");let N=K(M,i.toBytes(O));return ur(N,b.signature,"result")}let g={zip215:!0};function y(_,A,D,R=g){let{context:E,zip215:B}=R,U=b.signature;_=ut("signature",_,U),A=ut("message",A),D=ut("publicKey",D,b.publicKey),B!==void 0&&Fr(B,"zip215"),n&&(A=n(A));let M=U/2,X=_.subarray(0,M),O=je(_.subarray(M,U)),N,q,$;try{N=e.fromBytes(D,B),q=e.fromBytes(X,B),$=s.multiplyUnsafe(O)}catch(mt){return!1}if(!B&&N.isSmallOrder())return!1;let j=p(E,q.toBytes(),N.toBytes(),A);return q.add(N.multiplyUnsafe(j)).subtract($).clearCofactor().is0()}let w=o.BYTES,b={secretKey:w,publicKey:w,signature:2*w,seed:w};function v(_=a(b.seed)){return ur(_,b.seed,"seed")}function T(_){let A=C.randomSecretKey(_);return{secretKey:A,publicKey:h(A)}}function I(_){return Be(_)&&_.length===i.BYTES}function S(_,A){try{return!!e.fromBytes(_,A)}catch(D){return!1}}let C={getExtendedPublicKey:f,randomSecretKey:v,isValidSecretKey:I,isValidPublicKey:S,toMontgomery(_){let{y:A}=e.fromBytes(_),D=b.publicKey,R=D===32;if(!R&&D!==57)throw new Error("only defined for 25519 and 448");let E=R?o.div(wt+A,wt-A):o.div(A-wt,A+wt);return o.toBytes(E)},toMontgomerySecret(_){let A=b.secretKey;ur(_,A);let D=t(_.subarray(0,A));return c(D).subarray(0,A)},randomPrivateKey:v,precompute(_=8,A=e.BASE){return A.precompute(_,!1)}};return Object.freeze({keygen:T,getPublicKey:h,sign:m,verify:y,utils:C,Point:e,lengths:b})}function bl(e){let t={a:e.a,d:e.d,p:e.Fp.ORDER,n:e.n,h:e.h,Gx:e.Gx,Gy:e.Gy},r=e.Fp,n=Ut(t.n,e.nBitLength,!0),s={Fp:r,Fn:n,uvRatio:e.uvRatio},o={randomBytes:e.randomBytes,adjustScalarBytes:e.adjustScalarBytes,domain:e.domain,prehash:e.prehash,mapToCurve:e.mapToCurve};return{CURVE:t,curveOpts:s,hash:e.hash,eddsaOpts:o}}function gl(e,t){let r=t.Point;return Object.assign({},t,{ExtendedPoint:r,CURVE:e,nBitLength:r.Fn.BITS,nByteLength:r.Fn.BYTES})}function qu(e){let{CURVE:t,curveOpts:r,hash:n,eddsaOpts:s}=bl(e),o=ml(t,r),i=yl(o,n,s);return gl(e,i)}var xl=BigInt(0),Xe=BigInt(1),ku=BigInt(2),jp=BigInt(3),wl=BigInt(5),El=BigInt(8),Tn=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),bs={p:Tn,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:El,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function _l(e){let t=BigInt(10),r=BigInt(20),n=BigInt(40),s=BigInt(80),o=Tn,a=e*e%o*e%o,c=xe(a,ku,o)*a%o,u=xe(c,Xe,o)*e%o,d=xe(u,wl,o)*u%o,l=xe(d,t,o)*d%o,f=xe(l,r,o)*l%o,h=xe(f,n,o)*f%o,p=xe(h,s,o)*h%o,m=xe(p,s,o)*h%o,g=xe(m,t,o)*d%o;return{pow_p_5_8:xe(g,ku,o)*e%o,b2:a}}function vl(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}var ma=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function ga(e,t){let r=Tn,n=at(t*t*t,r),s=at(n*n*t,r),o=_l(e*s).pow_p_5_8,i=at(e*n*o,r),a=at(t*i*i,r),c=i,u=at(i*ma,r),d=a===e,l=a===at(-e,r),f=a===at(-e*ma,r);return d&&(i=c),(l||f)&&(i=u),Ge(i,r)&&(i=at(-i,r)),{isValid:d||l,value:i}}var br=Ut(bs.p,{isLE:!0}),Bl=Ut(bs.n,{isLE:!0}),Tl={...bs,Fp:br,hash:tc,adjustScalarBytes:vl,uvRatio:ga},qt=qu(Tl);var ya=ma,Sl=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),Il=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),Al=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),Cl=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952"),Mu=e=>ga(Xe,e),Ol=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),ba=e=>qt.Point.Fp.create(je(e)&Ol);function Fu(e){let{d:t}=bs,r=Tn,n=y=>br.create(y),s=n(ya*e*e),o=n((s+Xe)*Al),i=BigInt(-1),a=n((i-t*s)*n(s+t)),{isValid:c,value:u}=ga(o,a),d=n(u*e);Ge(d,r)||(d=n(-d)),c||(u=d),c||(i=s);let l=n(i*(s-Xe)*Cl-a),f=u*u,h=n((u+u)*a),p=n(l*Sl),m=n(Xe-f),g=n(Xe+f);return new qt.Point(n(h*g),n(m*p),n(p*g),n(h*m))}function Rl(e){dt(e,64);let t=ba(e.subarray(0,32)),r=Fu(t),n=ba(e.subarray(32,64)),s=Fu(n);return new We(r.add(s))}var We=class e extends Ho{constructor(t){super(t)}static fromAffine(t){return new e(qt.Point.fromAffine(t))}assertSame(t){if(!(t instanceof e))throw new Error("RistrettoPoint expected")}init(t){return new e(t)}static hashToCurve(t){return Rl(ut("ristrettoHash",t,64))}static fromBytes(t){dt(t,32);let{a:r,d:n}=bs,s=Tn,o=v=>br.create(v),i=ba(t);if(!zc(br.toBytes(i),t)||Ge(i,s))throw new Error("invalid ristretto255 encoding 1");let a=o(i*i),c=o(Xe+r*a),u=o(Xe-r*a),d=o(c*c),l=o(u*u),f=o(r*n*d-l),{isValid:h,value:p}=Mu(o(f*l)),m=o(p*u),g=o(p*m*f),y=o((i+i)*m);Ge(y,s)&&(y=o(-y));let w=o(c*g),b=o(y*w);if(!h||Ge(b,s)||w===xl)throw new Error("invalid ristretto255 encoding 2");return new e(new qt.Point(y,w,Xe,b))}static fromHex(t){return e.fromBytes(ut("ristrettoHex",t,32))}static msm(t,r){return wn(e,qt.Point.Fn,t,r)}toBytes(){let{X:t,Y:r,Z:n,T:s}=this.ep,o=Tn,i=g=>br.create(g),a=i(i(n+r)*i(n-r)),c=i(t*r),u=i(c*c),{value:d}=Mu(i(a*u)),l=i(d*a),f=i(d*c),h=i(l*f*s),p;if(Ge(s*h,o)){let g=i(r*ya),y=i(t*ya);t=g,r=y,p=i(l*Il)}else p=f;Ge(t*h,o)&&(r=i(-r));let m=i((n-r)*p);return Ge(m,o)&&(m=i(-m)),br.toBytes(m)}equals(t){this.assertSame(t);let{X:r,Y:n}=this.ep,{X:s,Y:o}=t.ep,i=u=>br.create(u),a=i(r*o)===i(n*s),c=i(n*o)===i(r*s);return a||c}is0(){return this.equals(e.ZERO)}};We.BASE=new We(qt.Point.BASE);We.ZERO=new We(qt.Point.ZERO);We.Fp=br;We.Fn=Bl;function Ko(e){if(!Number.isFinite(e)||e<=0)throw new Error(`expirationTime must be a positive finite number, got ${e}`)}var xs,Vt,gr,jt,gs,Lu,xa,$u,Go=class{constructor(t){F(this,jt);F(this,xs);F(this,Vt);F(this,gr,null);if(typeof globalThis.indexedDB=="undefined")throw new Error("IndexedDBExpirableStore requires IndexedDB, which is not available in this environment");Ko(t.expirationTime),P(this,xs,t.dbName),P(this,Vt,t.storeName),this.expirationTime=t.expirationTime}async get(t){let r=await Y(this,jt,gs).call(this);return new Promise((n,s)=>{let a=r.transaction(x(this,Vt),"readonly").objectStore(x(this,Vt)).get(t);a.onsuccess=()=>{let c=a.result;if(!c){n(void 0);return}if(Date.now()-c.timestamp>this.expirationTime){this.delete(t).then(()=>n(void 0),()=>n(void 0));return}n(c.value)},a.onerror=()=>s(a.error)})}async set(t,r){await Y(this,jt,$u).call(this);let n=await Y(this,jt,gs).call(this);return new Promise((s,o)=>{let i=n.transaction(x(this,Vt),"readwrite"),a=i.objectStore(x(this,Vt)),c={key:t,value:r,timestamp:Date.now()};a.put(c),i.oncomplete=()=>s(),i.onerror=()=>o(i.error)})}async delete(t){let r=await Y(this,jt,gs).call(this);return new Promise((n,s)=>{let o=r.transaction(x(this,Vt),"readwrite");o.objectStore(x(this,Vt)).delete(t),o.oncomplete=()=>n(),o.onerror=()=>s(o.error)})}};xs=new WeakMap,Vt=new WeakMap,gr=new WeakMap,jt=new WeakSet,gs=function(){return x(this,gr)||P(this,gr,Y(this,jt,Lu).call(this).catch(t=>{throw P(this,gr,null),t})),x(this,gr)},Lu=async function(){let t=await Y(this,jt,xa).call(this);if(t.objectStoreNames.contains(x(this,Vt)))return t;let r=t.version+1;return t.close(),Y(this,jt,xa).call(this,r)},xa=function(t){let r=x(this,Vt);return new Promise((n,s)=>{let o=globalThis.indexedDB.open(x(this,xs),t);o.onupgradeneeded=()=>{let i=o.result;i.objectStoreNames.contains(r)||i.createObjectStore(r,{keyPath:"key"})},o.onsuccess=()=>{let i=o.result;i.onversionchange=()=>{i.close(),P(this,gr,null)},n(i)},o.onerror=()=>s(o.error)})},$u=async function(){let t=await Y(this,jt,gs).call(this),r=Date.now();return new Promise((n,s)=>{let o=t.transaction(x(this,Vt),"readwrite"),a=o.objectStore(x(this,Vt)).openCursor();a.onsuccess=()=>{let c=a.result;if(!c)return;let u=c.value;r-u.timestamp>this.expirationTime&&c.delete(),c.continue()},o.oncomplete=()=>n(),o.onerror=()=>s(o.error)})};var Oe,Yo,Vu,Zo=class{constructor(t){F(this,Yo);F(this,Oe);Ko(t.expirationTime),this.expirationTime=t.expirationTime,P(this,Oe,new Map)}get(t){let r=x(this,Oe).get(t);return r?Date.now()-r.timestamp>this.expirationTime?(x(this,Oe).delete(t),Promise.resolve(void 0)):Promise.resolve(r.value):Promise.resolve(void 0)}set(t,r){return Y(this,Yo,Vu).call(this),x(this,Oe).set(t,{value:r,timestamp:Date.now()}),Promise.resolve()}delete(t){return x(this,Oe).delete(t),Promise.resolve()}};Oe=new WeakMap,Yo=new WeakSet,Vu=function(){let t=Date.now();for(let[r,n]of x(this,Oe))t-n.timestamp>this.expirationTime&&x(this,Oe).delete(r)};function ju(e){return typeof globalThis.indexedDB!="undefined"?new Go(e):new Zo({expirationTime:e.expirationTime})}var Hu=e=>{if(e<=127)return 1;if(e<=255)return 2;if(e<=65535)return 3;if(e<=16777215)return 4;throw J.fromCode(new Fn("Length too long (> 4 bytes)"))},Ku=(e,t,r)=>{if(r<=127)return e[t]=r,1;if(r<=255)return e[t]=129,e[t+1]=r,2;if(r<=65535)return e[t]=130,e[t+1]=r>>8,e[t+2]=r,3;if(r<=16777215)return e[t]=131,e[t+1]=r>>16,e[t+2]=r>>8,e[t+3]=r,4;throw J.fromCode(new Fn("Length too long (> 4 bytes)"))},wa=(e,t)=>{if(e[t]<128)return 1;if(e[t]===128)throw J.fromCode(new de("Invalid length 0"));if(e[t]===129)return 2;if(e[t]===130)return 3;if(e[t]===131)return 4;throw J.fromCode(new de("Length too long (> 4 bytes)"))},Nl=(e,t)=>{let r=wa(e,t);if(r===1)return e[t];if(r===2)return e[t+1];if(r===3)return(e[t+1]<<8)+e[t+2];if(r===4)return(e[t+1]<<16)+(e[t+2]<<8)+e[t+3];throw J.fromCode(new de("Length too long (> 4 bytes)"))},nm=Uint8Array.from([48,12,6,10,43,6,1,4,1,131,184,67,1,1]),Sn=Uint8Array.from([48,5,6,3,43,101,112]),sm=Uint8Array.from([48,16,6,7,42,134,72,206,61,2,1,6,5,43,129,4,0,10]),om=Uint8Array.from([48,29,6,13,43,6,1,4,1,130,220,124,5,3,1,2,1,6,12,43,6,1,4,1,130,220,124,5,3,2,1]);function zo(e,t){let r=2+Hu(e.byteLength+1),n=t.byteLength+r+e.byteLength,s=0,o=new Uint8Array(1+Hu(n)+n);return o[s++]=48,s+=Ku(o,s,n),o.set(t,s),s+=t.byteLength,o[s++]=3,s+=Ku(o,s,e.byteLength+1),o[s++]=0,o.set(new Uint8Array(e),s),o}var Xo=(e,t)=>{let r=0,n=(a,c)=>{if(s[r++]!==a)throw J.fromCode(new de(`Expected ${c} at offset ${r}`))},s=new Uint8Array(e);if(n(48,"sequence"),r+=wa(s,r),!Dr(s.slice(r,r+t.byteLength),t))throw J.fromCode(new de("Not the expected OID."));r+=t.byteLength,n(3,"bit string");let o=Nl(s,r)-1;r+=wa(s,r),n(0,"0 padding");let i=s.slice(r);if(o!==i.length)throw J.fromCode(new Ys(o,i.length));return i};var ws,Es,Hr=class Hr{constructor(t){F(this,ws);F(this,Es);if(t.byteLength!==Hr.RAW_KEY_LENGTH)throw J.fromCode(new de("An Ed25519 public key must be exactly 32 bytes long"));P(this,ws,t),P(this,Es,Hr.derEncode(t))}static from(t){return this.fromDer(t.toDer())}static fromRaw(t){return new Hr(t)}static fromDer(t){return new Hr(this.derDecode(t))}static derEncode(t){return zo(t,Sn)}static derDecode(t){let r=Xo(t,Sn);if(r.length!==this.RAW_KEY_LENGTH)throw J.fromCode(new de("An Ed25519 public key must be exactly 32 bytes long"));return r}get rawKey(){return x(this,ws)}get derKey(){return x(this,Es)}toDer(){return this.derKey}toRaw(){return this.rawKey}};ws=new WeakMap,Es=new WeakMap,Hr.RAW_KEY_LENGTH=32;var Wo=Hr;var Ea=class{constructor(){this.observers=[]}subscribe(t){this.observers.push(t)}unsubscribe(t){this.observers=this.observers.filter(r=>r!==t)}notify(t,...r){this.observers.forEach(n=>n(t,...r))}},Jo=class extends Ea{constructor(){super()}print(t,...r){this.notify({message:t,level:"info"},...r)}warn(t,...r){this.notify({message:t,level:"warn"},...r)}error(t,r,...n){this.notify({message:t,level:"error",error:r},...n)}};var we,_s,vs,Bs,Ts,Ss,Is,As,In,ti=class ti{constructor(t=ti.default){F(this,we);F(this,_s);F(this,vs);F(this,Bs);F(this,Ts);F(this,Ss);F(this,Is);F(this,As);F(this,In,0);let{initialInterval:r=500,randomizationFactor:n=.5,multiplier:s=1.5,maxInterval:o=6e4,maxElapsedTime:i=9e5,maxIterations:a=10,date:c=Date}=t;P(this,we,r),P(this,_s,n),P(this,vs,s),P(this,Bs,o),P(this,As,c),P(this,Ts,c.now()),P(this,Ss,i),P(this,Is,a)}get ellapsedTimeInMsec(){return x(this,As).now()-x(this,Ts)}get currentInterval(){return x(this,we)}get count(){return x(this,In)}get randomValueFromInterval(){let t=x(this,_s)*x(this,we),r=x(this,we)-t,n=x(this,we)+t;return Math.random()*(n-r)+r}incrementCurrentInterval(){return P(this,we,Math.min(x(this,we)*x(this,vs),x(this,Bs))),Ra(this,In)._++,x(this,we)}next(){return this.ellapsedTimeInMsec>=x(this,Ss)||x(this,In)>=x(this,Is)?null:(this.incrementCurrentInterval(),this.randomValueFromInterval)}};we=new WeakMap,_s=new WeakMap,vs=new WeakMap,Bs=new WeakMap,Ts=new WeakMap,Ss=new WeakMap,Is=new WeakMap,As=new WeakMap,In=new WeakMap,ti.default={initialInterval:500,randomizationFactor:.5,multiplier:1.5,maxInterval:6e4,maxElapsedTime:9e5,maxIterations:10,date:Date};var Qo=ti;var Ul=5*60*1e3;function Gu(){return Ml(Dl(Pl(),1e3),kl(1e3,1.2),ql(Ul))}function Pl(){let e=!0;return async()=>e?(e=!1,!0):!1}function Dl(e,t){return async(r,n,s)=>{if(await e(r,n,s))return new Promise(o=>setTimeout(o,t))}}function ql(e){let t=Date.now()+e;return async(r,n,s)=>{if(Date.now()>t)throw nt.fromCode(new Rr(`Request timed out after ${e} msec`,n,s))}}function kl(e,t){let r=e;return()=>new Promise(n=>setTimeout(()=>{r*=t,n()},r))}function Ml(...e){return async(t,r,n)=>{for(let s of e)await s(t,r,n)}}var Yu={preSignReadStateRequest:!1};function zu(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function _a(e,t){return e!==null&&typeof e=="object"&&zu(e,t)}function Fl(e,t){return zu(e,t)&&typeof e[t]=="function"}function Zu(e){return _a(e,"body")&&_a(e.body,"content")&&e.body.content.request_type===Mr.ReadState&&_a(e.body.content,"ingress_expiry")&&typeof e.body.content.ingress_expiry=="object"&&e.body.content.ingress_expiry!==null&&Fl(e.body.content.ingress_expiry,"toHash")}async function ei(e,t,r,n={}){var l,f;let s=[z("request_status"),r],o,i;if(((l=n.preSignReadStateRequest)!=null?l:!1)?(i=await Ll({paths:[s],agent:e,pollingOptions:n}),o=await e.readState(t,{paths:[s]},void 0,i)):o=await e.readState(t,{paths:[s]}),e.rootKey==null)throw St.fromCode(new le);let c=await re.create({certificate:o.certificate,rootKey:e.rootKey,principal:{canisterId:t},blsVerify:n.blsVerify,agent:e}),u=Ct(c.lookup_path([...s,z("status")])),d;switch(typeof u=="undefined"?d=Zt.Unknown:d=new TextDecoder().decode(u),d){case Zt.Replied:return{reply:Ct(c.lookup_path([...s,"reply"])),certificate:c,rawCertificate:o.certificate};case Zt.Received:case Zt.Unknown:case Zt.Processing:{let h=(f=n.strategy)!=null?f:Gu();return await h(t,r,d),ei(e,t,r,{...n,strategy:h,request:i})}case Zt.Rejected:throw ce.fromCode(jo(c,s,r));case Zt.Done:throw it.fromCode(new eo(r))}throw Xt}async function Ll(e){var o;let{paths:t,agent:r,pollingOptions:n}=e;if(n.request&&Zu(n.request))return n.request;let s=await((o=r.createReadStateRequest)==null?void 0:o.call(r,{paths:t},void 0));if(!Zu(s))throw J.fromCode(new fo(s));return s}var Ta=60*1e3,$l=1e6,Vl=0,jl="308182301d060d2b0601040182dc7c0503010201060c2b0601040182dc7c05030201036100814c0e6ec71fab583b08bd81373c255c3c371b2e84863c98a4f1e08b74235d14fb5d9c0cd546d9685f913a0c0b2cc5341583bf4b4392e467db96d65b9bb4cb717112f8472e0d5a4d14505ffd7484b01291091c5f87b98883463f98091a0baaae";var Hl="ic0.app",Kl=".ic0.app",Gl="icp0.io",Zl=".icp0.io",Yl="icp-api.io",zl=".icp-api.io",va=200,Xu=202,Xl=404;function Wl(e){let t;if(e!==void 0)!e.match(/^[a-z]+:/)&&typeof window!="undefined"?t=new URL(`${window.location.protocol}//${e}`):t=new URL(e);else{let r=["ic0.app","icp0.io","127.0.0.1","localhost"],n=[".github.dev",".gitpod.io"],s=typeof window!="undefined"?window.location:void 0,o=s==null?void 0:s.hostname,i;o&&typeof o=="string"&&(n.some(a=>o.endsWith(a))?i=o:i=r.find(a=>o.endsWith(a))),s&&i?t=new URL(`${s.protocol}//${i}${s.port?`:${s.port}`:""}`):t=new URL("https://icp-api.io")}return t.toString()}var xr,wr,Ee,Je,Er,On,Yt,ne,Zr,Rn,se,Re,_r,_e,Yr,Z,Ju,vr,Br,zr,Tr,Qu,tf,Cs,An,Nn,ri,Sa,Kr,Cn,ef,rf,Gr=class Gr{constructor(t={}){F(this,Z);F(this,xr);F(this,wr);F(this,Ee);F(this,Je);F(this,Er);F(this,On);F(this,Yt);F(this,ne);F(this,Zr);F(this,Rn);F(this,se);F(this,Re);F(this,_r);F(this,_e);F(this,Yr);F(this,vr);F(this,Br);F(this,zr);F(this,Tr);F(this,Nn);var s,o,i,a;if(P(this,xr,null),P(this,wr,!1),P(this,Ee,Vl),P(this,Je,!1),P(this,Er,null),P(this,On,!1),this._isAgent=!0,this.config={},this.log=new Jo,P(this,vr,[]),P(this,Br,[]),P(this,zr,new Map),P(this,Tr,!0),P(this,Nn,(c,u)=>{if(x(this,Tr)===!1)return c;let{status:d,signatures:l=[],requestId:f}=c,h=u.size;if(l.length>h)throw nt.fromCode(new oo(l.length,h));for(let p of l){let{timestamp:m,identity:g}=p,y=L.fromUint8Array(g).toText(),w;if(d===Qe.Replied){let{reply:S}=c;w=Wn({status:d,reply:S,timestamp:BigInt(m),request_id:f})}else if(d===Qe.Rejected){let{reject_code:S,reject_message:C,error_code:_}=c;w=Wn({status:d,reject_code:S,reject_message:C,error_code:_,timestamp:BigInt(m),request_id:f})}else throw it.fromCode(new vt(`Unknown status: ${d}`));let b=K(kc,w),v=u.get(y);if(!v)throw nt.fromCode(new ao);let T=Wo.fromDer(v).rawKey;if(!qt.verify(p.signature,b,T))throw kt.fromCode(new co(y))}return c}),this.config=t,t.fetch)P(this,ne,t.fetch);else{let c=globalThis.fetch;if(typeof c!="function")throw J.fromCode(new no);P(this,ne,c.bind(globalThis))}P(this,Zr,t.fetchOptions),P(this,Rn,t.callOptions),P(this,wr,(s=t.shouldFetchRootKey)!=null?s:!1),P(this,On,(o=t.shouldSyncTime)!=null?o:!1),t.rootKey?this.rootKey=t.rootKey:x(this,wr)?this.rootKey=null:this.rootKey=Bt(jl);let r=Wl(t.host);this.host=new URL(r),this.host.hostname.endsWith(Kl)?this.host.hostname=Hl:this.host.hostname.endsWith(Zl)?this.host.hostname=Gl:this.host.hostname.endsWith(zl)&&(this.host.hostname=Yl),t.verifyQuerySignatures!==void 0&&P(this,Tr,t.verifyQuerySignatures),P(this,Yr,(i=t.subnetNodeKeyExpirableStore)!=null?i:ju({dbName:`icp-sdk-${this.host.host}`,storeName:"subnetNodeKeys",expirationTime:5*Ta})),P(this,Re,(a=t.retryTimes)!=null?a:3);let n=()=>new Qo({maxIterations:x(this,Re)});if(P(this,_r,t.backoffStrategy||n),t.credentials){let{name:c,password:u}=t.credentials;P(this,se,`${c}${u?`:${u}`:""}`)}if(P(this,Yt,Promise.resolve(t.identity||new hn)),t.ingressExpiryInMinutes&&t.ingressExpiryInMinutes>5)throw J.fromCode(new Se("The maximum ingress expiry time is 5 minutes.",t.ingressExpiryInMinutes));if(t.ingressExpiryInMinutes&&t.ingressExpiryInMinutes<=0)throw J.fromCode(new Se("Ingress expiry time must be greater than 0.",t.ingressExpiryInMinutes));P(this,_e,t.ingressExpiryInMinutes||5),this.addTransform("update",qi(ss)),t.useQueryNonces&&this.addTransform("query",qi(ss)),t.logToConsole&&this.log.subscribe(c=>{c.level==="error"?console.error(c.message):c.level==="warn"?console.warn(c.message):console.log(c.message)})}static createSync(t={}){return new this({...t})}static async create(t={}){var n;let r=Gr.createSync(t);return await Y(n=r,Z,Kr).call(n),r}static async from(t){var r;try{return"config"in t?await Gr.create(t.config):await Gr.create({fetch:t._fetch,fetchOptions:t._fetchOptions,callOptions:t._callOptions,host:t._host.toString(),identity:(r=t._identity)!=null?r:void 0})}catch(n){throw J.fromCode(new so)}}isLocal(){let t=this.host.hostname;return t==="127.0.0.1"||t.endsWith("127.0.0.1")}addTransform(t,r,n=r.priority||0){if(t==="update"){let s=x(this,Br).findIndex(o=>(o.priority||0)=0?s:x(this,Br).length,0,Object.assign(r,{priority:n}))}else if(t==="query"){let s=x(this,vr).findIndex(o=>(o.priority||0)=0?s:x(this,vr).length,0,Object.assign(r,{priority:n}))}}async getPrincipal(){if(!x(this,Yt))throw St.fromCode(new nr);return(await x(this,Yt)).getPrincipal()}async call(t,r,n){var y;let s=(y=r.callSync)!=null?y:!0,o=await(n!=null?n:x(this,Yt));if(!o)throw St.fromCode(new nr);let i=L.from(t),a=r.effectiveCanisterId?L.from(r.effectiveCanisterId):i;await Y(this,Z,Kr).call(this,a);let c=o.getPrincipal(),u=Ba(x(this,_e),x(this,Ee)),d={request_type:Io.Call,canister_id:i,method_name:r.methodName,arg:r.arg,sender:c,ingress_expiry:u},l=await this._transform({request:{body:null,method:"POST",headers:{"Content-Type":"application/cbor",...x(this,se)?{Authorization:`Basic ${btoa(x(this,se))}`}:{}}},endpoint:Ve.Call,body:d}),f;r!=null&&r.nonce?f=h(r.nonce):l.body.nonce?f=h(l.body.nonce):f=void 0,d.nonce=f;function h(w){return Object.assign(w,{__nonce__:void 0})}l=await o.transformRequest(l);let p=To(l.body),m=x(this,_r).call(this),g=ln(d);try{let v=s?()=>{let C=new URL(`/api/v4/canister/${a.toText()}/call`,this.host);return this.log.print(`fetching "${C.pathname}" with request:`,l),x(this,ne).call(this,C,{...x(this,Rn),...l.request,body:p})}:()=>{let C=new URL(`/api/v2/canister/${a.toText()}/call`,this.host);return this.log.print(`fetching "${C.pathname}" with request:`,l),x(this,ne).call(this,C,{...x(this,Rn),...l.request,body:p})},{responseBodyBytes:T,...I}=await Y(this,Z,An).call(this,{requestFn:v,backoff:m,tries:0}),S=T.byteLength>0?Lt(T):null;return{requestId:g,response:{...I,body:S},requestDetails:d}}catch(w){let b;if(w instanceof Kt){if(w.hasCode($n))return this.log.warn("v4 api not supported. Fall back to v2"),this.call(t,{...r,callSync:!1},n);if(w.hasCode(Se)&&!x(this,Je))return await this.syncTime(i),this.call(i,r,n);w.code.requestContext={requestId:g,senderPubKey:l.body.sender_pubkey,senderSignature:l.body.sender_sig,ingressExpiry:l.body.content.ingress_expiry},b=w}else b=it.fromCode(new vt(w));throw this.log.error(`Error while making call: ${b.message}`,b),b}}async update(t,r,n={}){let s=L.from(r.effectiveCanisterId),{requestId:o,response:i,requestDetails:a}=await this.call(t,r),{body:c,...u}=i;if(Da(c))return Y(this,Z,Qu).call(this,c,i,o,s,r.methodName,u,a,n);if(Pa(c)&&Y(this,Z,tf).call(this,c,o,s,r.methodName,u),i.status===Xu)return{...await ei(this,s,o,n),requestDetails:a,callResponse:i};let d=new vt(`Unexpected response from call: status ${i.status} with unrecognized body`);throw d.callContext={canisterId:s,methodName:r.methodName,httpDetails:u},it.fromCode(d)}async query(t,r,n){let s=x(this,_r).call(this),o=r.effectiveCanisterId?L.from(r.effectiveCanisterId):L.from(t);await Y(this,Z,Kr).call(this,o),this.log.print(`ecid ${o.toString()}`),this.log.print(`canisterId ${t.toString()}`);let i,a=await(n!=null?n:x(this,Yt));if(!a)throw St.fromCode(new nr);let c=L.from(t),u=a.getPrincipal(),d=Ba(x(this,_e),x(this,Ee)),l={request_type:Mr.Query,canister_id:c,method_name:r.methodName,arg:r.arg,sender:u,ingress_expiry:d},f=ln(l);i=await this._transform({request:{method:"POST",headers:{"Content-Type":"application/cbor",...x(this,se)?{Authorization:`Basic ${btoa(x(this,se))}`}:{}}},endpoint:Ve.Query,body:l}),i=await a.transformRequest(i);let h=To(i.body),p={canister:c.toText(),ecid:o,transformedRequest:i,body:h,requestId:f,backoff:s,tries:0},m=async()=>{let g=await Y(this,Z,Cs).call(this,p);return{requestDetails:l,...g}};try{if(!x(this,Tr))return await m();let[g,y]=await Promise.all([m(),this.fetchSubnetKeys(o)]);try{return x(this,Nn).call(this,g,y)}catch(w){this.log.warn("Query response verification failed. Retrying with fresh subnet keys."),await x(this,Yr).delete(o.toString());let b=await this.fetchSubnetKeys(o);return x(this,Nn).call(this,g,b)}}catch(g){let y;if(g instanceof Kt){if(g.hasCode(Se)&&!x(this,Je))return await this.syncTime(o),this.query(t,r,n);g.code.requestContext={requestId:f,senderPubKey:i.body.sender_pubkey,senderSignature:i.body.sender_sig,ingressExpiry:i.body.content.ingress_expiry},y=g}else y=it.fromCode(new vt(g));throw this.log.error(`Error while making query: ${y.message}`,y),y}}async createReadStateRequest(t,r){await Y(this,Z,Kr).call(this);let n=await(r!=null?r:x(this,Yt));if(!n)throw St.fromCode(new nr);let s=n.getPrincipal(),o=await this._transform({request:{method:"POST",headers:{"Content-Type":"application/cbor",...x(this,se)?{Authorization:`Basic ${btoa(x(this,se))}`}:{}}},endpoint:Ve.ReadState,body:{request_type:Mr.ReadState,paths:t.paths,sender:s,ingress_expiry:Ba(x(this,_e),x(this,Ee))}});return n.transformRequest(o)}async readState(t,r,n,s){await Y(this,Z,Cn).call(this);let o=L.from(t);function i(d){for(let l of d.paths){let[f,h]=l,p=new TextEncoder().encode("request_status");if(Dr(f,p))return h}}let a,c;if(s)a=s;else{c=i(r);let d=await x(this,Yt);if(!d)throw St.fromCode(new nr);a=await this.createReadStateRequest(r,d)}let u=new URL(`/api/v3/canister/${o.toString()}/read_state`,this.host);return await Y(this,Z,ri).call(this,u,{canisterId:o},a,c)}async readSubnetState(t,r){var i;await Y(this,Z,Cn).call(this);let n=L.from(t),s=new URL(`/api/v3/subnet/${n.toString()}/read_state`,this.host),o=await this.createReadStateRequest(r,(i=x(this,Yt))!=null?i:void 0);return await Y(this,Z,ri).call(this,s,{subnetId:n},o)}parseTimeFromResponse(t){let r;if(t.certificate){let n=Lt(t.certificate);if(n&&"tree"in n)r=n.tree;else throw nt.fromCode(new sr("Could not decode time from response"));let s=ze(["time"],r);if(s.status!==At.Found)throw nt.fromCode(new fe("Time was not found in the response or was not in its expected format.",s.status));if(!(s.value instanceof Uint8Array)&&!ArrayBuffer.isView(s))throw nt.fromCode(new Ks("Time was not in its expected format."));let o=hr(s.value);return this.log.print("Time from response:",o),this.log.print("Time from response in milliseconds:",o.getTime()),o.getTime()}return this.log.warn("No certificate found in response"),0}async syncTime(t){var r;P(this,Er,(r=x(this,Er))!=null?r:(async()=>{var s;await Y(this,Z,Cn).call(this);let n=Date.now();try{t||this.log.print("Syncing time with the IC. No canisterId provided, so falling back to ryjl3-tyaaa-aaaaa-aaaba-cai");let o=t!=null?t:L.from("ryjl3-tyaaa-aaaaa-aaaba-cai"),i=Gr.createSync({identity:new hn,host:this.host.toString(),fetch:x(this,ne),retryTimes:0,rootKey:(s=this.rootKey)!=null?s:void 0,shouldSyncTime:!1}),a=await Promise.all(Array(3).fill(null).map(async()=>{let u=(await Pu({canisterId:o,agent:i,paths:["time"],disableCertificateTimeVerification:!0})).get("time");if(u instanceof Date)return u.getTime()},[]));Y(this,Z,Sa).call(this,n,a)}catch(o){let i=o instanceof Kt?o:it.fromCode(new vt(o));throw this.log.error("Caught exception while attempting to sync time",i),i}})()),await x(this,Er).finally(()=>{P(this,Er,null)})}async syncTimeWithSubnet(t){var n;await Y(this,Z,Cn).call(this);let r=Date.now();try{let s=Gr.createSync({identity:new hn,host:this.host.toString(),fetch:x(this,ne),retryTimes:0,rootKey:(n=this.rootKey)!=null?n:void 0,shouldSyncTime:!1}),o=await Promise.all(Array(3).fill(null).map(async()=>{let a=(await Du({subnetId:t,agent:s,paths:["time"],disableCertificateTimeVerification:!0})).get("time");if(a instanceof Date)return a.getTime()},[]));Y(this,Z,Sa).call(this,r,o)}catch(s){let o=s instanceof Kt?s:it.fromCode(new vt(s));throw this.log.error("Caught exception while attempting to sync time with subnet",o),o}}async status(){let t=x(this,se)?{Authorization:`Basic ${btoa(x(this,se))}`}:{},r=new URL("/api/v2/status",this.host);this.log.print(`fetching "${r.pathname}"`);let n=x(this,_r).call(this),{responseBodyBytes:s}=await Y(this,Z,An).call(this,{backoff:n,requestFn:()=>x(this,ne).call(this,r,{headers:t,...x(this,Zr)}),tries:0});return Lt(s)}async fetchRootKey(){var t;return P(this,xr,(t=x(this,xr))!=null?t:(async()=>{let r=await this.status();return this.rootKey=r.root_key,this.rootKey})()),await x(this,xr).finally(()=>{P(this,xr,null)})}invalidateIdentity(){P(this,Yt,null)}replaceIdentity(t){P(this,Yt,Promise.resolve(t))}async fetchSubnetKeys(t){let r=L.from(t),n=await x(this,Yr).get(r.toText());if(n)return n;let s=x(this,zr).get(r.toText());if(s)return s;let o=Y(this,Z,rf).call(this,r).finally(()=>{x(this,zr).delete(r.toText())});return x(this,zr).set(r.toText(),o),o}async getSubnetIdFromCanister(t){let r=L.from(t);await Y(this,Z,Kr).call(this,r);let n=await this.readState(r,{paths:[[z("time")]]}),s=await re.create({certificate:n.certificate,rootKey:this.rootKey,principal:{canisterId:r},agent:this});return ha(s.cert,this.rootKey)}_transform(t){let r=Promise.resolve(t);if(t.endpoint===Ve.Call)for(let n of x(this,Br))r=r.then(s=>n(s).then(o=>o||s));else for(let n of x(this,vr))r=r.then(s=>n(s).then(o=>o||s));return r}getTimeDiffMsecs(){return x(this,Ee)}hasSyncedTime(){return x(this,Je)}};xr=new WeakMap,wr=new WeakMap,Ee=new WeakMap,Je=new WeakMap,Er=new WeakMap,On=new WeakMap,Yt=new WeakMap,ne=new WeakMap,Zr=new WeakMap,Rn=new WeakMap,se=new WeakMap,Re=new WeakMap,_r=new WeakMap,_e=new WeakMap,Yr=new WeakMap,Z=new WeakSet,Ju=function(){return x(this,_e)*Ta},vr=new WeakMap,Br=new WeakMap,zr=new WeakMap,Tr=new WeakMap,Qu=async function(t,r,n,s,o,i,a,c){if(this.rootKey==null)throw St.fromCode(new le);let u=t.certificate,d=await re.create({certificate:u,rootKey:this.rootKey,principal:{canisterId:s},blsVerify:c.blsVerify,agent:this}),l=[z("request_status"),n],f=Ct(d.lookup_path([...l,z("status")])),h=f?new TextDecoder().decode(f):void 0;switch(h){case Zt.Replied:return{reply:Ct(d.lookup_path([...l,"reply"])),certificate:d,rawCertificate:u,requestDetails:a,callResponse:r};case Zt.Rejected:{let p=jo(d,l,n);throw p.callContext={canisterId:s,methodName:o,httpDetails:i},ce.fromCode(p)}case void 0:return this.log.warn(`v4 sync response certificate does not contain request ID ${V(n)} status. Falling back to polling.`),{...await ei(this,s,n,c),requestDetails:a,callResponse:r};default:{let p=new uo(h,n,r,u);throw p.callContext={canisterId:s,methodName:o,httpDetails:i},it.fromCode(p)}}},tf=function(t,r,n,s,o){let{reject_code:i,reject_message:a,error_code:c}=t,u=new to(r,i,a,c);throw u.callContext={canisterId:n,methodName:s,httpDetails:o},ce.fromCode(u)},Cs=async function(t){var y,w;let{ecid:r,transformedRequest:n,body:s,requestId:o,backoff:i,tries:a}=t,c=a===0?0:i.next(),u=new URL(`/api/v3/canister/${r.toString()}/query`,this.host);if(this.log.print(`fetching "${u.pathname}" with tries:`,{tries:a,backoff:i,delay:c}),c===null)throw it.fromCode(new Rr(`Backoff strategy exhausted after ${a} attempts.`,o));c>0&&await new Promise(b=>setTimeout(b,c));let d;try{this.log.print(`fetching "${u.pathname}" with request:`,n),d=await x(this,ne).call(this,u,{...x(this,Zr),...n.request,body:s})}catch(b){if(a=Math.pow(2,32))throw new Error("field id out of 32-bit range");if(typeof T=="number"&&T>=I)throw new Error("field id collision or not sorted");T=I;let S=Number(Fe(u));b.push([I,S])}h.push([w,b]);break}case et.Func:{let b=[],v=Number(ht(u));for(;v--;)b.push(Number(Fe(u)));let T=[],I=Number(ht(u));for(;I--;)T.push(Number(Fe(u)));let S=[],C=Number(ht(u));for(;C--;)switch(Number(ht(u))){case 1:{S.push("query");break}case 2:{S.push("oneway");break}case 3:{S.push("composite_query");break}default:throw new Error("unknown annotation")}h.push([w,[b,T,S]]);break}case et.Service:{let b=Number(ht(u)),v=[];for(;b--;){let T=Number(ht(u)),I=new TextDecoder().decode(ir(u,T)),S=Fe(u);v.push([I,S])}h.push([w,v]);break}default:throw new Error(`Illegal op_code: ${w}`)}}let m=[],g=Number(ht(u));for(let y=0;yRc());function f(u){if(u<-24)throw new Error("future value not supported");if(u<0)switch(u){case-1:return dc;case-2:return fc;case-3:return pc;case-4:return hc;case-5:return Ec;case-6:return _c;case-7:return vc;case-8:return Bc;case-9:return bc;case-10:return gc;case-11:return xc;case-12:return wc;case-13:return mc;case-14:return yc;case-15:return lc;case-16:return uc;case-17:return cc;case-24:return Tc;default:throw new Error(`Illegal op_code: ${u}`)}if(u>=i.length)throw new Error("type index out of range");return c[u]}function l(u){switch(u[0]){case et.Vector:{let h=f(u[1]);return Ic(h)}case et.Opt:{let h=f(u[1]);return Ac(h)}case et.Record:{let h={};for(let[g,y]of u[1]){let w=`_${g}_`;h[w]=f(y)}let p=Cc(h),m=p.tryAsTuple();return Array.isArray(m)?Sc(...m):p}case et.Variant:{let h={};for(let[p,m]of u[1]){let g=`_${p}_`;h[g]=f(m)}return Oc(h)}case et.Func:{let[h,p,m]=u[1];return Nc(h.map(g=>f(g)),p.map(g=>f(g)),m)}case et.Service:{let h={},p=u[1];for(let[m,g]of p){let y=f(g);if(y instanceof Wt&&(y=y.getType()),!(y instanceof Pr))throw new Error("Illegal service definition: services can only contain functions");h[m]=y}return Uc(h)}default:throw new Error(`Illegal op_code: ${u[0]}`)}}i.forEach((u,h)=>{if(u[0]===et.Func){let p=l(u);c[h].fill(p)}}),i.forEach((u,h)=>{if(u[0]!==et.Func){let p=l(u);c[h].fill(p)}}),Ii();let d=a.map(u=>f(u));try{let u=e.map((h,p)=>h.decodeValue(r,d[p]));for(let h=e.length;h0)throw new Error("decode: Left-over bytes");return u}finally{Ii()}}var cc=new Zn,uc=new Ce,Cf=new yo,fc=new bo,dc=new Nr,lc=new go,hc=new Yn,pc=new zn,mc=new Xn(32),yc=new Xn(64),bc=new Le(8),gc=new Le(16),xc=new Le(32),wc=new Le(64),Ec=new Ie(8),_c=new Ie(16),vc=new Ie(32),Bc=new Ie(64),Tc=new wo;function Sc(...e){return new xo(e)}function Ic(e){return new cn(e)}function Ac(e){return new ar(e)}function Cc(e){return new Ur(e)}function Oc(e){return new un(e)}function Rc(){return new Wt}function Nc(e,t,r=[]){return new Pr(e,t,r)}function Uc(e){return new fn(e)}var Eo=class e{constructor(t=new Map){this.rels=t}copy(){let t=new Map;for(let[r,n]of this.rels.entries()){let s=new Map(n);t.set(r,s)}return new e(t)}known(t,r){var n;return(n=this.rels.get(t.name))==null?void 0:n.get(r.name)}addNegative(t,r){this.addNames(t.name,r.name,!1)}add(t,r){this.addNames(t.name,r.name,!0)}display(){let t="";for(let[r,n]of this.rels)for(let[s,o]of n)t+=`${r} ${o?":<":"!<:"} ${s} +`;return t}addNames(t,r,n){let s=this.rels.get(t);if(s==null){let o=new Map;o.set(r,n),this.rels.set(t,o)}else s.set(r,n)}},mo=new Eo;function Ii(){mo=new Eo}function Of(e,t){let r=new Set(e.annotations),n=new Set(t.annotations);if(r.size!==n.size)return!1;for(let s of r)if(!n.has(s))return!1;return!0}function Bi(e){return e instanceof ar||e instanceof Nr||e instanceof Ce}function Ci(e,t){let r=mo.copy(),n=ke(r,e,t);return n?mo.add(e,t):mo.addNegative(e,t),n}function ke(e,t,r){if(t.name===r.name)return!0;let n=e.known(t,r);if(n!==void 0)return n;if(e.add(t,r),r instanceof Ce||t instanceof Zn||t instanceof zn&&r instanceof Yn)return!0;if(t instanceof cn&&r instanceof cn)return ke(e,t._type,r._type);if(r instanceof ar)return!0;if(t instanceof Ur&&r instanceof Ur){let s=t.fieldsAsObject;for(let[o,i]of r._fields){let a=s[Rt(o)];if(a){if(!ke(e,a,i))return!1}else if(!Bi(i))return!1}return!0}if(t instanceof Pr&&r instanceof Pr){if(!Of(t,r))return!1;for(let s=0;s{let t=new TextEncoder().encode(e);return Tt(t)};function ln(e){return Wn(e)}function Wn(e){let n=Object.entries(e).filter(([,i])=>i!==void 0).map(([i,a])=>{let c=Pc(i),f=Oi(a);return[c,f]}).sort(([i],[a])=>on(i,a)),s=K(...n.map(i=>K(...i)));return Tt(s)}var Dc=new TextEncoder().encode("\ric-state-root"),qc=new TextEncoder().encode(` +ic-request`),Mc=new TextEncoder().encode("\vic-response"),Xh=new TextEncoder().encode("ic-request-auth-delegation");var vo=class{getPrincipal(){return this._principal||(this._principal=L.selfAuthenticating(new Uint8Array(this.getPublicKey().toDer()))),this._principal}async transformRequest(t){let{body:r,...n}=t,s=ln(r);return{...n,body:{content:r,sender_pubkey:this.getPublicKey().toDer(),sender_sig:await this.sign(K(qc,s))}}}},hn=class{getPrincipal(){return L.anonymous()}async transformRequest(t){return{...t,body:{content:t.body}}}};var $e=class extends Error{constructor(t){super(t),this.name="DecodingError"}},kc=55799,Lc=Symbol("CBOR_STOP_CODE"),ye=(e=>(e[e.False=20]="False",e[e.True=21]="True",e[e.Null=22]="Null",e[e.Undefined=23]="Undefined",e[e.Break=31]="Break",e))(ye||{}),bt=(e=>(e[e.UnsignedInteger=0]="UnsignedInteger",e[e.NegativeInteger=1]="NegativeInteger",e[e.ByteString=2]="ByteString",e[e.TextString=3]="TextString",e[e.Array=4]="Array",e[e.Map=5]="Map",e[e.Tag=6]="Tag",e[e.Simple=7]="Simple",e))(bt||{}),Rf=23,Nf=255,Uf=65535,Pf=4294967295,Df=BigInt("0xffffffffffffffff"),me=(e=>(e[e.Value=23]="Value",e[e.OneByte=24]="OneByte",e[e.TwoBytes=25]="TwoBytes",e[e.FourBytes=26]="FourBytes",e[e.EightBytes=27]="EightBytes",e[e.Indefinite=31]="Indefinite",e))(me||{}),pn=!1;function qf(e){return e==null}function $c(e,t){let r=new Uint8Array(t);return r.set(e),r}var Mf=new TextDecoder;function Ff(e){return(e&224)>>5}function kf(e){return e&31}var ts=new Uint8Array,Jn,be=0;function Vc(e,t){var n;ts=e,be=0;let r=qr(t);return(n=t==null?void 0:t(r))!=null?n:r}function qr(e){let[t,r]=Bo();switch(t){case bt.UnsignedInteger:return mn(r);case bt.NegativeInteger:return jf(r);case bt.ByteString:return jc(r);case bt.TextString:return Ni(r);case bt.Array:return Lf(r,e);case bt.Map:return Vf(r,e);case bt.Tag:return Hf(r,e);case bt.Simple:return $f(r)}throw new $e(`Unsupported major type: ${t}`)}function Bo(){let e=ts.at(be);if(qf(e))throw new $e("Provided CBOR data is empty");let t=Ff(e),r=kf(e);return be++,[t,r]}function Lf(e,t){var s,o;let r=mn(e);if(r===1/0){let i=[],a=qr(t);for(;a!==Lc;)i.push((s=t==null?void 0:t(a))!=null?s:a),a=qr(t);return i}let n=new Array(r);for(let i=0;iNumber.MAX_SAFE_INTEGER)throw new $e("Byte length is too large");let r=Number(t);return be+=r,ts.slice(be-r,be)}function Ni(e){let t=jc(e);return Mf.decode(t)}function Hf(e,t){let r=mn(e);if(r===kc)return qr(t);throw new $e(`Unsupported tag: ${r}.`)}var es=class extends Error{constructor(t){super(t),this.name="SerializationError"}},Kf=2*1024,Gf=100,Zf=new TextEncoder;function Qn(e){return e<<5}var Gt=new Uint8Array(Kf),pe=new DataView(Gt.buffer),yt=0,Ri=[];function Hc(e,t){var n;yt=0;let r=(n=t==null?void 0:t(e))!=null?n:e;return ed(kc,r,t),Gt.slice(0,yt)}function Ui(e,t){if(yt>Gt.length-Gf&&(Gt=$c(Gt,Gt.length*2),pe=new DataView(Gt.buffer)),e===!1||e===!0||e===null||e===void 0){Xf(e);return}if(typeof e=="number"||typeof e=="bigint"){td(e);return}if(typeof e=="string"){Zc(e);return}if(e instanceof Uint8Array){Fc(e);return}if(e instanceof ArrayBuffer){Fc(new Uint8Array(e));return}if(Array.isArray(e)){Yf(e,t);return}if(typeof e=="object"){zf(e,t);return}throw new es(`Unsupported type: ${typeof e}`)}function Yf(e,t){yn(bt.Array,e.length),e.forEach((r,n)=>{var s;Ui((s=t==null?void 0:t(r,n.toString()))!=null?s:r,t)})}function zf(e,t){Ri=Object.entries(e),yn(bt.Map,Ri.length),Ri.forEach(([r,n])=>{var s;Zc(r),Ui((s=t==null?void 0:t(n,r))!=null?s:n,t)})}function yn(e,t){if(t<=Rf){pe.setUint8(yt++,Qn(e)|Number(t));return}if(t<=Nf){pe.setUint8(yt++,Qn(e)|me.OneByte),pe.setUint8(yt,Number(t)),yt+=1;return}if(t<=Uf){pe.setUint8(yt++,Qn(e)|me.TwoBytes),pe.setUint16(yt,Number(t),pn),yt+=2;return}if(t<=Pf){pe.setUint8(yt++,Qn(e)|me.FourBytes),pe.setUint32(yt,Number(t),pn),yt+=4;return}if(t<=Df){pe.setUint8(yt++,Qn(e)|me.EightBytes),pe.setBigUint64(yt,BigInt(t),pn),yt+=8;return}throw new es(`Value too large to encode: ${t}`)}function Xf(e){yn(bt.Simple,Wf(e))}function Wf(e){if(e===!1)return ye.False;if(e===!0)return ye.True;if(e===null)return ye.Null;if(e===void 0)return ye.Undefined;throw new es(`Unrecognized simple value: ${e.toString()}`)}function Kc(e,t){yn(e,t.length),yt>Gt.length-t.length&&(Gt=$c(Gt,Gt.length+t.length),pe=new DataView(Gt.buffer)),Gt.set(t,yt),yt+=t.length}function Gc(e,t){yn(e,t)}function Jf(e){Gc(bt.UnsignedInteger,e)}function Qf(e){Gc(bt.NegativeInteger,typeof e=="bigint"?-BigInt(1)-e:-1-e)}function td(e){e>=0?Jf(e):Qf(e)}function Zc(e){Kc(bt.TextString,Zf.encode(e))}function Fc(e){Kc(bt.ByteString,e)}function ed(e,t,r){yn(bt.Tag,e),Ui(t,r)}var rs="__expiry__",Pi=BigInt(1e3),nd=BigInt(1e6),sd=BigInt(60),Di=sd*Pi,od=BigInt(1)*Di;function id(e){return e/Pi*Pi}function ad(e){return e/Di*Di}var Mr=class e{constructor(t){this.__expiry__=t,this._isExpiry=!0}static fromDeltaInMilliseconds(t,r=0){let n=BigInt(Date.now())+BigInt(r),s=n+BigInt(t),o=ad(s),i;return o>=n+od?i=o:i=id(s),new e(i*nd)}toBigInt(){return this.__expiry__}toHash(){return st(this.__expiry__)}toString(){return this.__expiry__.toString()}toJSON(){return{[rs]:this.toString()}}static fromJSON(t){let r=JSON.parse(t);if(r[rs])try{let n=BigInt(r[rs]);return new e(n)}catch(n){throw new J(new Hn(`Not a valid BigInt: ${n}`))}throw new J(new Hn(`The input does not contain the key ${rs}`))}static isExpiry(t){return t instanceof e||typeof t=="object"&&t!==null&&"_isExpiry"in t&&t._isExpiry===!0&&"__expiry__"in t&&typeof t.__expiry__=="bigint"}};function cd(e){return typeof e=="object"&&e!==null&&"toCborValue"in e}function To(e){try{return Hc(e,t=>L.isPrincipal(t)?t.toUint8Array():Mr.isExpiry(t)?t.toBigInt():cd(t)?t.toCborValue():t)}catch(t){throw J.fromCode(new Xs(t,e))}}function Lt(e){try{return Vc(e)}catch(t){throw J.fromCode(new zs(t,e))}}var ns=()=>{if(typeof window!="undefined"&&window.crypto&&window.crypto.getRandomValues){let e=new Uint32Array(1);return window.crypto.getRandomValues(e),e[0]}if(typeof crypto!="undefined"&&crypto.getRandomValues){let e=new Uint32Array(1);return crypto.getRandomValues(e),e[0]}return typeof crypto!="undefined"&&crypto.randomInt?crypto.randomInt(0,4294967295):Math.floor(Math.random()*4294967295)};var Ve;(function(e){e.Query="read",e.ReadState="read_state",e.Call="call"})(Ve||(Ve={}));var Io;(function(e){e.Call="call"})(Io||(Io={}));var Fr;(function(e){e.Query="query",e.ReadState="read_state"})(Fr||(Fr={}));var Zt;(function(e){e.Received="received",e.Processing="processing",e.Replied="replied",e.Rejected="rejected",e.Unknown="unknown",e.Done="done"})(Zt||(Zt={}));function ss(){let e=new ArrayBuffer(16),t=new DataView(e),r=ns(),n=ns(),s=ns(),o=ns();return t.setUint32(0,r),t.setUint32(4,n),t.setUint32(8,s),t.setUint32(12,o),Object.assign(new Uint8Array(e),{__nonce__:void 0})}function qi(e=ss){return async t=>{let r=t.request.headers;t.request.headers=r,t.endpoint===Ve.Call&&(t.body.nonce=e())}}function Mi(e){let t=[];return e.forEach((r,n)=>{t.push([n,r])}),t}var ki=BigInt(0),Ao=BigInt(1);function kr(e,t=""){if(typeof e!="boolean"){let r=t&&`"${t}"`;throw new Error(r+"expected boolean, got type="+typeof e)}return e}function ur(e,t,r=""){let n=Be(e),s=e==null?void 0:e.length,o=t!==void 0;if(!n||o&&s!==t){let i=r&&`"${r}" `,a=o?` of length ${t}`:"",c=n?`length=${s}`:`type=${typeof e}`;throw new Error(i+"expected Uint8Array"+a+", got "+c)}return e}function Yc(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return e===""?ki:BigInt("0x"+e)}function $t(e){return Yc(V(e))}function je(e){return dt(e),Yc(V(Uint8Array.from(e).reverse()))}function gt(e,t){return Bt(e.toString(16).padStart(t*2,"0"))}function Li(e,t){return gt(e,t).reverse()}function ut(e,t,r){let n;if(typeof t=="string")try{n=Bt(t)}catch(o){throw new Error(e+" must be hex string or Uint8Array, cause: "+o)}else if(Be(t))n=Uint8Array.from(t);else throw new Error(e+" must be hex string or Uint8Array");let s=n.length;if(typeof r=="number"&&s!==r)throw new Error(e+" of length "+r+" expected, got "+s);return n}function zc(e,t){if(e.length!==t.length)return!1;let r=0;for(let n=0;ntypeof e=="bigint"&&ki<=e;function Vi(e,t,r){return Fi(e)&&Fi(t)&&Fi(r)&&t<=e&&eki;e>>=Ao,t+=1);return t}function Xc(e,t){return e>>BigInt(t)&Ao}var ge=e=>(Ao<n(s,o,!1)),Object.entries(r).forEach(([s,o])=>n(s,o,!0))}var bn=()=>{throw new Error("not implemented")};function fr(e){let t=new WeakMap;return(r,...n)=>{let s=t.get(r);if(s!==void 0)return s;let o=e(r,...n);return t.set(r,o),o}}var Nt=BigInt(0),xt=BigInt(1),Lr=BigInt(2),Qc=BigInt(3),tu=BigInt(4),eu=BigInt(5),ud=BigInt(7),ru=BigInt(8),fd=BigInt(9),nu=BigInt(16);function at(e,t){let r=e%t;return r>=Nt?r:t+r}function xe(e,t,r){let n=e;for(;t-- >Nt;)n*=n,n%=r;return n}function Jc(e,t){if(e===Nt)throw new Error("invert: expected non-zero number");if(t<=Nt)throw new Error("invert: expected positive modulus, got "+t);let r=at(e,t),n=t,s=Nt,o=xt,i=xt,a=Nt;for(;r!==Nt;){let f=n/r,l=n%r,d=s-i*f,u=o-a*f;n=r,r=l,s=i,o=a,i=d,a=u}if(n!==xt)throw new Error("invert: does not exist");return at(s,t)}function ji(e,t,r){if(!e.eql(e.sqr(t),r))throw new Error("Cannot find square root")}function su(e,t){let r=(e.ORDER+xt)/tu,n=e.pow(t,r);return ji(e,n,t),n}function dd(e,t){let r=(e.ORDER-eu)/ru,n=e.mul(t,Lr),s=e.pow(n,r),o=e.mul(t,s),i=e.mul(e.mul(o,Lr),s),a=e.mul(o,e.sub(i,e.ONE));return ji(e,a,t),a}function ld(e){let t=Ut(e),r=ou(e),n=r(t,t.neg(t.ONE)),s=r(t,n),o=r(t,t.neg(n)),i=(e+ud)/nu;return(a,c)=>{let f=a.pow(c,i),l=a.mul(f,n),d=a.mul(f,s),u=a.mul(f,o),h=a.eql(a.sqr(l),c),p=a.eql(a.sqr(d),c);f=a.cmov(f,l,h),l=a.cmov(u,d,p);let m=a.eql(a.sqr(l),c),g=a.cmov(f,l,m);return ji(a,g,c),g}}function ou(e){if(e1e3)throw new Error("Cannot find square root: probably non-prime P");if(r===1)return su;let o=s.pow(n,t),i=(t+xt)/Lr;return function(c,f){if(c.is0(f))return f;if(os(c,f)!==1)throw new Error("Cannot find square root");let l=r,d=c.mul(c.ONE,o),u=c.pow(f,t),h=c.pow(f,i);for(;!c.eql(u,c.ONE);){if(c.is0(u))return c.ZERO;let p=1,m=c.sqr(u);for(;!c.eql(m,c.ONE);)if(p++,m=c.sqr(m),p===l)throw new Error("Cannot find square root");let g=xt<(at(e,t)&xt)===xt,pd=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Oo(e){let t={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},r=pd.reduce((n,s)=>(n[s]="function",n),t);return Ke(e,r),e}function is(e,t,r){if(rNt;)r&xt&&(n=e.mul(n,s)),s=e.sqr(s),r>>=xt;return n}function Jt(e,t,r=!1){let n=new Array(t.length).fill(r?e.ZERO:void 0),s=t.reduce((i,a,c)=>e.is0(a)?i:(n[c]=i,e.mul(i,a)),e.ONE),o=e.inv(s);return t.reduceRight((i,a,c)=>e.is0(a)?i:(n[c]=e.mul(i,n[c]),e.mul(i,a)),o),n}function os(e,t){let r=(e.ORDER-xt)/Lr,n=e.pow(t,r),s=e.eql(n,e.ONE),o=e.eql(n,e.ZERO),i=e.eql(n,e.neg(e.ONE));if(!s&&!o&&!i)throw new Error("invalid Legendre symbol result");return s?1:o?0:-1}function Hi(e,t){t!==void 0&&hi(t);let r=t!==void 0?t:e.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function Ut(e,t,r=!1,n={}){if(e<=Nt)throw new Error("invalid field: expected ORDER > 0, got "+e);let s,o,i=!1,a;if(typeof t=="object"&&t!=null){if(n.sqrt||r)throw new Error("cannot specify opts in two arguments");let u=t;u.BITS&&(s=u.BITS),u.sqrt&&(o=u.sqrt),typeof u.isLE=="boolean"&&(r=u.isLE),typeof u.modFromBytes=="boolean"&&(i=u.modFromBytes),a=u.allowedLengths}else typeof t=="number"&&(s=t),n.sqrt&&(o=n.sqrt);let{nBitLength:c,nByteLength:f}=Hi(e,s);if(f>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let l,d=Object.freeze({ORDER:e,isLE:r,BITS:c,BYTES:f,MASK:ge(c),ZERO:Nt,ONE:xt,allowedLengths:a,create:u=>at(u,e),isValid:u=>{if(typeof u!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof u);return Nt<=u&&uu===Nt,isValidNot0:u=>!d.is0(u)&&d.isValid(u),isOdd:u=>(u&xt)===xt,neg:u=>at(-u,e),eql:(u,h)=>u===h,sqr:u=>at(u*u,e),add:(u,h)=>at(u+h,e),sub:(u,h)=>at(u-h,e),mul:(u,h)=>at(u*h,e),pow:(u,h)=>is(d,u,h),div:(u,h)=>at(u*Jc(h,e),e),sqrN:u=>u*u,addN:(u,h)=>u+h,subN:(u,h)=>u-h,mulN:(u,h)=>u*h,inv:u=>Jc(u,e),sqrt:o||(u=>(l||(l=hd(e)),l(d,u))),toBytes:u=>r?Li(u,f):gt(u,f),fromBytes:(u,h=!0)=>{if(a){if(!a.includes(u.length)||u.length>f)throw new Error("Field.fromBytes: expected "+a+" bytes, got "+u.length);let m=new Uint8Array(f);m.set(u,r?0:m.length-u.length),u=m}if(u.length!==f)throw new Error("Field.fromBytes: expected "+f+" bytes, got "+u.length);let p=r?je(u):$t(u);if(i&&(p=at(p,e)),!h&&!d.isValid(p))throw new Error("invalid field element: outside of range 0..ORDER");return p},invertBatch:u=>Jt(d,u),cmov:(u,h,p)=>p?h:u});return Object.freeze(d)}function iu(e){if(typeof e!="bigint")throw new Error("field order must be bigint");let t=e.toString(2).length;return Math.ceil(t/8)}function Ro(e){let t=iu(e);return t+Math.ceil(t/2)}function Ki(e,t,r=!1){let n=e.length,s=iu(t),o=Ro(t);if(n<16||n1024)throw new Error("expected "+o+"-1024 bytes of input, got "+n);let i=r?je(e):$t(e),a=at(i,t-xt)+xt;return r?Li(a,s):gt(a,s)}var gn=BigInt(0),$r=BigInt(1);function as(e,t){let r=t.negate();return e?r:t}function Qt(e,t){let r=Jt(e.Fp,t.map(n=>n.Z));return t.map((n,s)=>e.fromAffine(n.toAffine(r[s])))}function fu(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function Gi(e,t){fu(e,t);let r=Math.ceil(t/e)+1,n=2**(e-1),s=2**e,o=ge(e),i=BigInt(e);return{windows:r,windowSize:n,mask:o,maxNumber:s,shiftBy:i}}function au(e,t,r){let{windowSize:n,mask:s,maxNumber:o,shiftBy:i}=r,a=Number(e&s),c=e>>i;a>n&&(a-=o,c+=$r);let f=t*n,l=f+Math.abs(a)-1,d=a===0,u=a<0,h=t%2!==0;return{nextN:c,offset:l,isZero:d,isNeg:u,isNegF:h,offsetF:f}}function yd(e,t){if(!Array.isArray(e))throw new Error("array expected");e.forEach((r,n)=>{if(!(r instanceof t))throw new Error("invalid point at index "+n)})}function bd(e,t){if(!Array.isArray(e))throw new Error("array of scalars expected");e.forEach((r,n)=>{if(!t.isValid(r))throw new Error("invalid scalar at index "+n)})}var Zi=new WeakMap,du=new WeakMap;function Yi(e){return du.get(e)||1}function cu(e){if(e!==gn)throw new Error("invalid wNAF")}var xn=class{constructor(t,r){this.BASE=t.BASE,this.ZERO=t.ZERO,this.Fn=t.Fn,this.bits=r}_unsafeLadder(t,r,n=this.ZERO){let s=t;for(;r>gn;)r&$r&&(n=n.add(s)),s=s.double(),r>>=$r;return n}precomputeWindow(t,r){let{windows:n,windowSize:s}=Gi(r,this.bits),o=[],i=t,a=i;for(let c=0;cgn||n>gn;)r&$r&&(o=o.add(s)),n&$r&&(i=i.add(s)),s=s.double(),r>>=$r,n>>=$r;return{p1:o,p2:i}}function wn(e,t,r,n){yd(r,e),bd(n,t);let s=r.length,o=n.length;if(s!==o)throw new Error("arrays of points and scalars must have equal length");let i=e.ZERO,a=He(BigInt(s)),c=1;a>12?c=a-3:a>4?c=a-2:a>0&&(c=2);let f=ge(c),l=new Array(Number(f)+1).fill(i),d=Math.floor((t.BITS-1)/c)*c,u=i;for(let h=d;h>=0;h-=c){l.fill(i);for(let m=0;m>BigInt(h)&f);l[y]=l[y].add(r[m])}let p=i;for(let m=l.length-1,g=i;m>0;m--)g=g.add(l[m]),p=p.add(g);if(u=u.add(p),h!==0)for(let m=0;mgn))throw new Error(`CURVE.${c} must be positive bigint`)}let s=uu(t.p,r.Fp,n),o=uu(t.n,r.Fn,n),a=["Gx","Gy","a",e==="weierstrass"?"b":"d"];for(let c of a)if(!s.isValid(t[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return t=Object.freeze(Object.assign({},t)),{CURVE:t,Fp:s,Fn:o}}var gd=$t;function dr(e,t){if(cs(e),cs(t),e<0||e>=1<<8*t)throw new Error("invalid I2OSP input: "+e);let r=Array.from({length:t}).fill(0);for(let n=t-1;n>=0;n--)r[n]=e&255,e>>>=8;return new Uint8Array(r)}function xd(e,t){let r=new Uint8Array(e.length);for(let n=0;n255&&(t=n(K(z("H2C-OVERSIZE-DST-"),t)));let{outputLen:s,blockLen:o}=n,i=Math.ceil(r/s);if(r>65535||i>255)throw new Error("expand_message_xmd: invalid lenInBytes");let a=K(t,dr(t.length,1)),c=dr(0,o),f=dr(r,2),l=new Array(i),d=n(K(c,e,f,dr(0,1),a));l[0]=n(K(d,dr(1,1),a));for(let h=1;h<=i;h++){let p=[xd(d,l[h-1]),dr(h+1,1),a];l[h]=n(K(...p))}return K(...l).slice(0,r)}function Ed(e,t,r,n,s){if(dt(e),cs(r),t=hu(t),t.length>255){let o=Math.ceil(2*n/8);t=s.create({dkLen:o}).update(z("H2C-OVERSIZE-DST-")).update(t).digest()}if(r>65535||t.length>255)throw new Error("expand_message_xof: invalid lenInBytes");return s.create({dkLen:r}).update(e).update(dr(r,2)).update(t).update(dr(t.length,1)).digest()}function zi(e,t,r){Ke(r,{p:"bigint",m:"number",k:"number",hash:"function"});let{p:n,k:s,m:o,hash:i,expand:a,DST:c}=r;if(!Wc(r.hash))throw new Error("expected valid hash");dt(e),cs(t);let f=n.toString(2).length,l=Math.ceil((f+s)/8),d=t*o*l,u;if(a==="xmd")u=wd(e,c,d,i);else if(a==="xof")u=Ed(e,c,d,s,i);else if(a==="_internal_pass")u=e;else throw new Error('expand must be "xmd" or "xof"');let h=new Array(t);for(let p=0;pArray.from(n).reverse());return(n,s)=>{let[o,i,a,c]=r.map(d=>d.reduce((u,h)=>e.add(e.mul(u,n),h))),[f,l]=Jt(e,[i,c],!0);return n=e.mul(o,f),s=e.mul(s,e.mul(a,l)),{x:n,y:s}}}var _d=z("HashToScalar-");function Wi(e,t,r){if(typeof t!="function")throw new Error("mapToCurve() must be defined");function n(o){return e.fromAffine(t(o))}function s(o){let i=o.clearCofactor();return i.equals(e.ZERO)?e.ZERO:(i.assertValidity(),i)}return{defaults:r,hashToCurve(o,i){let a=Object.assign({},r,i),c=zi(o,2,a),f=n(c[0]),l=n(c[1]);return s(f.add(l))},encodeToCurve(o,i){let a=r.encodeDST?{DST:r.encodeDST}:{},c=Object.assign({},r,a,i),f=zi(o,1,c),l=n(f[0]);return s(l)},mapToCurve(o){if(!Array.isArray(o))throw new Error("expected array of bigints");for(let i of o)if(typeof i!="bigint")throw new Error("expected array of bigints");return s(n(o))},hashToScalar(o,i){let a=e.Fn.ORDER,c=Object.assign({},r,{p:a,m:1,DST:_d},i);return zi(o,1,c)[0][0]}}}var pu=(e,t)=>(e+(e>=0?t:-t)/Ze)/t;function vd(e,t,r){let[[n,s],[o,i]]=t,a=pu(i*e,r),c=pu(-s*e,r),f=e-a*n-c*o,l=-a*s-c*i,d=f=h||l=h)throw new Error("splitScalar (endomorphism): failed, k="+e);return{k1neg:d,k1:f,k2neg:u,k2:l}}var Vr=BigInt(0),Pt=BigInt(1),Ze=BigInt(2),En=BigInt(3),Ji=BigInt(4);function us(e,t){let{BYTES:r}=e,n;if(typeof t=="bigint")n=t;else{let s=ut("private key",t);try{n=e.fromBytes(s)}catch(o){throw new Error(`invalid private key: expected ui8a of size ${r}, got ${typeof t}`)}}if(!e.isValidNot0(n))throw new Error("invalid private key: out of range [1..N-1]");return n}function Bd(e,t={}){let r=No("weierstrass",e,t),{Fp:n,Fn:s}=r,o=r.CURVE,{h:i,n:a}=o;Ke(t,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});let{endo:c}=t;if(c&&(!n.is0(o.a)||typeof c.beta!="bigint"||!Array.isArray(c.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');let f=Id(n,s);function l(){if(!n.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function d(R,E,B){let{x:U,y:F}=E.toAffine(),X=n.toBytes(U);if(kr(B,"isCompressed"),B){l();let O=!n.isOdd(F);return K(Td(O),X)}else return K(Uint8Array.of(4),X,n.toBytes(F))}function u(R){ur(R,void 0,"Point");let{publicKey:E,publicKeyUncompressed:B}=f,U=R.length,F=R[0],X=R.subarray(1);if(U===E&&(F===2||F===3)){let O=n.fromBytes(X);if(!n.isValid(O))throw new Error("bad point: is not on curve, wrong x");let N=m(O),q;try{q=n.sqrt(N)}catch(Et){let mt=Et instanceof Error?": "+Et.message:"";throw new Error("bad point: is not on curve, sqrt error"+mt)}l();let $=n.isOdd(q);return(F&1)===1!==$&&(q=n.neg(q)),{x:O,y:q}}else if(U===B&&F===4){let O=n.BYTES,N=n.fromBytes(X.subarray(0,O)),q=n.fromBytes(X.subarray(O,O*2));if(!g(N,q))throw new Error("bad point: is not on curve");return{x:N,y:q}}else throw new Error(`bad point: got length ${U}, expected compressed=${E} or uncompressed=${B}`)}let h=t.toBytes||d,p=t.fromBytes||u;function m(R){let E=n.sqr(R),B=n.mul(E,R);return n.add(n.add(B,n.mul(R,o.a)),o.b)}function g(R,E){let B=n.sqr(E),U=m(R);return n.eql(B,U)}if(!g(o.Gx,o.Gy))throw new Error("bad curve params: generator point");let y=n.mul(n.pow(o.a,En),Ji),w=n.mul(n.sqr(o.b),BigInt(27));if(n.is0(n.add(y,w)))throw new Error("bad curve params: a or b");function b(R,E,B=!1){if(!n.isValid(E)||B&&n.is0(E))throw new Error(`bad point coordinate ${R}`);return E}function v(R){if(!(R instanceof _))throw new Error("ProjectivePoint expected")}function T(R){if(!c||!c.basises)throw new Error("no endo");return vd(R,c.basises,s.ORDER)}let I=fr((R,E)=>{let{X:B,Y:U,Z:F}=R;if(n.eql(F,n.ONE))return{x:B,y:U};let X=R.is0();E==null&&(E=X?n.ONE:n.inv(F));let O=n.mul(B,E),N=n.mul(U,E),q=n.mul(F,E);if(X)return{x:n.ZERO,y:n.ZERO};if(!n.eql(q,n.ONE))throw new Error("invZ was invalid");return{x:O,y:N}}),S=fr(R=>{if(R.is0()){if(t.allowInfinityPoint&&!n.is0(R.Y))return;throw new Error("bad point: ZERO")}let{x:E,y:B}=R.toAffine();if(!n.isValid(E)||!n.isValid(B))throw new Error("bad point: x or y not field elements");if(!g(E,B))throw new Error("bad point: equation left != right");if(!R.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function C(R,E,B,U,F){return B=new _(n.mul(B.X,R),B.Y,B.Z),E=as(U,E),B=as(F,B),E.add(B)}class _{constructor(E,B,U){this.X=b("x",E),this.Y=b("y",B,!0),this.Z=b("z",U),Object.freeze(this)}static CURVE(){return o}static fromAffine(E){let{x:B,y:U}=E||{};if(!E||!n.isValid(B)||!n.isValid(U))throw new Error("invalid affine point");if(E instanceof _)throw new Error("projective point not allowed");return n.is0(B)&&n.is0(U)?_.ZERO:new _(B,U,n.ONE)}static fromBytes(E){let B=_.fromAffine(p(ur(E,void 0,"point")));return B.assertValidity(),B}static fromHex(E){return _.fromBytes(ut("pointHex",E))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(E=8,B=!0){return D.createCache(this,E),B||this.multiply(En),this}assertValidity(){S(this)}hasEvenY(){let{y:E}=this.toAffine();if(!n.isOdd)throw new Error("Field doesn't support isOdd");return!n.isOdd(E)}equals(E){v(E);let{X:B,Y:U,Z:F}=this,{X,Y:O,Z:N}=E,q=n.eql(n.mul(B,N),n.mul(X,F)),$=n.eql(n.mul(U,N),n.mul(O,F));return q&&$}negate(){return new _(this.X,n.neg(this.Y),this.Z)}double(){let{a:E,b:B}=o,U=n.mul(B,En),{X:F,Y:X,Z:O}=this,N=n.ZERO,q=n.ZERO,$=n.ZERO,j=n.mul(F,F),Et=n.mul(X,X),mt=n.mul(O,O),nt=n.mul(F,X);return nt=n.add(nt,nt),$=n.mul(F,O),$=n.add($,$),N=n.mul(E,$),q=n.mul(U,mt),q=n.add(N,q),N=n.sub(Et,q),q=n.add(Et,q),q=n.mul(N,q),N=n.mul(nt,N),$=n.mul(U,$),mt=n.mul(E,mt),nt=n.sub(j,mt),nt=n.mul(E,nt),nt=n.add(nt,$),$=n.add(j,j),j=n.add($,j),j=n.add(j,mt),j=n.mul(j,nt),q=n.add(q,j),mt=n.mul(X,O),mt=n.add(mt,mt),j=n.mul(mt,nt),N=n.sub(N,j),$=n.mul(mt,Et),$=n.add($,$),$=n.add($,$),new _(N,q,$)}add(E){v(E);let{X:B,Y:U,Z:F}=this,{X,Y:O,Z:N}=E,q=n.ZERO,$=n.ZERO,j=n.ZERO,Et=o.a,mt=n.mul(o.b,En),nt=n.mul(B,X),oe=n.mul(U,O),ie=n.mul(F,N),tn=n.add(B,U),Ot=n.add(X,O);tn=n.mul(tn,Ot),Ot=n.add(nt,oe),tn=n.sub(tn,Ot),Ot=n.add(B,F);let ve=n.add(X,N);return Ot=n.mul(Ot,ve),ve=n.add(nt,ie),Ot=n.sub(Ot,ve),ve=n.add(U,F),q=n.add(O,N),ve=n.mul(ve,q),q=n.add(oe,ie),ve=n.sub(ve,q),j=n.mul(Et,Ot),q=n.mul(mt,ie),j=n.add(q,j),q=n.sub(oe,j),j=n.add(oe,j),$=n.mul(q,j),oe=n.add(nt,nt),oe=n.add(oe,nt),ie=n.mul(Et,ie),Ot=n.mul(mt,Ot),oe=n.add(oe,ie),ie=n.sub(nt,ie),ie=n.mul(Et,ie),Ot=n.add(Ot,ie),nt=n.mul(oe,Ot),$=n.add($,nt),nt=n.mul(ve,Ot),q=n.mul(tn,q),q=n.sub(q,nt),nt=n.mul(tn,oe),j=n.mul(ve,j),j=n.add(j,nt),new _(q,$,j)}subtract(E){return this.add(E.negate())}is0(){return this.equals(_.ZERO)}multiply(E){let{endo:B}=t;if(!s.isValidNot0(E))throw new Error("invalid scalar: out of range");let U,F,X=O=>D.cached(this,O,N=>Qt(_,N));if(B){let{k1neg:O,k1:N,k2neg:q,k2:$}=T(E),{p:j,f:Et}=X(N),{p:mt,f:nt}=X($);F=Et.add(nt),U=C(B.beta,j,mt,O,q)}else{let{p:O,f:N}=X(E);U=O,F=N}return Qt(_,[U,F])[0]}multiplyUnsafe(E){let{endo:B}=t,U=this;if(!s.isValid(E))throw new Error("invalid scalar: out of range");if(E===Vr||U.is0())return _.ZERO;if(E===Pt)return U;if(D.hasCache(this))return this.multiply(E);if(B){let{k1neg:F,k1:X,k2neg:O,k2:N}=T(E),{p1:q,p2:$}=lu(_,U,X,N);return C(B.beta,q,$,F,O)}else return D.unsafe(U,E)}multiplyAndAddUnsafe(E,B,U){let F=this.multiplyUnsafe(B).add(E.multiplyUnsafe(U));return F.is0()?void 0:F}toAffine(E){return I(this,E)}isTorsionFree(){let{isTorsionFree:E}=t;return i===Pt?!0:E?E(_,this):D.unsafe(this,a).is0()}clearCofactor(){let{clearCofactor:E}=t;return i===Pt?this:E?E(_,this):this.multiplyUnsafe(i)}isSmallOrder(){return this.multiplyUnsafe(i).is0()}toBytes(E=!0){return kr(E,"isCompressed"),this.assertValidity(),h(_,this,E)}toHex(E=!0){return V(this.toBytes(E))}toString(){return``}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(E=!0){return this.toBytes(E)}_setWindowSize(E){this.precompute(E)}static normalizeZ(E){return Qt(_,E)}static msm(E,B){return wn(_,s,E,B)}static fromPrivateKey(E){return _.BASE.multiply(us(s,E))}}_.BASE=new _(o.Gx,o.Gy,n.ONE),_.ZERO=new _(n.ZERO,n.ONE,n.ZERO),_.Fp=n,_.Fn=s;let A=s.BITS,D=new xn(_,t.endo?Math.ceil(A/2):A);return _.BASE.precompute(8),_}function Td(e){return Uint8Array.of(e?2:3)}function Sd(e,t){let r=e.ORDER,n=Vr;for(let p=r-Pt;p%Ze===Vr;p/=Ze)n+=Pt;let s=n,o=Ze<{let g=d,y=e.pow(m,f),w=e.sqr(y);w=e.mul(w,m);let b=e.mul(p,w);b=e.pow(b,c),b=e.mul(b,y),y=e.mul(b,m),w=e.mul(b,p);let v=e.mul(w,y);b=e.pow(v,l);let T=e.eql(b,e.ONE);y=e.mul(w,u),b=e.mul(v,g),w=e.cmov(y,w,T),v=e.cmov(b,v,T);for(let I=s;I>Pt;I--){let S=I-Ze;S=Ze<{let w=e.sqr(y),b=e.mul(g,y);w=e.mul(w,b);let v=e.pow(w,p);v=e.mul(v,b);let T=e.mul(v,m),I=e.mul(e.sqr(v),y),S=e.eql(I,g),C=e.cmov(T,v,S);return{isValid:S,value:C}}}return h}function Qi(e,t){Oo(e);let{A:r,B:n,Z:s}=t;if(!e.isValid(r)||!e.isValid(n)||!e.isValid(s))throw new Error("mapToCurveSimpleSWU: invalid opts");let o=Sd(e,s);if(!e.isOdd)throw new Error("Field does not have .isOdd()");return i=>{let a,c,f,l,d,u,h,p;a=e.sqr(i),a=e.mul(a,s),c=e.sqr(a),c=e.add(c,a),f=e.add(c,e.ONE),f=e.mul(f,n),l=e.cmov(s,e.neg(c),!e.eql(c,e.ZERO)),l=e.mul(l,r),c=e.sqr(f),u=e.sqr(l),d=e.mul(u,r),c=e.add(c,d),c=e.mul(c,f),u=e.mul(u,l),d=e.mul(u,n),c=e.add(c,d),h=e.mul(a,f);let{isValid:m,value:g}=o(c,u);p=e.mul(a,i),p=e.mul(p,g),h=e.cmov(h,f,m),p=e.cmov(p,g,m);let y=e.isOdd(i)===e.isOdd(p);p=e.cmov(e.neg(p),p,y);let w=Jt(e,[l],!0)[0];return h=e.mul(h,w),{x:h,y:p}}}function Id(e,t){return{secretKey:t.BYTES,publicKey:1+e.BYTES,publicKeyUncompressed:1+2*e.BYTES,publicKeyHasPrefix:!0,signature:2*t.BYTES}}function ta(e){let{CURVE:t,curveOpts:r}=Ad(e),n=Bd(t,r);return Od(e,n)}function Ad(e){let t={a:e.a,b:e.b,p:e.Fp.ORDER,n:e.n,h:e.h,Gx:e.Gx,Gy:e.Gy},r=e.Fp,n=e.allowedPrivateKeyLengths?Array.from(new Set(e.allowedPrivateKeyLengths.map(i=>Math.ceil(i/2)))):void 0,s=Ut(t.n,{BITS:e.nBitLength,allowedLengths:n,modFromBytes:e.wrapPrivateKey}),o={Fp:r,Fn:s,allowInfinityPoint:e.allowInfinityPoint,endo:e.endo,isTorsionFree:e.isTorsionFree,clearCofactor:e.clearCofactor,fromBytes:e.fromBytes,toBytes:e.toBytes};return{CURVE:t,curveOpts:o}}function Cd(e,t,r){function n(s){let o=e.sqr(s),i=e.mul(o,s);return e.add(e.add(i,e.mul(s,t)),r)}return n}function Od(e,t){let{Fp:r,Fn:n}=t;function s(i){return Vi(i,Pt,n.ORDER)}let o=Cd(r,e.a,e.b);return Object.assign({},{CURVE:e,Point:t,ProjectivePoint:t,normPrivateKeyToScalar:i=>us(n,i),weierstrassEquation:o,isWithinCurveOrder:s})}var Rd=BigInt(0),Uo=BigInt(1),mu=BigInt(2),_n=BigInt(3);function Nd(e){let t=[];for(;e>Uo;e>>=Uo)(e&Uo)===Rd?t.unshift(0):(e&_n)===_n?(t.unshift(-1),e+=Uo):t.unshift(1);return t}function ea(e){if(!Array.isArray(e)||e.length===0)throw new Error("expected non-empty array")}function Ud(e,t,r,n){let{Fp2:s,Fp12:o}=e,{twistType:i,ateLoopSize:a,xNegative:c,postPrecompute:f}=n,l;if(i==="multiplicative")l=(b,v,T,I,S,C)=>o.mul014(I,b,s.mul(v,S),s.mul(T,C));else if(i==="divisive")l=(b,v,T,I,S,C)=>o.mul034(I,s.mul(T,C),s.mul(v,S),b);else throw new Error("bls: unknown twist type");let d=s.div(s.ONE,s.mul(s.ONE,mu));function u(b,v,T,I){let S=s.sqr(T),C=s.sqr(I),_=s.mulByB(s.mul(C,_n)),A=s.mul(_,_n),D=s.sub(s.sub(s.sqr(s.add(T,I)),C),S),R=s.sub(_,S),E=s.mul(s.sqr(v),_n),B=s.neg(D);return b.push([R,E,B]),v=s.mul(s.mul(s.mul(s.sub(S,A),v),T),d),T=s.sub(s.sqr(s.mul(s.add(S,A),d)),s.mul(s.sqr(_),_n)),I=s.mul(S,D),{Rx:v,Ry:T,Rz:I}}function h(b,v,T,I,S,C){let _=s.sub(T,s.mul(C,I)),A=s.sub(v,s.mul(S,I)),D=s.sub(s.mul(_,S),s.mul(A,C)),R=s.neg(_),E=A;b.push([D,R,E]);let B=s.sqr(A),U=s.mul(B,A),F=s.mul(B,v),X=s.add(s.sub(U,s.mul(F,mu)),s.mul(s.sqr(_),I));return v=s.mul(A,X),T=s.sub(s.mul(s.sub(F,X),_),s.mul(U,T)),I=s.mul(I,U),{Rx:v,Ry:T,Rz:I}}let p=Nd(a),m=fr(b=>{let v=b,{x:T,y:I}=v.toAffine(),S=T,C=I,_=s.neg(I),A=S,D=C,R=s.ONE,E=[];for(let B of p){let U=[];({Rx:A,Ry:D,Rz:R}=u(U,A,D,R)),B&&({Rx:A,Ry:D,Rz:R}=h(U,A,D,R,S,B===-1?_:C)),E.push(U)}if(f){let B=E[E.length-1];f(A,D,R,S,C,h.bind(null,B))}return E});function g(b,v=!1){let T=o.ONE;if(b.length){let I=b[0][0].length;for(let S=0;SI)),Qt(r,b.map(({g2:I})=>I));for(let{g1:I,g2:S}of b){if(I.is0()||S.is0())throw new Error("pairing is not available for ZERO point");I.assertValidity(),S.assertValidity();let C=I.toAffine();T.push([m(S),C.x,C.y])}return g(T,v)}function w(b,v,T=!0){return y([{g1:b,g2:v}],T)}return{Fp12:o,millerLoopBatch:g,pairing:w,pairingBatch:y,calcPairingPrecomputes:m}}function yu(e,t,r,n,s){let{Fp12:o,pairingBatch:i}=e;function a(d){return d instanceof t.Point?d:t.Point.fromHex(d)}function c(d){return d instanceof r.Point?d:r.Point.fromHex(d)}function f(d){if(!(d instanceof r.Point))throw new Error(`expected valid message hashed to ${s?"G1":"G2"} curve`);return d}let l=s?(d,u)=>({g1:u,g2:d}):(d,u)=>({g1:d,g2:u});return{getPublicKey(d){let u=us(t.Point.Fn,d);return t.Point.BASE.multiply(u)},sign(d,u,h){if(h!=null)throw new Error("sign() expects 2 arguments");let p=us(t.Point.Fn,u);return f(d).assertValidity(),d.multiply(p)},verify(d,u,h,p){if(p!=null)throw new Error("verify() expects 3 arguments");d=c(d),h=a(h);let m=h.negate(),g=t.Point.BASE,y=f(u),w=d,b=i([l(m,y),l(g,w)]);return o.eql(b,o.ONE)},verifyBatch(d,u,h){if(ea(u),h.length!==u.length)throw new Error("amount of public keys and messages should be equal");let p=c(d),m=u,g=h.map(a),y=new Map;for(let v=0;vS.add(C));w.push(l(I,v))}return w.push(l(b.negate(),p)),o.eql(i(w),o.ONE)}catch(v){return!1}},aggregatePublicKeys(d){ea(d),d=d.map(h=>a(h));let u=d.reduce((h,p)=>h.add(p),t.Point.ZERO);return u.assertValidity(),u},aggregateSignatures(d){ea(d),d=d.map(h=>c(h));let u=d.reduce((h,p)=>h.add(p),r.Point.ZERO);return u.assertValidity(),u},hash(d,u){dt(d);let h=u?{DST:u}:void 0;return r.hashToCurve(d,h)},Signature:n}}function bu(e){let{Fp:t,Fr:r,Fp2:n,Fp6:s,Fp12:o}=e.fields,i=ta(e.G1),a=Object.assign(i,Wi(i.Point,e.G1.mapToCurve,{...e.htfDefaults,...e.G1.htfDefaults})),c=ta(e.G2),f=Object.assign(c,Wi(c.Point,e.G2.mapToCurve,{...e.htfDefaults,...e.G2.htfDefaults})),l=Ud(e.fields,a.Point,f.Point,{...e.params,postPrecompute:e.postPrecompute}),{millerLoopBatch:d,pairing:u,pairingBatch:h,calcPairingPrecomputes:p}=l,m=yu(l,a,f,e.G2.Signature,!1),g=yu(l,f,a,e.G1.ShortSignature,!0),y=e.randomBytes||rn,w=()=>{let O=Ro(r.ORDER);return Ki(y(O),r.ORDER)},b={randomSecretKey:w,randomPrivateKey:w,calcPairingPrecomputes:p},{ShortSignature:v}=e.G1,{Signature:T}=e.G2;function I(O,N){return O instanceof a.Point?O:g.hash(ut("point",O),N==null?void 0:N.DST)}function S(O,N){return O instanceof f.Point?O:m.hash(ut("point",O),N==null?void 0:N.DST)}function C(O){return m.getPublicKey(O).toBytes(!0)}function _(O){return g.getPublicKey(O).toBytes(!0)}function A(O,N,q){let $=S(O,q),j=m.sign($,N);return O instanceof f.Point?j:T.toBytes(j)}function D(O,N,q){let $=I(O,q),j=g.sign($,N);return O instanceof a.Point?j:v.toBytes(j)}function R(O,N,q,$){let j=S(N,$);return m.verify(O,j,q)}function E(O,N,q,$){let j=I(N,$);return g.verify(O,j,q)}function B(O){let N=m.aggregatePublicKeys(O);return O[0]instanceof a.Point?N:N.toBytes(!0)}function U(O){let N=m.aggregateSignatures(O);return O[0]instanceof f.Point?N:T.toBytes(N)}function F(O){let N=g.aggregateSignatures(O);return O[0]instanceof a.Point?N:v.toBytes(N)}function X(O,N,q,$){let j=N.map(Et=>S(Et,$));return m.verifyBatch(O,j,q)}return a.Point.BASE.precompute(4),{longSignatures:m,shortSignatures:g,millerLoopBatch:d,pairing:u,pairingBatch:h,verifyBatch:X,fields:{Fr:r,Fp:t,Fp2:n,Fp6:s,Fp12:o},params:{ateLoopSize:e.params.ateLoopSize,twistType:e.params.twistType,r:e.params.r,G1b:e.G1.b,G2b:e.G2.b},utils:b,getPublicKey:C,getPublicKeyForShortSignatures:_,sign:A,signShortSignature:D,verify:R,verifyShortSignature:E,aggregatePublicKeys:B,aggregateSignatures:U,aggregateShortSignatures:F,G1:a,G2:f,Signature:T,ShortSignature:v}}var gu=BigInt(0),Ye=BigInt(1),Dt=BigInt(2),xu=BigInt(3);function oa(e,t,r,n,s=1,o){let i=BigInt(o===void 0?n:o),a=r**BigInt(n),c=[];for(let f=0;f(h,p)=>{let m=p.toAffine(),g=u(m.x,m.y);return h.fromAffine({x:g[0],y:g[1]})},l=f(o),d=f(c);return{psi:o,psi2:c,G2psi:l,G2psi2:d,PSI_X:n,PSI_Y:s,PSI2_X:i,PSI2_Y:a}}var wu=(e,t)=>{if(t.length!==2)throw new Error("invalid tuple");let r=t.map(n=>e.create(n));return{c0:r[0],c1:r[1]}},ra=class{constructor(t,r={}){this.MASK=Ye;let n=t.ORDER,s=n*n;this.Fp=t,this.ORDER=s,this.BITS=He(s),this.BYTES=Math.ceil(He(s)/8),this.isLE=t.isLE,this.ZERO={c0:t.ZERO,c1:t.ZERO},this.ONE={c0:t.ONE,c1:t.ZERO},this.Fp_NONRESIDUE=t.create(r.NONRESIDUE||BigInt(-1)),this.Fp_div2=t.div(t.ONE,Dt),this.NONRESIDUE=wu(t,r.FP2_NONRESIDUE),this.FROBENIUS_COEFFICIENTS=oa(t,this.Fp_NONRESIDUE,t.ORDER,2)[0],this.mulByB=r.Fp2mulByB,Object.seal(this)}fromBigTuple(t){return wu(this.Fp,t)}create(t){return t}isValid({c0:t,c1:r}){function n(s,o){return typeof s=="bigint"&&gu<=s&&sg||p===g&&h>m?d:u}isOdd(t){let{re:r,im:n}=this.reim(t),s=r%Dt,o=r===gu,i=n%Dt;return BigInt(s||o&&i)==Ye}fromBytes(t){let{Fp:r}=this;if(t.length!==this.BYTES)throw new Error("fromBytes invalid length="+t.length);return{c0:r.fromBytes(t.subarray(0,r.BYTES)),c1:r.fromBytes(t.subarray(r.BYTES))}}toBytes({c0:t,c1:r}){return K(this.Fp.toBytes(t),this.Fp.toBytes(r))}cmov({c0:t,c1:r},{c0:n,c1:s},o){return{c0:this.Fp.cmov(t,n,o),c1:this.Fp.cmov(r,s,o)}}reim({c0:t,c1:r}){return{re:t,im:r}}Fp4Square(t,r){let n=this,s=n.sqr(t),o=n.sqr(r);return{first:n.add(n.mulByNonresidue(o),s),second:n.sub(n.sub(n.sqr(n.add(t,r)),s),o)}}mulByNonresidue({c0:t,c1:r}){return this.mul({c0:t,c1:r},this.NONRESIDUE)}frobeniusMap({c0:t,c1:r},n){return{c0:t,c1:this.Fp.mul(r,this.FROBENIUS_COEFFICIENTS[n%2])}}},na=class{constructor(t){this.MASK=Ye,this.Fp2=t,this.ORDER=t.ORDER,this.BITS=3*t.BITS,this.BYTES=3*t.BYTES,this.isLE=t.isLE,this.ZERO={c0:t.ZERO,c1:t.ZERO,c2:t.ZERO},this.ONE={c0:t.ONE,c1:t.ZERO,c2:t.ZERO};let{Fp:r}=t,n=oa(t,t.NONRESIDUE,r.ORDER,6,2,3);this.FROBENIUS_COEFFICIENTS_1=n[0],this.FROBENIUS_COEFFICIENTS_2=n[1],Object.seal(this)}add({c0:t,c1:r,c2:n},{c0:s,c1:o,c2:i}){let{Fp2:a}=this;return{c0:a.add(t,s),c1:a.add(r,o),c2:a.add(n,i)}}sub({c0:t,c1:r,c2:n},{c0:s,c1:o,c2:i}){let{Fp2:a}=this;return{c0:a.sub(t,s),c1:a.sub(r,o),c2:a.sub(n,i)}}mul({c0:t,c1:r,c2:n},s){let{Fp2:o}=this;if(typeof s=="bigint")return{c0:o.mul(t,s),c1:o.mul(r,s),c2:o.mul(n,s)};let{c0:i,c1:a,c2:c}=s,f=o.mul(t,i),l=o.mul(r,a),d=o.mul(n,c);return{c0:o.add(f,o.mulByNonresidue(o.sub(o.mul(o.add(r,n),o.add(a,c)),o.add(l,d)))),c1:o.add(o.sub(o.mul(o.add(t,r),o.add(i,a)),o.add(f,l)),o.mulByNonresidue(d)),c2:o.sub(o.add(l,o.mul(o.add(t,n),o.add(i,c))),o.add(f,d))}}sqr({c0:t,c1:r,c2:n}){let{Fp2:s}=this,o=s.sqr(t),i=s.mul(s.mul(t,r),Dt),a=s.mul(s.mul(r,n),Dt),c=s.sqr(n);return{c0:s.add(s.mulByNonresidue(a),o),c1:s.add(s.mulByNonresidue(c),i),c2:s.sub(s.sub(s.add(s.add(i,s.sqr(s.add(s.sub(t,r),n))),a),o),c)}}addN(t,r){return this.add(t,r)}subN(t,r){return this.sub(t,r)}mulN(t,r){return this.mul(t,r)}sqrN(t){return this.sqr(t)}create(t){return t}isValid({c0:t,c1:r,c2:n}){let{Fp2:s}=this;return s.isValid(t)&&s.isValid(r)&&s.isValid(n)}is0({c0:t,c1:r,c2:n}){let{Fp2:s}=this;return s.is0(t)&&s.is0(r)&&s.is0(n)}isValidNot0(t){return!this.is0(t)&&this.isValid(t)}neg({c0:t,c1:r,c2:n}){let{Fp2:s}=this;return{c0:s.neg(t),c1:s.neg(r),c2:s.neg(n)}}eql({c0:t,c1:r,c2:n},{c0:s,c1:o,c2:i}){let{Fp2:a}=this;return a.eql(t,s)&&a.eql(r,o)&&a.eql(n,i)}sqrt(t){return bn()}div(t,r){let{Fp2:n}=this,{Fp:s}=n;return this.mul(t,typeof r=="bigint"?s.inv(s.create(r)):this.inv(r))}pow(t,r){return is(this,t,r)}invertBatch(t){return Jt(this,t)}inv({c0:t,c1:r,c2:n}){let{Fp2:s}=this,o=s.sub(s.sqr(t),s.mulByNonresidue(s.mul(n,r))),i=s.sub(s.mulByNonresidue(s.sqr(n)),s.mul(t,r)),a=s.sub(s.sqr(r),s.mul(t,n)),c=s.inv(s.add(s.mulByNonresidue(s.add(s.mul(n,i),s.mul(r,a))),s.mul(t,o)));return{c0:s.mul(c,o),c1:s.mul(c,i),c2:s.mul(c,a)}}fromBytes(t){let{Fp2:r}=this;if(t.length!==this.BYTES)throw new Error("fromBytes invalid length="+t.length);let n=r.BYTES;return{c0:r.fromBytes(t.subarray(0,n)),c1:r.fromBytes(t.subarray(n,n*2)),c2:r.fromBytes(t.subarray(2*n))}}toBytes({c0:t,c1:r,c2:n}){let{Fp2:s}=this;return K(s.toBytes(t),s.toBytes(r),s.toBytes(n))}cmov({c0:t,c1:r,c2:n},{c0:s,c1:o,c2:i},a){let{Fp2:c}=this;return{c0:c.cmov(t,s,a),c1:c.cmov(r,o,a),c2:c.cmov(n,i,a)}}fromBigSix(t){let{Fp2:r}=this;if(!Array.isArray(t)||t.length!==6)throw new Error("invalid Fp6 usage");return{c0:r.fromBigTuple(t.slice(0,2)),c1:r.fromBigTuple(t.slice(2,4)),c2:r.fromBigTuple(t.slice(4,6))}}frobeniusMap({c0:t,c1:r,c2:n},s){let{Fp2:o}=this;return{c0:o.frobeniusMap(t,s),c1:o.mul(o.frobeniusMap(r,s),this.FROBENIUS_COEFFICIENTS_1[s%6]),c2:o.mul(o.frobeniusMap(n,s),this.FROBENIUS_COEFFICIENTS_2[s%6])}}mulByFp2({c0:t,c1:r,c2:n},s){let{Fp2:o}=this;return{c0:o.mul(t,s),c1:o.mul(r,s),c2:o.mul(n,s)}}mulByNonresidue({c0:t,c1:r,c2:n}){let{Fp2:s}=this;return{c0:s.mulByNonresidue(n),c1:t,c2:r}}mul1({c0:t,c1:r,c2:n},s){let{Fp2:o}=this;return{c0:o.mulByNonresidue(o.mul(n,s)),c1:o.mul(t,s),c2:o.mul(r,s)}}mul01({c0:t,c1:r,c2:n},s,o){let{Fp2:i}=this,a=i.mul(t,s),c=i.mul(r,o);return{c0:i.add(i.mulByNonresidue(i.sub(i.mul(i.add(r,n),o),c)),a),c1:i.sub(i.sub(i.mul(i.add(s,o),i.add(t,r)),a),c),c2:i.add(i.sub(i.mul(i.add(t,n),s),a),c)}}},sa=class{constructor(t,r){this.MASK=Ye;let{Fp2:n}=t,{Fp:s}=n;this.Fp6=t,this.ORDER=n.ORDER,this.BITS=2*t.BITS,this.BYTES=2*t.BYTES,this.isLE=t.isLE,this.ZERO={c0:t.ZERO,c1:t.ZERO},this.ONE={c0:t.ONE,c1:t.ZERO},this.FROBENIUS_COEFFICIENTS=oa(n,n.NONRESIDUE,s.ORDER,12,1,6)[0],this.X_LEN=r.X_LEN,this.finalExponentiate=r.Fp12finalExponentiate}create(t){return t}isValid({c0:t,c1:r}){let{Fp6:n}=this;return n.isValid(t)&&n.isValid(r)}is0({c0:t,c1:r}){let{Fp6:n}=this;return n.is0(t)&&n.is0(r)}isValidNot0(t){return!this.is0(t)&&this.isValid(t)}neg({c0:t,c1:r}){let{Fp6:n}=this;return{c0:n.neg(t),c1:n.neg(r)}}eql({c0:t,c1:r},{c0:n,c1:s}){let{Fp6:o}=this;return o.eql(t,n)&&o.eql(r,s)}sqrt(t){bn()}inv({c0:t,c1:r}){let{Fp6:n}=this,s=n.inv(n.sub(n.sqr(t),n.mulByNonresidue(n.sqr(r))));return{c0:n.mul(t,s),c1:n.neg(n.mul(r,s))}}div(t,r){let{Fp6:n}=this,{Fp2:s}=n,{Fp:o}=s;return this.mul(t,typeof r=="bigint"?o.inv(o.create(r)):this.inv(r))}pow(t,r){return is(this,t,r)}invertBatch(t){return Jt(this,t)}add({c0:t,c1:r},{c0:n,c1:s}){let{Fp6:o}=this;return{c0:o.add(t,n),c1:o.add(r,s)}}sub({c0:t,c1:r},{c0:n,c1:s}){let{Fp6:o}=this;return{c0:o.sub(t,n),c1:o.sub(r,s)}}mul({c0:t,c1:r},n){let{Fp6:s}=this;if(typeof n=="bigint")return{c0:s.mul(t,n),c1:s.mul(r,n)};let{c0:o,c1:i}=n,a=s.mul(t,o),c=s.mul(r,i);return{c0:s.add(a,s.mulByNonresidue(c)),c1:s.sub(s.mul(s.add(t,r),s.add(o,i)),s.add(a,c))}}sqr({c0:t,c1:r}){let{Fp6:n}=this,s=n.mul(t,r);return{c0:n.sub(n.sub(n.mul(n.add(n.mulByNonresidue(r),t),n.add(t,r)),s),n.mulByNonresidue(s)),c1:n.add(s,s)}}addN(t,r){return this.add(t,r)}subN(t,r){return this.sub(t,r)}mulN(t,r){return this.mul(t,r)}sqrN(t){return this.sqr(t)}fromBytes(t){let{Fp6:r}=this;if(t.length!==this.BYTES)throw new Error("fromBytes invalid length="+t.length);return{c0:r.fromBytes(t.subarray(0,r.BYTES)),c1:r.fromBytes(t.subarray(r.BYTES))}}toBytes({c0:t,c1:r}){let{Fp6:n}=this;return K(n.toBytes(t),n.toBytes(r))}cmov({c0:t,c1:r},{c0:n,c1:s},o){let{Fp6:i}=this;return{c0:i.cmov(t,n,o),c1:i.cmov(r,s,o)}}fromBigTwelve(t){let{Fp6:r}=this;return{c0:r.fromBigSix(t.slice(0,6)),c1:r.fromBigSix(t.slice(6,12))}}frobeniusMap(t,r){let{Fp6:n}=this,{Fp2:s}=n,{c0:o,c1:i,c2:a}=n.frobeniusMap(t.c1,r),c=this.FROBENIUS_COEFFICIENTS[r%12];return{c0:n.frobeniusMap(t.c0,r),c1:n.create({c0:s.mul(o,c),c1:s.mul(i,c),c2:s.mul(a,c)})}}mulByFp2({c0:t,c1:r},n){let{Fp6:s}=this;return{c0:s.mulByFp2(t,n),c1:s.mulByFp2(r,n)}}conjugate({c0:t,c1:r}){return{c0:t,c1:this.Fp6.neg(r)}}mul014({c0:t,c1:r},n,s,o){let{Fp6:i}=this,{Fp2:a}=i,c=i.mul01(t,n,s),f=i.mul1(r,o);return{c0:i.add(i.mulByNonresidue(f),c),c1:i.sub(i.sub(i.mul01(i.add(r,t),n,a.add(s,o)),c),f)}}mul034({c0:t,c1:r},n,s,o){let{Fp6:i}=this,{Fp2:a}=i,c=i.create({c0:a.mul(t.c0,n),c1:a.mul(t.c1,n),c2:a.mul(t.c2,n)}),f=i.mul01(r,s,o),l=i.mul01(i.add(t,r),a.add(n,s),o);return{c0:i.add(i.mulByNonresidue(f),c),c1:i.sub(l,i.add(c,f))}}_cyclotomicSquare({c0:t,c1:r}){let{Fp6:n}=this,{Fp2:s}=n,{c0:o,c1:i,c2:a}=t,{c0:c,c1:f,c2:l}=r,{first:d,second:u}=s.Fp4Square(o,f),{first:h,second:p}=s.Fp4Square(c,a),{first:m,second:g}=s.Fp4Square(i,l),y=s.mulByNonresidue(g);return{c0:n.create({c0:s.add(s.mul(s.sub(d,o),Dt),d),c1:s.add(s.mul(s.sub(h,i),Dt),h),c2:s.add(s.mul(s.sub(m,a),Dt),m)}),c1:n.create({c0:s.add(s.mul(s.add(y,c),Dt),y),c1:s.add(s.mul(s.add(u,f),Dt),u),c2:s.add(s.mul(s.add(p,l),Dt),p)})}}_cyclotomicExp(t,r){let n=this.ONE;for(let s=this.X_LEN-1;s>=0;s--)n=this._cyclotomicSquare(n),Xc(r,s)&&(n=this.mul(n,t));return n}};function _u(e){let t=Ut(e.ORDER),r=new ra(t,e),n=new na(r),s=new sa(n,e);return{Fp:t,Fp2:r,Fp6:n,Fp12:s}}var It=BigInt(0),Po=BigInt(1),te=BigInt(2),Do=BigInt(3),fs=BigInt(4),lr=BigInt("0xd201000000010000"),Pd=He(lr),jr={p:BigInt("0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab"),n:BigInt("0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001"),h:BigInt("0x396c8c005555e1568c00aaab0000aaab"),a:It,b:fs,Gx:BigInt("0x17f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb"),Gy:BigInt("0x08b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1")},Dd=Ut(jr.n,{modFromBytes:!0,isLE:!0}),{Fp:M,Fp2:W,Fp6:qd,Fp12:tt}=_u({ORDER:jr.p,X_LEN:Pd,FP2_NONRESIDUE:[Po,Po],Fp2mulByB:({c0:e,c1:t})=>{let r=M.mul(e,fs),n=M.mul(t,fs);return{c0:M.sub(r,n),c1:M.add(r,n)}},Fp12finalExponentiate:e=>{let t=lr,r=tt.div(tt.frobeniusMap(e,6),e),n=tt.mul(tt.frobeniusMap(r,2),r),s=tt.conjugate(tt._cyclotomicExp(n,t)),o=tt.mul(tt.conjugate(tt._cyclotomicSquare(n)),s),i=tt.conjugate(tt._cyclotomicExp(o,t)),a=tt.conjugate(tt._cyclotomicExp(i,t)),c=tt.mul(tt.conjugate(tt._cyclotomicExp(a,t)),tt._cyclotomicSquare(s)),f=tt.conjugate(tt._cyclotomicExp(c,t)),l=tt.frobeniusMap(tt.mul(s,a),2),d=tt.frobeniusMap(tt.mul(i,n),3),u=tt.frobeniusMap(tt.mul(c,tt.conjugate(n)),1),h=tt.mul(tt.mul(f,tt.conjugate(o)),n);return tt.mul(tt.mul(tt.mul(l,d),u),h)}}),{G2psi:vu,G2psi2:Md}=Eu(M,W,W.div(W.ONE,W.NONRESIDUE)),ia=Object.freeze({DST:"BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_",encodeDST:"BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_",p:M.ORDER,m:2,k:128,expand:"xmd",hash:Tt}),ua={p:W.ORDER,n:jr.n,h:BigInt("0x5d543a95414e7f1091d50792876a202cd91de4547085abaa68a205b2e5a7ddfa628f1cb4d9e82ef21537e293a6691ae1616ec6e786f0c70cf1c38e31c7238e5"),a:W.ZERO,b:W.fromBigTuple([fs,fs]),Gx:W.fromBigTuple([BigInt("0x024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb8"),BigInt("0x13e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e")]),Gy:W.fromBigTuple([BigInt("0x0ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801"),BigInt("0x0606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be")])},qo=ds(M.toBytes(It),{infinity:!0,compressed:!0});function Mo(e){e=e.slice();let t=e[0]&224,r=!!(t>>7&1),n=!!(t>>6&1),s=!!(t>>5&1);return e[0]&=31,{compressed:r,infinity:n,sort:s,value:e}}function ds(e,t){if(e[0]&224)throw new Error("setMask: non-empty mask");return t.compressed&&(e[0]|=128),t.infinity&&(e[0]|=64),t.sort&&(e[0]|=32),e}function Fd(e,t,r){let{BYTES:n,ORDER:s}=M,o=t.is0(),{x:i,y:a}=t.toAffine();if(r){if(o)return qo.slice();let c=!!(a*te/s);return ds(gt(i,n),{compressed:!0,sort:c})}else return o?K(Uint8Array.of(64),new Uint8Array(2*n-1)):K(gt(i,n),gt(a,n))}function aa(e){e.assertValidity();let{BYTES:t,ORDER:r}=M,{x:n,y:s}=e.toAffine();if(e.is0())return qo.slice();let o=!!(s*te/r);return ds(gt(n,t),{compressed:!0,sort:o})}function kd(e){let{compressed:t,infinity:r,sort:n,value:s}=Mo(e),{BYTES:o,ORDER:i}=M;if(s.length===48&&t){let a=$t(s),c=M.create(a&ge(M.BITS));if(r){if(c!==It)throw new Error("invalid G1 point: non-empty, at infinity, with compression");return{x:It,y:It}}let f=M.add(M.pow(c,Do),M.create(jr.b)),l=M.sqrt(f);if(!l)throw new Error("invalid G1 point: compressed point");return l*te/i!==BigInt(n)&&(l=M.neg(l)),{x:M.create(c),y:M.create(l)}}else if(s.length===96&&!t){let a=$t(s.subarray(0,o)),c=$t(s.subarray(o));if(r){if(a!==It||c!==It)throw new Error("G1: non-empty point at infinity");return ls.G1.Point.ZERO.toAffine()}return{x:M.create(a),y:M.create(c)}}else throw new Error("invalid G1 point: expected 48/96 bytes")}function Bu(e){let{infinity:t,sort:r,value:n}=Mo(ut("signatureHex",e,48)),s=M.ORDER,o=ls.G1.Point,i=$t(n);if(t)return o.ZERO;let a=M.create(i&ge(M.BITS)),c=M.add(M.pow(a,Do),M.create(jr.b)),f=M.sqrt(c);if(!f)throw new Error("invalid G1 point: compressed");let l=BigInt(r);f*te/s!==l&&(f=M.neg(f));let d=o.fromAffine({x:a,y:f});return d.assertValidity(),d}function Ld(e,t,r){let{BYTES:n,ORDER:s}=M,o=t.is0(),{x:i,y:a}=t.toAffine();if(r){if(o)return K(qo,gt(It,n));let c=!!(a.c1===It?a.c0*te/s:a.c1*te/s);return K(ds(gt(i.c1,n),{compressed:!0,sort:c}),gt(i.c0,n))}else{if(o)return K(Uint8Array.of(64),new Uint8Array(4*n-1));let{re:c,im:f}=W.reim(i),{re:l,im:d}=W.reim(a);return K(gt(f,n),gt(c,n),gt(d,n),gt(l,n))}}function ca(e){e.assertValidity();let{BYTES:t}=M;if(e.is0())return K(qo,gt(It,t));let{x:r,y:n}=e.toAffine(),{re:s,im:o}=W.reim(r),{re:i,im:a}=W.reim(n),f=!!((a>It?a*te:i*te)/M.ORDER&Po),l=s;return K(ds(gt(o,t),{sort:f,compressed:!0}),gt(l,t))}function $d(e){let{BYTES:t,ORDER:r}=M,{compressed:n,infinity:s,sort:o,value:i}=Mo(e);if(!n&&!s&&o||!n&&s&&o||o&&s&&n)throw new Error("invalid encoding flag: "+(e[0]&224));let a=(c,f,l)=>$t(c.slice(f,l));if(i.length===96&&n){if(s){if(i.reduce((p,m)=>p!==0?m+1:m,0)>0)throw new Error("invalid G2 point: compressed");return{x:W.ZERO,y:W.ZERO}}let c=a(i,0,t),f=a(i,t,2*t),l=W.create({c0:M.create(f),c1:M.create(c)}),d=W.add(W.pow(l,Do),ua.b),u=W.sqrt(d),h=u.c1===It?u.c0*te/r:u.c1*te/r?Po:It;return u=o&&h>0?u:W.neg(u),{x:l,y:u}}else if(i.length===192&&!n){if(s){if(i.reduce((u,h)=>u!==0?h+1:h,0)>0)throw new Error("invalid G2 point: uncompressed");return{x:W.ZERO,y:W.ZERO}}let c=a(i,0*t,1*t),f=a(i,1*t,2*t),l=a(i,2*t,3*t),d=a(i,3*t,4*t);return{x:W.fromBigTuple([f,c]),y:W.fromBigTuple([d,l])}}else throw new Error("invalid G2 point: expected 96/192 bytes")}function Tu(e){let{ORDER:t}=M,{infinity:r,sort:n,value:s}=Mo(ut("signatureHex",e)),o=ls.G2.Point,i=s.length/2;if(i!==48&&i!==96)throw new Error("invalid compressed signature length, expected 96/192 bytes");let a=$t(s.slice(0,i)),c=$t(s.slice(i));if(r)return o.ZERO;let f=M.create(a&ge(M.BITS)),l=M.create(c),d=W.create({c0:l,c1:f}),u=W.add(W.pow(d,Do),ua.b),h=W.sqrt(u);if(!h)throw new Error("Failed to find a square root");let{re:p,im:m}=W.reim(h),g=BigInt(n),y=m>It&&m*te/t!==g,w=m===It&&p*te/t!==g;(y||w)&&(h=W.neg(h));let b=o.fromAffine({x:d,y:h});return b.assertValidity(),b}var ls=bu({fields:{Fp:M,Fp2:W,Fp6:qd,Fp12:tt,Fr:Dd},G1:{...jr,Fp:M,htfDefaults:{...ia,m:1,DST:"BLS_SIG_BLS12381G1_XMD:SHA-256_SSWU_RO_NUL_"},wrapPrivateKey:!0,allowInfinityPoint:!0,isTorsionFree:(e,t)=>{let r=BigInt("0x5f19672fdf76ce51ba69c6076a0f77eaddb3a93be6f89688de17d813620a00022e01fffffffefffe"),n=new e(M.mul(t.X,r),t.Y,t.Z);return t.multiplyUnsafe(lr).negate().multiplyUnsafe(lr).equals(n)},clearCofactor:(e,t)=>t.multiplyUnsafe(lr).add(t),mapToCurve:Gd,fromBytes:kd,toBytes:Fd,ShortSignature:{fromBytes(e){return dt(e),Bu(e)},fromHex(e){return Bu(e)},toBytes(e){return aa(e)},toRawBytes(e){return aa(e)},toHex(e){return V(aa(e))}}},G2:{...ua,Fp:W,hEff:BigInt("0xbc69f08f2ee75b3584c6a0ea91b352888e2a8e9145ad7689986ff031508ffe1329c2f178731db956d82bf015d1212b02ec0ec69d7477c1ae954cbc06689f6a359894c0adebbf6b4e8020005aaa95551"),htfDefaults:{...ia},wrapPrivateKey:!0,allowInfinityPoint:!0,mapToCurve:Zd,isTorsionFree:(e,t)=>t.multiplyUnsafe(lr).negate().equals(vu(e,t)),clearCofactor:(e,t)=>{let r=lr,n=t.multiplyUnsafe(r).negate(),s=vu(e,t),o=t.double();return o=Md(e,o),o=o.subtract(s),s=n.add(s),s=s.multiplyUnsafe(r).negate(),o=o.add(s),o=o.subtract(n),o.subtract(t)},fromBytes:$d,toBytes:Ld,Signature:{fromBytes(e){return dt(e),Tu(e)},fromHex(e){return Tu(e)},toBytes(e){return ca(e)},toRawBytes(e){return ca(e)},toHex(e){return V(ca(e))}}},params:{ateLoopSize:lr,r:jr.n,xNegative:!0,twistType:"multiplicative"},htfDefaults:ia,hash:Tt}),Vd=Xi(W,[[["0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6","0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6"],["0x0","0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71a"],["0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71e","0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38d"],["0x171d6541fa38ccfaed6dea691f5fb614cb14b4e7f4e810aa22d6108f142b85757098e38d0f671c7188e2aaaaaaaa5ed1","0x0"]],[["0x0","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa63"],["0xc","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa9f"],["0x1","0x0"]],[["0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706","0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706"],["0x0","0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97be"],["0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71c","0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38f"],["0x124c9ad43b6cf79bfbf7043de3811ad0761b0f37a1e26286b0e977c69aa274524e79097a56dc4bd9e1b371c71c718b10","0x0"]],[["0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb"],["0x0","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa9d3"],["0x12","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa99"],["0x1","0x0"]]].map(e=>e.map(t=>W.fromBigTuple(t.map(BigInt))))),jd=Xi(M,[["0x11a05f2b1e833340b809101dd99815856b303e88a2d7005ff2627b56cdb4e2c85610c2d5f2e62d6eaeac1662734649b7","0x17294ed3e943ab2f0588bab22147a81c7c17e75b2f6a8417f565e33c70d1e86b4838f2a6f318c356e834eef1b3cb83bb","0xd54005db97678ec1d1048c5d10a9a1bce032473295983e56878e501ec68e25c958c3e3d2a09729fe0179f9dac9edcb0","0x1778e7166fcc6db74e0609d307e55412d7f5e4656a8dbf25f1b33289f1b330835336e25ce3107193c5b388641d9b6861","0xe99726a3199f4436642b4b3e4118e5499db995a1257fb3f086eeb65982fac18985a286f301e77c451154ce9ac8895d9","0x1630c3250d7313ff01d1201bf7a74ab5db3cb17dd952799b9ed3ab9097e68f90a0870d2dcae73d19cd13c1c66f652983","0xd6ed6553fe44d296a3726c38ae652bfb11586264f0f8ce19008e218f9c86b2a8da25128c1052ecaddd7f225a139ed84","0x17b81e7701abdbe2e8743884d1117e53356de5ab275b4db1a682c62ef0f2753339b7c8f8c8f475af9ccb5618e3f0c88e","0x80d3cf1f9a78fc47b90b33563be990dc43b756ce79f5574a2c596c928c5d1de4fa295f296b74e956d71986a8497e317","0x169b1f8e1bcfa7c42e0c37515d138f22dd2ecb803a0c5c99676314baf4bb1b7fa3190b2edc0327797f241067be390c9e","0x10321da079ce07e272d8ec09d2565b0dfa7dccdde6787f96d50af36003b14866f69b771f8c285decca67df3f1605fb7b","0x6e08c248e260e70bd1e962381edee3d31d79d7e22c837bc23c0bf1bc24c6b68c24b1b80b64d391fa9c8ba2e8ba2d229"],["0x8ca8d548cff19ae18b2e62f4bd3fa6f01d5ef4ba35b48ba9c9588617fc8ac62b558d681be343df8993cf9fa40d21b1c","0x12561a5deb559c4348b4711298e536367041e8ca0cf0800c0126c2588c48bf5713daa8846cb026e9e5c8276ec82b3bff","0xb2962fe57a3225e8137e629bff2991f6f89416f5a718cd1fca64e00b11aceacd6a3d0967c94fedcfcc239ba5cb83e19","0x3425581a58ae2fec83aafef7c40eb545b08243f16b1655154cca8abc28d6fd04976d5243eecf5c4130de8938dc62cd8","0x13a8e162022914a80a6f1d5f43e7a07dffdfc759a12062bb8d6b44e833b306da9bd29ba81f35781d539d395b3532a21e","0xe7355f8e4e667b955390f7f0506c6e9395735e9ce9cad4d0a43bcef24b8982f7400d24bc4228f11c02df9a29f6304a5","0x772caacf16936190f3e0c63e0596721570f5799af53a1894e2e073062aede9cea73b3538f0de06cec2574496ee84a3a","0x14a7ac2a9d64a8b230b3f5b074cf01996e7f63c21bca68a81996e1cdf9822c580fa5b9489d11e2d311f7d99bbdcc5a5e","0xa10ecf6ada54f825e920b3dafc7a3cce07f8d1d7161366b74100da67f39883503826692abba43704776ec3a79a1d641","0x95fc13ab9e92ad4476d6e3eb3a56680f682b4ee96f7d03776df533978f31c1593174e4b4b7865002d6384d168ecdd0a","0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"],["0x90d97c81ba24ee0259d1f094980dcfa11ad138e48a869522b52af6c956543d3cd0c7aee9b3ba3c2be9845719707bb33","0x134996a104ee5811d51036d776fb46831223e96c254f383d0f906343eb67ad34d6c56711962fa8bfe097e75a2e41c696","0xcc786baa966e66f4a384c86a3b49942552e2d658a31ce2c344be4b91400da7d26d521628b00523b8dfe240c72de1f6","0x1f86376e8981c217898751ad8746757d42aa7b90eeb791c09e4a3ec03251cf9de405aba9ec61deca6355c77b0e5f4cb","0x8cc03fdefe0ff135caf4fe2a21529c4195536fbe3ce50b879833fd221351adc2ee7f8dc099040a841b6daecf2e8fedb","0x16603fca40634b6a2211e11db8f0a6a074a7d0d4afadb7bd76505c3d3ad5544e203f6326c95a807299b23ab13633a5f0","0x4ab0b9bcfac1bbcb2c977d027796b3ce75bb8ca2be184cb5231413c4d634f3747a87ac2460f415ec961f8855fe9d6f2","0x987c8d5333ab86fde9926bd2ca6c674170a05bfe3bdd81ffd038da6c26c842642f64550fedfe935a15e4ca31870fb29","0x9fc4018bd96684be88c9e221e4da1bb8f3abd16679dc26c1e8b6e6a1f20cabe69d65201c78607a360370e577bdba587","0xe1bba7a1186bdb5223abde7ada14a23c42a0ca7915af6fe06985e7ed1e4d43b9b3f7055dd4eba6f2bafaaebca731c30","0x19713e47937cd1be0dfd0b8f1d43fb93cd2fcbcb6caf493fd1183e416389e61031bf3a5cce3fbafce813711ad011c132","0x18b46a908f36f6deb918c143fed2edcc523559b8aaf0c2462e6bfe7f911f643249d9cdf41b44d606ce07c8a4d0074d8e","0xb182cac101b9399d155096004f53f447aa7b12a3426b08ec02710e807b4633f06c851c1919211f20d4c04f00b971ef8","0x245a394ad1eca9b72fc00ae7be315dc757b3b080d4c158013e6632d3c40659cc6cf90ad1c232a6442d9d3f5db980133","0x5c129645e44cf1102a159f748c4a3fc5e673d81d7e86568d9ab0f5d396a7ce46ba1049b6579afb7866b1e715475224b","0x15e6be4e990f03ce4ea50b3b42df2eb5cb181d8f84965a3957add4fa95af01b2b665027efec01c7704b456be69c8b604"],["0x16112c4c3a9c98b252181140fad0eae9601a6de578980be6eec3232b5be72e7a07f3688ef60c206d01479253b03663c1","0x1962d75c2381201e1a0cbd6c43c348b885c84ff731c4d59ca4a10356f453e01f78a4260763529e3532f6102c2e49a03d","0x58df3306640da276faaae7d6e8eb15778c4855551ae7f310c35a5dd279cd2eca6757cd636f96f891e2538b53dbf67f2","0x16b7d288798e5395f20d23bf89edb4d1d115c5dbddbcd30e123da489e726af41727364f2c28297ada8d26d98445f5416","0xbe0e079545f43e4b00cc912f8228ddcc6d19c9f0f69bbb0542eda0fc9dec916a20b15dc0fd2ededda39142311a5001d","0x8d9e5297186db2d9fb266eaac783182b70152c65550d881c5ecd87b6f0f5a6449f38db9dfa9cce202c6477faaf9b7ac","0x166007c08a99db2fc3ba8734ace9824b5eecfdfa8d0cf8ef5dd365bc400a0051d5fa9c01a58b1fb93d1a1399126a775c","0x16a3ef08be3ea7ea03bcddfabba6ff6ee5a4375efa1f4fd7feb34fd206357132b920f5b00801dee460ee415a15812ed9","0x1866c8ed336c61231a1be54fd1d74cc4f9fb0ce4c6af5920abc5750c4bf39b4852cfe2f7bb9248836b233d9d55535d4a","0x167a55cda70a6e1cea820597d94a84903216f763e13d87bb5308592e7ea7d4fbc7385ea3d529b35e346ef48bb8913f55","0x4d2f259eea405bd48f010a01ad2911d9c6dd039bb61a6290e591b36e636a5c871a5c29f4f83060400f8b49cba8f6aa8","0xaccbb67481d033ff5852c1e48c50c477f94ff8aefce42d28c0f9a88cea7913516f968986f7ebbea9684b529e2561092","0xad6b9514c767fe3c3613144b45f1496543346d98adf02267d5ceef9a00d9b8693000763e3b90ac11e99b138573345cc","0x2660400eb2e4f3b628bdd0d53cd76f2bf565b94e72927c1cb748df27942480e420517bd8714cc80d1fadc1326ed06f7","0xe0fa1d816ddc03e6b24255e0d7819c171c40f65e273b853324efcd6356caa205ca2f570f13497804415473a1d634b8f","0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"]].map(e=>e.map(t=>BigInt(t)))),Hd=Qi(M,{A:M.create(BigInt("0x144698a3b8e9433d693a02c96d4982b0ea985383ee66a8d8e8981aefd881ac98936f8da0e0f97f5cf428082d584c1d")),B:M.create(BigInt("0x12e2908d11688030018b12e8753eee3b2016c1f0f24f4070a0b9c14fcef35ef55a23215a316ceaa5d1cc48e98e172be0")),Z:M.create(BigInt(11))}),Kd=Qi(W,{A:W.create({c0:M.create(It),c1:M.create(BigInt(240))}),B:W.create({c0:M.create(BigInt(1012)),c1:M.create(BigInt(1012))}),Z:W.create({c0:M.create(BigInt(-2)),c1:M.create(BigInt(-1))})});function Gd(e){let{x:t,y:r}=Hd(M.create(e[0]));return jd(t,r)}function Zd(e){let{x:t,y:r}=Kd(W.fromBigTuple(e));return Vd(t,r)}function Su(e,t,r){let n=typeof e=="string"?e:V(e),s=typeof t=="string"?t:V(t),o=typeof r=="string"?r:V(r);return ls.verifyShortSignature(s,o,n)}var zd=BigInt(1e6),fa=e=>ht(new he(e)),hr=e=>{let r=fa(e)/zd;return new Date(Number(r))};var Iu=60*1e3,Xd=60,Wd=24,Jd=Wd*Xd,Qd=5,tl=5,el=30*Jd,ft;(function(e){e[e.Empty=0]="Empty",e[e.Fork=1]="Fork",e[e.Labeled=2]="Labeled",e[e.Leaf=3]="Leaf",e[e.Pruned=4]="Pruned"})(ft||(ft={}));function rl(e,t){for(let r=0;rt[r])return!0;return!1}var vn,ee,ms=class ms{constructor(t,r,n,s,o=Qd,i=!1,a){k(this,vn,!1);k(this,ee);this._rootKey=r,this._principal=n,this._blsVerify=s,this._maxAgeInMinutes=o,P(this,vn,i),this.cert=Lt(t),a&&"getTimeDiffMsecs"in a&&"hasSyncedTime"in a&&"syncTime"in a&&"syncTimeWithSubnet"in a&&P(this,ee,a)}static async create(t){let r=ms.createUnverified(t);return await r.verify(),r}static createUnverified(t){var r;return new ms(t.certificate,t.rootKey,t.principal,(r=t.blsVerify)!=null?r:Su,t.maxAgeInMinutes,t.disableTimeVerification,t.agent)}lookup_path(t){return ze(t,this.cert.tree)}lookup_subtree(t){return ys(t,this.cert.tree)}async verify(){var a,c,f;let t=await ko(this.cert.tree),r=await this._checkDelegationAndGetKey(this.cert.delegation),n=this.cert.signature,s=sl(r),o=K(Dc,t),i=Ct(this.lookup_path(["time"]));if(!i)throw rt.fromCode(new ue("Certificate does not contain a time"));if(!x(this,vn)){let l=(c=(a=x(this,ee))==null?void 0:a.getTimeDiffMsecs())!=null?c:0,d=this._maxAgeInMinutes*Iu,u=new Date,h=u.getTime()+l,p=h-d,m=h+tl*Iu,g=hr(i),y=g.getTime()m;if((y||w)&&x(this,ee)&&!x(this,ee).hasSyncedTime())return await this._syncTime(),await this.verify();if(y)throw Mt.fromCode(new Me(this._maxAgeInMinutes,g,u,l,"past"));if(w)throw(f=x(this,ee))!=null&&f.hasSyncedTime()?it.fromCode(new vt("System time has been synced with the IC network, but certificate is still too far in the future.")):Mt.fromCode(new Me(5,g,u,l,"future"))}try{if(!await this._blsVerify(s,n,o))throw Mt.fromCode(new ue("Invalid signature"))}catch(l){throw Mt.fromCode(new ue("Signature verification failed",l))}}async _checkDelegationAndGetKey(t){if(!t)return this._rootKey;let r=ms.createUnverified({certificate:t.certificate,rootKey:this._rootKey,principal:this._principal,blsVerify:this._blsVerify,disableTimeVerification:x(this,vn),maxAgeInMinutes:el,agent:x(this,ee)});if(r.cert.delegation)throw rt.fromCode(new js);await r.verify();let n;if(Cu(this._principal)){let o=this._principal.canisterId;if(n=L.fromUint8Array(t.subnet_id),!da({canisterId:o,subnetId:n,tree:r.cert.tree}))throw Mt.fromCode(new Or(o,n))}else if(Au(this._principal))n=this._principal.subnetId;else throw Xt;let s=Ct(r.lookup_path(["subnet",n.toUint8Array(),"public_key"]));if(!s)throw Au(this._principal)?Mt.fromCode(new Hs(n)):Mt.fromCode(new Gs(`Could not find subnet key for subnet ID ${n.toText()}`));return s}async _syncTime(){x(this,ee)&&(Cu(this._principal)?await x(this,ee).syncTime(this._principal.canisterId):await x(this,ee).syncTimeWithSubnet(this._principal.subnetId))}};vn=new WeakMap,ee=new WeakMap;var re=ms;function Au(e){return"subnetId"in e}function Cu(e){return"canisterId"in e}var hs=Bt("308182301d060d2b0601040182dc7c0503010201060c2b0601040182dc7c05030201036100"),nl=96;function sl(e){let t=hs.byteLength+nl;if(e.byteLength!==t)throw rt.fromCode(new nn(t,e.byteLength));let r=e.slice(0,hs.byteLength);if(!Dr(r,hs))throw rt.fromCode(new Zs(hs,r));return e.slice(hs.byteLength)}function Ct(e){if(e.status===At.Found&&e.value instanceof Uint8Array)return e.value}async function ko(e){switch(e[0]){case ft.Empty:return Tt(Fo("ic-hashtree-empty"));case ft.Pruned:return e[1];case ft.Leaf:return Tt(K(Fo("ic-hashtree-leaf"),e[1]));case ft.Labeled:return Tt(K(Fo("ic-hashtree-labeled"),e[1],await ko(e[2])));case ft.Fork:return Tt(K(Fo("ic-hashtree-fork"),await ko(e[1]),await ko(e[2])));default:throw Xt}}function Fo(e){let t=new Uint8Array([e.length]),r=new TextEncoder().encode(e);return K(t,r)}function Ou(e){return typeof e[0]=="string"?z(e[0]):e[0]}var At;(function(e){e.Unknown="Unknown",e.Absent="Absent",e.Found="Found",e.Error="Error"})(At||(At={}));var pr;(function(e){e.Absent="Absent",e.Unknown="Unknown",e.Found="Found"})(pr||(pr={}));var ct;(function(e){e.Absent="Absent",e.Unknown="Unknown",e.Found="Found",e.Less="Less",e.Greater="Greater"})(ct||(ct={}));function ze(e,t){if(e.length===0)switch(t[0]){case ft.Empty:return{status:At.Absent};case ft.Leaf:{if(!t[1])throw it.fromCode(new sr("Invalid tree structure for leaf"));if(t[1]instanceof Uint8Array)return{status:At.Found,value:t[1].slice(t[1].byteOffset,t[1].byteLength+t[1].byteOffset)};throw Xt}case ft.Pruned:return{status:At.Unknown};case ft.Labeled:case ft.Fork:return{status:At.Error};default:throw Xt}let r=Ou(e),n=ps(r,t);switch(n.status){case ct.Found:return ze(e.slice(1),n.value);case ct.Absent:case ct.Greater:case ct.Less:return{status:At.Absent};case ct.Unknown:return{status:At.Unknown};default:throw Xt}}function ys(e,t){if(e.length===0)return{status:pr.Found,value:t};let r=Ou(e),n=ps(r,t);switch(n.status){case ct.Found:return ys(e.slice(1),n.value);case ct.Unknown:return{status:pr.Unknown};case ct.Absent:case ct.Greater:case ct.Less:return{status:pr.Absent};default:throw Xt}}function $o(e){switch(e[0]){case ft.Empty:return[];case ft.Fork:return $o(e[1]).concat($o(e[2]));default:return[e]}}function ps(e,t){switch(t[0]){case ft.Labeled:return rl(e,t[1])?{status:ct.Greater}:Dr(e,t[1])?{status:ct.Found,value:t[2]}:{status:ct.Less};case ft.Fork:{let r=ps(e,t[1]);switch(r.status){case ct.Greater:{let n=ps(e,t[2]);return n.status===ct.Less?{status:ct.Absent}:n}case ct.Unknown:{let n=ps(e,t[2]);return n.status===ct.Less?{status:ct.Unknown}:n}default:return r}}case ft.Pruned:return{status:ct.Unknown};default:return{status:ct.Absent}}}function Lo(e,t){switch(t[0]){case ft.Empty|ft.Pruned:return[];case ft.Leaf:return[e];case ft.Fork:return Lo(e,t[1]).concat(Lo(e,t[2]));case ft.Labeled:{let r=t[1],n=t[2],s=[...e,r];return Lo(s,n)}default:throw Xt}}function da(e){let t=ol(e),r=la(t),{canisterId:n}=e;return r.some(o=>o[0].ltEq(n)&&o[1].gtEq(n))}function ol(e){let{subnetId:t,tree:r,canisterId:n}=e,s=ys(["canister_ranges",t.toUint8Array()],r);if(s.status!==pr.Found)return il(t,r);let o=s.value,i=al(o);if(i.length===0)throw rt.fromCode(new Or(n,t));i.sort(on);let a=cl(i,n),c=i[a];return ul(c,o)}function il(e,t){let r=ze(["subnet",e.toUint8Array(),"canister_ranges"],t);if(r.status!==At.Found)throw rt.fromCode(new fe(`Could not find canister ranges for subnet ${e.toText()}`,r.status));return r.value}function la(e){return Lt(e).map(n=>[L.fromUint8Array(n[0]),L.fromUint8Array(n[1])])}function al(e){let t=[];for(let r of Lo([],e)){let n=r[0];if(!n)throw rt.fromCode(new ue("Path is invalid"));t.push(n)}return t}function cl(e,t){let r=t.toUint8Array(),n=0,s=e.length-1;for(;nL.fromUint8Array(r))}function Uu(e,t){let r=typeof e=="string"?z(e):e;return[z("canister"),t,z("metadata"),r]}function mr(e){return typeof e=="object"&&e!==null&&"key"in e&&"path"in e}function Bn(e,t){let r=ys(["subnet",t.toUint8Array(),"node"],e.tree);if(r.status!==pr.Found)throw rt.fromCode(new fe("Node not found",r.status));if(r.value instanceof Uint8Array)throw it.fromCode(new sr("Invalid node tree"));let n=$o(r.value),s=new Map;return n.forEach(o=>{let i=L.from(o[1]).toText(),a=ze(["public_key"],o[2]);if(a.status!==At.Found)throw rt.fromCode(new fe("Public key not found",a.status));let c=a.value;if(c.byteLength!==44)throw rt.fromCode(new nn(44,c.byteLength));s.set(i,c)}),s}var Pu=async e=>{let{agent:t,paths:r,disableCertificateTimeVerification:n=!1}=e,s=L.from(e.canisterId),o=[...new Set(r)],i=new Map,a=o.map((c,f)=>{let l=dl(c,s);return(async()=>{try{if(t.rootKey===null)throw St.fromCode(new le);let d=t.rootKey,u=await t.readState(s,{paths:[l]}),h=await re.create({certificate:u.certificate,rootKey:d,principal:{canisterId:s},disableTimeVerification:n,agent:t}),p=(y,w)=>{if(w==="subnet"){let b=fl(u.certificate,s,d);return{path:w,data:b}}return{path:w,data:Ct(y.lookup_path(l))}},{path:m,data:g}=p(h,o[f]);if(!g)typeof m=="string"?i.set(m,null):i.set(m.key,null);else switch(m){case"time":{i.set(m,hr(g));break}case"controllers":{i.set(m,Nu(g));break}case"module_hash":{i.set(m,V(g));break}case"subnet":{i.set(m,g);break}case"candid":{i.set(m,new TextDecoder().decode(g));break}default:mr(m)&&i.set(m.key,Vo(g,m.decodeStrategy))}}catch(d){if(d instanceof Kt&&(d.hasCode(ue)||d.hasCode(Me)))throw d;mr(c)?i.set(c.key,null):i.set(c,null)}})()});return await Promise.all(a),i},fl=(e,t,r)=>{if(!t._isPrincipal)throw J.fromCode(new vt("Invalid canisterId"));let n=Lt(e),{delegation:s}=n,o;s&&s.subnet_id?o=L.fromUint8Array(new Uint8Array(s.subnet_id)):!s&&typeof r!="undefined"?o=L.selfAuthenticating(new Uint8Array(r)):o=Ru;let i=Bn(n,o);return{subnetId:o.toText(),nodeKeys:i}},dl=(e,t)=>{let r=t.toUint8Array();switch(e){case"time":return[z("time")];case"controllers":return[z("canister"),r,z("controllers")];case"module_hash":return[z("canister"),r,z("module_hash")];case"subnet":return[z("subnet")];case"candid":return[z("canister"),r,z("metadata"),z("candid:service")];default:if(mr(e))return typeof e.path=="string"||e.path instanceof Uint8Array?Uu(e.path,r):e.path}throw it.fromCode(new vt(`Error while encoding your path for canister status. Please ensure that your path ${e} was formatted correctly.`))};async function Du(e){let{agent:t,paths:r,disableCertificateTimeVerification:n=!1}=e,s=L.from(e.subnetId),o=[...new Set(r)],i=new Map,a=o.map((c,f)=>{let l=ll(c,s);return(async()=>{try{if(t.rootKey===null)throw St.fromCode(new le);let d=t.rootKey,u=await t.readSubnetState(s,{paths:[l]}),h=await re.create({certificate:u.certificate,rootKey:d,principal:{subnetId:s},disableTimeVerification:n,agent:t}),p=(y,w)=>{if(w==="nodeKeys"){let b=Bn(y.cert,s);return{path:w,data:b}}return{path:w,data:Ct(y.lookup_path(l))}},{path:m,data:g}=p(h,o[f]);if(!g)typeof m=="string"?i.set(m,null):i.set(m.key,null);else switch(m){case"time":{i.set(m,hr(g));break}case"canisterRanges":{i.set(m,la(g));break}case"publicKey":{i.set(m,g);break}case"nodeKeys":{i.set(m,g);break}default:mr(m)&&i.set(m.key,Vo(g,m.decodeStrategy))}}catch(d){if(d instanceof Kt&&(d.hasCode(ue)||d.hasCode(Me)))throw d;mr(c)?i.set(c.key,null):i.set(c,null)}})()});return await Promise.all(a),i}function ll(e,t){let r=t.toUint8Array();switch(e){case"time":return[z("time")];case"canisterRanges":return[z("canister_ranges"),r];case"publicKey":return[z("subnet"),r,z("public_key")];case"nodeKeys":return[z("subnet"),r,z("node")];default:if(mr(e)){if(typeof e.path=="string"||e.path instanceof Uint8Array){let n=typeof e.path=="string"?z(e.path):e.path;return[z("subnet"),r,n]}return e.path}}throw it.fromCode(new vt(`Error while encoding your path for subnet status. Please ensure that your path ${e} was formatted correctly.`))}function jo(e,t,r){let n=new Uint8Array(Ct(e.lookup_path([...t,"reject_code"])))[0],s=new TextDecoder().decode(Ct(e.lookup_path([...t,"reject_message"]))),o=Ct(e.lookup_path([...t,"error_code"])),i=o?new TextDecoder().decode(o):void 0;return new Js(r,n,s,i)}var yr=BigInt(0),wt=BigInt(1),pa=BigInt(2),hl=BigInt(8);function pl(e,t,r,n){let s=e.sqr(r),o=e.sqr(n),i=e.add(e.mul(t.a,s),o),a=e.add(e.ONE,e.mul(t.d,e.mul(s,o)));return e.eql(i,a)}function ml(e,t={}){let r=No("edwards",e,t,t.FpFnLE),{Fp:n,Fn:s}=r,o=r.CURVE,{h:i}=o;Ke(t,{},{uvRatio:"function"});let a=pa<n.create(g),f=t.uvRatio||((g,y)=>{try{return{isValid:!0,value:n.sqrt(n.div(g,y))}}catch(w){return{isValid:!1,value:yr}}});if(!pl(n,o,o.Gx,o.Gy))throw new Error("bad curve params: generator point");function l(g,y,w=!1){let b=w?wt:yr;return Co("coordinate "+g,y,b,a),y}function d(g){if(!(g instanceof p))throw new Error("ExtendedPoint expected")}let u=fr((g,y)=>{let{X:w,Y:b,Z:v}=g,T=g.is0();y==null&&(y=T?hl:n.inv(v));let I=c(w*y),S=c(b*y),C=n.mul(v,y);if(T)return{x:yr,y:wt};if(C!==wt)throw new Error("invZ was invalid");return{x:I,y:S}}),h=fr(g=>{let{a:y,d:w}=o;if(g.is0())throw new Error("bad point: ZERO");let{X:b,Y:v,Z:T,T:I}=g,S=c(b*b),C=c(v*v),_=c(T*T),A=c(_*_),D=c(S*y),R=c(_*c(D+C)),E=c(A+c(w*c(S*C)));if(R!==E)throw new Error("bad point: equation left != right (1)");let B=c(b*v),U=c(T*I);if(B!==U)throw new Error("bad point: equation left != right (2)");return!0});class p{constructor(y,w,b,v){this.X=l("x",y),this.Y=l("y",w),this.Z=l("z",b,!0),this.T=l("t",v),Object.freeze(this)}static CURVE(){return o}static fromAffine(y){if(y instanceof p)throw new Error("extended point not allowed");let{x:w,y:b}=y||{};return l("x",w),l("y",b),new p(w,b,wt,c(w*b))}static fromBytes(y,w=!1){let b=n.BYTES,{a:v,d:T}=o;y=$i(ur(y,b,"point")),kr(w,"zip215");let I=$i(y),S=y[b-1];I[b-1]=S&-129;let C=je(I),_=w?a:n.ORDER;Co("point.y",C,yr,_);let A=c(C*C),D=c(A-wt),R=c(T*A-v),{isValid:E,value:B}=f(D,R);if(!E)throw new Error("bad point: invalid y coordinate");let U=(B&wt)===wt,F=(S&128)!==0;if(!w&&B===yr&&F)throw new Error("bad point: x=0 and x_0=1");return F!==U&&(B=c(-B)),p.fromAffine({x:B,y:C})}static fromHex(y,w=!1){return p.fromBytes(ut("point",y),w)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(y=8,w=!0){return m.createCache(this,y),w||this.multiply(pa),this}assertValidity(){h(this)}equals(y){d(y);let{X:w,Y:b,Z:v}=this,{X:T,Y:I,Z:S}=y,C=c(w*S),_=c(T*v),A=c(b*S),D=c(I*v);return C===_&&A===D}is0(){return this.equals(p.ZERO)}negate(){return new p(c(-this.X),this.Y,this.Z,c(-this.T))}double(){let{a:y}=o,{X:w,Y:b,Z:v}=this,T=c(w*w),I=c(b*b),S=c(pa*c(v*v)),C=c(y*T),_=w+b,A=c(c(_*_)-T-I),D=C+I,R=D-S,E=C-I,B=c(A*R),U=c(D*E),F=c(A*E),X=c(R*D);return new p(B,U,X,F)}add(y){d(y);let{a:w,d:b}=o,{X:v,Y:T,Z:I,T:S}=this,{X:C,Y:_,Z:A,T:D}=y,R=c(v*C),E=c(T*_),B=c(S*b*D),U=c(I*A),F=c((v+T)*(C+_)-R-E),X=U-B,O=U+B,N=c(E-w*R),q=c(F*X),$=c(O*N),j=c(F*N),Et=c(X*O);return new p(q,$,Et,j)}subtract(y){return this.add(y.negate())}multiply(y){if(!s.isValidNot0(y))throw new Error("invalid scalar: expected 1 <= sc < curve.n");let{p:w,f:b}=m.cached(this,y,v=>Qt(p,v));return Qt(p,[w,b])[0]}multiplyUnsafe(y,w=p.ZERO){if(!s.isValid(y))throw new Error("invalid scalar: expected 0 <= sc < curve.n");return y===yr?p.ZERO:this.is0()||y===wt?this:m.unsafe(this,y,b=>Qt(p,b),w)}isSmallOrder(){return this.multiplyUnsafe(i).is0()}isTorsionFree(){return m.unsafe(this,o.n).is0()}toAffine(y){return u(this,y)}clearCofactor(){return i===wt?this:this.multiplyUnsafe(i)}toBytes(){let{x:y,y:w}=this.toAffine(),b=n.toBytes(w);return b[b.length-1]|=y&wt?128:0,b}toHex(){return V(this.toBytes())}toString(){return``}get ex(){return this.X}get ey(){return this.Y}get ez(){return this.Z}get et(){return this.T}static normalizeZ(y){return Qt(p,y)}static msm(y,w){return wn(p,s,y,w)}_setWindowSize(y){this.precompute(y)}toRawBytes(){return this.toBytes()}}p.BASE=new p(o.Gx,o.Gy,wt,c(o.Gx*o.Gy)),p.ZERO=new p(yr,wt,wt,yr),p.Fp=n,p.Fn=s;let m=new xn(p,s.BITS);return p.BASE.precompute(8),p}var Ho=class{constructor(t){this.ep=t}static fromBytes(t){bn()}static fromHex(t){bn()}get x(){return this.toAffine().x}get y(){return this.toAffine().y}clearCofactor(){return this}assertValidity(){this.ep.assertValidity()}toAffine(t){return this.ep.toAffine(t)}toHex(){return V(this.toBytes())}toString(){return this.toHex()}isTorsionFree(){return!0}isSmallOrder(){return!1}add(t){return this.assertSame(t),this.init(this.ep.add(t.ep))}subtract(t){return this.assertSame(t),this.init(this.ep.subtract(t.ep))}multiply(t){return this.init(this.ep.multiply(t))}multiplyUnsafe(t){return this.init(this.ep.multiplyUnsafe(t))}double(){return this.init(this.ep.double())}negate(){return this.init(this.ep.negate())}precompute(t,r){return this.init(this.ep.precompute(t,r))}toRawBytes(){return this.toBytes()}};function yl(e,t,r={}){if(typeof t!="function")throw new Error('"hash" function param is required');Ke(r,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",mapToCurve:"function"});let{prehash:n}=r,{BASE:s,Fp:o,Fn:i}=e,a=r.randomBytes||rn,c=r.adjustScalarBytes||(_=>_),f=r.domain||((_,A,D)=>{if(kr(D,"phflag"),A.length||D)throw new Error("Contexts/pre-hash are not supported");return _});function l(_){return i.create(je(_))}function d(_){let A=b.secretKey;_=ut("private key",_,A);let D=ut("hashed private key",t(_),2*A),R=c(D.slice(0,A)),E=D.slice(A,2*A),B=l(R);return{head:R,prefix:E,scalar:B}}function u(_){let{head:A,prefix:D,scalar:R}=d(_),E=s.multiply(R),B=E.toBytes();return{head:A,prefix:D,scalar:R,point:E,pointBytes:B}}function h(_){return u(_).pointBytes}function p(_=Uint8Array.of(),...A){let D=K(...A);return l(t(f(D,ut("context",_),!!n)))}function m(_,A,D={}){_=ut("message",_),n&&(_=n(_));let{prefix:R,scalar:E,pointBytes:B}=u(A),U=p(D.context,R,_),F=s.multiply(U).toBytes(),X=p(D.context,F,B,_),O=i.create(U+X*E);if(!i.isValid(O))throw new Error("sign failed: invalid s");let N=K(F,i.toBytes(O));return ur(N,b.signature,"result")}let g={zip215:!0};function y(_,A,D,R=g){let{context:E,zip215:B}=R,U=b.signature;_=ut("signature",_,U),A=ut("message",A),D=ut("publicKey",D,b.publicKey),B!==void 0&&kr(B,"zip215"),n&&(A=n(A));let F=U/2,X=_.subarray(0,F),O=je(_.subarray(F,U)),N,q,$;try{N=e.fromBytes(D,B),q=e.fromBytes(X,B),$=s.multiplyUnsafe(O)}catch(mt){return!1}if(!B&&N.isSmallOrder())return!1;let j=p(E,q.toBytes(),N.toBytes(),A);return q.add(N.multiplyUnsafe(j)).subtract($).clearCofactor().is0()}let w=o.BYTES,b={secretKey:w,publicKey:w,signature:2*w,seed:w};function v(_=a(b.seed)){return ur(_,b.seed,"seed")}function T(_){let A=C.randomSecretKey(_);return{secretKey:A,publicKey:h(A)}}function I(_){return Be(_)&&_.length===i.BYTES}function S(_,A){try{return!!e.fromBytes(_,A)}catch(D){return!1}}let C={getExtendedPublicKey:u,randomSecretKey:v,isValidSecretKey:I,isValidPublicKey:S,toMontgomery(_){let{y:A}=e.fromBytes(_),D=b.publicKey,R=D===32;if(!R&&D!==57)throw new Error("only defined for 25519 and 448");let E=R?o.div(wt+A,wt-A):o.div(A-wt,A+wt);return o.toBytes(E)},toMontgomerySecret(_){let A=b.secretKey;ur(_,A);let D=t(_.subarray(0,A));return c(D).subarray(0,A)},randomPrivateKey:v,precompute(_=8,A=e.BASE){return A.precompute(_,!1)}};return Object.freeze({keygen:T,getPublicKey:h,sign:m,verify:y,utils:C,Point:e,lengths:b})}function bl(e){let t={a:e.a,d:e.d,p:e.Fp.ORDER,n:e.n,h:e.h,Gx:e.Gx,Gy:e.Gy},r=e.Fp,n=Ut(t.n,e.nBitLength,!0),s={Fp:r,Fn:n,uvRatio:e.uvRatio},o={randomBytes:e.randomBytes,adjustScalarBytes:e.adjustScalarBytes,domain:e.domain,prehash:e.prehash,mapToCurve:e.mapToCurve};return{CURVE:t,curveOpts:s,hash:e.hash,eddsaOpts:o}}function gl(e,t){let r=t.Point;return Object.assign({},t,{ExtendedPoint:r,CURVE:e,nBitLength:r.Fn.BITS,nByteLength:r.Fn.BYTES})}function qu(e){let{CURVE:t,curveOpts:r,hash:n,eddsaOpts:s}=bl(e),o=ml(t,r),i=yl(o,n,s);return gl(e,i)}var xl=BigInt(0),Xe=BigInt(1),Mu=BigInt(2),jp=BigInt(3),wl=BigInt(5),El=BigInt(8),Tn=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),bs={p:Tn,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:El,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function _l(e){let t=BigInt(10),r=BigInt(20),n=BigInt(40),s=BigInt(80),o=Tn,a=e*e%o*e%o,c=xe(a,Mu,o)*a%o,f=xe(c,Xe,o)*e%o,l=xe(f,wl,o)*f%o,d=xe(l,t,o)*l%o,u=xe(d,r,o)*d%o,h=xe(u,n,o)*u%o,p=xe(h,s,o)*h%o,m=xe(p,s,o)*h%o,g=xe(m,t,o)*l%o;return{pow_p_5_8:xe(g,Mu,o)*e%o,b2:a}}function vl(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}var ma=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function ga(e,t){let r=Tn,n=at(t*t*t,r),s=at(n*n*t,r),o=_l(e*s).pow_p_5_8,i=at(e*n*o,r),a=at(t*i*i,r),c=i,f=at(i*ma,r),l=a===e,d=a===at(-e,r),u=a===at(-e*ma,r);return l&&(i=c),(d||u)&&(i=f),Ge(i,r)&&(i=at(-i,r)),{isValid:l||d,value:i}}var br=Ut(bs.p,{isLE:!0}),Bl=Ut(bs.n,{isLE:!0}),Tl={...bs,Fp:br,hash:tc,adjustScalarBytes:vl,uvRatio:ga},qt=qu(Tl);var ya=ma,Sl=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),Il=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),Al=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),Cl=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952"),Fu=e=>ga(Xe,e),Ol=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),ba=e=>qt.Point.Fp.create(je(e)&Ol);function ku(e){let{d:t}=bs,r=Tn,n=y=>br.create(y),s=n(ya*e*e),o=n((s+Xe)*Al),i=BigInt(-1),a=n((i-t*s)*n(s+t)),{isValid:c,value:f}=ga(o,a),l=n(f*e);Ge(l,r)||(l=n(-l)),c||(f=l),c||(i=s);let d=n(i*(s-Xe)*Cl-a),u=f*f,h=n((f+f)*a),p=n(d*Sl),m=n(Xe-u),g=n(Xe+u);return new qt.Point(n(h*g),n(m*p),n(p*g),n(h*m))}function Rl(e){dt(e,64);let t=ba(e.subarray(0,32)),r=ku(t),n=ba(e.subarray(32,64)),s=ku(n);return new We(r.add(s))}var We=class e extends Ho{constructor(t){super(t)}static fromAffine(t){return new e(qt.Point.fromAffine(t))}assertSame(t){if(!(t instanceof e))throw new Error("RistrettoPoint expected")}init(t){return new e(t)}static hashToCurve(t){return Rl(ut("ristrettoHash",t,64))}static fromBytes(t){dt(t,32);let{a:r,d:n}=bs,s=Tn,o=v=>br.create(v),i=ba(t);if(!zc(br.toBytes(i),t)||Ge(i,s))throw new Error("invalid ristretto255 encoding 1");let a=o(i*i),c=o(Xe+r*a),f=o(Xe-r*a),l=o(c*c),d=o(f*f),u=o(r*n*l-d),{isValid:h,value:p}=Fu(o(u*d)),m=o(p*f),g=o(p*m*u),y=o((i+i)*m);Ge(y,s)&&(y=o(-y));let w=o(c*g),b=o(y*w);if(!h||Ge(b,s)||w===xl)throw new Error("invalid ristretto255 encoding 2");return new e(new qt.Point(y,w,Xe,b))}static fromHex(t){return e.fromBytes(ut("ristrettoHex",t,32))}static msm(t,r){return wn(e,qt.Point.Fn,t,r)}toBytes(){let{X:t,Y:r,Z:n,T:s}=this.ep,o=Tn,i=g=>br.create(g),a=i(i(n+r)*i(n-r)),c=i(t*r),f=i(c*c),{value:l}=Fu(i(a*f)),d=i(l*a),u=i(l*c),h=i(d*u*s),p;if(Ge(s*h,o)){let g=i(r*ya),y=i(t*ya);t=g,r=y,p=i(d*Il)}else p=u;Ge(t*h,o)&&(r=i(-r));let m=i((n-r)*p);return Ge(m,o)&&(m=i(-m)),br.toBytes(m)}equals(t){this.assertSame(t);let{X:r,Y:n}=this.ep,{X:s,Y:o}=t.ep,i=f=>br.create(f),a=i(r*o)===i(n*s),c=i(n*o)===i(r*s);return a||c}is0(){return this.equals(e.ZERO)}};We.BASE=new We(qt.Point.BASE);We.ZERO=new We(qt.Point.ZERO);We.Fp=br;We.Fn=Bl;function Ko(e){if(!Number.isFinite(e)||e<=0)throw new Error(`expirationTime must be a positive finite number, got ${e}`)}var xs,Vt,gr,jt,gs,Lu,xa,$u,Go=class{constructor(t){k(this,jt);k(this,xs);k(this,Vt);k(this,gr,null);if(typeof globalThis.indexedDB=="undefined")throw new Error("IndexedDBExpirableStore requires IndexedDB, which is not available in this environment");Ko(t.expirationTime),P(this,xs,t.dbName),P(this,Vt,t.storeName),this.expirationTime=t.expirationTime}async get(t){let r=await Y(this,jt,gs).call(this);return new Promise((n,s)=>{let a=r.transaction(x(this,Vt),"readonly").objectStore(x(this,Vt)).get(t);a.onsuccess=()=>{let c=a.result;if(!c){n(void 0);return}if(Date.now()-c.timestamp>this.expirationTime){this.delete(t).then(()=>n(void 0),()=>n(void 0));return}n(c.value)},a.onerror=()=>s(a.error)})}async set(t,r){await Y(this,jt,$u).call(this);let n=await Y(this,jt,gs).call(this);return new Promise((s,o)=>{let i=n.transaction(x(this,Vt),"readwrite"),a=i.objectStore(x(this,Vt)),c={key:t,value:r,timestamp:Date.now()};a.put(c),i.oncomplete=()=>s(),i.onerror=()=>o(i.error)})}async delete(t){let r=await Y(this,jt,gs).call(this);return new Promise((n,s)=>{let o=r.transaction(x(this,Vt),"readwrite");o.objectStore(x(this,Vt)).delete(t),o.oncomplete=()=>n(),o.onerror=()=>s(o.error)})}};xs=new WeakMap,Vt=new WeakMap,gr=new WeakMap,jt=new WeakSet,gs=function(){return x(this,gr)||P(this,gr,Y(this,jt,Lu).call(this).catch(t=>{throw P(this,gr,null),t})),x(this,gr)},Lu=async function(){let t=await Y(this,jt,xa).call(this);if(t.objectStoreNames.contains(x(this,Vt)))return t;let r=t.version+1;return t.close(),Y(this,jt,xa).call(this,r)},xa=function(t){let r=x(this,Vt);return new Promise((n,s)=>{let o=globalThis.indexedDB.open(x(this,xs),t);o.onupgradeneeded=()=>{let i=o.result;i.objectStoreNames.contains(r)||i.createObjectStore(r,{keyPath:"key"})},o.onsuccess=()=>{let i=o.result;i.onversionchange=()=>{i.close(),P(this,gr,null)},n(i)},o.onerror=()=>s(o.error)})},$u=async function(){let t=await Y(this,jt,gs).call(this),r=Date.now();return new Promise((n,s)=>{let o=t.transaction(x(this,Vt),"readwrite"),a=o.objectStore(x(this,Vt)).openCursor();a.onsuccess=()=>{let c=a.result;if(!c)return;let f=c.value;r-f.timestamp>this.expirationTime&&c.delete(),c.continue()},o.oncomplete=()=>n(),o.onerror=()=>s(o.error)})};var Oe,Yo,Vu,Zo=class{constructor(t){k(this,Yo);k(this,Oe);Ko(t.expirationTime),this.expirationTime=t.expirationTime,P(this,Oe,new Map)}get(t){let r=x(this,Oe).get(t);return r?Date.now()-r.timestamp>this.expirationTime?(x(this,Oe).delete(t),Promise.resolve(void 0)):Promise.resolve(r.value):Promise.resolve(void 0)}set(t,r){return Y(this,Yo,Vu).call(this),x(this,Oe).set(t,{value:r,timestamp:Date.now()}),Promise.resolve()}delete(t){return x(this,Oe).delete(t),Promise.resolve()}};Oe=new WeakMap,Yo=new WeakSet,Vu=function(){let t=Date.now();for(let[r,n]of x(this,Oe))t-n.timestamp>this.expirationTime&&x(this,Oe).delete(r)};function ju(e){return typeof globalThis.indexedDB!="undefined"?new Go(e):new Zo({expirationTime:e.expirationTime})}var Hu=e=>{if(e<=127)return 1;if(e<=255)return 2;if(e<=65535)return 3;if(e<=16777215)return 4;throw J.fromCode(new kn("Length too long (> 4 bytes)"))},Ku=(e,t,r)=>{if(r<=127)return e[t]=r,1;if(r<=255)return e[t]=129,e[t+1]=r,2;if(r<=65535)return e[t]=130,e[t+1]=r>>8,e[t+2]=r,3;if(r<=16777215)return e[t]=131,e[t+1]=r>>16,e[t+2]=r>>8,e[t+3]=r,4;throw J.fromCode(new kn("Length too long (> 4 bytes)"))},wa=(e,t)=>{if(e[t]<128)return 1;if(e[t]===128)throw J.fromCode(new de("Invalid length 0"));if(e[t]===129)return 2;if(e[t]===130)return 3;if(e[t]===131)return 4;throw J.fromCode(new de("Length too long (> 4 bytes)"))},Nl=(e,t)=>{let r=wa(e,t);if(r===1)return e[t];if(r===2)return e[t+1];if(r===3)return(e[t+1]<<8)+e[t+2];if(r===4)return(e[t+1]<<16)+(e[t+2]<<8)+e[t+3];throw J.fromCode(new de("Length too long (> 4 bytes)"))},nm=Uint8Array.from([48,12,6,10,43,6,1,4,1,131,184,67,1,1]),Sn=Uint8Array.from([48,5,6,3,43,101,112]),sm=Uint8Array.from([48,16,6,7,42,134,72,206,61,2,1,6,5,43,129,4,0,10]),om=Uint8Array.from([48,29,6,13,43,6,1,4,1,130,220,124,5,3,1,2,1,6,12,43,6,1,4,1,130,220,124,5,3,2,1]);function zo(e,t){let r=2+Hu(e.byteLength+1),n=t.byteLength+r+e.byteLength,s=0,o=new Uint8Array(1+Hu(n)+n);return o[s++]=48,s+=Ku(o,s,n),o.set(t,s),s+=t.byteLength,o[s++]=3,s+=Ku(o,s,e.byteLength+1),o[s++]=0,o.set(new Uint8Array(e),s),o}var Xo=(e,t)=>{let r=0,n=(a,c)=>{if(s[r++]!==a)throw J.fromCode(new de(`Expected ${c} at offset ${r}`))},s=new Uint8Array(e);if(n(48,"sequence"),r+=wa(s,r),!Dr(s.slice(r,r+t.byteLength),t))throw J.fromCode(new de("Not the expected OID."));r+=t.byteLength,n(3,"bit string");let o=Nl(s,r)-1;r+=wa(s,r),n(0,"0 padding");let i=s.slice(r);if(o!==i.length)throw J.fromCode(new Ys(o,i.length));return i};var ws,Es,Hr=class Hr{constructor(t){k(this,ws);k(this,Es);if(t.byteLength!==Hr.RAW_KEY_LENGTH)throw J.fromCode(new de("An Ed25519 public key must be exactly 32 bytes long"));P(this,ws,t),P(this,Es,Hr.derEncode(t))}static from(t){return this.fromDer(t.toDer())}static fromRaw(t){return new Hr(t)}static fromDer(t){return new Hr(this.derDecode(t))}static derEncode(t){return zo(t,Sn)}static derDecode(t){let r=Xo(t,Sn);if(r.length!==this.RAW_KEY_LENGTH)throw J.fromCode(new de("An Ed25519 public key must be exactly 32 bytes long"));return r}get rawKey(){return x(this,ws)}get derKey(){return x(this,Es)}toDer(){return this.derKey}toRaw(){return this.rawKey}};ws=new WeakMap,Es=new WeakMap,Hr.RAW_KEY_LENGTH=32;var Wo=Hr;var Ea=class{constructor(){this.observers=[]}subscribe(t){this.observers.push(t)}unsubscribe(t){this.observers=this.observers.filter(r=>r!==t)}notify(t,...r){this.observers.forEach(n=>n(t,...r))}},Jo=class extends Ea{constructor(){super()}print(t,...r){this.notify({message:t,level:"info"},...r)}warn(t,...r){this.notify({message:t,level:"warn"},...r)}error(t,r,...n){this.notify({message:t,level:"error",error:r},...n)}};var we,_s,vs,Bs,Ts,Ss,Is,As,In,ti=class ti{constructor(t=ti.default){k(this,we);k(this,_s);k(this,vs);k(this,Bs);k(this,Ts);k(this,Ss);k(this,Is);k(this,As);k(this,In,0);let{initialInterval:r=500,randomizationFactor:n=.5,multiplier:s=1.5,maxInterval:o=6e4,maxElapsedTime:i=9e5,maxIterations:a=10,date:c=Date}=t;P(this,we,r),P(this,_s,n),P(this,vs,s),P(this,Bs,o),P(this,As,c),P(this,Ts,c.now()),P(this,Ss,i),P(this,Is,a)}get ellapsedTimeInMsec(){return x(this,As).now()-x(this,Ts)}get currentInterval(){return x(this,we)}get count(){return x(this,In)}get randomValueFromInterval(){let t=x(this,_s)*x(this,we),r=x(this,we)-t,n=x(this,we)+t;return Math.random()*(n-r)+r}incrementCurrentInterval(){return P(this,we,Math.min(x(this,we)*x(this,vs),x(this,Bs))),Ra(this,In)._++,x(this,we)}next(){return this.ellapsedTimeInMsec>=x(this,Ss)||x(this,In)>=x(this,Is)?null:(this.incrementCurrentInterval(),this.randomValueFromInterval)}};we=new WeakMap,_s=new WeakMap,vs=new WeakMap,Bs=new WeakMap,Ts=new WeakMap,Ss=new WeakMap,Is=new WeakMap,As=new WeakMap,In=new WeakMap,ti.default={initialInterval:500,randomizationFactor:.5,multiplier:1.5,maxInterval:6e4,maxElapsedTime:9e5,maxIterations:10,date:Date};var Qo=ti;var Ul=5*60*1e3;function Gu(){return Fl(Dl(Pl(),1e3),Ml(1e3,1.2),ql(Ul))}function Pl(){let e=!0;return async()=>e?(e=!1,!0):!1}function Dl(e,t){return async(r,n,s)=>{if(await e(r,n,s))return new Promise(o=>setTimeout(o,t))}}function ql(e){let t=Date.now()+e;return async(r,n,s)=>{if(Date.now()>t)throw rt.fromCode(new Rr(`Request timed out after ${e} msec`,n,s))}}function Ml(e,t){let r=e;return()=>new Promise(n=>setTimeout(()=>{r*=t,n()},r))}function Fl(...e){return async(t,r,n)=>{for(let s of e)await s(t,r,n)}}var Yu={preSignReadStateRequest:!1};function zu(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function _a(e,t){return e!==null&&typeof e=="object"&&zu(e,t)}function kl(e,t){return zu(e,t)&&typeof e[t]=="function"}function Zu(e){return _a(e,"body")&&_a(e.body,"content")&&e.body.content.request_type===Fr.ReadState&&_a(e.body.content,"ingress_expiry")&&typeof e.body.content.ingress_expiry=="object"&&e.body.content.ingress_expiry!==null&&kl(e.body.content.ingress_expiry,"toHash")}async function ei(e,t,r,n={}){var d,u;let s=[z("request_status"),r],o,i;if(((d=n.preSignReadStateRequest)!=null?d:!1)?(i=await Ll({paths:[s],agent:e,pollingOptions:n}),o=await e.readState(t,{paths:[s]},void 0,i)):o=await e.readState(t,{paths:[s]}),e.rootKey==null)throw St.fromCode(new le);let c=await re.create({certificate:o.certificate,rootKey:e.rootKey,principal:{canisterId:t},blsVerify:n.blsVerify,agent:e}),f=Ct(c.lookup_path([...s,z("status")])),l;switch(typeof f=="undefined"?l=Zt.Unknown:l=new TextDecoder().decode(f),l){case Zt.Replied:return{reply:Ct(c.lookup_path([...s,"reply"])),certificate:c,rawCertificate:o.certificate};case Zt.Received:case Zt.Unknown:case Zt.Processing:{let h=(u=n.strategy)!=null?u:Gu();return await h(t,r,l),ei(e,t,r,{...n,strategy:h,request:i})}case Zt.Rejected:throw ce.fromCode(jo(c,s,r));case Zt.Done:throw it.fromCode(new eo(r))}throw Xt}async function Ll(e){var o;let{paths:t,agent:r,pollingOptions:n}=e;if(n.request&&Zu(n.request))return n.request;let s=await((o=r.createReadStateRequest)==null?void 0:o.call(r,{paths:t},void 0));if(!Zu(s))throw J.fromCode(new fo(s));return s}var Ta=60*1e3,$l=1e6,Vl=0,jl="308182301d060d2b0601040182dc7c0503010201060c2b0601040182dc7c05030201036100814c0e6ec71fab583b08bd81373c255c3c371b2e84863c98a4f1e08b74235d14fb5d9c0cd546d9685f913a0c0b2cc5341583bf4b4392e467db96d65b9bb4cb717112f8472e0d5a4d14505ffd7484b01291091c5f87b98883463f98091a0baaae";var Hl="ic0.app",Kl=".ic0.app",Gl="icp0.io",Zl=".icp0.io",Yl="icp-api.io",zl=".icp-api.io",va=200,Xu=202,Xl=404;function Wl(e){let t;if(e!==void 0)!e.match(/^[a-z]+:/)&&typeof window!="undefined"?t=new URL(`${window.location.protocol}//${e}`):t=new URL(e);else{let r=["ic0.app","icp0.io","127.0.0.1","localhost"],n=[".github.dev",".gitpod.io"],s=typeof window!="undefined"?window.location:void 0,o=s==null?void 0:s.hostname,i;o&&typeof o=="string"&&(n.some(a=>o.endsWith(a))?i=o:i=r.find(a=>o.endsWith(a))),s&&i?t=new URL(`${s.protocol}//${i}${s.port?`:${s.port}`:""}`):t=new URL("https://icp-api.io")}return t.toString()}var xr,wr,Ee,Je,Er,On,Yt,ne,Zr,Rn,se,Re,_r,_e,Yr,Z,Ju,vr,Br,zr,Tr,Qu,tf,Cs,An,Nn,ri,Sa,Kr,Cn,ef,rf,Gr=class Gr{constructor(t={}){k(this,Z);k(this,xr);k(this,wr);k(this,Ee);k(this,Je);k(this,Er);k(this,On);k(this,Yt);k(this,ne);k(this,Zr);k(this,Rn);k(this,se);k(this,Re);k(this,_r);k(this,_e);k(this,Yr);k(this,vr);k(this,Br);k(this,zr);k(this,Tr);k(this,Nn);var s,o,i,a;if(P(this,xr,null),P(this,wr,!1),P(this,Ee,Vl),P(this,Je,!1),P(this,Er,null),P(this,On,!1),this._isAgent=!0,this.config={},this.log=new Jo,P(this,vr,[]),P(this,Br,[]),P(this,zr,new Map),P(this,Tr,!0),P(this,Nn,(c,f)=>{if(x(this,Tr)===!1)return c;let{status:l,signatures:d=[],requestId:u}=c,h=f.size;if(d.length>h)throw rt.fromCode(new oo(d.length,h));for(let p of d){let{timestamp:m,identity:g}=p,y=L.fromUint8Array(g).toText(),w;if(l===Qe.Replied){let{reply:S}=c;w=Wn({status:l,reply:S,timestamp:BigInt(m),request_id:u})}else if(l===Qe.Rejected){let{reject_code:S,reject_message:C,error_code:_}=c;w=Wn({status:l,reject_code:S,reject_message:C,error_code:_,timestamp:BigInt(m),request_id:u})}else throw it.fromCode(new vt(`Unknown status: ${l}`));let b=K(Mc,w),v=f.get(y);if(!v)throw rt.fromCode(new ao);let T=Wo.fromDer(v).rawKey;if(!qt.verify(p.signature,b,T))throw Mt.fromCode(new co(y))}return c}),this.config=t,t.fetch)P(this,ne,t.fetch);else{let c=globalThis.fetch;if(typeof c!="function")throw J.fromCode(new no);P(this,ne,c.bind(globalThis))}P(this,Zr,t.fetchOptions),P(this,Rn,t.callOptions),P(this,wr,(s=t.shouldFetchRootKey)!=null?s:!1),P(this,On,(o=t.shouldSyncTime)!=null?o:!1),t.rootKey?this.rootKey=t.rootKey:x(this,wr)?this.rootKey=null:this.rootKey=Bt(jl);let r=Wl(t.host);this.host=new URL(r),this.host.hostname.endsWith(Kl)?this.host.hostname=Hl:this.host.hostname.endsWith(Zl)?this.host.hostname=Gl:this.host.hostname.endsWith(zl)&&(this.host.hostname=Yl),t.verifyQuerySignatures!==void 0&&P(this,Tr,t.verifyQuerySignatures),P(this,Yr,(i=t.subnetNodeKeyExpirableStore)!=null?i:ju({dbName:`icp-sdk-${this.host.host}`,storeName:"subnetNodeKeys",expirationTime:5*Ta})),P(this,Re,(a=t.retryTimes)!=null?a:3);let n=()=>new Qo({maxIterations:x(this,Re)});if(P(this,_r,t.backoffStrategy||n),t.credentials){let{name:c,password:f}=t.credentials;P(this,se,`${c}${f?`:${f}`:""}`)}if(P(this,Yt,Promise.resolve(t.identity||new hn)),t.ingressExpiryInMinutes&&t.ingressExpiryInMinutes>5)throw J.fromCode(new Se("The maximum ingress expiry time is 5 minutes.",t.ingressExpiryInMinutes));if(t.ingressExpiryInMinutes&&t.ingressExpiryInMinutes<=0)throw J.fromCode(new Se("Ingress expiry time must be greater than 0.",t.ingressExpiryInMinutes));P(this,_e,t.ingressExpiryInMinutes||5),this.addTransform("update",qi(ss)),t.useQueryNonces&&this.addTransform("query",qi(ss)),t.logToConsole&&this.log.subscribe(c=>{c.level==="error"?console.error(c.message):c.level==="warn"?console.warn(c.message):console.log(c.message)})}static createSync(t={}){return new this({...t})}static async create(t={}){var n;let r=Gr.createSync(t);return await Y(n=r,Z,Kr).call(n),r}static async from(t){var r;try{return"config"in t?await Gr.create(t.config):await Gr.create({fetch:t._fetch,fetchOptions:t._fetchOptions,callOptions:t._callOptions,host:t._host.toString(),identity:(r=t._identity)!=null?r:void 0})}catch(n){throw J.fromCode(new so)}}isLocal(){let t=this.host.hostname;return t==="127.0.0.1"||t.endsWith("127.0.0.1")}addTransform(t,r,n=r.priority||0){if(t==="update"){let s=x(this,Br).findIndex(o=>(o.priority||0)=0?s:x(this,Br).length,0,Object.assign(r,{priority:n}))}else if(t==="query"){let s=x(this,vr).findIndex(o=>(o.priority||0)=0?s:x(this,vr).length,0,Object.assign(r,{priority:n}))}}async getPrincipal(){if(!x(this,Yt))throw St.fromCode(new nr);return(await x(this,Yt)).getPrincipal()}async call(t,r,n){var y;let s=(y=r.callSync)!=null?y:!0,o=await(n!=null?n:x(this,Yt));if(!o)throw St.fromCode(new nr);let i=L.from(t),a=r.effectiveCanisterId?L.from(r.effectiveCanisterId):i;await Y(this,Z,Kr).call(this,a);let c=o.getPrincipal(),f=Ba(x(this,_e),x(this,Ee)),l={request_type:Io.Call,canister_id:i,method_name:r.methodName,arg:r.arg,sender:c,ingress_expiry:f},d=await this._transform({request:{body:null,method:"POST",headers:{"Content-Type":"application/cbor",...x(this,se)?{Authorization:`Basic ${btoa(x(this,se))}`}:{}}},endpoint:Ve.Call,body:l}),u;r!=null&&r.nonce?u=h(r.nonce):d.body.nonce?u=h(d.body.nonce):u=void 0,l.nonce=u;function h(w){return Object.assign(w,{__nonce__:void 0})}d=await o.transformRequest(d);let p=To(d.body),m=x(this,_r).call(this),g=ln(l);try{let v=s?()=>{let C=new URL(`/api/v4/canister/${a.toText()}/call`,this.host);return this.log.print(`fetching "${C.pathname}" with request:`,d),x(this,ne).call(this,C,{...x(this,Rn),...d.request,body:p})}:()=>{let C=new URL(`/api/v2/canister/${a.toText()}/call`,this.host);return this.log.print(`fetching "${C.pathname}" with request:`,d),x(this,ne).call(this,C,{...x(this,Rn),...d.request,body:p})},{responseBodyBytes:T,...I}=await Y(this,Z,An).call(this,{requestFn:v,backoff:m,tries:0}),S=T.byteLength>0?Lt(T):null;return{requestId:g,response:{...I,body:S},requestDetails:l}}catch(w){let b;if(w instanceof Kt){if(w.hasCode($n))return this.log.warn("v4 api not supported. Fall back to v2"),this.call(t,{...r,callSync:!1},n);if(w.hasCode(Se)&&!x(this,Je))return await this.syncTime(i),this.call(i,r,n);w.code.requestContext={requestId:g,senderPubKey:d.body.sender_pubkey,senderSignature:d.body.sender_sig,ingressExpiry:d.body.content.ingress_expiry},b=w}else b=it.fromCode(new vt(w));throw this.log.error(`Error while making call: ${b.message}`,b),b}}async update(t,r,n={}){let s=L.from(r.effectiveCanisterId),{requestId:o,response:i,requestDetails:a}=await this.call(t,r),{body:c,...f}=i;if(Da(c))return Y(this,Z,Qu).call(this,c,i,o,s,r.methodName,f,a,n);if(Pa(c)&&Y(this,Z,tf).call(this,c,o,s,r.methodName,f),i.status===Xu)return{...await ei(this,s,o,n),requestDetails:a,callResponse:i};let l=new vt(`Unexpected response from call: status ${i.status} with unrecognized body`);throw l.callContext={canisterId:s,methodName:r.methodName,httpDetails:f},it.fromCode(l)}async query(t,r,n){let s=x(this,_r).call(this),o=r.effectiveCanisterId?L.from(r.effectiveCanisterId):L.from(t);await Y(this,Z,Kr).call(this,o),this.log.print(`ecid ${o.toString()}`),this.log.print(`canisterId ${t.toString()}`);let i,a=await(n!=null?n:x(this,Yt));if(!a)throw St.fromCode(new nr);let c=L.from(t),f=a.getPrincipal(),l=Ba(x(this,_e),x(this,Ee)),d={request_type:Fr.Query,canister_id:c,method_name:r.methodName,arg:r.arg,sender:f,ingress_expiry:l},u=ln(d);i=await this._transform({request:{method:"POST",headers:{"Content-Type":"application/cbor",...x(this,se)?{Authorization:`Basic ${btoa(x(this,se))}`}:{}}},endpoint:Ve.Query,body:d}),i=await a.transformRequest(i);let h=To(i.body),p={canister:c.toText(),ecid:o,transformedRequest:i,body:h,requestId:u,backoff:s,tries:0},m=async()=>{let g=await Y(this,Z,Cs).call(this,p);return{requestDetails:d,...g}};try{if(!x(this,Tr))return await m();let[g,y]=await Promise.all([m(),this.fetchSubnetKeys(o)]);try{return x(this,Nn).call(this,g,y)}catch(w){this.log.warn("Query response verification failed. Retrying with fresh subnet keys."),await x(this,Yr).delete(o.toString());let b=await this.fetchSubnetKeys(o);return x(this,Nn).call(this,g,b)}}catch(g){let y;if(g instanceof Kt){if(g.hasCode(Se)&&!x(this,Je))return await this.syncTime(o),this.query(t,r,n);g.code.requestContext={requestId:u,senderPubKey:i.body.sender_pubkey,senderSignature:i.body.sender_sig,ingressExpiry:i.body.content.ingress_expiry},y=g}else y=it.fromCode(new vt(g));throw this.log.error(`Error while making query: ${y.message}`,y),y}}async createReadStateRequest(t,r){await Y(this,Z,Kr).call(this);let n=await(r!=null?r:x(this,Yt));if(!n)throw St.fromCode(new nr);let s=n.getPrincipal(),o=await this._transform({request:{method:"POST",headers:{"Content-Type":"application/cbor",...x(this,se)?{Authorization:`Basic ${btoa(x(this,se))}`}:{}}},endpoint:Ve.ReadState,body:{request_type:Fr.ReadState,paths:t.paths,sender:s,ingress_expiry:Ba(x(this,_e),x(this,Ee))}});return n.transformRequest(o)}async readState(t,r,n,s){await Y(this,Z,Cn).call(this);let o=L.from(t);function i(l){for(let d of l.paths){let[u,h]=d,p=new TextEncoder().encode("request_status");if(Dr(u,p))return h}}let a,c;if(s)a=s;else{c=i(r);let l=await x(this,Yt);if(!l)throw St.fromCode(new nr);a=await this.createReadStateRequest(r,l)}let f=new URL(`/api/v3/canister/${o.toString()}/read_state`,this.host);return await Y(this,Z,ri).call(this,f,{canisterId:o},a,c)}async readSubnetState(t,r){var i;await Y(this,Z,Cn).call(this);let n=L.from(t),s=new URL(`/api/v3/subnet/${n.toString()}/read_state`,this.host),o=await this.createReadStateRequest(r,(i=x(this,Yt))!=null?i:void 0);return await Y(this,Z,ri).call(this,s,{subnetId:n},o)}parseTimeFromResponse(t){let r;if(t.certificate){let n=Lt(t.certificate);if(n&&"tree"in n)r=n.tree;else throw rt.fromCode(new sr("Could not decode time from response"));let s=ze(["time"],r);if(s.status!==At.Found)throw rt.fromCode(new fe("Time was not found in the response or was not in its expected format.",s.status));if(!(s.value instanceof Uint8Array)&&!ArrayBuffer.isView(s))throw rt.fromCode(new Ks("Time was not in its expected format."));let o=hr(s.value);return this.log.print("Time from response:",o),this.log.print("Time from response in milliseconds:",o.getTime()),o.getTime()}return this.log.warn("No certificate found in response"),0}async syncTime(t){var r;P(this,Er,(r=x(this,Er))!=null?r:(async()=>{var s;await Y(this,Z,Cn).call(this);let n=Date.now();try{t||this.log.print("Syncing time with the IC. No canisterId provided, so falling back to ryjl3-tyaaa-aaaaa-aaaba-cai");let o=t!=null?t:L.from("ryjl3-tyaaa-aaaaa-aaaba-cai"),i=Gr.createSync({identity:new hn,host:this.host.toString(),fetch:x(this,ne),retryTimes:0,rootKey:(s=this.rootKey)!=null?s:void 0,shouldSyncTime:!1}),a=await Promise.all(Array(3).fill(null).map(async()=>{let f=(await Pu({canisterId:o,agent:i,paths:["time"],disableCertificateTimeVerification:!0})).get("time");if(f instanceof Date)return f.getTime()},[]));Y(this,Z,Sa).call(this,n,a)}catch(o){let i=o instanceof Kt?o:it.fromCode(new vt(o));throw this.log.error("Caught exception while attempting to sync time",i),i}})()),await x(this,Er).finally(()=>{P(this,Er,null)})}async syncTimeWithSubnet(t){var n;await Y(this,Z,Cn).call(this);let r=Date.now();try{let s=Gr.createSync({identity:new hn,host:this.host.toString(),fetch:x(this,ne),retryTimes:0,rootKey:(n=this.rootKey)!=null?n:void 0,shouldSyncTime:!1}),o=await Promise.all(Array(3).fill(null).map(async()=>{let a=(await Du({subnetId:t,agent:s,paths:["time"],disableCertificateTimeVerification:!0})).get("time");if(a instanceof Date)return a.getTime()},[]));Y(this,Z,Sa).call(this,r,o)}catch(s){let o=s instanceof Kt?s:it.fromCode(new vt(s));throw this.log.error("Caught exception while attempting to sync time with subnet",o),o}}async status(){let t=x(this,se)?{Authorization:`Basic ${btoa(x(this,se))}`}:{},r=new URL("/api/v2/status",this.host);this.log.print(`fetching "${r.pathname}"`);let n=x(this,_r).call(this),{responseBodyBytes:s}=await Y(this,Z,An).call(this,{backoff:n,requestFn:()=>x(this,ne).call(this,r,{headers:t,...x(this,Zr)}),tries:0});return Lt(s)}async fetchRootKey(){var t;return P(this,xr,(t=x(this,xr))!=null?t:(async()=>{let r=await this.status();return this.rootKey=r.root_key,this.rootKey})()),await x(this,xr).finally(()=>{P(this,xr,null)})}invalidateIdentity(){P(this,Yt,null)}replaceIdentity(t){P(this,Yt,Promise.resolve(t))}async fetchSubnetKeys(t){let r=L.from(t),n=await x(this,Yr).get(r.toText());if(n)return n;let s=x(this,zr).get(r.toText());if(s)return s;let o=Y(this,Z,rf).call(this,r).finally(()=>{x(this,zr).delete(r.toText())});return x(this,zr).set(r.toText(),o),o}async getSubnetIdFromCanister(t){let r=L.from(t);await Y(this,Z,Kr).call(this,r);let n=await this.readState(r,{paths:[[z("time")]]}),s=await re.create({certificate:n.certificate,rootKey:this.rootKey,principal:{canisterId:r},agent:this});return ha(s.cert,this.rootKey)}_transform(t){let r=Promise.resolve(t);if(t.endpoint===Ve.Call)for(let n of x(this,Br))r=r.then(s=>n(s).then(o=>o||s));else for(let n of x(this,vr))r=r.then(s=>n(s).then(o=>o||s));return r}getTimeDiffMsecs(){return x(this,Ee)}hasSyncedTime(){return x(this,Je)}};xr=new WeakMap,wr=new WeakMap,Ee=new WeakMap,Je=new WeakMap,Er=new WeakMap,On=new WeakMap,Yt=new WeakMap,ne=new WeakMap,Zr=new WeakMap,Rn=new WeakMap,se=new WeakMap,Re=new WeakMap,_r=new WeakMap,_e=new WeakMap,Yr=new WeakMap,Z=new WeakSet,Ju=function(){return x(this,_e)*Ta},vr=new WeakMap,Br=new WeakMap,zr=new WeakMap,Tr=new WeakMap,Qu=async function(t,r,n,s,o,i,a,c){if(this.rootKey==null)throw St.fromCode(new le);let f=t.certificate,l=await re.create({certificate:f,rootKey:this.rootKey,principal:{canisterId:s},blsVerify:c.blsVerify,agent:this}),d=[z("request_status"),n],u=Ct(l.lookup_path([...d,z("status")])),h=u?new TextDecoder().decode(u):void 0;switch(h){case Zt.Replied:return{reply:Ct(l.lookup_path([...d,"reply"])),certificate:l,rawCertificate:f,requestDetails:a,callResponse:r};case Zt.Rejected:{let p=jo(l,d,n);throw p.callContext={canisterId:s,methodName:o,httpDetails:i},ce.fromCode(p)}case void 0:return this.log.warn(`v4 sync response certificate does not contain request ID ${V(n)} status. Falling back to polling.`),{...await ei(this,s,n,c),requestDetails:a,callResponse:r};default:{let p=new uo(h,n,r,f);throw p.callContext={canisterId:s,methodName:o,httpDetails:i},it.fromCode(p)}}},tf=function(t,r,n,s,o){let{reject_code:i,reject_message:a,error_code:c}=t,f=new to(r,i,a,c);throw f.callContext={canisterId:n,methodName:s,httpDetails:o},ce.fromCode(f)},Cs=async function(t){var y,w;let{ecid:r,transformedRequest:n,body:s,requestId:o,backoff:i,tries:a}=t,c=a===0?0:i.next(),f=new URL(`/api/v3/canister/${r.toString()}/query`,this.host);if(this.log.print(`fetching "${f.pathname}" with tries:`,{tries:a,backoff:i,delay:c}),c===null)throw it.fromCode(new Rr(`Backoff strategy exhausted after ${a} attempts.`,o));c>0&&await new Promise(b=>setTimeout(b,c));let l;try{this.log.print(`fetching "${f.pathname}" with request:`,n),l=await x(this,ne).call(this,f,{...x(this,Zr),...n.request,body:s})}catch(b){if(ax(this,Z,Ju)){if(a0&&await new Promise(d=>setTimeout(d,o));let i,a=new Uint8Array;try{i=await r(),i.status===va&&(a=dn(await i.clone().arrayBuffer()))}catch(d){if(sx(this,ne).call(this,t,{...x(this,Zr),...n.request,body:To(n.body)}),backoff:o,tries:0});return Lt(i)}catch(i){let a;if(i instanceof Kt){if(i.hasCode(Se)&&!x(this,Je)){if("canisterId"in r)await this.syncTime(r.canisterId);else if("subnetId"in r)await this.syncTimeWithSubnet(r.subnetId);else throw Xt;return await Y(this,Z,ri).call(this,t,r,n,s)}i.code.requestContext={requestId:s!=null?s:ln(n),senderPubKey:n.body.sender_pubkey,senderSignature:n.body.sender_sig,ingressExpiry:n.body.content.ingress_expiry},a=i}else a=it.fromCode(new vt(i));throw this.log.error(`Error while making read state: ${a.message}`,a),a}},Sa=function(t,r){let n=r.reduce((s,o)=>typeof o=="number"&&o>s?o:s,0);n>0&&(P(this,Ee,n-t),P(this,Je,!0),this.log.notify({message:`Syncing time: offset of ${x(this,Ee)}`,level:"info"}))},Kr=async function(t){await Promise.all([Y(this,Z,Cn).call(this),Y(this,Z,ef).call(this,t)])},Cn=async function(){if(!this.rootKey)if(this.rootKey===null&&this.host.toString()!=="https://icp-api.io"&&x(this,wr))await this.fetchRootKey();else throw St.fromCode(new le(x(this,wr)))},ef=async function(t){x(this,On)&&!this.hasSyncedTime()&&await this.syncTime(t)},rf=async function(t){await Y(this,Z,Kr).call(this,t);let r=this.rootKey,n=await this.readState(t,{paths:[[z("subnet")]]}),s=await re.create({certificate:n.certificate,rootKey:r,principal:{canisterId:t},agent:this});if(!s.cert.delegation){let a=L.selfAuthenticating(r);if(!da({canisterId:t,subnetId:a,tree:s.cert.tree}))throw kt.fromCode(new Or(t,a))}let o=ha(s.cert,r),i=Bn(s.cert,o);return await x(this,Yr).set(t.toText(),i),i};var Xr=Gr;function Ba(e,t){let r=e*Ta;return kr.fromDeltaInMilliseconds(r,t)}function Wu(e){return e.includes("Invalid request expiry: ")}var zt=Symbol.for("ic-agent-metadata"),ni=class e{static agentOf(t){return t[zt].config.agent}static interfaceOf(t){return t[zt].service}static canisterIdOf(t){return L.from(t[zt].config.canisterId)}static createActorClass(t,r){let n=t({IDL:cr});class s extends e{constructor(i){if(!i.canisterId)throw J.fromCode(new jn(i.canisterId));let a=typeof i.canisterId=="string"?L.fromText(i.canisterId):i.canisterId;super({config:{...nf,...i,canisterId:a},service:n});for(let[c,u]of n._fields)r!=null&&r.httpDetails&&u.annotations.push(Ia),r!=null&&r.certificate&&u.annotations.push(sf),this[c]=Jl(this,c,u,i.blsVerify)}}return s}static createActor(t,r){if(!r.canisterId)throw J.fromCode(new jn(r.canisterId));return new(this.createActorClass(t))(r)}static createActorWithHttpDetails(t,r){return new(this.createActorClass(t,{httpDetails:!0}))(r)}static createActorWithExtendedDetails(t,r,n={httpDetails:!0,certificate:!0}){return new(this.createActorClass(t,n))(r)}constructor(t){this[zt]=Object.freeze(t)}};function Un(e,t){let r=cr.decode(e,t);switch(r.length){case 0:return;case 1:return r[0];default:return r}}var nf={pollingOptions:Yu,queryStrategy:"query"},Ia="http-details",sf="certificate";function Jl(e,t,r,n){let s,o=r.annotations.includes("query")||r.annotations.includes("composite_query"),i=e[zt].config.queryStrategy;o&&i==="query"?s=async(c,...u)=>{var m,g;c={...c,...(g=(m=e[zt].config).queryTransform)==null?void 0:g.call(m,t,u,{...e[zt].config,...c})};let d=c.agent||e[zt].config.agent||new Xr,l=L.from(c.canisterId||e[zt].config.canisterId),f=cr.encode(r.argTypes,u),h=await d.query(l,{methodName:t,arg:f,effectiveCanisterId:c.effectiveCanisterId}),p={...h.httpDetails,requestDetails:h.requestDetails};switch(h.status){case Qe.Rejected:{let y=new Qs(h.requestId,h.reject_code,h.reject_message,h.error_code,h.signatures);throw y.callContext={canisterId:l,methodName:t,httpDetails:p},ce.fromCode(y)}case Qe.Replied:return r.annotations.includes(Ia)?{httpDetails:p,result:Un(r.retTypes,h.reply.arg)}:Un(r.retTypes,h.reply.arg)}}:s=async(c,...u)=>{var C,_;c={...c,...(_=(C=e[zt].config).callTransform)==null?void 0:_.call(C,t,u,{...e[zt].config,...c})};let d=c.agent||e[zt].config.agent||Xr.createSync(),{canisterId:l,effectiveCanisterId:f,pollingOptions:h}={...nf,...e[zt].config,...c},p=L.from(l),m=f!==void 0?L.from(f):p,g=cr.encode(r.argTypes,u),y,w,b,v;try{({reply:y,certificate:w,callResponse:b,requestDetails:v}=await d.update(p,{methodName:t,arg:g,effectiveCanisterId:m,nonce:c.nonce},{...h,blsVerify:n}))}catch(A){if(A instanceof ce){let D=Object.create(Object.getPrototypeOf(A.code),Object.getOwnPropertyDescriptors(A.code));throw D.callContext={...A.code.callContext,canisterId:p,methodName:t},ce.fromCode(D)}throw A}let T=r.annotations.includes(Ia),I=r.annotations.includes(sf),S={...b,requestDetails:v};return T&&I?{httpDetails:S,certificate:w,result:Un(r.retTypes,y)}:I?{certificate:w,result:Un(r.retTypes,y)}:T?{httpDetails:S,result:Un(r.retTypes,y)}:Un(r.retTypes,y)};let a=(...c)=>s({},...c);return a.withOptions=c=>(...u)=>s(c,...u),a}function of(e){return e!==null&&typeof e=="object"}var Ns,Us,Wr=class Wr{constructor(t){F(this,Ns);F(this,Us);if(t.byteLength!==Wr.RAW_KEY_LENGTH)throw new Error("An Ed25519 public key must be exactly 32bytes long");P(this,Ns,t),P(this,Us,Wr.derEncode(t))}static from(t){if(typeof t=="string"){let r=Bt(t);return this.fromRaw(r)}if(of(t)){let r=t;if(of(r)&&Object.hasOwnProperty.call(r,"__derEncodedPublicKey__"))return this.fromDer(r);if(ArrayBuffer.isView(r)){let n=r;return this.fromRaw(sn(n.buffer))}if(r instanceof ArrayBuffer)return this.fromRaw(sn(r));if("rawKey"in r&&r.rawKey instanceof Uint8Array)return this.fromRaw(r.rawKey);if("derKey"in r)return this.fromDer(r.derKey);if("toDer"in r)return this.fromDer(r.toDer())}throw new Error("Cannot construct Ed25519PublicKey from the provided key.")}static fromRaw(t){return new Wr(t)}static fromDer(t){return new Wr(this.derDecode(t))}static derEncode(t){let r=zo(t,Sn);return r.__derEncodedPublicKey__=void 0,r}static derDecode(t){let r=Xo(t,Sn);if(r.length!==this.RAW_KEY_LENGTH)throw new Error("An Ed25519 public key must be exactly 32bytes long");return r}get rawKey(){return x(this,Ns)}get derKey(){return x(this,Us)}toDer(){return this.derKey}toRaw(){return this.rawKey}};Ns=new WeakMap,Us=new WeakMap,Wr.RAW_KEY_LENGTH=32;var Os=Wr,Jr,Qr,Pn=class Pn extends vo{constructor(r,n){super();F(this,Jr);F(this,Qr);P(this,Jr,Os.from(r)),P(this,Qr,n)}static generate(r){if(r&&r.length!==32)throw new Error("Ed25519 Seed needs to be 32 bytes long.");r||(r=qt.utils.randomPrivateKey()),rc(r,new Uint8Array(new Array(32).fill(0)))&&console.warn("Seed is all zeros. This is not a secure seed. Please provide a seed with sufficient entropy if this is a production environment.");let n=new Uint8Array(32);for(let o=0;o<32;o++)n[o]=r[o];let s=qt.getPublicKey(n);return Pn.fromKeyPair(s,n)}static fromParsedJson(r){let[n,s]=r;return new Pn(Os.fromDer(Bt(n)),Bt(s))}static fromJSON(r){let n=JSON.parse(r);if(Array.isArray(n)){if(typeof n[0]=="string"&&typeof n[1]=="string")return this.fromParsedJson([n[0],n[1]]);throw new Error("Deserialization error: JSON must have at least 2 items.")}throw new Error(`Deserialization error: Invalid JSON type for string: ${JSON.stringify(r)}`)}static fromKeyPair(r,n){return new Pn(Os.fromRaw(r),n)}static fromSecretKey(r){let n=qt.getPublicKey(r);return Pn.fromKeyPair(n,r)}toJSON(){return[V(x(this,Jr).toDer()),V(x(this,Qr))]}getKeyPair(){return{secretKey:x(this,Qr),publicKey:x(this,Jr)}}getPublicKey(){return x(this,Jr)}async sign(r){let n=qt.sign(r,x(this,Qr).slice(0,32));return Object.defineProperty(n,"__signature__",{enumerable:!1,value:void 0}),n}static verify(r,n,s){let[o,i,a]=[r,n,s].map(c=>(typeof c=="string"&&(c=Bt(c)),sn(c)));return qt.verify(o,i,a)}};Jr=new WeakMap,Qr=new WeakMap;var Rs=Pn;var si=class{constructor(t){this.keyIdentity=null;this.boundUserPrincipal=null;this.storage=t}getOrCreateIdentity(){if(this.keyIdentity)return this.keyIdentity;let t=this.storage.getBindingData();if(t)try{let n=JSON.parse(t);typeof n.identity=="string"&&(this.keyIdentity=Rs.fromJSON(n.identity)),typeof n.boundUser=="string"&&(this.boundUserPrincipal=n.boundUser)}catch(r){}return this.keyIdentity||(this.keyIdentity=Rs.generate(),this.persist()),this.keyIdentity}getPrincipal(){return this.keyIdentity?this.keyIdentity.getPrincipal():null}getPrincipalText(){let t=this.getPrincipal();return t?t.toText():null}isBound(){return this.boundUserPrincipal!==null}getBoundUser(){return this.boundUserPrincipal}persistBoundUser(t){this.boundUserPrincipal=t,this.persist()}clearBinding(){this.boundUserPrincipal=null,this.persist()}getIdentity(){return this.keyIdentity}persist(){let t=JSON.stringify({identity:this.keyIdentity?JSON.stringify(this.keyIdentity.toJSON()):null,boundUser:this.boundUserPrincipal});this.storage.setBindingData(t)}};var Ql=({IDL:e})=>e.Service({requestPluginBinding:e.Func([e.Principal,e.Principal],[],[]),getPendingPluginBindings:e.Func([],[e.Vec(e.Principal)],["query"]),approvePluginBinding:e.Func([e.Principal],[],[]),getPluginBindingStatus:e.Func([],[e.Bool],["query"]),getBoundPluginKeys:e.Func([],[e.Vec(e.Principal)],["query"]),revokePluginBinding:e.Func([e.Principal],[],[]),getMyPrincipal:e.Func([],[e.Principal],["query"]),storeNotesData:e.Func([e.Text],[],[]),getNotesData:e.Func([],[e.Opt(e.Text)],["query"]),initializeAccessControl:e.Func([],[],[]),isCallerApproved:e.Func([],[e.Bool],["query"]),requestApproval:e.Func([],[],[]),getCallerUserProfile:e.Func([],[e.Opt(e.Record({name:e.Text,socialUrl:e.Opt(e.Text)}))],["query"]),saveCallerUserProfile:e.Func([e.Record({name:e.Text,socialUrl:e.Opt(e.Text)})],[],[])});function th(e){return typeof e=="object"&&e!==null&&typeof e.toText=="function"}function af(e){return th(e)?e.toText():String(e)}function eh(){try{let e=window.document.cookie.split(";");for(let t of e){let[r,n]=t.trim().split("=");if(r==="IC_ROOT_KEY"&&n)return Uint8Array.from(atob(n))}}catch(e){}}var oi=class{constructor(t,r){this.agent=null;this.actor=null;this.canisterId=t,this.host=r}async createAuthenticatedActor(t){let r=eh();this.agent=await Xr.create({identity:t,host:this.host,rootKey:r}),!r&&this.host.includes("localhost")&&await this.agent.fetchRootKey(),this.actor=ni.createActor(Ql,{agent:this.agent,canisterId:L.fromText(this.canisterId)})}getActor(){return this.actor}updateConfig(t,r){this.canisterId=t,this.host=r,this.actor=null,this.agent=null}async requestPluginBinding(t,r){if(!this.actor)throw new Error("Actor not initialized");let n=L.fromText(t),s=L.fromText(r);await this.actor.requestPluginBinding(n,s)}async getPendingPluginBindings(){if(!this.actor)throw new Error("Actor not initialized");return(await this.actor.getPendingPluginBindings()).map(af)}async approvePluginBinding(t){if(!this.actor)throw new Error("Actor not initialized");await this.actor.approvePluginBinding(L.fromText(t))}async getPluginBindingStatus(){if(!this.actor)throw new Error("Actor not initialized");return await this.actor.getPluginBindingStatus()}async getBoundPluginKeys(){if(!this.actor)throw new Error("Actor not initialized");return(await this.actor.getBoundPluginKeys()).map(af)}async revokePluginBinding(t){if(!this.actor)throw new Error("Actor not initialized");await this.actor.revokePluginBinding(L.fromText(t))}async storeNotesData(t){if(!this.actor)throw new Error("Actor not initialized");await this.actor.storeNotesData(t)}async getNotesData(){if(!this.actor)throw new Error("Actor not initialized");let t=await this.actor.getNotesData();return t!=null?t:null}async isCallerApproved(){if(!this.actor)throw new Error("Actor not initialized");return await this.actor.isCallerApproved()}async initializeAccessControl(){if(!this.actor)throw new Error("Actor not initialized");await this.actor.initializeAccessControl()}async requestApproval(){if(!this.actor)throw new Error("Actor not initialized");await this.actor.requestApproval()}async saveUserProfile(t){if(!this.actor)throw new Error("Actor not initialized");await this.actor.saveCallerUserProfile({name:t,socialUrl:null})}async getUserProfile(){if(!this.actor)throw new Error("Actor not initialized");return await this.actor.getCallerUserProfile()}};var ai=require("obsidian"),ii=class{constructor(t,r){this.vault=t,this.agent=r}async uploadFolder(t,r){try{r==null||r({totalFiles:0,processedFiles:0,currentFile:"Scanning folder structure...",stage:"scanning"});let n=await this.scanFolder(t),s=this.countFiles(n);r==null||r({totalFiles:s,processedFiles:0,currentFile:"Uploading to Hyvmind...",stage:"uploading"});let o=JSON.stringify({folders:[n]});return await this.agent.storeNotesData(o),r==null||r({totalFiles:s,processedFiles:s,currentFile:"Done",stage:"uploading"}),{success:!0,message:`Imported ${s} files into Hyvmind notes`}}catch(n){return{success:!1,message:`Upload failed: ${n instanceof Error?n.message:String(n)}`}}}async scanFolder(t){let r=[];for(let n of t.children)if(n instanceof ai.TFolder){let s=await this.scanFolder(n);r.push(s)}else if(n instanceof ai.TFile&&n.extension==="md"){let s=await this.vault.cachedRead(n);r.push({name:n.basename,content:s})}return{name:t.name||"",folders:r.length>0?r:void 0}}countFiles(t){var n;let r=0;for(let s of(n=t.folders)!=null?n:[])s.content!==void 0&&r++,r+=this.countFiles(s);return r}};var ci=class{constructor(t){this.isConnected=!1;this.principal=null;this.element=t.createSpan({cls:"hyvmind-status-bar"}),this.updateDisplay()}setConnected(t){this.isConnected=!0,this.principal=t,this.updateDisplay()}setDisconnected(){this.isConnected=!1,this.principal=null,this.updateDisplay()}updateDisplay(){if(this.element.empty(),this.isConnected&&this.principal){let t=`${this.principal.slice(0,8)}...${this.principal.slice(-4)}`;this.element.setText(`\u{1F7E2} Hyvmind: ${t}`),this.element.title=`Connected as ${this.principal}`,this.element.addClass("hyvmind-status-connected"),this.element.removeClass("hyvmind-status-disconnected")}else this.element.setText("\u26AA hyvmind: not connected"),this.element.title="Click 'authenticate in settings' command to authenticate",this.element.addClass("hyvmind-status-disconnected"),this.element.removeClass("hyvmind-status-connected")}getElement(){return this.element}isCurrentlyConnected(){return this.isConnected}};var cf=require("obsidian"),ui=class extends cf.Modal{constructor(t,r){super(t),this.folderName=r}onOpen(){let{contentEl:t}=this;t.empty(),t.createEl("h2",{text:"Uploading to hyvmind"}),t.createEl("p",{text:`Folder: ${this.folderName}`}),this.statusEl=t.createEl("p",{text:"Initializing...",cls:"hyvmind-upload-status"}),this.statusEl.setAttribute("aria-live","polite"),this.statusEl.setAttribute("aria-atomic","true"),this.progressEl=t.createDiv({cls:"hyvmind-progress-bar"});let r=this.progressEl.createDiv({cls:"hyvmind-progress-fill"});r.setAttribute("role","progressbar"),r.setAttribute("aria-valuenow","0"),r.setAttribute("aria-valuemin","0"),r.setAttribute("aria-valuemax","100"),r.setAttribute("aria-label","Upload progress")}updateProgress(t){this.statusEl.setText(`${t.stage}: ${t.currentFile}`);let r=this.progressEl.querySelector(".hyvmind-progress-fill");if(r&&t.totalFiles>0){let n=t.processedFiles/t.totalFiles*100;r.style.setProperty("--progress-width",`${n}%`),r.setAttribute("aria-valuenow",Math.round(n).toString())}}onClose(){let{contentEl:t}=this;t.empty()}};var Aa=class{constructor(t){this.plugin=t}getBindingData(){return this.plugin.settings.bindingData||null}setBindingData(t){this.plugin.settings.bindingData=t,this.plugin.saveSettings()}clearBindingData(){this.plugin.settings.bindingData="",this.plugin.settings.principal=null,this.plugin.saveSettings()}},fi=class extends Ht.Plugin{async onload(){await this.loadSettings();let t=new Aa(this);this.binding=new si(t),this.agent=new oi(this.settings.canisterId,this.settings.host),this.uploader=new ii(this.app.vault,this.agent);let r=this.binding.getOrCreateIdentity();await this.agent.createAuthenticatedActor(r),this.binding.isBound()?this.settings.principal=this.binding.getBoundUser():this.checkBindingStatus(),this.addSettingTab(new Ps(this.app,this));let n=this.addStatusBarItem();this.statusBar=new ci(n),this.updateStatusBar(),this.addRibbonIcon("upload-cloud","Hyvmind uploader",()=>{this.showUploadMenu()}),this.addCommand({id:"upload-current-folder",name:"Upload current folder to hyvmind",checkCallback:s=>{let o=this.app.workspace.getActiveFile();if(o){if(!s){let i=o.parent;i&&this.uploadFolder(i)}return!0}return!1}}),this.registerEvent(this.app.workspace.on("file-menu",(s,o)=>{o instanceof Ht.TFolder&&s.addItem(i=>{i.setTitle("Upload to hyvmind").setIcon("upload-cloud").onClick(()=>{this.uploadFolder(o)})})}))}onunload(){}async loadSettings(){let t=await this.loadData();this.settings=Object.assign({},Na,t)}async saveSettings(){await this.saveData(this.settings)}async uploadFolder(t){if(!this.binding.isBound()){new Ht.Notice("Please bind the plugin to your hyvmind account in settings first");return}let r=new ui(this.app,t.name);r.open();try{let n=await this.uploader.uploadFolder(t,s=>{r.updateProgress(s)});r.close(),n.success?(new Ht.Notice(`\u2713 ${n.message}`),window.open("https://hyvmind.app","_blank")):new Ht.Notice(`\u2717 ${n.message}`)}catch(n){r.close(),console.error("Upload failed:",n),new Ht.Notice(`Upload failed: ${this.sanitizeForNotice(n instanceof Error?n.message:String(n))}`)}}updateStatusBar(){if(this.binding.isBound()){let t=this.binding.getBoundUser();this.statusBar.setConnected(t?t.slice(0,8):"bound")}else this.statusBar.setDisconnected()}async checkBindingStatus(){if(!this.binding.isBound())try{await this.agent.getPluginBindingStatus()&&this.settings.userPrincipal&&(this.binding.persistBoundUser(this.settings.userPrincipal),this.settings.principal=this.settings.userPrincipal,await this.saveSettings(),this.updateStatusBar(),new Ht.Notice("Plugin binding confirmed!"))}catch(t){}}sanitizeForNotice(t){return t.replace(/<[^>]*>/g,"").slice(0,200)}showUploadMenu(){let t=new Ht.Menu;this.binding.isBound()?t.addItem(r=>r.setTitle("Upload current folder").setIcon("upload-cloud").onClick(()=>{let n=this.app.workspace.getActiveFile();n&&n.parent?this.uploadFolder(n.parent):new Ht.Notice("No folder selected")})):t.addItem(r=>r.setTitle("Configure binding in settings").setIcon("settings").onClick(()=>{new Ht.Notice("Please bind the plugin in hyvmind settings first")})),t.showAtPosition({x:0,y:0})}}; + Retrying query.`),await Y(this,Z,Cs).call(this,{...t,tries:a+1});throw Fn.fromCode(new Vn(b))}let d=Mi(l.headers);if(l.status!==va){let b=await l.text();if(Wu(b))throw J.fromCode(new Se(b,x(this,_e)));if(ax(this,Z,Ju)){if(a0&&await new Promise(l=>setTimeout(l,o));let i,a=new Uint8Array;try{i=await r(),i.status===va&&(a=dn(await i.clone().arrayBuffer()))}catch(l){if(sx(this,ne).call(this,t,{...x(this,Zr),...n.request,body:To(n.body)}),backoff:o,tries:0});return Lt(i)}catch(i){let a;if(i instanceof Kt){if(i.hasCode(Se)&&!x(this,Je)){if("canisterId"in r)await this.syncTime(r.canisterId);else if("subnetId"in r)await this.syncTimeWithSubnet(r.subnetId);else throw Xt;return await Y(this,Z,ri).call(this,t,r,n,s)}i.code.requestContext={requestId:s!=null?s:ln(n),senderPubKey:n.body.sender_pubkey,senderSignature:n.body.sender_sig,ingressExpiry:n.body.content.ingress_expiry},a=i}else a=it.fromCode(new vt(i));throw this.log.error(`Error while making read state: ${a.message}`,a),a}},Sa=function(t,r){let n=r.reduce((s,o)=>typeof o=="number"&&o>s?o:s,0);n>0&&(P(this,Ee,n-t),P(this,Je,!0),this.log.notify({message:`Syncing time: offset of ${x(this,Ee)}`,level:"info"}))},Kr=async function(t){await Promise.all([Y(this,Z,Cn).call(this),Y(this,Z,ef).call(this,t)])},Cn=async function(){if(!this.rootKey)if(this.rootKey===null&&this.host.toString()!=="https://icp-api.io"&&x(this,wr))await this.fetchRootKey();else throw St.fromCode(new le(x(this,wr)))},ef=async function(t){x(this,On)&&!this.hasSyncedTime()&&await this.syncTime(t)},rf=async function(t){await Y(this,Z,Kr).call(this,t);let r=this.rootKey,n=await this.readState(t,{paths:[[z("subnet")]]}),s=await re.create({certificate:n.certificate,rootKey:r,principal:{canisterId:t},agent:this});if(!s.cert.delegation){let a=L.selfAuthenticating(r);if(!da({canisterId:t,subnetId:a,tree:s.cert.tree}))throw Mt.fromCode(new Or(t,a))}let o=ha(s.cert,r),i=Bn(s.cert,o);return await x(this,Yr).set(t.toText(),i),i};var Xr=Gr;function Ba(e,t){let r=e*Ta;return Mr.fromDeltaInMilliseconds(r,t)}function Wu(e){return e.includes("Invalid request expiry: ")}var zt=Symbol.for("ic-agent-metadata"),ni=class e{static agentOf(t){return t[zt].config.agent}static interfaceOf(t){return t[zt].service}static canisterIdOf(t){return L.from(t[zt].config.canisterId)}static createActorClass(t,r){let n=t({IDL:cr});class s extends e{constructor(i){if(!i.canisterId)throw J.fromCode(new jn(i.canisterId));let a=typeof i.canisterId=="string"?L.fromText(i.canisterId):i.canisterId;super({config:{...nf,...i,canisterId:a},service:n});for(let[c,f]of n._fields)r!=null&&r.httpDetails&&f.annotations.push(Ia),r!=null&&r.certificate&&f.annotations.push(sf),this[c]=Jl(this,c,f,i.blsVerify)}}return s}static createActor(t,r){if(!r.canisterId)throw J.fromCode(new jn(r.canisterId));return new(this.createActorClass(t))(r)}static createActorWithHttpDetails(t,r){return new(this.createActorClass(t,{httpDetails:!0}))(r)}static createActorWithExtendedDetails(t,r,n={httpDetails:!0,certificate:!0}){return new(this.createActorClass(t,n))(r)}constructor(t){this[zt]=Object.freeze(t)}};function Un(e,t){let r=cr.decode(e,t);switch(r.length){case 0:return;case 1:return r[0];default:return r}}var nf={pollingOptions:Yu,queryStrategy:"query"},Ia="http-details",sf="certificate";function Jl(e,t,r,n){let s,o=r.annotations.includes("query")||r.annotations.includes("composite_query"),i=e[zt].config.queryStrategy;o&&i==="query"?s=async(c,...f)=>{var m,g;c={...c,...(g=(m=e[zt].config).queryTransform)==null?void 0:g.call(m,t,f,{...e[zt].config,...c})};let l=c.agent||e[zt].config.agent||new Xr,d=L.from(c.canisterId||e[zt].config.canisterId),u=cr.encode(r.argTypes,f),h=await l.query(d,{methodName:t,arg:u,effectiveCanisterId:c.effectiveCanisterId}),p={...h.httpDetails,requestDetails:h.requestDetails};switch(h.status){case Qe.Rejected:{let y=new Qs(h.requestId,h.reject_code,h.reject_message,h.error_code,h.signatures);throw y.callContext={canisterId:d,methodName:t,httpDetails:p},ce.fromCode(y)}case Qe.Replied:return r.annotations.includes(Ia)?{httpDetails:p,result:Un(r.retTypes,h.reply.arg)}:Un(r.retTypes,h.reply.arg)}}:s=async(c,...f)=>{var C,_;c={...c,...(_=(C=e[zt].config).callTransform)==null?void 0:_.call(C,t,f,{...e[zt].config,...c})};let l=c.agent||e[zt].config.agent||Xr.createSync(),{canisterId:d,effectiveCanisterId:u,pollingOptions:h}={...nf,...e[zt].config,...c},p=L.from(d),m=u!==void 0?L.from(u):p,g=cr.encode(r.argTypes,f),y,w,b,v;try{({reply:y,certificate:w,callResponse:b,requestDetails:v}=await l.update(p,{methodName:t,arg:g,effectiveCanisterId:m,nonce:c.nonce},{...h,blsVerify:n}))}catch(A){if(A instanceof ce){let D=Object.create(Object.getPrototypeOf(A.code),Object.getOwnPropertyDescriptors(A.code));throw D.callContext={...A.code.callContext,canisterId:p,methodName:t},ce.fromCode(D)}throw A}let T=r.annotations.includes(Ia),I=r.annotations.includes(sf),S={...b,requestDetails:v};return T&&I?{httpDetails:S,certificate:w,result:Un(r.retTypes,y)}:I?{certificate:w,result:Un(r.retTypes,y)}:T?{httpDetails:S,result:Un(r.retTypes,y)}:Un(r.retTypes,y)};let a=(...c)=>s({},...c);return a.withOptions=c=>(...f)=>s(c,...f),a}function of(e){return e!==null&&typeof e=="object"}var Ns,Us,Wr=class Wr{constructor(t){k(this,Ns);k(this,Us);if(t.byteLength!==Wr.RAW_KEY_LENGTH)throw new Error("An Ed25519 public key must be exactly 32bytes long");P(this,Ns,t),P(this,Us,Wr.derEncode(t))}static from(t){if(typeof t=="string"){let r=Bt(t);return this.fromRaw(r)}if(of(t)){let r=t;if(of(r)&&Object.hasOwnProperty.call(r,"__derEncodedPublicKey__"))return this.fromDer(r);if(ArrayBuffer.isView(r)){let n=r;return this.fromRaw(sn(n.buffer))}if(r instanceof ArrayBuffer)return this.fromRaw(sn(r));if("rawKey"in r&&r.rawKey instanceof Uint8Array)return this.fromRaw(r.rawKey);if("derKey"in r)return this.fromDer(r.derKey);if("toDer"in r)return this.fromDer(r.toDer())}throw new Error("Cannot construct Ed25519PublicKey from the provided key.")}static fromRaw(t){return new Wr(t)}static fromDer(t){return new Wr(this.derDecode(t))}static derEncode(t){let r=zo(t,Sn);return r.__derEncodedPublicKey__=void 0,r}static derDecode(t){let r=Xo(t,Sn);if(r.length!==this.RAW_KEY_LENGTH)throw new Error("An Ed25519 public key must be exactly 32bytes long");return r}get rawKey(){return x(this,Ns)}get derKey(){return x(this,Us)}toDer(){return this.derKey}toRaw(){return this.rawKey}};Ns=new WeakMap,Us=new WeakMap,Wr.RAW_KEY_LENGTH=32;var Os=Wr,Jr,Qr,Pn=class Pn extends vo{constructor(r,n){super();k(this,Jr);k(this,Qr);P(this,Jr,Os.from(r)),P(this,Qr,n)}static generate(r){if(r&&r.length!==32)throw new Error("Ed25519 Seed needs to be 32 bytes long.");r||(r=qt.utils.randomPrivateKey()),rc(r,new Uint8Array(new Array(32).fill(0)))&&console.warn("Seed is all zeros. This is not a secure seed. Please provide a seed with sufficient entropy if this is a production environment.");let n=new Uint8Array(32);for(let o=0;o<32;o++)n[o]=r[o];let s=qt.getPublicKey(n);return Pn.fromKeyPair(s,n)}static fromParsedJson(r){let[n,s]=r;return new Pn(Os.fromDer(Bt(n)),Bt(s))}static fromJSON(r){let n=JSON.parse(r);if(Array.isArray(n)){if(typeof n[0]=="string"&&typeof n[1]=="string")return this.fromParsedJson([n[0],n[1]]);throw new Error("Deserialization error: JSON must have at least 2 items.")}throw new Error(`Deserialization error: Invalid JSON type for string: ${JSON.stringify(r)}`)}static fromKeyPair(r,n){return new Pn(Os.fromRaw(r),n)}static fromSecretKey(r){let n=qt.getPublicKey(r);return Pn.fromKeyPair(n,r)}toJSON(){return[V(x(this,Jr).toDer()),V(x(this,Qr))]}getKeyPair(){return{secretKey:x(this,Qr),publicKey:x(this,Jr)}}getPublicKey(){return x(this,Jr)}async sign(r){let n=qt.sign(r,x(this,Qr).slice(0,32));return Object.defineProperty(n,"__signature__",{enumerable:!1,value:void 0}),n}static verify(r,n,s){let[o,i,a]=[r,n,s].map(c=>(typeof c=="string"&&(c=Bt(c)),sn(c)));return qt.verify(o,i,a)}};Jr=new WeakMap,Qr=new WeakMap;var Rs=Pn;var si=class{constructor(t){this.keyIdentity=null;this.boundUserPrincipal=null;this.storage=t}getOrCreateIdentity(){if(this.keyIdentity)return this.keyIdentity;let t=this.storage.getBindingData();if(t)try{let n=JSON.parse(t);typeof n.identity=="string"&&(this.keyIdentity=Rs.fromJSON(n.identity)),typeof n.boundUser=="string"&&(this.boundUserPrincipal=n.boundUser)}catch(r){}return this.keyIdentity||(this.keyIdentity=Rs.generate(),this.persist()),this.keyIdentity}getPrincipal(){return this.keyIdentity?this.keyIdentity.getPrincipal():null}getPrincipalText(){let t=this.getPrincipal();return t?t.toText():null}isBound(){return this.boundUserPrincipal!==null}getBoundUser(){return this.boundUserPrincipal}persistBoundUser(t){this.boundUserPrincipal=t,this.persist()}clearBinding(){this.boundUserPrincipal=null,this.persist()}getIdentity(){return this.keyIdentity}persist(){let t=JSON.stringify({identity:this.keyIdentity?JSON.stringify(this.keyIdentity.toJSON()):null,boundUser:this.boundUserPrincipal});this.storage.setBindingData(t)}};var Ql=({IDL:e})=>e.Service({requestPluginBinding:e.Func([e.Principal,e.Principal],[],[]),getPendingPluginBindings:e.Func([],[e.Vec(e.Principal)],["query"]),approvePluginBinding:e.Func([e.Principal],[],[]),getPluginBindingStatus:e.Func([],[e.Bool],["query"]),getBoundPluginKeys:e.Func([],[e.Vec(e.Principal)],["query"]),revokePluginBinding:e.Func([e.Principal],[],[]),getMyPrincipal:e.Func([],[e.Principal],["query"]),storeNotesData:e.Func([e.Text],[],[]),getNotesData:e.Func([],[e.Opt(e.Text)],["query"]),initializeAccessControl:e.Func([],[],[]),isCallerApproved:e.Func([],[e.Bool],["query"]),requestApproval:e.Func([],[],[]),getCallerUserProfile:e.Func([],[e.Opt(e.Record({name:e.Text,socialUrl:e.Opt(e.Text)}))],["query"]),saveCallerUserProfile:e.Func([e.Record({name:e.Text,socialUrl:e.Opt(e.Text)})],[],[])});function th(e){return typeof e=="object"&&e!==null&&typeof e.toText=="function"}function af(e){return th(e)?e.toText():String(e)}function eh(){try{let e=window.document.cookie.split(";");for(let t of e){let[r,n]=t.trim().split("=");if(r==="IC_ROOT_KEY"&&n)return Uint8Array.from(atob(n))}}catch(e){}}var oi=class{constructor(t,r){this.agent=null;this.actor=null;this.canisterId=t,this.host=r}async createAuthenticatedActor(t){let r=eh();this.agent=await Xr.create({identity:t,host:this.host,rootKey:r}),!r&&this.host.includes("localhost")&&await this.agent.fetchRootKey(),this.actor=ni.createActor(Ql,{agent:this.agent,canisterId:L.fromText(this.canisterId)})}getActor(){return this.actor}updateConfig(t,r){this.canisterId=t,this.host=r,this.actor=null,this.agent=null}async requestPluginBinding(t,r){if(!this.actor)throw new Error("Actor not initialized");let n=L.fromText(t),s=L.fromText(r);await this.actor.requestPluginBinding(n,s)}async getPendingPluginBindings(){if(!this.actor)throw new Error("Actor not initialized");return(await this.actor.getPendingPluginBindings()).map(af)}async approvePluginBinding(t){if(!this.actor)throw new Error("Actor not initialized");await this.actor.approvePluginBinding(L.fromText(t))}async getPluginBindingStatus(){if(!this.actor)throw new Error("Actor not initialized");return await this.actor.getPluginBindingStatus()}async getBoundPluginKeys(){if(!this.actor)throw new Error("Actor not initialized");return(await this.actor.getBoundPluginKeys()).map(af)}async revokePluginBinding(t){if(!this.actor)throw new Error("Actor not initialized");await this.actor.revokePluginBinding(L.fromText(t))}async storeNotesData(t){if(!this.actor)throw new Error("Actor not initialized");await this.actor.storeNotesData(t)}async getNotesData(){if(!this.actor)throw new Error("Actor not initialized");let t=await this.actor.getNotesData();return t!=null?t:null}async isCallerApproved(){if(!this.actor)throw new Error("Actor not initialized");return await this.actor.isCallerApproved()}async initializeAccessControl(){if(!this.actor)throw new Error("Actor not initialized");await this.actor.initializeAccessControl()}async requestApproval(){if(!this.actor)throw new Error("Actor not initialized");await this.actor.requestApproval()}async saveUserProfile(t){if(!this.actor)throw new Error("Actor not initialized");await this.actor.saveCallerUserProfile({name:t,socialUrl:null})}async getUserProfile(){if(!this.actor)throw new Error("Actor not initialized");return await this.actor.getCallerUserProfile()}};var ai=require("obsidian"),ii=class{constructor(t,r){this.vault=t,this.agent=r}async uploadFolder(t,r){try{r==null||r({totalFiles:0,processedFiles:0,currentFile:"Scanning folder structure...",stage:"scanning"});let n=await this.scanFolder(t),s=this.countFiles(n);r==null||r({totalFiles:s,processedFiles:0,currentFile:"Uploading to Hyvmind...",stage:"uploading"});let o=JSON.stringify({folders:[n]});return await this.agent.storeNotesData(o),r==null||r({totalFiles:s,processedFiles:s,currentFile:"Done",stage:"uploading"}),{success:!0,message:`Imported ${s} files into Hyvmind notes`}}catch(n){return{success:!1,message:`Upload failed: ${n instanceof Error?n.message:String(n)}`}}}async scanFolder(t){let r=[];for(let n of t.children)if(n instanceof ai.TFolder){let s=await this.scanFolder(n);r.push(s)}else if(n instanceof ai.TFile&&n.extension==="md"){let s=await this.vault.cachedRead(n);r.push({name:n.basename,content:s})}return{name:t.name||"",folders:r.length>0?r:void 0}}countFiles(t){var n;let r=0;for(let s of(n=t.folders)!=null?n:[])s.content!==void 0&&r++,r+=this.countFiles(s);return r}};var ci=class{constructor(t){this.isConnected=!1;this.principal=null;this.element=t.createSpan({cls:"hyvmind-status-bar"}),this.updateDisplay()}setConnected(t){this.isConnected=!0,this.principal=t,this.updateDisplay()}setDisconnected(){this.isConnected=!1,this.principal=null,this.updateDisplay()}updateDisplay(){if(this.element.empty(),this.isConnected&&this.principal){let t=`${this.principal.slice(0,8)}...${this.principal.slice(-4)}`;this.element.setText(`\u{1F7E2} Hyvmind: ${t}`),this.element.title=`Connected as ${this.principal}`,this.element.addClass("hyvmind-status-connected"),this.element.removeClass("hyvmind-status-disconnected")}else this.element.setText("\u26AA hyvmind: not connected"),this.element.title="Click 'authenticate in settings' command to authenticate",this.element.addClass("hyvmind-status-disconnected"),this.element.removeClass("hyvmind-status-connected")}getElement(){return this.element}isCurrentlyConnected(){return this.isConnected}};var cf=require("obsidian"),ui=class extends cf.Modal{constructor(t,r){super(t),this.folderName=r}onOpen(){let{contentEl:t}=this;t.empty(),t.createEl("h2",{text:"Uploading to hyvmind"}),t.createEl("p",{text:`Folder: ${this.folderName}`}),this.statusEl=t.createEl("p",{text:"Initializing...",cls:"hyvmind-upload-status"}),this.statusEl.setAttribute("aria-live","polite"),this.statusEl.setAttribute("aria-atomic","true"),this.progressEl=t.createDiv({cls:"hyvmind-progress-bar"});let r=this.progressEl.createDiv({cls:"hyvmind-progress-fill"});r.setAttribute("role","progressbar"),r.setAttribute("aria-valuenow","0"),r.setAttribute("aria-valuemin","0"),r.setAttribute("aria-valuemax","100"),r.setAttribute("aria-label","Upload progress")}updateProgress(t){this.statusEl.setText(`${t.stage}: ${t.currentFile}`);let r=this.progressEl.querySelector(".hyvmind-progress-fill");if(r&&t.totalFiles>0){let n=t.processedFiles/t.totalFiles*100;r.style.setProperty("--progress-width",`${n}%`),r.setAttribute("aria-valuenow",Math.round(n).toString())}}onClose(){let{contentEl:t}=this;t.empty()}};var Aa=class{constructor(t){this.plugin=t}getBindingData(){return this.plugin.settings.bindingData||null}setBindingData(t){this.plugin.settings.bindingData=t,this.plugin.saveSettings()}clearBindingData(){this.plugin.settings.bindingData="",this.plugin.settings.principal=null,this.plugin.saveSettings()}},fi=class extends Ht.Plugin{async onload(){await this.loadSettings();let t=new Aa(this);this.binding=new si(t),this.agent=new oi(this.settings.canisterId,this.settings.host),this.uploader=new ii(this.app.vault,this.agent);let r=this.binding.getOrCreateIdentity();await this.agent.createAuthenticatedActor(r),this.binding.isBound()?this.settings.principal=this.binding.getBoundUser():this.checkBindingStatus(),this.addSettingTab(new Ps(this.app,this));let n=this.addStatusBarItem();this.statusBar=new ci(n),this.updateStatusBar(),this.addRibbonIcon("upload-cloud","Hyvmind uploader",()=>{this.showUploadMenu()}),this.addCommand({id:"upload-current-folder",name:"Upload current folder to hyvmind",checkCallback:s=>{let o=this.app.workspace.getActiveFile();if(o){if(!s){let i=o.parent;i&&this.uploadFolder(i)}return!0}return!1}}),this.registerEvent(this.app.workspace.on("file-menu",(s,o)=>{o instanceof Ht.TFolder&&s.addItem(i=>{i.setTitle("Upload to hyvmind").setIcon("upload-cloud").onClick(()=>{this.uploadFolder(o)})})}))}onunload(){}async loadSettings(){let t=await this.loadData();this.settings=Object.assign({},Na,t)}async saveSettings(){await this.saveData(this.settings)}async uploadFolder(t){if(!this.binding.isBound()){new Ht.Notice("Please bind the plugin to your hyvmind account in settings first");return}let r=new ui(this.app,t.name);r.open();try{let n=await this.uploader.uploadFolder(t,s=>{r.updateProgress(s)});r.close(),n.success?(new Ht.Notice(`\u2713 ${n.message}`),window.open("https://hyvmind.app","_blank")):new Ht.Notice(`\u2717 ${n.message}`)}catch(n){r.close(),console.error("Upload failed:",n),new Ht.Notice(`Upload failed: ${this.sanitizeForNotice(n instanceof Error?n.message:String(n))}`)}}updateStatusBar(){if(this.binding.isBound()){let t=this.binding.getBoundUser();this.statusBar.setConnected(t?t.slice(0,8):"bound")}else this.statusBar.setDisconnected()}async checkBindingStatus(){if(!this.binding.isBound())try{await this.agent.getPluginBindingStatus()&&this.settings.userPrincipal&&(this.binding.persistBoundUser(this.settings.userPrincipal),this.settings.principal=this.settings.userPrincipal,await this.saveSettings(),this.updateStatusBar(),new Ht.Notice("Plugin binding confirmed!"))}catch(t){}}sanitizeForNotice(t){return t.replace(/<[^>]*>/g,"").slice(0,200)}showUploadMenu(){let t=new Ht.Menu;this.binding.isBound()?t.addItem(r=>r.setTitle("Upload current folder").setIcon("upload-cloud").onClick(()=>{let n=this.app.workspace.getActiveFile();n&&n.parent?this.uploadFolder(n.parent):new Ht.Notice("No folder selected")})):t.addItem(r=>r.setTitle("Configure binding in settings").setIcon("settings").onClick(()=>{new Ht.Notice("Please bind the plugin in hyvmind settings first")})),t.showAtPosition({x:0,y:0})}}; /*! Bundled license information: @noble/hashes/esm/utils.js: diff --git a/src/settings.ts b/src/settings.ts index 37e49a2..3f8f976 100644 --- a/src/settings.ts +++ b/src/settings.ts @@ -22,7 +22,6 @@ export const DEFAULT_SETTINGS: HyvmindSettings = { export class HyvmindSettingTab extends PluginSettingTab { plugin: HyvmindPlugin; private bindingStatusEl!: HTMLElement; - private staleBindingsEl!: HTMLElement; constructor(app: App, plugin: HyvmindPlugin) { super(app, plugin); @@ -93,7 +92,7 @@ export class HyvmindSettingTab extends PluginSettingTab { const btnContainer = containerEl.createDiv({ cls: "hyvmind-auth-buttons" }); const bindBtn = new ButtonComponent(btnContainer); - bindBtn.setButtonText("Request binding"); + bindBtn.setButtonText("Request"); bindBtn.setCta(); bindBtn.onClick(() => { void this.handleRequestBinding(); @@ -109,7 +108,7 @@ export class HyvmindSettingTab extends PluginSettingTab { this.updateBindingStatus(); const clearBtn = new ButtonComponent(btnContainer); - clearBtn.setButtonText("Clear local binding"); + clearBtn.setButtonText("Clear"); clearBtn.setWarning(); clearBtn.onClick(() => { this.plugin.binding.clearBinding(); @@ -119,14 +118,6 @@ export class HyvmindSettingTab extends PluginSettingTab { new Notice("Local binding cleared (identity preserved)"); }); - const staleBtn = new ButtonComponent(btnContainer); - staleBtn.setButtonText("Check stale bindings"); - staleBtn.onClick(() => { - void this.handleCheckStaleBindings(); - }); - - this.addStaleBindingsUI(containerEl); - this.addPrivacySection(containerEl); new Setting(containerEl) @@ -143,7 +134,7 @@ export class HyvmindSettingTab extends PluginSettingTab { ); const manualBindBtn = new ButtonComponent(btnContainer); - manualBindBtn.setButtonText("Confirm binding manually"); + manualBindBtn.setButtonText("Confirm"); manualBindBtn.onClick(() => { const principal = this.plugin.settings.userPrincipal; if (!principal) { @@ -157,25 +148,6 @@ export class HyvmindSettingTab extends PluginSettingTab { new Notice("Binding confirmed manually"); }); - new Setting(containerEl).setHeading().setName("Environment presets"); - - const presetContainer = containerEl.createDiv({ cls: "hyvmind-preset-container" }); - - new ButtonComponent(presetContainer) - .setButtonText("Use mainnet") - .onClick(() => { - this.plugin.settings.host = "https://icp-api.io"; - void this.plugin.saveSettings(); - this.display(); - }); - - new ButtonComponent(presetContainer) - .setButtonText("Use local") - .onClick(() => { - this.plugin.settings.host = "http://localhost:8000"; - void this.plugin.saveSettings(); - this.display(); - }); } private async handleRequestBinding(): Promise { @@ -208,72 +180,11 @@ export class HyvmindSettingTab extends PluginSettingTab { containerEl.createEl("hr"); new Setting(containerEl).setName("Privacy notice").setHeading(); containerEl.createEl("p", { - text: "Folder contents are sent to the hyvmind backend", + text: "Folder contents are sent to Hyvmind's frontend canister.", cls: "hyvmind-privacy-notice", }); } - private addStaleBindingsUI(containerEl: HTMLElement): void { - new Setting(containerEl) - .setName("Stale plugin keys") - .setDesc("Old plugin keys still bound to your account on the backend"); - - this.staleBindingsEl = containerEl.createDiv({ - cls: "hyvmind-token-status", - }); - this.staleBindingsEl.setText("Click 'check stale bindings' above"); - } - - private async handleCheckStaleBindings(): Promise { - try { - const boundKeys = await this.plugin.agent.getBoundPluginKeys(); - const currentKey = this.plugin.binding.getPrincipalText(); - const staleKeys = currentKey - ? boundKeys.filter((k) => k !== currentKey) - : boundKeys; - - this.staleBindingsEl.empty(); - - if (staleKeys.length === 0) { - const span = this.staleBindingsEl.createSpan({ cls: "hyvmind-status hyvmind-status-valid" }); - span.setText("No stale bindings found"); - return; - } - - for (const key of staleKeys) { - const row = this.staleBindingsEl.createDiv({ cls: "hyvmind-stale-key-row" }); - row.createSpan({ - text: key.slice(0, 16) + "...", - cls: "hyvmind-stale-key-text", - attr: { title: key }, - }); - - const revokeBtn = new ButtonComponent(row); - revokeBtn.setButtonText("Revoke"); - revokeBtn.setWarning(); - revokeBtn.onClick(() => { - void this.handleRevokeBinding(key, row); - }); - } - } catch (err) { - new Notice( - `Failed to check stale bindings: ${err instanceof Error ? err.message : String(err)}` - ); - } - } - - private async handleRevokeBinding(pluginKey: string, rowEl: HTMLElement): Promise { - try { - await this.plugin.agent.revokePluginBinding(pluginKey); - rowEl.remove(); - new Notice("Stale binding revoked"); - } catch (err) { - new Notice( - `Failed to revoke binding: ${err instanceof Error ? err.message : String(err)}` - ); - } - } - private updateBindingStatus(): void { this.bindingStatusEl.empty(); const span = this.bindingStatusEl.createSpan({ cls: "hyvmind-status" }); diff --git a/styles.css b/styles.css index 4cc6d7a..8ff0af7 100644 --- a/styles.css +++ b/styles.css @@ -48,10 +48,6 @@ Settings Tab Styles ======================================== */ -.hyvmind-preset-container { - margin-top: 1rem; -} - /* High contrast mode support */ @media (prefers-contrast: high) { .hyvmind-progress-bar {