shalomail 0.2.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/index.mjs +27 -27
- package/dist/shalom.mjs +52 -51
- package/package.json +1 -1
package/dist/shalom.mjs
CHANGED
|
@@ -1,69 +1,70 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{spawn as Zo}from"node:child_process";import{mkdirSync as Ua,readFileSync as ar,writeFileSync as Pa}from"node:fs";import{hostname as $a}from"node:os";import{basename as bn,join as Ma}from"node:path";import{createInterface as ja}from"node:readline";import{parseArgs as X}from"node:util";var At=BigInt(4294967295),Tn=BigInt(32);function si(t,e=!1){return e?{h:Number(t&At),l:Number(t>>Tn&At)}:{h:Number(t>>Tn&At)|0,l:Number(t&At)|0}}function kn(t,e=!1){let r=t.length,n=new Uint32Array(r),s=new Uint32Array(r);for(let o=0;o<r;o++){let{h:i,l:u}=si(t[o],e);[n[o],s[o]]=[i,u]}return[n,s]}var oi=t=>t/2**32|0,ii=t=>t>>>0;function Fn(t,e,r,n){let s=oi(r),o=ii(r);t.setUint32(e,n?o:s,n),t.setUint32(e+4,n?s:o,n)}var pr=(t,e,r)=>t>>>r,hr=(t,e,r)=>t<<32-r|e>>>r,Te=(t,e,r)=>t>>>r|e<<32-r,ke=(t,e,r)=>t<<32-r|e>>>r,Je=(t,e,r)=>t<<64-r|e>>>r-32,Qe=(t,e,r)=>t>>>r-32|e<<64-r;function se(t,e,r,n){let s=(e>>>0)+(n>>>0);return{h:t+r+(s/2**32|0)|0,l:s|0}}var On=(t,e,r)=>(t>>>0)+(e>>>0)+(r>>>0),Rn=(t,e,r,n)=>e+r+n+(t/2**32|0)|0,Ln=(t,e,r,n)=>(t>>>0)+(e>>>0)+(r>>>0)+(n>>>0),_n=(t,e,r,n,s)=>e+r+n+s+(t/2**32|0)|0,Nn=(t,e,r,n,s)=>(t>>>0)+(e>>>0)+(r>>>0)+(n>>>0)+(s>>>0),qn=(t,e,r,n,s,o)=>e+r+n+s+o+(t/2**32|0)|0;function wt(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in t&&t.BYTES_PER_ELEMENT===1}var mr=t=>t?`"${t}" `:"";function et(t,e=""){if(typeof t!="number")throw new TypeError(mr(e)+"expected number, got "+typeof t);if(!Number.isSafeInteger(t)||t<0)throw new RangeError(mr(e)+"expected integer >= 0, got "+t);return t}function oe(t,e,r=""){if(wt(t)&&(e===void 0||t.length===e))return t;e!==void 0&&et(e,"length");let n=wt(t),s=e!==void 0?` of length ${e}`:"",o=n?`length=${t.length}`:`type=${typeof t}`,i=mr(r)+"expected Uint8Array"+s+", got "+o;throw n?new RangeError(i):new TypeError(i)}var ai=(t,e)=>{if(t===null||typeof t!="object"||Array.isArray(t))throw new TypeError((e==="object"?"":`"${e}" `)+"expected object, got type="+typeof t)},In=(t,e)=>{ai(t,e);let r=Object.getPrototypeOf(t);if(r!==Object.prototype&&r!==null)throw new TypeError(`"${e}" expected plain object`);if(Object.hasOwn(t,"__proto__"))throw new TypeError(`"${e}.__proto__" is not allowed`)};function gr(t,e=!0){if(t.destroyed)throw new Error("hash was destroyed");if(e&&t.finished)throw new Error("digest() was already called")}function Pn(t,e){oe(t,void 0,"output");let r=e.outputLen;if(!(t.length>=r))throw new RangeError('"output" expected length >= '+r)}function yr(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}function Dt(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}var $n=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",ci=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function Et(t){if(oe(t),$n)return t.toHex();let e="";for(let r=0;r<t.length;r++)e+=ci[t[r]];return e}function Un(t){return t>=48&&t<=57?t-48:t>=65&&t<=70?t-55:t>=97&&t<=102?t-87:void 0}function Bt(t){if(typeof t!="string")throw new TypeError("hex string expected, got "+typeof t);if($n)try{return Uint8Array.fromHex(t)}catch(s){throw s instanceof SyntaxError?new RangeError(s.message):s}let e=t.length,r=e/2;if(e%2)throw new RangeError("hex string expected, got unpadded hex of length "+e);let n=new Uint8Array(r);for(let s=0,o=0;s<r;s++,o+=2){let i=Un(t.charCodeAt(o)),u=Un(t.charCodeAt(o+1));if(i===void 0||u===void 0){let a=t[o]+t[o+1];throw new RangeError('hex string expected, got non-hex character "'+a+'" at index '+o)}n[s]=i*16+u}return n}function xr(...t){let e=0;for(let n=0;n<t.length;n++){let s=t[n];oe(s),e+=s.length}let r=new Uint8Array(e);for(let n=0,s=0;n<t.length;n++){let o=t[n];r.set(o,s),s+=o.length}return r}function li(t,e,r="opts"){return In(t,"defaults"),e!==void 0&&In(e,r),Object.assign(Object.create(null),t,e)}function Mn(t,e={}){if(typeof t!="function")throw new TypeError('"hashCons" expected function, got type='+typeof t);e=li({},e,"info");let r=(s,o)=>t(o).update(s).digest(),n=t(void 0);return r.outputLen=n.outputLen,r.blockLen=n.blockLen,r.canXOF=n.canXOF,r.create=s=>t(s),Object.assign(r,e),Object.freeze(r)}function jn(t=32){et(t,"bytesLength");let e=typeof globalThis=="object"?globalThis.crypto:null;if(typeof e?.getRandomValues!="function")throw new Error("crypto.getRandomValues must be defined");if(t>65536)throw new RangeError(`"bytesLength" expected <= 65536, got ${t}`);return e.getRandomValues(new Uint8Array(t))}var Hn=t=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,t])});var Ct=class{blockLen;outputLen;canXOF=!1;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(e,r,n,s){this.blockLen=e,this.outputLen=r,this.padOffset=n,this.isLE=s,this.buffer=new Uint8Array(e),this.view=Dt(this.buffer)}update(e){gr(this),oe(e);let{view:r,buffer:n,blockLen:s}=this,o=e.length,i=!1;for(let u=0;u<o;){let a=Math.min(s-this.pos,o-u);if(a===s){let l=Dt(e);for(;s<=o-u;u+=s)this.process(l,u);i=!0;continue}n.set(u===0&&a===o?e:e.subarray(u,u+a),this.pos),this.pos+=a,u+=a,this.pos===s&&(this.process(r,0),this.pos=0,i=!0)}return this.length+=e.length,i&&this.roundClean(),this}digestInto(e){gr(this),Pn(e,this),this.finished=!0;let{buffer:r,view:n,blockLen:s,isLE:o}=this,{pos:i}=this;r[i++]=128,r.fill(0,i),this.padOffset>s-i&&(this.process(n,0),r.fill(0)),Fn(n,s-8,this.length*8,o),this.process(n,0),this.roundClean();let u=e===r?n:Dt(e),a=this.outputLen,l=a/4,c=this.get();if(a%4||l>c.length)throw new Error("invalid outputLen");for(let f=0;f<l;f++)u.setUint32(4*f,c[f],o)}digest(){let{buffer:e,outputLen:r}=this;this.digestInto(e);let n=e.slice(0,r);return this.destroy(),n}_cloneIntoMeta(e){let{buffer:r,length:n,finished:s,destroyed:o,pos:i}=this;return e.destroyed=o,e.finished=s,e.length=n,e.pos=i,i&&e.buffer.set(r),e}clone(){return this._cloneInto()}};var Kn=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var zn=kn(["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(t=>BigInt(t))),fi=zn[0],di=zn[1],ge=new Uint32Array(80),ye=new Uint32Array(80),br=class extends Ct{Ah=0;Al=0;Bh=0;Bl=0;Ch=0;Cl=0;Dh=0;Dl=0;Eh=0;El=0;Fh=0;Fl=0;Gh=0;Gl=0;Hh=0;Hl=0;constructor(e,r){super(128,e,16,!1),this.Ah=r[0]|0,this.Al=r[1]|0,this.Bh=r[2]|0,this.Bl=r[3]|0,this.Ch=r[4]|0,this.Cl=r[5]|0,this.Dh=r[6]|0,this.Dl=r[7]|0,this.Eh=r[8]|0,this.El=r[9]|0,this.Fh=r[10]|0,this.Fl=r[11]|0,this.Gh=r[12]|0,this.Gl=r[13]|0,this.Hh=r[14]|0,this.Hl=r[15]|0}get(){let{Ah:e,Al:r,Bh:n,Bl:s,Ch:o,Cl:i,Dh:u,Dl:a,Eh:l,El:c,Fh:f,Fl:p,Gh:h,Gl:g,Hh:m,Hl:x}=this;return[e,r,n,s,o,i,u,a,l,c,f,p,h,g,m,x]}set(e,r,n,s,o,i,u,a,l,c,f,p,h,g,m,x){this.Ah=e|0,this.Al=r|0,this.Bh=n|0,this.Bl=s|0,this.Ch=o|0,this.Cl=i|0,this.Dh=u|0,this.Dl=a|0,this.Eh=l|0,this.El=c|0,this.Fh=f|0,this.Fl=p|0,this.Gh=h|0,this.Gl=g|0,this.Hh=m|0,this.Hl=x|0}_cloneInto(e){return(e||=new this.constructor).set(...this.get()),this._cloneIntoMeta(e)}process(e,r){for(let d=0;d<16;d++,r+=4)ge[d]=e.getUint32(r),ye[d]=e.getUint32(r+=4);for(let d=16;d<80;d++){let y=ge[d-15]|0,w=ye[d-15]|0,k=Te(y,w,1)^Te(y,w,8)^pr(y,w,7),I=ke(y,w,1)^ke(y,w,8)^hr(y,w,7),C=ge[d-2]|0,E=ye[d-2]|0,O=Te(C,E,19)^Je(C,E,61)^pr(C,E,6),$=ke(C,E,19)^Qe(C,E,61)^hr(C,E,6),_=Ln(I,$,ye[d-7],ye[d-16]),U=_n(_,k,O,ge[d-7],ge[d-16]);ge[d]=U|0,ye[d]=_|0}let{Ah:n,Al:s,Bh:o,Bl:i,Ch:u,Cl:a,Dh:l,Dl:c,Eh:f,El:p,Fh:h,Fl:g,Gh:m,Gl:x,Hh:v,Hl:D}=this;for(let d=0;d<80;d++){let y=Te(f,p,14)^Te(f,p,18)^Je(f,p,41),w=ke(f,p,14)^ke(f,p,18)^Qe(f,p,41),k=f&h^~f&m,I=p&g^~p&x,C=Nn(D,w,I,di[d],ye[d]),E=qn(C,v,y,k,fi[d],ge[d]),O=C|0,$=Te(n,s,28)^Je(n,s,34)^Je(n,s,39),_=ke(n,s,28)^Qe(n,s,34)^Qe(n,s,39),U=n&o^n&u^o&u,b=s&i^s&a^i&a;v=m|0,D=x|0,m=h|0,x=g|0,h=f|0,g=p|0,{h:f,l:p}=se(l|0,c|0,E|0,O|0),l=u|0,c=a|0,u=o|0,a=i|0,o=n|0,i=s|0;let B=On(O,_,b);n=Rn(B,E,$,U),s=B|0}({h:n,l:s}=se(this.Ah|0,this.Al|0,n|0,s|0)),{h:o,l:i}=se(this.Bh|0,this.Bl|0,o|0,i|0),{h:u,l:a}=se(this.Ch|0,this.Cl|0,u|0,a|0),{h:l,l:c}=se(this.Dh|0,this.Dl|0,l|0,c|0),{h:f,l:p}=se(this.Eh|0,this.El|0,f|0,p|0),{h,l:g}=se(this.Fh|0,this.Fl|0,h|0,g|0),{h:m,l:x}=se(this.Gh|0,this.Gl|0,m|0,x|0),{h:v,l:D}=se(this.Hh|0,this.Hl|0,v|0,D|0),this.set(n,s,o,i,u,a,l,c,f,p,h,g,m,x,v,D)}roundClean(){yr(ge,ye)}destroy(){this.destroyed=!0,yr(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},Ar=class extends br{constructor(){super(64,Kn)}};var wr=Mn(()=>new Ar,Hn(3));function St(t,e,r=()=>{}){if(!Array.isArray(t))throw new TypeError(`"${e}" expected array, got type=${typeof t}`);for(let n=0;n<t.length;n++)r(t[n],`${e}[${n}]`);return t}var H=(t,e,r)=>oe(t,e,r),Dr=et;function xe(t,e="object"){if(t===null||typeof t!="object"||Array.isArray(t))throw new TypeError(e==="object"?"expected valid options object":`"${e}" expected object, got type=${typeof t}`);return t}function Fe(t,e){if(typeof t!="function")throw new TypeError(`"${e}" is invalid: expected function, got ${typeof t}`);return t}var Vn=Et,Er=(...t)=>xr(...t),Wn=t=>Bt(t),tt=wt,rt=t=>jn(t),vt=BigInt(0),Gn=BigInt(1),pi=t=>t?`"${t}" `:"";function le(t,e=""){if(typeof t!="boolean")throw new TypeError(pi(e)+"expected boolean, got type="+typeof t);return t}function hi(t){if(typeof t=="bigint"){if(!be(t))throw new RangeError("positive bigint expected, got "+t)}else Dr(t);return t}function Me(t,e=""){if(typeof t!="number"){let r=e&&`"${e}" `;throw new TypeError(r+"expected number, got type="+typeof t)}if(!Number.isSafeInteger(t)){let r=e&&`"${e}" `;throw new RangeError(r+"expected safe integer, got "+t)}}function Zn(t){if(typeof t!="string")throw new TypeError("hex string expected, got "+typeof t);return t===""?vt:BigInt("0x"+t)}function Tt(t){return Zn(Et(t))}function fe(t){return Zn(Et(Ae(oe(t)).reverse()))}function Br(t,e){if(et(e),e===0)throw new Error("zero output length is invalid");t=hi(t);let r=e*2,n=t.toString(16);if(n.length>r)throw new RangeError("number is too large");return Bt(n.padStart(r,"0"))}function kt(t,e){return Br(t,e).reverse()}function Ae(t){return Uint8Array.from(H(t))}function be(t){return typeof t=="bigint"&&vt<=t}function Cr(t,e,r){return be(t)&&be(e)&&be(r)&&e<=t&&t<r}function Oe(t,e,r,n){if(!Cr(e,r,n))throw new RangeError("expected valid "+t+": "+r+" <= n < "+n+", got "+e)}function vr(t){if(t<vt)throw new Error("expected non-negative bigint, got "+t);return t===vt?0:t.toString(2).length}var Yn=t=>(Me(t,"n"),(Gn<<BigInt(t))-Gn);function ie(t,e={},r={},n="object"){xe(t,n),xe(e,"fields"),xe(r,"optFields");function s(i,u,a){let l=n==="object"?`param "${String(i)}"`:`"${n}.${String(i)}"`,c=t[i];if(!Object.hasOwn(t,i)&&(a?c!==void 0:u!=="function"))throw new TypeError(`${l} is invalid: expected own property`);if(a&&c===void 0)return;let f=typeof c;if(f!==u||c===null)throw new TypeError(`${l} is invalid: expected ${u}, got ${f}`)}let o=(i,u)=>Object.entries(i).forEach(([a,l])=>s(a,l,u));o(e,!1),o(r,!0)}var K=BigInt(0),N=BigInt(1),Re=BigInt(2),Qn=BigInt(3),Sr=BigInt(4),es=BigInt(5),mi=BigInt(7),ts=BigInt(8),gi=BigInt(9),yi=BigInt(15),rs=BigInt(16),xi=BigInt("0x10000000000000000");function R(t,e){if(e<=K)throw new Error("mod: expected positive modulus, got "+e);let r=t%e;return r>=K?r:e+r}function bi(t,e,r){if(r<=N)throw new Error("pow: expected modulus > 1, got "+r);if(typeof e!="bigint")throw new TypeError("invalid exponent: expected bigint, got "+typeof e);if(e<K)throw new Error("invalid exponent, negatives unsupported");if(e===K)return N;if(e===N)return t;let n=t%r;if(n<K&&(n+=r),e<xi){let u=N;for(;e>K;)e&N&&(u=u*n%r),n=n*n%r,e>>=N;return u}let s=[];for(;e>K;)s.push(Number(e&yi)),e>>=Sr;let o=new Array(16);o[0]=N,o[1]=n;for(let u=2;u<16;u++)o[u]=o[u-1]*n%r;let i=o[s[s.length-1]];for(let u=s.length-2;u>=0;u--){i=i*i%r,i=i*i%r,i=i*i%r,i=i*i%r;let a=s[u];a!==0&&(i=i*o[a]%r)}return i}function J(t,e,r){if(r<=N)throw new Error("pow2: expected modulus > 1, got "+r);if(e<K)throw new Error("pow2: expected non-negative exponent, got "+e);let n=t;for(;e-- >K;)n*=n,n%=r;return n}function Xn(t,e){if(t===K)throw new Error("invert: expected non-zero number");if(e<=N)throw new Error("invert: expected modulus > 1, got "+e);let r=R(t,e),n=e,s=K,o=N;for(;r!==K;){let u=n/r,a=n-r*u,l=s-o*u;n=r,r=a,s=o,o=l}if(n!==N)throw new Error("invert: does not exist");return R(s,e)}function Tr(t,e,r){let n=t;if(!n.eql(n.sqr(e),r))throw new Error("Cannot find square root")}function kr(t,e){if((t&N)===K)throw new Error(e+": expected odd modulus, got "+t)}function ns(t,e){let r=t,n=(r.ORDER+N)/Sr,s=r.pow(e,n);return Tr(r,s,e),s}function Ai(t,e){let r=t,n=(r.ORDER-es)/ts,s=r.mul(e,Re),o=r.pow(s,n),i=r.mul(e,o),u=r.mul(r.mul(i,Re),o),a=r.mul(i,r.sub(u,r.ONE));return Tr(r,a,e),a}function wi(t){let e=Rt(t),r=ss(t),n=r(e,e.neg(e.ONE)),s=r(e,n),o=r(e,e.neg(n)),i=(t+mi)/rs;return((u,a)=>{let l=u,c=l.pow(a,i),f=l.mul(c,n),p=l.mul(c,s),h=l.mul(c,o),g=l.eql(l.sqr(f),a),m=l.eql(l.sqr(p),a);c=l.cmov(c,f,g),f=l.cmov(h,p,m);let x=l.eql(l.sqr(f),a),v=l.cmov(c,f,x);return Tr(l,v,a),v})}function ss(t){if(t<Qn)throw new Error("sqrt is not defined for small field");kr(t,"tonelliShanks");let e=t-N,r=0;for(;e%Re===K;)e/=Re,r++;let n=Re,s=Rt(t);for(;nt(s,n)===1;)if(n++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(r===1)return ns;let o=s.pow(n,e),i=(e+N)/Re;return function(a,l){let c=a;if(c.is0(l))return l;if(nt(c,l)!==1)throw new Error("Cannot find square root");let f=r,p=c.mul(c.ONE,o),h=c.pow(l,e),g=c.pow(l,i);for(;!c.eql(h,c.ONE);){if(c.is0(h))throw new Error("Cannot find square root: probably non-prime P");let m=1,x=c.sqr(h);for(;!c.eql(x,c.ONE);)if(m++,x=c.sqr(x),m===f)throw new Error("Cannot find square root");let v=N<<BigInt(f-m-1),D=c.pow(p,v);f=m,p=c.sqr(D),h=c.mul(h,p),g=c.mul(g,D)}return g}}function Di(t){return kr(t,"Fp.sqrt"),t%Sr===Qn?ns:t%ts===es?Ai:t%rs===gi?wi(t):ss(t)}var os=(t,e)=>(R(t,e)&N)===N,Ei=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function je(t){if(xe(t,"field"),typeof t.ORDER!="bigint")throw new TypeError('param "ORDER" is invalid: expected bigint, got '+typeof t.ORDER);Me(t.BYTES,"BYTES"),Me(t.BITS,"BITS");for(let e of Ei)Fe(t[e],"field."+e);if(t.BYTES<1||t.BITS<1)throw new Error("invalid field: expected BYTES/BITS > 0");if(t.ORDER<=N)throw new Error("invalid field: expected ORDER > 1, got "+t.ORDER);return t}function Ot(t,e,r=!1){je(t),St(e,"nums"),le(r,"passZero");let n=t,s=new Array(e.length).fill(r?n.ZERO:void 0),o=e.reduce((u,a,l)=>n.is0(a)?u:(s[l]=u,n.mul(u,a)),n.ONE),i=n.inv(o);return e.reduceRight((u,a,l)=>n.is0(a)?u:(s[l]=n.mul(u,s[l]),n.mul(u,a)),i),s}function nt(t,e){je(t);let r=t;kr(r.ORDER,"FpLegendre");let n=(r.ORDER-N)/Re,s=r.pow(e,n),o=r.eql(s,r.ONE),i=r.eql(s,r.ZERO),u=r.eql(s,r.neg(r.ONE));if(!o&&!i&&!u)throw new Error("invalid Legendre symbol result");return o?1:i?0:-1}function Bi(t,e){if(e!==void 0&&Dr(e),t<=K)throw new Error("invalid n length: expected positive n, got "+t);if(e!==void 0&&e<1)throw new Error("invalid n length: expected positive bit length, got "+e);let r=vr(t);if(e!==void 0&&e<r)throw new Error(`invalid n length: expected nBitLength (${e}) >= bitLen(n) (${r})`);let n=e!==void 0?e:r,s=Math.ceil(n/8);return{nBitLength:n,nByteLength:s}}var Jn=new WeakMap,Ft=class{ORDER;BITS;BYTES;isLE;ZERO=K;ONE=N;_lengths;_mod;constructor(e,r={}){if(e<=N)throw new Error("invalid field: expected ORDER > 1, got "+e);let n;this.isLE=!1,r!=null&&typeof r=="object"&&(typeof r.BITS=="number"&&(n=r.BITS),typeof r.sqrt=="function"&&Object.defineProperty(this,"sqrt",{value:r.sqrt,enumerable:!0}),typeof r.isLE=="boolean"&&(this.isLE=r.isLE),r.allowedLengths&&(this._lengths=Object.freeze(r.allowedLengths.slice())),typeof r.modFromBytes=="boolean"&&(this._mod=r.modFromBytes));let{nBitLength:s,nByteLength:o}=Bi(e,n);if(o>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");this.ORDER=e,this.BITS=s,this.BYTES=o,Object.freeze(this)}create(e){return R(e,this.ORDER)}isValid(e){if(typeof e!="bigint")throw new TypeError("invalid field element: expected bigint, got "+typeof e);return K<=e&&e<this.ORDER}is0(e){return e===K}isValidNot0(e){return!this.is0(e)&&this.isValid(e)}isOdd(e){return(e&N)===N}neg(e){return R(-e,this.ORDER)}eql(e,r){return e===r}sqr(e){return R(e*e,this.ORDER)}add(e,r){return R(e+r,this.ORDER)}sub(e,r){return R(e-r,this.ORDER)}mul(e,r){return R(e*r,this.ORDER)}pow(e,r){return bi(e,r,this.ORDER)}div(e,r){return R(e*Xn(r,this.ORDER),this.ORDER)}sqrN(e){return e*e}addN(e,r){return e+r}subN(e,r){return e-r}mulN(e,r){return e*r}inv(e){return Xn(e,this.ORDER)}sqrt(e){let r=Jn.get(this);return r||Jn.set(this,r=Di(this.ORDER)),r(this,e)}toBytes(e){return this.isLE?kt(e,this.BYTES):Br(e,this.BYTES)}fromBytes(e,r=!1){H(e);let{_lengths:n,BYTES:s,isLE:o,ORDER:i,_mod:u}=this;if(n){if(e.length<1||!n.includes(e.length)||e.length>s)throw new Error("Field.fromBytes: expected "+n+" bytes, got "+e.length);let l=new Uint8Array(s);l.set(e,o?0:l.length-e.length),e=l}if(e.length!==s)throw new Error("Field.fromBytes: expected "+s+" bytes, got "+e.length);let a=o?fe(e):Tt(e);if(u&&(a=R(a,i)),!r&&!this.isValid(a))throw new Error("invalid field element: outside of range 0..ORDER");return a}invertBatch(e){return Ot(this,e,!0)}cmov(e,r,n){return le(n,"condition"),n?r:e}};function Rt(t,e={}){return Object.freeze(Ft.prototype),new Ft(t,e)}var Rr=BigInt(0),st=BigInt(1),Ci=BigInt(4),Fr=16,is=128,vi=5,us=2**31;function ot(t){let e=t;if(typeof e!="function")throw new TypeError('"Point" expected constructor, got type='+typeof t);Fe(e.fromAffine,"Point.fromAffine"),Fe(e.fromBytes,"Point.fromBytes"),Fe(e.fromHex,"Point.fromHex"),xe(e.BASE,"Point.BASE"),xe(e.ZERO,"Point.ZERO"),je(e.Fp),je(e.Fn)}function cs(t,e){ot(t),ls(e,t);let r=Ot(t.Fp,e.map(n=>n.Z));return e.map((n,s)=>t.fromAffine(n.toAffine(r[s])))}function Si(t,e,r=1){if(!Number.isSafeInteger(t)||t<r||t>e)throw new Error("invalid window size, expected ["+r+".."+e+"], got W="+t)}function Ti(t,e){let r=t*(4*e+128);if(r>us)throw new Error("invalid window size: table would need ~"+Math.ceil(r/2**20)+" MiB, max "+us/2**20+" MiB")}function ki(t,e){if(t!==void 0){Fe(t,"randomBytes");try{let r=t(e);if(!tt(r)||r.length!==e)return}catch{return}return t}}function ls(t,e){St(t,"points"),t.forEach((r,n)=>{if(!(r instanceof e))throw new Error("invalid point at index "+n)})}function Fi(t,e,r){if(!Array.isArray(t))throw new Error("array of scalars expected");t.forEach((n,s)=>{if(!(r===void 0?e.isValid(n):be(n)&&n<r))throw new Error("invalid scalar at index "+s)})}var fs=new WeakMap;function Or(t){return fs.get(t)||1}function Oi(t,e){let r=t.double(),n=[t];for(let s=1;s<e;s++)n.push(n[s-1].add(r));return n}function Ri(t,e){let r=2**e,n=r/2,s=BigInt(r-1),o=[];for(;t>Rr;){let i=0;t&st&&(i=Number(t&s),i>=n&&(i-=r),t-=BigInt(i)),o.push(i),t>>=st}return o}function Li(t,e,r){let n=2**e,s=n/2,o=BigInt(n-1),i=BigInt(e),u=[];for(let a=0;a<r;a++){let l=Number(t&o);t>>=i,l>s&&(l-=n,t+=st),u.push(l)}if(t!==Rr)throw new Error("invalid wnaf");return u}function _i(t,e,r){let n=0;for(let o of r)n=Math.max(n,o.length);let s=t;for(let o=n-1;o>=0;o--){o!==n-1&&(s=s.double());for(let i=0;i<r.length;i++){let u=r[i][o];if(u){let a=e[i][Math.abs(u)-1>>1];s=s.add(u<0?a.negate():a)}}}return s}var Lt=class{Point;BASE;ZERO;randomBytes;wnafPrecomputes=new WeakMap;baseCanBeBlinded;bits;constructor(e,r){ot(e),this.randomBytes=ki(r,Fr),this.Point=e,this.BASE=e.BASE,this.ZERO=e.ZERO,this.bits=e.Fn.BITS}buildWnafTable(e,r,n){let s=Math.ceil(n/r)+1,o=2**(r-1),i=[],u=e;for(let a=0;a<s;a++){let l=u;for(let c=0;c<o;c++)i.push(l),l=l.add(u);u=i[i.length-1].double()}return{W:r,bits:n,windows:s,comp:i}}wnafCachedCT(e,r){let{W:n,windows:s,comp:o}=e,i=2**(n-1),u=Li(r,n,s),a=this.ZERO,l=this.BASE;for(let c=0;c<s;c++){let f=u[c],p=c*i,h=Math.abs(f)-1,g=o[p];for(let x=1;x<i;x++)g=x===h?o[p+x]:g;let m=g.negate();f===0?l=l.add(o[p]):a=a.add(f<0?m:g)}return{p:a,f:l}}getWnafPrecomputes(e,r,n,s){let o=this.wnafPrecomputes.get(r),i=o?.find(u=>u.W===e&&u.bits===n);return i||(i=this.buildWnafTable(r,e,n),typeof s=="function"&&(i={...i,comp:s(i.comp)}),o||(o=[],this.wnafPrecomputes.set(r,o)),o.push(i)),i}assertPoint(e){if(!(e instanceof this.Point))throw new TypeError('"point" expected Point instance, got type='+typeof e)}validateMulInput(e,r){if(this.assertPoint(e),!Cr(r,st,this.Point.Fn.ORDER))throw new Error("invalid scalar")}runCT(e,r,n,s){let o=Or(e);return o===1?this.fixedWindowCT(e,r,n):this.wnafCachedCT(this.getWnafPrecomputes(o,e,n,s),r)}mulCT(e,r,n){return this.validateMulInput(e,r),this.runCT(e,r,this.bits,n)}mulCTBlinded(e,r,n){if(this.validateMulInput(e,r),this.randomBytes===void 0)throw new Error("randomBytes is required for scalar blinding");let s=this.Point.Fn.BITS+is,o=this.randomBytes(Fr);if(!tt(o)||o.length!==Fr)throw new Error("randomBytes returned invalid byte array");o[0]=o[0]&63|128;let i=r+Tt(o)*this.Point.Fn.ORDER;return this.runCT(e,i,s,n)}fixedWindowCT(e,r,n){let s=vi,o=1<<s,i=Yn(s),u=new Array(o);u[0]=this.ZERO;for(let c=1;c<o;c++)u[c]=u[c-1].add(e);let a=Math.ceil(n/s),l=this.ZERO;for(let c=a-1;c>=0;c--){if(c!==a-1)for(let h=0;h<s;h++)l=l.double();let f=Number(r>>BigInt(c*s)&i),p=u[0];for(let h=1;h<o;h++)p=h===f?u[h]:p;l=l.add(p)}return{p:l,f:l}}shouldBlind(e,r){return this.randomBytes===void 0?!1:r===st?!0:e!==this.BASE?!1:(this.baseCanBeBlinded===void 0&&(this.baseCanBeBlinded=this.mulUnsafe(this.BASE,this.Point.Fn.ORDER).is0()),this.baseCanBeBlinded)}mulSecret(e,r,n,s){return this.shouldBlind(e,n)?this.mulCTBlinded(e,r,s):this.mulCT(e,r,s)}mulUnsafe(e,r,n){if(this.assertPoint(e),!be(r))throw new Error("invalid scalar");let s=Or(e);if(s===1||r>=this.Point.Fn.ORDER)return Ni(this.Point,[e],[r],!0);let o=this.getWnafPrecomputes(s,e,this.bits,n);return this.wnafCachedCT(o,r).p}setWindowSize(e,r){this.assertPoint(e),Si(r,this.bits);let n=Math.ceil((this.bits+is)/r)+1;Ti(n*2**(r-1),this.Point.Fp.BYTES),fs.set(e,r),this.wnafPrecomputes.delete(e)}hasWindowSize(e){return Or(e)!==1}};function Ni(t,e,r,n=!1){if(ot(t),ls(e,t),le(n,"allowOversized"),Fi(r,t.Fn,n?t.Fn.ORDER**Ci:void 0),e.length!==r.length)throw new Error("arrays of points and scalars must have equal length");let s=e.map(i=>Oi(i,4)),o=r.map(i=>Ri(i,4));return _i(t.ZERO,s,o)}function as(t,e,r){if(e){if(e.ORDER!==t)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return je(e),e}else return Rt(t,{isLE:r})}function ds(t,e,r={},n){if(t!=="weierstrass"&&t!=="edwards")throw new Error('expected curve type "weierstrass" or "edwards"');if(n===void 0&&(n=t==="edwards"),!e||typeof e!="object")throw new Error(`expected valid ${t} CURVE object`);ie(r);for(let a of["p","n","h"]){let l=e[a];if(!(be(l)&&l!==Rr))throw new Error(`CURVE.${a} must be positive bigint`)}let s=as(e.p,r.Fp,n),o=as(e.n,r.Fn,n),u=["Gx","Gy","a",t==="weierstrass"?"b":"d"];for(let a of u)if(!s.isValid(e[a]))throw new Error(`CURVE.${a} must be valid field element of CURVE.Fp`);return e=Object.freeze(Object.assign({},e)),{CURVE:e,Fp:s,Fn:o}}function _t(t,e){return function(n){let s=t(n);return{secretKey:s,publicKey:e(s)}}}var Nt=BigInt(0),qt=BigInt(1),It=BigInt(2),qi=BigInt(4),ps=BigInt(8);function Ii(t,e,r,n){let s=t.sqr(r),o=t.sqr(n),i=t.add(t.mul(e.a,s),o),u=t.add(t.ONE,t.mul(e.d,t.mul(s,o)));return t.eql(i,u)}function hs(t,e={}){ie(e,{},{},"extraOpts");let r=e,n=ds("edwards",t,r,r.FpFnLE),{Fp:s,Fn:o}=n,i=n.CURVE,{h:u}=i;if(nt(s,i.a)!==1)throw new Error("edwards: CURVE.a must be a square in Fp for complete addition formulas");if(nt(s,i.d)!==-1)throw new Error("edwards: CURVE.d must be a non-square in Fp for complete addition formulas");ie(r,{},{uvRatio:"function",randomBytes:"function"});let a=r.randomBytes===void 0?rt:r.randomBytes,l=It<<BigInt(s.BYTES*8)-qt;function c(D){if(!s.isOdd)throw new Error("Field does not have .isOdd()");return s.isOdd(D)}let f=r.uvRatio===void 0?(D,d)=>{try{return{isValid:!0,value:s.sqrt(s.div(D,d))}}catch{return{isValid:!1,value:Nt}}}:r.uvRatio;if(!Ii(s,i,i.Gx,i.Gy))throw new Error("bad curve params: generator point");let p=s.eql(i.a,s.neg(s.ONE))?D=>s.neg(D):s.eql(i.a,s.ONE)?D=>D:D=>s.mul(i.a,D);function h(D,d,y=!1){let w=y?qt:Nt;return Oe("coordinate "+D,d,w,l),d}function g(D){if(!(D instanceof m))throw new Error("EdwardsPoint expected")}class m{static BASE=new m(i.Gx,i.Gy,s.ONE,s.mul(i.Gx,i.Gy));static ZERO=new m(s.ZERO,s.ONE,s.ONE,s.ZERO);static Fp=s;static Fn=o;X;Y;Z;T;constructor(d,y,w,k){this.X=h("x",d),this.Y=h("y",y),this.Z=h("z",w,!0),this.T=h("t",k),Object.freeze(this)}static CURVE(){return i}static fromAffine(d){if(d instanceof m)throw new Error("extended point not allowed");let{x:y,y:w}=d||{};return h("x",y),h("y",w),new m(y,w,s.ONE,s.mul(y,w))}static fromBytes(d,y=!1){let w=s.BYTES,{a:k,d:I}=i;d=Ae(H(d,w,"point")),le(y,"zip215");let C=Ae(d),E=d[w-1];C[w-1]=E&-129;let O=fe(C),$=y?l:s.ORDER;Oe("point.y",O,Nt,$);let _=s.sqr(O),U=s.sub(_,s.ONE),b=s.sub(s.mulN(I,_),k),{isValid:B,value:A}=f(U,b);if(!B)throw new Error("bad point: invalid y coordinate");let S=c(A),F=(E&128)!==0;if(!y&&s.is0(A)&&F)throw new Error("bad point: x=0 and x_0=1");return F!==S&&(A=s.neg(A)),m.fromAffine({x:A,y:O})}static fromHex(d,y=!1){return m.fromBytes(Wn(d),y)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(d=6,y=!0){return v.setWindowSize(this,d),y||this.multiply(It),this}assertValidity(){let d=this,{a:y,d:w}=i;if(d.is0())throw new Error("bad point: ZERO");let{X:k,Y:I,Z:C,T:E}=d,O=s.sqr(k),$=s.sqr(I),_=s.sqr(C),U=s.sqr(_),b=s.mul(O,y),B=s.mul(s.add(b,$),_),A=s.add(U,s.mul(w,s.mul(O,$)));if(!s.eql(B,A))throw new Error("bad point: equation left != right (1)");let S=s.mul(k,I),F=s.mul(C,E);if(!s.eql(S,F))throw new Error("bad point: equation left != right (2)")}equals(d){g(d);let{X:y,Y:w,Z:k}=this,{X:I,Y:C,Z:E}=d,O=s.mul(y,E),$=s.mul(I,k),_=s.mul(w,E),U=s.mul(C,k);return s.eql(O,$)&&s.eql(_,U)}is0(){return this.equals(m.ZERO)}negate(){return new m(s.neg(this.X),this.Y,this.Z,s.neg(this.T))}double(){let{X:d,Y:y,Z:w}=this,k=s.sqr(d),I=s.sqr(y),C=s.mul(s.sqr(w),It),E=p(k),O=s.addN(d,y),$=s.sub(s.subN(s.sqr(O),k),I),_=s.addN(E,I),U=s.subN(_,C),b=s.subN(E,I),B=s.mul($,U),A=s.mul(_,b),S=s.mul($,b),F=s.mul(U,_);return new m(B,A,F,S)}add(d){g(d);let{d:y}=i,{X:w,Y:k,Z:I,T:C}=this,{X:E,Y:O,Z:$,T:_}=d,U=s.mul(w,E),b=s.mul(k,O),B=s.mul(s.mulN(C,y),_),A=s.mul(I,$),S=s.sub(s.subN(s.mulN(s.addN(w,k),s.addN(E,O)),U),b),F=s.subN(A,B),M=s.addN(A,B),j=s.sub(b,p(U)),G=s.mul(S,F),W=s.mul(M,j),Z=s.mul(S,j),ce=s.mul(F,M);return new m(G,W,ce,Z)}subtract(d){return g(d),this.add(d.negate())}multiply(d){if(!o.isValidNot0(d))throw new RangeError("invalid scalar: expected 1 <= sc < curve.n");let{p:y,f:w}=v.mulSecret(this,d,u,x);return x([y,w])[0]}multiplyUnsafe(d){if(!o.isValid(d))throw new RangeError("invalid scalar: expected 0 <= sc < curve.n");return d===Nt?m.ZERO:this.is0()||d===qt?this:v.mulUnsafe(this,d,x)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){return v.mulUnsafe(this,i.n).is0()}toAffine(d){let y=this,w=d;if(w!=null&&typeof w!="bigint")throw new TypeError('"invertedZ" expected bigint, got type='+typeof w);let{X:k,Y:I,Z:C}=y,E=y.is0();w==null&&(w=E?s.create(ps):s.inv(C));let O=s.mul(k,w),$=s.mul(I,w),_=s.mul(C,w);if(E)return{x:s.ZERO,y:s.ONE};if(!s.eql(_,s.ONE))throw new Error("invZ was invalid");return{x:O,y:$}}clearCofactor(){return u===qt?this:u===It?this.double():u===qi?this.double().double():u===ps?this.double().double().double():this.multiplyUnsafe(u)}toBytes(){let{x:d,y}=this.toAffine(),w=s.toBytes(y);return w[w.length-1]|=c(d)?128:0,w}toHex(){return Vn(this.toBytes())}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let x=D=>cs(m,D),v=new Lt(m,a);return v.bits>=6&&m.BASE.precompute(6),Object.freeze(m.prototype),Object.freeze(m),m}function ms(t,e,r={}){if(ot(t),typeof e!="function")throw new Error('"hash" function param is required');let n=e,s=r;ie(s,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",zip215:"boolean",mapToCurve:"function",toMontgomery:"function",toMontgomerySecret:"function"});let{prehash:o}=s,{BASE:i,Fp:u,Fn:a}=t,l=n.outputLen,c=2*u.BYTES;if(l!==void 0&&(Me(l,"hash.outputLen"),l!==c))throw new Error(`hash.outputLen must be ${c}, got ${l}`);let f=s.randomBytes===void 0?rt:s.randomBytes,p=s.toMontgomery,h=s.toMontgomerySecret,g=s.adjustScalarBytes===void 0?b=>b:s.adjustScalarBytes,m=s.domain===void 0?(b,B,A)=>{if(le(A,"phflag"),B.length||A)throw new Error("Contexts/pre-hash are not supported");return b}:s.domain;function x(b){return a.create(fe(b))}function v(b){let B=E.secretKey;H(b,E.secretKey,"secretKey");let A=H(n(b),2*B,"hashedSecretKey"),S=g(A.slice(0,B)),F=A.slice(B,2*B),M=x(S);return{head:S,prefix:F,scalar:M}}function D(b){let{head:B,prefix:A,scalar:S}=v(b),F=i.multiply(S),M=F.toBytes();return{head:B,prefix:A,scalar:S,point:F,pointBytes:M}}function d(b){return D(b).pointBytes}function y(b=Uint8Array.of(),...B){let A=Er(...B);return x(n(m(A,H(b,void 0,"context"),!!o)))}function w(b,B,A={}){ie(A,{},{},"options"),b=Ae(H(b,void 0,"message")),o&&(b=o(b));let{prefix:S,scalar:F,pointBytes:M}=D(B),j=y(A.context,S,b),G=i.multiply(j).toBytes(),W=y(A.context,G,M,b),Z=a.create(j+W*F);if(!a.isValid(Z))throw new Error("sign failed: invalid s");let ce=Er(G,a.toBytes(Z));return H(ce,E.signature,"result")}let k={zip215:s.zip215};function I(b,B,A,S=k){ie(S);let{context:F}=S,M=S.zip215===void 0?!!k.zip215:S.zip215,j=E.signature;b=H(b,j,"signature"),B=H(B,void 0,"message"),A=H(A,E.publicKey,"publicKey"),M!==void 0&&le(M,"zip215"),o&&(B=o(B));let G=j/2,W=b.subarray(0,G),Z=fe(b.subarray(G,j)),ce,Ye,xt;try{ce=t.fromBytes(A,M),Ye=t.fromBytes(W,M),xt=i.multiplyUnsafe(Z)}catch{return!1}if(!M&&ce.isSmallOrder())return!1;let Xe=y(F,W,A,B);return Ye.add(ce.multiplyUnsafe(Xe)).subtract(xt).clearCofactor().is0()}let C=u.BYTES,E={secretKey:C,publicKey:C,signature:2*C,seed:C};function O(b){return b=b===void 0?f(E.seed):b,H(b,E.seed,"seed")}function $(b){return tt(b)&&b.length===E.secretKey}function _(b,B){try{return!!t.fromBytes(b,B===void 0?k.zip215:B)}catch{return!1}}let U={getExtendedPublicKey:D,randomSecretKey:O,isValidSecretKey:$,isValidPublicKey:_,toMontgomery(b){if(p===void 0)throw new Error("Montgomery conversion is not supported for this curve");return p(t.fromBytes(b))},toMontgomerySecret(b){if(h===void 0)throw new Error("Montgomery conversion is not supported for this curve");return h(b)}};return Object.freeze(E),Object.freeze(U),Object.freeze({keygen:_t(O,d),getPublicKey:d,sign:w,verify:I,utils:U,Point:t,lengths:E})}var Le=BigInt(0),Q=BigInt(1),Ut=BigInt(2);function gs(t,e){return t+e-(e>>Q<<Q)}function Ui(t){let e=BigInt(6)*t;return(r,n,s)=>{let o=n+s,u=((e+s-n)*r+n)%t;return{x_2:u,x_3:o-u}}}function Pi(t){return ie(t,{P:"bigint",type:"string",adjustScalarBytes:"function",powPminus2:"function"},{randomBytes:"function",scalarMultBase:"function"}),Object.freeze({...t})}function ys(t){let e=Pi(t),{P:r,type:n,adjustScalarBytes:s,powPminus2:o,randomBytes:i}=e,u=e.scalarMultBase,a=n==="x25519";if(!a&&n!=="x448")throw new Error("invalid type");let l=i===void 0?rt:i,c=a?255:448,f=Ui(r),p=a?32:56,h=BigInt(a?9:5),g=BigInt(a?121665:39081),m=a?Ut**BigInt(254):Ut**BigInt(447),x=a?BigInt(8)*(Ut**BigInt(251)-Q):BigInt(4)*(Ut**BigInt(445)-Q),v=m+x+Q,D=A=>R(A,r),d=y(h);function y(A){return kt(D(A),p)}function w(A){let S=Ae(H(A,p,"uCoordinate"));return a&&(S[31]&=127),D(fe(S))}function k(A){return fe(s(Ae(H(A,p,"scalar"))))}let I=new Set(a?[Le,Q,r-Q,BigInt("325606250916557431795983626356110631294008115727848805560023387167927233504"),BigInt("39382357235489614581723060781553021112529911719440698176882885853963445705823")]:[Le,Q,r-Q]);function C(A,S){let F=w(S);if(I.has(F))throw new Error("invalid private or public key received");let M=_(F,k(A));if(M===Le)throw new Error("invalid private or public key received");return y(M)}function E(A){if(u===void 0)return C(A,d);let S=k(A);Oe("scalar",S,m,v);let F=D(u(S));if(F===Le)throw new Error("invalid private or public key received");return y(F)}let O=E,$=C;function _(A,S){Oe("u",A,Le,r),Oe("scalar",S,m,v);let F=S,M=A,j=Q,G=Le,W=A,Z=Q,ce=F^F>>Q;for(let Xe=BigInt(c-1);Xe>=Le;Xe--){let lr=gs(r,ce>>Xe);({x_2:j,x_3:W}=f(lr,j,W)),{x_2:G,x_3:Z}=f(lr,G,Z);let bt=j+G,fr=D(bt*bt),dr=j-G,Dn=D(dr*dr),En=fr-Dn,ri=W+Z,ni=W-Z,Bn=D(ni*bt),Cn=D(ri*dr),vn=Bn+Cn,Sn=Bn-Cn;W=D(vn*vn),Z=D(M*D(Sn*Sn)),j=D(fr*Dn),G=D(En*(fr+D(g*En)))}let Ye=gs(r,F);({x_2:j,x_3:W}=f(Ye,j,W)),{x_2:G,x_3:Z}=f(Ye,G,Z);let xt=o(G);return D(j*xt)}let U={secretKey:p,publicKey:p,seed:p},b=A=>(A=A===void 0?l(p):A,H(A,U.seed,"seed"),A),B={randomSecretKey:b};return Object.freeze(U),Object.freeze(B),Object.freeze({keygen:_t(b,O),getSharedSecret:$,getPublicKey:O,scalarMult:C,scalarMultBase:E,utils:B,GuBytes:d.slice(),lengths:U})}var xs=BigInt(0),Lr=BigInt(1),bs=BigInt(2),$i=BigInt(3),Mi=BigInt(5),ji=BigInt(8),Pt=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),Hi={p:Pt,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:ji,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function Ds(t){let e=BigInt(10),r=BigInt(20),n=BigInt(40),s=BigInt(80),o=Pt,u=t*t%o*t%o,a=J(u,bs,o)*u%o,l=J(a,Lr,o)*t%o,c=J(l,Mi,o)*l%o,f=J(c,e,o)*c%o,p=J(f,r,o)*f%o,h=J(p,n,o)*p%o,g=J(h,s,o)*h%o,m=J(g,s,o)*h%o,x=J(m,e,o)*c%o;return{pow_p_5_8:J(x,bs,o)*t%o,b2:u}}function _r(t){return t[0]&=248,t[31]&=127,t[31]|=64,t}var As=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function Ki(t,e){let r=Pt,n=R(e*e*e,r),s=R(n*n*e,r),o=Ds(t*s).pow_p_5_8,i=R(t*n*o,r),u=R(e*i*i,r),a=i,l=R(i*As,r),c=u===t,f=u===R(-t,r),p=u===R(-t*As,r);return c&&(i=a),(f||p)&&(i=l),os(i,r)&&(i=R(-i,r)),{isValid:c||f,value:i}}var it=hs(Hi,{uvRatio:Ki}),ws=it.Fp;function zi(t){let{y:e}=t;return ws.toBytes(ws.div(Lr+e,Lr-e))}function Gi(t){let e=it.Fp.BYTES;return oe(t,e),_r(wr(t.subarray(0,e))).subarray(0,e)}function Vi(t){return ms(it,wr,Object.assign({adjustScalarBytes:_r,toMontgomery:zi,toMontgomerySecret:Gi,zip215:!0},t))}var Es=Vi({});var Y=(()=>{let t=Pt,e=r=>{let{pow_p_5_8:n,b2:s}=Ds(r);return R(J(n,$i,t)*s,t)};return ys({P:t,type:"x25519",powPminus2:e,adjustScalarBytes:_r,scalarMultBase:r=>{let n=R(r,it.Fn.ORDER);if(n===xs)return xs;let s=it.BASE.multiply(n);return R((s.Z+s.Y)*e(R(s.Z-s.Y,t)),t)}})})();var Bs=1,Mt=new TextEncoder;function Nr(t){return ee(Mt.encode(`shalom/v1/${t}`))}function He(t){return t.buffer instanceof ArrayBuffer?t:new Uint8Array(t)}function ee(...t){let e=new Uint8Array(t.reduce((n,s)=>n+s.length,0)),r=0;for(let n of t)e.set(n,r),r+=n.length;return e}async function Cs(t,e,r,n){let s=await crypto.subtle.importKey("raw",ee(t),"HKDF",!1,["deriveKey"]);return crypto.subtle.deriveKey({name:"HKDF",hash:"SHA-256",salt:ee(e,r),info:Nr(n)},s,{name:"AES-GCM",length:256},!1,["encrypt","decrypt"])}function qr(){let{secretKey:t,publicKey:e}=Y.keygen();return{secretKey:t,publicKey:e}}function vs(t){return Y.getPublicKey(t)}async function Ss(t,e,r){let n=Y.keygen(),s=Y.getSharedSecret(n.secretKey,t),o=await Cs(s,n.publicKey,t,r),i=crypto.getRandomValues(new Uint8Array(12)),u=new Uint8Array(await crypto.subtle.encrypt({name:"AES-GCM",iv:i,additionalData:Nr(r)},o,He(e)));return ee(new Uint8Array([Bs]),n.publicKey,i,u)}async function we(t,e,r){if(e.length<61||e[0]!==Bs)throw new Error("lacre inv\xE1lido");let n=e.subarray(1,33),s=e.subarray(33,45),o=e.subarray(45),i=Y.getPublicKey(t),u=Y.getSharedSecret(t,n),a=await Cs(u,n,i,r);return new Uint8Array(await crypto.subtle.decrypt({name:"AES-GCM",iv:He(s),additionalData:Nr(r)},a,He(o)))}async function Ts(t,e){return JSON.parse(new TextDecoder().decode(await we(t,e,"head")))}function te(t){let e="";for(let r=0;r<t.length;r+=32768)e+=String.fromCharCode(...t.subarray(r,r+32768));return btoa(e)}function V(t){let e=atob(t),r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=e.charCodeAt(n);return r}var $t=2;async function ks(t,e,r,n,s,o){let i=await crypto.subtle.importKey("raw",ee(t,e),"HKDF",!1,["deriveKey"]);return crypto.subtle.deriveKey({name:"HKDF",hash:"SHA-256",salt:ee(r,n,s),info:ee(Mt.encode(`shalom/v2/${o}`))},i,{name:"AES-GCM",length:256},!1,["encrypt","decrypt"])}async function Fs(t,e,r,n){let s=Y.keygen(),o=Y.getPublicKey(e),i=await ks(Y.getSharedSecret(s.secretKey,t),Y.getSharedSecret(e,t),s.publicKey,o,t,n),u=crypto.getRandomValues(new Uint8Array(12)),a=ee(new Uint8Array([$t]),Mt.encode(`shalom/v2/${n}`)),l=new Uint8Array(await crypto.subtle.encrypt({name:"AES-GCM",iv:u,additionalData:a},i,He(r)));return ee(new Uint8Array([$t]),s.publicKey,u,l)}async function Os(t,e,r,n){if(r.length<61||r[0]!==$t)throw new Error("lacre inv\xE1lido");let s=r.subarray(1,33),o=r.subarray(33,45),i=Y.getPublicKey(t),u=await ks(Y.getSharedSecret(t,s),Y.getSharedSecret(t,e),s,e,i,n),a=ee(new Uint8Array([$t]),Mt.encode(`shalom/v2/${n}`));return new Uint8Array(await crypto.subtle.decrypt({name:"AES-GCM",iv:He(o),additionalData:a},u,He(r.subarray(45))))}var ue=new TextEncoder,de=t=>t===32||t===9,Rs="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ut=new Uint8Array(256);for(let t=0;t<Rs.length;t++)ut[Rs.charCodeAt(t)]=t;function Ur(t){let e=t.length;for(;e>0&&t.charAt(e-1)==="=";)e--;e%4===1&&e--;let r=e%4,n=Math.floor(e/4)*3+(r?r-1:0),s=new ArrayBuffer(n),o=new Uint8Array(s),i=0;for(let u=0;u<e;u+=4){let a=ut[t.charCodeAt(u)],l=ut[t.charCodeAt(u+1)],c=ut[t.charCodeAt(u+2)],f=ut[t.charCodeAt(u+3)];o[i++]=a<<2|l>>4,i<n&&(o[i++]=(l&15)<<4|c>>2),i<n&&(o[i++]=(c&3)<<6|f&63)}return s}var Wi=new Map([["iso88598i","iso-8859-8"],["iso88598e","iso-8859-8"],["shiftjis","shift_jis"],["windows31j","shift_jis"],["mskanji","shift_jis"],["eucjp","euc-jp"],["iso2022jp","iso-2022-jp"],["iso2022jp1","iso-2022-jp"],["iso2022jp2","iso-2022-jp"],["junet","iso-2022-jp"],["euckr","euc-kr"],["uhc","euc-kr"],["tis620","windows-874"]]),Zi=new Map([["932","shift_jis"],["936","gbk"],["949","euc-kr"],["950","big5"],["874","windows-874"],["51932","euc-jp"],["50220","iso-2022-jp"],["50221","iso-2022-jp"],["50222","iso-2022-jp"]]),Yi=/^(?:cp|windows|ms|ibm)(\d+)$/;function Xi(t){return t.replace(/^(?:x-ms-|x-|cs)/,"").replace(/[\s._-]+/g,"")}var Ls=new Set(["unicode-1-1-utf-8 unicode11utf8 unicode20utf8 utf-8 utf8 x-unicode20utf8","866 cp866 csibm866 ibm866","csisolatin2 iso-8859-2 iso-ir-101 iso8859-2 iso88592 iso_8859-2 iso_8859-2:1987 l2 latin2","csisolatin3 iso-8859-3 iso-ir-109 iso8859-3 iso88593 iso_8859-3 iso_8859-3:1988 l3 latin3","csisolatin4 iso-8859-4 iso-ir-110 iso8859-4 iso88594 iso_8859-4 iso_8859-4:1988 l4 latin4","csisolatincyrillic cyrillic iso-8859-5 iso-ir-144 iso8859-5 iso88595 iso_8859-5 iso_8859-5:1988","arabic asmo-708 csiso88596e csiso88596i csisolatinarabic ecma-114 iso-8859-6 iso-8859-6-e","iso-8859-6-i iso-ir-127 iso8859-6 iso88596 iso_8859-6 iso_8859-6:1987","csisolatingreek ecma-118 elot_928 greek greek8 iso-8859-7 iso-ir-126 iso8859-7 iso88597 iso_8859-7","iso_8859-7:1987 sun_eu_greek","csiso88598e csisolatinhebrew hebrew iso-8859-8 iso-8859-8-e iso-ir-138 iso8859-8 iso88598 iso_8859-8","iso_8859-8:1988 visual","csiso88598i iso-8859-8-i logical","csisolatin6 iso-8859-10 iso-ir-157 iso8859-10 iso885910 l6 latin6","iso-8859-13 iso8859-13 iso885913","iso-8859-14 iso8859-14 iso885914","csisolatin9 iso-8859-15 iso8859-15 iso885915 iso_8859-15 l9","iso-8859-16","cskoi8r koi koi8 koi8-r koi8_r","koi8-ru koi8-u","csmacintosh mac macintosh x-mac-roman","dos-874 iso-8859-11 iso8859-11 iso885911 tis-620 windows-874","cp1250 windows-1250 x-cp1250","cp1251 windows-1251 x-cp1251","ansi_x3.4-1968 ascii cp1252 cp819 csisolatin1 ibm819 iso-8859-1 iso-ir-100 iso8859-1 iso88591","iso_8859-1 iso_8859-1:1987 l1 latin1 us-ascii windows-1252 x-cp1252","cp1253 windows-1253 x-cp1253","cp1254 csisolatin5 iso-8859-9 iso-ir-148 iso8859-9 iso88599 iso_8859-9 iso_8859-9:1989 l5 latin5","windows-1254 x-cp1254","cp1255 windows-1255 x-cp1255","cp1256 windows-1256 x-cp1256","cp1257 windows-1257 x-cp1257","cp1258 windows-1258 x-cp1258","x-mac-cyrillic x-mac-ukrainian","chinese csgb2312 csiso58gb231280 gb2312 gb_2312 gb_2312-80 gbk iso-ir-58 x-gbk","gb18030","big5 big5-hkscs cn-big5 csbig5 x-x-big5","cseucpkdfmtjapanese euc-jp x-euc-jp","csiso2022jp iso-2022-jp","csshiftjis ms932 ms_kanji shift-jis shift_jis sjis windows-31j x-sjis","cseuckr csksc56011987 euc-kr iso-ir-149 korean ks_c_5601-1987 ks_c_5601-1989 ksc5601 ksc_5601","windows-949","csiso2022kr hz-gb-2312 iso-2022-cn iso-2022-cn-ext iso-2022-kr replacement","x-user-defined"].join(" ").split(" ")),Ji=new Set(["csiso2022kr","hz-gb-2312","iso-2022-cn","iso-2022-cn-ext","iso-2022-kr","replacement"]),Qi={encoding:"replacement",decode:t=>t&&t.byteLength?"\uFFFD":""},eu=new Map([["utf-16","utf-16"],["utf16","utf-16"],["utf_16","utf-16"],["utf-16le","utf-16le"],["utf-16be","utf-16be"]]);function Us(t){if(t=(t||"utf8").trim().toLowerCase(),Ls.has(t))return t;let e=eu.get(t);if(e)return e;let r=Xi(t),n=r.match(Yi),s=n&&Zi.get(n[1])||Wi.get(r)||r;return Ls.has(s)?s:null}var _s=new Map;function jt(t){if(Ji.has(t))return Qi;let e=_s.get(t);if(e===void 0){e=null;try{e=new TextDecoder(t)}catch{}_s.set(t,e)}return e}var Pr=new TextDecoder;function Ps(t){let e=Us(t);return e?jt(e):null}function $s(t){return Ps(t)||jt("windows-1252")||Pr}var tu=new Set(["utf-16le","utf-16be"]),ru=new Set(["utf-16"]);function nu(t){return t[0]===254&&t[1]===255?"utf-16be":t[0]===255&&t[1]===254?"utf-16le":null}function su(t){for(let e=0;e<t.length;){let r=t[e];if(r<128){e++;continue}let n;if(r>=194&&r<=223)n=1;else if(r>=224&&r<=239)n=2;else if(r>=240&&r<=244)n=3;else return!1;if(e+n>=t.length)return!1;let s=t[e+1],o=r===224?160:r===240?144:128,i=r===237?159:r===244?143:191;if(s<o||s>i)return!1;for(let u=2;u<=n;u++)if((t[e+u]&192)!==128)return!1;e+=n+1}return!0}function Ht(t,e=Pr){let r=t instanceof Uint8Array?t:new Uint8Array(t);return su(r)?e.decode(r):$s("windows-1252").decode(r)}function $r(t,e){let r=t instanceof Uint8Array?t:new Uint8Array(t),n=Us(e),s=n?jt(n):null;if(n&&ru.has(n)){let o=nu(r);s=o&&jt(o)||s}return s?s.decode(r):Ht(r)}var ou=1024,iu=/charset\s*=\s*["']?\s*([^\s"';>]+)/;function uu(t){let e=Pr.decode(t.subarray(0,ou)).toLowerCase(),r=0;for(;(r=e.indexOf("<meta",r))>=0;){let n=e.indexOf(">",r);n<0&&(n=e.length);let s=iu.exec(e.slice(r,n));if(s)return s[1];r=n}return null}function Ms(t,e,r){let n=new Uint8Array(t);if(e)return $r(n,e);let s=r?uu(n):null,o=s?Ps(s):null;return!o||tu.has(o.encoding)?Ht(n):(o.encoding==="x-user-defined"?$s("windows-1252"):o).decode(n)}async function Ke(t){if("arrayBuffer"in t)return await t.arrayBuffer();let e=new FileReader;return new Promise((r,n)=>{e.onload=()=>{r(e.result)},e.onerror=()=>{n(e.error)},e.readAsArrayBuffer(t)})}function _e(t){return t>=48&&t<=57?t-48:t>=97&&t<=102?t-97+10:t>=65&&t<=70?t-65+10:-1}function at(t){return t.replace(/[\r\n]+/g," ")}function Ir(t,e,r){let n=t.indexOf("*");n>=0&&(t=t.slice(0,n)),e=e.toUpperCase();let s;if(e==="Q"){r=r.replace(/=\s+([0-9a-fA-F])/g,"=$1").replace(/[_\s]/g," ");let o=ue.encode(r),i=[];for(let a=0,l=o.length;a<l;a++){let c=o[a];if(a<=l-2&&c===61){let f=_e(o[a+1]),p=_e(o[a+2]);if(f>=0&&p>=0){i.push(f<<4|p),a+=2;continue}}i.push(c)}s=new ArrayBuffer(i.length);let u=new DataView(s);for(let a=0,l=i.length;a<l;a++)u.setUint8(a,i[a])}else e==="B"?s=Ur(r.replace(/[^a-zA-Z0-9\+\/=]+/g,"")):s=ue.encode(r);return at($r(s,t))}var js="=\\?([^?\\s]+)\\?([QqBb])\\?([^?]*)\\?=",Ns=new RegExp(js,"g"),au=/^[ \t\r\n]+$/,cu=new RegExp(`^(?:${js}\\s*)+$`);function Hs(t){return cu.test(t)}function lu(t){let e=[];Ns.lastIndex=0;let r=0,n;for(;n=Ns.exec(t);)n.index>r&&e.push({text:t.substring(r,n.index)}),e.push({charset:n[1],encoding:n[2],encodedText:n[3]}),r=n.index+n[0].length;return r<t.length&&e.push({text:t.substring(r)}),e}function fu(t,e){let r=t.encoding.toUpperCase();return t.charset!==e.charset||r!==e.encoding.toUpperCase()?!1:r==="B"?t.encodedText.length%4===0&&!t.padded:!0}function qs(t,e){let r="",n=null;for(let s=0;s<t.length;s++){let o=t[s];if(o.text!==void 0){let i=t[s+1];if(n&&i&&i.text===void 0&&au.test(o.text))continue;n&&(r+=Ir(n.charset,n.encoding,n.encodedText),n=null),r+=o.text;continue}if(n&&e&&fu(n,o)){n.encodedText+=o.encodedText,n.padded=o.encodedText.endsWith("=");continue}n&&(r+=Ir(n.charset,n.encoding,n.encodedText)),n={charset:o.charset,encoding:o.encoding,encodedText:o.encodedText,padded:o.encodedText.endsWith("=")}}return n&&(r+=Ir(n.charset,n.encoding,n.encodedText)),r}function De(t){let e=lu((t||"").toString()),r=qs(e,!0);return r.indexOf("\uFFFD")<0?r:qs(e,!1)}function Is(t,e){e=e||"utf-8";let r=[];for(let o=0;o<t.length;o++){let i=t.charAt(o),u=i==="%"?_e(t.charCodeAt(o+1)):-1,a=u>=0?_e(t.charCodeAt(o+2)):-1;if(a>=0)r.push(u<<4|a),o+=2;else if(i.charCodeAt(0)>126){let l=ue.encode(i);for(let c=0;c<l.length;c++)r.push(l[c])}else r.push(i.charCodeAt(0))}let n=new ArrayBuffer(r.length),s=new DataView(n);for(let o=0,i=r.length;o<i;o++)s.setUint8(o,r[o]);return $r(n,e)}function Ks(t){let e=new Map;Object.keys(t.params).forEach(r=>{let n=r.match(/\*((\d+)\*?)?$/);if(!n)return;let s=r.slice(0,n.index).toLowerCase(),o=Number(n[2])||0,i=e.get(s);i||(i={charset:null,values:[]},e.set(s,i));let u=t.params[r],a=n[0].charAt(n[0].length-1)==="*";o===0&&a&&(n=u.match(/^([^']*)'[^']*'(.*)$/))&&(i.charset=n[1]||"utf-8",u=n[2]),i.values.push({nr:o,value:u,encoded:a}),delete t.params[r]}),e.forEach((r,n)=>{if(Object.prototype.hasOwnProperty.call(t.params,n))return;let s="",o="";for(let i of r.values.sort((u,a)=>u.nr-a.nr)){if(i.encoded){o+=i.value;continue}o&&(s+=Is(o,r.charset),o=""),s+=i.value}o&&(s+=Is(o,r.charset)),t.params[n]=s})}var ct=class{constructor(){this.chunks=[],this.runBuffer=null,this.runStart=0,this.runEnd=0,this.pendingLineBreak=null}continuesRun(e){return e.buffer===this.runBuffer&&e.byteOffset===this.runEnd}flushRun(){this.runBuffer&&this.runEnd>this.runStart&&this.chunks.push(new Uint8Array(this.runBuffer,this.runStart,this.runEnd-this.runStart)),this.runBuffer=null}update(e,r){let n=this.pendingLineBreak;n&&this.continuesRun(n)&&e.buffer===this.runBuffer&&e.byteOffset===this.runEnd+n.byteLength?this.runEnd=e.byteOffset+e.byteLength:(this.flushRun(),n&&this.chunks.push(n),this.runBuffer=e.buffer,this.runStart=e.byteOffset,this.runEnd=e.byteOffset+e.byteLength),this.pendingLineBreak=r}finalize(e=!1){let r=this.pendingLineBreak;return!e&&r&&(this.continuesRun(r)?this.runEnd+=r.byteLength:(this.flushRun(),this.chunks.push(r))),this.flushRun(),Ke(new Blob(this.chunks,{type:"application/octet-stream"}))}};var Ne=class{constructor(e=100*1024){this.maxChunkSize=e,this.buffer=null,this.bufferPos=0,this.chunks=[]}writeByte(e){(!this.buffer||this.bufferPos>=this.buffer.length)&&(this.flush(),this.buffer??=new Uint8Array(this.maxChunkSize)),this.buffer[this.bufferPos++]=e}writeBytes(e,r=0,n=e.length){for(;r<n;){(!this.buffer||this.bufferPos>=this.buffer.length)&&(this.flush(),this.buffer??=new Uint8Array(this.maxChunkSize));let s=Math.min(n-r,this.buffer.length-this.bufferPos);this.buffer.set(e.subarray(r,r+s),this.bufferPos),this.bufferPos+=s,r+=s}}append(e){e.length>=this.maxChunkSize/2?(this.flush(),this.chunks.push(e)):this.writeBytes(e)}flush(){this.buffer&&this.bufferPos&&(this.chunks.push(this.buffer.slice(0,this.bufferPos)),this.bufferPos=0)}finalize(){return this.flush(),Ke(new Blob(this.chunks,{type:"application/octet-stream"}))}};var lt=class{constructor(e){e=e||{},this.decoder=e.decoder||new TextDecoder,this.maxChunkSize=100*1024,this.output=new Ne,this.remainder=""}pushChunk(e){e.length&&this.output.append(new Uint8Array(Ur(e)))}flushRemainder(){this.pushChunk(this.remainder),this.remainder=""}update(e){let r=this.decoder.decode(e).replace(/[^a-zA-Z0-9+/=]+/g,""),n=0,s;for(;(s=r.indexOf("=",n))>=0;)this.remainder+=r.substring(n,s),this.flushRemainder(),n=s+1;if(this.remainder+=r.substring(n),this.remainder.length>=this.maxChunkSize){let o=Math.floor(this.remainder.length/4)*4;this.pushChunk(this.remainder.substring(0,o)),this.remainder=this.remainder.substring(o)}}finalize(){return this.flushRemainder(),this.output.finalize()}};var zs=61,ft=class{constructor(){this.output=new Ne,this.pendingLineBreak=null}writeLineBreak(){this.pendingLineBreak&&this.output.writeBytes(this.pendingLineBreak)}update(e,r){this.writeLineBreak();let n=e.length;for(;n>0&&de(e[n-1]);)n--;let s=n>0&&e[n-1]===zs;s&&n--;let o=0;for(let i=0;i<n;i++){if(e[i]!==zs||i+2>=n)continue;let u=_e(e[i+1]),a=_e(e[i+2]);u<0||a<0||(this.output.writeBytes(e,o,i),this.output.writeByte(u<<4|a),i+=2,o=i+1)}this.output.writeBytes(e,o,n),this.pendingLineBreak=s?null:r}finalize(e=!1){return e||this.writeLineBreak(),this.output.finalize()}};var du={EINVALIDOPTION:TypeError,EINVALIDINPUT:TypeError,EPARSERREUSED:Error,EMAXNESTINGDEPTH:Error,EMAXHEADERSIZE:Error,EMAXPARTCOUNT:Error,EMAXFORWARDEDADDRESSES:Error};function re(t,e){let r=new du[t](e);return r.code=t,r}var pu=new TextDecoder("utf-8",{ignoreBOM:!0}),hu=4096,mu=64,gu=t=>{let e=0,r=t.length;for(;e<r&&de(t.charCodeAt(e));)e++;for(;r>e&&de(t.charCodeAt(r-1));)r--;return t.slice(e,r)},yu=/^(?:From |[!-9;-~]*[ \t]*:)/,xu=new Set(["content-type","content-transfer-encoding","content-disposition","content-id","content-description"]),ze=class{constructor(e){this.options=e,this.postalMime=e.postalMime;let r=this.postalMime.limits;if(this.postalMime.counters.partCount++,this.postalMime.counters.partCount>r.maxPartCount)throw re("EMAXPARTCOUNT",`Maximum MIME part count of ${r.maxPartCount} parts exceeded`);if(this.childNodes=[],this.finalizedChildCount=0,e.parentNode){if(this.parentNode=e.parentNode,this.depth=this.parentNode.depth+1,this.depth>r.maxNestingDepth)throw re("EMAXNESTINGDEPTH",`Maximum MIME nesting depth of ${r.maxNestingDepth} levels exceeded`);e.parentNode.childNodes.push(this)}else this.depth=0;this.state="header",this.headerLines=[];let s=(e.parentMultipartType||null)==="digest"?"message/rfc822":"text/plain";this.contentType={value:s,parsed:{value:s,params:{}},multipart:!1},this.contentTransferEncoding={value:"8bit",encoding:""},this.contentDisposition={value:"",parsed:{value:"",params:{}}},this.headers=[],this.rawHeaderLines=[],this.contentDecoder=null,this.content=null}setupContentDecoder(e){e==="base64"?this.contentDecoder=new lt:e==="quoted-printable"?this.contentDecoder=new ft:this.contentDecoder=new ct}async finalize(e=!1){if(this.state==="finished")return;this.state==="header"&&this.endHeaders();let r=this.postalMime.boundaries;for(let n=r.length-1;n>=0;n--)if(r[n].node===this){r.splice(n,1);break}await this.finalizeChildNodes(e),this.content=this.contentDecoder?await this.contentDecoder.finalize(e):null,this.contentDecoder=null,this.state="finished"}async finalizeChildNodes(e=!1){for(;this.finalizedChildCount<this.childNodes.length;)await this.childNodes[this.finalizedChildCount++].finalize(e)}stripComments(e){let r="",n=0,s=!1,o=!1,i=-1,u=!1,a=0,l=g=>{r+=e.slice(a,g),a=g+1},c=!1,f=!1,p=g=>{c=!0,f=de(e.charCodeAt(g))},h=()=>!u||!c||f;for(let g=0;g<e.length;g++){let m=e.charAt(g);if(s)s=!1;else if(m==="\\")s=!0;else if(m==='"'&&n===0)o=!o;else if(!o){if(m==="("&&h()){n===0&&(i=g),n++,l(g);continue}if(m===")"&&n>0){n--,l(g);continue}n===0&&(m==="="?u=!0:m===";"&&(u=!1))}n===0?p(g):l(g)}return n===0||e.indexOf(";",i)<0?r+e.slice(a):e}parseStructuredHeader(e){e=this.stripComments(e);let r={value:"",params:{}},n=!1,s="",o="value",i="",u=!1,a=!1,l=!1,c,f=()=>{s.length&&(s+=i),i=""},p=-1,h=d=>{p>=0&&(s+=e.slice(p,d),p=-1)},g=d=>{p<0&&(f(),p=d)},m=()=>{let d=s;return s="",i="",u=!1,d},x=(d,y)=>{d&&!Object.prototype.hasOwnProperty.call(r.params,d)&&(r.params[d]=y)},v=()=>{let d=m();n===!1?r.value=d:x(n,d)},D=()=>{x(m().trim().toLowerCase(),"")};for(let d=0,y=e.length;d<y;d++)switch(c=e.charAt(d),o){case"key":if(c==="="){h(d),n=m().trim().toLowerCase(),o="value";break}if(c===";"){h(d),D();break}p<0&&(p=d);break;case"value":if(u&&c!==";"){l=!1;break}if(l)g(d);else if(a&&c==="\\"){h(d),l=!0;continue}else a&&c===a?(h(d),a=!1,u=!0):!a&&c==='"'?(h(d),a=c,f()):!a&&c===";"?(h(d),v(),o="key"):!a&&(c===" "||c===" ")?(h(d),i+=c):g(d);l=!1;break}return h(e.length),o==="value"?v():D(),r.value&&(r.value=r.value.toLowerCase()),Ks(r),r}decodeFlowedText(e,r){let n=[],s=[],o=!1,i=0;for(let u=0;u<=e.length;){let a=e.indexOf(`
|
|
2
|
+
import{spawn as Jo}from"node:child_process";import{mkdirSync as Ma,readFileSync as cr,writeFileSync as ja}from"node:fs";import{hostname as Ha}from"node:os";import{basename as Dn,join as Ka}from"node:path";import{createInterface as za}from"node:readline";import{parseArgs as X}from"node:util";var wt=BigInt(4294967295),On=BigInt(32);function ui(t,e=!1){return e?{h:Number(t&wt),l:Number(t>>On&wt)}:{h:Number(t>>On&wt)|0,l:Number(t&wt)|0}}function Rn(t,e=!1){let r=t.length,n=new Uint32Array(r),s=new Uint32Array(r);for(let o=0;o<r;o++){let{h:i,l:u}=ui(t[o],e);[n[o],s[o]]=[i,u]}return[n,s]}var ai=t=>t/2**32|0,ci=t=>t>>>0;function Ln(t,e,r,n){let s=ai(r),o=ci(r);t.setUint32(e,n?o:s,n),t.setUint32(e+4,n?s:o,n)}var hr=(t,e,r)=>t>>>r,mr=(t,e,r)=>t<<32-r|e>>>r,ke=(t,e,r)=>t>>>r|e<<32-r,Fe=(t,e,r)=>t<<32-r|e>>>r,et=(t,e,r)=>t<<64-r|e>>>r-32,tt=(t,e,r)=>t>>>r-32|e<<64-r;function se(t,e,r,n){let s=(e>>>0)+(n>>>0);return{h:t+r+(s/2**32|0)|0,l:s|0}}var _n=(t,e,r)=>(t>>>0)+(e>>>0)+(r>>>0),Nn=(t,e,r,n)=>e+r+n+(t/2**32|0)|0,qn=(t,e,r,n)=>(t>>>0)+(e>>>0)+(r>>>0)+(n>>>0),In=(t,e,r,n,s)=>e+r+n+s+(t/2**32|0)|0,Un=(t,e,r,n,s)=>(t>>>0)+(e>>>0)+(r>>>0)+(n>>>0)+(s>>>0),Pn=(t,e,r,n,s,o)=>e+r+n+s+o+(t/2**32|0)|0;function Dt(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in t&&t.BYTES_PER_ELEMENT===1}var gr=t=>t?`"${t}" `:"";function rt(t,e=""){if(typeof t!="number")throw new TypeError(gr(e)+"expected number, got "+typeof t);if(!Number.isSafeInteger(t)||t<0)throw new RangeError(gr(e)+"expected integer >= 0, got "+t);return t}function oe(t,e,r=""){if(Dt(t)&&(e===void 0||t.length===e))return t;e!==void 0&&rt(e,"length");let n=Dt(t),s=e!==void 0?` of length ${e}`:"",o=n?`length=${t.length}`:`type=${typeof t}`,i=gr(r)+"expected Uint8Array"+s+", got "+o;throw n?new RangeError(i):new TypeError(i)}var fi=(t,e)=>{if(t===null||typeof t!="object"||Array.isArray(t))throw new TypeError((e==="object"?"":`"${e}" `)+"expected object, got type="+typeof t)},$n=(t,e)=>{fi(t,e);let r=Object.getPrototypeOf(t);if(r!==Object.prototype&&r!==null)throw new TypeError(`"${e}" expected plain object`);if(Object.hasOwn(t,"__proto__"))throw new TypeError(`"${e}.__proto__" is not allowed`)};function yr(t,e=!0){if(t.destroyed)throw new Error("hash was destroyed");if(e&&t.finished)throw new Error("digest() was already called")}function jn(t,e){oe(t,void 0,"output");let r=e.outputLen;if(!(t.length>=r))throw new RangeError('"output" expected length >= '+r)}function xr(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}function Et(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}var Hn=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",di=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function Bt(t){if(oe(t),Hn)return t.toHex();let e="";for(let r=0;r<t.length;r++)e+=di[t[r]];return e}function Mn(t){return t>=48&&t<=57?t-48:t>=65&&t<=70?t-55:t>=97&&t<=102?t-87:void 0}function Ct(t){if(typeof t!="string")throw new TypeError("hex string expected, got "+typeof t);if(Hn)try{return Uint8Array.fromHex(t)}catch(s){throw s instanceof SyntaxError?new RangeError(s.message):s}let e=t.length,r=e/2;if(e%2)throw new RangeError("hex string expected, got unpadded hex of length "+e);let n=new Uint8Array(r);for(let s=0,o=0;s<r;s++,o+=2){let i=Mn(t.charCodeAt(o)),u=Mn(t.charCodeAt(o+1));if(i===void 0||u===void 0){let a=t[o]+t[o+1];throw new RangeError('hex string expected, got non-hex character "'+a+'" at index '+o)}n[s]=i*16+u}return n}function br(...t){let e=0;for(let n=0;n<t.length;n++){let s=t[n];oe(s),e+=s.length}let r=new Uint8Array(e);for(let n=0,s=0;n<t.length;n++){let o=t[n];r.set(o,s),s+=o.length}return r}function pi(t,e,r="opts"){return $n(t,"defaults"),e!==void 0&&$n(e,r),Object.assign(Object.create(null),t,e)}function Kn(t,e={}){if(typeof t!="function")throw new TypeError('"hashCons" expected function, got type='+typeof t);e=pi({},e,"info");let r=(s,o)=>t(o).update(s).digest(),n=t(void 0);return r.outputLen=n.outputLen,r.blockLen=n.blockLen,r.canXOF=n.canXOF,r.create=s=>t(s),Object.assign(r,e),Object.freeze(r)}function zn(t=32){rt(t,"bytesLength");let e=typeof globalThis=="object"?globalThis.crypto:null;if(typeof e?.getRandomValues!="function")throw new Error("crypto.getRandomValues must be defined");if(t>65536)throw new RangeError(`"bytesLength" expected <= 65536, got ${t}`);return e.getRandomValues(new Uint8Array(t))}var Gn=t=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,t])});var vt=class{blockLen;outputLen;canXOF=!1;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(e,r,n,s){this.blockLen=e,this.outputLen=r,this.padOffset=n,this.isLE=s,this.buffer=new Uint8Array(e),this.view=Et(this.buffer)}update(e){yr(this),oe(e);let{view:r,buffer:n,blockLen:s}=this,o=e.length,i=!1;for(let u=0;u<o;){let a=Math.min(s-this.pos,o-u);if(a===s){let l=Et(e);for(;s<=o-u;u+=s)this.process(l,u);i=!0;continue}n.set(u===0&&a===o?e:e.subarray(u,u+a),this.pos),this.pos+=a,u+=a,this.pos===s&&(this.process(r,0),this.pos=0,i=!0)}return this.length+=e.length,i&&this.roundClean(),this}digestInto(e){yr(this),jn(e,this),this.finished=!0;let{buffer:r,view:n,blockLen:s,isLE:o}=this,{pos:i}=this;r[i++]=128,r.fill(0,i),this.padOffset>s-i&&(this.process(n,0),r.fill(0)),Ln(n,s-8,this.length*8,o),this.process(n,0),this.roundClean();let u=e===r?n:Et(e),a=this.outputLen,l=a/4,c=this.get();if(a%4||l>c.length)throw new Error("invalid outputLen");for(let f=0;f<l;f++)u.setUint32(4*f,c[f],o)}digest(){let{buffer:e,outputLen:r}=this;this.digestInto(e);let n=e.slice(0,r);return this.destroy(),n}_cloneIntoMeta(e){let{buffer:r,length:n,finished:s,destroyed:o,pos:i}=this;return e.destroyed=o,e.finished=s,e.length=n,e.pos=i,i&&e.buffer.set(r),e}clone(){return this._cloneInto()}};var Vn=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var Wn=Rn(["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(t=>BigInt(t))),hi=Wn[0],mi=Wn[1],ye=new Uint32Array(80),xe=new Uint32Array(80),Ar=class extends vt{Ah=0;Al=0;Bh=0;Bl=0;Ch=0;Cl=0;Dh=0;Dl=0;Eh=0;El=0;Fh=0;Fl=0;Gh=0;Gl=0;Hh=0;Hl=0;constructor(e,r){super(128,e,16,!1),this.Ah=r[0]|0,this.Al=r[1]|0,this.Bh=r[2]|0,this.Bl=r[3]|0,this.Ch=r[4]|0,this.Cl=r[5]|0,this.Dh=r[6]|0,this.Dl=r[7]|0,this.Eh=r[8]|0,this.El=r[9]|0,this.Fh=r[10]|0,this.Fl=r[11]|0,this.Gh=r[12]|0,this.Gl=r[13]|0,this.Hh=r[14]|0,this.Hl=r[15]|0}get(){let{Ah:e,Al:r,Bh:n,Bl:s,Ch:o,Cl:i,Dh:u,Dl:a,Eh:l,El:c,Fh:f,Fl:p,Gh:h,Gl:g,Hh:m,Hl:x}=this;return[e,r,n,s,o,i,u,a,l,c,f,p,h,g,m,x]}set(e,r,n,s,o,i,u,a,l,c,f,p,h,g,m,x){this.Ah=e|0,this.Al=r|0,this.Bh=n|0,this.Bl=s|0,this.Ch=o|0,this.Cl=i|0,this.Dh=u|0,this.Dl=a|0,this.Eh=l|0,this.El=c|0,this.Fh=f|0,this.Fl=p|0,this.Gh=h|0,this.Gl=g|0,this.Hh=m|0,this.Hl=x|0}_cloneInto(e){return(e||=new this.constructor).set(...this.get()),this._cloneIntoMeta(e)}process(e,r){for(let d=0;d<16;d++,r+=4)ye[d]=e.getUint32(r),xe[d]=e.getUint32(r+=4);for(let d=16;d<80;d++){let y=ye[d-15]|0,w=xe[d-15]|0,k=ke(y,w,1)^ke(y,w,8)^hr(y,w,7),I=Fe(y,w,1)^Fe(y,w,8)^mr(y,w,7),C=ye[d-2]|0,E=xe[d-2]|0,O=ke(C,E,19)^et(C,E,61)^hr(C,E,6),$=Fe(C,E,19)^tt(C,E,61)^mr(C,E,6),_=qn(I,$,xe[d-7],xe[d-16]),U=In(_,k,O,ye[d-7],ye[d-16]);ye[d]=U|0,xe[d]=_|0}let{Ah:n,Al:s,Bh:o,Bl:i,Ch:u,Cl:a,Dh:l,Dl:c,Eh:f,El:p,Fh:h,Fl:g,Gh:m,Gl:x,Hh:v,Hl:D}=this;for(let d=0;d<80;d++){let y=ke(f,p,14)^ke(f,p,18)^et(f,p,41),w=Fe(f,p,14)^Fe(f,p,18)^tt(f,p,41),k=f&h^~f&m,I=p&g^~p&x,C=Un(D,w,I,mi[d],xe[d]),E=Pn(C,v,y,k,hi[d],ye[d]),O=C|0,$=ke(n,s,28)^et(n,s,34)^et(n,s,39),_=Fe(n,s,28)^tt(n,s,34)^tt(n,s,39),U=n&o^n&u^o&u,b=s&i^s&a^i&a;v=m|0,D=x|0,m=h|0,x=g|0,h=f|0,g=p|0,{h:f,l:p}=se(l|0,c|0,E|0,O|0),l=u|0,c=a|0,u=o|0,a=i|0,o=n|0,i=s|0;let B=_n(O,_,b);n=Nn(B,E,$,U),s=B|0}({h:n,l:s}=se(this.Ah|0,this.Al|0,n|0,s|0)),{h:o,l:i}=se(this.Bh|0,this.Bl|0,o|0,i|0),{h:u,l:a}=se(this.Ch|0,this.Cl|0,u|0,a|0),{h:l,l:c}=se(this.Dh|0,this.Dl|0,l|0,c|0),{h:f,l:p}=se(this.Eh|0,this.El|0,f|0,p|0),{h,l:g}=se(this.Fh|0,this.Fl|0,h|0,g|0),{h:m,l:x}=se(this.Gh|0,this.Gl|0,m|0,x|0),{h:v,l:D}=se(this.Hh|0,this.Hl|0,v|0,D|0),this.set(n,s,o,i,u,a,l,c,f,p,h,g,m,x,v,D)}roundClean(){xr(ye,xe)}destroy(){this.destroyed=!0,xr(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},wr=class extends Ar{constructor(){super(64,Vn)}};var Dr=Kn(()=>new wr,Gn(3));function Tt(t,e,r=()=>{}){if(!Array.isArray(t))throw new TypeError(`"${e}" expected array, got type=${typeof t}`);for(let n=0;n<t.length;n++)r(t[n],`${e}[${n}]`);return t}var H=(t,e,r)=>oe(t,e,r),Er=rt;function be(t,e="object"){if(t===null||typeof t!="object"||Array.isArray(t))throw new TypeError(e==="object"?"expected valid options object":`"${e}" expected object, got type=${typeof t}`);return t}function Oe(t,e){if(typeof t!="function")throw new TypeError(`"${e}" is invalid: expected function, got ${typeof t}`);return t}var Yn=Bt,Br=(...t)=>br(...t),Xn=t=>Ct(t),nt=Dt,st=t=>zn(t),St=BigInt(0),Zn=BigInt(1),gi=t=>t?`"${t}" `:"";function fe(t,e=""){if(typeof t!="boolean")throw new TypeError(gi(e)+"expected boolean, got type="+typeof t);return t}function yi(t){if(typeof t=="bigint"){if(!Ae(t))throw new RangeError("positive bigint expected, got "+t)}else Er(t);return t}function je(t,e=""){if(typeof t!="number"){let r=e&&`"${e}" `;throw new TypeError(r+"expected number, got type="+typeof t)}if(!Number.isSafeInteger(t)){let r=e&&`"${e}" `;throw new RangeError(r+"expected safe integer, got "+t)}}function Jn(t){if(typeof t!="string")throw new TypeError("hex string expected, got "+typeof t);return t===""?St:BigInt("0x"+t)}function kt(t){return Jn(Bt(t))}function de(t){return Jn(Bt(we(oe(t)).reverse()))}function Cr(t,e){if(rt(e),e===0)throw new Error("zero output length is invalid");t=yi(t);let r=e*2,n=t.toString(16);if(n.length>r)throw new RangeError("number is too large");return Ct(n.padStart(r,"0"))}function Ft(t,e){return Cr(t,e).reverse()}function we(t){return Uint8Array.from(H(t))}function Ae(t){return typeof t=="bigint"&&St<=t}function vr(t,e,r){return Ae(t)&&Ae(e)&&Ae(r)&&e<=t&&t<r}function Re(t,e,r,n){if(!vr(e,r,n))throw new RangeError("expected valid "+t+": "+r+" <= n < "+n+", got "+e)}function Sr(t){if(t<St)throw new Error("expected non-negative bigint, got "+t);return t===St?0:t.toString(2).length}var Qn=t=>(je(t,"n"),(Zn<<BigInt(t))-Zn);function ie(t,e={},r={},n="object"){be(t,n),be(e,"fields"),be(r,"optFields");function s(i,u,a){let l=n==="object"?`param "${String(i)}"`:`"${n}.${String(i)}"`,c=t[i];if(!Object.hasOwn(t,i)&&(a?c!==void 0:u!=="function"))throw new TypeError(`${l} is invalid: expected own property`);if(a&&c===void 0)return;let f=typeof c;if(f!==u||c===null)throw new TypeError(`${l} is invalid: expected ${u}, got ${f}`)}let o=(i,u)=>Object.entries(i).forEach(([a,l])=>s(a,l,u));o(e,!1),o(r,!0)}var K=BigInt(0),N=BigInt(1),Le=BigInt(2),rs=BigInt(3),Tr=BigInt(4),ns=BigInt(5),xi=BigInt(7),ss=BigInt(8),bi=BigInt(9),Ai=BigInt(15),os=BigInt(16),wi=BigInt("0x10000000000000000");function R(t,e){if(e<=K)throw new Error("mod: expected positive modulus, got "+e);let r=t%e;return r>=K?r:e+r}function Di(t,e,r){if(r<=N)throw new Error("pow: expected modulus > 1, got "+r);if(typeof e!="bigint")throw new TypeError("invalid exponent: expected bigint, got "+typeof e);if(e<K)throw new Error("invalid exponent, negatives unsupported");if(e===K)return N;if(e===N)return t;let n=t%r;if(n<K&&(n+=r),e<wi){let u=N;for(;e>K;)e&N&&(u=u*n%r),n=n*n%r,e>>=N;return u}let s=[];for(;e>K;)s.push(Number(e&Ai)),e>>=Tr;let o=new Array(16);o[0]=N,o[1]=n;for(let u=2;u<16;u++)o[u]=o[u-1]*n%r;let i=o[s[s.length-1]];for(let u=s.length-2;u>=0;u--){i=i*i%r,i=i*i%r,i=i*i%r,i=i*i%r;let a=s[u];a!==0&&(i=i*o[a]%r)}return i}function J(t,e,r){if(r<=N)throw new Error("pow2: expected modulus > 1, got "+r);if(e<K)throw new Error("pow2: expected non-negative exponent, got "+e);let n=t;for(;e-- >K;)n*=n,n%=r;return n}function es(t,e){if(t===K)throw new Error("invert: expected non-zero number");if(e<=N)throw new Error("invert: expected modulus > 1, got "+e);let r=R(t,e),n=e,s=K,o=N;for(;r!==K;){let u=n/r,a=n-r*u,l=s-o*u;n=r,r=a,s=o,o=l}if(n!==N)throw new Error("invert: does not exist");return R(s,e)}function kr(t,e,r){let n=t;if(!n.eql(n.sqr(e),r))throw new Error("Cannot find square root")}function Fr(t,e){if((t&N)===K)throw new Error(e+": expected odd modulus, got "+t)}function is(t,e){let r=t,n=(r.ORDER+N)/Tr,s=r.pow(e,n);return kr(r,s,e),s}function Ei(t,e){let r=t,n=(r.ORDER-ns)/ss,s=r.mul(e,Le),o=r.pow(s,n),i=r.mul(e,o),u=r.mul(r.mul(i,Le),o),a=r.mul(i,r.sub(u,r.ONE));return kr(r,a,e),a}function Bi(t){let e=Lt(t),r=us(t),n=r(e,e.neg(e.ONE)),s=r(e,n),o=r(e,e.neg(n)),i=(t+xi)/os;return((u,a)=>{let l=u,c=l.pow(a,i),f=l.mul(c,n),p=l.mul(c,s),h=l.mul(c,o),g=l.eql(l.sqr(f),a),m=l.eql(l.sqr(p),a);c=l.cmov(c,f,g),f=l.cmov(h,p,m);let x=l.eql(l.sqr(f),a),v=l.cmov(c,f,x);return kr(l,v,a),v})}function us(t){if(t<rs)throw new Error("sqrt is not defined for small field");Fr(t,"tonelliShanks");let e=t-N,r=0;for(;e%Le===K;)e/=Le,r++;let n=Le,s=Lt(t);for(;ot(s,n)===1;)if(n++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(r===1)return is;let o=s.pow(n,e),i=(e+N)/Le;return function(a,l){let c=a;if(c.is0(l))return l;if(ot(c,l)!==1)throw new Error("Cannot find square root");let f=r,p=c.mul(c.ONE,o),h=c.pow(l,e),g=c.pow(l,i);for(;!c.eql(h,c.ONE);){if(c.is0(h))throw new Error("Cannot find square root: probably non-prime P");let m=1,x=c.sqr(h);for(;!c.eql(x,c.ONE);)if(m++,x=c.sqr(x),m===f)throw new Error("Cannot find square root");let v=N<<BigInt(f-m-1),D=c.pow(p,v);f=m,p=c.sqr(D),h=c.mul(h,p),g=c.mul(g,D)}return g}}function Ci(t){return Fr(t,"Fp.sqrt"),t%Tr===rs?is:t%ss===ns?Ei:t%os===bi?Bi(t):us(t)}var as=(t,e)=>(R(t,e)&N)===N,vi=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function He(t){if(be(t,"field"),typeof t.ORDER!="bigint")throw new TypeError('param "ORDER" is invalid: expected bigint, got '+typeof t.ORDER);je(t.BYTES,"BYTES"),je(t.BITS,"BITS");for(let e of vi)Oe(t[e],"field."+e);if(t.BYTES<1||t.BITS<1)throw new Error("invalid field: expected BYTES/BITS > 0");if(t.ORDER<=N)throw new Error("invalid field: expected ORDER > 1, got "+t.ORDER);return t}function Rt(t,e,r=!1){He(t),Tt(e,"nums"),fe(r,"passZero");let n=t,s=new Array(e.length).fill(r?n.ZERO:void 0),o=e.reduce((u,a,l)=>n.is0(a)?u:(s[l]=u,n.mul(u,a)),n.ONE),i=n.inv(o);return e.reduceRight((u,a,l)=>n.is0(a)?u:(s[l]=n.mul(u,s[l]),n.mul(u,a)),i),s}function ot(t,e){He(t);let r=t;Fr(r.ORDER,"FpLegendre");let n=(r.ORDER-N)/Le,s=r.pow(e,n),o=r.eql(s,r.ONE),i=r.eql(s,r.ZERO),u=r.eql(s,r.neg(r.ONE));if(!o&&!i&&!u)throw new Error("invalid Legendre symbol result");return o?1:i?0:-1}function Si(t,e){if(e!==void 0&&Er(e),t<=K)throw new Error("invalid n length: expected positive n, got "+t);if(e!==void 0&&e<1)throw new Error("invalid n length: expected positive bit length, got "+e);let r=Sr(t);if(e!==void 0&&e<r)throw new Error(`invalid n length: expected nBitLength (${e}) >= bitLen(n) (${r})`);let n=e!==void 0?e:r,s=Math.ceil(n/8);return{nBitLength:n,nByteLength:s}}var ts=new WeakMap,Ot=class{ORDER;BITS;BYTES;isLE;ZERO=K;ONE=N;_lengths;_mod;constructor(e,r={}){if(e<=N)throw new Error("invalid field: expected ORDER > 1, got "+e);let n;this.isLE=!1,r!=null&&typeof r=="object"&&(typeof r.BITS=="number"&&(n=r.BITS),typeof r.sqrt=="function"&&Object.defineProperty(this,"sqrt",{value:r.sqrt,enumerable:!0}),typeof r.isLE=="boolean"&&(this.isLE=r.isLE),r.allowedLengths&&(this._lengths=Object.freeze(r.allowedLengths.slice())),typeof r.modFromBytes=="boolean"&&(this._mod=r.modFromBytes));let{nBitLength:s,nByteLength:o}=Si(e,n);if(o>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");this.ORDER=e,this.BITS=s,this.BYTES=o,Object.freeze(this)}create(e){return R(e,this.ORDER)}isValid(e){if(typeof e!="bigint")throw new TypeError("invalid field element: expected bigint, got "+typeof e);return K<=e&&e<this.ORDER}is0(e){return e===K}isValidNot0(e){return!this.is0(e)&&this.isValid(e)}isOdd(e){return(e&N)===N}neg(e){return R(-e,this.ORDER)}eql(e,r){return e===r}sqr(e){return R(e*e,this.ORDER)}add(e,r){return R(e+r,this.ORDER)}sub(e,r){return R(e-r,this.ORDER)}mul(e,r){return R(e*r,this.ORDER)}pow(e,r){return Di(e,r,this.ORDER)}div(e,r){return R(e*es(r,this.ORDER),this.ORDER)}sqrN(e){return e*e}addN(e,r){return e+r}subN(e,r){return e-r}mulN(e,r){return e*r}inv(e){return es(e,this.ORDER)}sqrt(e){let r=ts.get(this);return r||ts.set(this,r=Ci(this.ORDER)),r(this,e)}toBytes(e){return this.isLE?Ft(e,this.BYTES):Cr(e,this.BYTES)}fromBytes(e,r=!1){H(e);let{_lengths:n,BYTES:s,isLE:o,ORDER:i,_mod:u}=this;if(n){if(e.length<1||!n.includes(e.length)||e.length>s)throw new Error("Field.fromBytes: expected "+n+" bytes, got "+e.length);let l=new Uint8Array(s);l.set(e,o?0:l.length-e.length),e=l}if(e.length!==s)throw new Error("Field.fromBytes: expected "+s+" bytes, got "+e.length);let a=o?de(e):kt(e);if(u&&(a=R(a,i)),!r&&!this.isValid(a))throw new Error("invalid field element: outside of range 0..ORDER");return a}invertBatch(e){return Rt(this,e,!0)}cmov(e,r,n){return fe(n,"condition"),n?r:e}};function Lt(t,e={}){return Object.freeze(Ot.prototype),new Ot(t,e)}var Lr=BigInt(0),it=BigInt(1),Ti=BigInt(4),Or=16,cs=128,ki=5,ls=2**31;function ut(t){let e=t;if(typeof e!="function")throw new TypeError('"Point" expected constructor, got type='+typeof t);Oe(e.fromAffine,"Point.fromAffine"),Oe(e.fromBytes,"Point.fromBytes"),Oe(e.fromHex,"Point.fromHex"),be(e.BASE,"Point.BASE"),be(e.ZERO,"Point.ZERO"),He(e.Fp),He(e.Fn)}function ds(t,e){ut(t),ps(e,t);let r=Rt(t.Fp,e.map(n=>n.Z));return e.map((n,s)=>t.fromAffine(n.toAffine(r[s])))}function Fi(t,e,r=1){if(!Number.isSafeInteger(t)||t<r||t>e)throw new Error("invalid window size, expected ["+r+".."+e+"], got W="+t)}function Oi(t,e){let r=t*(4*e+128);if(r>ls)throw new Error("invalid window size: table would need ~"+Math.ceil(r/2**20)+" MiB, max "+ls/2**20+" MiB")}function Ri(t,e){if(t!==void 0){Oe(t,"randomBytes");try{let r=t(e);if(!nt(r)||r.length!==e)return}catch{return}return t}}function ps(t,e){Tt(t,"points"),t.forEach((r,n)=>{if(!(r instanceof e))throw new Error("invalid point at index "+n)})}function Li(t,e,r){if(!Array.isArray(t))throw new Error("array of scalars expected");t.forEach((n,s)=>{if(!(r===void 0?e.isValid(n):Ae(n)&&n<r))throw new Error("invalid scalar at index "+s)})}var hs=new WeakMap;function Rr(t){return hs.get(t)||1}function _i(t,e){let r=t.double(),n=[t];for(let s=1;s<e;s++)n.push(n[s-1].add(r));return n}function Ni(t,e){let r=2**e,n=r/2,s=BigInt(r-1),o=[];for(;t>Lr;){let i=0;t&it&&(i=Number(t&s),i>=n&&(i-=r),t-=BigInt(i)),o.push(i),t>>=it}return o}function qi(t,e,r){let n=2**e,s=n/2,o=BigInt(n-1),i=BigInt(e),u=[];for(let a=0;a<r;a++){let l=Number(t&o);t>>=i,l>s&&(l-=n,t+=it),u.push(l)}if(t!==Lr)throw new Error("invalid wnaf");return u}function Ii(t,e,r){let n=0;for(let o of r)n=Math.max(n,o.length);let s=t;for(let o=n-1;o>=0;o--){o!==n-1&&(s=s.double());for(let i=0;i<r.length;i++){let u=r[i][o];if(u){let a=e[i][Math.abs(u)-1>>1];s=s.add(u<0?a.negate():a)}}}return s}var _t=class{Point;BASE;ZERO;randomBytes;wnafPrecomputes=new WeakMap;baseCanBeBlinded;bits;constructor(e,r){ut(e),this.randomBytes=Ri(r,Or),this.Point=e,this.BASE=e.BASE,this.ZERO=e.ZERO,this.bits=e.Fn.BITS}buildWnafTable(e,r,n){let s=Math.ceil(n/r)+1,o=2**(r-1),i=[],u=e;for(let a=0;a<s;a++){let l=u;for(let c=0;c<o;c++)i.push(l),l=l.add(u);u=i[i.length-1].double()}return{W:r,bits:n,windows:s,comp:i}}wnafCachedCT(e,r){let{W:n,windows:s,comp:o}=e,i=2**(n-1),u=qi(r,n,s),a=this.ZERO,l=this.BASE;for(let c=0;c<s;c++){let f=u[c],p=c*i,h=Math.abs(f)-1,g=o[p];for(let x=1;x<i;x++)g=x===h?o[p+x]:g;let m=g.negate();f===0?l=l.add(o[p]):a=a.add(f<0?m:g)}return{p:a,f:l}}getWnafPrecomputes(e,r,n,s){let o=this.wnafPrecomputes.get(r),i=o?.find(u=>u.W===e&&u.bits===n);return i||(i=this.buildWnafTable(r,e,n),typeof s=="function"&&(i={...i,comp:s(i.comp)}),o||(o=[],this.wnafPrecomputes.set(r,o)),o.push(i)),i}assertPoint(e){if(!(e instanceof this.Point))throw new TypeError('"point" expected Point instance, got type='+typeof e)}validateMulInput(e,r){if(this.assertPoint(e),!vr(r,it,this.Point.Fn.ORDER))throw new Error("invalid scalar")}runCT(e,r,n,s){let o=Rr(e);return o===1?this.fixedWindowCT(e,r,n):this.wnafCachedCT(this.getWnafPrecomputes(o,e,n,s),r)}mulCT(e,r,n){return this.validateMulInput(e,r),this.runCT(e,r,this.bits,n)}mulCTBlinded(e,r,n){if(this.validateMulInput(e,r),this.randomBytes===void 0)throw new Error("randomBytes is required for scalar blinding");let s=this.Point.Fn.BITS+cs,o=this.randomBytes(Or);if(!nt(o)||o.length!==Or)throw new Error("randomBytes returned invalid byte array");o[0]=o[0]&63|128;let i=r+kt(o)*this.Point.Fn.ORDER;return this.runCT(e,i,s,n)}fixedWindowCT(e,r,n){let s=ki,o=1<<s,i=Qn(s),u=new Array(o);u[0]=this.ZERO;for(let c=1;c<o;c++)u[c]=u[c-1].add(e);let a=Math.ceil(n/s),l=this.ZERO;for(let c=a-1;c>=0;c--){if(c!==a-1)for(let h=0;h<s;h++)l=l.double();let f=Number(r>>BigInt(c*s)&i),p=u[0];for(let h=1;h<o;h++)p=h===f?u[h]:p;l=l.add(p)}return{p:l,f:l}}shouldBlind(e,r){return this.randomBytes===void 0?!1:r===it?!0:e!==this.BASE?!1:(this.baseCanBeBlinded===void 0&&(this.baseCanBeBlinded=this.mulUnsafe(this.BASE,this.Point.Fn.ORDER).is0()),this.baseCanBeBlinded)}mulSecret(e,r,n,s){return this.shouldBlind(e,n)?this.mulCTBlinded(e,r,s):this.mulCT(e,r,s)}mulUnsafe(e,r,n){if(this.assertPoint(e),!Ae(r))throw new Error("invalid scalar");let s=Rr(e);if(s===1||r>=this.Point.Fn.ORDER)return Ui(this.Point,[e],[r],!0);let o=this.getWnafPrecomputes(s,e,this.bits,n);return this.wnafCachedCT(o,r).p}setWindowSize(e,r){this.assertPoint(e),Fi(r,this.bits);let n=Math.ceil((this.bits+cs)/r)+1;Oi(n*2**(r-1),this.Point.Fp.BYTES),hs.set(e,r),this.wnafPrecomputes.delete(e)}hasWindowSize(e){return Rr(e)!==1}};function Ui(t,e,r,n=!1){if(ut(t),ps(e,t),fe(n,"allowOversized"),Li(r,t.Fn,n?t.Fn.ORDER**Ti:void 0),e.length!==r.length)throw new Error("arrays of points and scalars must have equal length");let s=e.map(i=>_i(i,4)),o=r.map(i=>Ni(i,4));return Ii(t.ZERO,s,o)}function fs(t,e,r){if(e){if(e.ORDER!==t)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return He(e),e}else return Lt(t,{isLE:r})}function ms(t,e,r={},n){if(t!=="weierstrass"&&t!=="edwards")throw new Error('expected curve type "weierstrass" or "edwards"');if(n===void 0&&(n=t==="edwards"),!e||typeof e!="object")throw new Error(`expected valid ${t} CURVE object`);ie(r);for(let a of["p","n","h"]){let l=e[a];if(!(Ae(l)&&l!==Lr))throw new Error(`CURVE.${a} must be positive bigint`)}let s=fs(e.p,r.Fp,n),o=fs(e.n,r.Fn,n),u=["Gx","Gy","a",t==="weierstrass"?"b":"d"];for(let a of u)if(!s.isValid(e[a]))throw new Error(`CURVE.${a} must be valid field element of CURVE.Fp`);return e=Object.freeze(Object.assign({},e)),{CURVE:e,Fp:s,Fn:o}}function Nt(t,e){return function(n){let s=t(n);return{secretKey:s,publicKey:e(s)}}}var qt=BigInt(0),It=BigInt(1),Ut=BigInt(2),Pi=BigInt(4),gs=BigInt(8);function $i(t,e,r,n){let s=t.sqr(r),o=t.sqr(n),i=t.add(t.mul(e.a,s),o),u=t.add(t.ONE,t.mul(e.d,t.mul(s,o)));return t.eql(i,u)}function ys(t,e={}){ie(e,{},{},"extraOpts");let r=e,n=ms("edwards",t,r,r.FpFnLE),{Fp:s,Fn:o}=n,i=n.CURVE,{h:u}=i;if(ot(s,i.a)!==1)throw new Error("edwards: CURVE.a must be a square in Fp for complete addition formulas");if(ot(s,i.d)!==-1)throw new Error("edwards: CURVE.d must be a non-square in Fp for complete addition formulas");ie(r,{},{uvRatio:"function",randomBytes:"function"});let a=r.randomBytes===void 0?st:r.randomBytes,l=Ut<<BigInt(s.BYTES*8)-It;function c(D){if(!s.isOdd)throw new Error("Field does not have .isOdd()");return s.isOdd(D)}let f=r.uvRatio===void 0?(D,d)=>{try{return{isValid:!0,value:s.sqrt(s.div(D,d))}}catch{return{isValid:!1,value:qt}}}:r.uvRatio;if(!$i(s,i,i.Gx,i.Gy))throw new Error("bad curve params: generator point");let p=s.eql(i.a,s.neg(s.ONE))?D=>s.neg(D):s.eql(i.a,s.ONE)?D=>D:D=>s.mul(i.a,D);function h(D,d,y=!1){let w=y?It:qt;return Re("coordinate "+D,d,w,l),d}function g(D){if(!(D instanceof m))throw new Error("EdwardsPoint expected")}class m{static BASE=new m(i.Gx,i.Gy,s.ONE,s.mul(i.Gx,i.Gy));static ZERO=new m(s.ZERO,s.ONE,s.ONE,s.ZERO);static Fp=s;static Fn=o;X;Y;Z;T;constructor(d,y,w,k){this.X=h("x",d),this.Y=h("y",y),this.Z=h("z",w,!0),this.T=h("t",k),Object.freeze(this)}static CURVE(){return i}static fromAffine(d){if(d instanceof m)throw new Error("extended point not allowed");let{x:y,y:w}=d||{};return h("x",y),h("y",w),new m(y,w,s.ONE,s.mul(y,w))}static fromBytes(d,y=!1){let w=s.BYTES,{a:k,d:I}=i;d=we(H(d,w,"point")),fe(y,"zip215");let C=we(d),E=d[w-1];C[w-1]=E&-129;let O=de(C),$=y?l:s.ORDER;Re("point.y",O,qt,$);let _=s.sqr(O),U=s.sub(_,s.ONE),b=s.sub(s.mulN(I,_),k),{isValid:B,value:A}=f(U,b);if(!B)throw new Error("bad point: invalid y coordinate");let S=c(A),F=(E&128)!==0;if(!y&&s.is0(A)&&F)throw new Error("bad point: x=0 and x_0=1");return F!==S&&(A=s.neg(A)),m.fromAffine({x:A,y:O})}static fromHex(d,y=!1){return m.fromBytes(Xn(d),y)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(d=6,y=!0){return v.setWindowSize(this,d),y||this.multiply(Ut),this}assertValidity(){let d=this,{a:y,d:w}=i;if(d.is0())throw new Error("bad point: ZERO");let{X:k,Y:I,Z:C,T:E}=d,O=s.sqr(k),$=s.sqr(I),_=s.sqr(C),U=s.sqr(_),b=s.mul(O,y),B=s.mul(s.add(b,$),_),A=s.add(U,s.mul(w,s.mul(O,$)));if(!s.eql(B,A))throw new Error("bad point: equation left != right (1)");let S=s.mul(k,I),F=s.mul(C,E);if(!s.eql(S,F))throw new Error("bad point: equation left != right (2)")}equals(d){g(d);let{X:y,Y:w,Z:k}=this,{X:I,Y:C,Z:E}=d,O=s.mul(y,E),$=s.mul(I,k),_=s.mul(w,E),U=s.mul(C,k);return s.eql(O,$)&&s.eql(_,U)}is0(){return this.equals(m.ZERO)}negate(){return new m(s.neg(this.X),this.Y,this.Z,s.neg(this.T))}double(){let{X:d,Y:y,Z:w}=this,k=s.sqr(d),I=s.sqr(y),C=s.mul(s.sqr(w),Ut),E=p(k),O=s.addN(d,y),$=s.sub(s.subN(s.sqr(O),k),I),_=s.addN(E,I),U=s.subN(_,C),b=s.subN(E,I),B=s.mul($,U),A=s.mul(_,b),S=s.mul($,b),F=s.mul(U,_);return new m(B,A,F,S)}add(d){g(d);let{d:y}=i,{X:w,Y:k,Z:I,T:C}=this,{X:E,Y:O,Z:$,T:_}=d,U=s.mul(w,E),b=s.mul(k,O),B=s.mul(s.mulN(C,y),_),A=s.mul(I,$),S=s.sub(s.subN(s.mulN(s.addN(w,k),s.addN(E,O)),U),b),F=s.subN(A,B),M=s.addN(A,B),j=s.sub(b,p(U)),G=s.mul(S,F),W=s.mul(M,j),Z=s.mul(S,j),le=s.mul(F,M);return new m(G,W,le,Z)}subtract(d){return g(d),this.add(d.negate())}multiply(d){if(!o.isValidNot0(d))throw new RangeError("invalid scalar: expected 1 <= sc < curve.n");let{p:y,f:w}=v.mulSecret(this,d,u,x);return x([y,w])[0]}multiplyUnsafe(d){if(!o.isValid(d))throw new RangeError("invalid scalar: expected 0 <= sc < curve.n");return d===qt?m.ZERO:this.is0()||d===It?this:v.mulUnsafe(this,d,x)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){return v.mulUnsafe(this,i.n).is0()}toAffine(d){let y=this,w=d;if(w!=null&&typeof w!="bigint")throw new TypeError('"invertedZ" expected bigint, got type='+typeof w);let{X:k,Y:I,Z:C}=y,E=y.is0();w==null&&(w=E?s.create(gs):s.inv(C));let O=s.mul(k,w),$=s.mul(I,w),_=s.mul(C,w);if(E)return{x:s.ZERO,y:s.ONE};if(!s.eql(_,s.ONE))throw new Error("invZ was invalid");return{x:O,y:$}}clearCofactor(){return u===It?this:u===Ut?this.double():u===Pi?this.double().double():u===gs?this.double().double().double():this.multiplyUnsafe(u)}toBytes(){let{x:d,y}=this.toAffine(),w=s.toBytes(y);return w[w.length-1]|=c(d)?128:0,w}toHex(){return Yn(this.toBytes())}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let x=D=>ds(m,D),v=new _t(m,a);return v.bits>=6&&m.BASE.precompute(6),Object.freeze(m.prototype),Object.freeze(m),m}function xs(t,e,r={}){if(ut(t),typeof e!="function")throw new Error('"hash" function param is required');let n=e,s=r;ie(s,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",zip215:"boolean",mapToCurve:"function",toMontgomery:"function",toMontgomerySecret:"function"});let{prehash:o}=s,{BASE:i,Fp:u,Fn:a}=t,l=n.outputLen,c=2*u.BYTES;if(l!==void 0&&(je(l,"hash.outputLen"),l!==c))throw new Error(`hash.outputLen must be ${c}, got ${l}`);let f=s.randomBytes===void 0?st:s.randomBytes,p=s.toMontgomery,h=s.toMontgomerySecret,g=s.adjustScalarBytes===void 0?b=>b:s.adjustScalarBytes,m=s.domain===void 0?(b,B,A)=>{if(fe(A,"phflag"),B.length||A)throw new Error("Contexts/pre-hash are not supported");return b}:s.domain;function x(b){return a.create(de(b))}function v(b){let B=E.secretKey;H(b,E.secretKey,"secretKey");let A=H(n(b),2*B,"hashedSecretKey"),S=g(A.slice(0,B)),F=A.slice(B,2*B),M=x(S);return{head:S,prefix:F,scalar:M}}function D(b){let{head:B,prefix:A,scalar:S}=v(b),F=i.multiply(S),M=F.toBytes();return{head:B,prefix:A,scalar:S,point:F,pointBytes:M}}function d(b){return D(b).pointBytes}function y(b=Uint8Array.of(),...B){let A=Br(...B);return x(n(m(A,H(b,void 0,"context"),!!o)))}function w(b,B,A={}){ie(A,{},{},"options"),b=we(H(b,void 0,"message")),o&&(b=o(b));let{prefix:S,scalar:F,pointBytes:M}=D(B),j=y(A.context,S,b),G=i.multiply(j).toBytes(),W=y(A.context,G,M,b),Z=a.create(j+W*F);if(!a.isValid(Z))throw new Error("sign failed: invalid s");let le=Br(G,a.toBytes(Z));return H(le,E.signature,"result")}let k={zip215:s.zip215};function I(b,B,A,S=k){ie(S);let{context:F}=S,M=S.zip215===void 0?!!k.zip215:S.zip215,j=E.signature;b=H(b,j,"signature"),B=H(B,void 0,"message"),A=H(A,E.publicKey,"publicKey"),M!==void 0&&fe(M,"zip215"),o&&(B=o(B));let G=j/2,W=b.subarray(0,G),Z=de(b.subarray(G,j)),le,Je,bt;try{le=t.fromBytes(A,M),Je=t.fromBytes(W,M),bt=i.multiplyUnsafe(Z)}catch{return!1}if(!M&&le.isSmallOrder())return!1;let Qe=y(F,W,A,B);return Je.add(le.multiplyUnsafe(Qe)).subtract(bt).clearCofactor().is0()}let C=u.BYTES,E={secretKey:C,publicKey:C,signature:2*C,seed:C};function O(b){return b=b===void 0?f(E.seed):b,H(b,E.seed,"seed")}function $(b){return nt(b)&&b.length===E.secretKey}function _(b,B){try{return!!t.fromBytes(b,B===void 0?k.zip215:B)}catch{return!1}}let U={getExtendedPublicKey:D,randomSecretKey:O,isValidSecretKey:$,isValidPublicKey:_,toMontgomery(b){if(p===void 0)throw new Error("Montgomery conversion is not supported for this curve");return p(t.fromBytes(b))},toMontgomerySecret(b){if(h===void 0)throw new Error("Montgomery conversion is not supported for this curve");return h(b)}};return Object.freeze(E),Object.freeze(U),Object.freeze({keygen:Nt(O,d),getPublicKey:d,sign:w,verify:I,utils:U,Point:t,lengths:E})}var _e=BigInt(0),Q=BigInt(1),Pt=BigInt(2);function bs(t,e){return t+e-(e>>Q<<Q)}function Mi(t){let e=BigInt(6)*t;return(r,n,s)=>{let o=n+s,u=((e+s-n)*r+n)%t;return{x_2:u,x_3:o-u}}}function ji(t){return ie(t,{P:"bigint",type:"string",adjustScalarBytes:"function",powPminus2:"function"},{randomBytes:"function",scalarMultBase:"function"}),Object.freeze({...t})}function As(t){let e=ji(t),{P:r,type:n,adjustScalarBytes:s,powPminus2:o,randomBytes:i}=e,u=e.scalarMultBase,a=n==="x25519";if(!a&&n!=="x448")throw new Error("invalid type");let l=i===void 0?st:i,c=a?255:448,f=Mi(r),p=a?32:56,h=BigInt(a?9:5),g=BigInt(a?121665:39081),m=a?Pt**BigInt(254):Pt**BigInt(447),x=a?BigInt(8)*(Pt**BigInt(251)-Q):BigInt(4)*(Pt**BigInt(445)-Q),v=m+x+Q,D=A=>R(A,r),d=y(h);function y(A){return Ft(D(A),p)}function w(A){let S=we(H(A,p,"uCoordinate"));return a&&(S[31]&=127),D(de(S))}function k(A){return de(s(we(H(A,p,"scalar"))))}let I=new Set(a?[_e,Q,r-Q,BigInt("325606250916557431795983626356110631294008115727848805560023387167927233504"),BigInt("39382357235489614581723060781553021112529911719440698176882885853963445705823")]:[_e,Q,r-Q]);function C(A,S){let F=w(S);if(I.has(F))throw new Error("invalid private or public key received");let M=_(F,k(A));if(M===_e)throw new Error("invalid private or public key received");return y(M)}function E(A){if(u===void 0)return C(A,d);let S=k(A);Re("scalar",S,m,v);let F=D(u(S));if(F===_e)throw new Error("invalid private or public key received");return y(F)}let O=E,$=C;function _(A,S){Re("u",A,_e,r),Re("scalar",S,m,v);let F=S,M=A,j=Q,G=_e,W=A,Z=Q,le=F^F>>Q;for(let Qe=BigInt(c-1);Qe>=_e;Qe--){let fr=bs(r,le>>Qe);({x_2:j,x_3:W}=f(fr,j,W)),{x_2:G,x_3:Z}=f(fr,G,Z);let At=j+G,dr=D(At*At),pr=j-G,Cn=D(pr*pr),vn=dr-Cn,oi=W+Z,ii=W-Z,Sn=D(ii*At),Tn=D(oi*pr),kn=Sn+Tn,Fn=Sn-Tn;W=D(kn*kn),Z=D(M*D(Fn*Fn)),j=D(dr*Cn),G=D(vn*(dr+D(g*vn)))}let Je=bs(r,F);({x_2:j,x_3:W}=f(Je,j,W)),{x_2:G,x_3:Z}=f(Je,G,Z);let bt=o(G);return D(j*bt)}let U={secretKey:p,publicKey:p,seed:p},b=A=>(A=A===void 0?l(p):A,H(A,U.seed,"seed"),A),B={randomSecretKey:b};return Object.freeze(U),Object.freeze(B),Object.freeze({keygen:Nt(b,O),getSharedSecret:$,getPublicKey:O,scalarMult:C,scalarMultBase:E,utils:B,GuBytes:d.slice(),lengths:U})}var ws=BigInt(0),_r=BigInt(1),Ds=BigInt(2),Hi=BigInt(3),Ki=BigInt(5),zi=BigInt(8),$t=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),Gi={p:$t,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:zi,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function Cs(t){let e=BigInt(10),r=BigInt(20),n=BigInt(40),s=BigInt(80),o=$t,u=t*t%o*t%o,a=J(u,Ds,o)*u%o,l=J(a,_r,o)*t%o,c=J(l,Ki,o)*l%o,f=J(c,e,o)*c%o,p=J(f,r,o)*f%o,h=J(p,n,o)*p%o,g=J(h,s,o)*h%o,m=J(g,s,o)*h%o,x=J(m,e,o)*c%o;return{pow_p_5_8:J(x,Ds,o)*t%o,b2:u}}function Nr(t){return t[0]&=248,t[31]&=127,t[31]|=64,t}var Es=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function Vi(t,e){let r=$t,n=R(e*e*e,r),s=R(n*n*e,r),o=Cs(t*s).pow_p_5_8,i=R(t*n*o,r),u=R(e*i*i,r),a=i,l=R(i*Es,r),c=u===t,f=u===R(-t,r),p=u===R(-t*Es,r);return c&&(i=a),(f||p)&&(i=l),as(i,r)&&(i=R(-i,r)),{isValid:c||f,value:i}}var at=ys(Gi,{uvRatio:Vi}),Bs=at.Fp;function Wi(t){let{y:e}=t;return Bs.toBytes(Bs.div(_r+e,_r-e))}function Zi(t){let e=at.Fp.BYTES;return oe(t,e),Nr(Dr(t.subarray(0,e))).subarray(0,e)}function Yi(t){return xs(at,Dr,Object.assign({adjustScalarBytes:Nr,toMontgomery:Wi,toMontgomerySecret:Zi,zip215:!0},t))}var vs=Yi({});var Y=(()=>{let t=$t,e=r=>{let{pow_p_5_8:n,b2:s}=Cs(r);return R(J(n,Hi,t)*s,t)};return As({P:t,type:"x25519",powPminus2:e,adjustScalarBytes:Nr,scalarMultBase:r=>{let n=R(r,at.Fn.ORDER);if(n===ws)return ws;let s=at.BASE.multiply(n);return R((s.Z+s.Y)*e(R(s.Z-s.Y,t)),t)}})})();var Ss=1,jt=new TextEncoder;function qr(t){return ee(jt.encode(`shalom/v1/${t}`))}function Ke(t){return t.buffer instanceof ArrayBuffer?t:new Uint8Array(t)}function ee(...t){let e=new Uint8Array(t.reduce((n,s)=>n+s.length,0)),r=0;for(let n of t)e.set(n,r),r+=n.length;return e}async function Ts(t,e,r,n){let s=await crypto.subtle.importKey("raw",ee(t),"HKDF",!1,["deriveKey"]);return crypto.subtle.deriveKey({name:"HKDF",hash:"SHA-256",salt:ee(e,r),info:qr(n)},s,{name:"AES-GCM",length:256},!1,["encrypt","decrypt"])}function Ir(){let{secretKey:t,publicKey:e}=Y.keygen();return{secretKey:t,publicKey:e}}function Ur(t){return Y.getPublicKey(t)}async function ks(t,e,r){let n=Y.keygen(),s=Y.getSharedSecret(n.secretKey,t),o=await Ts(s,n.publicKey,t,r),i=crypto.getRandomValues(new Uint8Array(12)),u=new Uint8Array(await crypto.subtle.encrypt({name:"AES-GCM",iv:i,additionalData:qr(r)},o,Ke(e)));return ee(new Uint8Array([Ss]),n.publicKey,i,u)}async function De(t,e,r){if(e.length<61||e[0]!==Ss)throw new Error("lacre inv\xE1lido");let n=e.subarray(1,33),s=e.subarray(33,45),o=e.subarray(45),i=Y.getPublicKey(t),u=Y.getSharedSecret(t,n),a=await Ts(u,n,i,r);return new Uint8Array(await crypto.subtle.decrypt({name:"AES-GCM",iv:Ke(s),additionalData:qr(r)},a,Ke(o)))}async function Fs(t,e){return JSON.parse(new TextDecoder().decode(await De(t,e,"head")))}function te(t){let e="";for(let r=0;r<t.length;r+=32768)e+=String.fromCharCode(...t.subarray(r,r+32768));return btoa(e)}function V(t){let e=atob(t),r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=e.charCodeAt(n);return r}var Mt=2;async function Os(t,e,r,n,s,o){let i=await crypto.subtle.importKey("raw",ee(t,e),"HKDF",!1,["deriveKey"]);return crypto.subtle.deriveKey({name:"HKDF",hash:"SHA-256",salt:ee(r,n,s),info:ee(jt.encode(`shalom/v2/${o}`))},i,{name:"AES-GCM",length:256},!1,["encrypt","decrypt"])}async function Rs(t,e,r,n){let s=Y.keygen(),o=Y.getPublicKey(e),i=await Os(Y.getSharedSecret(s.secretKey,t),Y.getSharedSecret(e,t),s.publicKey,o,t,n),u=crypto.getRandomValues(new Uint8Array(12)),a=ee(new Uint8Array([Mt]),jt.encode(`shalom/v2/${n}`)),l=new Uint8Array(await crypto.subtle.encrypt({name:"AES-GCM",iv:u,additionalData:a},i,Ke(r)));return ee(new Uint8Array([Mt]),s.publicKey,u,l)}async function Ls(t,e,r,n){if(r.length<61||r[0]!==Mt)throw new Error("lacre inv\xE1lido");let s=r.subarray(1,33),o=r.subarray(33,45),i=Y.getPublicKey(t),u=await Os(Y.getSharedSecret(t,s),Y.getSharedSecret(t,e),s,e,i,n),a=ee(new Uint8Array([Mt]),jt.encode(`shalom/v2/${n}`));return new Uint8Array(await crypto.subtle.decrypt({name:"AES-GCM",iv:Ke(o),additionalData:a},u,Ke(r.subarray(45))))}var ue=new TextEncoder,pe=t=>t===32||t===9,_s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ct=new Uint8Array(256);for(let t=0;t<_s.length;t++)ct[_s.charCodeAt(t)]=t;function $r(t){let e=t.length;for(;e>0&&t.charAt(e-1)==="=";)e--;e%4===1&&e--;let r=e%4,n=Math.floor(e/4)*3+(r?r-1:0),s=new ArrayBuffer(n),o=new Uint8Array(s),i=0;for(let u=0;u<e;u+=4){let a=ct[t.charCodeAt(u)],l=ct[t.charCodeAt(u+1)],c=ct[t.charCodeAt(u+2)],f=ct[t.charCodeAt(u+3)];o[i++]=a<<2|l>>4,i<n&&(o[i++]=(l&15)<<4|c>>2),i<n&&(o[i++]=(c&3)<<6|f&63)}return s}var Xi=new Map([["iso88598i","iso-8859-8"],["iso88598e","iso-8859-8"],["shiftjis","shift_jis"],["windows31j","shift_jis"],["mskanji","shift_jis"],["eucjp","euc-jp"],["iso2022jp","iso-2022-jp"],["iso2022jp1","iso-2022-jp"],["iso2022jp2","iso-2022-jp"],["junet","iso-2022-jp"],["euckr","euc-kr"],["uhc","euc-kr"],["tis620","windows-874"]]),Ji=new Map([["932","shift_jis"],["936","gbk"],["949","euc-kr"],["950","big5"],["874","windows-874"],["51932","euc-jp"],["50220","iso-2022-jp"],["50221","iso-2022-jp"],["50222","iso-2022-jp"]]),Qi=/^(?:cp|windows|ms|ibm)(\d+)$/;function eu(t){return t.replace(/^(?:x-ms-|x-|cs)/,"").replace(/[\s._-]+/g,"")}var Ns=new Set(["unicode-1-1-utf-8 unicode11utf8 unicode20utf8 utf-8 utf8 x-unicode20utf8","866 cp866 csibm866 ibm866","csisolatin2 iso-8859-2 iso-ir-101 iso8859-2 iso88592 iso_8859-2 iso_8859-2:1987 l2 latin2","csisolatin3 iso-8859-3 iso-ir-109 iso8859-3 iso88593 iso_8859-3 iso_8859-3:1988 l3 latin3","csisolatin4 iso-8859-4 iso-ir-110 iso8859-4 iso88594 iso_8859-4 iso_8859-4:1988 l4 latin4","csisolatincyrillic cyrillic iso-8859-5 iso-ir-144 iso8859-5 iso88595 iso_8859-5 iso_8859-5:1988","arabic asmo-708 csiso88596e csiso88596i csisolatinarabic ecma-114 iso-8859-6 iso-8859-6-e","iso-8859-6-i iso-ir-127 iso8859-6 iso88596 iso_8859-6 iso_8859-6:1987","csisolatingreek ecma-118 elot_928 greek greek8 iso-8859-7 iso-ir-126 iso8859-7 iso88597 iso_8859-7","iso_8859-7:1987 sun_eu_greek","csiso88598e csisolatinhebrew hebrew iso-8859-8 iso-8859-8-e iso-ir-138 iso8859-8 iso88598 iso_8859-8","iso_8859-8:1988 visual","csiso88598i iso-8859-8-i logical","csisolatin6 iso-8859-10 iso-ir-157 iso8859-10 iso885910 l6 latin6","iso-8859-13 iso8859-13 iso885913","iso-8859-14 iso8859-14 iso885914","csisolatin9 iso-8859-15 iso8859-15 iso885915 iso_8859-15 l9","iso-8859-16","cskoi8r koi koi8 koi8-r koi8_r","koi8-ru koi8-u","csmacintosh mac macintosh x-mac-roman","dos-874 iso-8859-11 iso8859-11 iso885911 tis-620 windows-874","cp1250 windows-1250 x-cp1250","cp1251 windows-1251 x-cp1251","ansi_x3.4-1968 ascii cp1252 cp819 csisolatin1 ibm819 iso-8859-1 iso-ir-100 iso8859-1 iso88591","iso_8859-1 iso_8859-1:1987 l1 latin1 us-ascii windows-1252 x-cp1252","cp1253 windows-1253 x-cp1253","cp1254 csisolatin5 iso-8859-9 iso-ir-148 iso8859-9 iso88599 iso_8859-9 iso_8859-9:1989 l5 latin5","windows-1254 x-cp1254","cp1255 windows-1255 x-cp1255","cp1256 windows-1256 x-cp1256","cp1257 windows-1257 x-cp1257","cp1258 windows-1258 x-cp1258","x-mac-cyrillic x-mac-ukrainian","chinese csgb2312 csiso58gb231280 gb2312 gb_2312 gb_2312-80 gbk iso-ir-58 x-gbk","gb18030","big5 big5-hkscs cn-big5 csbig5 x-x-big5","cseucpkdfmtjapanese euc-jp x-euc-jp","csiso2022jp iso-2022-jp","csshiftjis ms932 ms_kanji shift-jis shift_jis sjis windows-31j x-sjis","cseuckr csksc56011987 euc-kr iso-ir-149 korean ks_c_5601-1987 ks_c_5601-1989 ksc5601 ksc_5601","windows-949","csiso2022kr hz-gb-2312 iso-2022-cn iso-2022-cn-ext iso-2022-kr replacement","x-user-defined"].join(" ").split(" ")),tu=new Set(["csiso2022kr","hz-gb-2312","iso-2022-cn","iso-2022-cn-ext","iso-2022-kr","replacement"]),ru={encoding:"replacement",decode:t=>t&&t.byteLength?"\uFFFD":""},nu=new Map([["utf-16","utf-16"],["utf16","utf-16"],["utf_16","utf-16"],["utf-16le","utf-16le"],["utf-16be","utf-16be"]]);function $s(t){if(t=(t||"utf8").trim().toLowerCase(),Ns.has(t))return t;let e=nu.get(t);if(e)return e;let r=eu(t),n=r.match(Qi),s=n&&Ji.get(n[1])||Xi.get(r)||r;return Ns.has(s)?s:null}var qs=new Map;function Ht(t){if(tu.has(t))return ru;let e=qs.get(t);if(e===void 0){e=null;try{e=new TextDecoder(t)}catch{}qs.set(t,e)}return e}var Mr=new TextDecoder;function Ms(t){let e=$s(t);return e?Ht(e):null}function js(t){return Ms(t)||Ht("windows-1252")||Mr}var su=new Set(["utf-16le","utf-16be"]),ou=new Set(["utf-16"]);function iu(t){return t[0]===254&&t[1]===255?"utf-16be":t[0]===255&&t[1]===254?"utf-16le":null}function uu(t){for(let e=0;e<t.length;){let r=t[e];if(r<128){e++;continue}let n;if(r>=194&&r<=223)n=1;else if(r>=224&&r<=239)n=2;else if(r>=240&&r<=244)n=3;else return!1;if(e+n>=t.length)return!1;let s=t[e+1],o=r===224?160:r===240?144:128,i=r===237?159:r===244?143:191;if(s<o||s>i)return!1;for(let u=2;u<=n;u++)if((t[e+u]&192)!==128)return!1;e+=n+1}return!0}function Kt(t,e=Mr){let r=t instanceof Uint8Array?t:new Uint8Array(t);return uu(r)?e.decode(r):js("windows-1252").decode(r)}function jr(t,e){let r=t instanceof Uint8Array?t:new Uint8Array(t),n=$s(e),s=n?Ht(n):null;if(n&&ou.has(n)){let o=iu(r);s=o&&Ht(o)||s}return s?s.decode(r):Kt(r)}var au=1024,cu=/charset\s*=\s*["']?\s*([^\s"';>]+)/;function lu(t){let e=Mr.decode(t.subarray(0,au)).toLowerCase(),r=0;for(;(r=e.indexOf("<meta",r))>=0;){let n=e.indexOf(">",r);n<0&&(n=e.length);let s=cu.exec(e.slice(r,n));if(s)return s[1];r=n}return null}function Hs(t,e,r){let n=new Uint8Array(t);if(e)return jr(n,e);let s=r?lu(n):null,o=s?Ms(s):null;return!o||su.has(o.encoding)?Kt(n):(o.encoding==="x-user-defined"?js("windows-1252"):o).decode(n)}async function ze(t){if("arrayBuffer"in t)return await t.arrayBuffer();let e=new FileReader;return new Promise((r,n)=>{e.onload=()=>{r(e.result)},e.onerror=()=>{n(e.error)},e.readAsArrayBuffer(t)})}function Ne(t){return t>=48&&t<=57?t-48:t>=97&&t<=102?t-97+10:t>=65&&t<=70?t-65+10:-1}function lt(t){return t.replace(/[\r\n]+/g," ")}function Pr(t,e,r){let n=t.indexOf("*");n>=0&&(t=t.slice(0,n)),e=e.toUpperCase();let s;if(e==="Q"){r=r.replace(/=\s+([0-9a-fA-F])/g,"=$1").replace(/[_\s]/g," ");let o=ue.encode(r),i=[];for(let a=0,l=o.length;a<l;a++){let c=o[a];if(a<=l-2&&c===61){let f=Ne(o[a+1]),p=Ne(o[a+2]);if(f>=0&&p>=0){i.push(f<<4|p),a+=2;continue}}i.push(c)}s=new ArrayBuffer(i.length);let u=new DataView(s);for(let a=0,l=i.length;a<l;a++)u.setUint8(a,i[a])}else e==="B"?s=$r(r.replace(/[^a-zA-Z0-9\+\/=]+/g,"")):s=ue.encode(r);return lt(jr(s,t))}var Ks="=\\?([^?\\s]+)\\?([QqBb])\\?([^?]*)\\?=",Is=new RegExp(Ks,"g"),fu=/^[ \t\r\n]+$/,du=new RegExp(`^(?:${Ks}\\s*)+$`);function zs(t){return du.test(t)}function pu(t){let e=[];Is.lastIndex=0;let r=0,n;for(;n=Is.exec(t);)n.index>r&&e.push({text:t.substring(r,n.index)}),e.push({charset:n[1],encoding:n[2],encodedText:n[3]}),r=n.index+n[0].length;return r<t.length&&e.push({text:t.substring(r)}),e}function hu(t,e){let r=t.encoding.toUpperCase();return t.charset!==e.charset||r!==e.encoding.toUpperCase()?!1:r==="B"?t.encodedText.length%4===0&&!t.padded:!0}function Us(t,e){let r="",n=null;for(let s=0;s<t.length;s++){let o=t[s];if(o.text!==void 0){let i=t[s+1];if(n&&i&&i.text===void 0&&fu.test(o.text))continue;n&&(r+=Pr(n.charset,n.encoding,n.encodedText),n=null),r+=o.text;continue}if(n&&e&&hu(n,o)){n.encodedText+=o.encodedText,n.padded=o.encodedText.endsWith("=");continue}n&&(r+=Pr(n.charset,n.encoding,n.encodedText)),n={charset:o.charset,encoding:o.encoding,encodedText:o.encodedText,padded:o.encodedText.endsWith("=")}}return n&&(r+=Pr(n.charset,n.encoding,n.encodedText)),r}function Ee(t){let e=pu((t||"").toString()),r=Us(e,!0);return r.indexOf("\uFFFD")<0?r:Us(e,!1)}function Ps(t,e){e=e||"utf-8";let r=[];for(let o=0;o<t.length;o++){let i=t.charAt(o),u=i==="%"?Ne(t.charCodeAt(o+1)):-1,a=u>=0?Ne(t.charCodeAt(o+2)):-1;if(a>=0)r.push(u<<4|a),o+=2;else if(i.charCodeAt(0)>126){let l=ue.encode(i);for(let c=0;c<l.length;c++)r.push(l[c])}else r.push(i.charCodeAt(0))}let n=new ArrayBuffer(r.length),s=new DataView(n);for(let o=0,i=r.length;o<i;o++)s.setUint8(o,r[o]);return jr(n,e)}function Gs(t){let e=new Map;Object.keys(t.params).forEach(r=>{let n=r.match(/\*((\d+)\*?)?$/);if(!n)return;let s=r.slice(0,n.index).toLowerCase(),o=Number(n[2])||0,i=e.get(s);i||(i={charset:null,values:[]},e.set(s,i));let u=t.params[r],a=n[0].charAt(n[0].length-1)==="*";o===0&&a&&(n=u.match(/^([^']*)'[^']*'(.*)$/))&&(i.charset=n[1]||"utf-8",u=n[2]),i.values.push({nr:o,value:u,encoded:a}),delete t.params[r]}),e.forEach((r,n)=>{if(Object.prototype.hasOwnProperty.call(t.params,n))return;let s="",o="";for(let i of r.values.sort((u,a)=>u.nr-a.nr)){if(i.encoded){o+=i.value;continue}o&&(s+=Ps(o,r.charset),o=""),s+=i.value}o&&(s+=Ps(o,r.charset)),t.params[n]=s})}var ft=class{constructor(){this.chunks=[],this.runBuffer=null,this.runStart=0,this.runEnd=0,this.pendingLineBreak=null}continuesRun(e){return e.buffer===this.runBuffer&&e.byteOffset===this.runEnd}flushRun(){this.runBuffer&&this.runEnd>this.runStart&&this.chunks.push(new Uint8Array(this.runBuffer,this.runStart,this.runEnd-this.runStart)),this.runBuffer=null}update(e,r){let n=this.pendingLineBreak;n&&this.continuesRun(n)&&e.buffer===this.runBuffer&&e.byteOffset===this.runEnd+n.byteLength?this.runEnd=e.byteOffset+e.byteLength:(this.flushRun(),n&&this.chunks.push(n),this.runBuffer=e.buffer,this.runStart=e.byteOffset,this.runEnd=e.byteOffset+e.byteLength),this.pendingLineBreak=r}finalize(e=!1){let r=this.pendingLineBreak;return!e&&r&&(this.continuesRun(r)?this.runEnd+=r.byteLength:(this.flushRun(),this.chunks.push(r))),this.flushRun(),ze(new Blob(this.chunks,{type:"application/octet-stream"}))}};var qe=class{constructor(e=100*1024){this.maxChunkSize=e,this.buffer=null,this.bufferPos=0,this.chunks=[]}writeByte(e){(!this.buffer||this.bufferPos>=this.buffer.length)&&(this.flush(),this.buffer??=new Uint8Array(this.maxChunkSize)),this.buffer[this.bufferPos++]=e}writeBytes(e,r=0,n=e.length){for(;r<n;){(!this.buffer||this.bufferPos>=this.buffer.length)&&(this.flush(),this.buffer??=new Uint8Array(this.maxChunkSize));let s=Math.min(n-r,this.buffer.length-this.bufferPos);this.buffer.set(e.subarray(r,r+s),this.bufferPos),this.bufferPos+=s,r+=s}}append(e){e.length>=this.maxChunkSize/2?(this.flush(),this.chunks.push(e)):this.writeBytes(e)}flush(){this.buffer&&this.bufferPos&&(this.chunks.push(this.buffer.slice(0,this.bufferPos)),this.bufferPos=0)}finalize(){return this.flush(),ze(new Blob(this.chunks,{type:"application/octet-stream"}))}};var dt=class{constructor(e){e=e||{},this.decoder=e.decoder||new TextDecoder,this.maxChunkSize=100*1024,this.output=new qe,this.remainder=""}pushChunk(e){e.length&&this.output.append(new Uint8Array($r(e)))}flushRemainder(){this.pushChunk(this.remainder),this.remainder=""}update(e){let r=this.decoder.decode(e).replace(/[^a-zA-Z0-9+/=]+/g,""),n=0,s;for(;(s=r.indexOf("=",n))>=0;)this.remainder+=r.substring(n,s),this.flushRemainder(),n=s+1;if(this.remainder+=r.substring(n),this.remainder.length>=this.maxChunkSize){let o=Math.floor(this.remainder.length/4)*4;this.pushChunk(this.remainder.substring(0,o)),this.remainder=this.remainder.substring(o)}}finalize(){return this.flushRemainder(),this.output.finalize()}};var Vs=61,pt=class{constructor(){this.output=new qe,this.pendingLineBreak=null}writeLineBreak(){this.pendingLineBreak&&this.output.writeBytes(this.pendingLineBreak)}update(e,r){this.writeLineBreak();let n=e.length;for(;n>0&&pe(e[n-1]);)n--;let s=n>0&&e[n-1]===Vs;s&&n--;let o=0;for(let i=0;i<n;i++){if(e[i]!==Vs||i+2>=n)continue;let u=Ne(e[i+1]),a=Ne(e[i+2]);u<0||a<0||(this.output.writeBytes(e,o,i),this.output.writeByte(u<<4|a),i+=2,o=i+1)}this.output.writeBytes(e,o,n),this.pendingLineBreak=s?null:r}finalize(e=!1){return e||this.writeLineBreak(),this.output.finalize()}};var mu={EINVALIDOPTION:TypeError,EINVALIDINPUT:TypeError,EPARSERREUSED:Error,EMAXNESTINGDEPTH:Error,EMAXHEADERSIZE:Error,EMAXPARTCOUNT:Error,EMAXFORWARDEDADDRESSES:Error};function re(t,e){let r=new mu[t](e);return r.code=t,r}var gu=new TextDecoder("utf-8",{ignoreBOM:!0}),yu=4096,xu=64,bu=t=>{let e=0,r=t.length;for(;e<r&&pe(t.charCodeAt(e));)e++;for(;r>e&&pe(t.charCodeAt(r-1));)r--;return t.slice(e,r)},Au=/^(?:From |[!-9;-~]*[ \t]*:)/,wu=new Set(["content-type","content-transfer-encoding","content-disposition","content-id","content-description"]),Ge=class{constructor(e){this.options=e,this.postalMime=e.postalMime;let r=this.postalMime.limits;if(this.postalMime.counters.partCount++,this.postalMime.counters.partCount>r.maxPartCount)throw re("EMAXPARTCOUNT",`Maximum MIME part count of ${r.maxPartCount} parts exceeded`);if(this.childNodes=[],this.finalizedChildCount=0,e.parentNode){if(this.parentNode=e.parentNode,this.depth=this.parentNode.depth+1,this.depth>r.maxNestingDepth)throw re("EMAXNESTINGDEPTH",`Maximum MIME nesting depth of ${r.maxNestingDepth} levels exceeded`);e.parentNode.childNodes.push(this)}else this.depth=0;this.state="header",this.headerLines=[];let s=(e.parentMultipartType||null)==="digest"?"message/rfc822":"text/plain";this.contentType={value:s,parsed:{value:s,params:{}},multipart:!1},this.contentTransferEncoding={value:"8bit",encoding:""},this.contentDisposition={value:"",parsed:{value:"",params:{}}},this.headers=[],this.rawHeaderLines=[],this.contentDecoder=null,this.content=null}setupContentDecoder(e){e==="base64"?this.contentDecoder=new dt:e==="quoted-printable"?this.contentDecoder=new pt:this.contentDecoder=new ft}async finalize(e=!1){if(this.state==="finished")return;this.state==="header"&&this.endHeaders();let r=this.postalMime.boundaries;for(let n=r.length-1;n>=0;n--)if(r[n].node===this){r.splice(n,1);break}await this.finalizeChildNodes(e),this.content=this.contentDecoder?await this.contentDecoder.finalize(e):null,this.contentDecoder=null,this.state="finished"}async finalizeChildNodes(e=!1){for(;this.finalizedChildCount<this.childNodes.length;)await this.childNodes[this.finalizedChildCount++].finalize(e)}stripComments(e){let r="",n=0,s=!1,o=!1,i=-1,u=!1,a=0,l=g=>{r+=e.slice(a,g),a=g+1},c=!1,f=!1,p=g=>{c=!0,f=pe(e.charCodeAt(g))},h=()=>!u||!c||f;for(let g=0;g<e.length;g++){let m=e.charAt(g);if(s)s=!1;else if(m==="\\")s=!0;else if(m==='"'&&n===0)o=!o;else if(!o){if(m==="("&&h()){n===0&&(i=g),n++,l(g);continue}if(m===")"&&n>0){n--,l(g);continue}n===0&&(m==="="?u=!0:m===";"&&(u=!1))}n===0?p(g):l(g)}return n===0||e.indexOf(";",i)<0?r+e.slice(a):e}parseStructuredHeader(e){e=this.stripComments(e);let r={value:"",params:{}},n=!1,s="",o="value",i="",u=!1,a=!1,l=!1,c,f=()=>{s.length&&(s+=i),i=""},p=-1,h=d=>{p>=0&&(s+=e.slice(p,d),p=-1)},g=d=>{p<0&&(f(),p=d)},m=()=>{let d=s;return s="",i="",u=!1,d},x=(d,y)=>{d&&!Object.prototype.hasOwnProperty.call(r.params,d)&&(r.params[d]=y)},v=()=>{let d=m();n===!1?r.value=d:x(n,d)},D=()=>{x(m().trim().toLowerCase(),"")};for(let d=0,y=e.length;d<y;d++)switch(c=e.charAt(d),o){case"key":if(c==="="){h(d),n=m().trim().toLowerCase(),o="value";break}if(c===";"){h(d),D();break}p<0&&(p=d);break;case"value":if(u&&c!==";"){l=!1;break}if(l)g(d);else if(a&&c==="\\"){h(d),l=!0;continue}else a&&c===a?(h(d),a=!1,u=!0):!a&&c==='"'?(h(d),a=c,f()):!a&&c===";"?(h(d),v(),o="key"):!a&&(c===" "||c===" ")?(h(d),i+=c):g(d);l=!1;break}return h(e.length),o==="value"?v():D(),r.value&&(r.value=r.value.toLowerCase()),Gs(r),r}decodeFlowedText(e,r){let n=[],s=[],o=!1,i=0;for(let u=0;u<=e.length;){let a=e.indexOf(`
|
|
3
3
|
`,u);a<0&&(a=e.length);let l=e.slice(u,a),c=0;for(;l.charCodeAt(c)===62;)c++;let f=l.charCodeAt(c)===32?c+1:c,p=l.slice(f),h=p==="-- ";if(o&&c===i&&!h){if(r){let g=s[s.length-1];s[s.length-1]=g.slice(0,-1)}s.push(p)}else u&&s.push(`
|
|
4
|
-
`),s.push(c?l:p);if(o=!h&&p.endsWith(" "),i=c,s.length>=
|
|
4
|
+
`),s.push(c?l:p);if(o=!h&&p.endsWith(" "),i=c,s.length>=yu){let g=s.pop();n.push(s.join("")),s=[g]}u=a+1}return n.push(s.join("")),n.join("")}getTextContent(){if(!this.content)return"";let e=Hs(this.content,this.contentType.parsed.params.charset,this.contentType.parsed.value==="text/html").replace(/\r\n/g,`
|
|
5
5
|
`);return this.contentType.parsed.value==="text/plain"&&/^flowed$/i.test(this.contentType.parsed.params.format)&&(e=this.decodeFlowedText(e,/^yes$/i.test(this.contentType.parsed.params.delsp))),e}processHeaders(){let e=[];for(let i of this.headerLines)e.length&&/^[ \t]/.test(i)?e[e.length-1].push(i):e.push([i]);let r=new Set;for(let i of e){let u=i.join(`
|
|
6
|
-
`),a=u.indexOf(":"),l=a<0?u:u.slice(0,a);this.rawHeaderLines.push({key:l.toLowerCase(),line:u});let c=i.join("");a=c.indexOf(":");let f=a<0?c:c.slice(0,a),p=a<0?"":
|
|
7
|
-
`,"𝔑":"\u{1D511}","⁠":"\u2060"," ":"\xA0","ℕ":"\u2115","⫬":"\u2AEC","≢":"\u2262","≭":"\u226D","∦":"\u2226","∉":"\u2209","≠":"\u2260","≂̸":"\u2242\u0338","∄":"\u2204","≯":"\u226F","≱":"\u2271","≧̸":"\u2267\u0338","≫̸":"\u226B\u0338","≹":"\u2279","⩾̸":"\u2A7E\u0338","≵":"\u2275","≎̸":"\u224E\u0338","≏̸":"\u224F\u0338","⋪":"\u22EA","⧏̸":"\u29CF\u0338","⋬":"\u22EC","≮":"\u226E","≰":"\u2270","≸":"\u2278","≪̸":"\u226A\u0338","⩽̸":"\u2A7D\u0338","≴":"\u2274","⪢̸":"\u2AA2\u0338","⪡̸":"\u2AA1\u0338","⊀":"\u2280","⪯̸":"\u2AAF\u0338","⋠":"\u22E0","∌":"\u220C","⋫":"\u22EB","⧐̸":"\u29D0\u0338","⋭":"\u22ED","⊏̸":"\u228F\u0338","⋢":"\u22E2","⊐̸":"\u2290\u0338","⋣":"\u22E3","⊂⃒":"\u2282\u20D2","⊈":"\u2288","⊁":"\u2281","⪰̸":"\u2AB0\u0338","⋡":"\u22E1","≿̸":"\u227F\u0338","⊃⃒":"\u2283\u20D2","⊉":"\u2289","≁":"\u2241","≄":"\u2244","≇":"\u2247","≉":"\u2249","∤":"\u2224","𝒩":"\u{1D4A9}","Ñ":"\xD1","Ñ":"\xD1","Ν":"\u039D","Œ":"\u0152","Ó":"\xD3","Ó":"\xD3","Ô":"\xD4","Ô":"\xD4","О":"\u041E","Ő":"\u0150","𝔒":"\u{1D512}","Ò":"\xD2","Ò":"\xD2","Ō":"\u014C","Ω":"\u03A9","Ο":"\u039F","𝕆":"\u{1D546}","“":"\u201C","‘":"\u2018","⩔":"\u2A54","𝒪":"\u{1D4AA}","Ø":"\xD8","Ø":"\xD8","Õ":"\xD5","Õ":"\xD5","⨷":"\u2A37","Ö":"\xD6","Ö":"\xD6","‾":"\u203E","⏞":"\u23DE","⎴":"\u23B4","⏜":"\u23DC","∂":"\u2202","П":"\u041F","𝔓":"\u{1D513}","Φ":"\u03A6","Π":"\u03A0","±":"\xB1","ℌ":"\u210C","ℙ":"\u2119","⪻":"\u2ABB","≺":"\u227A","⪯":"\u2AAF","≼":"\u227C","≾":"\u227E","″":"\u2033","∏":"\u220F","∷":"\u2237","∝":"\u221D","𝒫":"\u{1D4AB}","Ψ":"\u03A8",""":'"',""":'"',"𝔔":"\u{1D514}","ℚ":"\u211A","𝒬":"\u{1D4AC}","⤐":"\u2910","®":"\xAE","®":"\xAE","Ŕ":"\u0154","⟫":"\u27EB","↠":"\u21A0","⤖":"\u2916","Ř":"\u0158","Ŗ":"\u0156","Р":"\u0420","ℜ":"\u211C","∋":"\u220B","⇋":"\u21CB","⥯":"\u296F","ℜ":"\u211C","Ρ":"\u03A1","⟩":"\u27E9","→":"\u2192","⇥":"\u21E5","⇄":"\u21C4","⌉":"\u2309","⟧":"\u27E7","⥝":"\u295D","⇂":"\u21C2","⥕":"\u2955","⌋":"\u230B","⊢":"\u22A2","↦":"\u21A6","⥛":"\u295B","⊳":"\u22B3","⧐":"\u29D0","⊵":"\u22B5","⥏":"\u294F","⥜":"\u295C","↾":"\u21BE","⥔":"\u2954","⇀":"\u21C0","⥓":"\u2953","⇒":"\u21D2","ℝ":"\u211D","⥰":"\u2970","⇛":"\u21DB","ℛ":"\u211B","↱":"\u21B1","⧴":"\u29F4","Щ":"\u0429","Ш":"\u0428","Ь":"\u042C","Ś":"\u015A","⪼":"\u2ABC","Š":"\u0160","Ş":"\u015E","Ŝ":"\u015C","С":"\u0421","𝔖":"\u{1D516}","↓":"\u2193","←":"\u2190","→":"\u2192","↑":"\u2191","Σ":"\u03A3","∘":"\u2218","𝕊":"\u{1D54A}","√":"\u221A","□":"\u25A1","⊓":"\u2293","⊏":"\u228F","⊑":"\u2291","⊐":"\u2290","⊒":"\u2292","⊔":"\u2294","𝒮":"\u{1D4AE}","⋆":"\u22C6","⋐":"\u22D0","⋐":"\u22D0","⊆":"\u2286","≻":"\u227B","⪰":"\u2AB0","≽":"\u227D","≿":"\u227F","∋":"\u220B","∑":"\u2211","⋑":"\u22D1","⊃":"\u2283","⊇":"\u2287","⋑":"\u22D1","Þ":"\xDE","Þ":"\xDE","™":"\u2122","Ћ":"\u040B","Ц":"\u0426","	":" ","Τ":"\u03A4","Ť":"\u0164","Ţ":"\u0162","Т":"\u0422","𝔗":"\u{1D517}","∴":"\u2234","Θ":"\u0398","  ":"\u205F\u200A"," ":"\u2009","∼":"\u223C","≃":"\u2243","≅":"\u2245","≈":"\u2248","𝕋":"\u{1D54B}","⃛":"\u20DB","𝒯":"\u{1D4AF}","Ŧ":"\u0166","Ú":"\xDA","Ú":"\xDA","↟":"\u219F","⥉":"\u2949","Ў":"\u040E","Ŭ":"\u016C","Û":"\xDB","Û":"\xDB","У":"\u0423","Ű":"\u0170","𝔘":"\u{1D518}","Ù":"\xD9","Ù":"\xD9","Ū":"\u016A","_":"_","⏟":"\u23DF","⎵":"\u23B5","⏝":"\u23DD","⋃":"\u22C3","⊎":"\u228E","Ų":"\u0172","𝕌":"\u{1D54C}","↑":"\u2191","⤒":"\u2912","⇅":"\u21C5","↕":"\u2195","⥮":"\u296E","⊥":"\u22A5","↥":"\u21A5","⇑":"\u21D1","⇕":"\u21D5","↖":"\u2196","↗":"\u2197","ϒ":"\u03D2","Υ":"\u03A5","Ů":"\u016E","𝒰":"\u{1D4B0}","Ũ":"\u0168","Ü":"\xDC","Ü":"\xDC","⊫":"\u22AB","⫫":"\u2AEB","В":"\u0412","⊩":"\u22A9","⫦":"\u2AE6","⋁":"\u22C1","‖":"\u2016","‖":"\u2016","∣":"\u2223","|":"|","❘":"\u2758","≀":"\u2240"," ":"\u200A","𝔙":"\u{1D519}","𝕍":"\u{1D54D}","𝒱":"\u{1D4B1}","⊪":"\u22AA","Ŵ":"\u0174","⋀":"\u22C0","𝔚":"\u{1D51A}","𝕎":"\u{1D54E}","𝒲":"\u{1D4B2}","𝔛":"\u{1D51B}","Ξ":"\u039E","𝕏":"\u{1D54F}","𝒳":"\u{1D4B3}","Я":"\u042F","Ї":"\u0407","Ю":"\u042E","Ý":"\xDD","Ý":"\xDD","Ŷ":"\u0176","Ы":"\u042B","𝔜":"\u{1D51C}","𝕐":"\u{1D550}","𝒴":"\u{1D4B4}","Ÿ":"\u0178","Ж":"\u0416","Ź":"\u0179","Ž":"\u017D","З":"\u0417","Ż":"\u017B","​":"\u200B","Ζ":"\u0396","ℨ":"\u2128","ℤ":"\u2124","𝒵":"\u{1D4B5}","á":"\xE1","á":"\xE1","ă":"\u0103","∾":"\u223E","∾̳":"\u223E\u0333","∿":"\u223F","â":"\xE2","â":"\xE2","´":"\xB4","´":"\xB4","а":"\u0430","æ":"\xE6","æ":"\xE6","⁡":"\u2061","𝔞":"\u{1D51E}","à":"\xE0","à":"\xE0","ℵ":"\u2135","ℵ":"\u2135","α":"\u03B1","ā":"\u0101","⨿":"\u2A3F","&":"&","&":"&","∧":"\u2227","⩕":"\u2A55","⩜":"\u2A5C","⩘":"\u2A58","⩚":"\u2A5A","∠":"\u2220","⦤":"\u29A4","∠":"\u2220","∡":"\u2221","⦨":"\u29A8","⦩":"\u29A9","⦪":"\u29AA","⦫":"\u29AB","⦬":"\u29AC","⦭":"\u29AD","⦮":"\u29AE","⦯":"\u29AF","∟":"\u221F","⊾":"\u22BE","⦝":"\u299D","∢":"\u2222","Å":"\xC5","⍼":"\u237C","ą":"\u0105","𝕒":"\u{1D552}","≈":"\u2248","⩰":"\u2A70","⩯":"\u2A6F","≊":"\u224A","≋":"\u224B","'":"'","≈":"\u2248","≊":"\u224A","å":"\xE5","å":"\xE5","𝒶":"\u{1D4B6}","*":"*","≈":"\u2248","≍":"\u224D","ã":"\xE3","ã":"\xE3","ä":"\xE4","ä":"\xE4","∳":"\u2233","⨑":"\u2A11","⫭":"\u2AED","≌":"\u224C","϶":"\u03F6","‵":"\u2035","∽":"\u223D","⋍":"\u22CD","⊽":"\u22BD","⌅":"\u2305","⌅":"\u2305","⎵":"\u23B5","⎶":"\u23B6","≌":"\u224C","б":"\u0431","„":"\u201E","∵":"\u2235","∵":"\u2235","⦰":"\u29B0","϶":"\u03F6","ℬ":"\u212C","β":"\u03B2","ℶ":"\u2136","≬":"\u226C","𝔟":"\u{1D51F}","⋂":"\u22C2","◯":"\u25EF","⋃":"\u22C3","⨀":"\u2A00","⨁":"\u2A01","⨂":"\u2A02","⨆":"\u2A06","★":"\u2605","▽":"\u25BD","△":"\u25B3","⨄":"\u2A04","⋁":"\u22C1","⋀":"\u22C0","⤍":"\u290D","⧫":"\u29EB","▪":"\u25AA","▴":"\u25B4","▾":"\u25BE","◂":"\u25C2","▸":"\u25B8","␣":"\u2423","▒":"\u2592","░":"\u2591","▓":"\u2593","█":"\u2588","=⃥":"=\u20E5","≡⃥":"\u2261\u20E5","⌐":"\u2310","𝕓":"\u{1D553}","⊥":"\u22A5","⊥":"\u22A5","⋈":"\u22C8","╗":"\u2557","╔":"\u2554","╖":"\u2556","╓":"\u2553","═":"\u2550","╦":"\u2566","╩":"\u2569","╤":"\u2564","╧":"\u2567","╝":"\u255D","╚":"\u255A","╜":"\u255C","╙":"\u2559","║":"\u2551","╬":"\u256C","╣":"\u2563","╠":"\u2560","╫":"\u256B","╢":"\u2562","╟":"\u255F","⧉":"\u29C9","╕":"\u2555","╒":"\u2552","┐":"\u2510","┌":"\u250C","─":"\u2500","╥":"\u2565","╨":"\u2568","┬":"\u252C","┴":"\u2534","⊟":"\u229F","⊞":"\u229E","⊠":"\u22A0","╛":"\u255B","╘":"\u2558","┘":"\u2518","└":"\u2514","│":"\u2502","╪":"\u256A","╡":"\u2561","╞":"\u255E","┼":"\u253C","┤":"\u2524","├":"\u251C","‵":"\u2035","˘":"\u02D8","¦":"\xA6","¦":"\xA6","𝒷":"\u{1D4B7}","⁏":"\u204F","∽":"\u223D","⋍":"\u22CD","\":"\\","⧅":"\u29C5","⟈":"\u27C8","•":"\u2022","•":"\u2022","≎":"\u224E","⪮":"\u2AAE","≏":"\u224F","≏":"\u224F","ć":"\u0107","∩":"\u2229","⩄":"\u2A44","⩉":"\u2A49","⩋":"\u2A4B","⩇":"\u2A47","⩀":"\u2A40","∩︀":"\u2229\uFE00","⁁":"\u2041","ˇ":"\u02C7","⩍":"\u2A4D","č":"\u010D","ç":"\xE7","ç":"\xE7","ĉ":"\u0109","⩌":"\u2A4C","⩐":"\u2A50","ċ":"\u010B","¸":"\xB8","¸":"\xB8","⦲":"\u29B2","¢":"\xA2","¢":"\xA2","·":"\xB7","𝔠":"\u{1D520}","ч":"\u0447","✓":"\u2713","✓":"\u2713","χ":"\u03C7","○":"\u25CB","⧃":"\u29C3","ˆ":"\u02C6","≗":"\u2257","↺":"\u21BA","↻":"\u21BB","®":"\xAE","Ⓢ":"\u24C8","⊛":"\u229B","⊚":"\u229A","⊝":"\u229D","≗":"\u2257","⨐":"\u2A10","⫯":"\u2AEF","⧂":"\u29C2","♣":"\u2663","♣":"\u2663",":":":","≔":"\u2254","≔":"\u2254",",":",","@":"@","∁":"\u2201","∘":"\u2218","∁":"\u2201","ℂ":"\u2102","≅":"\u2245","⩭":"\u2A6D","∮":"\u222E","𝕔":"\u{1D554}","∐":"\u2210","©":"\xA9","©":"\xA9","℗":"\u2117","↵":"\u21B5","✗":"\u2717","𝒸":"\u{1D4B8}","⫏":"\u2ACF","⫑":"\u2AD1","⫐":"\u2AD0","⫒":"\u2AD2","⋯":"\u22EF","⤸":"\u2938","⤵":"\u2935","⋞":"\u22DE","⋟":"\u22DF","↶":"\u21B6","⤽":"\u293D","∪":"\u222A","⩈":"\u2A48","⩆":"\u2A46","⩊":"\u2A4A","⊍":"\u228D","⩅":"\u2A45","∪︀":"\u222A\uFE00","↷":"\u21B7","⤼":"\u293C","⋞":"\u22DE","⋟":"\u22DF","⋎":"\u22CE","⋏":"\u22CF","¤":"\xA4","¤":"\xA4","↶":"\u21B6","↷":"\u21B7","⋎":"\u22CE","⋏":"\u22CF","∲":"\u2232","∱":"\u2231","⌭":"\u232D","⇓":"\u21D3","⥥":"\u2965","†":"\u2020","ℸ":"\u2138","↓":"\u2193","‐":"\u2010","⊣":"\u22A3","⤏":"\u290F","˝":"\u02DD","ď":"\u010F","д":"\u0434","ⅆ":"\u2146","‡":"\u2021","⇊":"\u21CA","⩷":"\u2A77","°":"\xB0","°":"\xB0","δ":"\u03B4","⦱":"\u29B1","⥿":"\u297F","𝔡":"\u{1D521}","⇃":"\u21C3","⇂":"\u21C2","⋄":"\u22C4","⋄":"\u22C4","♦":"\u2666","♦":"\u2666","¨":"\xA8","ϝ":"\u03DD","⋲":"\u22F2","÷":"\xF7","÷":"\xF7","÷":"\xF7","⋇":"\u22C7","⋇":"\u22C7","ђ":"\u0452","⌞":"\u231E","⌍":"\u230D","$":"$","𝕕":"\u{1D555}","˙":"\u02D9","≐":"\u2250","≑":"\u2251","∸":"\u2238","∔":"\u2214","⊡":"\u22A1","⌆":"\u2306","↓":"\u2193","⇊":"\u21CA","⇃":"\u21C3","⇂":"\u21C2","⤐":"\u2910","⌟":"\u231F","⌌":"\u230C","𝒹":"\u{1D4B9}","ѕ":"\u0455","⧶":"\u29F6","đ":"\u0111","⋱":"\u22F1","▿":"\u25BF","▾":"\u25BE","⇵":"\u21F5","⥯":"\u296F","⦦":"\u29A6","џ":"\u045F","⟿":"\u27FF","⩷":"\u2A77","≑":"\u2251","é":"\xE9","é":"\xE9","⩮":"\u2A6E","ě":"\u011B","≖":"\u2256","ê":"\xEA","ê":"\xEA","≕":"\u2255","э":"\u044D","ė":"\u0117","ⅇ":"\u2147","≒":"\u2252","𝔢":"\u{1D522}","⪚":"\u2A9A","è":"\xE8","è":"\xE8","⪖":"\u2A96","⪘":"\u2A98","⪙":"\u2A99","⏧":"\u23E7","ℓ":"\u2113","⪕":"\u2A95","⪗":"\u2A97","ē":"\u0113","∅":"\u2205","∅":"\u2205","∅":"\u2205"," ":"\u2004"," ":"\u2005"," ":"\u2003","ŋ":"\u014B"," ":"\u2002","ę":"\u0119","𝕖":"\u{1D556}","⋕":"\u22D5","⧣":"\u29E3","⩱":"\u2A71","ε":"\u03B5","ε":"\u03B5","ϵ":"\u03F5","≖":"\u2256","≕":"\u2255","≂":"\u2242","⪖":"\u2A96","⪕":"\u2A95","=":"=","≟":"\u225F","≡":"\u2261","⩸":"\u2A78","⧥":"\u29E5","≓":"\u2253","⥱":"\u2971","ℯ":"\u212F","≐":"\u2250","≂":"\u2242","η":"\u03B7","ð":"\xF0","ð":"\xF0","ë":"\xEB","ë":"\xEB","€":"\u20AC","!":"!","∃":"\u2203","ℰ":"\u2130","ⅇ":"\u2147","≒":"\u2252","ф":"\u0444","♀":"\u2640","ffi":"\uFB03","ff":"\uFB00","ffl":"\uFB04","𝔣":"\u{1D523}","fi":"\uFB01","fj":"fj","♭":"\u266D","fl":"\uFB02","▱":"\u25B1","ƒ":"\u0192","𝕗":"\u{1D557}","∀":"\u2200","⋔":"\u22D4","⫙":"\u2AD9","⨍":"\u2A0D","½":"\xBD","½":"\xBD","⅓":"\u2153","¼":"\xBC","¼":"\xBC","⅕":"\u2155","⅙":"\u2159","⅛":"\u215B","⅔":"\u2154","⅖":"\u2156","¾":"\xBE","¾":"\xBE","⅗":"\u2157","⅜":"\u215C","⅘":"\u2158","⅚":"\u215A","⅝":"\u215D","⅞":"\u215E","⁄":"\u2044","⌢":"\u2322","𝒻":"\u{1D4BB}","≧":"\u2267","⪌":"\u2A8C","ǵ":"\u01F5","γ":"\u03B3","ϝ":"\u03DD","⪆":"\u2A86","ğ":"\u011F","ĝ":"\u011D","г":"\u0433","ġ":"\u0121","≥":"\u2265","⋛":"\u22DB","≥":"\u2265","≧":"\u2267","⩾":"\u2A7E","⩾":"\u2A7E","⪩":"\u2AA9","⪀":"\u2A80","⪂":"\u2A82","⪄":"\u2A84","⋛︀":"\u22DB\uFE00","⪔":"\u2A94","𝔤":"\u{1D524}","≫":"\u226B","⋙":"\u22D9","ℷ":"\u2137","ѓ":"\u0453","≷":"\u2277","⪒":"\u2A92","⪥":"\u2AA5","⪤":"\u2AA4","≩":"\u2269","⪊":"\u2A8A","⪊":"\u2A8A","⪈":"\u2A88","⪈":"\u2A88","≩":"\u2269","⋧":"\u22E7","𝕘":"\u{1D558}","`":"`","ℊ":"\u210A","≳":"\u2273","⪎":"\u2A8E","⪐":"\u2A90",">":">",">":">","⪧":"\u2AA7","⩺":"\u2A7A","⋗":"\u22D7","⦕":"\u2995","⩼":"\u2A7C","⪆":"\u2A86","⥸":"\u2978","⋗":"\u22D7","⋛":"\u22DB","⪌":"\u2A8C","≷":"\u2277","≳":"\u2273","≩︀":"\u2269\uFE00","≩︀":"\u2269\uFE00","⇔":"\u21D4"," ":"\u200A","½":"\xBD","ℋ":"\u210B","ъ":"\u044A","↔":"\u2194","⥈":"\u2948","↭":"\u21AD","ℏ":"\u210F","ĥ":"\u0125","♥":"\u2665","♥":"\u2665","…":"\u2026","⊹":"\u22B9","𝔥":"\u{1D525}","⤥":"\u2925","⤦":"\u2926","⇿":"\u21FF","∻":"\u223B","↩":"\u21A9","↪":"\u21AA","𝕙":"\u{1D559}","―":"\u2015","𝒽":"\u{1D4BD}","ℏ":"\u210F","ħ":"\u0127","⁃":"\u2043","‐":"\u2010","í":"\xED","í":"\xED","⁣":"\u2063","î":"\xEE","î":"\xEE","и":"\u0438","е":"\u0435","¡":"\xA1","¡":"\xA1","⇔":"\u21D4","𝔦":"\u{1D526}","ì":"\xEC","ì":"\xEC","ⅈ":"\u2148","⨌":"\u2A0C","∭":"\u222D","⧜":"\u29DC","℩":"\u2129","ij":"\u0133","ī":"\u012B","ℑ":"\u2111","ℐ":"\u2110","ℑ":"\u2111","ı":"\u0131","⊷":"\u22B7","Ƶ":"\u01B5","∈":"\u2208","℅":"\u2105","∞":"\u221E","⧝":"\u29DD","ı":"\u0131","∫":"\u222B","⊺":"\u22BA","ℤ":"\u2124","⊺":"\u22BA","⨗":"\u2A17","⨼":"\u2A3C","ё":"\u0451","į":"\u012F","𝕚":"\u{1D55A}","ι":"\u03B9","⨼":"\u2A3C","¿":"\xBF","¿":"\xBF","𝒾":"\u{1D4BE}","∈":"\u2208","⋹":"\u22F9","⋵":"\u22F5","⋴":"\u22F4","⋳":"\u22F3","∈":"\u2208","⁢":"\u2062","ĩ":"\u0129","і":"\u0456","ï":"\xEF","ï":"\xEF","ĵ":"\u0135","й":"\u0439","𝔧":"\u{1D527}","ȷ":"\u0237","𝕛":"\u{1D55B}","𝒿":"\u{1D4BF}","ј":"\u0458","є":"\u0454","κ":"\u03BA","ϰ":"\u03F0","ķ":"\u0137","к":"\u043A","𝔨":"\u{1D528}","ĸ":"\u0138","х":"\u0445","ќ":"\u045C","𝕜":"\u{1D55C}","𝓀":"\u{1D4C0}","⇚":"\u21DA","⇐":"\u21D0","⤛":"\u291B","⤎":"\u290E","≦":"\u2266","⪋":"\u2A8B","⥢":"\u2962","ĺ":"\u013A","⦴":"\u29B4","ℒ":"\u2112","λ":"\u03BB","⟨":"\u27E8","⦑":"\u2991","⟨":"\u27E8","⪅":"\u2A85","«":"\xAB","«":"\xAB","←":"\u2190","⇤":"\u21E4","⤟":"\u291F","⤝":"\u291D","↩":"\u21A9","↫":"\u21AB","⤹":"\u2939","⥳":"\u2973","↢":"\u21A2","⪫":"\u2AAB","⤙":"\u2919","⪭":"\u2AAD","⪭︀":"\u2AAD\uFE00","⤌":"\u290C","❲":"\u2772","{":"{","[":"[","⦋":"\u298B","⦏":"\u298F","⦍":"\u298D","ľ":"\u013E","ļ":"\u013C","⌈":"\u2308","{":"{","л":"\u043B","⤶":"\u2936","“":"\u201C","„":"\u201E","⥧":"\u2967","⥋":"\u294B","↲":"\u21B2","≤":"\u2264","←":"\u2190","↢":"\u21A2","↽":"\u21BD","↼":"\u21BC","⇇":"\u21C7","↔":"\u2194","⇆":"\u21C6","⇋":"\u21CB","↭":"\u21AD","⋋":"\u22CB","⋚":"\u22DA","≤":"\u2264","≦":"\u2266","⩽":"\u2A7D","⩽":"\u2A7D","⪨":"\u2AA8","⩿":"\u2A7F","⪁":"\u2A81","⪃":"\u2A83","⋚︀":"\u22DA\uFE00","⪓":"\u2A93","⪅":"\u2A85","⋖":"\u22D6","⋚":"\u22DA","⪋":"\u2A8B","≶":"\u2276","≲":"\u2272","⥼":"\u297C","⌊":"\u230A","𝔩":"\u{1D529}","≶":"\u2276","⪑":"\u2A91","↽":"\u21BD","↼":"\u21BC","⥪":"\u296A","▄":"\u2584","љ":"\u0459","≪":"\u226A","⇇":"\u21C7","⌞":"\u231E","⥫":"\u296B","◺":"\u25FA","ŀ":"\u0140","⎰":"\u23B0","⎰":"\u23B0","≨":"\u2268","⪉":"\u2A89","⪉":"\u2A89","⪇":"\u2A87","⪇":"\u2A87","≨":"\u2268","⋦":"\u22E6","⟬":"\u27EC","⇽":"\u21FD","⟦":"\u27E6","⟵":"\u27F5","⟷":"\u27F7","⟼":"\u27FC","⟶":"\u27F6","↫":"\u21AB","↬":"\u21AC","⦅":"\u2985","𝕝":"\u{1D55D}","⨭":"\u2A2D","⨴":"\u2A34","∗":"\u2217","_":"_","◊":"\u25CA","◊":"\u25CA","⧫":"\u29EB","(":"(","⦓":"\u2993","⇆":"\u21C6","⌟":"\u231F","⇋":"\u21CB","⥭":"\u296D","‎":"\u200E","⊿":"\u22BF","‹":"\u2039","𝓁":"\u{1D4C1}","↰":"\u21B0","≲":"\u2272","⪍":"\u2A8D","⪏":"\u2A8F","[":"[","‘":"\u2018","‚":"\u201A","ł":"\u0142","<":"<","<":"<","⪦":"\u2AA6","⩹":"\u2A79","⋖":"\u22D6","⋋":"\u22CB","⋉":"\u22C9","⥶":"\u2976","⩻":"\u2A7B","⦖":"\u2996","◃":"\u25C3","⊴":"\u22B4","◂":"\u25C2","⥊":"\u294A","⥦":"\u2966","≨︀":"\u2268\uFE00","≨︀":"\u2268\uFE00","∺":"\u223A","¯":"\xAF","¯":"\xAF","♂":"\u2642","✠":"\u2720","✠":"\u2720","↦":"\u21A6","↦":"\u21A6","↧":"\u21A7","↤":"\u21A4","↥":"\u21A5","▮":"\u25AE","⨩":"\u2A29","м":"\u043C","—":"\u2014","∡":"\u2221","𝔪":"\u{1D52A}","℧":"\u2127","µ":"\xB5","µ":"\xB5","∣":"\u2223","*":"*","⫰":"\u2AF0","·":"\xB7","·":"\xB7","−":"\u2212","⊟":"\u229F","∸":"\u2238","⨪":"\u2A2A","⫛":"\u2ADB","…":"\u2026","∓":"\u2213","⊧":"\u22A7","𝕞":"\u{1D55E}","∓":"\u2213","𝓂":"\u{1D4C2}","∾":"\u223E","μ":"\u03BC","⊸":"\u22B8","⊸":"\u22B8","⋙̸":"\u22D9\u0338","≫⃒":"\u226B\u20D2","≫̸":"\u226B\u0338","⇍":"\u21CD","⇎":"\u21CE","⋘̸":"\u22D8\u0338","≪⃒":"\u226A\u20D2","≪̸":"\u226A\u0338","⇏":"\u21CF","⊯":"\u22AF","⊮":"\u22AE","∇":"\u2207","ń":"\u0144","∠⃒":"\u2220\u20D2","≉":"\u2249","⩰̸":"\u2A70\u0338","≋̸":"\u224B\u0338","ʼn":"\u0149","≉":"\u2249","♮":"\u266E","♮":"\u266E","ℕ":"\u2115"," ":"\xA0"," ":"\xA0","≎̸":"\u224E\u0338","≏̸":"\u224F\u0338","⩃":"\u2A43","ň":"\u0148","ņ":"\u0146","≇":"\u2247","⩭̸":"\u2A6D\u0338","⩂":"\u2A42","н":"\u043D","–":"\u2013","≠":"\u2260","⇗":"\u21D7","⤤":"\u2924","↗":"\u2197","↗":"\u2197","≐̸":"\u2250\u0338","≢":"\u2262","⤨":"\u2928","≂̸":"\u2242\u0338","∄":"\u2204","∄":"\u2204","𝔫":"\u{1D52B}","≧̸":"\u2267\u0338","≱":"\u2271","≱":"\u2271","≧̸":"\u2267\u0338","⩾̸":"\u2A7E\u0338","⩾̸":"\u2A7E\u0338","≵":"\u2275","≯":"\u226F","≯":"\u226F","⇎":"\u21CE","↮":"\u21AE","⫲":"\u2AF2","∋":"\u220B","⋼":"\u22FC","⋺":"\u22FA","∋":"\u220B","њ":"\u045A","⇍":"\u21CD","≦̸":"\u2266\u0338","↚":"\u219A","‥":"\u2025","≰":"\u2270","↚":"\u219A","↮":"\u21AE","≰":"\u2270","≦̸":"\u2266\u0338","⩽̸":"\u2A7D\u0338","⩽̸":"\u2A7D\u0338","≮":"\u226E","≴":"\u2274","≮":"\u226E","⋪":"\u22EA","⋬":"\u22EC","∤":"\u2224","𝕟":"\u{1D55F}","¬":"\xAC","¬":"\xAC","∉":"\u2209","⋹̸":"\u22F9\u0338","⋵̸":"\u22F5\u0338","∉":"\u2209","⋷":"\u22F7","⋶":"\u22F6","∌":"\u220C","∌":"\u220C","⋾":"\u22FE","⋽":"\u22FD","∦":"\u2226","∦":"\u2226","⫽⃥":"\u2AFD\u20E5","∂̸":"\u2202\u0338","⨔":"\u2A14","⊀":"\u2280","⋠":"\u22E0","⪯̸":"\u2AAF\u0338","⊀":"\u2280","⪯̸":"\u2AAF\u0338","⇏":"\u21CF","↛":"\u219B","⤳̸":"\u2933\u0338","↝̸":"\u219D\u0338","↛":"\u219B","⋫":"\u22EB","⋭":"\u22ED","⊁":"\u2281","⋡":"\u22E1","⪰̸":"\u2AB0\u0338","𝓃":"\u{1D4C3}","∤":"\u2224","∦":"\u2226","≁":"\u2241","≄":"\u2244","≄":"\u2244","∤":"\u2224","∦":"\u2226","⋢":"\u22E2","⋣":"\u22E3","⊄":"\u2284","⫅̸":"\u2AC5\u0338","⊈":"\u2288","⊂⃒":"\u2282\u20D2","⊈":"\u2288","⫅̸":"\u2AC5\u0338","⊁":"\u2281","⪰̸":"\u2AB0\u0338","⊅":"\u2285","⫆̸":"\u2AC6\u0338","⊉":"\u2289","⊃⃒":"\u2283\u20D2","⊉":"\u2289","⫆̸":"\u2AC6\u0338","≹":"\u2279","ñ":"\xF1","ñ":"\xF1","≸":"\u2278","⋪":"\u22EA","⋬":"\u22EC","⋫":"\u22EB","⋭":"\u22ED","ν":"\u03BD","#":"#","№":"\u2116"," ":"\u2007","⊭":"\u22AD","⤄":"\u2904","≍⃒":"\u224D\u20D2","⊬":"\u22AC","≥⃒":"\u2265\u20D2",">⃒":">\u20D2","⧞":"\u29DE","⤂":"\u2902","≤⃒":"\u2264\u20D2","<⃒":"<\u20D2","⊴⃒":"\u22B4\u20D2","⤃":"\u2903","⊵⃒":"\u22B5\u20D2","∼⃒":"\u223C\u20D2","⇖":"\u21D6","⤣":"\u2923","↖":"\u2196","↖":"\u2196","⤧":"\u2927","Ⓢ":"\u24C8","ó":"\xF3","ó":"\xF3","⊛":"\u229B","⊚":"\u229A","ô":"\xF4","ô":"\xF4","о":"\u043E","⊝":"\u229D","ő":"\u0151","⨸":"\u2A38","⊙":"\u2299","⦼":"\u29BC","œ":"\u0153","⦿":"\u29BF","𝔬":"\u{1D52C}","˛":"\u02DB","ò":"\xF2","ò":"\xF2","⧁":"\u29C1","⦵":"\u29B5","Ω":"\u03A9","∮":"\u222E","↺":"\u21BA","⦾":"\u29BE","⦻":"\u29BB","‾":"\u203E","⧀":"\u29C0","ō":"\u014D","ω":"\u03C9","ο":"\u03BF","⦶":"\u29B6","⊖":"\u2296","𝕠":"\u{1D560}","⦷":"\u29B7","⦹":"\u29B9","⊕":"\u2295","∨":"\u2228","↻":"\u21BB","⩝":"\u2A5D","ℴ":"\u2134","ℴ":"\u2134","ª":"\xAA","ª":"\xAA","º":"\xBA","º":"\xBA","⊶":"\u22B6","⩖":"\u2A56","⩗":"\u2A57","⩛":"\u2A5B","ℴ":"\u2134","ø":"\xF8","ø":"\xF8","⊘":"\u2298","õ":"\xF5","õ":"\xF5","⊗":"\u2297","⨶":"\u2A36","ö":"\xF6","ö":"\xF6","⌽":"\u233D","∥":"\u2225","¶":"\xB6","¶":"\xB6","∥":"\u2225","⫳":"\u2AF3","⫽":"\u2AFD","∂":"\u2202","п":"\u043F","%":"%",".":".","‰":"\u2030","⊥":"\u22A5","‱":"\u2031","𝔭":"\u{1D52D}","φ":"\u03C6","ϕ":"\u03D5","ℳ":"\u2133","☎":"\u260E","π":"\u03C0","⋔":"\u22D4","ϖ":"\u03D6","ℏ":"\u210F","ℎ":"\u210E","ℏ":"\u210F","+":"+","⨣":"\u2A23","⊞":"\u229E","⨢":"\u2A22","∔":"\u2214","⨥":"\u2A25","⩲":"\u2A72","±":"\xB1","±":"\xB1","⨦":"\u2A26","⨧":"\u2A27","±":"\xB1","⨕":"\u2A15","𝕡":"\u{1D561}","£":"\xA3","£":"\xA3","≺":"\u227A","⪳":"\u2AB3","⪷":"\u2AB7","≼":"\u227C","⪯":"\u2AAF","≺":"\u227A","⪷":"\u2AB7","≼":"\u227C","⪯":"\u2AAF","⪹":"\u2AB9","⪵":"\u2AB5","⋨":"\u22E8","≾":"\u227E","′":"\u2032","ℙ":"\u2119","⪵":"\u2AB5","⪹":"\u2AB9","⋨":"\u22E8","∏":"\u220F","⌮":"\u232E","⌒":"\u2312","⌓":"\u2313","∝":"\u221D","∝":"\u221D","≾":"\u227E","⊰":"\u22B0","𝓅":"\u{1D4C5}","ψ":"\u03C8"," ":"\u2008","𝔮":"\u{1D52E}","⨌":"\u2A0C","𝕢":"\u{1D562}","⁗":"\u2057","𝓆":"\u{1D4C6}","ℍ":"\u210D","⨖":"\u2A16","?":"?","≟":"\u225F",""":'"',""":'"',"⇛":"\u21DB","⇒":"\u21D2","⤜":"\u291C","⤏":"\u290F","⥤":"\u2964","∽̱":"\u223D\u0331","ŕ":"\u0155","√":"\u221A","⦳":"\u29B3","⟩":"\u27E9","⦒":"\u2992","⦥":"\u29A5","⟩":"\u27E9","»":"\xBB","»":"\xBB","→":"\u2192","⥵":"\u2975","⇥":"\u21E5","⤠":"\u2920","⤳":"\u2933","⤞":"\u291E","↪":"\u21AA","↬":"\u21AC","⥅":"\u2945","⥴":"\u2974","↣":"\u21A3","↝":"\u219D","⤚":"\u291A","∶":"\u2236","ℚ":"\u211A","⤍":"\u290D","❳":"\u2773","}":"}","]":"]","⦌":"\u298C","⦎":"\u298E","⦐":"\u2990","ř":"\u0159","ŗ":"\u0157","⌉":"\u2309","}":"}","р":"\u0440","⤷":"\u2937","⥩":"\u2969","”":"\u201D","”":"\u201D","↳":"\u21B3","ℜ":"\u211C","ℛ":"\u211B","ℜ":"\u211C","ℝ":"\u211D","▭":"\u25AD","®":"\xAE","®":"\xAE","⥽":"\u297D","⌋":"\u230B","𝔯":"\u{1D52F}","⇁":"\u21C1","⇀":"\u21C0","⥬":"\u296C","ρ":"\u03C1","ϱ":"\u03F1","→":"\u2192","↣":"\u21A3","⇁":"\u21C1","⇀":"\u21C0","⇄":"\u21C4","⇌":"\u21CC","⇉":"\u21C9","↝":"\u219D","⋌":"\u22CC","˚":"\u02DA","≓":"\u2253","⇄":"\u21C4","⇌":"\u21CC","‏":"\u200F","⎱":"\u23B1","⎱":"\u23B1","⫮":"\u2AEE","⟭":"\u27ED","⇾":"\u21FE","⟧":"\u27E7","⦆":"\u2986","𝕣":"\u{1D563}","⨮":"\u2A2E","⨵":"\u2A35",")":")","⦔":"\u2994","⨒":"\u2A12","⇉":"\u21C9","›":"\u203A","𝓇":"\u{1D4C7}","↱":"\u21B1","]":"]","’":"\u2019","’":"\u2019","⋌":"\u22CC","⋊":"\u22CA","▹":"\u25B9","⊵":"\u22B5","▸":"\u25B8","⧎":"\u29CE","⥨":"\u2968","℞":"\u211E","ś":"\u015B","‚":"\u201A","≻":"\u227B","⪴":"\u2AB4","⪸":"\u2AB8","š":"\u0161","≽":"\u227D","⪰":"\u2AB0","ş":"\u015F","ŝ":"\u015D","⪶":"\u2AB6","⪺":"\u2ABA","⋩":"\u22E9","⨓":"\u2A13","≿":"\u227F","с":"\u0441","⋅":"\u22C5","⊡":"\u22A1","⩦":"\u2A66","⇘":"\u21D8","⤥":"\u2925","↘":"\u2198","↘":"\u2198","§":"\xA7","§":"\xA7",";":";","⤩":"\u2929","∖":"\u2216","∖":"\u2216","✶":"\u2736","𝔰":"\u{1D530}","⌢":"\u2322","♯":"\u266F","щ":"\u0449","ш":"\u0448","∣":"\u2223","∥":"\u2225","­":"\xAD","­":"\xAD","σ":"\u03C3","ς":"\u03C2","ς":"\u03C2","∼":"\u223C","⩪":"\u2A6A","≃":"\u2243","≃":"\u2243","⪞":"\u2A9E","⪠":"\u2AA0","⪝":"\u2A9D","⪟":"\u2A9F","≆":"\u2246","⨤":"\u2A24","⥲":"\u2972","←":"\u2190","∖":"\u2216","⨳":"\u2A33","⧤":"\u29E4","∣":"\u2223","⌣":"\u2323","⪪":"\u2AAA","⪬":"\u2AAC","⪬︀":"\u2AAC\uFE00","ь":"\u044C","/":"/","⧄":"\u29C4","⌿":"\u233F","𝕤":"\u{1D564}","♠":"\u2660","♠":"\u2660","∥":"\u2225","⊓":"\u2293","⊓︀":"\u2293\uFE00","⊔":"\u2294","⊔︀":"\u2294\uFE00","⊏":"\u228F","⊑":"\u2291","⊏":"\u228F","⊑":"\u2291","⊐":"\u2290","⊒":"\u2292","⊐":"\u2290","⊒":"\u2292","□":"\u25A1","□":"\u25A1","▪":"\u25AA","▪":"\u25AA","→":"\u2192","𝓈":"\u{1D4C8}","∖":"\u2216","⌣":"\u2323","⋆":"\u22C6","☆":"\u2606","★":"\u2605","ϵ":"\u03F5","ϕ":"\u03D5","¯":"\xAF","⊂":"\u2282","⫅":"\u2AC5","⪽":"\u2ABD","⊆":"\u2286","⫃":"\u2AC3","⫁":"\u2AC1","⫋":"\u2ACB","⊊":"\u228A","⪿":"\u2ABF","⥹":"\u2979","⊂":"\u2282","⊆":"\u2286","⫅":"\u2AC5","⊊":"\u228A","⫋":"\u2ACB","⫇":"\u2AC7","⫕":"\u2AD5","⫓":"\u2AD3","≻":"\u227B","⪸":"\u2AB8","≽":"\u227D","⪰":"\u2AB0","⪺":"\u2ABA","⪶":"\u2AB6","⋩":"\u22E9","≿":"\u227F","∑":"\u2211","♪":"\u266A","¹":"\xB9","¹":"\xB9","²":"\xB2","²":"\xB2","³":"\xB3","³":"\xB3","⊃":"\u2283","⫆":"\u2AC6","⪾":"\u2ABE","⫘":"\u2AD8","⊇":"\u2287","⫄":"\u2AC4","⟉":"\u27C9","⫗":"\u2AD7","⥻":"\u297B","⫂":"\u2AC2","⫌":"\u2ACC","⊋":"\u228B","⫀":"\u2AC0","⊃":"\u2283","⊇":"\u2287","⫆":"\u2AC6","⊋":"\u228B","⫌":"\u2ACC","⫈":"\u2AC8","⫔":"\u2AD4","⫖":"\u2AD6","⇙":"\u21D9","⤦":"\u2926","↙":"\u2199","↙":"\u2199","⤪":"\u292A","ß":"\xDF","ß":"\xDF","⌖":"\u2316","τ":"\u03C4","⎴":"\u23B4","ť":"\u0165","ţ":"\u0163","т":"\u0442","⃛":"\u20DB","⌕":"\u2315","𝔱":"\u{1D531}","∴":"\u2234","∴":"\u2234","θ":"\u03B8","ϑ":"\u03D1","ϑ":"\u03D1","≈":"\u2248","∼":"\u223C"," ":"\u2009","≈":"\u2248","∼":"\u223C","þ":"\xFE","þ":"\xFE","˜":"\u02DC","×":"\xD7","×":"\xD7","⊠":"\u22A0","⨱":"\u2A31","⨰":"\u2A30","∭":"\u222D","⤨":"\u2928","⊤":"\u22A4","⌶":"\u2336","⫱":"\u2AF1","𝕥":"\u{1D565}","⫚":"\u2ADA","⤩":"\u2929","‴":"\u2034","™":"\u2122","▵":"\u25B5","▿":"\u25BF","◃":"\u25C3","⊴":"\u22B4","≜":"\u225C","▹":"\u25B9","⊵":"\u22B5","◬":"\u25EC","≜":"\u225C","⨺":"\u2A3A","⨹":"\u2A39","⧍":"\u29CD","⨻":"\u2A3B","⏢":"\u23E2","𝓉":"\u{1D4C9}","ц":"\u0446","ћ":"\u045B","ŧ":"\u0167","≬":"\u226C","↞":"\u219E","↠":"\u21A0","⇑":"\u21D1","⥣":"\u2963","ú":"\xFA","ú":"\xFA","↑":"\u2191","ў":"\u045E","ŭ":"\u016D","û":"\xFB","û":"\xFB","у":"\u0443","⇅":"\u21C5","ű":"\u0171","⥮":"\u296E","⥾":"\u297E","𝔲":"\u{1D532}","ù":"\xF9","ù":"\xF9","↿":"\u21BF","↾":"\u21BE","▀":"\u2580","⌜":"\u231C","⌜":"\u231C","⌏":"\u230F","◸":"\u25F8","ū":"\u016B","¨":"\xA8","¨":"\xA8","ų":"\u0173","𝕦":"\u{1D566}","↑":"\u2191","↕":"\u2195","↿":"\u21BF","↾":"\u21BE","⊎":"\u228E","υ":"\u03C5","ϒ":"\u03D2","υ":"\u03C5","⇈":"\u21C8","⌝":"\u231D","⌝":"\u231D","⌎":"\u230E","ů":"\u016F","◹":"\u25F9","𝓊":"\u{1D4CA}","⋰":"\u22F0","ũ":"\u0169","▵":"\u25B5","▴":"\u25B4","⇈":"\u21C8","ü":"\xFC","ü":"\xFC","⦧":"\u29A7","⇕":"\u21D5","⫨":"\u2AE8","⫩":"\u2AE9","⊨":"\u22A8","⦜":"\u299C","ϵ":"\u03F5","ϰ":"\u03F0","∅":"\u2205","ϕ":"\u03D5","ϖ":"\u03D6","∝":"\u221D","↕":"\u2195","ϱ":"\u03F1","ς":"\u03C2","⊊︀":"\u228A\uFE00","⫋︀":"\u2ACB\uFE00","⊋︀":"\u228B\uFE00","⫌︀":"\u2ACC\uFE00","ϑ":"\u03D1","⊲":"\u22B2","⊳":"\u22B3","в":"\u0432","⊢":"\u22A2","∨":"\u2228","⊻":"\u22BB","≚":"\u225A","⋮":"\u22EE","|":"|","|":"|","𝔳":"\u{1D533}","⊲":"\u22B2","⊂⃒":"\u2282\u20D2","⊃⃒":"\u2283\u20D2","𝕧":"\u{1D567}","∝":"\u221D","⊳":"\u22B3","𝓋":"\u{1D4CB}","⫋︀":"\u2ACB\uFE00","⊊︀":"\u228A\uFE00","⫌︀":"\u2ACC\uFE00","⊋︀":"\u228B\uFE00","⦚":"\u299A","ŵ":"\u0175","⩟":"\u2A5F","∧":"\u2227","≙":"\u2259","℘":"\u2118","𝔴":"\u{1D534}","𝕨":"\u{1D568}","℘":"\u2118","≀":"\u2240","≀":"\u2240","𝓌":"\u{1D4CC}","⋂":"\u22C2","◯":"\u25EF","⋃":"\u22C3","▽":"\u25BD","𝔵":"\u{1D535}","⟺":"\u27FA","⟷":"\u27F7","ξ":"\u03BE","⟸":"\u27F8","⟵":"\u27F5","⟼":"\u27FC","⋻":"\u22FB","⨀":"\u2A00","𝕩":"\u{1D569}","⨁":"\u2A01","⨂":"\u2A02","⟹":"\u27F9","⟶":"\u27F6","𝓍":"\u{1D4CD}","⨆":"\u2A06","⨄":"\u2A04","△":"\u25B3","⋁":"\u22C1","⋀":"\u22C0","ý":"\xFD","ý":"\xFD","я":"\u044F","ŷ":"\u0177","ы":"\u044B","¥":"\xA5","¥":"\xA5","𝔶":"\u{1D536}","ї":"\u0457","𝕪":"\u{1D56A}","𝓎":"\u{1D4CE}","ю":"\u044E","ÿ":"\xFF","ÿ":"\xFF","ź":"\u017A","ž":"\u017E","з":"\u0437","ż":"\u017C","ℨ":"\u2128","ζ":"\u03B6","𝔷":"\u{1D537}","ж":"\u0436","⇝":"\u21DD","𝕫":"\u{1D56B}","𝓏":"\u{1D4CF}","‍":"\u200D","‌":"\u200C"};var bu=new Map([[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);function Au(t){return t.replace(/&(#\d+|#x[a-f0-9]+|[a-z]+\d*);?/gi,(e,r)=>{if(typeof Mr[e]=="string")return Mr[e];if(r.charAt(0)!=="#"||e.charAt(e.length-1)!==";")return e;let n;r.charAt(1).toLowerCase()==="x"?n=parseInt(r.slice(2),16):n=parseInt(r.slice(1),10);let s="";return n===0||n>=55296&&n<=57343||n>1114111?"\uFFFD":(n=bu.get(n)??n,n>65535&&(n-=65536,s+=String.fromCharCode(n>>>10&1023|55296),n=56320|n&1023),s+=String.fromCharCode(n),s)})}var Ys=t=>t.toString(16).toUpperCase().padStart(2,"0");function qe(t){return t.trim().replace(/[<>"'?&]/g,e=>"&#x"+Ys(e.charCodeAt(0))+";")}var wu=/[^A-Za-z0-9\-._~!$'()*+,;:@]+/g,Du=Array.from({length:256},(t,e)=>"%"+Ys(e));function Eu(t){return t.replace(wu,e=>Array.from(ue.encode(e),r=>Du[r]).join(""))}function Xs(t){return"<div>"+qe(t).replace(/\n/g,"<br />")+"</div>"}function Gs(t,e){let r=1/0,n=null;return s=>((s<r||n&&s>n.index)&&(e.lastIndex=s,n=e.exec(t),r=s),n)}function Js(t,e){let r=t.lastIndexOf(">")+1;return e(t.slice(0,r))+t.slice(r)}function dt(t,e,r){return Js(t,n=>n.replace(e,r))}function Vs(t,e,r,n){let s=[],o=0,i=0;for(;;){e.lastIndex=i;let u=e.exec(t);if(!u)break;let a=u.index,l=t.indexOf(">",a);if(l<0)break;r.lastIndex=a;let c=r.exec(t);if(!c){i=l+1;continue}s.push(t.slice(o,a),n(...c)),o=i=a+c[0].length}return s.push(t.slice(o)),s.join("")}function jr(t,e,r,n,s,o){let i=Gs(t,/>/g),u=Gs(t,n),a=[],l=0,c=0;for(;;){e.lastIndex=c;let f=e.exec(t);if(!f)break;let p=f.index;c=p+1;let h=p+f[0].length;if(r){let x=i(h);if(!x)break;h=x.index+1}let g=u(h);if(!g)break;let m=g.index+g[0].length;if(s){let x=i(m);if(!x)break;m=x.index+1}a.push(t.slice(l,p),o),l=c=m}return a.push(t.slice(l)),a.join("")}function Hr(t,e){let r=t.lastIndexOf(">"),n=-1;e.lastIndex=0;let s;for(;(s=e.exec(t))&&s.index<r;)n=s.index;return n<0?t:t.slice(t.indexOf(">",n)+1)}function Ws(t,e){e.lastIndex=0;let r=e.exec(t);return r&&r.index<t.lastIndexOf(">")?t.slice(0,r.index):t}function Qs(t){return t=t.replace(/\r\n|[\n\r\u2028\u2029]/g,""),t=jr(t,/<!--/g,!1,/-->/g,!1," "),t=dt(t,/<br\b[^>]*>/gi,`
|
|
8
|
-
`),t=
|
|
6
|
+
`),a=u.indexOf(":"),l=a<0?u:u.slice(0,a);this.rawHeaderLines.push({key:l.toLowerCase(),line:u});let c=i.join("");a=c.indexOf(":");let f=a<0?c:c.slice(0,a),p=a<0?"":bu(lt(c.slice(a+1)));this.headers.push({key:f.toLowerCase(),originalKey:f,value:p});let h=f.toLowerCase();if(wu.has(h)&&!r.has(h))switch(r.add(h),h){case"content-type":this.contentType.value=p;break;case"content-transfer-encoding":this.contentTransferEncoding.value=p;break;case"content-disposition":this.contentDisposition.value=p;break;case"content-id":this.contentId=p;break;case"content-description":this.contentDescription=p;break}}this.contentType.parsed=this.parseStructuredHeader(this.contentType.value),this.contentType.multipart=/^multipart\//i.test(this.contentType.parsed.value)?this.contentType.parsed.value.slice(this.contentType.parsed.value.indexOf("/")+1):!1;let n=this.contentType.multipart?(this.contentType.parsed.params.boundary||"").trimEnd():"";/[^\x00-\x7f]/.test(n)&&(n=""),this.contentType.multipart&&!n&&(this.contentType.parsed.value="text/plain",this.contentType.multipart=!1),this.contentType.multipart&&this.postalMime.boundaries.push({value:ue.encode(n),node:this}),this.contentDisposition.parsed=this.parseStructuredHeader(this.contentDisposition.value);let s=this.contentDisposition.parsed.value,o=s.search(/[ \t]/);o>=0&&(this.contentDisposition.parsed.value=s.slice(0,o)),this.contentTransferEncoding.encoding=(this.stripComments(this.contentTransferEncoding.value).toLowerCase().match(/^[ \t]*([\w-]+)/)||["",""])[1],this.setupContentDecoder(this.contentTransferEncoding.encoding),this.headerLines=[]}endHeaders(){this.state="body",this.processHeaders()}feed(e,r){switch(this.state){case"header":{if(!e.length)return this.endHeaders(),!1;this.postalMime.counters.headerSize+=Math.max(e.length,xu);let n=this.postalMime.limits.maxHeadersSize;if(this.postalMime.counters.headerSize>n)throw re("EMAXHEADERSIZE",`Maximum header size of ${n} bytes exceeded`);let s=Kt(e,gu);if(!pe(e[0])&&!Au.test(s))return this.endHeaders(),!0;this.headerLines.push(s);break}case"body":this.contentDecoder&&this.contentDecoder.update(e,r);break}return!1}};var Hr={"Æ":"\xC6","Æ":"\xC6","&":"&","&":"&","Á":"\xC1","Á":"\xC1","Ă":"\u0102","Â":"\xC2","Â":"\xC2","А":"\u0410","𝔄":"\u{1D504}","À":"\xC0","À":"\xC0","Α":"\u0391","Ā":"\u0100","⩓":"\u2A53","Ą":"\u0104","𝔸":"\u{1D538}","⁡":"\u2061","Å":"\xC5","Å":"\xC5","𝒜":"\u{1D49C}","≔":"\u2254","Ã":"\xC3","Ã":"\xC3","Ä":"\xC4","Ä":"\xC4","∖":"\u2216","⫧":"\u2AE7","⌆":"\u2306","Б":"\u0411","∵":"\u2235","ℬ":"\u212C","Β":"\u0392","𝔅":"\u{1D505}","𝔹":"\u{1D539}","˘":"\u02D8","ℬ":"\u212C","≎":"\u224E","Ч":"\u0427","©":"\xA9","©":"\xA9","Ć":"\u0106","⋒":"\u22D2","ⅅ":"\u2145","ℭ":"\u212D","Č":"\u010C","Ç":"\xC7","Ç":"\xC7","Ĉ":"\u0108","∰":"\u2230","Ċ":"\u010A","¸":"\xB8","·":"\xB7","ℭ":"\u212D","Χ":"\u03A7","⊙":"\u2299","⊖":"\u2296","⊕":"\u2295","⊗":"\u2297","∲":"\u2232","”":"\u201D","’":"\u2019","∷":"\u2237","⩴":"\u2A74","≡":"\u2261","∯":"\u222F","∮":"\u222E","ℂ":"\u2102","∐":"\u2210","∳":"\u2233","⨯":"\u2A2F","𝒞":"\u{1D49E}","⋓":"\u22D3","≍":"\u224D","ⅅ":"\u2145","⤑":"\u2911","Ђ":"\u0402","Ѕ":"\u0405","Џ":"\u040F","‡":"\u2021","↡":"\u21A1","⫤":"\u2AE4","Ď":"\u010E","Д":"\u0414","∇":"\u2207","Δ":"\u0394","𝔇":"\u{1D507}","´":"\xB4","˙":"\u02D9","˝":"\u02DD","`":"`","˜":"\u02DC","⋄":"\u22C4","ⅆ":"\u2146","𝔻":"\u{1D53B}","¨":"\xA8","⃜":"\u20DC","≐":"\u2250","∯":"\u222F","¨":"\xA8","⇓":"\u21D3","⇐":"\u21D0","⇔":"\u21D4","⫤":"\u2AE4","⟸":"\u27F8","⟺":"\u27FA","⟹":"\u27F9","⇒":"\u21D2","⊨":"\u22A8","⇑":"\u21D1","⇕":"\u21D5","∥":"\u2225","↓":"\u2193","⤓":"\u2913","⇵":"\u21F5","̑":"\u0311","⥐":"\u2950","⥞":"\u295E","↽":"\u21BD","⥖":"\u2956","⥟":"\u295F","⇁":"\u21C1","⥗":"\u2957","⊤":"\u22A4","↧":"\u21A7","⇓":"\u21D3","𝒟":"\u{1D49F}","Đ":"\u0110","Ŋ":"\u014A","Ð":"\xD0","Ð":"\xD0","É":"\xC9","É":"\xC9","Ě":"\u011A","Ê":"\xCA","Ê":"\xCA","Э":"\u042D","Ė":"\u0116","𝔈":"\u{1D508}","È":"\xC8","È":"\xC8","∈":"\u2208","Ē":"\u0112","◻":"\u25FB","▫":"\u25AB","Ę":"\u0118","𝔼":"\u{1D53C}","Ε":"\u0395","⩵":"\u2A75","≂":"\u2242","⇌":"\u21CC","ℰ":"\u2130","⩳":"\u2A73","Η":"\u0397","Ë":"\xCB","Ë":"\xCB","∃":"\u2203","ⅇ":"\u2147","Ф":"\u0424","𝔉":"\u{1D509}","◼":"\u25FC","▪":"\u25AA","𝔽":"\u{1D53D}","∀":"\u2200","ℱ":"\u2131","ℱ":"\u2131","Ѓ":"\u0403",">":">",">":">","Γ":"\u0393","Ϝ":"\u03DC","Ğ":"\u011E","Ģ":"\u0122","Ĝ":"\u011C","Г":"\u0413","Ġ":"\u0120","𝔊":"\u{1D50A}","⋙":"\u22D9","𝔾":"\u{1D53E}","≥":"\u2265","⋛":"\u22DB","≧":"\u2267","⪢":"\u2AA2","≷":"\u2277","⩾":"\u2A7E","≳":"\u2273","𝒢":"\u{1D4A2}","≫":"\u226B","Ъ":"\u042A","ˇ":"\u02C7","^":"^","Ĥ":"\u0124","ℌ":"\u210C","ℋ":"\u210B","ℍ":"\u210D","─":"\u2500","ℋ":"\u210B","Ħ":"\u0126","≎":"\u224E","≏":"\u224F","Е":"\u0415","IJ":"\u0132","Ё":"\u0401","Í":"\xCD","Í":"\xCD","Î":"\xCE","Î":"\xCE","И":"\u0418","İ":"\u0130","ℑ":"\u2111","Ì":"\xCC","Ì":"\xCC","ℑ":"\u2111","Ī":"\u012A","ⅈ":"\u2148","⇒":"\u21D2","∬":"\u222C","∫":"\u222B","⋂":"\u22C2","⁣":"\u2063","⁢":"\u2062","Į":"\u012E","𝕀":"\u{1D540}","Ι":"\u0399","ℐ":"\u2110","Ĩ":"\u0128","І":"\u0406","Ï":"\xCF","Ï":"\xCF","Ĵ":"\u0134","Й":"\u0419","𝔍":"\u{1D50D}","𝕁":"\u{1D541}","𝒥":"\u{1D4A5}","Ј":"\u0408","Є":"\u0404","Х":"\u0425","Ќ":"\u040C","Κ":"\u039A","Ķ":"\u0136","К":"\u041A","𝔎":"\u{1D50E}","𝕂":"\u{1D542}","𝒦":"\u{1D4A6}","Љ":"\u0409","<":"<","<":"<","Ĺ":"\u0139","Λ":"\u039B","⟪":"\u27EA","ℒ":"\u2112","↞":"\u219E","Ľ":"\u013D","Ļ":"\u013B","Л":"\u041B","⟨":"\u27E8","←":"\u2190","⇤":"\u21E4","⇆":"\u21C6","⌈":"\u2308","⟦":"\u27E6","⥡":"\u2961","⇃":"\u21C3","⥙":"\u2959","⌊":"\u230A","↔":"\u2194","⥎":"\u294E","⊣":"\u22A3","↤":"\u21A4","⥚":"\u295A","⊲":"\u22B2","⧏":"\u29CF","⊴":"\u22B4","⥑":"\u2951","⥠":"\u2960","↿":"\u21BF","⥘":"\u2958","↼":"\u21BC","⥒":"\u2952","⇐":"\u21D0","⇔":"\u21D4","⋚":"\u22DA","≦":"\u2266","≶":"\u2276","⪡":"\u2AA1","⩽":"\u2A7D","≲":"\u2272","𝔏":"\u{1D50F}","⋘":"\u22D8","⇚":"\u21DA","Ŀ":"\u013F","⟵":"\u27F5","⟷":"\u27F7","⟶":"\u27F6","⟸":"\u27F8","⟺":"\u27FA","⟹":"\u27F9","𝕃":"\u{1D543}","↙":"\u2199","↘":"\u2198","ℒ":"\u2112","↰":"\u21B0","Ł":"\u0141","≪":"\u226A","⤅":"\u2905","М":"\u041C"," ":"\u205F","ℳ":"\u2133","𝔐":"\u{1D510}","∓":"\u2213","𝕄":"\u{1D544}","ℳ":"\u2133","Μ":"\u039C","Њ":"\u040A","Ń":"\u0143","Ň":"\u0147","Ņ":"\u0145","Н":"\u041D","​":"\u200B","​":"\u200B","​":"\u200B","​":"\u200B","≫":"\u226B","≪":"\u226A","
":`
|
|
7
|
+
`,"𝔑":"\u{1D511}","⁠":"\u2060"," ":"\xA0","ℕ":"\u2115","⫬":"\u2AEC","≢":"\u2262","≭":"\u226D","∦":"\u2226","∉":"\u2209","≠":"\u2260","≂̸":"\u2242\u0338","∄":"\u2204","≯":"\u226F","≱":"\u2271","≧̸":"\u2267\u0338","≫̸":"\u226B\u0338","≹":"\u2279","⩾̸":"\u2A7E\u0338","≵":"\u2275","≎̸":"\u224E\u0338","≏̸":"\u224F\u0338","⋪":"\u22EA","⧏̸":"\u29CF\u0338","⋬":"\u22EC","≮":"\u226E","≰":"\u2270","≸":"\u2278","≪̸":"\u226A\u0338","⩽̸":"\u2A7D\u0338","≴":"\u2274","⪢̸":"\u2AA2\u0338","⪡̸":"\u2AA1\u0338","⊀":"\u2280","⪯̸":"\u2AAF\u0338","⋠":"\u22E0","∌":"\u220C","⋫":"\u22EB","⧐̸":"\u29D0\u0338","⋭":"\u22ED","⊏̸":"\u228F\u0338","⋢":"\u22E2","⊐̸":"\u2290\u0338","⋣":"\u22E3","⊂⃒":"\u2282\u20D2","⊈":"\u2288","⊁":"\u2281","⪰̸":"\u2AB0\u0338","⋡":"\u22E1","≿̸":"\u227F\u0338","⊃⃒":"\u2283\u20D2","⊉":"\u2289","≁":"\u2241","≄":"\u2244","≇":"\u2247","≉":"\u2249","∤":"\u2224","𝒩":"\u{1D4A9}","Ñ":"\xD1","Ñ":"\xD1","Ν":"\u039D","Œ":"\u0152","Ó":"\xD3","Ó":"\xD3","Ô":"\xD4","Ô":"\xD4","О":"\u041E","Ő":"\u0150","𝔒":"\u{1D512}","Ò":"\xD2","Ò":"\xD2","Ō":"\u014C","Ω":"\u03A9","Ο":"\u039F","𝕆":"\u{1D546}","“":"\u201C","‘":"\u2018","⩔":"\u2A54","𝒪":"\u{1D4AA}","Ø":"\xD8","Ø":"\xD8","Õ":"\xD5","Õ":"\xD5","⨷":"\u2A37","Ö":"\xD6","Ö":"\xD6","‾":"\u203E","⏞":"\u23DE","⎴":"\u23B4","⏜":"\u23DC","∂":"\u2202","П":"\u041F","𝔓":"\u{1D513}","Φ":"\u03A6","Π":"\u03A0","±":"\xB1","ℌ":"\u210C","ℙ":"\u2119","⪻":"\u2ABB","≺":"\u227A","⪯":"\u2AAF","≼":"\u227C","≾":"\u227E","″":"\u2033","∏":"\u220F","∷":"\u2237","∝":"\u221D","𝒫":"\u{1D4AB}","Ψ":"\u03A8",""":'"',""":'"',"𝔔":"\u{1D514}","ℚ":"\u211A","𝒬":"\u{1D4AC}","⤐":"\u2910","®":"\xAE","®":"\xAE","Ŕ":"\u0154","⟫":"\u27EB","↠":"\u21A0","⤖":"\u2916","Ř":"\u0158","Ŗ":"\u0156","Р":"\u0420","ℜ":"\u211C","∋":"\u220B","⇋":"\u21CB","⥯":"\u296F","ℜ":"\u211C","Ρ":"\u03A1","⟩":"\u27E9","→":"\u2192","⇥":"\u21E5","⇄":"\u21C4","⌉":"\u2309","⟧":"\u27E7","⥝":"\u295D","⇂":"\u21C2","⥕":"\u2955","⌋":"\u230B","⊢":"\u22A2","↦":"\u21A6","⥛":"\u295B","⊳":"\u22B3","⧐":"\u29D0","⊵":"\u22B5","⥏":"\u294F","⥜":"\u295C","↾":"\u21BE","⥔":"\u2954","⇀":"\u21C0","⥓":"\u2953","⇒":"\u21D2","ℝ":"\u211D","⥰":"\u2970","⇛":"\u21DB","ℛ":"\u211B","↱":"\u21B1","⧴":"\u29F4","Щ":"\u0429","Ш":"\u0428","Ь":"\u042C","Ś":"\u015A","⪼":"\u2ABC","Š":"\u0160","Ş":"\u015E","Ŝ":"\u015C","С":"\u0421","𝔖":"\u{1D516}","↓":"\u2193","←":"\u2190","→":"\u2192","↑":"\u2191","Σ":"\u03A3","∘":"\u2218","𝕊":"\u{1D54A}","√":"\u221A","□":"\u25A1","⊓":"\u2293","⊏":"\u228F","⊑":"\u2291","⊐":"\u2290","⊒":"\u2292","⊔":"\u2294","𝒮":"\u{1D4AE}","⋆":"\u22C6","⋐":"\u22D0","⋐":"\u22D0","⊆":"\u2286","≻":"\u227B","⪰":"\u2AB0","≽":"\u227D","≿":"\u227F","∋":"\u220B","∑":"\u2211","⋑":"\u22D1","⊃":"\u2283","⊇":"\u2287","⋑":"\u22D1","Þ":"\xDE","Þ":"\xDE","™":"\u2122","Ћ":"\u040B","Ц":"\u0426","	":" ","Τ":"\u03A4","Ť":"\u0164","Ţ":"\u0162","Т":"\u0422","𝔗":"\u{1D517}","∴":"\u2234","Θ":"\u0398","  ":"\u205F\u200A"," ":"\u2009","∼":"\u223C","≃":"\u2243","≅":"\u2245","≈":"\u2248","𝕋":"\u{1D54B}","⃛":"\u20DB","𝒯":"\u{1D4AF}","Ŧ":"\u0166","Ú":"\xDA","Ú":"\xDA","↟":"\u219F","⥉":"\u2949","Ў":"\u040E","Ŭ":"\u016C","Û":"\xDB","Û":"\xDB","У":"\u0423","Ű":"\u0170","𝔘":"\u{1D518}","Ù":"\xD9","Ù":"\xD9","Ū":"\u016A","_":"_","⏟":"\u23DF","⎵":"\u23B5","⏝":"\u23DD","⋃":"\u22C3","⊎":"\u228E","Ų":"\u0172","𝕌":"\u{1D54C}","↑":"\u2191","⤒":"\u2912","⇅":"\u21C5","↕":"\u2195","⥮":"\u296E","⊥":"\u22A5","↥":"\u21A5","⇑":"\u21D1","⇕":"\u21D5","↖":"\u2196","↗":"\u2197","ϒ":"\u03D2","Υ":"\u03A5","Ů":"\u016E","𝒰":"\u{1D4B0}","Ũ":"\u0168","Ü":"\xDC","Ü":"\xDC","⊫":"\u22AB","⫫":"\u2AEB","В":"\u0412","⊩":"\u22A9","⫦":"\u2AE6","⋁":"\u22C1","‖":"\u2016","‖":"\u2016","∣":"\u2223","|":"|","❘":"\u2758","≀":"\u2240"," ":"\u200A","𝔙":"\u{1D519}","𝕍":"\u{1D54D}","𝒱":"\u{1D4B1}","⊪":"\u22AA","Ŵ":"\u0174","⋀":"\u22C0","𝔚":"\u{1D51A}","𝕎":"\u{1D54E}","𝒲":"\u{1D4B2}","𝔛":"\u{1D51B}","Ξ":"\u039E","𝕏":"\u{1D54F}","𝒳":"\u{1D4B3}","Я":"\u042F","Ї":"\u0407","Ю":"\u042E","Ý":"\xDD","Ý":"\xDD","Ŷ":"\u0176","Ы":"\u042B","𝔜":"\u{1D51C}","𝕐":"\u{1D550}","𝒴":"\u{1D4B4}","Ÿ":"\u0178","Ж":"\u0416","Ź":"\u0179","Ž":"\u017D","З":"\u0417","Ż":"\u017B","​":"\u200B","Ζ":"\u0396","ℨ":"\u2128","ℤ":"\u2124","𝒵":"\u{1D4B5}","á":"\xE1","á":"\xE1","ă":"\u0103","∾":"\u223E","∾̳":"\u223E\u0333","∿":"\u223F","â":"\xE2","â":"\xE2","´":"\xB4","´":"\xB4","а":"\u0430","æ":"\xE6","æ":"\xE6","⁡":"\u2061","𝔞":"\u{1D51E}","à":"\xE0","à":"\xE0","ℵ":"\u2135","ℵ":"\u2135","α":"\u03B1","ā":"\u0101","⨿":"\u2A3F","&":"&","&":"&","∧":"\u2227","⩕":"\u2A55","⩜":"\u2A5C","⩘":"\u2A58","⩚":"\u2A5A","∠":"\u2220","⦤":"\u29A4","∠":"\u2220","∡":"\u2221","⦨":"\u29A8","⦩":"\u29A9","⦪":"\u29AA","⦫":"\u29AB","⦬":"\u29AC","⦭":"\u29AD","⦮":"\u29AE","⦯":"\u29AF","∟":"\u221F","⊾":"\u22BE","⦝":"\u299D","∢":"\u2222","Å":"\xC5","⍼":"\u237C","ą":"\u0105","𝕒":"\u{1D552}","≈":"\u2248","⩰":"\u2A70","⩯":"\u2A6F","≊":"\u224A","≋":"\u224B","'":"'","≈":"\u2248","≊":"\u224A","å":"\xE5","å":"\xE5","𝒶":"\u{1D4B6}","*":"*","≈":"\u2248","≍":"\u224D","ã":"\xE3","ã":"\xE3","ä":"\xE4","ä":"\xE4","∳":"\u2233","⨑":"\u2A11","⫭":"\u2AED","≌":"\u224C","϶":"\u03F6","‵":"\u2035","∽":"\u223D","⋍":"\u22CD","⊽":"\u22BD","⌅":"\u2305","⌅":"\u2305","⎵":"\u23B5","⎶":"\u23B6","≌":"\u224C","б":"\u0431","„":"\u201E","∵":"\u2235","∵":"\u2235","⦰":"\u29B0","϶":"\u03F6","ℬ":"\u212C","β":"\u03B2","ℶ":"\u2136","≬":"\u226C","𝔟":"\u{1D51F}","⋂":"\u22C2","◯":"\u25EF","⋃":"\u22C3","⨀":"\u2A00","⨁":"\u2A01","⨂":"\u2A02","⨆":"\u2A06","★":"\u2605","▽":"\u25BD","△":"\u25B3","⨄":"\u2A04","⋁":"\u22C1","⋀":"\u22C0","⤍":"\u290D","⧫":"\u29EB","▪":"\u25AA","▴":"\u25B4","▾":"\u25BE","◂":"\u25C2","▸":"\u25B8","␣":"\u2423","▒":"\u2592","░":"\u2591","▓":"\u2593","█":"\u2588","=⃥":"=\u20E5","≡⃥":"\u2261\u20E5","⌐":"\u2310","𝕓":"\u{1D553}","⊥":"\u22A5","⊥":"\u22A5","⋈":"\u22C8","╗":"\u2557","╔":"\u2554","╖":"\u2556","╓":"\u2553","═":"\u2550","╦":"\u2566","╩":"\u2569","╤":"\u2564","╧":"\u2567","╝":"\u255D","╚":"\u255A","╜":"\u255C","╙":"\u2559","║":"\u2551","╬":"\u256C","╣":"\u2563","╠":"\u2560","╫":"\u256B","╢":"\u2562","╟":"\u255F","⧉":"\u29C9","╕":"\u2555","╒":"\u2552","┐":"\u2510","┌":"\u250C","─":"\u2500","╥":"\u2565","╨":"\u2568","┬":"\u252C","┴":"\u2534","⊟":"\u229F","⊞":"\u229E","⊠":"\u22A0","╛":"\u255B","╘":"\u2558","┘":"\u2518","└":"\u2514","│":"\u2502","╪":"\u256A","╡":"\u2561","╞":"\u255E","┼":"\u253C","┤":"\u2524","├":"\u251C","‵":"\u2035","˘":"\u02D8","¦":"\xA6","¦":"\xA6","𝒷":"\u{1D4B7}","⁏":"\u204F","∽":"\u223D","⋍":"\u22CD","\":"\\","⧅":"\u29C5","⟈":"\u27C8","•":"\u2022","•":"\u2022","≎":"\u224E","⪮":"\u2AAE","≏":"\u224F","≏":"\u224F","ć":"\u0107","∩":"\u2229","⩄":"\u2A44","⩉":"\u2A49","⩋":"\u2A4B","⩇":"\u2A47","⩀":"\u2A40","∩︀":"\u2229\uFE00","⁁":"\u2041","ˇ":"\u02C7","⩍":"\u2A4D","č":"\u010D","ç":"\xE7","ç":"\xE7","ĉ":"\u0109","⩌":"\u2A4C","⩐":"\u2A50","ċ":"\u010B","¸":"\xB8","¸":"\xB8","⦲":"\u29B2","¢":"\xA2","¢":"\xA2","·":"\xB7","𝔠":"\u{1D520}","ч":"\u0447","✓":"\u2713","✓":"\u2713","χ":"\u03C7","○":"\u25CB","⧃":"\u29C3","ˆ":"\u02C6","≗":"\u2257","↺":"\u21BA","↻":"\u21BB","®":"\xAE","Ⓢ":"\u24C8","⊛":"\u229B","⊚":"\u229A","⊝":"\u229D","≗":"\u2257","⨐":"\u2A10","⫯":"\u2AEF","⧂":"\u29C2","♣":"\u2663","♣":"\u2663",":":":","≔":"\u2254","≔":"\u2254",",":",","@":"@","∁":"\u2201","∘":"\u2218","∁":"\u2201","ℂ":"\u2102","≅":"\u2245","⩭":"\u2A6D","∮":"\u222E","𝕔":"\u{1D554}","∐":"\u2210","©":"\xA9","©":"\xA9","℗":"\u2117","↵":"\u21B5","✗":"\u2717","𝒸":"\u{1D4B8}","⫏":"\u2ACF","⫑":"\u2AD1","⫐":"\u2AD0","⫒":"\u2AD2","⋯":"\u22EF","⤸":"\u2938","⤵":"\u2935","⋞":"\u22DE","⋟":"\u22DF","↶":"\u21B6","⤽":"\u293D","∪":"\u222A","⩈":"\u2A48","⩆":"\u2A46","⩊":"\u2A4A","⊍":"\u228D","⩅":"\u2A45","∪︀":"\u222A\uFE00","↷":"\u21B7","⤼":"\u293C","⋞":"\u22DE","⋟":"\u22DF","⋎":"\u22CE","⋏":"\u22CF","¤":"\xA4","¤":"\xA4","↶":"\u21B6","↷":"\u21B7","⋎":"\u22CE","⋏":"\u22CF","∲":"\u2232","∱":"\u2231","⌭":"\u232D","⇓":"\u21D3","⥥":"\u2965","†":"\u2020","ℸ":"\u2138","↓":"\u2193","‐":"\u2010","⊣":"\u22A3","⤏":"\u290F","˝":"\u02DD","ď":"\u010F","д":"\u0434","ⅆ":"\u2146","‡":"\u2021","⇊":"\u21CA","⩷":"\u2A77","°":"\xB0","°":"\xB0","δ":"\u03B4","⦱":"\u29B1","⥿":"\u297F","𝔡":"\u{1D521}","⇃":"\u21C3","⇂":"\u21C2","⋄":"\u22C4","⋄":"\u22C4","♦":"\u2666","♦":"\u2666","¨":"\xA8","ϝ":"\u03DD","⋲":"\u22F2","÷":"\xF7","÷":"\xF7","÷":"\xF7","⋇":"\u22C7","⋇":"\u22C7","ђ":"\u0452","⌞":"\u231E","⌍":"\u230D","$":"$","𝕕":"\u{1D555}","˙":"\u02D9","≐":"\u2250","≑":"\u2251","∸":"\u2238","∔":"\u2214","⊡":"\u22A1","⌆":"\u2306","↓":"\u2193","⇊":"\u21CA","⇃":"\u21C3","⇂":"\u21C2","⤐":"\u2910","⌟":"\u231F","⌌":"\u230C","𝒹":"\u{1D4B9}","ѕ":"\u0455","⧶":"\u29F6","đ":"\u0111","⋱":"\u22F1","▿":"\u25BF","▾":"\u25BE","⇵":"\u21F5","⥯":"\u296F","⦦":"\u29A6","џ":"\u045F","⟿":"\u27FF","⩷":"\u2A77","≑":"\u2251","é":"\xE9","é":"\xE9","⩮":"\u2A6E","ě":"\u011B","≖":"\u2256","ê":"\xEA","ê":"\xEA","≕":"\u2255","э":"\u044D","ė":"\u0117","ⅇ":"\u2147","≒":"\u2252","𝔢":"\u{1D522}","⪚":"\u2A9A","è":"\xE8","è":"\xE8","⪖":"\u2A96","⪘":"\u2A98","⪙":"\u2A99","⏧":"\u23E7","ℓ":"\u2113","⪕":"\u2A95","⪗":"\u2A97","ē":"\u0113","∅":"\u2205","∅":"\u2205","∅":"\u2205"," ":"\u2004"," ":"\u2005"," ":"\u2003","ŋ":"\u014B"," ":"\u2002","ę":"\u0119","𝕖":"\u{1D556}","⋕":"\u22D5","⧣":"\u29E3","⩱":"\u2A71","ε":"\u03B5","ε":"\u03B5","ϵ":"\u03F5","≖":"\u2256","≕":"\u2255","≂":"\u2242","⪖":"\u2A96","⪕":"\u2A95","=":"=","≟":"\u225F","≡":"\u2261","⩸":"\u2A78","⧥":"\u29E5","≓":"\u2253","⥱":"\u2971","ℯ":"\u212F","≐":"\u2250","≂":"\u2242","η":"\u03B7","ð":"\xF0","ð":"\xF0","ë":"\xEB","ë":"\xEB","€":"\u20AC","!":"!","∃":"\u2203","ℰ":"\u2130","ⅇ":"\u2147","≒":"\u2252","ф":"\u0444","♀":"\u2640","ffi":"\uFB03","ff":"\uFB00","ffl":"\uFB04","𝔣":"\u{1D523}","fi":"\uFB01","fj":"fj","♭":"\u266D","fl":"\uFB02","▱":"\u25B1","ƒ":"\u0192","𝕗":"\u{1D557}","∀":"\u2200","⋔":"\u22D4","⫙":"\u2AD9","⨍":"\u2A0D","½":"\xBD","½":"\xBD","⅓":"\u2153","¼":"\xBC","¼":"\xBC","⅕":"\u2155","⅙":"\u2159","⅛":"\u215B","⅔":"\u2154","⅖":"\u2156","¾":"\xBE","¾":"\xBE","⅗":"\u2157","⅜":"\u215C","⅘":"\u2158","⅚":"\u215A","⅝":"\u215D","⅞":"\u215E","⁄":"\u2044","⌢":"\u2322","𝒻":"\u{1D4BB}","≧":"\u2267","⪌":"\u2A8C","ǵ":"\u01F5","γ":"\u03B3","ϝ":"\u03DD","⪆":"\u2A86","ğ":"\u011F","ĝ":"\u011D","г":"\u0433","ġ":"\u0121","≥":"\u2265","⋛":"\u22DB","≥":"\u2265","≧":"\u2267","⩾":"\u2A7E","⩾":"\u2A7E","⪩":"\u2AA9","⪀":"\u2A80","⪂":"\u2A82","⪄":"\u2A84","⋛︀":"\u22DB\uFE00","⪔":"\u2A94","𝔤":"\u{1D524}","≫":"\u226B","⋙":"\u22D9","ℷ":"\u2137","ѓ":"\u0453","≷":"\u2277","⪒":"\u2A92","⪥":"\u2AA5","⪤":"\u2AA4","≩":"\u2269","⪊":"\u2A8A","⪊":"\u2A8A","⪈":"\u2A88","⪈":"\u2A88","≩":"\u2269","⋧":"\u22E7","𝕘":"\u{1D558}","`":"`","ℊ":"\u210A","≳":"\u2273","⪎":"\u2A8E","⪐":"\u2A90",">":">",">":">","⪧":"\u2AA7","⩺":"\u2A7A","⋗":"\u22D7","⦕":"\u2995","⩼":"\u2A7C","⪆":"\u2A86","⥸":"\u2978","⋗":"\u22D7","⋛":"\u22DB","⪌":"\u2A8C","≷":"\u2277","≳":"\u2273","≩︀":"\u2269\uFE00","≩︀":"\u2269\uFE00","⇔":"\u21D4"," ":"\u200A","½":"\xBD","ℋ":"\u210B","ъ":"\u044A","↔":"\u2194","⥈":"\u2948","↭":"\u21AD","ℏ":"\u210F","ĥ":"\u0125","♥":"\u2665","♥":"\u2665","…":"\u2026","⊹":"\u22B9","𝔥":"\u{1D525}","⤥":"\u2925","⤦":"\u2926","⇿":"\u21FF","∻":"\u223B","↩":"\u21A9","↪":"\u21AA","𝕙":"\u{1D559}","―":"\u2015","𝒽":"\u{1D4BD}","ℏ":"\u210F","ħ":"\u0127","⁃":"\u2043","‐":"\u2010","í":"\xED","í":"\xED","⁣":"\u2063","î":"\xEE","î":"\xEE","и":"\u0438","е":"\u0435","¡":"\xA1","¡":"\xA1","⇔":"\u21D4","𝔦":"\u{1D526}","ì":"\xEC","ì":"\xEC","ⅈ":"\u2148","⨌":"\u2A0C","∭":"\u222D","⧜":"\u29DC","℩":"\u2129","ij":"\u0133","ī":"\u012B","ℑ":"\u2111","ℐ":"\u2110","ℑ":"\u2111","ı":"\u0131","⊷":"\u22B7","Ƶ":"\u01B5","∈":"\u2208","℅":"\u2105","∞":"\u221E","⧝":"\u29DD","ı":"\u0131","∫":"\u222B","⊺":"\u22BA","ℤ":"\u2124","⊺":"\u22BA","⨗":"\u2A17","⨼":"\u2A3C","ё":"\u0451","į":"\u012F","𝕚":"\u{1D55A}","ι":"\u03B9","⨼":"\u2A3C","¿":"\xBF","¿":"\xBF","𝒾":"\u{1D4BE}","∈":"\u2208","⋹":"\u22F9","⋵":"\u22F5","⋴":"\u22F4","⋳":"\u22F3","∈":"\u2208","⁢":"\u2062","ĩ":"\u0129","і":"\u0456","ï":"\xEF","ï":"\xEF","ĵ":"\u0135","й":"\u0439","𝔧":"\u{1D527}","ȷ":"\u0237","𝕛":"\u{1D55B}","𝒿":"\u{1D4BF}","ј":"\u0458","є":"\u0454","κ":"\u03BA","ϰ":"\u03F0","ķ":"\u0137","к":"\u043A","𝔨":"\u{1D528}","ĸ":"\u0138","х":"\u0445","ќ":"\u045C","𝕜":"\u{1D55C}","𝓀":"\u{1D4C0}","⇚":"\u21DA","⇐":"\u21D0","⤛":"\u291B","⤎":"\u290E","≦":"\u2266","⪋":"\u2A8B","⥢":"\u2962","ĺ":"\u013A","⦴":"\u29B4","ℒ":"\u2112","λ":"\u03BB","⟨":"\u27E8","⦑":"\u2991","⟨":"\u27E8","⪅":"\u2A85","«":"\xAB","«":"\xAB","←":"\u2190","⇤":"\u21E4","⤟":"\u291F","⤝":"\u291D","↩":"\u21A9","↫":"\u21AB","⤹":"\u2939","⥳":"\u2973","↢":"\u21A2","⪫":"\u2AAB","⤙":"\u2919","⪭":"\u2AAD","⪭︀":"\u2AAD\uFE00","⤌":"\u290C","❲":"\u2772","{":"{","[":"[","⦋":"\u298B","⦏":"\u298F","⦍":"\u298D","ľ":"\u013E","ļ":"\u013C","⌈":"\u2308","{":"{","л":"\u043B","⤶":"\u2936","“":"\u201C","„":"\u201E","⥧":"\u2967","⥋":"\u294B","↲":"\u21B2","≤":"\u2264","←":"\u2190","↢":"\u21A2","↽":"\u21BD","↼":"\u21BC","⇇":"\u21C7","↔":"\u2194","⇆":"\u21C6","⇋":"\u21CB","↭":"\u21AD","⋋":"\u22CB","⋚":"\u22DA","≤":"\u2264","≦":"\u2266","⩽":"\u2A7D","⩽":"\u2A7D","⪨":"\u2AA8","⩿":"\u2A7F","⪁":"\u2A81","⪃":"\u2A83","⋚︀":"\u22DA\uFE00","⪓":"\u2A93","⪅":"\u2A85","⋖":"\u22D6","⋚":"\u22DA","⪋":"\u2A8B","≶":"\u2276","≲":"\u2272","⥼":"\u297C","⌊":"\u230A","𝔩":"\u{1D529}","≶":"\u2276","⪑":"\u2A91","↽":"\u21BD","↼":"\u21BC","⥪":"\u296A","▄":"\u2584","љ":"\u0459","≪":"\u226A","⇇":"\u21C7","⌞":"\u231E","⥫":"\u296B","◺":"\u25FA","ŀ":"\u0140","⎰":"\u23B0","⎰":"\u23B0","≨":"\u2268","⪉":"\u2A89","⪉":"\u2A89","⪇":"\u2A87","⪇":"\u2A87","≨":"\u2268","⋦":"\u22E6","⟬":"\u27EC","⇽":"\u21FD","⟦":"\u27E6","⟵":"\u27F5","⟷":"\u27F7","⟼":"\u27FC","⟶":"\u27F6","↫":"\u21AB","↬":"\u21AC","⦅":"\u2985","𝕝":"\u{1D55D}","⨭":"\u2A2D","⨴":"\u2A34","∗":"\u2217","_":"_","◊":"\u25CA","◊":"\u25CA","⧫":"\u29EB","(":"(","⦓":"\u2993","⇆":"\u21C6","⌟":"\u231F","⇋":"\u21CB","⥭":"\u296D","‎":"\u200E","⊿":"\u22BF","‹":"\u2039","𝓁":"\u{1D4C1}","↰":"\u21B0","≲":"\u2272","⪍":"\u2A8D","⪏":"\u2A8F","[":"[","‘":"\u2018","‚":"\u201A","ł":"\u0142","<":"<","<":"<","⪦":"\u2AA6","⩹":"\u2A79","⋖":"\u22D6","⋋":"\u22CB","⋉":"\u22C9","⥶":"\u2976","⩻":"\u2A7B","⦖":"\u2996","◃":"\u25C3","⊴":"\u22B4","◂":"\u25C2","⥊":"\u294A","⥦":"\u2966","≨︀":"\u2268\uFE00","≨︀":"\u2268\uFE00","∺":"\u223A","¯":"\xAF","¯":"\xAF","♂":"\u2642","✠":"\u2720","✠":"\u2720","↦":"\u21A6","↦":"\u21A6","↧":"\u21A7","↤":"\u21A4","↥":"\u21A5","▮":"\u25AE","⨩":"\u2A29","м":"\u043C","—":"\u2014","∡":"\u2221","𝔪":"\u{1D52A}","℧":"\u2127","µ":"\xB5","µ":"\xB5","∣":"\u2223","*":"*","⫰":"\u2AF0","·":"\xB7","·":"\xB7","−":"\u2212","⊟":"\u229F","∸":"\u2238","⨪":"\u2A2A","⫛":"\u2ADB","…":"\u2026","∓":"\u2213","⊧":"\u22A7","𝕞":"\u{1D55E}","∓":"\u2213","𝓂":"\u{1D4C2}","∾":"\u223E","μ":"\u03BC","⊸":"\u22B8","⊸":"\u22B8","⋙̸":"\u22D9\u0338","≫⃒":"\u226B\u20D2","≫̸":"\u226B\u0338","⇍":"\u21CD","⇎":"\u21CE","⋘̸":"\u22D8\u0338","≪⃒":"\u226A\u20D2","≪̸":"\u226A\u0338","⇏":"\u21CF","⊯":"\u22AF","⊮":"\u22AE","∇":"\u2207","ń":"\u0144","∠⃒":"\u2220\u20D2","≉":"\u2249","⩰̸":"\u2A70\u0338","≋̸":"\u224B\u0338","ʼn":"\u0149","≉":"\u2249","♮":"\u266E","♮":"\u266E","ℕ":"\u2115"," ":"\xA0"," ":"\xA0","≎̸":"\u224E\u0338","≏̸":"\u224F\u0338","⩃":"\u2A43","ň":"\u0148","ņ":"\u0146","≇":"\u2247","⩭̸":"\u2A6D\u0338","⩂":"\u2A42","н":"\u043D","–":"\u2013","≠":"\u2260","⇗":"\u21D7","⤤":"\u2924","↗":"\u2197","↗":"\u2197","≐̸":"\u2250\u0338","≢":"\u2262","⤨":"\u2928","≂̸":"\u2242\u0338","∄":"\u2204","∄":"\u2204","𝔫":"\u{1D52B}","≧̸":"\u2267\u0338","≱":"\u2271","≱":"\u2271","≧̸":"\u2267\u0338","⩾̸":"\u2A7E\u0338","⩾̸":"\u2A7E\u0338","≵":"\u2275","≯":"\u226F","≯":"\u226F","⇎":"\u21CE","↮":"\u21AE","⫲":"\u2AF2","∋":"\u220B","⋼":"\u22FC","⋺":"\u22FA","∋":"\u220B","њ":"\u045A","⇍":"\u21CD","≦̸":"\u2266\u0338","↚":"\u219A","‥":"\u2025","≰":"\u2270","↚":"\u219A","↮":"\u21AE","≰":"\u2270","≦̸":"\u2266\u0338","⩽̸":"\u2A7D\u0338","⩽̸":"\u2A7D\u0338","≮":"\u226E","≴":"\u2274","≮":"\u226E","⋪":"\u22EA","⋬":"\u22EC","∤":"\u2224","𝕟":"\u{1D55F}","¬":"\xAC","¬":"\xAC","∉":"\u2209","⋹̸":"\u22F9\u0338","⋵̸":"\u22F5\u0338","∉":"\u2209","⋷":"\u22F7","⋶":"\u22F6","∌":"\u220C","∌":"\u220C","⋾":"\u22FE","⋽":"\u22FD","∦":"\u2226","∦":"\u2226","⫽⃥":"\u2AFD\u20E5","∂̸":"\u2202\u0338","⨔":"\u2A14","⊀":"\u2280","⋠":"\u22E0","⪯̸":"\u2AAF\u0338","⊀":"\u2280","⪯̸":"\u2AAF\u0338","⇏":"\u21CF","↛":"\u219B","⤳̸":"\u2933\u0338","↝̸":"\u219D\u0338","↛":"\u219B","⋫":"\u22EB","⋭":"\u22ED","⊁":"\u2281","⋡":"\u22E1","⪰̸":"\u2AB0\u0338","𝓃":"\u{1D4C3}","∤":"\u2224","∦":"\u2226","≁":"\u2241","≄":"\u2244","≄":"\u2244","∤":"\u2224","∦":"\u2226","⋢":"\u22E2","⋣":"\u22E3","⊄":"\u2284","⫅̸":"\u2AC5\u0338","⊈":"\u2288","⊂⃒":"\u2282\u20D2","⊈":"\u2288","⫅̸":"\u2AC5\u0338","⊁":"\u2281","⪰̸":"\u2AB0\u0338","⊅":"\u2285","⫆̸":"\u2AC6\u0338","⊉":"\u2289","⊃⃒":"\u2283\u20D2","⊉":"\u2289","⫆̸":"\u2AC6\u0338","≹":"\u2279","ñ":"\xF1","ñ":"\xF1","≸":"\u2278","⋪":"\u22EA","⋬":"\u22EC","⋫":"\u22EB","⋭":"\u22ED","ν":"\u03BD","#":"#","№":"\u2116"," ":"\u2007","⊭":"\u22AD","⤄":"\u2904","≍⃒":"\u224D\u20D2","⊬":"\u22AC","≥⃒":"\u2265\u20D2",">⃒":">\u20D2","⧞":"\u29DE","⤂":"\u2902","≤⃒":"\u2264\u20D2","<⃒":"<\u20D2","⊴⃒":"\u22B4\u20D2","⤃":"\u2903","⊵⃒":"\u22B5\u20D2","∼⃒":"\u223C\u20D2","⇖":"\u21D6","⤣":"\u2923","↖":"\u2196","↖":"\u2196","⤧":"\u2927","Ⓢ":"\u24C8","ó":"\xF3","ó":"\xF3","⊛":"\u229B","⊚":"\u229A","ô":"\xF4","ô":"\xF4","о":"\u043E","⊝":"\u229D","ő":"\u0151","⨸":"\u2A38","⊙":"\u2299","⦼":"\u29BC","œ":"\u0153","⦿":"\u29BF","𝔬":"\u{1D52C}","˛":"\u02DB","ò":"\xF2","ò":"\xF2","⧁":"\u29C1","⦵":"\u29B5","Ω":"\u03A9","∮":"\u222E","↺":"\u21BA","⦾":"\u29BE","⦻":"\u29BB","‾":"\u203E","⧀":"\u29C0","ō":"\u014D","ω":"\u03C9","ο":"\u03BF","⦶":"\u29B6","⊖":"\u2296","𝕠":"\u{1D560}","⦷":"\u29B7","⦹":"\u29B9","⊕":"\u2295","∨":"\u2228","↻":"\u21BB","⩝":"\u2A5D","ℴ":"\u2134","ℴ":"\u2134","ª":"\xAA","ª":"\xAA","º":"\xBA","º":"\xBA","⊶":"\u22B6","⩖":"\u2A56","⩗":"\u2A57","⩛":"\u2A5B","ℴ":"\u2134","ø":"\xF8","ø":"\xF8","⊘":"\u2298","õ":"\xF5","õ":"\xF5","⊗":"\u2297","⨶":"\u2A36","ö":"\xF6","ö":"\xF6","⌽":"\u233D","∥":"\u2225","¶":"\xB6","¶":"\xB6","∥":"\u2225","⫳":"\u2AF3","⫽":"\u2AFD","∂":"\u2202","п":"\u043F","%":"%",".":".","‰":"\u2030","⊥":"\u22A5","‱":"\u2031","𝔭":"\u{1D52D}","φ":"\u03C6","ϕ":"\u03D5","ℳ":"\u2133","☎":"\u260E","π":"\u03C0","⋔":"\u22D4","ϖ":"\u03D6","ℏ":"\u210F","ℎ":"\u210E","ℏ":"\u210F","+":"+","⨣":"\u2A23","⊞":"\u229E","⨢":"\u2A22","∔":"\u2214","⨥":"\u2A25","⩲":"\u2A72","±":"\xB1","±":"\xB1","⨦":"\u2A26","⨧":"\u2A27","±":"\xB1","⨕":"\u2A15","𝕡":"\u{1D561}","£":"\xA3","£":"\xA3","≺":"\u227A","⪳":"\u2AB3","⪷":"\u2AB7","≼":"\u227C","⪯":"\u2AAF","≺":"\u227A","⪷":"\u2AB7","≼":"\u227C","⪯":"\u2AAF","⪹":"\u2AB9","⪵":"\u2AB5","⋨":"\u22E8","≾":"\u227E","′":"\u2032","ℙ":"\u2119","⪵":"\u2AB5","⪹":"\u2AB9","⋨":"\u22E8","∏":"\u220F","⌮":"\u232E","⌒":"\u2312","⌓":"\u2313","∝":"\u221D","∝":"\u221D","≾":"\u227E","⊰":"\u22B0","𝓅":"\u{1D4C5}","ψ":"\u03C8"," ":"\u2008","𝔮":"\u{1D52E}","⨌":"\u2A0C","𝕢":"\u{1D562}","⁗":"\u2057","𝓆":"\u{1D4C6}","ℍ":"\u210D","⨖":"\u2A16","?":"?","≟":"\u225F",""":'"',""":'"',"⇛":"\u21DB","⇒":"\u21D2","⤜":"\u291C","⤏":"\u290F","⥤":"\u2964","∽̱":"\u223D\u0331","ŕ":"\u0155","√":"\u221A","⦳":"\u29B3","⟩":"\u27E9","⦒":"\u2992","⦥":"\u29A5","⟩":"\u27E9","»":"\xBB","»":"\xBB","→":"\u2192","⥵":"\u2975","⇥":"\u21E5","⤠":"\u2920","⤳":"\u2933","⤞":"\u291E","↪":"\u21AA","↬":"\u21AC","⥅":"\u2945","⥴":"\u2974","↣":"\u21A3","↝":"\u219D","⤚":"\u291A","∶":"\u2236","ℚ":"\u211A","⤍":"\u290D","❳":"\u2773","}":"}","]":"]","⦌":"\u298C","⦎":"\u298E","⦐":"\u2990","ř":"\u0159","ŗ":"\u0157","⌉":"\u2309","}":"}","р":"\u0440","⤷":"\u2937","⥩":"\u2969","”":"\u201D","”":"\u201D","↳":"\u21B3","ℜ":"\u211C","ℛ":"\u211B","ℜ":"\u211C","ℝ":"\u211D","▭":"\u25AD","®":"\xAE","®":"\xAE","⥽":"\u297D","⌋":"\u230B","𝔯":"\u{1D52F}","⇁":"\u21C1","⇀":"\u21C0","⥬":"\u296C","ρ":"\u03C1","ϱ":"\u03F1","→":"\u2192","↣":"\u21A3","⇁":"\u21C1","⇀":"\u21C0","⇄":"\u21C4","⇌":"\u21CC","⇉":"\u21C9","↝":"\u219D","⋌":"\u22CC","˚":"\u02DA","≓":"\u2253","⇄":"\u21C4","⇌":"\u21CC","‏":"\u200F","⎱":"\u23B1","⎱":"\u23B1","⫮":"\u2AEE","⟭":"\u27ED","⇾":"\u21FE","⟧":"\u27E7","⦆":"\u2986","𝕣":"\u{1D563}","⨮":"\u2A2E","⨵":"\u2A35",")":")","⦔":"\u2994","⨒":"\u2A12","⇉":"\u21C9","›":"\u203A","𝓇":"\u{1D4C7}","↱":"\u21B1","]":"]","’":"\u2019","’":"\u2019","⋌":"\u22CC","⋊":"\u22CA","▹":"\u25B9","⊵":"\u22B5","▸":"\u25B8","⧎":"\u29CE","⥨":"\u2968","℞":"\u211E","ś":"\u015B","‚":"\u201A","≻":"\u227B","⪴":"\u2AB4","⪸":"\u2AB8","š":"\u0161","≽":"\u227D","⪰":"\u2AB0","ş":"\u015F","ŝ":"\u015D","⪶":"\u2AB6","⪺":"\u2ABA","⋩":"\u22E9","⨓":"\u2A13","≿":"\u227F","с":"\u0441","⋅":"\u22C5","⊡":"\u22A1","⩦":"\u2A66","⇘":"\u21D8","⤥":"\u2925","↘":"\u2198","↘":"\u2198","§":"\xA7","§":"\xA7",";":";","⤩":"\u2929","∖":"\u2216","∖":"\u2216","✶":"\u2736","𝔰":"\u{1D530}","⌢":"\u2322","♯":"\u266F","щ":"\u0449","ш":"\u0448","∣":"\u2223","∥":"\u2225","­":"\xAD","­":"\xAD","σ":"\u03C3","ς":"\u03C2","ς":"\u03C2","∼":"\u223C","⩪":"\u2A6A","≃":"\u2243","≃":"\u2243","⪞":"\u2A9E","⪠":"\u2AA0","⪝":"\u2A9D","⪟":"\u2A9F","≆":"\u2246","⨤":"\u2A24","⥲":"\u2972","←":"\u2190","∖":"\u2216","⨳":"\u2A33","⧤":"\u29E4","∣":"\u2223","⌣":"\u2323","⪪":"\u2AAA","⪬":"\u2AAC","⪬︀":"\u2AAC\uFE00","ь":"\u044C","/":"/","⧄":"\u29C4","⌿":"\u233F","𝕤":"\u{1D564}","♠":"\u2660","♠":"\u2660","∥":"\u2225","⊓":"\u2293","⊓︀":"\u2293\uFE00","⊔":"\u2294","⊔︀":"\u2294\uFE00","⊏":"\u228F","⊑":"\u2291","⊏":"\u228F","⊑":"\u2291","⊐":"\u2290","⊒":"\u2292","⊐":"\u2290","⊒":"\u2292","□":"\u25A1","□":"\u25A1","▪":"\u25AA","▪":"\u25AA","→":"\u2192","𝓈":"\u{1D4C8}","∖":"\u2216","⌣":"\u2323","⋆":"\u22C6","☆":"\u2606","★":"\u2605","ϵ":"\u03F5","ϕ":"\u03D5","¯":"\xAF","⊂":"\u2282","⫅":"\u2AC5","⪽":"\u2ABD","⊆":"\u2286","⫃":"\u2AC3","⫁":"\u2AC1","⫋":"\u2ACB","⊊":"\u228A","⪿":"\u2ABF","⥹":"\u2979","⊂":"\u2282","⊆":"\u2286","⫅":"\u2AC5","⊊":"\u228A","⫋":"\u2ACB","⫇":"\u2AC7","⫕":"\u2AD5","⫓":"\u2AD3","≻":"\u227B","⪸":"\u2AB8","≽":"\u227D","⪰":"\u2AB0","⪺":"\u2ABA","⪶":"\u2AB6","⋩":"\u22E9","≿":"\u227F","∑":"\u2211","♪":"\u266A","¹":"\xB9","¹":"\xB9","²":"\xB2","²":"\xB2","³":"\xB3","³":"\xB3","⊃":"\u2283","⫆":"\u2AC6","⪾":"\u2ABE","⫘":"\u2AD8","⊇":"\u2287","⫄":"\u2AC4","⟉":"\u27C9","⫗":"\u2AD7","⥻":"\u297B","⫂":"\u2AC2","⫌":"\u2ACC","⊋":"\u228B","⫀":"\u2AC0","⊃":"\u2283","⊇":"\u2287","⫆":"\u2AC6","⊋":"\u228B","⫌":"\u2ACC","⫈":"\u2AC8","⫔":"\u2AD4","⫖":"\u2AD6","⇙":"\u21D9","⤦":"\u2926","↙":"\u2199","↙":"\u2199","⤪":"\u292A","ß":"\xDF","ß":"\xDF","⌖":"\u2316","τ":"\u03C4","⎴":"\u23B4","ť":"\u0165","ţ":"\u0163","т":"\u0442","⃛":"\u20DB","⌕":"\u2315","𝔱":"\u{1D531}","∴":"\u2234","∴":"\u2234","θ":"\u03B8","ϑ":"\u03D1","ϑ":"\u03D1","≈":"\u2248","∼":"\u223C"," ":"\u2009","≈":"\u2248","∼":"\u223C","þ":"\xFE","þ":"\xFE","˜":"\u02DC","×":"\xD7","×":"\xD7","⊠":"\u22A0","⨱":"\u2A31","⨰":"\u2A30","∭":"\u222D","⤨":"\u2928","⊤":"\u22A4","⌶":"\u2336","⫱":"\u2AF1","𝕥":"\u{1D565}","⫚":"\u2ADA","⤩":"\u2929","‴":"\u2034","™":"\u2122","▵":"\u25B5","▿":"\u25BF","◃":"\u25C3","⊴":"\u22B4","≜":"\u225C","▹":"\u25B9","⊵":"\u22B5","◬":"\u25EC","≜":"\u225C","⨺":"\u2A3A","⨹":"\u2A39","⧍":"\u29CD","⨻":"\u2A3B","⏢":"\u23E2","𝓉":"\u{1D4C9}","ц":"\u0446","ћ":"\u045B","ŧ":"\u0167","≬":"\u226C","↞":"\u219E","↠":"\u21A0","⇑":"\u21D1","⥣":"\u2963","ú":"\xFA","ú":"\xFA","↑":"\u2191","ў":"\u045E","ŭ":"\u016D","û":"\xFB","û":"\xFB","у":"\u0443","⇅":"\u21C5","ű":"\u0171","⥮":"\u296E","⥾":"\u297E","𝔲":"\u{1D532}","ù":"\xF9","ù":"\xF9","↿":"\u21BF","↾":"\u21BE","▀":"\u2580","⌜":"\u231C","⌜":"\u231C","⌏":"\u230F","◸":"\u25F8","ū":"\u016B","¨":"\xA8","¨":"\xA8","ų":"\u0173","𝕦":"\u{1D566}","↑":"\u2191","↕":"\u2195","↿":"\u21BF","↾":"\u21BE","⊎":"\u228E","υ":"\u03C5","ϒ":"\u03D2","υ":"\u03C5","⇈":"\u21C8","⌝":"\u231D","⌝":"\u231D","⌎":"\u230E","ů":"\u016F","◹":"\u25F9","𝓊":"\u{1D4CA}","⋰":"\u22F0","ũ":"\u0169","▵":"\u25B5","▴":"\u25B4","⇈":"\u21C8","ü":"\xFC","ü":"\xFC","⦧":"\u29A7","⇕":"\u21D5","⫨":"\u2AE8","⫩":"\u2AE9","⊨":"\u22A8","⦜":"\u299C","ϵ":"\u03F5","ϰ":"\u03F0","∅":"\u2205","ϕ":"\u03D5","ϖ":"\u03D6","∝":"\u221D","↕":"\u2195","ϱ":"\u03F1","ς":"\u03C2","⊊︀":"\u228A\uFE00","⫋︀":"\u2ACB\uFE00","⊋︀":"\u228B\uFE00","⫌︀":"\u2ACC\uFE00","ϑ":"\u03D1","⊲":"\u22B2","⊳":"\u22B3","в":"\u0432","⊢":"\u22A2","∨":"\u2228","⊻":"\u22BB","≚":"\u225A","⋮":"\u22EE","|":"|","|":"|","𝔳":"\u{1D533}","⊲":"\u22B2","⊂⃒":"\u2282\u20D2","⊃⃒":"\u2283\u20D2","𝕧":"\u{1D567}","∝":"\u221D","⊳":"\u22B3","𝓋":"\u{1D4CB}","⫋︀":"\u2ACB\uFE00","⊊︀":"\u228A\uFE00","⫌︀":"\u2ACC\uFE00","⊋︀":"\u228B\uFE00","⦚":"\u299A","ŵ":"\u0175","⩟":"\u2A5F","∧":"\u2227","≙":"\u2259","℘":"\u2118","𝔴":"\u{1D534}","𝕨":"\u{1D568}","℘":"\u2118","≀":"\u2240","≀":"\u2240","𝓌":"\u{1D4CC}","⋂":"\u22C2","◯":"\u25EF","⋃":"\u22C3","▽":"\u25BD","𝔵":"\u{1D535}","⟺":"\u27FA","⟷":"\u27F7","ξ":"\u03BE","⟸":"\u27F8","⟵":"\u27F5","⟼":"\u27FC","⋻":"\u22FB","⨀":"\u2A00","𝕩":"\u{1D569}","⨁":"\u2A01","⨂":"\u2A02","⟹":"\u27F9","⟶":"\u27F6","𝓍":"\u{1D4CD}","⨆":"\u2A06","⨄":"\u2A04","△":"\u25B3","⋁":"\u22C1","⋀":"\u22C0","ý":"\xFD","ý":"\xFD","я":"\u044F","ŷ":"\u0177","ы":"\u044B","¥":"\xA5","¥":"\xA5","𝔶":"\u{1D536}","ї":"\u0457","𝕪":"\u{1D56A}","𝓎":"\u{1D4CE}","ю":"\u044E","ÿ":"\xFF","ÿ":"\xFF","ź":"\u017A","ž":"\u017E","з":"\u0437","ż":"\u017C","ℨ":"\u2128","ζ":"\u03B6","𝔷":"\u{1D537}","ж":"\u0436","⇝":"\u21DD","𝕫":"\u{1D56B}","𝓏":"\u{1D4CF}","‍":"\u200D","‌":"\u200C"};var Du=new Map([[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);function Eu(t){return t.replace(/&(#\d+|#x[a-f0-9]+|[a-z]+\d*);?/gi,(e,r)=>{if(typeof Hr[e]=="string")return Hr[e];if(r.charAt(0)!=="#"||e.charAt(e.length-1)!==";")return e;let n;r.charAt(1).toLowerCase()==="x"?n=parseInt(r.slice(2),16):n=parseInt(r.slice(1),10);let s="";return n===0||n>=55296&&n<=57343||n>1114111?"\uFFFD":(n=Du.get(n)??n,n>65535&&(n-=65536,s+=String.fromCharCode(n>>>10&1023|55296),n=56320|n&1023),s+=String.fromCharCode(n),s)})}var Js=t=>t.toString(16).toUpperCase().padStart(2,"0");function Ie(t){return t.trim().replace(/[<>"'?&]/g,e=>"&#x"+Js(e.charCodeAt(0))+";")}var Bu=/[^A-Za-z0-9\-._~!$'()*+,;:@]+/g,Cu=Array.from({length:256},(t,e)=>"%"+Js(e));function vu(t){return t.replace(Bu,e=>Array.from(ue.encode(e),r=>Cu[r]).join(""))}function Qs(t){return"<div>"+Ie(t).replace(/\n/g,"<br />")+"</div>"}function Ws(t,e){let r=1/0,n=null;return s=>((s<r||n&&s>n.index)&&(e.lastIndex=s,n=e.exec(t),r=s),n)}function eo(t,e){let r=t.lastIndexOf(">")+1;return e(t.slice(0,r))+t.slice(r)}function ht(t,e,r){return eo(t,n=>n.replace(e,r))}function Zs(t,e,r,n){let s=[],o=0,i=0;for(;;){e.lastIndex=i;let u=e.exec(t);if(!u)break;let a=u.index,l=t.indexOf(">",a);if(l<0)break;r.lastIndex=a;let c=r.exec(t);if(!c){i=l+1;continue}s.push(t.slice(o,a),n(...c)),o=i=a+c[0].length}return s.push(t.slice(o)),s.join("")}function Kr(t,e,r,n,s,o){let i=Ws(t,/>/g),u=Ws(t,n),a=[],l=0,c=0;for(;;){e.lastIndex=c;let f=e.exec(t);if(!f)break;let p=f.index;c=p+1;let h=p+f[0].length;if(r){let x=i(h);if(!x)break;h=x.index+1}let g=u(h);if(!g)break;let m=g.index+g[0].length;if(s){let x=i(m);if(!x)break;m=x.index+1}a.push(t.slice(l,p),o),l=c=m}return a.push(t.slice(l)),a.join("")}function zr(t,e){let r=t.lastIndexOf(">"),n=-1;e.lastIndex=0;let s;for(;(s=e.exec(t))&&s.index<r;)n=s.index;return n<0?t:t.slice(t.indexOf(">",n)+1)}function Ys(t,e){e.lastIndex=0;let r=e.exec(t);return r&&r.index<t.lastIndexOf(">")?t.slice(0,r.index):t}function to(t){return t=t.replace(/\r\n|[\n\r\u2028\u2029]/g,""),t=Kr(t,/<!--/g,!1,/-->/g,!1," "),t=ht(t,/<br\b[^>]*>/gi,`
|
|
8
|
+
`),t=ht(t,/<\/?(p|div|table|tr|td|th)\b[^>]*>/gi,`
|
|
9
9
|
|
|
10
|
-
`),t=
|
|
10
|
+
`),t=Kr(t,/<script\b/gi,!0,/<\/script\b/gi,!0," "),t=Kr(t,/<style\b/gi,!0,/<\/style\b/gi,!0," "),t=zr(t,/<body\b/gi),t=zr(t,/<\/head\b/gi),t=zr(t,/<!doctype\b/gi),t=Ys(t,/<\/body\b/gi),t=Ys(t,/<\/html\b/gi),t=eo(t,e=>Zs(e,/<a\b/gi,/<a\b[^>]*href\s*=\s*["']?([^\s"']+)[^>]*>/iy,(r,n)=>` (${n}) `)),t=ht(t,/<\/?(span|em|i|strong|b|u|a)\b[^>]*>/gi,""),t=Zs(t,/<li\b/gi,/<li\b[^>]*>[\n\u0001\s]*/iy,()=>"* "),t=ht(t,/<hr\b[^>]*>/g,`
|
|
11
11
|
-------------
|
|
12
|
-
`),t=
|
|
12
|
+
`),t=ht(t,/<[^>]*>/g," "),t=t.replace(/\u0001/g,`
|
|
13
13
|
`).replace(/[ \t]+/g," ").replace(/^\s+$/gm,"").replace(/\n\n+/g,`
|
|
14
14
|
|
|
15
15
|
`).replace(/^\n+/,`
|
|
16
16
|
`).replace(/\n+$/,`
|
|
17
|
-
`),t=
|
|
18
|
-
`)}return o}function
|
|
17
|
+
`),t=Eu(t),t}var Xs=null;function ro(t){if(typeof Intl>"u")return t;let e=new Date(t);return isNaN(e.getTime())?t:(Xs??=new Intl.DateTimeFormat("default",{year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",hour12:!1}),Xs.format(e))}function Su(t){return(t.name?[t.name,`<${t.address}>`]:[t.address]).join(" ")}function zt(t){let e=[],r=(n,s)=>{if(s&&e.push(", "),n.group){let o=`${n.name}:`,i=";";e.push(o),n.group.forEach(r),e.push(i)}else e.push(Su(n))};return t.forEach(r),e.join("")}function Tu(t){return`<a href="mailto:${Ie(vu(t.address))}" class="postal-email-address">${Ie(t.name||`<${t.address}>`)}</a>`}function Gt(t){let e=[],r=(n,s)=>{if(s&&e.push('<span class="postal-email-address-separator">, </span>'),n.group){let o=`<span class="postal-email-address-group">${Ie(n.name)}:</span>`,i='<span class="postal-email-address-group">;</span>';e.push(o),n.group.forEach(r),e.push(i)}else e.push(Tu(n))};return t.forEach(r),e.join(" ")}function ku(t,e,r){t=(t||"").toString(),e=e||76;let n=0,s=t.length,o="",i,u;for(;n<s;){if(i=t.slice(n,n+e),i.length<e){o+=i;break}if(u=i.match(/^[^\n\r]*(\r?\n|\r)/)){i=u[0],o+=i,n+=i.length;continue}else(u=i.match(/(\s+)[^\s]*$/))&&u[0].length-(r?(u[1]||"").length:0)<i.length?i=i.slice(0,i.length-(u[0].length-(r?(u[1]||"").length:0))):(u=t.slice(n+i.length).match(/^[^\s]+(\s*)/))&&(i=i+u[0].slice(0,u[0].length-(r?0:(u[1]||"").length)));o+=i,n+=i.length,n<s&&(o+=`\r
|
|
18
|
+
`)}return o}function no(t){let e=[];t.from&&e.push({key:"From",val:zt([t.from])}),t.subject&&e.push({key:"Subject",val:t.subject}),t.date&&e.push({key:"Date",val:ro(t.date)}),t.to&&t.to.length&&e.push({key:"To",val:zt(t.to)}),t.cc&&t.cc.length&&e.push({key:"Cc",val:zt(t.cc)}),t.bcc&&t.bcc.length&&e.push({key:"Bcc",val:zt(t.bcc)});let r=e.map(u=>u.key.length).reduce((u,a)=>a>u?a:u,0),n=e.flatMap(u=>{let a=r-u.key.length,l=`${u.key}: ${" ".repeat(a)}`,c=`${" ".repeat(u.key.length+1)} ${" ".repeat(a)}`;return ku(u.val,80,!0).split(/\r?\n/).map(p=>p.trim()).map((p,h)=>`${h?c:l}${p}`)}),s=n.map(u=>u.length).reduce((u,a)=>a>u?a:u,0),o="-".repeat(s);return`
|
|
19
19
|
${o}
|
|
20
20
|
${n.join(`
|
|
21
21
|
`)}
|
|
22
22
|
${o}
|
|
23
|
-
`}function
|
|
24
|
-
<div class="postal-email-header-row">`)}${e.length?"</div>":""}</div>`}var
|
|
23
|
+
`}function so(t){let e=[];return t.from&&e.push(`<div class="postal-email-header-key">From</div><div class="postal-email-header-value">${Gt([t.from])}</div>`),t.subject&&e.push(`<div class="postal-email-header-key">Subject</div><div class="postal-email-header-value postal-email-header-subject">${Ie(t.subject)}</div>`),t.date&&e.push(`<div class="postal-email-header-key">Date</div><div class="postal-email-header-value postal-email-header-date" data-date="${Ie(t.date)}">${Ie(ro(t.date))}</div>`),t.to&&t.to.length&&e.push(`<div class="postal-email-header-key">To</div><div class="postal-email-header-value">${Gt(t.to)}</div>`),t.cc&&t.cc.length&&e.push(`<div class="postal-email-header-key">Cc</div><div class="postal-email-header-value">${Gt(t.cc)}</div>`),t.bcc&&t.bcc.length&&e.push(`<div class="postal-email-header-key">Bcc</div><div class="postal-email-header-value">${Gt(t.bcc)}</div>`),`<div class="postal-email-header">${e.length?'<div class="postal-email-header-row">':""}${e.join(`</div>
|
|
24
|
+
<div class="postal-email-header-row">`)}${e.length?"</div>":""}</div>`}var Ve=1,ho=2,Vt=4,oo=8,io=16,Gr=class{constructor(e){this.str=e,this.slots=new Int32Array(48),this.length=0,this.cleaned=new Map}push(e,r,n){if((this.length+1)*3>this.slots.length){let o=new Int32Array(this.slots.length*2);o.set(this.slots),this.slots=o}let s=this.length*3;return this.slots[s]=e,this.slots[s+1]=r,this.slots[s+2]=n,this.length++}operatorAt(e){let r=e*3;return this.slots[r]&Ve?this.str.charAt(this.slots[r+1]):""}isOperator(e){return(this.slots[e*3]&Ve)!==0}noBreak(e){return(this.slots[e*3]&ho)!==0}value(e){let r=this.cleaned.get(e);return r!==void 0?r:this.str.slice(this.slots[e*3+1],this.slots[e*3+2])}},Fu=/\s/,Ou=/^("(?:[^"\\]|\\[\s\S])*"@\S+)(?:\s+([\s\S]+))?$/,Ru=/^[^@\s]+@[^@\s]+$/,Lu=/^[^@\s]+@\[[^[\]\\\s]*\]$/,_u=/^@(?:[^@\s"]+|\[[^[\]\\\s]*\])$/;function mo(t){return Ru.test(t)||Lu.test(t)}var Nu=/^[^@\s]+@\S+$/,uo=/\s*\b[^@\s]+@[^\s]+\b\s*/y,qu=/@(\[[^[\]\\]*\])$/;function go(t){let e=t.charAt(t.length-1)==="]"?qu.exec(t):null;return e?t.length-e[1].length-1:t.lastIndexOf("@")}function ao(t){let e=go(t);if(e<0)return t;let r=t.substring(0,e);return/^[^\s"(),:;<>@[\\\]]+$/.test(r)||/^"(?:[^"\\]|\\[\s\S])*"$/.test(r)?t:'"'+r.replace(/["\\]/g,"\\$&")+'"@'+t.substring(e+1)}function ne(t){return t===32||t>=9&&t<=13||t===160||t===5760||t>=8192&&t<=8202||t===8232||t===8233||t===8239||t===8287||t===12288||t===65279}function co(t){return t>=48&&t<=57||t>=65&&t<=90||t>=97&&t<=122||t===95}function lo(t,e){return co(t.charCodeAt(e-1))!==co(t.charCodeAt(e))}function fo(t,e,r){for(let n=e;n<r;n++)if(t.charCodeAt(n)===64)return n;return-1}var Iu=/^"(?:[^"\\]|\\[\s\S])*"/;function Vr(t,e){if(e<0)return t;let r=e;for(;r>0&&ne(t.charCodeAt(r-1));)r--;let n=e+1;for(;n<t.length&&ne(t.charCodeAt(n));)n++;return r===e&&n===e+1?t:t.slice(0,r)+"@"+t.slice(n)}function yo(t){let e=Iu.exec(t);if(e){let n=e[0].length;for(;n<t.length&&ne(t.charCodeAt(n));)n++;if(t.charAt(n)==="@"&&t.indexOf("@",n+1)<0)return Vr(t,n)}let r=t.indexOf("@");return r<0||t.indexOf("@",r+1)>=0||t.lastIndexOf('"')>r?t:Vr(t,r)}function Uu(t){let e=t.length,r=0;for(;r<e;){for(;r<e&&ne(t.charCodeAt(r));)r++;if(r>=e)break;let n=r,s=r;for(;s<e&&!ne(t.charCodeAt(s));)s++;let o=fo(t,n,s);if(o>=0){let i=-1;for(let a=s;a>n;a--)if(lo(t,a)){i=a;break}let u=n;for(;i>=0&&o>=0;){if(o>u&&s>o+1&&i>o+1){for(let a=u;a<o;a++)if(lo(t,a)){if(a>n)return a;let l=n;for(;l>0&&ne(t.charCodeAt(l-1));)l--;return l}}u=o+1,o=fo(t,u,s)}}r=s}return-1}function Pu(t,e){if(t=yo(t),!Fu.test(t))return{address:t,text:e};let r,n=t.match(Ou);if(n){if(!n[2])return{address:t,text:e};t=n[1],r=[n[2]]}else{if(t.indexOf('"')>=0)return{address:t,text:e};let s=t.split(/\s+/),o=s.findIndex(mo);if(o<0&&(o=s.findIndex(i=>Nu.test(i))),o<0)return{address:t,text:e};t=s.splice(o,1)[0],r=s}return{address:t,text:[e,...r].filter(s=>s).join(" ")}}function $u(t){let e=[],r="",n="",s=0,o="",i="",u=!1,a="",l=!1,c=-1;for(let f=0,p=t.length;f<p;f++){let h=t.charAt(f);if(s){h==="\\"&&f<p-1?n+=t.charAt(++f):h==="("?(s++,n+=h):h===")"&&!--s?(e.push(n.trim()),n="",u=i!=="@"):n+=h;continue}if(u&&h!=="("&&(u=!1,h!=="@"&&h!=="<"&&!ne(t.charCodeAt(f))&&(r+=" ",i=" ")),o){if(h==="\\"&&o==='"'&&f<p-1){r+=h+t.charAt(++f),i=t.charAt(f);continue}h===o&&(o="")}else if(h==='"')o='"',l=!0;else if(h===":"&&c<0&&a==="@"&&!l)c=r.length+1;else if(h==="[")o="]";else if(h==="("){s=1;continue}else if(h==="<"){r="",i="",e.length=0,a="",l=!1,c=-1;continue}r+=h,i=h,!a&&!ne(t.charCodeAt(f))&&(a=h)}return c>=0&&r.indexOf("@",c)>=0&&(r=r.slice(c)),s&&e.push(n.trim()),{address:r.trim(),comments:e.filter(f=>f)}}function xo(t,e,r){let n="text",s={address:[],comment:[],text:[],textWasQuoted:[],quotedLocalAt:[]},o=!1,i,u=!1,a={address:"",comment:"",text:""};for(i=e;i<r;i++){let c=t.value(i),f=i>e?t.operatorAt(i-1):"",p=i>e&&t.noBreak(i-1);if(t.isOperator(i))switch(c){case"<":n="address",u=!1;break;case"(":n="comment",u=!1;break;case'"':u=!u,n="text";break;default:n="text",u=!1;break}else{let h=f==='"'&&p&&i>e+1&&t.operatorAt(i-2)==='"';if(p&&s[n].length&&(f!==")"||a[n]==="@"||c.charAt(0)==="@")){let m=s[n].length-1;n==="text"&&!u&&(o&&c.charAt(0)==="@"&&(s.quotedLocalAt[m]=s.text[m].length),o=!1),s[n][m]+=c,n==="text"&&u&&(s.textWasQuoted[m]=!0)}else s[n].push(c),n==="text"&&(s.textWasQuoted.push(u||h),s.quotedLocalAt.push(h&&c.charAt(0)==="@"?0:-1),o=u);a[n]=c.charAt(c.length-1)}}let l=!1;return!s.text.length&&s.comment.length&&(s.text=s.comment,s.comment=[],l=!0),{data:s,textFromComment:l}}function Mu(t,e,r){return Ee(xo(t,e,r).data.text.join(" "))}function ju(t,e,r){let n=xo(t,e,r),s=n.data,o=n.textFromComment,i,u=[],a=[];for(let g of s.address){let m=$u(g);for(let x of m.comments)u.push(x);m.address&&a.push(m.address)}if(s.address=a,!s.address.length&&s.text.length&&!o){let g=s.text.map(m=>yo(m));for(i=0;i<s.text.length;i++){let m=s.quotedLocalAt[i],x=s.textWasQuoted[i]&&m>=0&&_u.test(s.text[i].slice(m))?ao(s.text[i]):"";if(x||!s.textWasQuoted[i]&&mo(g[i])){s.address=[x||g[i]],s.text.splice(i,1),s.textWasQuoted.splice(i,1),s.quotedLocalAt.splice(i,1);break}}if(!s.address.length){for(i=0;i<s.text.length;i++)if(!s.textWasQuoted[i]){let m=g[i],x=Uu(m);if(x>=0){uo.lastIndex=x;let v=uo.exec(m);if(v){s.address=[v[0].trim()],s.text[i]=(m.slice(0,x)+" "+m.slice(x+v[0].length)).trim();break}}s.text[i]=s.text[i].trim()}}}!s.text.length&&s.comment.length&&(s.text=s.comment,s.comment=[]),s.address.length>1&&(s.text=s.text.concat(s.address.splice(1)));let l=!s.address.length&&s.textWasQuoted.some(g=>g),c=s.text.join(" "),f=s.address.join(" ");if(!f&&zs(c.trim()))return{address:"",name:Ee(c)};l&&c.indexOf("@")>=0&&(f=ao(Vr(c,go(c))),c=""),{address:f,text:c}=Pu(f,c),!c&&u.length&&(c=u.join(" "),o=!0);let p=c||f||"",h={address:f||(o?"":c)||"",name:Ee(p)};return(h.address===p||h.address===h.name)&&(h.address.match(/@/)?h.name="":h.address=""),h}var Wr=class{constructor(e){this.str=(e||"").toString(),this.operatorCurrent="",this.operatorExpecting="",this.node=-1,this.escaped=!1,this.inDomainLiteral=!1,this.afterAt=!1,this.inGroup=!1,this.innerQuoted=!1,this.innerComment=0,this.innerLiteral=!1,this.innerEscaped=!1,this.list=new Gr(this.str),this.operators={'"':'"',"(":")","<":">",",":"",":":"",";":""}}tokenize(){let e=this.str,r=e.length;for(let i=0;i<r;i++)this.checkChar(e.charAt(i),i);this.closeText(r);let n=this.list,s=n.slots,o=0;for(let i=0,u=n.length;i<u;i++){let a=s[i*3],l=s[i*3+1],c=s[i*3+2];if(a&Vt){let f=this.cleanValue(l,c,a).trim();if(!f)continue;n.cleaned.set(o,f)}else if(!(a&Ve)){for(;l<c&&ne(e.charCodeAt(l));)l++;for(;c>l&&ne(e.charCodeAt(c-1));)c--;if(l===c)continue}s[o*3]=a,s[o*3+1]=l,s[o*3+2]=c,o++}return n.length=o,n}closeText(e){this.node>=0&&(this.list.slots[this.node*3+2]=e,this.node=-1)}cleanValue(e,r,n){let s=this.str,o=(n&oo)!==0,i=(n&io)!==0,u="";for(let a=e;a<r;a++){let l=s.charAt(a);if(o&&!i&&l==="\\"){i=!0;continue}i=!1,l===`
|
|
25
25
|
`?u+=" ":(l.charCodeAt(0)>=33||l===" "||l===" ")&&(u+=l)}return u}checkChar(e,r){!this.escaped&&!this.operatorExpecting&&(!this.inDomainLiteral&&e==="["&&this.afterAt?this.inDomainLiteral=!0:this.inDomainLiteral&&(e==="]"||e===","||e===";")&&(this.inDomainLiteral=!1));let n=!1;if(this.operatorExpecting===">"?(n=this.trackInner(e),!n&&e===";"&&this.inGroup&&(this.closeText(r),this.operatorExpecting="",this.resetInner())):this.operatorExpecting===")"&&!this.escaped&&(e==="("?this.innerComment++:e===")"&&this.innerComment&&(this.innerComment--,n=!0)),!this.escaped){if(e===this.operatorExpecting&&!n){let s=this.str.charAt(r+1);this.closeText(r),this.list.push(s&&![" "," ","\r",`
|
|
26
|
-
`,",",";"].includes(s)?
|
|
27
|
-
`&&(e=" ",this.list.slots[this.node*3]|=
|
|
28
|
-
`);break}default:i.content=r}this.attachments.push(i)}renderTextContent(){let e={};this.textMap.forEach(r=>{this.textTypes.forEach(n=>{let s=e[n]||[];e[n]=s;let o=r[n],i=o||r[n==="html"?"plain":"html"]||[];for(let u of i)s.push(
|
|
29
|
-
`)})}isInlineTextNode(e){if(e.contentDisposition.parsed.value==="attachment")return!1;switch(e.contentType.parsed.value){case"text/html":case"text/plain":return!0;default:return!1}}isInlineMessageRfc822(e){if(this.forceRfc822Attachments||e.contentType.parsed.value!=="message/rfc822")return!1;let r=e.contentTransferEncoding.encoding;return r==="base64"||r==="quoted-printable"?!1:(e.contentDisposition.parsed.value||(this.options.rfc822Attachments?"attachment":"inline"))==="inline"}hasReportParts(){let e=!1,r=n=>{n.contentType.multipart||["message/delivery-status","message/feedback-report"].includes(n.contentType.parsed.value)&&(e=!0);for(let s of n.childNodes)r(s)};return r(this.root),e}async resolveStream(e){let r=0,n=[],s=e.getReader();for(;;){let{done:u,value:a}=await s.read();if(u)break;if(!ArrayBuffer.isView(a)){let l=re("EINVALIDINPUT","Stream chunks must be Uint8Array values");throw s.cancel(l).catch(()=>{}),l}n.push(new Uint8Array(a.buffer,a.byteOffset,a.byteLength)),r+=a.byteLength}let o=new Uint8Array(r),i=0;for(let u of n)o.set(u,i),i+=u.length;return o}async resolveInput(e){let r=e;if(
|
|
30
|
-
`)}function
|
|
26
|
+
`,",",";"].includes(s)?Ve|ho:Ve,r,r+1),e!==")"&&(this.afterAt=!1),this.operatorExpecting="",this.escaped=!1,this.resetInner();return}else if(!this.operatorExpecting&&!(this.inDomainLiteral&&e===":")&&e in this.operators){this.closeText(r),this.list.push(Ve,r,r+1),e===":"?this.inGroup=!0:e===";"&&(this.inGroup=!1),e!=="("&&(this.afterAt=!1),this.operatorExpecting=this.operators[e],this.escaped=!1,this.resetInner();return}else if((this.operatorExpecting==='"'||this.operatorExpecting===")")&&e==="\\"){this.escaped=!0,this.node>=0&&(this.list.slots[this.node*3]|=Vt);return}}this.node<0&&(this.node=this.list.push((this.operatorExpecting==='"'||this.operatorExpecting===")"?oo:0)|(this.escaped?io:0),r,r)),e===`
|
|
27
|
+
`&&(e=" ",this.list.slots[this.node*3]|=Vt),e.charCodeAt(0)>=33||e===" "||e===" "?!this.operatorExpecting&&e!==" "&&e!==" "&&(this.afterAt=e==="@"):this.list.slots[this.node*3]|=Vt,this.escaped=!1}trackInner(e){return this.innerEscaped?(this.innerEscaped=!1,!0):this.innerQuoted?(e==="\\"?this.innerEscaped=!0:e==='"'&&(this.innerQuoted=!1),!0):this.innerComment?(e==="\\"?this.innerEscaped=!0:e==="("?this.innerComment++:e===")"&&this.innerComment--,!0):this.innerLiteral?(e==="]"&&(this.innerLiteral=!1),!0):e==='"'?(this.innerQuoted=!0,!0):e==="("?(this.innerComment=1,!0):e==="["&&this.afterAt?(this.innerLiteral=!0,!0):(ne(e.charCodeAt(0))||(this.afterAt=e==="@"),!1)}resetInner(){this.innerQuoted=!1,this.innerComment=0,this.innerLiteral=!1,this.innerEscaped=!1}};function po(t){let e=[];for(let r=t.length-1;r>=0;r--){let n=t[r],s=e.length?e[e.length-1]:null;s&&n.address===""&&n.name&&!n.group&&s.address&&s.name?s.name=n.name+", "+s.name:e.push(n)}return e.reverse()}function Hu(t){let e=new Wr(t).tokenize(),r=[],n=null,s=[],o=0;for(let i=0,u=e.length;i<=u;i++){let a=i<u?e.operatorAt(i):"";if(!(i<u&&a!==","&&a!==";"&&a!==":")){if(a===":"){n||(n={name:Mu(e,o,i),group:[]},s=[]),o=i+1;continue}i>o&&(n?s:r).push(ju(e,o,i)),o=i+1,n&&(a===";"||i===u)&&(n.group=po(s),r.push(n),n=null)}}return po(r)}function Ku(t,e){let r=Hu(t);if(e&&e.flatten){let n=[],s=o=>{o.forEach(i=>{if(i.group)return s(i.group);n.push(i)})};return s(r),n}return r}var Wt=Ku;function bo(t){let e="",r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n=new Uint8Array(t),s=n.byteLength,o=s%3,i=s-o,u,a,l,c,f;for(let p=0;p<i;p=p+3)f=n[p]<<16|n[p+1]<<8|n[p+2],u=(f&16515072)>>18,a=(f&258048)>>12,l=(f&4032)>>6,c=f&63,e+=r[u]+r[a]+r[l]+r[c];return o===1?(f=n[i],u=(f&252)>>2,a=(f&3)<<4,e+=r[u]+r[a]+"=="):o===2&&(f=n[i]<<8|n[i+1],u=(f&64512)>>10,a=(f&1008)>>4,l=(f&15)<<2,e+=r[u]+r[a]+r[l]+"="),e}var zu=/-?(?:\d{1,12}\.\d{1,3}|\d{1,15})/y,Gu=/"((?:[\x20\x21\x23-\x5b\x5d-\x7e]|\\["\\])*)"/y,Vu=/[A-Za-z*][!#$%&'*+\-.^_`|~0-9A-Za-z:/]*/y,Wu=/:[A-Za-z0-9+/=]*:/y,Zu=/\?[01]/y,Yu=/@-?\d{1,15}/y,Xu=/%"((?:[\x20\x21\x23\x24\x26-\x7e]|%[0-9a-f]{2})*)"/y,Ju=/[a-z*][a-z0-9_\-.*]*/y,Zr=/ */y;function ae(t,e){e.lastIndex=t.pos;let r=e.exec(t.input);return r&&(t.pos=e.lastIndex),r}function Ao(t){let e=ae(t,Gu);return e&&e[1].replace(/\\(["\\])/g,"$1")}function Qu(t){let e=ae(t,Xu);if(!e)return!1;try{return decodeURIComponent(e[1]),!0}catch{return!1}}function ea(t){let e=t.input.charAt(t.pos);switch(e){case'"':return Ao(t)??!1;case":":return!!ae(t,Wu);case"?":return!!ae(t,Zu);case"@":return!!ae(t,Yu);case"%":return Qu(t)}return!!ae(t,e==="-"||e>="0"&&e<="9"?zu:Vu)}function ta(t){let e={input:t,pos:0};ae(e,Zr);let r=Ao(e);if(r===null)return null;let n=new Map;for(;e.input[e.pos]===";";){e.pos++,ae(e,Zr);let s=ae(e,Ju);if(!s)return null;let o=!0;if(e.input[e.pos]==="="&&(e.pos++,o=ea(e),o===!1))return null;n.set(s[0],o)}return ae(e,Zr),e.pos===e.input.length?{value:r,params:n}:null}function ra(t){let e;try{e=new URL(t)}catch{return!1}if(e.origin!==t||!/^([a-z0-9_-]+\.)*[a-z0-9_-]+$|^\[[0-9a-f:.]+\]$/.test(e.hostname))return!1;let r=/^(localhost|.+\.localhost|127(\.\d+){3}|\[::1\])$/.test(e.hostname);return e.protocol==="https:"||e.protocol==="http:"&&r}function wo(t){let e;for(let s of t)if(s.key==="otp-token"){if(e)return;e=s}if(!e||e.value.length>8192)return;let r=ta(e.value),n=r?.params.get("origin");if(!(!r?.value||typeof n!="string"||!ra(n)))return{code:r.value,origin:n}}function na(t){return!!t&&typeof t.getReader=="function"}function sa(t){return t instanceof Blob||Object.prototype.toString.call(t)==="[object Blob]"}function oa(t){let e=Object.prototype.toString.call(t);return e==="[object ArrayBuffer]"||e==="[object SharedArrayBuffer]"}var ia=new Set(["arraybuffer","base64","utf8"]);function ua(t){let e=String(t||"").replace(/[-_\s]/g,"").toLowerCase()||"arraybuffer";if(!ia.has(e))throw re("EINVALIDOPTION",`Unknown attachment encoding ${e}`);return e}function aa(t,e,r){return t.type==="subMessage"?e==="html"?so(t.value):no(t.value):r?e==="html"?Qs(t.value):to(t.value):t.value}var ca=new Uint8Array([10]),la=256,fa=2*1024*1024,da=1e4,pa=10,ha=1e4;function Zt(t){if(!t)return 0;let e=0;for(let r of Array.isArray(t)?t:[t])e+=1+(r.group?r.group.length:0);return e}function mt(t,e,r,n=0){if(t==null)return e;if(typeof t!="number"||!Number.isInteger(t)||t<n)throw re("EINVALIDOPTION",`${r} must be a ${n?"positive":"non-negative"} integer`);return t}function ma(t){return{maxNestingDepth:mt(t.maxNestingDepth,la,"maxNestingDepth"),maxHeadersSize:mt(t.maxHeadersSize,fa,"maxHeadersSize"),maxPartCount:mt(t.maxPartCount,da,"maxPartCount",1),maxRfc822NestingDepth:mt(t.maxRfc822NestingDepth,pa,"maxRfc822NestingDepth"),maxForwardedAddresses:mt(t.maxForwardedAddresses,ha,"maxForwardedAddresses")}}var We=class t{static async parse(e,r){return new t(r).parse(e)}constructor(e,r){this.options=e||{},this.rfc822NestingDepth=r?r.rfc822NestingDepth+1:0,this.limits=r?r.limits:ma(this.options),this.counters=r?r.counters:{headerSize:0,partCount:0,forwardedAddresses:0},this.root=this.currentNode=new Ge({postalMime:this}),this.boundaries=[],this.textContent={},this.textMap=new Map,this.textTypes=new Set,this.attachments=[],this.forceRfc822Attachments=!1,this.attachmentEncoding=ua(this.options.attachmentEncoding),this.started=!1}async finalize(){await this.root.finalize()}async processLine(e,r,n){let s=this.boundaries;if(s.length&&e.length>2&&e[0]===45&&e[1]===45)for(let o=0;o<s.length;o++){let i=s[o];if(e.length<i.value.length+2)continue;let u=!0;for(let f=0;f<i.value.length;f++)if(e[f+2]!==i.value[f]){u=!1;break}if(!u)continue;let a=i.value.length+2,l=!1;e.length>=i.value.length+4&&e[i.value.length+2]===45&&e[i.value.length+3]===45&&(l=!0,a=i.value.length+4);let c=!0;for(let f=a;f<e.length;f++)if(!pe(e[f])){c=!1;break}if(c)return l?(await i.node.finalize(!0),this.currentNode=i.node.parentNode||this.root):(await i.node.finalizeChildNodes(!0),this.currentNode=new Ge({postalMime:this,parentNode:i.node,parentMultipartType:i.node.contentType.multipart})),n?this.finalize():void 0}if(this.currentNode.feed(e,r))return this.processLine(e,r,n);if(n)return this.finalize()}readLine(){let e=this.readPos,r=this.readPos;for(;this.readPos<this.av.length;){let n=this.av[this.readPos++];if(n!==13&&n!==10&&(r=this.readPos),n===10)return{bytes:new Uint8Array(this.buf,e,r-e),lineBreak:this.av.subarray(r,this.readPos),done:this.readPos>=this.av.length}}return{bytes:new Uint8Array(this.buf,e,r-e),lineBreak:ca,done:this.readPos>=this.av.length}}addTextEntry(e,r,n){let s=this.textMap.get(e);s||(s={},this.textMap.set(e,s));let o=s[r]||[];s[r]=o,o.push(n),this.textTypes.add(r)}async collectNode(e,r,n){if(e.contentType.multipart)e.contentType.multipart==="alternative"?r=e:e.contentType.multipart==="related"&&(n=!0);else{let s=this.isInlineMessageRfc822(e),o=s&&this.rfc822NestingDepth>=this.limits.maxRfc822NestingDepth;if(s&&!o)await this.collectSubMessage(e);else if(this.isInlineTextNode(e)){let i=e.contentType.parsed.value==="text/html"?"html":"plain";this.addTextEntry(r||e,i,{type:"text",value:e.getTextContent()})}else e.content&&this.collectAttachment(e,e.content,n,o)}for(let s of e.childNodes)await this.collectNode(s,r,n)}async collectSubMessage(e){let r=new t({attachmentEncoding:"arraybuffer"},this),n=await r.parse(e.content||new ArrayBuffer(0));if(this.counters.forwardedAddresses+=Zt(n.from)+Zt(n.to)+Zt(n.cc)+Zt(n.bcc),this.counters.forwardedAddresses>this.limits.maxForwardedAddresses)throw re("EMAXFORWARDEDADDRESSES",`Maximum forwarded address count of ${this.limits.maxForwardedAddresses} addresses exceeded`);let s=r.textTypes.has("plain"),o=r.textTypes.has("html");(s||!o)&&this.addTextEntry(e,"plain",{type:"subMessage",value:n}),o&&this.addTextEntry(e,"html",{type:"subMessage",value:n}),r.textMap.forEach((i,u)=>{this.textMap.set(u,i)});for(let i of n.attachments)this.attachments.push(i)}collectAttachment(e,r,n,s){let o=e.contentDisposition.parsed.params.filename||e.contentType.parsed.params.name||null,i={filename:o?Ee(lt(o)):null,mimeType:e.contentType.parsed.value,disposition:e.contentDisposition.parsed.value||null};switch(n&&e.contentId&&!s&&(i.related=!0),s&&(i.rfc822DepthExceeded=!0),e.contentDescription&&(i.description=Ee(e.contentDescription)),e.contentId&&(i.contentId=e.contentId),e.contentType.parsed.value){case"text/calendar":case"application/ics":{e.contentType.parsed.params.method&&(i.method=e.contentType.parsed.params.method.toString().toUpperCase().trim());let u=e.getTextContent(),a=u.length;for(;a>0&&u.charCodeAt(a-1)===10;)a--;i.content=ue.encode(u.slice(0,a)+`
|
|
28
|
+
`);break}default:i.content=r}this.attachments.push(i)}renderTextContent(){let e={};this.textMap.forEach(r=>{this.textTypes.forEach(n=>{let s=e[n]||[];e[n]=s;let o=r[n],i=o||r[n==="html"?"plain":"html"]||[];for(let u of i)s.push(aa(u,n,!o))})}),Object.keys(e).forEach(r=>{this.textContent[r]=e[r].join(`
|
|
29
|
+
`)})}isInlineTextNode(e){if(e.contentDisposition.parsed.value==="attachment")return!1;switch(e.contentType.parsed.value){case"text/html":case"text/plain":return!0;default:return!1}}isInlineMessageRfc822(e){if(this.forceRfc822Attachments||e.contentType.parsed.value!=="message/rfc822")return!1;let r=e.contentTransferEncoding.encoding;return r==="base64"||r==="quoted-printable"?!1:(e.contentDisposition.parsed.value||(this.options.rfc822Attachments?"attachment":"inline"))==="inline"}hasReportParts(){let e=!1,r=n=>{n.contentType.multipart||["message/delivery-status","message/feedback-report"].includes(n.contentType.parsed.value)&&(e=!0);for(let s of n.childNodes)r(s)};return r(this.root),e}async resolveStream(e){let r=0,n=[],s=e.getReader();for(;;){let{done:u,value:a}=await s.read();if(u)break;if(!ArrayBuffer.isView(a)){let l=re("EINVALIDINPUT","Stream chunks must be Uint8Array values");throw s.cancel(l).catch(()=>{}),l}n.push(new Uint8Array(a.buffer,a.byteOffset,a.byteLength)),r+=a.byteLength}let o=new Uint8Array(r),i=0;for(let u of n)o.set(u,i),i+=u.length;return o}async resolveInput(e){let r=e;if(na(r)&&(r=await this.resolveStream(r)),r=r||new ArrayBuffer(0),typeof r=="string"&&(r=ue.encode(r)),sa(r)&&(r=await ze(r)),ArrayBuffer.isView(r))return r.buffer.slice(r.byteOffset,r.byteOffset+r.byteLength);if(!oa(r))throw re("EINVALIDINPUT","Unsupported email input type");return r}buildMessage(){let e=this.root.headers,r={headers:e.map(o=>({key:o.key,originalKey:o.originalKey,value:o.value}))};for(let o of["from","sender"]){let i=e.find(u=>u.key===o);if(i&&i.value){let u=Wt(i.value);u&&u.length&&(r[o]=u[0])}}for(let[o,i]of[["delivered-to","deliveredTo"],["return-path","returnPath"]]){let u=e.find(a=>a.key===o);if(u&&u.value){let a=Wt(u.value);a&&a.length&&a[0].address&&(r[i]=a[0].address)}}for(let[o,i]of[["to","to"],["cc","cc"],["bcc","bcc"],["reply-to","replyTo"]]){let u=[];for(let a of e)if(a.key===o&&a.value)for(let l of Wt(a.value))u.push(l);u.length&&(r[i]=u)}for(let[o,i]of[["subject","subject"],["message-id","messageId"],["in-reply-to","inReplyTo"],["references","references"]]){let u=e.find(a=>a.key===o);u&&u.value&&(r[i]=Ee(u.value))}let n=e.find(o=>o.key==="date");if(n){let o=new Date(n.value);r.date=o.toString()==="Invalid Date"?n.value:o.toISOString()}let s=wo(e);return s&&(r.otp=s),this.textContent.html&&(r.html=this.textContent.html),this.textContent.plain&&(r.text=this.textContent.plain),r.attachments=this.attachments,r.headerLines=this.root.rawHeaderLines.slice(),r}encodeAttachments(){switch(this.attachmentEncoding){case"arraybuffer":break;case"base64":for(let e of this.attachments)e.content&&typeof e.content!="string"&&(e.content=bo(e.content),e.encoding="base64");break;case"utf8":{let e=new TextDecoder("utf8");for(let r of this.attachments)r.content&&typeof r.content!="string"&&(r.content=e.decode(r.content),r.encoding="utf8");break}}}async parse(e){if(this.started)throw re("EPARSERREUSED","Can not reuse parser, create a new PostalMime object");for(this.started=!0,this.buf=await this.resolveInput(e),this.av=new Uint8Array(this.buf),this.readPos=0;this.readPos<this.av.length;){let n=this.readLine();await this.processLine(n.bytes,n.lineBreak,n.done)}this.forceRfc822Attachments=!!this.options.forceRfc822Attachments||this.hasReportParts(),await this.collectNode(this.root,!1,!1),this.rfc822NestingDepth===0&&this.renderTextContent();let r=this.buildMessage();return this.encodeAttachments(),r}};var ga=t=>{let e=atob(t.replace(/-/g,"+").replace(/_/g,"/")+"=".repeat((4-t.length%4)%4));return Uint8Array.from(e,r=>r.charCodeAt(0))},ya=t=>{let e="";for(let r of t)e+=String.fromCharCode(r);return btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")},Yr=t=>t.reduce((e,r)=>e<<8n|BigInt(r),0n);function xa(t,e){let r=new Uint8Array(e);for(let n=e-1;n>=0;n--)r[n]=Number(t&0xffn),t>>=8n;return r}var Xr=(t,e)=>ya(xa(t,e)),Yt=t=>Yr(ga(t)),Xt=t=>Math.ceil(t.toString(16).length/2);function Do(t,e,r){let n=1n;for(t%=r;e>0n;)e&1n&&(n=n*t%r),t=t*t%r,e>>=1n;return n}function Eo(t,e){let[r,n]=[t%e,e],[s,o]=[1n,0n];for(;n!==0n;){let i=r/n;[r,n]=[n,r-i*n],[s,o]=[o,s-i*o]}if(r!==1n)throw new Error("sem inverso");return(s%e+e)%e}async function Bo(t,e){let r=Xt(e)+32,n=[];for(let i=0,u=0;u<r;i++){let a=new Uint8Array(t.length+4);a.set(t),new DataView(a.buffer).setUint32(t.length,i);let l=new Uint8Array(await crypto.subtle.digest("SHA-256",a));n.push(l),u+=l.length}let s=new Uint8Array(n.reduce((i,u)=>i+u.length,0)),o=0;for(let i of n)s.set(i,o),o+=i.length;return Yr(s)%e}var ba=(t=Date.now())=>Math.floor(t/(168*3600*1e3));function Co(t=ba()){let e=new Uint8Array(36);return new DataView(e.buffer).setUint32(0,t),e.set(crypto.getRandomValues(new Uint8Array(32)),4),e}async function vo(t,e){let r=Xt(t.n);for(;;){let n=Yr(crypto.getRandomValues(new Uint8Array(r)))%t.n;if(!(n<2n)){try{Eo(n,t.n)}catch{continue}return{blinded:await Bo(e,t.n)*Do(n,t.e,t.n)%t.n,r:n}}}}function So(t,e,r){return e*Eo(r,t.n)%t.n}async function To(t,e,r){return r>0n&&r<t.n&&Do(r,t.e,t.n)===await Bo(e,t.n)}var ko=t=>({n:Yt(t.n),e:Yt(t.e)});function Fo(t){if(!t)return[];let e=[];for(let r of Array.isArray(t)?t:[t])if(r.group)for(let n of r.group)e.push({name:n.name||"",address:(n.address||"").toLowerCase()});else r.address&&e.push({name:r.name||"",address:r.address.toLowerCase()});return e}function Aa(t,e){let r=t||"";return!r&&e&&(r=e.replace(/<(style|script|head)[\s\S]*?<\/\1>/gi," ").replace(/<[^>]+>/g," ").replace(/ /g," ").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'")),r.replace(/\s+/g," ").trim().slice(0,110)}function wa(t){let e=t.find(n=>n.key==="arc-authentication-results"||n.key==="authentication-results");if(!e||!/^\s*(i=1;\s*)?mx\.cloudflare\.net\s*;/i.test(e.value))return"unknown";let r=/\bdmarc=(\w+)/i.exec(e.value)?.[1]?.toLowerCase();return r==="pass"?"pass":r==="fail"?"fail":"unknown"}function Da(t){let e=3735928559^t.length,r=1103547991^t.length;for(let n=0;n<t.length;n++){let s=t.charCodeAt(n);e=Math.imul(e^s,2654435761),r=Math.imul(r^s,1597334677)}return e=Math.imul(e^e>>>16,2246822507)^Math.imul(r^r>>>13,3266489909),r=Math.imul(r^r>>>16,2246822507)^Math.imul(e^e>>>13,3266489909),(4294967296*(2097151&r)+(e>>>0)).toString(36)}var Jr=t=>(t||"").match(/<[^<>\s]+>/)?.[0]??(t||"").trim().split(/\s+/)[0]??"";function Ea(t){let e=Jr(t.references)||Jr(t.inReplyTo)||Jr(t.messageId);return e?Da(e.toLowerCase()):""}function Oo(t,e,r){let n=t.date&&!Number.isNaN(Date.parse(t.date))?new Date(t.date):r;return{from:Fo(t.from)[0]??null,to:Fo(t.to).slice(0,5),subject:(t.subject||"").trim().slice(0,200),date:n.toISOString(),snippet:Aa(t.text,t.html),attachments:t.attachments.filter(s=>s.disposition!=="inline"||!s.contentId).length,t:Ea(t)||void 0,auth:e?"pass":wa(t.headers),e2e:e}}async function Qr(t,e){let r=new Blob([t]).stream().pipeThrough(e);return new Uint8Array(await new Response(r).arrayBuffer())}var Be=[0,83,72,1],Ro=t=>Math.max(256,2**(Math.ceil(Math.log2(t))-4));async function Lo(t){let e=await Qr(t,new CompressionStream("gzip")),r=Be.length+4+e.length,n=new Uint8Array(Math.ceil(r/Ro(r))*Ro(r));return n.set(Be),new DataView(n.buffer).setUint32(Be.length,e.length),n.set(e,Be.length+4),n}var Ba=t=>t.length>2&&t[0]===31&&t[1]===139,Ca=t=>t.length>=8&&Be.every((e,r)=>t[r]===e);async function _o(t){if(Ca(t)){let e=new DataView(t.buffer,t.byteOffset,t.byteLength).getUint32(Be.length);return Qr(t.subarray(Be.length+4,Be.length+4+e),new DecompressionStream("gzip"))}return Ba(t)?Qr(t,new DecompressionStream("gzip")):t}async function en(t){let e=new Uint8Array(await crypto.subtle.digest("SHA-256",t)),r="";for(let n of e)r+=String.fromCharCode(n);return btoa(r)}var tn=3,va=new TextEncoder,No=new TextDecoder;function Sa(t,e){let r=V(t.c);if(!vs.verify(V(t.s),r,e))throw new Error("certificado do remetente com assinatura inv\xE1lida");let n=JSON.parse(No.decode(r));if(typeof n.a!="string"||typeof n.k!="string"||typeof n.i!="number"||typeof n.e!="number")throw new Error("certificado do remetente malformado");return n}async function rn(t,e,r,n,s){let o=await ks(t,va.encode(JSON.stringify(r)),"cert"),i=await Rs(t,e,n,s);return ee(new Uint8Array([tn,o.length>>8,o.length&255]),o,i)}var nn=t=>t[0]===tn;async function sn(t,e,r,n,s){if(e.length<4||e[0]!==tn)throw new Error("n\xE3o \xE9 uma mensagem com remetente lacrado");let o=e[1]<<8|e[2],i=e.subarray(3,3+o),u=e.subarray(3+o),a=JSON.parse(No.decode(await De(t,i,"cert"))),l=Sa(a,n);if(s>l.e+300*1e3||s<l.i-300*1e3)throw new Error("certificado do remetente fora da validade");return{payload:await Ls(t,V(l.k),u,r),sender:{address:l.a.toLowerCase(),publicKey:l.k}}}var er=new TextEncoder,Po=t=>/^[\x20-\x7e]*$/.test(t);function on(t){let e="";for(let r=0;r<t.length;r+=32768)e+=String.fromCharCode(...t.subarray(r,r+32768));return btoa(e)}function un(t){if(Po(t))return t;let e=[],r="";for(let n of t)er.encode(r+n).length>45&&(e.push(r),r=""),r+=n;return r&&e.push(r),e.map(n=>`=?UTF-8?B?${on(er.encode(n))}?=`).join(`\r
|
|
30
|
+
`)}function Jt(t){return t.name?`${Po(t.name)?`"${t.name.replace(/["\\]/g,"\\$&")}"`:un(t.name)} <${t.address}>`:t.address}var Qt=t=>t.replace(/[\r\n]+/g," ");function qo(t,e){let r=on(er.encode(e)).replace(/.{1,76}/g,`$&\r
|
|
31
31
|
`);return`Content-Type: ${t}; charset=utf-8\r
|
|
32
32
|
Content-Transfer-Encoding: base64\r
|
|
33
33
|
\r
|
|
34
|
-
${r}`}function
|
|
34
|
+
${r}`}function Io(t){let e=un(Qt(t.filename)).replace(/"/g,""),r=t.cid?"inline":"attachment";return`${[`Content-Type: ${t.type}; name="${e}"`,`Content-Disposition: ${r}; filename="${e}"`,"Content-Transfer-Encoding: base64",t.cid?`Content-ID: <${t.cid}>`:""].filter(Boolean).join(`\r
|
|
35
35
|
`)}\r
|
|
36
36
|
\r
|
|
37
|
-
${
|
|
38
|
-
`)}`}function
|
|
39
|
-
${
|
|
40
|
-
${
|
|
37
|
+
${on(t.content).replace(/.{1,76}/g,`$&\r
|
|
38
|
+
`)}`}function Ta(t){let e=`alt-${crypto.randomUUID()}`,r={type:`multipart/alternative; boundary="${e}"`,content:`--${e}\r
|
|
39
|
+
${qo("text/plain",t.text)}--${e}\r
|
|
40
|
+
${qo("text/html",t.html)}--${e}--\r
|
|
41
41
|
`},n=(t.attachments??[]).filter(o=>o.cid),s=(t.attachments??[]).filter(o=>!o.cid);if(n.length){let o=`rel-${crypto.randomUUID()}`;r={type:`multipart/related; boundary="${o}"`,content:`--${o}\r
|
|
42
42
|
Content-Type: ${r.type}\r
|
|
43
43
|
\r
|
|
44
44
|
${r.content}${n.map(i=>`--${o}\r
|
|
45
|
-
${
|
|
45
|
+
${Io(i)}`).join("")}--${o}--\r
|
|
46
46
|
`}}if(s.length){let o=`mix-${crypto.randomUUID()}`;r={type:`multipart/mixed; boundary="${o}"`,content:`--${o}\r
|
|
47
47
|
Content-Type: ${r.type}\r
|
|
48
48
|
\r
|
|
49
49
|
${r.content}${s.map(i=>`--${o}\r
|
|
50
|
-
${
|
|
51
|
-
`}}return r}function
|
|
50
|
+
${Io(i)}`).join("")}--${o}--\r
|
|
51
|
+
`}}return r}function an(t,e){let r=[`From: ${Jt(t.from)}`,t.to.length?`To: ${t.to.map(Jt).join(", ")}`:"",t.cc.length?`Cc: ${t.cc.map(Jt).join(", ")}`:"",e&&t.bcc.length?`Bcc: ${t.bcc.map(Jt).join(", ")}`:"",`Subject: ${un(Qt(t.subject))}`,`Date: ${t.date.toUTCString().replace("GMT","+0000")}`,`Message-ID: ${t.messageId}`,t.inReplyTo?`In-Reply-To: ${Qt(t.inReplyTo)}`:"",t.references?`References: ${Qt(t.references)}`:"","MIME-Version: 1.0"].filter(Boolean),n=Ta(t);return er.encode(`${r.join(`\r
|
|
52
52
|
`)}\r
|
|
53
53
|
Content-Type: ${n.type}\r
|
|
54
54
|
\r
|
|
55
|
-
${n.content}`)}function
|
|
55
|
+
${n.content}`)}function $o(t){return`<${crypto.randomUUID()}@${t}>`}var Uo=t=>t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""");function Mo(t,e){let r=Uo(t).replace(/https?:\/\/[^\s<]+/g,s=>`<a href="${s}">${s}</a>`).replace(/\n/g,"<br>"),n=e?`<br><div>${Uo(e.header)}</div><blockquote style="margin:0 0 0 .8ex;border-left:2px solid #ccc;padding-left:1ex">${e.html}</blockquote>`:"";return`<div style="font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:1.5">${r}${n}</div>`}var Ce="shalomail.com",z=class extends Error{constructor(r,n,s){super(s);this.status=r;this.code=n}status;code},ka={bad_key:"Invalid or revoked API key. For your account, run `shalom login`; for an agent mailbox, run `shalom agents rotate <address>` on the machine that has it.",reserved:"That address is reserved. Pick another name, for example yourname-bot.",bad_recipient:"Invalid recipient address.",bad_folder:"Unknown folder.",too_big:"Too large: up to 4 MB of attachments to outside addresses and 5 MB per message to Shalom addresses.",full:"The mailbox is full.",no_such_user:"That Shalom address does not exist.",not_found:"Not found.",key_scope:"This key cannot do that. Account keys manage agents; agent keys read and send mail.",agent_limit:"Your plan has no free agent mailbox left. Delete one, or upgrade with `shalom upgrade`.",create_limit:"You reached the daily limit of new agent mailboxes. Try again tomorrow.",agent_paused:"This agent mailbox is paused because the owner's plan no longer covers it. It still receives mail.",taken:"That address is already taken.",bad_address:"That address cannot be used. Use letters, numbers, dots, dashes or underscores.",send_limit:"Daily sending limit reached for this mailbox.",send_limit_all:"Shalom's daily limit for mail to outside addresses was reached. Mail to Shalom addresses still works.",too_many:"Too many requests. Try again later.",slow_down:"Too many requests in a row. Wait a minute.",billing_off:"Billing is not enabled yet.",no_session:"Not logged in. Run `shalom login`."};async function P(t,e,r,n,s={}){let o={"x-shalom":"1","user-agent":"shalom-cli"};s.anonymous||(o.authorization=`Bearer ${t.key}`),n!==void 0&&(o["content-type"]="application/json");let i;try{i=await fetch(`${t.api}/api${r}`,{method:e,headers:o,body:n===void 0?void 0:JSON.stringify(n)})}catch(a){throw new z(0,"offline",`Could not reach ${t.api} (${a.message}).`)}if(s.raw&&i.ok)return new Uint8Array(await i.arrayBuffer());let u=await i.json().catch(()=>({}));if(!i.ok){let a=u.error??`http_${i.status}`;throw new z(i.status,a,ka[a]??u.message??`Request failed (${i.status}).`)}return u}var Fa={"https://shalomail.com":"e8088912b446162136659e1674b67e8d4cd9435c1b7a89057492365d715e9004"},Oa=async t=>[...new Uint8Array(await crypto.subtle.digest("SHA-256",new TextEncoder().encode(t)))].map(e=>e.toString(16).padStart(2,"0")).join("");async function Ra(t,e){let r=await P({api:t,key:""},"GET","/auth/config",void 0,{anonymous:!0}),n=JSON.stringify({certKey:r.certKey,tokenKey:r.tokenKey}),s=Fa[t.replace(/\/+$/,"")];if(s&&s!==await Oa(n)||e&&e!==n)throw new z(0,"server_keys","The server's signing keys are not the ones this package trusts. Stopping for safety.");return{cert:V(r.certKey),token:ko(r.tokenKey),wire:n}}var tr=class{constructor(e,r){this.agent=e;this.pins=r}agent;pins;keys=null;bodyHashes=new Map;cert=null;get creds(){return{api:this.agent.api,key:this.agent.key}}server(){return this.keys??=Ra(this.agent.api,this.pins.server).then(e=>(this.pins.server||this.pins.onServer(e.wire),e)),this.keys}async summarize(e){let r=V(e.head),n,s=!1,o=!1;try{if(nn(r)){let{payload:i,sender:u}=await sn(this.agent.secretKey,r,"head",(await this.server()).cert,e.received_at);n=JSON.parse(new TextDecoder().decode(i)),n={...n,from:{name:n.from?.name??"",address:u.address}};let a=u.address===this.agent.address.toLowerCase()?u.publicKey===te(Ur(this.agent.secretKey)):this.pins.contactKey?.(u.address,u.publicKey)??!0;s=a,o=!a,n.b&&this.bodyHashes.set(e.id,n.b)}else n=await Fs(this.agent.secretKey,r)}catch{n={from:null,to:[],subject:"(unreadable)",date:new Date(e.received_at).toISOString(),snippet:"",attachments:0,auth:"fail",e2e:!1}}return{id:e.id,folder:e.folder,from:n.from,to:n.to,subject:n.subject,date:n.date,receivedAt:e.received_at,snippet:n.snippet,attachments:n.attachments,unread:!e.seen,starred:!!e.starred,verifiedSender:s,auth:n.auth,...o?{keyChanged:!0}:{}}}async list(e="inbox",r=20,n){let s=new URLSearchParams({folder:e,limit:String(Math.min(Math.max(r,1),100))});n&&s.set("before",String(n));let{messages:o,more:i}=await P(this.creds,"GET",`/messages?${s}`);return{messages:await Promise.all(o.map(u=>this.summarize(u))),more:i}}async find(e){if(/^[0-9a-f-]{36}$/i.test(e))try{return(await P(this.creds,"GET",`/messages/${e}`)).message}catch(r){throw r instanceof z&&r.status===404?new z(404,"not_found",`Message ${e} not found.`):r}for(let r of["inbox","archive","sent","spam","trash"]){let n;for(let s=0;s<5;s++){let o=new URLSearchParams({folder:r,limit:"100"});n&&o.set("before",String(n));let{messages:i,more:u}=await P(this.creds,"GET",`/messages?${o}`),a=i.find(l=>l.id===e||e.length>=6&&l.id.startsWith(e));if(a)return a;if(!u||!i.length)break;n=i[i.length-1].received_at}}throw new z(404,"not_found",`Message ${e} not found.`)}async read(e){let r=await this.find(e),n=await this.summarize(r),s=await P(this.creds,"GET",`/messages/${r.id}/raw`,void 0,{raw:!0}),o;if(nn(s)){let u=await sn(this.agent.secretKey,s,"raw",(await this.server()).cert,r.received_at);if(n.verifiedSender&&u.sender.address!==n.from?.address)throw new z(0,"tampered","The message body does not match its sender.");let a=this.bodyHashes.get(r.id);if(a&&await en(u.payload)!==a)throw new z(0,"tampered","The message body does not belong to this message.");o=u.payload}else{if(n.verifiedSender)throw new z(0,"tampered","The message body is not sealed by its sender.");o=await De(this.agent.secretKey,s,"raw")}let i=await We.parse(await _o(o),{attachmentEncoding:"arraybuffer"});return{summary:n,email:i}}update(e,r){return P(this.creds,"POST","/messages/update",{ids:e,...r})}async myCert(){if(this.cert&&this.cert.until>Date.now()+24*3600*1e3)return this.cert.signed;let{cert:e}=await P(this.creds,"POST","/cert",{});return this.cert={signed:e,until:JSON.parse(new TextDecoder().decode(V(e.c))).e},e}async tokens(e){let r=[],n=(await this.server()).token,s=Xt(n.n);for(;r.length<e;){let o=await Promise.all(Array.from({length:Math.min(20,e-r.length)},async()=>{let u=Co();return{token:u,...await vo(n,u)}})),{signed:i}=await P(this.creds,"POST","/tokens",{blinded:o.map(u=>Xr(u.blinded,s))});for(let u=0;u<o.length;u++){let a=So(n,Yt(i[u]),o[u].r);if(!await To(n,o[u].token,a))throw new z(0,"bad_tokens","The server returned an invalid delivery ticket.");r.push({token:o[u].token,sig:Xr(a,s)})}}return r}async unread(e="inbox",r=20,n=10){let s=[],o;for(let i=0;i<n&&s.length<r;i++){let{messages:u,more:a}=await this.list(e,100,o);if(s.push(...u.filter(l=>l.unread)),!a||!u.length)break;o=u[u.length-1].receivedAt}return s.slice(0,r)}async unseen(e,r=10){let n=[],s;for(let o=0;o<r;o++){let{messages:i,more:u}=await this.list("inbox",100,s),a=i.filter(l=>!e.has(l.id));if(n.push(...a),a.length<i.length||!u||!i.length)break;s=i[i.length-1].receivedAt}return n.sort((o,i)=>o.receivedAt-i.receivedAt)}async sealed(e,r,n){let s=await Lo(r),o={...Oo(await We.parse(r),!0,new Date),b:await en(s)};return{head:te(await rn(e,this.agent.secretKey,n,new TextEncoder().encode(JSON.stringify(o)),"head")),raw:te(await rn(e,this.agent.secretKey,n,s,"raw"))}}async publicKeyOf(e){return(await P(this.creds,"POST","/keys",{address:e},{anonymous:!0})).publicKey}async send(e,r){let n=e.cc??[],s=e.bcc??[],o=[...e.to,...n,...s],i=d=>d.toLowerCase().endsWith(`@${Ce}`),u=e.html??Mo(e.text),a={from:e.from,to:e.to,cc:n,bcc:s,subject:e.subject,text:e.text,html:u,messageId:$o(Ce),inReplyTo:e.inReplyTo,references:e.references,date:new Date,attachments:e.attachments},l=an(a,!1),c=an(a,!0),f=await this.myCert(),p=[...new Set(o.map(d=>d.address.toLowerCase()).filter(i))],h=[];for(let d of p){let y=await this.publicKeyOf(d);if(!y)throw new z(404,"no_such_user",`${d} does not exist.`);r(d,y),h.push({address:d,...await this.sealed(V(y),l,f)})}let g=Math.ceil((5*1024*1024+2048)/3)*4;if(h.some(d=>d.raw.length>g))throw new z(413,"too_big","Too large for Shalom addresses: up to 5 MB per message.");let m=await this.tokens(h.length),x=d=>d.filter(y=>!i(y.address)),v=o.filter(d=>!i(d.address)).length,D=await P(this.creds,"POST","/send",{...v?{to:x(e.to),cc:x(n),bcc:x(s),subject:e.subject,text:e.text,html:u,inReplyTo:e.inReplyTo,references:e.references,messageId:a.messageId,attachments:(e.attachments??[]).map(d=>({filename:d.filename,type:d.type,content:te(d.content),cid:d.cid}))}:{},sentCopy:await this.sealed(Ur(this.agent.secretKey),c,f)});for(let[d,y]of h.entries()){let w=m[d];await P(this.creds,"POST","/deliver",{to:y.address,head:y.head,raw:y.raw,token:te(w.token),sig:w.sig},{anonymous:!0})}return{id:D.id,external:v,internal:h.length}}};var jo=/[\u0000-\u0008\u000b-\u001f\u007f-\u009f\u200e\u200f\u202a-\u202e\u2066-\u2069]/g,ce=t=>t.replace(/[\r\n\t]+/g," ").replace(jo,""),Ho=t=>t.replace(/\r\n?/g,`
|
|
56
|
+
`).replace(jo,""),me=t=>t?ce(t.name?`${t.name} <${t.address}>`:t.address):"(unknown)",Ze=t=>new Date(t).toISOString().replace("T"," ").slice(0,16);function cn(t){return t.replace(/<(script|style)[\s\S]*?<\/\1>/gi,"").replace(/<br\s*\/?>/gi,`
|
|
56
57
|
`).replace(/<\/(p|div|li|h\d|tr)>/gi,`
|
|
57
58
|
`).replace(/<[^>]+>/g,"").replace(/ /g," ").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/&/g,"&").replace(/\n{3,}/g,`
|
|
58
59
|
|
|
59
|
-
`).trim()}var
|
|
60
|
+
`).trim()}var rr=t=>t.text?.trim()?t.text.trim():t.html?cn(t.html):"",he=t=>(t??[]).filter(e=>e.address).map(e=>({name:e.name??"",address:e.address}));function ln(t,e){return{...t,messageId:e.messageId??null,inReplyTo:e.inReplyTo??null,references:e.references??null,replyTo:he(e.replyTo),cc:he(e.cc),text:rr(e),html:e.html??null,attachments:e.attachments.map(r=>({filename:r.filename??"attachment",mimeType:r.mimeType,size:r.content.byteLength}))}}var La={pdf:"application/pdf",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",txt:"text/plain",md:"text/markdown",csv:"text/csv",json:"application/json",html:"text/html",zip:"application/zip",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"},fn=t=>La[t.split(".").pop()?.toLowerCase()??""]??"application/octet-stream";function _a(t){let e=[],r="",n=!1,s=!1;for(let o of t)o==='"'&&!s?n=!n:o==="<"&&!n?s=!0:o===">"&&!n&&(s=!1),o===","&&!n&&!s?(e.push(r),r=""):r+=o;return[...e,r]}var Ue=t=>(Array.isArray(t)?t:t?[t]:[]).flatMap(_a).map(e=>e.trim()).filter(Boolean).map(e=>{let r=/^(.*?)\s*<([^>]+)>$/.exec(e);return r?{name:r[1].replace(/^"|"$/g,""),address:r[2].trim().toLowerCase()}:{name:"",address:e.toLowerCase()}});function Ko(t,e,r,n){let s=he(e.replyTo).length?he(e.replyTo):t.from?[t.from]:[],o=n.to?.length?n.to:s,i=new Set([r,...o.map(f=>f.address)].map(f=>f.toLowerCase())),u=n.all?[...he(e.to),...he(e.cc),...n.cc??[]].filter(f=>{let p=f.address.toLowerCase();return i.has(p)?!1:(i.add(p),!0)}):n.cc??[],a=/^\s*re\s*:/i.test(t.subject)?t.subject:`Re: ${t.subject}`,l=n.quote===!1?"":`
|
|
60
61
|
|
|
61
|
-
On ${e.date??
|
|
62
|
-
${
|
|
62
|
+
On ${e.date??Ze(t.receivedAt)}, ${me(t.from)} wrote:
|
|
63
|
+
${rr(e).split(`
|
|
63
64
|
`).map(f=>`> ${f}`).join(`
|
|
64
|
-
`)}`,c=[e.references,e.messageId].filter(Boolean).join(" ")||void 0;return{to:o,cc:u,subject:a,text:n.text+l,inReplyTo:e.messageId,references:c}}import{chmodSync as
|
|
65
|
-
`,{mode:384});try{
|
|
66
|
-
`),[]}}):[]}var
|
|
65
|
+
`)}`,c=[e.references,e.messageId].filter(Boolean).join(" ")||void 0;return{to:o,cc:u,subject:a,text:n.text+l,inReplyTo:e.messageId,references:c}}import{chmodSync as zo,existsSync as pn,mkdirSync as Na,readdirSync as qa,readFileSync as Go,renameSync as Ia,rmSync as Vo,writeFileSync as Ua}from"node:fs";import{homedir as Pa}from"node:os";import{join as ge}from"node:path";var $a="https://shalomail.com",Pe=()=>process.env.SHALOM_CONFIG_DIR||(process.platform==="win32"&&process.env.APPDATA?ge(process.env.APPDATA,"shalom"):ge(process.env.XDG_CONFIG_HOME||ge(Pa(),".config"),"shalom"));function yt(t){pn(t)||Na(t,{recursive:!0,mode:448});try{zo(t,448)}catch{}}function hn(t,e){let r=`${t}.${process.pid}.tmp`;Ua(r,JSON.stringify(e,null,2)+`
|
|
66
|
+
`,{mode:384});try{zo(r,384)}catch{}try{Ia(r,t)}catch(n){throw Vo(r,{force:!0}),n}}var xt=class extends Error{},nr=t=>{if(!pn(t))return null;try{return JSON.parse(Go(t,"utf8"))}catch(e){throw new xt(`${t} exists but could not be read (${e.message}). Fix it or move it away; it was left as is.`)}},sr=()=>ge(Pe(),"config.json"),ve=()=>nr(sr())??{};function or(t){yt(Pe()),hn(sr(),t)}var Se=t=>(t||process.env.SHALOM_API_URL||ve().api||$a).replace(/\/+$/,""),gt=()=>ge(Pe(),"agents"),ir=t=>ge(gt(),`${t.toLowerCase()}.json`);function Ye(t){yt(Pe()),yt(gt()),hn(ir(t.address),t)}var Te=t=>nr(ir(t)),Wo=t=>Vo(ir(t),{force:!0});function mn(){return pn(gt())?qa(gt()).filter(t=>t.endsWith(".json")).flatMap(t=>{try{return nr(ge(gt(),t))??[]}catch(e){return process.stderr.write(`shalom: ${e.message}
|
|
67
|
+
`),[]}}):[]}var $e=ir,dn="shalom_agent_",gn=t=>dn+Buffer.from(JSON.stringify({a:t.address,i:t.id,n:t.name,u:t.api,k:t.key,s:t.secretKey})).toString("base64url");function yn(t){if(!t.startsWith(dn))throw new Error("SHALOM_AGENT_TOKEN is not a Shalom agent token.");let e=JSON.parse(Buffer.from(t.slice(dn.length),"base64url").toString("utf8"));return{address:e.a,id:e.i,name:e.n,api:e.u,key:e.k,secretKey:e.s,createdAt:0}}function xn(){if(process.env.SHALOM_AGENT_TOKEN)return process.env.SHALOM_AGENT_TOKEN.trim();let t=process.env.SHALOM_AGENT_TOKEN_FILE;return t?Go(t,"utf8").trim():void 0}var Zo=t=>ge(Pe(),"pins",`${t.toLowerCase()}.json`),Yo=t=>nr(Zo(t))??{};function bn(t,e){try{yt(Pe()),yt(ge(Pe(),"pins")),hn(Zo(t),e)}catch{}}var Xo=(t,e)=>({address:t.address,key:t.key,secretKey:V(t.secretKey),api:e??t.api});var En="0.2.2",Ga=`shalom ${En}: end-to-end encrypted mailboxes for AI agents (https://${Ce})
|
|
67
68
|
|
|
68
69
|
Account
|
|
69
70
|
shalom login Connect this terminal to your account in the browser
|
|
@@ -72,7 +73,7 @@ Account
|
|
|
72
73
|
shalom whoami Show the account and the agents saved here
|
|
73
74
|
shalom agents list List your agent mailboxes
|
|
74
75
|
shalom agents create <name> [--name "Display name"]
|
|
75
|
-
Create <name>@${
|
|
76
|
+
Create <name>@${Ce}; its private key stays on this machine
|
|
76
77
|
shalom agents delete <address> [--yes] Delete a mailbox and everything in it
|
|
77
78
|
shalom agents rotate <address> Issue a new API key for a mailbox
|
|
78
79
|
shalom agents export <address> Print SHALOM_AGENT_TOKEN to run the agent on a server
|
|
@@ -94,31 +95,31 @@ Mailbox (pick the agent with --as <address>, or set SHALOM_AGENT_TOKEN)
|
|
|
94
95
|
the message as JSON on stdin
|
|
95
96
|
|
|
96
97
|
Every command accepts --json for machine-readable output and --api <url> to use another server.
|
|
97
|
-
Ids can be shortened to their first 8 characters.`,
|
|
98
|
+
Ids can be shortened to their first 8 characters.`,lr=class extends Error{},T=t=>{throw new lr(t)},q=!1,L=(t,e)=>{q?e!==void 0&&process.stdout.write(JSON.stringify(e,null,2)+`
|
|
98
99
|
`):process.stdout.write(t+`
|
|
99
|
-
`)},
|
|
100
|
-
`),n(s.trim())}))}async function
|
|
100
|
+
`)},ur=t=>(t.includes("@")?t:`${t}@${Ce}`).toLowerCase();async function Va(t,e=!1){process.stdin.isTTY||T("Missing input. Pass it as a flag (this terminal cannot prompt).");let r=za({input:process.stdin,output:process.stdout,terminal:!0});return e&&(r._writeToOutput=n=>{n.startsWith(t)&&process.stdout.write(t)}),new Promise(n=>r.question(t,s=>{r.close(),e&&process.stdout.write(`
|
|
101
|
+
`),n(s.trim())}))}async function Wa(){if(process.stdin.isTTY)return"";let t=[];for await(let e of process.stdin)t.push(e);return Buffer.concat(t).toString("utf8")}function Bn(t){let e=ve(),r=process.env.SHALOM_API_KEY||e.accountKey;return r||T("Not logged in. Run `shalom login` to connect this terminal."),{api:Se(t),key:r}}var Za={free:"Free",agents5:"Agents 5",agents12:"Agents 12",unlimited:"Unlimited"},Qo=t=>new Promise(e=>setTimeout(e,t)),Ya={darwin:"macOS",win32:"Windows",linux:"Linux"};async function Xa(t,e){let{secretKey:r,publicKey:n}=Ir(),s=`${Ha().replace(/\.local$/,"")} (${Ya[process.platform]??process.platform}), shalom ${En}`,o=await P({api:t,key:""},"POST","/cli/start",{device:s,publicKey:te(n)},{anonymous:!0}),i=l=>process.stderr.write(l+`
|
|
101
102
|
`);i(`
|
|
102
103
|
To connect this terminal, confirm the code ${o.code} at:
|
|
103
104
|
${o.url}
|
|
104
|
-
`),e&&process.stdout.isTTY?(
|
|
105
|
-
`),{account:s,api:
|
|
106
|
-
`),L(
|
|
107
|
-
${
|
|
105
|
+
`),e&&process.stdout.isTTY?(ei(o.url),i("Opened your browser. Waiting for you to confirm...")):i("Waiting for you to confirm...");let u=Date.now()+o.expiresIn*1e3,a=Math.max(1,o.interval)*1e3;for(;Date.now()<u;){await Qo(a);let l;try{l=await P({api:t,key:""},"POST","/cli/poll",{poll:o.poll},{anonymous:!0}),a=Math.max(1,o.interval)*1e3}catch{a=Math.min(a*2,15e3);continue}if(l.status==="approved"&&l.sealedKey)return new TextDecoder().decode(await De(r,V(l.sealedKey),"raw"));if(l.status==="denied"&&T("The connection was cancelled in the browser."),l.status==="expired")break}return T("The code expired. Run `shalom login` again.")}async function Ja(t){let{values:e}=X({args:t,options:{key:{type:"string"},api:{type:"string"},json:{type:"boolean"},"no-browser":{type:"boolean"}}});q=!!e.json;let r=Se(e.api),n=(e.key||process.env.SHALOM_API_KEY||await Xa(r,!e["no-browser"])).trim();n.startsWith("shalom_sk_")||T("That is not an account API key. It starts with shalom_sk_.");let s=await P({api:r,key:n},"GET","/auth/me");or({...ve(),api:r,accountKey:n,account:s.user.address}),L(`Logged in as ${s.user.address}. Key saved in ${sr()}.`,{account:s.user.address,api:r})}async function Qa(t){let{values:e}=X({args:t,options:{json:{type:"boolean"},api:{type:"string"}}});q=!!e.json;let{accountKey:r,account:n,...s}=ve(),o=!r;r&&(o=await P({api:Se(e.api),key:r},"POST","/agents/logout",{}).then(()=>!0,i=>i instanceof z&&i.status===401)),or(s),L(o?"Logged out. Agent mailboxes saved on this machine were kept.":"Logged out here, but the server could not be reached to revoke the key. Revoke it on the AI agents page.",{ok:!0,revoked:o})}async function ec(t){let{values:e}=X({args:t,options:{json:{type:"boolean"},api:{type:"string"}}});q=!!e.json;let r=ve(),n=mn().map(o=>o.address),s=r.account??null;(r.accountKey||process.env.SHALOM_API_KEY)&&(s=(await P(Bn(e.api),"GET","/auth/me")).user.address),L([s?`Account: ${s}`:"Account: not logged in (run `shalom login`)",`Server: ${Se(e.api)}`,`Agents on this machine: ${n.length?n.join(", "):"none"}`].join(`
|
|
106
|
+
`),{account:s,api:Se(e.api),agents:n})}function wn(t){if(t.limit===null)return`${t.used} agent mailboxes in use (Unlimited, up to 250 new a day).`;let e=t.plan==="free"?" Need more? `shalom upgrade 5` (US$ 4.99/mo), `shalom upgrade 12` (US$ 9.99/mo) or `shalom upgrade unlimited` (US$ 49.90/mo).":t.plan==="agents5"?" Need more? `shalom upgrade 12` (US$ 9.99/mo) or `shalom upgrade unlimited` (US$ 49.90/mo).":" Need more? `shalom upgrade unlimited` (US$ 49.90/mo).";return`${t.used} of ${t.limit} agent mailboxes used (${Za[t.plan]??t.plan}).${t.used>=t.limit?e:""}`}async function tc(t){let[e,...r]=t,{values:n,positionals:s}=X({args:r,allowPositionals:!0,options:{json:{type:"boolean"},api:{type:"string"},name:{type:"string"},yes:{type:"boolean",short:"y"}}});if(q=!!n.json,e==="import"){let l=s[0]||process.env.SHALOM_AGENT_TOKEN||T("Usage: shalom agents import <token>"),c=yn(l),f=Te(c.address);if(f&&!n.yes){if(f.key===c.key&&f.secretKey===c.secretKey)return L(`${c.address} is already saved in ${$e(c.address)}.`,{address:c.address,file:$e(c.address)});T(`${c.address} is already saved on this machine with other keys. Pass --yes to replace it.`)}return c.createdAt=f?.createdAt??Date.now(),f?.pins&&(c.pins=f.pins),Ye(c),L(`Saved ${c.address} in ${$e(c.address)}.`,{address:c.address,file:$e(c.address)})}if(e==="export"){let l=ur(s[0]||T("Usage: shalom agents export <address>")),c=Te(l)??T(`${l} is not saved on this machine.`);return q||process.stderr.write(`This token contains the private key of the mailbox. Store it as a secret.
|
|
107
|
+
`),L(gn(c),{address:l,token:gn(c)})}let o=Bn(n.api),i=()=>P(o,"GET","/agents");if(!e||e==="list"||e==="ls"){let{agents:l,plan:c}=await i();if(q)return L("",{agents:l.map(p=>({...p,onThisMachine:!!Te(p.address)})),plan:c});if(!l.length)return L(`No agent mailboxes yet. Create one: shalom agents create yourname-bot
|
|
108
|
+
${wn(c)}`);let f=l.map(p=>[p.address,p.name,new Date(p.createdAt).toISOString().slice(0,10),p.paused?"paused":"active",Te(p.address)?"here":""]);return L(ti(["ADDRESS","NAME","CREATED","STATUS","KEY"],f)+`
|
|
108
109
|
|
|
109
|
-
`+
|
|
110
|
-
`),{...h.agent,file
|
|
111
|
-
Renews on ${new Date(r.periodEnd).toISOString().slice(0,10)}.`:""),r)}async function
|
|
112
|
-
${r}`,{url:r})}function
|
|
113
|
-
`)}async function
|
|
114
|
-
`))}async function
|
|
115
|
-
`)})}async function
|
|
110
|
+
`+wn(c))}if(e==="create"||e==="new"){let l=s[0]||T('Usage: shalom agents create <name> [--name "Display name"]'),c=ur(l);c.endsWith(`@${Ce}`)||T(`Agent mailboxes are always @${Ce}.`);let{secretKey:f,publicKey:p}=Ir(),h=await P(o,"POST","/agents",{address:c,name:n.name??"",publicKey:te(p)}),g={...h.agent,api:o.api,key:h.key,secretKey:te(f)};return Ye(g),L([`Created ${h.agent.address}.`,`Its private key and API key are in ${$e(h.agent.address)} (only on this machine).`,"",`Read mail: shalom inbox --as ${h.agent.address}`,`Send mail: shalom send --as ${h.agent.address} --to someone@example.com --subject "Hi" --text "Hello"`,`On a server: shalom agents export ${h.agent.address} (then set SHALOM_AGENT_TOKEN)`].join(`
|
|
111
|
+
`),{...h.agent,file:$e(h.agent.address)})}let u=ur(s[0]||T(`Usage: shalom agents ${e} <address>`)),a=(await i()).agents.find(l=>l.address===u)??T(`${u} is not one of your agent mailboxes.`);if(e==="delete"||e==="rm"){n.yes||(await Va(`This deletes ${u} and all its mail for good. Type the address to confirm: `)).toLowerCase()!==u&&T("Not deleted.");let l=Te(u)??T(`${u} is not saved on this machine, and deleting from the terminal needs its own key. Delete it on the AI agents page of the app.`);return await P(o,"POST","/agents/delete",{id:a.id,agentKey:l.key}),Wo(u),L(`Deleted ${u}.`,{deleted:u})}if(e==="rotate"){let l=Te(u)??T(`${u} is not saved on this machine, so its private key is not here. Rotate from the machine that has it.`),{sealedKey:c}=await P(o,"POST","/agents/rotate",{id:a.id}),f=new TextDecoder().decode(await De(V(l.secretKey),V(c),"raw"));return Ye({...l,key:f}),L(`New API key saved for ${u}. The old one stopped working.`,{address:u})}T(`Unknown command: shalom agents ${e}. Run shalom --help.`)}async function rc(t){let{values:e}=X({args:t,options:{json:{type:"boolean"},api:{type:"string"}}});q=!!e.json;let r=await P(Bn(e.api),"GET","/billing");L(wn(r)+(r.periodEnd&&r.plan!=="free"?`
|
|
112
|
+
Renews on ${new Date(r.periodEnd).toISOString().slice(0,10)}.`:""),r)}async function nc(t){let{values:e}=X({args:t,allowPositionals:!0,options:{json:{type:"boolean"},api:{type:"string"},"no-open":{type:"boolean"}}});q=!!e.json;let r=`${Se(e.api)}/agentes-ia#ag-plans`;!e["no-open"]&&!q&&process.stdout.isTTY&&ei(r),L(`Choose your plan in the browser, on the AI agents page:
|
|
113
|
+
${r}`,{url:r})}function ei(t){let e=process.platform==="darwin"?"open":process.platform==="win32"?"cmd":"xdg-open",r=process.platform==="win32"?["/c","start","",t]:[t];try{Jo(e,r,{stdio:"ignore",detached:!0}).unref()}catch{}}function Me(t,e){let r,n=!0;if(!t&&xn())r=yn(xn()),r.pins=Yo(r.address),n=!1;else if(t||process.env.SHALOM_AGENT){let a=ur(t||process.env.SHALOM_AGENT);r=Te(a)??T(`${a} is not saved on this machine. Create it with \`shalom agents create\` or import its token.`)}else{let a=mn();a.length===1?r=a[0]:T(a.length?`Pick an agent with --as <address>: ${a.map(l=>l.address).join(", ")}`:"No agent mailbox on this machine. Create one: shalom agents create yourname-bot")}let s=ve(),o=e?Se(e):r.api;return{box:new tr(Xo(r,o),{server:s.serverKeys?.[o],onServer:a=>{let l=ve();or({...l,serverKeys:{...l.serverKeys,[o]:a}})},contactKey:(a,l)=>{let c=r.pins??{};return c[a]?c[a]===l:(r.pins={...c,[a]:l},n?Ye(r):bn(r.address,r.pins),!0)}}),file:r,checkPin:(a,l,c=!1)=>{let f=r.pins??{};f[a]&&f[a]!==l&&!c&&T(`The encryption key of ${a} changed since the last time. Confirm with them, then resend with --trust-new-key.`),f[a]!==l&&(r.pins={...f,[a]:l},n?Ye(r):bn(r.address,r.pins))}}}var Xe={json:{type:"boolean"},api:{type:"string"},as:{type:"string"}},ar=t=>t.slice(0,8);function ti(t,e){let r=t.map((s,o)=>Math.min(48,Math.max(s.length,...e.map(i=>(i[o]??"").length)))),n=(s,o)=>s.length>r[o]?s.slice(0,r[o]-1)+"\u2026":s.padEnd(r[o]);return[t,...e].map(s=>s.map(n).join(" ").trimEnd()).join(`
|
|
114
|
+
`)}async function sc(t){let{values:e}=X({args:t,options:{...Xe,folder:{type:"string",default:"inbox"},limit:{type:"string",default:"20"},unread:{type:"boolean"}}});q=!!e.json;let{box:r}=Me(e.as,e.api),n=Number(e.limit)||20,s=e.unread?await r.unread(e.folder,n):(await r.list(e.folder,n)).messages;if(q)return L("",s);if(!s.length)return L(`Nothing in ${e.folder}.`);let o=s.map(i=>[i.unread?"\u2022":" ",ar(i.id),me(e.folder==="sent"?i.to[0]??null:i.from),ce(i.subject)||"(no subject)",Ze(i.receivedAt)]);L(ti(["","ID",e.folder==="sent"?"TO":"FROM","SUBJECT","DATE"],o))}async function oc(t){let{values:e,positionals:r}=X({args:t,allowPositionals:!0,options:{...Xe,"save-attachments":{type:"string"},"keep-unread":{type:"boolean"}}});q=!!e.json;let{box:n}=Me(e.as,e.api),{summary:s,email:o}=await n.read(r[0]||T("Usage: shalom read <id>"));!e["keep-unread"]&&s.unread&&await n.update([s.id],{seen:!0});let i=[];if(e["save-attachments"]){Ma(e["save-attachments"],{recursive:!0});let a=new Set;for(let l of o.attachments){let c=ce(Dn(l.filename||"attachment")).replace(/^\.+/,"_"),f=c.lastIndexOf("."),[p,h]=f>0?[c.slice(0,f),c.slice(f)]:[c,""],g=c;for(let x=2;a.has(g.toLowerCase());x++)g=`${p} (${x})${h}`;a.add(g.toLowerCase());let m=Ka(e["save-attachments"],g);ja(m,new Uint8Array(l.content)),i.push(m)}}if(q)return L("",{...ln(s,o),saved:i});let u=[`From: ${me(s.from)}${s.verifiedSender?" (Shalom, end-to-end, sender verified)":s.keyChanged?" (WARNING: this sender's encryption key changed. Confirm with them another way before trusting; reply with --trust-new-key to accept it)":s.auth==="fail"?" (WARNING: sender not authenticated)":""}`,`To: ${he(o.to).map(me).join(", ")}`,...o.cc?.length?[`Cc: ${he(o.cc).map(me).join(", ")}`]:[],`Date: ${o.date?ce(o.date):Ze(s.receivedAt)}`,`Subject: ${ce(s.subject)||"(no subject)"}`,`Id: ${s.id}`,"",Ho(rr(o))||"(empty)"];o.attachments.length&&(u.push("","Attachments:",...o.attachments.map(a=>` ${ce(a.filename??"attachment")} (${ce(a.mimeType)}, ${Math.ceil(a.content.byteLength/1024)} KB)`)),i.length&&u.push(`Saved to ${e["save-attachments"]}.`)),L(u.join(`
|
|
115
|
+
`))}async function ri(t){return t.text!==void 0?t.text:t["text-file"]?cr(t["text-file"],"utf8"):Wa()}var ni={...Xe,to:{type:"string",multiple:!0},cc:{type:"string",multiple:!0},bcc:{type:"string",multiple:!0},subject:{type:"string"},text:{type:"string"},"text-file":{type:"string"},"html-file":{type:"string"},attach:{type:"string",multiple:!0},"trust-new-key":{type:"boolean"}};async function ic(t){let{values:e}=X({args:t,options:ni});q=!!e.json;let r=Ue(e.to);r.length||T("Add at least one recipient with --to.");let n=e["html-file"]?cr(e["html-file"],"utf8"):void 0,s=n!==void 0&&e.text===void 0&&!e["text-file"]?cn(n):await ri(e);!s.trim()&&!n&&T("Write the message with --text, --text-file or stdin.");let{box:o,file:i,checkPin:u}=Me(e.as,e.api),a=(e.attach??[]).map(c=>({filename:Dn(c),type:fn(c),content:new Uint8Array(cr(c))})),l=await o.send({from:{name:i.name,address:i.address},to:r,cc:Ue(e.cc),bcc:Ue(e.bcc),subject:e.subject??"",text:s,html:n,attachments:a},(c,f)=>u(c,f,e["trust-new-key"]));L(`Sent from ${i.address} (${[l.internal&&`${l.internal} Shalom, end-to-end`,l.external&&`${l.external} outside`].filter(Boolean).join(", ")}).`,{ok:!0,...l})}async function uc(t){let{values:e,positionals:r}=X({args:t,allowPositionals:!0,options:{...ni,all:{type:"boolean"},"no-quote":{type:"boolean"}}});q=!!e.json;let{box:n,file:s,checkPin:o}=Me(e.as,e.api),{summary:i,email:u}=await n.read(r[0]||T('Usage: shalom reply <id> --text "..."')),a=await ri(e);a.trim()||T("Write the reply with --text, --text-file or stdin.");let l=Ko(i,u,s.address,{text:a,all:e.all,quote:!e["no-quote"],to:Ue(e.to),cc:Ue(e.cc)});l.to.length||T("Could not tell who to reply to. Pass --to.");let c=await n.send({from:{name:s.name,address:s.address},...l,bcc:Ue(e.bcc),attachments:(e.attach??[]).map(f=>({filename:Dn(f),type:fn(f),content:new Uint8Array(cr(f))}))},(f,p)=>o(f,p,e["trust-new-key"]));L(`Replied to ${l.to.map(me).join(", ")}.`,{ok:!0,...c})}async function si(t,e){return e.length||T("Pass at least one message id."),Promise.all(e.map(async r=>(await t.find(r)).id))}async function An(t){let{values:e,positionals:r}=X({args:t,allowPositionals:!0,options:{...Xe,to:{type:"string"}}});q=!!e.json;let n=e.to;["inbox","archive","spam","trash"].includes(n)||T("Use --to inbox, archive, spam or trash.");let{box:s}=Me(e.as,e.api),o=await si(s,r);await s.update(o,{folder:n}),L(`Moved ${o.length} to ${n}.`,{ok:!0,ids:o,folder:n})}async function ac(t){let{values:e,positionals:r}=X({args:t,allowPositionals:!0,options:{...Xe,read:{type:"boolean"},unread:{type:"boolean"},star:{type:"boolean"},unstar:{type:"boolean"}}});q=!!e.json;let n={};(e.read||e.unread)&&(n.seen=!!e.read),(e.star||e.unstar)&&(n.starred=!!e.star),Object.keys(n).length||T("Use --read, --unread, --star or --unstar.");let{box:s}=Me(e.as,e.api),o=await si(s,r);await s.update(o,n),L(`Updated ${o.length}.`,{ok:!0,ids:o,...n})}function cc(t,e,r){return new Promise(n=>{let{SHALOM_AGENT_TOKEN:s,SHALOM_API_KEY:o,...i}=process.env,u=Jo(t,{shell:!0,stdio:["pipe","inherit","inherit"],env:{...i,...r}});u.on("error",()=>n(127)),u.on("close",a=>n(a??1)),u.stdin.on("error",()=>{}),u.stdin.end(JSON.stringify(e)+`
|
|
116
|
+
`)})}async function lc(t){let{values:e}=X({args:t,options:{...Xe,interval:{type:"string",default:"15"},exec:{type:"string"},"mark-read":{type:"boolean"},all:{type:"boolean"}}});q=!!e.json;let{box:r,file:n}=Me(e.as,e.api),s=Math.max(5,Number(e.interval)||15)*1e3,o=!!e["mark-read"]&&!e.all,i=new Set;if(!e.all)for(let c of(await r.list("inbox",100)).messages)o&&c.unread||i.add(c.id);q||process.stderr.write(`Watching ${n.address} every ${s/1e3}s. Ctrl+C to stop.
|
|
116
117
|
`);let u=!1;process.on("SIGINT",()=>{u=!0,process.stderr.write(`
|
|
117
|
-
`),process.exit(0)});let a=s,l=!0;for(;!u;){try{for(let c of await r.unseen(i)){if(l&&o&&!c.unread){i.add(c.id);continue}if(e.exec||q){let{summary:f,email:p}=await r.read(c.id),h=
|
|
118
|
-
`):process.stdout.write(`${
|
|
119
|
-
`),e.exec){let g=await
|
|
120
|
-
`):e["mark-read"]&&await r.update([c.id],{seen:!0})}else i.add(c.id),e["mark-read"]&&await r.update([c.id],{seen:!0})}else process.stdout.write(`${
|
|
118
|
+
`),process.exit(0)});let a=s,l=!0;for(;!u;){try{for(let c of await r.unseen(i)){if(l&&o&&!c.unread){i.add(c.id);continue}if(e.exec||q){let{summary:f,email:p}=await r.read(c.id),h=ln(f,p);if(q?process.stdout.write(JSON.stringify(h)+`
|
|
119
|
+
`):process.stdout.write(`${Ze(c.receivedAt)} ${ar(c.id)} ${me(c.from)} ${ce(c.subject)}
|
|
120
|
+
`),e.exec){let g=await cc(e.exec,h,{SHALOM_MESSAGE_ID:c.id,SHALOM_FROM:c.from?.address??"",SHALOM_SUBJECT:c.subject,SHALOM_AGENT:n.address});i.add(c.id),g!==0?process.stderr.write(`exec exited with ${g} for ${ar(c.id)}
|
|
121
|
+
`):e["mark-read"]&&await r.update([c.id],{seen:!0})}else i.add(c.id),e["mark-read"]&&await r.update([c.id],{seen:!0})}else process.stdout.write(`${Ze(c.receivedAt)} ${ar(c.id)} ${me(c.from)} ${ce(c.subject)}
|
|
121
122
|
`),i.add(c.id),e["mark-read"]&&await r.update([c.id],{seen:!0})}l=!1,a=s}catch(c){process.stderr.write(`watch: ${c.message}
|
|
122
|
-
`),a=Math.min(a*2,300*1e3)}await
|
|
123
|
+
`),a=Math.min(a*2,300*1e3)}await Qo(a)}}async function fc(t){let[e,...r]=t;switch(e){case void 0:case"help":case"--help":case"-h":return L(Ga);case"version":case"--version":case"-v":return L(En);case"login":return Ja(r);case"logout":return Qa(r);case"whoami":return ec(r);case"agents":case"agent":return tc(r);case"plan":return rc(r);case"upgrade":return nc(r);case"inbox":case"list":case"ls":return sc(r);case"read":case"show":return oc(r);case"send":return ic(r);case"reply":return uc(r);case"move":case"mv":return An(r);case"mark":return ac(r);case"trash":return An([...r,"--to","trash"]);case"archive":return An([...r,"--to","archive"]);case"watch":return lc(r);default:T(`Unknown command: ${e}. Run shalom --help.`)}}fc(process.argv.slice(2)).catch(t=>{process.argv.slice(2).includes("--json")&&(q=!0);let e=t instanceof lr||t instanceof z||t instanceof xt||t?.code?.startsWith("ERR_PARSE_ARGS")?t.message:`Unexpected error: ${t?.stack??t}`;q?process.stdout.write(JSON.stringify({error:t instanceof z?t.code:"error",message:e})+`
|
|
123
124
|
`):process.stderr.write(`shalom: ${e}
|
|
124
125
|
`),process.exit(1)});
|