diff --git a/Core/source/core/buf.ts b/Core/source/core/buf.ts index 011f6c3e4..d0f419561 100644 --- a/Core/source/core/buf.ts +++ b/Core/source/core/buf.ts @@ -166,7 +166,18 @@ export class Buf extends Uint8Array { bytesLeftInChar--; } if (binaryChar && !bytesLeftInChar) { - stringArray[i] = String.fromCharCode(parseInt(binaryChar, 2)); + const cp = parseInt(binaryChar, 2); + // Valid Unicode range (0..0x10FFFF): use fromCodePoint so + // supplementary-plane code points (e.g. emoji such as 😀 / + // U+1F600, encoded as 4-byte UTF-8 sequences) round-trip + // correctly; fromCharCode alone would silently truncate the high + // bits and turn them into Private Use Area characters (which is + // what caused https://github.com/FlowCrypt/flowcrypt-ios/issues/630). + // For out-of-range code points produced by the legacy 5- and + // 6-byte UTF-8 branches above (only reachable when non-UTF-8 + // binary data is fed through toUtfStr) fall back to fromCharCode + // to preserve historical byte-compat behavior. + stringArray[i] = cp <= 0x10ffff ? String.fromCodePoint(cp) : String.fromCharCode(cp); binaryChar = ''; } } diff --git a/Core/source/test.ts b/Core/source/test.ts index aa05e16fd..fd6ba9d6e 100644 --- a/Core/source/test.ts +++ b/Core/source/test.ts @@ -282,6 +282,23 @@ test('parseDecryptMsg unescaped special characters in encrypted text', async t = t.pass(); }); +// Regression test for https://github.com/FlowCrypt/flowcrypt-ios/issues/630 +// Ensures emoji / supplementary-plane Unicode scalars survive the full +// encryptMsg -> parseDecryptMsg round-trip at the Core (JS) layer. +// If this passes, any user-visible "emoji not rendered" issue lives outside +// of Core (i.e. in the iOS bridge or the WKWebView HTML renderer). +test('encryptMsg -> parseDecryptMsg preserves emoji / non-BMP unicode', async t => { + const emojiText = 'Hello 😀 🙂 🔐 👩‍💻 é 汉'; + const expectedHtml = Xss.escape(emojiText).replace(/\n/g, '
'); + const { pubKeys, keys } = getKeypairs('rsa1'); + const { data: encryptedMsg } = await endpoints.encryptMsg({ pubKeys }, [Buffer.from(emojiText, 'utf8')]); + expectData(encryptedMsg, 'armoredMsg'); + const { data: blocks, json: decryptJson } = await endpoints.parseDecryptMsg({ keys }, [encryptedMsg]); + expect(decryptJson).to.deep.equal({ text: emojiText, replyType: 'encrypted' }); + expectData(blocks, 'msgBlocks', [{ rendered: true, frameColor: 'green', htmlContent: expectedHtml }]); + t.pass(); +}); + test('parseDecryptMsg - plain inline img', async t => { const mime = `MIME-Version: 1.0 Date: Sat, 10 Aug 2019 10:45:56 +0000 diff --git a/FlowCrypt/Resources/generated/flowcrypt-ios-prod.js.txt b/FlowCrypt/Resources/generated/flowcrypt-ios-prod.js.txt index cc59c965f..7940bab31 100644 --- a/FlowCrypt/Resources/generated/flowcrypt-ios-prod.js.txt +++ b/FlowCrypt/Resources/generated/flowcrypt-ios-prod.js.txt @@ -20649,7 +20649,7 @@ var time_estimates;time_estimates={estimate_attack_times:function(e){var t,n,s,o /* entrypoint-bare starts here */ /*! For license information please see entrypoint-bare.js.LICENSE.txt */ -(()=>{var e={3207(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Att=void 0;const n=r(833),i=r(6471);class s{static attachmentsPattern=/^(((cryptup|flowcrypt)-backup-[a-z0-9]+\.(key|asc))|(.+\.pgp)|(.+\.gpg)|(.+\.asc)|(noname)|(message)|(PGPMIME version identification)|())$/gm;length=NaN;type;name;url;id;msgId;inline;cid;contentDescription;bytes;treatAsValue;constructor({data:e,type:t,name:r,length:n,url:i,inline:s,id:a,msgId:o,treatAs:c,cid:l,contentDescription:u}){if(void 0===e&&void 0===i&&void 0===a)throw new Error("Att: one of data|url|id has to be set");if(a&&!o)throw new Error("Att: if id is set, msgId must be set too");e?(this.bytes=e,this.length=e.length):this.length=Number(n),this.name=r||"",this.type=t||"application/octet-stream",this.url=i||void 0,this.inline=!!s,this.id=a||void 0,this.msgId=o||void 0,this.treatAsValue=c||void 0,this.cid=l||void 0,this.contentDescription=u||void 0}static keyinfoAsPubkeyAtt=e=>new s({data:n.Buf.fromUtfStr(e.public),type:"application/pgp-keys",name:`0x${e.longid}.asc`});hasData=()=>this.bytes instanceof Uint8Array;setData=e=>{if(this.hasData())throw new Error("Att bytes already set");this.bytes=e};getData=()=>{if(this.bytes instanceof n.Buf)return this.bytes;if(this.bytes instanceof Uint8Array)return new n.Buf(this.bytes);throw new Error("Att has no data set")};treatAs=(e,t=!1)=>{if(this.treatAsValue)return this.treatAsValue;if(["PGPexch.htm.pgp","PGPMIME version identification","Version.txt","PGPMIME Versions Identification"].includes(this.name))return"hidden";if("signature.asc"===this.name||"application/pgp-signature"===this.type){if(e.length>1){const t=i.Str.getFilenameWithoutExtension(this.name);if(e.some(e=>e!==this&&(e.name===t||i.Str.getFilenameWithoutExtension(e.name)===t)))return"hidden"}return"signature"}return this.name||this.type.startsWith("image/")?"msg.asc"===this.name&&this.length<100&&"application/pgp-encrypted"===this.type?"hidden":["message","msg.asc","message.asc","encrypted.asc","encrypted.eml.pgp","Message.pgp"].includes(this.name)||"message"===this.name&&t?"encryptedMsg":this.name.match(/(\.pgp$)|(\.gpg$)|(\.[a-zA-Z0-9]{3,4}\.asc$)/g)?"encryptedFile":this.name.match(/(cryptup|flowcrypt)-backup-[a-z0-9]+\.(key|asc)$/g)?"privateKey":this.name.match(/^(0|0x)?[A-F0-9]{8}([A-F0-9]{8})?.*\.asc$/g)||this.name.toLowerCase().includes("public")&&this.name.match(/[A-F0-9]{8}.*\.asc$/g)||this.name.match(/\.asc$/)&&this.hasData()&&n.Buf.with(this.getData().subarray(0,100)).toUtfStr().includes("-----BEGIN PGP PUBLIC KEY BLOCK-----")?"publicKey":this.name.match(/\.asc$/)&&this.length<1e5&&!this.inline?"encryptedMsg":"plainFile":this.length<100?"hidden":"encryptedMsg"}}t.Att=s},833(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Buf=void 0;const n=r(178);class i extends Uint8Array{static concat=e=>{const t=new Uint8Array(e.reduce((e,t)=>e+t.length,0));let r=0;for(const n of e)t.set(n,r),r+=n.length;return i.fromUint8(t)};static with=e=>e instanceof i?e:e instanceof Uint8Array?i.fromUint8(e):i.fromUtfStr(e);static fromUint8=e=>new i(e);static fromRawBytesStr=e=>{const t=e.length,r=new i(t);for(let n=0;n{let t;const r=e.length;let n;const s=[];for(let i=0;i55295&&t<57344){if(!n){if(t>56319){s.push(239,191,189);continue}if(i+1===r){s.push(239,191,189);continue}n=t;continue}if(t<56320){s.push(239,191,189),n=t;continue}t=65536+(n-55296<<10|t-56320)}else n&&s.push(239,191,189);if(n=void 0,t<128)s.push(t);else if(t<2048)s.push(t>>6|192,63&t|128);else if(t<65536)s.push(t>>12|224,t>>6&63|128,63&t|128);else{if(!(t<1114112))throw new Error("Invalid code point");s.push(t>>18|240,t>>12&63|128,t>>6&63|128,63&t|128)}}return new i(s)};static fromBase64Str=e=>i.fromRawBytesStr((0,n.base64decode)(e));static fromBase64UrlStr=e=>i.fromBase64Str(e.replace(/-/g,"+").replace(/_/g,"/"));toString=(e="inform")=>this.toUtfStr(e);toUtfStr=(e="inform")=>{const t=this.length;let r=0,n="";const i=new Array(t);for(let s=0;s{const e=this.length,t=[];for(let r=0;r(0,n.base64encode)(this.toRawBytesStr());toBase64UrlStr=()=>this.toBase64Str().replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}t.Buf=i},6471(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Value=t.Str=void 0;const n=r(178);class i{static extractErrorMessage=e=>{if("object"==typeof e&&void 0!==e.message)return"string"==typeof e.message?e.message:JSON.stringify(e)};static parseEmail=(e,t="VALIDATE")=>{let r,n;if(e.includes("<")&&e.includes(">")){const t=e.indexOf("<"),i=e.indexOf(">");r=e.substr(t+1,t-i-1).replace(/["']/g,"").trim().toLowerCase(),n=e.substr(0,e.indexOf("<")).replace(/["']/g,"").trim()}else r=e.replace(/["']/g,"").trim().toLowerCase();return"VALIDATE"!==t||i.isEmailValid(r)||(r=void 0),{email:r,name:n,full:e}};static prettyPrint=e=>"object"==typeof e?JSON.stringify(e,void 0,2).replace(/ /g," ").replace(/\n/g,"
"):String(e);static normalizeSpaces=e=>e.replace(RegExp(String.fromCharCode(160),"g"),String.fromCharCode(32));static normalizeDashes=e=>e.replace(/^—–|—–$/gm,"-----");static getFilenameWithoutExtension=e=>e.replace(/\.[^/.]+$/,"");static normalize=e=>i.normalizeSpaces(i.normalizeDashes(e));static isEmailValid=e=>-1===e.indexOf(" ")&&/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/i.test(e);static monthName=e=>["January","February","March","April","May","June","July","August","September","October","November","December"][e];static sloppyRandom=(e=5)=>{let t="";for(let r=0;re.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");static asEscapedHtml=e=>e.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">").replace(/\//g,"/").replace(/\n/g,"
");static htmlAttrDecode=e=>{try{return JSON.parse(i.base64urlUtfDecode(e))}catch(e){return}};static capitalize=e=>e.trim().split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ");static pluralize=(e,t,r="s")=>`${e} ${t}${e>1?r:""}`;static toUtcTimestamp=(e,t=!1)=>t?String(Date.parse(e)):Date.parse(e);static datetimeToDate=e=>e.substring(0,10).replace(/"/g,""").replace(/'/g,"'").replace(/e.toISOString().replace(/T/," ").replace(/:[^:]+$/,"");static base64urlUtfDecode=e=>void 0===e?e:decodeURIComponent(String(Array.prototype.map.call((0,n.base64decode)(e.replace(/-/g,"+").replace(/_/g,"/")),e=>"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)).join("")))}t.Str=i;class s{static arr={unique:e=>{const t=[];for(const r of e)t.includes(r)||t.push(r);return t},contains:(e,t)=>Boolean(e&&"function"==typeof e.indexOf&&-1!==e.indexOf(t)),sum:e=>e.reduce((e,t)=>e+t,0),average:e=>s.arr.sum(e)/e.length};static obj={keyByValue:(e,t)=>{for(const r of Object.keys(e))if(e[r]===t)return r}}}t.Value=s},9815(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GMAIL_RECOVERY_EMAIL_SUBJECTS=t.BACKEND_API_HOST=t.GOOGLE_CONTACTS_API_HOST=t.GOOGLE_OAUTH_SCREEN_HOST=t.GOOGLE_API_HOST=t.VERSION=void 0,t.VERSION=APP_VERSION,t.GOOGLE_API_HOST="[BUILD_REPLACEABLE_GOOGLE_API_HOST]",t.GOOGLE_OAUTH_SCREEN_HOST="[BUILD_REPLACEABLE_GOOGLE_OAUTH_SCREEN_HOST]",t.GOOGLE_CONTACTS_API_HOST="[BUILD_REPLACEABLE_GOOGLE_CONTACTS_API_HOST]",t.BACKEND_API_HOST="[BUILD_REPLACEABLE_BACKEND_API_HOST]",t.GMAIL_RECOVERY_EMAIL_SUBJECTS=["Your FlowCrypt Backup","Your CryptUp Backup","All you need to know about CryptUP (contains a backup)","CryptUP Account Backup"]},4010(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Mime=void 0;const n=r(6471),i=r(3955),s=r(3207),a=r(833),o=r(7659),c=r(2633),l=r(9545),u=r(1341),h=r(178),f=(0,i.requireMimeParser)(),A=(0,i.requireMimeBuilder)(),d=(0,i.requireIso88592)();class p{static processBody=e=>{const t=[];if(e.text){const r=l.MsgBlockParser.detectBlocks(n.Str.normalize(e.text),!0).blocks;r.find(e=>["pkcs7","encryptedMsg","signedMsg","publicKey","privateKey"].includes(e.type))?t.push(...r):e.html?t.push(c.MsgBlock.fromContent("plainHtml",e.html)):t.push(...r)}else e.html&&t.push(c.MsgBlock.fromContent("plainHtml",e.html));return t};static isBodyEmpty=({text:e,html:t})=>p.isBodyTextEmpty(e)&&p.isBodyTextEmpty(t);static isBodyTextEmpty=e=>!(e&&!/^(\r)?(\n)?$/.test(e));static processAttachments=(e,t)=>{const r=[],n=[];for(const e of t.atts){let i=e.treatAs(t.atts,p.isBodyEmpty(t));if(["needChunk","maybePgp"].includes(i)&&(i="encryptedMsg"),"encryptedMsg"===i){const t=u.PgpArmor.clip(e.getData().toUtfStr());t&&r.push(c.MsgBlock.fromContent("encryptedMsg",t))}else"signature"===i?n.push(e):"publicKey"===i||"privateKey"===i?r.push(...l.MsgBlockParser.detectBlocks(e.getData().toUtfStr(),!0).blocks):"encryptedFile"===i?r.push(c.MsgBlock.fromAtt("encryptedAtt","",{name:e.name,type:e.type,length:e.getData().length,data:e.getData(),treatAs:e.treatAs(t.atts)})):"plainFile"===i&&r.push(c.MsgBlock.fromAtt("plainAtt","",{name:e.name,type:e.type,length:e.getData().length,data:e.getData(),inline:e.inline,cid:e.cid}))}if(n.length){const t=n[0].getData().toUtfStr();[...e,...r].some(e=>["plainText","plainHtml","signedMsg"].includes(e.type))||r.push(new c.MsgBlock("signedMsg","",!0,t))}const i=[...e,...r];if(t.signature&&t.signature.includes(u.PgpArmor.ARMOR_HEADER_DICT.signature.begin)&&t.signature.includes(String(u.PgpArmor.ARMOR_HEADER_DICT.signature.end))){for(const e of i)"plainText"===e.type?(e.type="signedMsg",e.signature=t.signature):"plainHtml"===e.type&&(e.type="signedHtml",e.signature=t.signature);i.find(e=>"plainText"===e.type||"plainHtml"===e.type||"signedMsg"===e.type||"signedHtml"===e.type)||i.push(new c.MsgBlock("signedMsg","",!0,t.signature))}return{headers:t.headers,blocks:i,from:t.from,to:t.to,rawSignedContent:t.rawSignedContent}};static processDecoded=e=>{const t=p.processBody(e);return p.processAttachments(t,e)};static process=async e=>{const t=await p.decode(e);return p.processDecoded(t)};static isPlainImgAtt=e=>"plainAtt"===e.type&&e.attMeta&&e.attMeta.type&&["image/jpeg","image/jpg","image/bmp","image/png","image/svg+xml"].includes(e.attMeta.type);static replyHeaders=e=>{const t=String(e.headers["message-id"]||"");return{"in-reply-to":t,references:String(e.headers["in-reply-to"]||"")+" "+t}};static resemblesMsg=e=>{const t=new a.Buf(e.slice(0,1e3)).toUtfStr().toLowerCase(),r=t.match(/content-type: +[0-9a-z\-\/]+/);return!!r&&(!!(t.match(/content-transfer-encoding: +[0-9a-z\-\/]+/)||t.match(/content-disposition: +[0-9a-z\-\/]+/)||t.match(/; boundary=/)||t.match(/; charset=/))||Boolean(0===r.index&&t.match(/boundary=/)))};static decode=async e=>{const t={atts:[],headers:{},subject:void 0,text:void 0,html:void 0,signature:void 0,from:void 0,to:[],cc:[],bcc:[]},r=new f,n={};return r.onbody=e=>{const t=String(e.path.join("."));void 0===n[t]&&(n[t]=e)},await new Promise((i,s)=>{try{r.onend=()=>{try{for(const e of Object.keys(r.node.headers))t.headers[e]=r.node.headers[e][0].value;t.rawSignedContent=p.retrieveRawSignedContent([r.node]);for(const e of Object.values(n))"application/pgp-signature"===p.getNodeType(e)?t.signature=e.rawContent:"text/html"!==p.getNodeType(e)||p.getNodeFilename(e)?"text/plain"!==p.getNodeType(e)||p.getNodeFilename(e)&&!p.isNodeInline(e)?"text/rfc822-headers"===p.getNodeType(e)?e._parentNode&&e._parentNode.headers.subject&&(t.subject=e._parentNode.headers.subject[0].value):t.atts.push(p.getNodeAsAtt(e)):t.text=(t.text?`${t.text}\n\n`:"")+p.getNodeContentAsUtfStr(e):t.html=(t.html||"")+p.getNodeContentAsUtfStr(e);const e=p.headerGetAddress(t,["from","to","cc","bcc"]);t.subject=String(t.subject||t.headers.subject||""),Object.assign(t,e),i(t)}catch(e){s(e)}},r.write(e),r.end()}catch(e){o.Catch.reportErr(e),i(t)}})};static encode=async(e,t,r=[],n)=>{const i=new A("pgpMimeEncrypted"!==n?"multipart/mixed":'multipart/encrypted; protocol="application/pgp-encrypted";',{includeBccInHeader:!0});for(const e of Object.keys(t))i.addHeader(e,t[e]);if(Object.keys(e).length){let t;if(1===Object.keys(e).length)t=p.newContentNode(A,Object.keys(e)[0],e[Object.keys(e)[0]]||"");else{t=new A("multipart/alternative");for(const r of Object.keys(e))t.appendChild(p.newContentNode(A,r,e[r]??""))}i.appendChild(t)}for(const e of r)i.appendChild(p.createAttNode(e));return i.build()};static subjectWithoutPrefixes=e=>e.replace(/^((Re|Fwd): ?)+/g,"").trim();static encodePgpMimeSigned=async(e,t,r=[],i)=>{const o=`SIG_PLACEHOLDER_${n.Str.sloppyRandom(10)}`,c=new A('multipart/signed; protocol="application/pgp-signature";',{includeBccInHeader:!0});for(const e of Object.keys(t))c.addHeader(e,t[e]);const l=new A("multipart/alternative");for(const t of Object.keys(e))l.appendChild(p.newContentNode(A,t,e[t]??""));const u=new A("multipart/mixed");u.appendChild(l);for(const e of r)u.appendChild(p.createAttNode(e));const h=new s.Att({data:a.Buf.fromUtfStr(o),type:"application/pgp-signature",name:"signature.asc"}),f=p.createAttNode(h);c.appendChild(u),c.appendChild(f);const d=c.build(),{rawSignedContent:g}=await p.decode(a.Buf.fromUtfStr(d));if(!g)throw console.log(`mimeStrWithPlaceholderSig(placeholder:${o}):\n${d}`),new Error("Could not find raw signed content immediately after mime-encoding a signed message");const y=await i(g),m=d.replace(a.Buf.fromUtfStr(o).toBase64Str(),a.Buf.fromUtfStr(y).toBase64Str());if(m===d)throw console.log(`pgpMimeSigned(placeholder:${o}):\n${m}`),new Error("Replaced sigPlaceholder with realSignature but mime stayed the same");return m};static headerGetAddress=(e,t)=>{const r={to:[],cc:[],bcc:[]};let i;const s=e=>"string"==typeof e?[e].map(e=>n.Str.parseEmail(e).email).filter(e=>!!e):e.map(e=>e.address),a=e=>n.Str.parseEmail((Array.isArray(e)?(e[0]||{}).address:String(e||""))||"").email;for(const n of t){const t=e.headers[n];t&&("from"===n?i=a(t):r[n]=[...r[n],...s(t)])}return{...r,from:i}};static retrieveRawSignedContent=e=>{for(const t of e){if(!t._childNodes||!t._childNodes.length)continue;const e="signed"===t._isMultipart,r="mixed"===t._isMultipart&&2===t._childNodes.length&&"application/pgp-signature"===p.getNodeType(t._childNodes[1]);if(e||r){let e=t._childNodes[0].raw.replace(/\r?\n/g,"\r\n");return/--$/.test(e)&&(e+="\r\n"),e}return p.retrieveRawSignedContent(t._childNodes)}};static createAttNode=e=>{const t=`${e.type}; name="${e.name}"`,r=`f_${n.Str.sloppyRandom(30)}@flowcrypt`,i={};return e.contentDescription&&(i["Content-Description"]=e.contentDescription),i["Content-Disposition"]=e.inline?"inline":"attachment",i["X-Attachment-Id"]=r,i["Content-ID"]=`<${r}>`,i["Content-Transfer-Encoding"]="base64",new A(t,{filename:e.name}).setHeader(i).setContent(e.getData())};static getNodeType=(e,t="value")=>{if(e.headers["content-type"]&&e.headers["content-type"][0])return e.headers["content-type"][0][t]};static getNodeContentId=e=>{if(e.headers["content-id"]&&e.headers["content-id"][0])return e.headers["content-id"][0].value};static getNodeFilename=e=>{if(e.headers["content-disposition"]&&e.headers["content-disposition"][0]){const t=e.headers["content-disposition"][0];if(t.params&&t.params.filename)return String(t.params.filename)}if(e.headers["content-type"]&&e.headers["content-type"][0]){const t=e.headers["content-type"][0];if(t.params&&t.params.name)return String(t.params.name)}};static isNodeInline=e=>{const t=e.headers["content-disposition"];return t&&t[0]&&"inline"===t[0].value};static fromEqualSignNotationAsBuf=e=>a.Buf.fromRawBytesStr(e.replace(/(=[A-F0-9]{2})+/g,e=>{const t=e.replace(/^=/,"").split("=").map(e=>parseInt(e,16));return new a.Buf(t).toRawBytesStr()}));static getNodeAsAtt=e=>new s.Att({name:p.getNodeFilename(e),type:p.getNodeType(e),data:"quoted-printable"===e.contentTransferEncoding.value?p.fromEqualSignNotationAsBuf(e.rawContent??""):e.content,cid:p.getNodeContentId(e)});static getNodeContentAsUtfStr=e=>{if(e.charset&&d.labels.includes(e.charset))return d.decode(e.rawContent??"");let t;return t="utf-8"===e.charset&&"base64"===e.contentTransferEncoding.value?a.Buf.fromUint8(e.content):"utf-8"===e.charset&&"quoted-printable"===e.contentTransferEncoding.value?p.fromEqualSignNotationAsBuf(e.rawContent??""):a.Buf.fromRawBytesStr(e.rawContent??""),"ISO-2022-JP"===e.charset?.toUpperCase()||"utf-8"===e.charset&&p.getNodeType(e,"initial")?.includes("ISO-2022-JP")?(0,h.iso2022jpToUtf)(t):t.toUtfStr()};static newContentNode=(e,t,r)=>{const n=new e(t).setContent(r);return"text/plain"===t&&n.addHeader("Content-Transfer-Encoding","quoted-printable"),n}}t.Mime=p},102(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.mnemonic=void 0;const r=["abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse","access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act","action","actor","actress","actual","adapt","add","addict","address","adjust","admit","adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent","agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert","alien","all","alley","allow","almost","alone","alpha","already","also","alter","always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger","angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique","anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic","area","arena","argue","arm","armed","armor","army","around","arrange","arrest","arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset","assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction","audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake","aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge","bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain","barrel","base","basic","basket","battle","beach","bean","beauty","because","become","beef","before","begin","behave","behind","believe","below","belt","bench","benefit","best","betray","better","between","beyond","bicycle","bid","bike","bind","biology","bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless","blind","blood","blossom","blouse","blue","blur","blush","board","boat","body","boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss","bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread","breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze","broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb","bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy","butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call","calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas","canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry","cart","case","cash","casino","castle","casual","cat","catalog","catch","category","cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century","cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase","chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child","chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle","citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk","clever","click","client","cliff","climb","clinic","clip","clock","clog","close","cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut","code","coffee","coil","coin","collect","color","column","combine","come","comfort","comic","common","company","concert","conduct","confirm","congress","connect","consider","control","convince","cook","cool","copper","copy","coral","core","corn","correct","cost","cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle","craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek","crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial","cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup","cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad","damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal","debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense","define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny","depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk","despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond","diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur","direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance","divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain","donate","donkey","donor","door","dose","double","dove","draft","dragon","drama","drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop","drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf","dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo","ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow","elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody","embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless","endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough","enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip","era","erase","erode","erosion","error","erupt","escape","essay","essence","estate","eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange","excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit","exotic","expand","expect","expire","explain","expose","express","extend","extra","eye","eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame","family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father","fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female","fence","festival","fetch","fever","few","fiber","fiction","field","figure","file","film","filter","final","find","fine","finger","finish","fire","firm","first","fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor","flee","flight","flip","float","flock","floor","flower","fluid","flush","fly","foam","focus","fog","foil","fold","follow","food","foot","force","forest","forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile","frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen","fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy","gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp","gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture","ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance","glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue","goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown","grab","grace","grain","grant","grape","grass","gravity","great","green","grid","grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt","guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy","harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health","heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden","high","hill","hint","hip","hire","history","hobby","hockey","hold","hole","holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital","host","hotel","hour","hover","hub","huge","human","humble","humor","hundred","hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea","identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune","impact","impose","improve","impulse","inch","include","income","increase","index","indicate","indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury","inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install","intact","interest","into","invest","invite","involve","iron","island","isolate","issue","item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel","job","join","joke","journey","joy","judge","juice","jump","jungle","junior","junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney","kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife","knock","know","lab","label","labor","ladder","lady","lake","lamp","language","laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit","layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal","legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level","liar","liberty","library","license","life","lift","light","like","limb","limit","link","lion","liquid","list","little","live","lizard","load","loan","lobster","local","lock","logic","lonely","long","loop","lottery","loud","lounge","love","loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad","magic","magnet","maid","mail","main","major","make","mammal","man","manage","mandate","mango","mansion","manual","maple","marble","march","margin","marine","market","marriage","mask","mass","master","match","material","math","matrix","matter","maximum","maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt","member","memory","mention","menu","mercy","merge","merit","merry","mesh","message","metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor","minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile","model","modify","mom","moment","monitor","monkey","monster","month","moon","moral","more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie","much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual","myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature","near","neck","need","negative","neglect","neither","nephew","nerve","nest","net","network","neutral","never","news","next","nice","night","noble","noise","nominee","noodle","normal","north","nose","notable","note","nothing","notice","novel","now","nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe","obtain","obvious","occur","ocean","october","odor","off","offer","office","often","oil","okay","old","olive","olympic","omit","once","one","onion","online","only","open","opera","opinion","oppose","option","orange","orbit","orchard","order","ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output","outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact","paddle","page","pair","palace","palm","panda","panel","panic","panther","paper","parade","parent","park","parrot","party","pass","patch","path","patient","patrol","pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen","penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo","phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot","pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate","play","please","pledge","pluck","plug","plunge","poem","poet","point","polar","pole","police","pond","pony","pool","popular","portion","position","possible","post","potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare","present","pretty","prevent","price","pride","primary","print","priority","prison","private","prize","problem","process","produce","profit","program","project","promote","proof","property","prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin","punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle","pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit","raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp","ranch","random","range","rapid","rare","rate","rather","raven","raw","razor","ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle","reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release","relief","rely","remain","remember","remind","remove","render","renew","rent","reopen","repair","repeat","replace","report","require","rescue","resemble","resist","resource","response","result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib","ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot","ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket","romance","roof","rookie","room","rose","rotate","rough","round","route","royal","rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness","safe","sail","salad","salmon","salon","salt","salute","same","sample","sand","satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter","scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script","scrub","sea","search","season","seat","second","secret","section","security","seed","seek","segment","select","sell","seminar","senior","sense","sentence","series","service","session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell","sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop","short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side","siege","sight","sign","silent","silk","silly","silver","similar","simple","since","sing","siren","sister","situate","six","size","skate","sketch","ski","skill","skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight","slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth","snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda","soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry","sort","soul","sound","soup","source","south","space","spare","spatial","spawn","speak","special","speed","spell","spend","sphere","spice","spider","spike","spin","spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring","spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp","stand","start","state","stay","steak","steel","stem","step","stereo","stick","still","sting","stock","stomach","stone","stool","story","stove","strategy","street","strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway","success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny","sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey","suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim","swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag","tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi","teach","team","tell","ten","tenant","tennis","tent","term","test","text","thank","that","theme","then","theory","there","they","thing","this","thought","three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber","time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler","toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool","tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist","toward","tower","town","toy","track","trade","traffic","tragic","train","transfer","trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick","trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust","truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle","twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella","unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform","unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade","uphold","upon","upper","upset","urban","urge","usage","use","used","useful","useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van","vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue","verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory","video","view","village","vintage","violin","virtual","virus","visa","visit","visual","vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage","wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash","wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather","web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat","wheel","when","where","whip","whisper","wide","width","wife","wild","will","win","window","wine","wing","wink","winner","winter","wire","wisdom","wise","wish","witness","wolf","woman","wonder","wood","wool","word","work","world","worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year","yellow","you","young","youth","zebra","zero","zone","zoo"];t.mnemonic=e=>{if(!e)return;const t=e.split("").map(e=>(e=>{let t=e+"";for(;t.length<4;)t="0"+t;return t})(parseInt(e,16).toString(2))).join("").match(new RegExp(".{1,11}","g"));return(t?.map(e=>parseInt(e,2))??[]).map(e=>r[e].toUpperCase()).join(" ")}},9545(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MsgBlockParser=void 0;const n=r(2633),i=r(6622),s=r(833),a=r(7659),o=r(4010),c=r(1341),l=r(2365),u=r(9379),h=r(6471);class f{static ARMOR_HEADER_MAX_LENGTH=50;static detectBlocks=(e,t)=>{const r=[],n=h.Str.normalize(e);let i=0;for(;;){const e=f.detectBlockNext(n,i,t);if(e.found&&r.push(...e.found),void 0===e.continueAt)return{blocks:r,normalized:n};if(e.continueAt<=i)return a.Catch.report(`PgpArmordetect_blocks likely infinite loop: r.continue_at(${e.continueAt}) <= start_at(${i})`),{blocks:r,normalized:n};i=e.continueAt}};static fmtDecryptedAsSanitizedHtmlBlocks=async(e,t)=>{const r=[];let a=!1;if(!o.Mime.resemblesMsg(e)){let i=s.Buf.fromUint8(e).toUtfStr();i=u.PgpMsg.extractFcAtts(i,r),i=u.PgpMsg.stripFcTeplyToken(i);const o=[];i=u.PgpMsg.stripPublicKeys(i,o);const c=n.MsgBlock.fromContent("decryptedHtml",h.Str.asEscapedHtml(i));return c.verifyRes=t,r.push(c),await f.pushArmoredPubkeysToBlocks(o,r),{blocks:r,subject:void 0,isRichText:a}}const c=await o.Mime.decode(e);if(void 0!==c.html){const e=n.MsgBlock.fromContent("decryptedHtml",i.Xss.htmlSanitizeKeepBasicTags(c.html));e.verifyRes=t,r.push(e),a=!0}else if(void 0!==c.text){const e=n.MsgBlock.fromContent("decryptedHtml",h.Str.asEscapedHtml(c.text));e.verifyRes=t,r.push(e)}else n.MsgBlock.fromContent("decryptedHtml",h.Str.asEscapedHtml(s.Buf.with(e).toUtfStr())).verifyRes=t,r.push();for(const e of c.atts)if("publicKey"===e.treatAs(c.atts))await f.pushArmoredPubkeysToBlocks([e.getData().toUtfStr()],r);else{const i=n.MsgBlock.fromAtt("decryptedAtt","",{name:e.name,data:e.getData(),length:e.length,type:e.type});i.verifyRes=t,r.push(i)}return{blocks:r,subject:c.subject,isRichText:a}};static detectBlockNext=(e,t,r)=>{const i=Object.keys(c.PgpArmor.ARMOR_HEADER_DICT),s={found:[]},a=e.indexOf(c.PgpArmor.headers("null").begin,t);if(-1!==a){const o=e.substr(a,f.ARMOR_HEADER_MAX_LENGTH);for(const l of i){const i=c.PgpArmor.ARMOR_HEADER_DICT[l];if(i.replace&&0===o.indexOf(i.begin)){let o="";if(a>t&&(o=e.substring(t,a),!o.endsWith("\n")))continue;let c=-1,u=0;if("string"==typeof i.end)c=e.indexOf(i.end,a+i.begin.length),u=i.end.length;else{const t=e.substring(a).match(i.end);t&&(c=t.index?a+t.index:-1,u=t[0].length)}if(-1!==c||!r){o=o.trim(),o&&s.found.push(n.MsgBlock.fromContent("plainText",o)),-1!==c?(s.found.push(n.MsgBlock.fromContent(l,e.substring(a,c+u).trim())),s.continueAt=c+u):s.found.push(n.MsgBlock.fromContent(l,e.substr(a),!0));break}}}}if(e&&!s.found.length){const r=e.substr(t).trim();r&&s.found.push(n.MsgBlock.fromContent("plainText",r))}return s};static pushArmoredPubkeysToBlocks=async(e,t)=>{for(const r of e){const{keys:e}=await l.PgpKey.parse(r);for(const r of e)t.push(n.MsgBlock.fromKeyDetails("publicKey",r.public,r))}}}t.MsgBlockParser=f},2633(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MsgBlock=void 0;class r{type;content;complete;signature;keyDetails;attMeta;decryptErr;verifyRes;constructor(e,t,r,n,i,s,a,o){this.type=e,this.content=t,this.complete=r,this.signature=n,this.keyDetails=i,this.attMeta=s,this.decryptErr=a,this.verifyRes=o}static fromContent=(e,t,n=!1)=>new r(e,t,!n);static fromKeyDetails=(e,t,n)=>new r(e,t,!0,void 0,n);static fromAtt=(e,t,n)=>new r(e,t,!0,void 0,void 0,n)}t.MsgBlock=r},1341(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PgpArmor=void 0;const n=r(833),i=r(6471),s=r(6382);class a{static ARMOR_HEADER_DICT={null:{begin:"-----BEGIN",end:"-----END",replace:!1},publicKey:{begin:"-----BEGIN PGP PUBLIC KEY BLOCK-----",end:"-----END PGP PUBLIC KEY BLOCK-----",replace:!0},privateKey:{begin:"-----BEGIN PGP PRIVATE KEY BLOCK-----",end:"-----END PGP PRIVATE KEY BLOCK-----",replace:!0},signedMsg:{begin:"-----BEGIN PGP SIGNED MESSAGE-----",middle:"-----BEGIN PGP SIGNATURE-----",end:"-----END PGP SIGNATURE-----",replace:!0},signature:{begin:"-----BEGIN PGP SIGNATURE-----",end:"-----END PGP SIGNATURE-----",replace:!1},encryptedMsg:{begin:"-----BEGIN PGP MESSAGE-----",end:"-----END PGP MESSAGE-----",replace:!0},encryptedMsgLink:{begin:"This message is encrypted: Open Message",end:/https:(\/|/){2}(cryptup\.org|flowcrypt\.com)(\/|/)[a-zA-Z0-9]{10}(\n|$)/,replace:!0}};static clip=e=>{if(e?.includes(a.ARMOR_HEADER_DICT.null.begin)&&e.includes(String(a.ARMOR_HEADER_DICT.null.end))){const t=e.match(/(-----BEGIN PGP (MESSAGE|SIGNED MESSAGE|SIGNATURE|PUBLIC KEY BLOCK)-----[^]+-----END PGP (MESSAGE|SIGNATURE|PUBLIC KEY BLOCK)-----)/gm);return t&&t.length?t[0]:void 0}};static headers=(e,t="string")=>{const r=a.ARMOR_HEADER_DICT[e];return{begin:"string"==typeof r.begin&&"re"===t?r.begin.replace(/ /g,"\\s"):r.begin,end:"string"==typeof r.end&&"re"===t?r.end.replace(/ /g,"\\s"):r.end,replace:r.replace}};static normalize=(e,t)=>{if(e=i.Str.normalize(e).replace(/\n /g,"\n"),["encryptedMsg","publicKey","privateKey","key"].includes(t)){const t=(e=e.replace(/\r?\n/g,"\n").trim()).match(/\n\n/g),r=e.match(/\n\n\n/g),n=e.match(/\n\n\n\n/g),i=e.match(/\n\n\n\n\n\n/g);r&&i&&r.length>1&&1===i.length?e=e.replace(/\n\n\n/g,"\n"):t&&n&&t.length>1&&1===n.length&&(e=e.replace(/\n\n/g,"\n"))}const r=e.split("\n"),n=a.headers("key"===t?"null":t);if(r.length>5&&r[0].includes(n.begin)&&r[r.length-1].includes(String(n.end))&&!r.includes(""))for(let t=1;t<5;t++)if(!r[t].match(/^[a-zA-Z0-9\-_. ]+: .+$/)){if(r[t].match(/^[a-zA-Z0-9\/+]{32,77}$/)){e=`${r.slice(0,t).join("\n")}\n\n${r.slice(t).join("\n")}`;break}break}return e};static cryptoMsgPrepareForDecrypt=async e=>{if(!e.length)throw new Error("Encrypted message could not be parsed because no data was provided");const t=new n.Buf(e.slice(0,100)).toUtfStr("ignore"),r=t.includes(a.headers("encryptedMsg").begin),i=t.includes(a.headers("signedMsg").begin),o=r||i;if(i)return{isArmored:o,isCleartext:!0,message:await(0,s.readCleartextMessage)({cleartextMessage:new n.Buf(e).toUtfStr()})};if(r)return{isArmored:o,isCleartext:!1,message:await(0,s.readMessage)({armoredMessage:new n.Buf(e).toUtfStr()})};if(e instanceof Uint8Array)return{isArmored:o,isCleartext:!1,message:await(0,s.readMessage)({binaryMessage:e})};throw new Error("Message does not have armor headers")}}t.PgpArmor=a},2365(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PgpKey=void 0;const n=r(7659),i=r(1341),s=r(3313),a=r(102),o=r(178),c=r(6382),l=r(8659),u=r(3955),h=r(6471);class f{static create=async(e,t,r)=>{const n=await(0,c.generateKey)({userIDs:e,passphrase:r,format:"armored",curve:"curve25519"===t?"curve25519Legacy":void 0,rsaBits:"curve25519"===t?void 0:"rsa2048"===t?2048:4096});return{public:n.publicKey,private:n.privateKey,revCert:n.revocationCertificate}};static read=async e=>{const t=s.Store.armoredKeyCacheGet(e);if(t)return t;const r=await(0,c.readKey)({armoredKey:e});return r?.isPrivate()&&s.Store.armoredKeyCacheSet(e,r),r};static isPacketPrivate=e=>e instanceof c.SecretKeyPacket||e instanceof c.SecretSubkeyPacket;static validateAllDecryptedPackets=async e=>{for(const t of e.toPacketList().filter(f.isPacketPrivate))t.isDecrypted()&&await t.validate()};static decrypt=async(e,t,r,n)=>{if(!e.isPrivate())throw new Error("Nothing to decrypt in a public key");const i=e.getKeys(r).map(e=>e.keyPacket).filter(f.isPacketPrivate);if(!i.length)throw new Error(`No private key packets selected of${e.getKeys().map(e=>e.keyPacket).filter(f.isPacketPrivate).length} prv packets available`);for(const e of i){if(e.isDecrypted()){if("OK-IF-ALREADY-DECRYPTED"===n)continue;throw new Error("Decryption failed - key packet was already decrypted")}try{await e.decrypt(t),await e.validate()}catch(e){if(e instanceof Error&&e.message.toLowerCase().includes("passphrase"))return!1;throw e}}return!0};static encrypt=async(e,t)=>{if(!t||"undefined"===t||"null"===t)throw new Error(`Encryption passphrase should not be empty:${typeof t}:${t}`);const r=e.getKeys().map(e=>e.keyPacket).filter(f.isPacketPrivate),n=r.filter(e=>!e.isDecrypted()).length;if(!r.length)throw new Error("No private key packets in key to encrypt. Is this a private key?");if(n)throw new Error(`Cannot encrypt a key that has ${n} of ${r.length} private packets still encrypted`);await(0,c.encryptKey)({privateKey:e,passphrase:t})};static normalize=async e=>{try{let t=[];if(e=i.PgpArmor.normalize(e,"key"),RegExp(i.PgpArmor.headers("publicKey","re").begin).test(e))t=await(0,c.readKeys)({armoredKeys:e});else if(RegExp(i.PgpArmor.headers("privateKey","re").begin).test(e))t=await(0,c.readKeys)({armoredKeys:e});else if(RegExp(i.PgpArmor.headers("encryptedMsg","re").begin).test(e)){const r=await(0,c.readMessage)({armoredMessage:e});t=[new c.PublicKey(r.packets)]}for(const e of t)for(const t of e.users)await f.validateAllDecryptedPackets(e),t.otherCertifications=[];return{normalized:t.map(e=>e.armor()).join("\n"),keys:t}}catch(e){return n.Catch.reportErr(e),{normalized:"",keys:[],error:h.Str.extractErrorMessage(e)}}};static fingerprint=async e=>{if(e)if("string"==typeof e)try{return await f.fingerprint(await f.read(e))}catch(e){return e instanceof Error&&"openpgp is not defined"===e.message&&n.Catch.reportErr(e),void console.error(e)}else{if(!e.keyPacket.getFingerprintBytes())return;try{return e.keyPacket.getFingerprint().toUpperCase()}catch(e){return void console.error(e)}}};static longid=async e=>{if(e)return"string"==typeof e&&8===e.length?(0,o.strToHex)(e).toUpperCase():"string"==typeof e&&40===e.length?e.substr(-16):"string"==typeof e&&49===e.length?e.replace(/ /g,"").substr(-16):await f.longid(await f.fingerprint(e))};static longids=async e=>{const t=[];for(const r of e){const e=await f.longid(r.bytes);e&&t.push(e)}return t};static usable=async(e,t)=>{if(!await f.fingerprint(e))return!1;const r=await(0,c.readKey)({armoredKey:e});return!!r&&(!!await f.keyIsUsable(r,t)||await f.usableButExpired(r,t))};static expired=async e=>{if(!e)return!1;const t=await e.getExpirationTime();if(t===1/0||!t)return!1;if(t instanceof Date)return Date.now()>t.getTime();throw new Error(`Got unexpected value for expiration: ${t}`)};static usableButExpired=async(e,t)=>{if(!e)return!1;if(await f.keyIsUsable(e,t))return!1;const r=await f.dateBeforeExpiration(e);return void 0!==r&&f.keyIsUsable(e,t,r)};static dateBeforeExpiration=async e=>{const t="string"==typeof e?await f.read(e):e,r=await(0,o.getKeyExpirationTimeForCapabilities)(t,"encrypt");if(r instanceof Date&&r.getTime(){const{normalized:t,keys:r,error:n}=await f.normalize(e);return{original:e,normalized:t,keys:await Promise.all(r.map(f.details)),error:n}};static details=async e=>{const t=e.getKeys(),r=e.keyPacket.getAlgorithmInfo(),n={algorithm:r.algorithm,algorithmId:c.enums.publicKey[r.algorithm]};r.bits&&Object.assign(n,{bits:r.bits}),r.curve&&Object.assign(n,{curve:r.curve});const i=e.keyPacket.created.getTime()/1e3,s=await(0,o.getKeyExpirationTimeForCapabilities)(e,"encrypt"),u=s!==1/0&&s?s.getTime()/1e3:void 0,h=await f.lastSig(e)/1e3,A=[];for(const e of t){const t=e.getFingerprint().toUpperCase();if(t){const e=await f.longid(t);if(e){const r=e.substr(-8);A.push({fingerprint:t,longid:e,shortid:r,keywords:(0,a.mnemonic)(e)??""})}}}const d=e.toPublic().armor(),p={public:d,users:e.getUserIDs(),ids:A,algo:n,created:i,expiration:u,lastModified:h,revoked:e.revocationSignatures.length>0,usableForEncryption:await f.usable(d,"encrypt"),usableForSigning:await f.usable(d,"sign")};return e.isPrivate()&&Object.assign(p,{private:e.armor(),isFullyDecrypted:(0,l.isFullyDecrypted)(e),isFullyEncrypted:(0,l.isFullyEncrypted)(e)}),p};static lastSig=async e=>{const t=[];for(const r of e.users){const n={userID:r.userID,userAttribute:r.userAttribute,key:e};for(const i of r.selfCertifications)try{await i.verify(e.keyPacket,c.enums.signature.certGeneric,n),t.push(i)}catch(e){console.log(`PgpKey.lastSig: Skipping self-certification signature because it is invalid: ${String(e)}`)}}for(const r of e.subkeys)try{const e=await r.verify();t.push(e)}catch(e){console.log(`PgpKey.lastSig: Skipping subkey ${r.getKeyID().toHex()} because there is no valid binding signature: ${String(e)}`)}if(t.length>0)return Math.max(...t.map(e=>e.created?e.created.getTime():0));throw new Error("No valid signature found in key")};static revoke=async e=>{await e.isRevoked()||(e=(await(0,c.revokeKey)({key:e,format:"object"})).privateKey);const t=await e.getRevocationCertificate();if(t){if("string"==typeof t)return{key:e,revocationCertificate:t};{const r=await(0,u.requireStreamReadToEnd)();return{key:e,revocationCertificate:await r(t)}}}};static keyIsUsable=async(e,t,r)=>Boolean(await n.Catch.undefinedOnException("encrypt"===t?e.getEncryptionKey(void 0,r):e.getSigningKey(void 0,r)))}t.PgpKey=f},9379(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PgpMsg=t.FormatError=t.DecryptErrTypes=void 0;const n=r(2365),i=r(2633),s=r(6471),a=r(833),o=r(7659),c=r(9545),l=r(1341),u=r(3313),h=r(6382),f=r(8659),A=r(3955);var d;!function(e){e.keyMismatch="key_mismatch",e.usePassword="use_password",e.wrongPwd="wrong_password",e.noMdc="no_mdc",e.badMdc="bad_mdc",e.needPassphrase="need_passphrase",e.format="format",e.other="other"}(d||(t.DecryptErrTypes=d={}));class p extends Error{data;constructor(e,t){super(e),this.data=t}}t.FormatError=p;class g{static type=async({data:e})=>{if(!e||!e.length)return;const t=e[0];if(!(128&~t)){let e=0;if(e=192&~t?(60&t)/4:63&t,Object.values(h.enums.packet).includes(e)){const t=h.enums.packet;return{armored:!1,type:[t.symEncryptedIntegrityProtectedData,t.modificationDetectionCode,t.aeadEncryptedData,t.symmetricallyEncryptedData,t.compressedData].includes(e)?"encryptedMsg":"publicKey"}}}const{blocks:r}=c.MsgBlockParser.detectBlocks(new a.Buf(e.slice(0,50)).toUtfStr().trim());return 1===r.length&&!1===r[0].complete&&["encryptedMsg","privateKey","publicKey","signedMsg"].includes(r[0].type)?{armored:!0,type:r[0].type}:void 0};static sign=async(e,t,r=!1)=>{const n=await(0,h.createCleartextMessage)({text:t});return await(0,h.sign)({message:n,signingKeys:e,detached:r,format:"armored"})};static verify=async(e,t)=>{const r={match:null};try{const i=Array.isArray(e)?e:await e.verify(t);for(const e of i)r.signer||(r.signer=await n.PgpKey.longid(e.keyID.bytes)),r.match=(!0===r.match||null===r.match)&&await e.verified}catch(e){r.match=null,e instanceof Error&&"Can only verify message with one literal data packet."===e.message?r.error="FlowCrypt is not equipped to verify this message (err 101)":(r.error=e.message,o.Catch.reportErr(e))}return r};static verifyDetached=async({plaintext:e,sigText:t,verificationPubkeys:r})=>{const n=await(0,h.createMessage)({text:a.Buf.fromUint8(e).toUtfStr()});await n.appendSignature(a.Buf.fromUint8(t).toUtfStr());const i=await g.getSortedKeys([],n);if(r)for(const e of r){const t=await(0,h.readKeys)({armoredKeys:e});i.forVerification.push(...t)}return await g.verify(n,i.forVerification)};static decrypt=async({kisWithPp:e,encryptedData:t,msgPwd:r,verificationPubkeys:n})=>{let i;const s={message:[],matching:[],chosen:[],needPassphrase:[]};try{i=await l.PgpArmor.cryptoMsgPrepareForDecrypt(t)}catch(e){return{success:!1,error:{type:d.format,message:String(e)},longids:s}}const o=await g.getSortedKeys(e,i.message,n);s.message=o.encryptedFor,s.matching=o.prvForDecrypt.map(e=>e.longid),s.chosen=o.prvForDecryptDecrypted.map(e=>e.longid),s.needPassphrase=o.prvForDecryptWithoutPassphrases.map(e=>e.longid);const c=!i.isCleartext;if(!c){const e=await g.verify(i.message,o.forVerification),t=await(0,A.requireStreamReadToEnd)(),r=await t(i.message.getText()??"");return{success:!0,content:a.Buf.fromUtfStr(r),isEncrypted:c,signature:e}}if(!o.prvMatching.length&&!r)return{success:!1,error:{type:d.keyMismatch,message:"Missing appropriate key"},message:i.message,longids:s,isEncrypted:c};if(!o.prvForDecryptDecrypted.length&&!r)return{success:!1,error:{type:d.needPassphrase,message:"Missing pass phrase"},message:i.message,longids:s,isEncrypted:c};try{const e=i.message.packets,t=e.filterByTag(h.enums.packet.symEncryptedSessionKey).length>0,l=e.filterByTag(h.enums.packet.publicKeyEncryptedSessionKey).length>0;if(t&&!l&&!r)return{success:!1,error:{type:d.usePassword,message:"Use message password"},longids:s,isEncrypted:c};const u=r?[r]:void 0,f=o.prvForDecryptDecrypted.map(e=>e.decrypted),p=await i.message.decrypt(f,u);await g.cryptoMsgGetSignedBy(p,o),await g.populateKeysForVerification(o,n);const y=o.signedBy.length?await p.verify(o.forVerification):void 0,m=await(0,A.requireStreamReadToEnd)(),w=new a.Buf(await m(p.getLiteralData())),b=y?await g.verify(y,[]):void 0;if(!i.isCleartext&&i.message.packets.filterByTag(h.enums.packet.symmetricallyEncryptedData).length){const e="Security threat!\n\nMessage is missing integrity checks (MDC). The sender should update their outdated software and resend.";return{success:!1,content:w,error:{type:d.noMdc,message:e},message:i.message,longids:s,isEncrypted:c}}return{success:!0,content:w,isEncrypted:c,filename:p.getFilename()||void 0,signature:b}}catch(e){return{success:!1,error:g.cryptoMsgDecryptCategorizeErr(e,r),message:i.message,longids:s,isEncrypted:c}}};static encrypt=async({pubkeys:e,signingPrv:t,pwd:r,data:n,filename:i,armor:s,date:a})=>{if(!e&&!r)throw new Error("no-pubkeys-no-challenge");const o=await(0,h.createMessage)({binary:n,filename:i,date:a}),c=[];for(const t of e){const e=await(0,h.readKeys)({armoredKeys:t});c.push(...e)}const l={message:o,date:a,encryptionKeys:c,passwords:r?[r]:void 0,signingKeys:t&&t.isPrivate()?t:void 0};return s||Object.assign(l,{format:"binary"}),await(0,h.encrypt)(l)};static extractFcAtts=(e,t)=>(e.includes('class="cryptup_file"')&&(e=e.replace(/[^<]+<\/a>\n?/gm,(e,r,n)=>{const a=s.Str.htmlAttrDecode(String(n));return g.isFcAttLinkData(a)&&t.push(i.MsgBlock.fromAtt("encryptedAttLink","",{type:a.type,name:a.name,length:a.size,url:String(r)})),""})),e);static stripFcTeplyToken=e=>e.replace(/]+class="cryptup_reply"[^>]+><\/div>/,"");static stripPublicKeys=(e,t)=>{let{blocks:r,normalized:n}=c.MsgBlockParser.detectBlocks(e);for(const e of r)if("publicKey"===e.type){const r=e.content.toString();t.push(r),n=n.replace(r,"")}return n};static isFcAttLinkData=e=>e&&"object"==typeof e&&void 0!==e.name&&void 0!==e.size&&void 0!==e.type;static cryptoMsgGetSignedBy=async(e,t)=>{t.signedBy=s.Value.arr.unique(await n.PgpKey.longids(e.getSigningKeyIDs?e.getSigningKeyIDs():[]))};static populateKeysForVerification=async(e,t)=>{if(void 0!==t){e.forVerification=[];for(const r of t){const t=await(0,h.readKeys)({armoredKeys:r});e.forVerification.push(...t)}}};static getSortedKeys=async(e,t,r)=>{const i={forVerification:[],encryptedFor:[],signedBy:[],prvMatching:[],prvForDecrypt:[],prvForDecryptDecrypted:[],prvForDecryptWithoutPassphrases:[]},s=t instanceof h.Message?t.getEncryptionKeyIDs():[];if(i.encryptedFor=await n.PgpKey.longids(s),await g.cryptoMsgGetSignedBy(t,i),await g.populateKeysForVerification(i,r),i.encryptedFor.length){for(const t of e){t.parsed=await n.PgpKey.read(t.private);for(const e of await Promise.all(t.parsed.getKeyIDs().map(({bytes:e})=>n.PgpKey.longid(e))))if(i.encryptedFor.includes(e)){i.prvMatching.push(t);break}}i.prvForDecrypt=i.prvMatching}else i.prvForDecrypt=[];for(const e of i.prvForDecrypt){if(!e.parsed||!e.passphrase)continue;const t=g.matchingKeyids(e.parsed,s),r=u.Store.decryptedKeyCacheGet(e.longid);r&&g.isKeyDecryptedFor(r,t)?(e.decrypted=r,i.prvForDecryptDecrypted.push(e)):g.isKeyDecryptedFor(e.parsed,t)||!0===await g.decryptKeyFor(e.parsed,e.passphrase,t)?(u.Store.decryptedKeyCacheSet(e.parsed),e.decrypted=e.parsed,i.prvForDecryptDecrypted.push(e)):i.prvForDecryptWithoutPassphrases.push(e)}return i};static matchingKeyids=(e,t)=>{const r=(t||[]).map(e=>e.bytes);return e.getKeyIDs().filter(e=>r.includes(e.bytes))};static decryptKeyFor=async(e,t,r)=>{if(!r.length)return await n.PgpKey.decrypt(e,t,void 0,"OK-IF-ALREADY-DECRYPTED");for(const i of r)if(!await n.PgpKey.decrypt(e,t,i,"OK-IF-ALREADY-DECRYPTED"))return!1;return!0};static isKeyDecryptedFor=(e,t)=>!!(0,f.isFullyDecrypted)(e)||!(0,f.isFullyEncrypted)(e)&&!!t.length&&t.filter(t=>(0,f.isPacketDecrypted)(e,t)).length===t.length;static cryptoMsgDecryptCategorizeErr=(e,t)=>{const r=String(e).replace("Error: ","").replace("Error decrypting message: ","");return["Cannot read property 'isDecrypted' of null","privateKeyPacket is null","TypeprivateKeyPacket is null","Session key decryption failed.","Invalid session key for decryption."].includes(r)&&!t?{type:d.keyMismatch,message:r}:t&&["Invalid enum value.","CFB decrypt: invalid key","Session key decryption failed."].includes(r)?{type:d.wrongPwd,message:r}:"Decryption failed due to missing MDC in combination with modern cipher."===r||"Decryption failed due to missing MDC."===r?{type:d.noMdc,message:r}:"Decryption error"===r?{type:d.format,message:r}:"Modification detected."===r?{type:d.badMdc,message:"Security threat - opening this message is dangerous because it was modified in transit."}:{type:d.other,message:r}}}t.PgpMsg=g},5261(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PgpPwd=void 0;class r{static CRACK_GUESSES_PER_SECOND=8e7;static CRACK_TIME_WORDS_PWD=[{match:"millenni",word:"perfect",bar:100,color:"green",pass:!0},{match:"centu",word:"perfect",bar:95,color:"green",pass:!0},{match:"year",word:"great",bar:80,color:"orange",pass:!0},{match:"month",word:"good",bar:70,color:"darkorange",pass:!0},{match:"week",word:"good",bar:30,color:"darkred",pass:!0},{match:"day",word:"reasonable",bar:40,color:"darkorange",pass:!0},{match:"hour",word:"bare minimum",bar:20,color:"darkred",pass:!0},{match:"minute",word:"poor",bar:15,color:"red",pass:!1},{match:"",word:"weak",bar:10,color:"red",pass:!1}];static CRACK_TIME_WORDS_PASS_PHRASE=[{match:"millenni",word:"perfect",bar:100,color:"green",pass:!0},{match:"centu",word:"great",bar:80,color:"green",pass:!0},{match:"year",word:"good",bar:60,color:"orange",pass:!0},{match:"month",word:"reasonable",bar:40,color:"darkorange",pass:!0},{match:"week",word:"poor",bar:30,color:"darkred",pass:!1},{match:"day",word:"poor",bar:20,color:"darkred",pass:!1},{match:"",word:"weak",bar:10,color:"red",pass:!1}];static estimateStrength=(e,t="passphrase")=>{const n=e/r.CRACK_GUESSES_PER_SECOND;for(const e of"pwd"===t?r.CRACK_TIME_WORDS_PWD:r.CRACK_TIME_WORDS_PASS_PHRASE){const t=r.readableCrackTime(n);if(t.includes(e.match))return{word:e,seconds:Math.round(n),time:t}}throw Error("(thrown) estimate_strength: got to end without any result")};static weakWords=()=>["crypt","up","cryptup","flow","flowcrypt","encryption","pgp","email","set","backup","passphrase","best","pass","phrases","are","long","and","have","several","words","in","them","Best pass phrases are long","have several words","in them","bestpassphrasesarelong","haveseveralwords","inthem","Loss of this pass phrase","cannot be recovered","Note it down","on a paper","lossofthispassphrase","cannotberecovered","noteitdown","onapaper","setpassword","set password","set pass word","setpassphrase","set pass phrase","set passphrase"];static readableCrackTime=e=>{const t=e=>e>1?"s":"";e=Math.round(e);const r=Math.round(e/31104e8);if(r)return 1===r?"a millennium":"millennia";const n=Math.round(e/31104e5);if(n)return 1===n?"a century":"centuries";const i=Math.round(e/31104e3);if(i)return i+" year"+t(i);const s=Math.round(e/2592e3);if(s)return s+" month"+t(s);const a=Math.round(e/604800);if(a)return a+" week"+t(a);const o=Math.round(e/86400);if(o)return o+" day"+t(o);const c=Math.round(e/3600);if(c)return c+" hour"+t(c);const l=Math.round(e/60);if(l)return l+" minute"+t(l);const u=e%60;return u?u+" second"+t(u):"less than a second"}}t.PgpPwd=r},8659(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isPacketDecrypted=t.isFullyEncrypted=t.isFullyDecrypted=void 0;const n=r(2365),i=r(9815),s=r(6382);s.config.versionString=`FlowCrypt ${i.VERSION} Gmail Encryption`,s.config.commentString="Seamlessly send and receive encrypted email",s.config.allowUnauthenticatedMessages=!0,s.config.allowUnauthenticatedStream=!0;const a=e=>{if(!e.isPrivate())throw new Error("Cannot check encryption status of secret keys in a Public Key");const t=e.getKeys().map(e=>e.keyPacket).filter(n.PgpKey.isPacketPrivate);if(!t.length)throw new Error("This key has no private packets. Is it a Private Key?");const r=t.filter(e=>!e.isDummy());if(!r.length)throw new Error("This key only has a gnu-dummy private packet, with no actual secret keys.");return r};t.isFullyDecrypted=e=>a(e).every(e=>!0===e.isDecrypted()),t.isFullyEncrypted=e=>a(e).every(e=>!1===e.isDecrypted()),t.isPacketDecrypted=(e,t)=>{if(!e.isPrivate())throw new Error("Cannot check packet encryption status of secret key in a Public Key");if(!t)throw new Error("No KeyID provided to isPacketDecrypted");const[r]=e.getKeys(t);if(!r)throw new Error("KeyID not found in Private Key");return!0===r.keyPacket.isDecrypted()}},9033(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getSigningPrv=t.Endpoints=void 0;const n=r(1592),i=r(9379),s=r(2365),a=r(4010),o=r(3207),c=r(833),l=r(9545),u=r(5261),h=r(3313),f=r(6471),A=r(9815),d=r(6364),p=r(6622),g=r(6382);t.Endpoints=class{version=async()=>(0,n.fmtRes)({app_version:A.VERSION});setClientConfiguration=async e=>{const{shouldHideArmorMeta:t}=d.ValidateInput.setClientConfiguration(e);return g.config.showVersion=!t,g.config.showComment=!t,(0,n.fmtRes)({})};generateKey=async e=>{h.Store.keyCacheWipe();const{passphrase:t,userIds:r,variant:i}=d.ValidateInput.generateKey(e);if(t.length<12)throw new Error("Pass phrase length seems way too low! Pass phrase strength should be properly checked before encrypting a key.");const a=await s.PgpKey.create(r,i,t);return(0,n.fmtRes)({key:await s.PgpKey.details(await s.PgpKey.read(a.private))})};composeEmail=async e=>{const r=d.ValidateInput.composeEmail(e),s={to:r.to,from:r.from,subject:r.subject,cc:r.cc,bcc:r.bcc};if(r.replyToMsgId&&(s["in-reply-to"]=r.replyToMsgId,s.references=[r.inReplyTo,r.replyToMsgId].filter(e=>!!e).join(" ")),"plain"===r.format){const e=(r.atts||[]).map(({name:e,type:t,base64:r})=>new o.Att({name:e,type:t,data:c.Buf.fromBase64Str(r)})),t={"text/plain":r.text};return r.html&&(t["text/html"]=r.html),(0,n.fmtRes)({},c.Buf.fromUtfStr(await a.Mime.encode(t,s,e)))}if("encryptInline"===r.format){const e=[];for(const t of r.atts||[])if("application/pgp-keys"===t.type)e.push(new o.Att({name:t.name,type:t.type,data:c.Buf.fromBase64Str(t.base64)}));else{const n=await i.PgpMsg.encrypt({pubkeys:r.pubKeys,data:c.Buf.fromBase64Str(t.base64),filename:t.name,armor:!1});e.push(new o.Att({name:`${t.name}.pgp`,type:"application/pgp-encrypted",data:n}))}const l=await(0,t.getSigningPrv)(r),u=await i.PgpMsg.encrypt({pubkeys:r.pubKeys,signingPrv:l,data:c.Buf.fromUtfStr(r.text),armor:!0});return(0,n.fmtRes)({},c.Buf.fromUtfStr(await a.Mime.encode({"text/plain":u},s,e)))}throw new Error(`Unknown format: ${r.format}`)};encryptMsg=async(e,t)=>{const r=d.ValidateInput.encryptMsg(e),s=await i.PgpMsg.encrypt({pubkeys:r.pubKeys,pwd:r.msgPwd,data:c.Buf.concat(t),armor:!0});return(0,n.fmtRes)({},c.Buf.fromUtfStr(s))};encryptFile=async(e,t)=>{const r=d.ValidateInput.encryptFile(e),s=await i.PgpMsg.encrypt({pubkeys:r.pubKeys,data:c.Buf.concat(t),filename:r.name,armor:!1});return(0,n.fmtRes)({},s)};sanitizeHtml=async e=>{const{html:t}=d.ValidateInput.sanitizeHtml(e),r=p.Xss.htmlSanitizeKeepBasicTags(t);return(0,n.fmtRes)({sanitizedHtml:r})};parseDecryptMsg=async(e,t)=>{const{keys:r,msgPwd:o,isMime:u,verificationPubkeys:h}=d.ValidateInput.parseDecryptMsg(e),A=[];let g,y;if(u){const{blocks:e,rawSignedContent:r,headers:n}=await a.Mime.process(c.Buf.concat(t));y=String(n.subject),g=r,A.push(...e)}else{const{blocks:e}=l.MsgBlockParser.detectBlocks(c.Buf.concat(t).toString());A.push(...e)}const m=[];for(const e of A)if("signedMsg"!==e.type&&"signedHtml"!==e.type||!e.signature)if("encryptedMsg"===e.type||"signedMsg"===e.type){const t=await i.PgpMsg.decrypt({kisWithPp:r,msgPwd:o,encryptedData:c.Buf.with(e.content),verificationPubkeys:h});if(t.success)if(t.isEncrypted){const e=await l.MsgBlockParser.fmtDecryptedAsSanitizedHtmlBlocks(t.content,t.signature);m.push(...e.blocks),y=e.subject||y}else m.push({type:"verifiedMsg",content:f.Str.asEscapedHtml(t.content.toUtfStr()),complete:!0,verifyRes:t.signature});else delete t.message,m.push({type:"decryptErr",content:t.error.type===i.DecryptErrTypes.noMdc?t.content?.toUtfStr()??"":e.content.toString(),decryptErr:t,complete:!0})}else if("encryptedAtt"===e.type&&e.attMeta&&/^(0x)?[A-Fa-f0-9]{16,40}\.asc\.pgp$/.test(e.attMeta.name||"")){const t=await i.PgpMsg.decrypt({kisWithPp:r,msgPwd:o,encryptedData:c.Buf.with(e.attMeta.data||""),verificationPubkeys:h});t.content?m.push({type:"publicKey",content:t.content.toString(),complete:!0}):m.push(e)}else m.push(e);else{const t=await i.PgpMsg.verifyDetached({sigText:c.Buf.fromUtfStr(e.signature),plaintext:c.Buf.with(g||e.content),verificationPubkeys:h});"signedHtml"===e.type?m.push({type:"verifiedMsg",content:p.Xss.htmlSanitizeKeepBasicTags(e.content.toString()),verifyRes:t,complete:!0}):m.push({type:"verifiedMsg",content:f.Str.asEscapedHtml(e.content.toString()),verifyRes:t,complete:!0})}const w=[],b=[];let E="plain";for(const e of m)if(e.content instanceof c.Buf?e.content=(0,n.isContentBlock)(e.type)?e.content.toUtfStr():e.content.toRawBytesStr():e.attMeta&&e.attMeta.data instanceof Uint8Array&&(e.attMeta.data=c.Buf.fromUint8(e.attMeta.data).toBase64Str()),e.decryptErr?.content instanceof c.Buf&&(e.decryptErr.content=e.decryptErr.content.toUtfStr()),"decryptedHtml"!==e.type&&"decryptedText"!==e.type&&"decryptedAtt"!==e.type||(E="encrypted"),"publicKey"===e.type)if(e.keyDetails)b.push(e);else{const{keys:t}=await s.PgpKey.normalize(e.content);if(t.length)for(const e of t)b.push({type:"publicKey",content:e.armor(),complete:!0,keyDetails:await s.PgpKey.details(e)});else b.push({type:"decryptErr",content:e.content,complete:!0,decryptErr:{success:!1,error:{type:i.DecryptErrTypes.format,message:"Badly formatted public key"},longids:{message:[],matching:[],chosen:[],needPassphrase:[]}}})}else(0,n.isContentBlock)(e.type)||a.Mime.isPlainImgAtt(e)?w.push(e):b.push(e);const{contentBlock:v,text:k}=(0,n.fmtContentBlock)(w);b.unshift(v);const I=c.Buf.fromUtfStr(b.map(e=>JSON.stringify(e,(e,t)=>"content"===e&&t.length>1e5?"":t)).join("\n")),B={text:k,replyType:E};return y&&Object.assign(B,{subject:y}),(0,n.fmtRes)(B,I)};parseAttachmentType=async e=>{const{atts:t}=d.ValidateInput.parseAttachmentType(e),r=t.map(e=>{const t=new o.Att(e);return{id:t.id,treatAs:t.treatAs([t])}});return(0,n.fmtRes)({atts:r})};decryptFile=async(e,t,r)=>{const{keys:s,msgPwd:a}=d.ValidateInput.decryptFile(e),o=await i.PgpMsg.decrypt({kisWithPp:s,encryptedData:c.Buf.concat(t),msgPwd:a,verificationPubkeys:r});return o.success?(0,n.fmtRes)({decryptSuccess:{name:o.filename||""}},o.content):(delete o.message,delete o.content,(0,n.fmtRes)({decryptErr:o}))};zxcvbnStrengthBar=async e=>{const t=d.ValidateInput.zxcvbnStrengthBar(e);if("passphrase"===t.purpose){if("number"==typeof t.guesses)return(0,n.fmtRes)(u.PgpPwd.estimateStrength(t.guesses));if("string"==typeof t.value){if("function"!=typeof window.zxcvbn)throw new Error("window.zxcvbn missing in js");const e=window.zxcvbn(t.value,u.PgpPwd.weakWords()).guesses;return(0,n.fmtRes)(u.PgpPwd.estimateStrength(e))}throw new Error("Unexpected format: guesses is not a number, value is not a string")}throw new Error(`Unknown purpose: ${t.purpose}`)};parseKeys=async(e,t)=>{const r=[],a=c.Buf.concat(t),o=await i.PgpMsg.type({data:a});if(!o)return(0,n.fmtRes)({format:"unknown",keyDetails:r});if(o.armored){const{blocks:e}=l.MsgBlockParser.detectBlocks(a.toString());for(const t of e){const{keys:e}=await s.PgpKey.parse(t.content.toString());r.push(...e)}for(const e of r)(0,n.removeUndefinedValues)(e);return(0,n.fmtRes)({format:"armored",keyDetails:r})}const u=await(0,g.readKeys)({binaryKeys:a});for(const e of u)r.push(await s.PgpKey.details(e));for(const e of r)(0,n.removeUndefinedValues)(e);return(0,n.fmtRes)({format:"binary",keyDetails:r})};isEmailValid=async e=>{const{email:t}=d.ValidateInput.isEmailValid(e);return(0,n.fmtRes)({valid:f.Str.isEmailValid(t)})};decryptKey=async e=>{h.Store.keyCacheWipe();const{armored:t,passphrases:r}=d.ValidateInput.decryptKey(e);if(1!==r.length)throw new Error(`decryptKey: Can only accept exactly 1 pass phrase for decrypt, received: ${r.length}`);const i=await(0,d.readArmoredKeyOrThrow)(t);return await s.PgpKey.decrypt(i,r[0])?(0,n.fmtRes)({decryptedKey:i.armor()}):(0,n.fmtRes)({decryptedKey:void 0})};encryptKey=async e=>{h.Store.keyCacheWipe();const{armored:t,passphrase:r}=d.ValidateInput.encryptKey(e),i=await(0,d.readArmoredKeyOrThrow)(t);if(!r||r.length<12)throw new Error("Pass phrase length seems way too low! Pass phrase strength should be properly checked before encrypting a key.");const s=await(0,g.encryptKey)({privateKey:i,passphrase:r});return(0,n.fmtRes)({encryptedKey:s.armor()})};verifyKey=async e=>{const{armored:t}=d.ValidateInput.verifyKey(e),r=await(0,g.readKey)({armoredKey:t});return await r.verifyPrimaryKey(),(0,n.fmtRes)({})};keyCacheWipe=async()=>(h.Store.keyCacheWipe(),(0,n.fmtRes)({}))},t.getSigningPrv=async e=>{if(!e.signingPrv)return;const t=await(0,d.readArmoredKeyOrThrow)(e.signingPrv.private);if(await s.PgpKey.decrypt(t,e.signingPrv.passphrase||""))return t;throw new Error("Fail to decrypt signing key")}},1592(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.removeUndefinedValues=t.fmtErr=t.fmtRes=t.fmtContentBlock=t.stripHtmlRootTags=t.isContentBlock=void 0;const n=r(2633),i=r(4010),s=r(6471),a=r(6622);t.isContentBlock=e=>"plainText"===e||"decryptedText"===e||"plainHtml"===e||"decryptedHtml"===e||"signedMsg"===e||"verifiedMsg"===e;const o=(e,t)=>{let r;return r="green"===t?"border: 1px solid #f0f0f0;border-left: 8px solid #31A217;border-right: none;' +\n 'background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAABaCAMAAAAPdrEwAAAAh1BMVEXw8PD////w8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PD7MuHIAAAALXRSTlMAAAECBAcICw4QEhUZIyYqMTtGTV5kdn2Ii5mfoKOqrbG0uL6/xcnM0NTX2t1l7cN4AAAB0UlEQVR4Ae3Y3Y4SQRCG4bdHweFHRBTBH1FRFLXv//qsA8kmvbMdXhh2Q0KfknpSCQc130c67s22+e9+v/+d84fxkSPH0m/+5P9vN7vRV0vPfx7or1NB23e99KAHuoXOOc6moQsBwNN1Q9g4Wdh1uq3MA7Qn0+2ylAt7WbWpyT+Wo8roKH6v2QhZ2ghZ2ghZ2ghZ2ghZ2ghZ2ghZ2ghZ2ghZ2ghZ2ghZ2ghZ2ghZ2gjZ2AUNOLmwgQdogEJ2dnF3UJdU3WjqO/u96aYtVd/7jqvIyu76G5se6GaY7tNNcy5d7se7eWVnDz87fMkuVuS8epF6f9NPObPY5re9y4N1/vya9Gr3se2bfvl9M0mkyZdv077p+a/3z4Meby5Br4NWiV51BaiUqfLro9I3WiR61RVcffwfXI7u5zZ20EOA82Uu8x3SlrSwXQuBSvSqK0AletUVoBK96gpIwlZy0MJWctDCVnLQwlZy0MJWctDCVnLQwlZy0MJWctDCVnLQwlZy0MJWctDCVnLQwlZy0MJWckIletUVIJJxITN6wtZd2EI+0NquyIJOnUpFVvRpcwmV6FVXgEr0qitAJXrVFaASveoKUIledQWoRK+6AlSiV13BP+/VVbky7Xq1AAAAAElFTkSuQmCC);":"red"===t?"border: 1px solid #f0f0f0;border-left: 8px solid #d14836;border-right: none;":"plain"===t?"border: none;":"border: 1px solid #f0f0f0;border-left: 8px solid #989898;border-right: none;",`
${a.Xss.htmlSanitizeKeepBasicTags(e)}
\x3c!-- next MsgBlock --\x3e\n`};t.stripHtmlRootTags=e=>(e=(e=(e=e.replace(/<\/?html[^>]*>/g,"")).replace(/]*>.*<\/head>/g,"")).replace(/<\/?body[^>]*>/g,"")).trim();const c=(e,t)=>e.replace(/src="cid:([^"]+)"/g,(e,r)=>{const n=t[r];if(n){const e=`src="data:${n.attMeta?.type};base64,${n.attMeta?.data}"`;return delete t[r],e}return e});t.fmtContentBlock=e=>{const r=[],l=[],u=e.filter(e=>!i.Mime.isPlainImgAtt(e)),h=[],f={};for(const t of e.filter(e=>i.Mime.isPlainImgAtt(e)))t.attMeta?.cid?f[t.attMeta.cid.replace(/>$/,"").replace(/^0&&p!==u.length&&(A.partial=!0));for(const e of h.concat(Object.values(f))){const t=`${e.attMeta?.name||"(unnamed image)"} - ${e.attMeta?.length??0}kb`,n=`${a.Xss.escape(t)} `;r.push(o(n,"plain")),l.push(`[image: ${t}]\n`)}const g=n.MsgBlock.fromContent("plainHtml",`\n \n \n \n \n \n ${r.join("")}\n `);return g.verifyRes=A,{contentBlock:g,text:l.join("").trim()}},t.fmtRes=(e,t)=>({json:e,data:t||new Uint8Array(0)}),t.fmtErr=e=>(0,t.fmtRes)({error:{message:String(e),stack:e&&"object"==typeof e&&e.stack||""}}),t.removeUndefinedValues=e=>{for(const t in e)void 0===e[t]&&delete e[t]}},6364(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.readArmoredKeyOrThrow=t.ValidateInput=void 0;const n=r(6382);t.ValidateInput=class{static setClientConfiguration=e=>{if(i(e)&&s(e,"shouldHideArmorMeta","boolean?"))return e;throw new Error("Wrong request structure for NodeRequest.setClientConfiguration")};static generateKey=e=>{if(i(e)&&s(e,"userIds","Userid[]")&&e.userIds.length&&s(e,"passphrase","string")&&["rsa2048","rsa4096","curve25519"].includes(e.variant))return e;throw new Error("Wrong request structure for NodeRequest.generateKey")};static encryptMsg=e=>{if(i(e)&&s(e,"pubKeys","string[]")&&s(e,"msgPwd","string?"))return e;throw new Error("Wrong request structure for NodeRequest.encryptMsg")};static composeEmail=e=>{if(!(i(e)&&s(e,"text","string")&&s(e,"html","string?")&&s(e,"from","string")&&s(e,"subject","string")&&s(e,"to","string[]")&&s(e,"cc","string[]")&&s(e,"bcc","string[]")))throw new Error("Wrong request structure for NodeRequest.composeEmail, need: text,from,subject,to,cc,bcc,atts (can use empty arr for cc/bcc, and can skip atts)");if(!s(e,"atts","ComposeAttachment[]?"))throw new Error("Wrong atts structure for NodeRequest.composeEmail, need: {name, type, base64}");if(s(e,"pubKeys","string[]")&&s(e,"signingPrv","PrvKeyInfo?")&&e.pubKeys.length&&("encryptInline"===e.format||"encryptPgpmime"===e.format))return e;if(!e.pubKeys&&"plain"===e.format)return e;throw new Error("Wrong choice of pubKeys and format. Either pubKeys:[..]+format:encryptInline OR format:plain allowed")};static parseDecryptMsg=e=>{if(i(e)&&s(e,"keys","PrvKeyInfo[]")&&s(e,"msgPwd","string?")&&s(e,"isMime","boolean?")&&s(e,"verificationPubkeys","string[]?"))return e;throw new Error("Wrong request structure for NodeRequest.parseDecryptMsg")};static sanitizeHtml=e=>{if(i(e)&&s(e,"html","string"))return e;throw new Error("Wrong request structure for NodeRequest.sanitizeHtml")};static encryptFile=e=>{if(i(e)&&s(e,"pubKeys","string[]")&&s(e,"name","string"))return e;throw new Error("Wrong request structure for NodeRequest.encryptFile")};static parseAttachmentType=e=>{if(i(e)&&s(e,"atts","Attachment[]"))return e;throw new Error("Wrong request structure for NodeRequest.parseAttachmentType")};static decryptFile=e=>{if(i(e)&&s(e,"keys","PrvKeyInfo[]")&&s(e,"msgPwd","string?"))return e;throw new Error("Wrong request structure for NodeRequest.decryptFile")};static zxcvbnStrengthBar=e=>{if(i(e)&&s(e,"guesses","number")&&s(e,"purpose","string")&&"passphrase"===e.purpose)return e;if(i(e)&&s(e,"value","string")&&s(e,"purpose","string")&&"passphrase"===e.purpose)return e;throw new Error("Wrong request structure for NodeRequest.zxcvbnStrengthBar")};static isEmailValid=e=>{if(i(e)&&s(e,"email","string"))return e;throw new Error("Wrong request structure for NodeRequest.isEmailValid")};static decryptKey=e=>{if(i(e)&&s(e,"armored","string")&&s(e,"passphrases","string[]"))return e;throw new Error("Wrong request structure for NodeRequest.decryptKey")};static encryptKey=e=>{if(i(e)&&s(e,"armored","string")&&s(e,"passphrase","string"))return e;throw new Error("Wrong request structure for NodeRequest.encryptKey")};static verifyKey=e=>{if(i(e)&&s(e,"armored","string"))return e;throw new Error("Wrong request structure for NodeRequest.verifyKey")}};const i=e=>!!e&&"object"==typeof e,s=(e,t,r)=>{if(!i(e))return!1;const n=e[t];return"number"===r||"string"===r?typeof n===r:"boolean?"===r?"boolean"==typeof n||void 0===n:"string?"===r?null===n?(e[t]=void 0,!0):"string"==typeof n||void 0===n:"ComposeAttachment[]?"===r?void 0===n||Array.isArray(n)&&n.filter(e=>s(e,"name","string")&&s(e,"type","string")&&s(e,"base64","string")).length===n.length:"Attachment[]"===r?Array.isArray(n)&&n.filter(e=>s(e,"id","string")&&s(e,"msgId","string")&&s(e,"name","string")&&s(e,"type","string?")).length===n.length:"string[]"===r?Array.isArray(n)&&n.filter(e=>"string"==typeof e).length===n.length:"string[]?"===r?void 0===n||Array.isArray(n)&&n.filter(e=>"string"==typeof e).length===n.length:"PrvKeyInfo?"===r?null===n?(e[t]=void 0,!0):void 0===n||s(n,"private","string")&&s(n,"longid","string")&&s(n,"passphrase","string?"):"PrvKeyInfo[]"===r?Array.isArray(n)&&n.filter(e=>s(e,"private","string")&&s(e,"longid","string")&&s(e,"passphrase","string?")).length===n.length:"Userid[]"===r?Array.isArray(n)&&n.filter(e=>s(e,"name","string")&&s(e,"email","string")).length===n.length:"object"===r&&i(n)};t.readArmoredKeyOrThrow=async e=>{const t=await(0,n.readKey)({armoredKey:e});if(!t)throw new Error("No key found");return t}},7659(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Catch=void 0,t.Catch=class{static reportErr=e=>{console.error(e)};static report=(e,t)=>{console.error(e,t)};static undefinedOnException=async e=>{try{return await e}catch(e){return}}}},3955(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.requireIso88592=t.requireMimeBuilder=t.requireMimeParser=t.requireStreamReadToEnd=void 0,t.requireStreamReadToEnd=async()=>"not node"===(globalThis.process?.release?.name||"not node")?(await Promise.resolve().then(()=>r(9275))).readToEnd:r(1558).readToEnd,t.requireMimeParser=()=>r.g["emailjs-mime-parser"],t.requireMimeBuilder=()=>r.g["emailjs-mime-builder"],t.requireIso88592=()=>r.g.iso88592},3313(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Store=void 0;const n=r(178);let i,s={};class a{static decryptedKeyCacheSet=e=>{a.keyCacheRenewExpiry(),s[(e=>(0,n.strToHex)(e.getKeyID().bytes).toUpperCase())(e)]=e};static decryptedKeyCacheGet=e=>(a.keyCacheRenewExpiry(),s[e]);static armoredKeyCacheSet=(e,t)=>{a.keyCacheRenewExpiry(),s[e]=t};static armoredKeyCacheGet=e=>(a.keyCacheRenewExpiry(),s[e]);static keyCacheWipe=()=>{s={}};static keyCacheRenewExpiry=()=>{i&&clearTimeout(i),i=setTimeout(a.keyCacheWipe,12e4)}}t.Store=a},178(e,t,r){"use strict";var n=r(8969);Object.defineProperty(t,"__esModule",{value:!0}),t.getKeyExpirationTimeForCapabilities=t.strToHex=t.iso2022jpToUtf=t.base64decode=t.base64encode=void 0;const i=r(8287);t.base64encode=e=>i.Buffer.from(e,"binary").toString("base64"),t.base64decode=e=>i.Buffer.from(e,"base64").toString("binary"),t.iso2022jpToUtf=e=>n.convert(e,{to:"UTF8",from:"JIS",type:"string"}),t.strToHex=e=>{if(null===e)return"";const t=[],r=e.length;let n,i=0;for(;i{let t=null;for(const r of e)(null===t||null!==r&&r>t)&&(t=r);return t},a=e=>{const t=s(e.bindingSignatures.map(e=>e.created));return e.bindingSignatures.filter(e=>e.created===t)[0].getExpirationTime()};t.getKeyExpirationTimeForCapabilities=async(e,t,r,n)=>{const i=await e.getPrimaryUser(void 0,n,void 0);if(!i)throw new Error("Could not find primary user");const o=await e.getExpirationTime(n);if(!o)return null;const c=s(i.user.selfCertifications.map(e=>e.created)),l=i.user.selfCertifications.filter(e=>e.created===c)[0].getExpirationTime();let u=o{})||await e.getEncryptionKey(r,null,n).catch(()=>{});if(!t)return null;const i="bindingSignatures"in t?a(t):await t.getExpirationTime(n)??0;i{})||await e.getSigningKey(r,null,n).catch(()=>{});if(!t)return null;const i="bindingSignatures"in t?a(t):await t.getExpirationTime(n)??0;i{const t=`IMG_ICON_${i.Str.sloppyRandom()}`;let r=!1,a=n(e,{allowedTags:s.ALLOWED_BASIC_TAGS,allowedAttributes:s.ALLOWED_ATTRS,allowedSchemes:s.ALLOWED_SCHEMES,transformTags:{img:(e,n)=>{const i=(n.src||"").substring(0,10);return i.startsWith("data:")?{tagName:"img",attribs:{src:n.src,alt:n.alt||""}}:i.startsWith("http://")||i.startsWith("https://")?(r=!0,{tagName:"a",attribs:{href:String(n.src),target:"_blank"},text:t}):{tagName:"img",attribs:{alt:n.alt,title:n.title},text:"[img]"}},"*":(e,t)=>(t.width&&"1"!==t.width&&"img"!==e&&delete t.width,t.height&&"1"!==t.height&&"img"!==e&&delete t.width,{tagName:e,attribs:t})},exclusiveFilter:({tag:e,attribs:t})=>"1"===t.width||"1"===t.height&&"hr"!==e});return r&&(a=`[remote content blocked for your privacy]

${a}`,a=n(a,{allowedTags:s.ALLOWED_BASIC_TAGS,allowedAttributes:s.ALLOWED_ATTRS,allowedSchemes:s.ALLOWED_SCHEMES,allowedStyles:s.ALLOWED_STYLES})),a=a.replace(new RegExp(t,"g"),'[img]'),a};static htmlSanitizeAndStripAllTags=(e,t)=>{let r=s.htmlSanitizeKeepBasicTags(e);const a=i.Str.sloppyRandom(5),o=`CU_BR_${a}`,c=`CU_BS_${a}`,l=`CU_BE_${a}`;r=r.replace(/]*>/gi,o),r=r.replace(/\n/g,""),r=r.replace(/<\/(p|h1|h2|h3|h4|h5|h6|ol|ul|pre|address|blockquote|dl|div|fieldset|form|hr|table)[^>]*>/gi,l),r=r.replace(/<(p|h1|h2|h3|h4|h5|h6|ol|ul|pre|address|blockquote|dl|div|fieldset|form|hr|table)[^>]*>/gi,c),r=r.replace(RegExp(`(${c})+`,"g"),c).replace(RegExp(`(${l})+`,"g"),l),r=r.split(o+l+c).join(o).split(l+c).join(o).split(o+l).join(o);let u=r.split(o).join("\n").split(c).filter(e=>!!e).join("\n").split(l).filter(e=>!!e).join("\n");return u=u.replace(/\n{2,}/g,"\n\n"),u=n(u,{allowedTags:["img","span"],allowedAttributes:{img:["src"]},allowedSchemes:s.ALLOWED_SCHEMES,transformTags:{img:(e,t)=>({tagName:"span",attribs:{},text:`[image: ${t.alt||t.title||"no name"}]`})}}),u=n(u,{allowedTags:[]}),u=u.trim(),"\n"!==t&&(u=u.replace(/\n/g,t)),u};static escape=e=>e.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">").replace(/\//g,"/");static escapeTextAsRenderableHtml=e=>s.escape(e).replace(/\n/g,"
\n").replace(/^ +/gm,e=>e.replace(/ /g," ")).replace(/^\t+/gm,e=>e.replace(/\t/g," ")).replace(/\n/g,"");static htmlUnescape=e=>e.replace(///g,"/").replace(/"/g,'"').replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">").replace(/ /g," ").replace(/&/g,"&")}t.Xss=s},7526(e,t){"use strict";t.byteLength=function(e){var t=o(e),r=t[0],n=t[1];return 3*(r+n)/4-n},t.toByteArray=function(e){var t,r,s=o(e),a=s[0],c=s[1],l=new i(function(e,t,r){return 3*(t+r)/4-r}(0,a,c)),u=0,h=c>0?a-4:a;for(r=0;r>16&255,l[u++]=t>>8&255,l[u++]=255&t;return 2===c&&(t=n[e.charCodeAt(r)]<<2|n[e.charCodeAt(r+1)]>>4,l[u++]=255&t),1===c&&(t=n[e.charCodeAt(r)]<<10|n[e.charCodeAt(r+1)]<<4|n[e.charCodeAt(r+2)]>>2,l[u++]=t>>8&255,l[u++]=255&t),l},t.fromByteArray=function(e){for(var t,n=e.length,i=n%3,s=[],a=16383,o=0,c=n-i;oc?c:o+a));return 1===i?(t=e[n-1],s.push(r[t>>2]+r[t<<4&63]+"==")):2===i&&(t=(e[n-2]<<8)+e[n-1],s.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"=")),s.join("")};for(var r=[],n=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0;a<64;++a)r[a]=s[a],n[s.charCodeAt(a)]=a;function o(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function c(e){return r[e>>18&63]+r[e>>12&63]+r[e>>6&63]+r[63&e]}function l(e,t,r){for(var n,i=[],s=t;sa)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,c.prototype),t}function c(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return h(e)}return l(e,t,r)}function l(e,t,r){if("string"==typeof e)return function(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!c.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const r=0|p(e,t);let n=o(r);const i=n.write(e,t);return i!==r&&(n=n.slice(0,i)),n}(e,t);if(ArrayBuffer.isView(e))return function(e){if(Z(e,Uint8Array)){const t=new Uint8Array(e);return A(t.buffer,t.byteOffset,t.byteLength)}return f(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(Z(e,ArrayBuffer)||e&&Z(e.buffer,ArrayBuffer))return A(e,t,r);if("undefined"!=typeof SharedArrayBuffer&&(Z(e,SharedArrayBuffer)||e&&Z(e.buffer,SharedArrayBuffer)))return A(e,t,r);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const n=e.valueOf&&e.valueOf();if(null!=n&&n!==e)return c.from(n,t,r);const i=function(e){if(c.isBuffer(e)){const t=0|d(e.length),r=o(t);return 0===r.length||e.copy(r,0,0,t),r}return void 0!==e.length?"number"!=typeof e.length||V(e.length)?o(0):f(e):"Buffer"===e.type&&Array.isArray(e.data)?f(e.data):void 0}(e);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return c.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function u(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function h(e){return u(e),o(e<0?0:0|d(e))}function f(e){const t=e.length<0?0:0|d(e.length),r=o(t);for(let n=0;n=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return 0|e}function p(e,t){if(c.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||Z(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const r=e.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;let i=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return J(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return _(e).length;default:if(i)return n?-1:J(e).length;t=(""+t).toLowerCase(),i=!0}}function g(e,t,r){let n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return K(this,t,r);case"utf8":case"utf-8":return C(this,t,r);case"ascii":return D(this,t,r);case"latin1":case"binary":return x(this,t,r);case"base64":return B(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function y(e,t,r){const n=e[t];e[t]=e[r],e[r]=n}function m(e,t,r,n,i){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),V(r=+r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof t&&(t=c.from(t,n)),c.isBuffer(t))return 0===t.length?-1:w(e,t,r,n,i);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):w(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function w(e,t,r,n,i){let s,a=1,o=e.length,c=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;a=2,o/=2,c/=2,r/=2}function l(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(i){let n=-1;for(s=r;so&&(r=o-c),s=r;s>=0;s--){let r=!0;for(let n=0;ni&&(n=i):n=i;const s=t.length;let a;for(n>s/2&&(n=s/2),a=0;a>8,i=r%256,s.push(i),s.push(n);return s}(t,e.length-r),e,r,n)}function B(e,t,r){return 0===t&&r===e.length?n.fromByteArray(e):n.fromByteArray(e.slice(t,r))}function C(e,t,r){r=Math.min(e.length,r);const n=[];let i=t;for(;i239?4:t>223?3:t>191?2:1;if(i+a<=r){let r,n,o,c;switch(a){case 1:t<128&&(s=t);break;case 2:r=e[i+1],128==(192&r)&&(c=(31&t)<<6|63&r,c>127&&(s=c));break;case 3:r=e[i+1],n=e[i+2],128==(192&r)&&128==(192&n)&&(c=(15&t)<<12|(63&r)<<6|63&n,c>2047&&(c<55296||c>57343)&&(s=c));break;case 4:r=e[i+1],n=e[i+2],o=e[i+3],128==(192&r)&&128==(192&n)&&128==(192&o)&&(c=(15&t)<<18|(63&r)<<12|(63&n)<<6|63&o,c>65535&&c<1114112&&(s=c))}}null===s?(s=65533,a=1):s>65535&&(s-=65536,n.push(s>>>10&1023|55296),s=56320|1023&s),n.push(s),i+=a}return function(e){const t=e.length;if(t<=S)return String.fromCharCode.apply(String,e);let r="",n=0;for(;nn.length?(c.isBuffer(t)||(t=c.from(t)),t.copy(n,i)):Uint8Array.prototype.set.call(n,t,i);else{if(!c.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(n,i)}i+=t.length}return n},c.byteLength=p,c.prototype._isBuffer=!0,c.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tr&&(e+=" ... "),""},s&&(c.prototype[s]=c.prototype.inspect),c.prototype.compare=function(e,t,r,n,i){if(Z(e,Uint8Array)&&(e=c.from(e,e.offset,e.byteLength)),!c.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(this===e)return 0;let s=(i>>>=0)-(n>>>=0),a=(r>>>=0)-(t>>>=0);const o=Math.min(s,a),l=this.slice(n,i),u=e.slice(t,r);for(let e=0;e>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}const i=this.length-t;if((void 0===r||r>i)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let s=!1;for(;;)switch(n){case"hex":return b(this,e,t,r);case"utf8":case"utf-8":return E(this,e,t,r);case"ascii":case"latin1":case"binary":return v(this,e,t,r);case"base64":return k(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,t,r);default:if(s)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),s=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const S=4096;function D(e,t,r){let n="";r=Math.min(e.length,r);for(let i=t;in)&&(r=n);let i="";for(let n=t;nr)throw new RangeError("Trying to access beyond buffer length")}function T(e,t,r,n,i,s){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function F(e,t,r,n,i){H(t,n,i,e,r,7);let s=Number(t&BigInt(4294967295));e[r++]=s,s>>=8,e[r++]=s,s>>=8,e[r++]=s,s>>=8,e[r++]=s;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[r++]=a,a>>=8,e[r++]=a,a>>=8,e[r++]=a,a>>=8,e[r++]=a,r}function M(e,t,r,n,i){H(t,n,i,e,r,7);let s=Number(t&BigInt(4294967295));e[r+7]=s,s>>=8,e[r+6]=s,s>>=8,e[r+5]=s,s>>=8,e[r+4]=s;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[r+3]=a,a>>=8,e[r+2]=a,a>>=8,e[r+1]=a,a>>=8,e[r]=a,r+8}function R(e,t,r,n,i,s){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function Q(e,t,r,n,s){return t=+t,r>>>=0,s||R(e,0,r,4),i.write(e,t,r,n,23,4),r+4}function N(e,t,r,n,s){return t=+t,r>>>=0,s||R(e,0,r,8),i.write(e,t,r,n,52,8),r+8}c.prototype.slice=function(e,t){const r=this.length;(e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t>>=0,t>>>=0,r||U(e,t,this.length);let n=this[e],i=1,s=0;for(;++s>>=0,t>>>=0,r||U(e,t,this.length);let n=this[e+--t],i=1;for(;t>0&&(i*=256);)n+=this[e+--t]*i;return n},c.prototype.readUint8=c.prototype.readUInt8=function(e,t){return e>>>=0,t||U(e,1,this.length),this[e]},c.prototype.readUint16LE=c.prototype.readUInt16LE=function(e,t){return e>>>=0,t||U(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUint16BE=c.prototype.readUInt16BE=function(e,t){return e>>>=0,t||U(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUint32LE=c.prototype.readUInt32LE=function(e,t){return e>>>=0,t||U(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUint32BE=c.prototype.readUInt32BE=function(e,t){return e>>>=0,t||U(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readBigUInt64LE=X(function(e){j(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||W(e,this.length-8);const n=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,i=this[++e]+256*this[++e]+65536*this[++e]+r*2**24;return BigInt(n)+(BigInt(i)<>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||W(e,this.length-8);const n=t*2**24+65536*this[++e]+256*this[++e]+this[++e],i=this[++e]*2**24+65536*this[++e]+256*this[++e]+r;return(BigInt(n)<>>=0,t>>>=0,r||U(e,t,this.length);let n=this[e],i=1,s=0;for(;++s=i&&(n-=Math.pow(2,8*t)),n},c.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||U(e,t,this.length);let n=t,i=1,s=this[e+--n];for(;n>0&&(i*=256);)s+=this[e+--n]*i;return i*=128,s>=i&&(s-=Math.pow(2,8*t)),s},c.prototype.readInt8=function(e,t){return e>>>=0,t||U(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){e>>>=0,t||U(e,2,this.length);const r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},c.prototype.readInt16BE=function(e,t){e>>>=0,t||U(e,2,this.length);const r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},c.prototype.readInt32LE=function(e,t){return e>>>=0,t||U(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return e>>>=0,t||U(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readBigInt64LE=X(function(e){j(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||W(e,this.length-8);const n=this[e+4]+256*this[e+5]+65536*this[e+6]+(r<<24);return(BigInt(n)<>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||W(e,this.length-8);const n=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(n)<>>=0,t||U(e,4,this.length),i.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return e>>>=0,t||U(e,4,this.length),i.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return e>>>=0,t||U(e,8,this.length),i.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return e>>>=0,t||U(e,8,this.length),i.read(this,e,!1,52,8)},c.prototype.writeUintLE=c.prototype.writeUIntLE=function(e,t,r,n){e=+e,t>>>=0,r>>>=0,n||T(this,e,t,r,Math.pow(2,8*r)-1,0);let i=1,s=0;for(this[t]=255&e;++s>>=0,r>>>=0,n||T(this,e,t,r,Math.pow(2,8*r)-1,0);let i=r-1,s=1;for(this[t+i]=255&e;--i>=0&&(s*=256);)this[t+i]=e/s&255;return t+r},c.prototype.writeUint8=c.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||T(this,e,t,1,255,0),this[t]=255&e,t+1},c.prototype.writeUint16LE=c.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||T(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},c.prototype.writeUint16BE=c.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||T(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},c.prototype.writeUint32LE=c.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||T(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},c.prototype.writeUint32BE=c.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||T(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},c.prototype.writeBigUInt64LE=X(function(e,t=0){return F(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))}),c.prototype.writeBigUInt64BE=X(function(e,t=0){return M(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))}),c.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t>>>=0,!n){const n=Math.pow(2,8*r-1);T(this,e,t,r,n-1,-n)}let i=0,s=1,a=0;for(this[t]=255&e;++i>>=0,!n){const n=Math.pow(2,8*r-1);T(this,e,t,r,n-1,-n)}let i=r-1,s=1,a=0;for(this[t+i]=255&e;--i>=0&&(s*=256);)e<0&&0===a&&0!==this[t+i+1]&&(a=1),this[t+i]=(e/s|0)-a&255;return t+r},c.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||T(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||T(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},c.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||T(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},c.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||T(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},c.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||T(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},c.prototype.writeBigInt64LE=X(function(e,t=0){return F(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),c.prototype.writeBigInt64BE=X(function(e,t=0){return M(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),c.prototype.writeFloatLE=function(e,t,r){return Q(this,e,t,!0,r)},c.prototype.writeFloatBE=function(e,t,r){return Q(this,e,t,!1,r)},c.prototype.writeDoubleLE=function(e,t,r){return N(this,e,t,!0,r)},c.prototype.writeDoubleBE=function(e,t,r){return N(this,e,t,!1,r)},c.prototype.copy=function(e,t,r,n){if(!c.isBuffer(e))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(i=t;i=n+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function H(e,t,r,n,i,s){if(e>r||e3?0===t||t===BigInt(0)?`>= 0${n} and < 2${n} ** ${8*(s+1)}${n}`:`>= -(2${n} ** ${8*(s+1)-1}${n}) and < 2 ** ${8*(s+1)-1}${n}`:`>= ${t}${n} and <= ${r}${n}`,new O.ERR_OUT_OF_RANGE("value",i,e)}!function(e,t,r){j(t,"offset"),void 0!==e[t]&&void 0!==e[t+r]||W(t,e.length-(r+1))}(n,i,s)}function j(e,t){if("number"!=typeof e)throw new O.ERR_INVALID_ARG_TYPE(t,"number",e)}function W(e,t,r){if(Math.floor(e)!==e)throw j(e,r),new O.ERR_OUT_OF_RANGE(r||"offset","an integer",e);if(t<0)throw new O.ERR_BUFFER_OUT_OF_BOUNDS;throw new O.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${t}`,e)}L("ERR_BUFFER_OUT_OF_BOUNDS",function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),L("ERR_INVALID_ARG_TYPE",function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`},TypeError),L("ERR_OUT_OF_RANGE",function(e,t,r){let n=`The value of "${e}" is out of range.`,i=r;return Number.isInteger(r)&&Math.abs(r)>2**32?i=G(String(r)):"bigint"==typeof r&&(i=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(i=G(i)),i+="n"),n+=` It must be ${t}. Received ${i}`,n},RangeError);const Y=/[^+/0-9A-Za-z-_]/g;function J(e,t){let r;t=t||1/0;const n=e.length;let i=null;const s=[];for(let a=0;a55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(a+1===n){(t-=3)>-1&&s.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&s.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&s.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;s.push(r)}else if(r<2048){if((t-=2)<0)break;s.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;s.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;s.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return s}function _(e){return n.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(Y,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function q(e,t,r,n){let i;for(i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function Z(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function V(e){return e!=e}const z=function(){const e="0123456789abcdef",t=new Array(256);for(let r=0;r<16;++r){const n=16*r;for(let i=0;i<16;++i)t[n+i]=e[r]+e[i]}return t}();function X(e){return"undefined"==typeof BigInt?$:e}function $(){throw new Error("BigInt not supported")}},4744(e){"use strict";var t=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===r}(e)}(e)},r="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function n(e,t){return!1!==t.clone&&t.isMergeableObject(e)?o((r=e,Array.isArray(r)?[]:{}),e,t):e;var r}function i(e,t,r){return e.concat(t).map(function(e){return n(e,r)})}function s(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[]}(e))}function a(e,t){try{return t in e}catch(e){return!1}}function o(e,r,c){(c=c||{}).arrayMerge=c.arrayMerge||i,c.isMergeableObject=c.isMergeableObject||t,c.cloneUnlessOtherwiseSpecified=n;var l=Array.isArray(r);return l===Array.isArray(e)?l?c.arrayMerge(e,r,c):function(e,t,r){var i={};return r.isMergeableObject(e)&&s(e).forEach(function(t){i[t]=n(e[t],r)}),s(t).forEach(function(s){(function(e,t){return a(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))})(e,s)||(a(e,s)&&r.isMergeableObject(t[s])?i[s]=function(e,t){if(!t.customMerge)return o;var r=t.customMerge(e);return"function"==typeof r?r:o}(s,r)(e[s],t[s],r):i[s]=n(t[s],r))}),i}(e,r,c):n(r,c)}o.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce(function(e,r){return o(e,r,t)},{})};var c=o;e.exports=c},4460(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.attributeNames=t.elementNames=void 0,t.elementNames=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map(function(e){return[e.toLowerCase(),e]})),t.attributeNames=new Map(["definitionURL","attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map(function(e){return[e.toLowerCase(),e]}))},3806(e,t,r){"use strict";var n=this&&this.__assign||function(){return n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r");case o.Comment:return"\x3c!--".concat(e.data,"--\x3e");case o.CDATA:return function(e){return"")}(e);case o.Script:case o.Style:case o.Tag:return function(e,t){var r;"foreign"===t.xmlMode&&(e.name=null!==(r=l.elementNames.get(e.name))&&void 0!==r?r:e.name,e.parent&&p.has(e.parent.name)&&(t=n(n({},t),{xmlMode:!1}))),!t.xmlMode&&g.has(e.name)&&(t=n(n({},t),{xmlMode:"foreign"}));var i="<".concat(e.name),s=function(e,t){var r;if(e){var n=!1===(null!==(r=t.encodeEntities)&&void 0!==r?r:t.decodeEntities)?h:t.xmlMode||"utf8"!==t.encodeEntities?c.encodeXML:c.escapeAttribute;return Object.keys(e).map(function(r){var i,s,a=null!==(i=e[r])&&void 0!==i?i:"";return"foreign"===t.xmlMode&&(r=null!==(s=l.attributeNames.get(r))&&void 0!==s?s:r),t.emptyAttrs||t.xmlMode||""!==a?"".concat(r,'="').concat(n(a),'"'):r}).join(" ")}}(e.attribs,t);return s&&(i+=" ".concat(s)),0===e.children.length&&(t.xmlMode?!1!==t.selfClosingTags:t.selfClosingTags&&f.has(e.name))?(t.xmlMode||(i+=" "),i+="/>"):(i+=">",e.children.length>0&&(i+=A(e.children,t)),!t.xmlMode&&f.has(e.name)||(i+=""))),i}(e,t);case o.Text:return function(e,t){var r,n=e.data||"";return!1===(null!==(r=t.encodeEntities)&&void 0!==r?r:t.decodeEntities)||!t.xmlMode&&e.parent&&u.has(e.parent.name)||(n=t.xmlMode||"utf8"!==t.encodeEntities?(0,c.encodeXML)(n):(0,c.escapeText)(n)),n}(e,t)}}t.render=A,t.default=A;var p=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"]),g=new Set(["svg","math"])},6243(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.decodeXML=t.decodeHTMLStrict=t.decodeHTMLAttribute=t.decodeHTML=t.determineBranch=t.EntityDecoder=t.DecodingMode=t.BinTrieFlags=t.fromCodePoint=t.replaceCodePoint=t.decodeCodePoint=t.xmlDecodeTree=t.htmlDecodeTree=void 0;var o=a(r(2834));t.htmlDecodeTree=o.default;var c=a(r(1518));t.xmlDecodeTree=c.default;var l=s(r(8873));t.decodeCodePoint=l.default;var u,h,f,A,d=r(8873);function p(e){return e>=u.ZERO&&e<=u.NINE}function g(e){return e>=u.UPPER_A&&e<=u.UPPER_F||e>=u.LOWER_A&&e<=u.LOWER_F}function y(e){return e===u.EQUALS||function(e){return e>=u.UPPER_A&&e<=u.UPPER_Z||e>=u.LOWER_A&&e<=u.LOWER_Z||p(e)}(e)}Object.defineProperty(t,"replaceCodePoint",{enumerable:!0,get:function(){return d.replaceCodePoint}}),Object.defineProperty(t,"fromCodePoint",{enumerable:!0,get:function(){return d.fromCodePoint}}),function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.LOWER_Z=122]="LOWER_Z",e[e.UPPER_A=65]="UPPER_A",e[e.UPPER_F=70]="UPPER_F",e[e.UPPER_Z=90]="UPPER_Z"}(u||(u={})),function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.BRANCH_LENGTH=16256]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"}(h=t.BinTrieFlags||(t.BinTrieFlags={})),function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"}(f||(f={})),function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"}(A=t.DecodingMode||(t.DecodingMode={}));var m=function(){function e(e,t,r){this.decodeTree=e,this.emitCodePoint=t,this.errors=r,this.state=f.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=A.Strict}return e.prototype.startEntity=function(e){this.decodeMode=e,this.state=f.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1},e.prototype.write=function(e,t){switch(this.state){case f.EntityStart:return e.charCodeAt(t)===u.NUM?(this.state=f.NumericStart,this.consumed+=1,this.stateNumericStart(e,t+1)):(this.state=f.NamedEntity,this.stateNamedEntity(e,t));case f.NumericStart:return this.stateNumericStart(e,t);case f.NumericDecimal:return this.stateNumericDecimal(e,t);case f.NumericHex:return this.stateNumericHex(e,t);case f.NamedEntity:return this.stateNamedEntity(e,t)}},e.prototype.stateNumericStart=function(e,t){return t>=e.length?-1:(32|e.charCodeAt(t))===u.LOWER_X?(this.state=f.NumericHex,this.consumed+=1,this.stateNumericHex(e,t+1)):(this.state=f.NumericDecimal,this.stateNumericDecimal(e,t))},e.prototype.addToNumericResult=function(e,t,r,n){if(t!==r){var i=r-t;this.result=this.result*Math.pow(n,i)+parseInt(e.substr(t,i),n),this.consumed+=i}},e.prototype.stateNumericHex=function(e,t){for(var r=t;t>14;t>14)){if(s===u.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);this.decodeMode!==A.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1},e.prototype.emitNotTerminatedNamedEntity=function(){var e,t=this.result,r=(this.decodeTree[t]&h.VALUE_LENGTH)>>14;return this.emitNamedEntityData(t,r,this.consumed),null===(e=this.errors)||void 0===e||e.missingSemicolonAfterCharacterReference(),this.consumed},e.prototype.emitNamedEntityData=function(e,t,r){var n=this.decodeTree;return this.emitCodePoint(1===t?n[e]&~h.VALUE_LENGTH:n[e+1],r),3===t&&this.emitCodePoint(n[e+2],r),r},e.prototype.end=function(){var e;switch(this.state){case f.NamedEntity:return 0===this.result||this.decodeMode===A.Attribute&&this.result!==this.treeIndex?0:this.emitNotTerminatedNamedEntity();case f.NumericDecimal:return this.emitNumericEntity(0,2);case f.NumericHex:return this.emitNumericEntity(0,3);case f.NumericStart:return null===(e=this.errors)||void 0===e||e.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case f.EntityStart:return 0}},e}();function w(e){var t="",r=new m(e,function(e){return t+=(0,l.fromCodePoint)(e)});return function(e,n){for(var i=0,s=0;(s=e.indexOf("&",s))>=0;){t+=e.slice(i,s),r.startEntity(n);var a=r.write(e,s+1);if(a<0){i=s+r.end();break}i=s+a,s=0===a?i+1:i}var o=t+e.slice(i);return t="",o}}function b(e,t,r,n){var i=(t&h.BRANCH_LENGTH)>>7,s=t&h.JUMP_TABLE;if(0===i)return 0!==s&&n===s?r:-1;if(s){var a=n-s;return a<0||a>=i?-1:e[r+a]-1}for(var o=r,c=o+i-1;o<=c;){var l=o+c>>>1,u=e[l];if(un))return e[l+i];c=l-1}}return-1}t.EntityDecoder=m,t.determineBranch=b;var E=w(o.default),v=w(c.default);t.decodeHTML=function(e,t){return void 0===t&&(t=A.Legacy),E(e,t)},t.decodeHTMLAttribute=function(e){return E(e,A.Attribute)},t.decodeHTMLStrict=function(e){return E(e,A.Strict)},t.decodeXML=function(e){return v(e,A.Strict)}},8873(e,t){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.replaceCodePoint=t.fromCodePoint=void 0;var n=new Map([[0,65533],[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 i(e){var t;return e>=55296&&e<=57343||e>1114111?65533:null!==(t=n.get(e))&&void 0!==t?t:e}t.fromCodePoint=null!==(r=String.fromCodePoint)&&void 0!==r?r:function(e){var t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|1023&e),t+String.fromCharCode(e)},t.replaceCodePoint=i,t.default=function(e){return(0,t.fromCodePoint)(i(e))}},6095(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.encodeNonAsciiHTML=t.encodeHTML=void 0;var i=n(r(7195)),s=r(3590),a=/[\t\n!-,./:-@[-`\f{-}$\x80-\uFFFF]/g;function o(e,t){for(var r,n="",a=0;null!==(r=e.exec(t));){var o=r.index;n+=t.substring(a,o);var c=t.charCodeAt(o),l=i.default.get(c);if("object"==typeof l){if(o+1$\x80-\uFFFF]/g;var r=new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]);function n(e){for(var n,i="",s=0;null!==(n=t.xmlReplacer.exec(e));){var a=n.index,o=e.charCodeAt(a),c=r.get(o);void 0!==c?(i+=e.substring(s,a)+c,s=a+1):(i+="".concat(e.substring(s,a),"&#x").concat((0,t.getCodePoint)(e,a).toString(16),";"),s=t.xmlReplacer.lastIndex+=Number(55296==(64512&o)))}return i+e.substr(s)}function i(e,t){return function(r){for(var n,i=0,s="";n=e.exec(r);)i!==n.index&&(s+=r.substring(i,n.index)),s+=t.get(n[0].charCodeAt(0)),i=n.index+1;return s+r.substring(i)}}t.getCodePoint=null!=String.prototype.codePointAt?function(e,t){return e.codePointAt(t)}:function(e,t){return 55296==(64512&e.charCodeAt(t))?1024*(e.charCodeAt(t)-55296)+e.charCodeAt(t+1)-56320+65536:e.charCodeAt(t)},t.encodeXML=n,t.escape=n,t.escapeUTF8=i(/[&<>'"]/g,r),t.escapeAttribute=i(/["&\u00A0]/g,new Map([[34,"""],[38,"&"],[160," "]])),t.escapeText=i(/[&<>\u00A0]/g,new Map([[38,"&"],[60,"<"],[62,">"],[160," "]]))},2834(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms„‹•˜¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map(function(e){return e.charCodeAt(0)}))},1518(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=new Uint16Array("Ȁaglq\tɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map(function(e){return e.charCodeAt(0)}))},7195(e,t){"use strict";function r(e){for(var t=1;t0?this.children[this.children.length-1]:null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"childNodes",{get:function(){return this.children},set:function(e){this.children=e},enumerable:!1,configurable:!0}),t}(o);t.NodeWithChildren=f;var A=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=a.ElementType.CDATA,t}return i(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 4},enumerable:!1,configurable:!0}),t}(f);t.CDATA=A;var d=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=a.ElementType.Root,t}return i(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 9},enumerable:!1,configurable:!0}),t}(f);t.Document=d;var p=function(e){function t(t,r,n,i){void 0===n&&(n=[]),void 0===i&&(i="script"===t?a.ElementType.Script:"style"===t?a.ElementType.Style:a.ElementType.Tag);var s=e.call(this,n)||this;return s.name=t,s.attribs=r,s.type=i,s}return i(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"tagName",{get:function(){return this.name},set:function(e){this.name=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"attributes",{get:function(){var e=this;return Object.keys(this.attribs).map(function(t){var r,n;return{name:t,value:e.attribs[t],namespace:null===(r=e["x-attribsNamespace"])||void 0===r?void 0:r[t],prefix:null===(n=e["x-attribsPrefix"])||void 0===n?void 0:n[t]}})},enumerable:!1,configurable:!0}),t}(f);function g(e){return(0,a.isTag)(e)}function y(e){return e.type===a.ElementType.CDATA}function m(e){return e.type===a.ElementType.Text}function w(e){return e.type===a.ElementType.Comment}function b(e){return e.type===a.ElementType.Directive}function E(e){return e.type===a.ElementType.Root}function v(e,t){var r;if(void 0===t&&(t=!1),m(e))r=new l(e.data);else if(w(e))r=new u(e.data);else if(g(e)){var n=t?k(e.children):[],i=new p(e.name,s({},e.attribs),n);n.forEach(function(e){return e.parent=i}),null!=e.namespace&&(i.namespace=e.namespace),e["x-attribsNamespace"]&&(i["x-attribsNamespace"]=s({},e["x-attribsNamespace"])),e["x-attribsPrefix"]&&(i["x-attribsPrefix"]=s({},e["x-attribsPrefix"])),r=i}else if(y(e)){n=t?k(e.children):[];var a=new A(n);n.forEach(function(e){return e.parent=a}),r=a}else if(E(e)){n=t?k(e.children):[];var o=new d(n);n.forEach(function(e){return e.parent=o}),e["x-mode"]&&(o["x-mode"]=e["x-mode"]),r=o}else{if(!b(e))throw new Error("Not implemented yet: ".concat(e.type));var c=new h(e.name,e.data);null!=e["x-name"]&&(c["x-name"]=e["x-name"],c["x-publicId"]=e["x-publicId"],c["x-systemId"]=e["x-systemId"]),r=c}return r.startIndex=e.startIndex,r.endIndex=e.endIndex,null!=e.sourceCodeLocation&&(r.sourceCodeLocation=e.sourceCodeLocation),r}function k(e){for(var t=e.map(function(e){return v(e,!0)}),r=1;r=0;){var r=e[t];if(t>0&&e.lastIndexOf(r,t-1)>=0)e.splice(t,1);else for(var n=r.parent;n;n=n.parent)if(e.includes(n)){e.splice(t,1);break}}return e},t.compareDocumentPosition=s,t.uniqueSort=function(e){return(e=e.filter(function(e,t,r){return!r.includes(e,t+1)})).sort(function(e,t){var r=s(e,t);return r&n.PRECEDING?-1:r&n.FOLLOWING?1:0}),e};var n,i=r(1141);function s(e,t){var r=[],s=[];if(e===t)return 0;for(var a=(0,i.hasChildren)(e)?e:e.parent;a;)r.unshift(a),a=a.parent;for(a=(0,i.hasChildren)(t)?t:t.parent;a;)s.unshift(a),a=a.parent;for(var o=Math.min(r.length,s.length),c=0;cu.indexOf(f)?l===t?n.FOLLOWING|n.CONTAINED_BY:n.FOLLOWING:l===e?n.PRECEDING|n.CONTAINS:n.PRECEDING}!function(e){e[e.DISCONNECTED=1]="DISCONNECTED",e[e.PRECEDING=2]="PRECEDING",e[e.FOLLOWING=4]="FOLLOWING",e[e.CONTAINS=8]="CONTAINS",e[e.CONTAINED_BY=16]="CONTAINED_BY"}(n||(t.DocumentPosition=n={}))},8888(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.hasChildren=t.isDocument=t.isComment=t.isText=t.isCDATA=t.isTag=void 0,i(r(6037),t),i(r(8938),t),i(r(3403),t),i(r(718),t),i(r(3209),t),i(r(5397),t),i(r(4437),t);var s=r(1141);Object.defineProperty(t,"isTag",{enumerable:!0,get:function(){return s.isTag}}),Object.defineProperty(t,"isCDATA",{enumerable:!0,get:function(){return s.isCDATA}}),Object.defineProperty(t,"isText",{enumerable:!0,get:function(){return s.isText}}),Object.defineProperty(t,"isComment",{enumerable:!0,get:function(){return s.isComment}}),Object.defineProperty(t,"isDocument",{enumerable:!0,get:function(){return s.isDocument}}),Object.defineProperty(t,"hasChildren",{enumerable:!0,get:function(){return s.hasChildren}})},3209(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.testElement=function(e,t){var r=c(e);return!r||r(t)},t.getElements=function(e,t,r,n){void 0===n&&(n=1/0);var s=c(e);return s?(0,i.filter)(s,t,r,n):[]},t.getElementById=function(e,t,r){return void 0===r&&(r=!0),Array.isArray(t)||(t=[t]),(0,i.findOne)(a("id",e),t,r)},t.getElementsByTagName=function(e,t,r,n){return void 0===r&&(r=!0),void 0===n&&(n=1/0),(0,i.filter)(s.tag_name(e),t,r,n)},t.getElementsByClassName=function(e,t,r,n){return void 0===r&&(r=!0),void 0===n&&(n=1/0),(0,i.filter)(a("class",e),t,r,n)},t.getElementsByTagType=function(e,t,r,n){return void 0===r&&(r=!0),void 0===n&&(n=1/0),(0,i.filter)(s.tag_type(e),t,r,n)};var n=r(1141),i=r(718),s={tag_name:function(e){return"function"==typeof e?function(t){return(0,n.isTag)(t)&&e(t.name)}:"*"===e?n.isTag:function(t){return(0,n.isTag)(t)&&t.name===e}},tag_type:function(e){return"function"==typeof e?function(t){return e(t.type)}:function(t){return t.type===e}},tag_contains:function(e){return"function"==typeof e?function(t){return(0,n.isText)(t)&&e(t.data)}:function(t){return(0,n.isText)(t)&&t.data===e}}};function a(e,t){return"function"==typeof t?function(r){return(0,n.isTag)(r)&&t(r.attribs[e])}:function(r){return(0,n.isTag)(r)&&r.attribs[e]===t}}function o(e,t){return function(r){return e(r)||t(r)}}function c(e){var t=Object.keys(e).map(function(t){var r=e[t];return Object.prototype.hasOwnProperty.call(s,t)?s[t](r):a(t,r)});return 0===t.length?null:t.reduce(o)}},3403(e,t){"use strict";function r(e){if(e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),e.parent){var t=e.parent.children,r=t.lastIndexOf(e);r>=0&&t.splice(r,1)}e.next=null,e.prev=null,e.parent=null}Object.defineProperty(t,"__esModule",{value:!0}),t.removeElement=r,t.replaceElement=function(e,t){var r=t.prev=e.prev;r&&(r.next=t);var n=t.next=e.next;n&&(n.prev=t);var i=t.parent=e.parent;if(i){var s=i.children;s[s.lastIndexOf(e)]=t,e.parent=null}},t.appendChild=function(e,t){if(r(t),t.next=null,t.parent=e,e.children.push(t)>1){var n=e.children[e.children.length-2];n.next=t,t.prev=n}else t.prev=null},t.append=function(e,t){r(t);var n=e.parent,i=e.next;if(t.next=i,t.prev=e,e.next=t,t.parent=n,i){if(i.prev=t,n){var s=n.children;s.splice(s.lastIndexOf(i),0,t)}}else n&&n.children.push(t)},t.prependChild=function(e,t){if(r(t),t.parent=e,t.prev=null,1!==e.children.unshift(t)){var n=e.children[1];n.prev=t,t.next=n}else t.next=null},t.prepend=function(e,t){r(t);var n=e.parent;if(n){var i=n.children;i.splice(i.indexOf(e),0,t)}e.prev&&(e.prev.next=t),t.parent=n,t.prev=e.prev,t.next=e,e.prev=t}},718(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.filter=function(e,t,r,n){return void 0===r&&(r=!0),void 0===n&&(n=1/0),i(e,Array.isArray(t)?t:[t],r,n)},t.find=i,t.findOneChild=function(e,t){return t.find(e)},t.findOne=function e(t,r,i){void 0===i&&(i=!0);for(var s=Array.isArray(r)?r:[r],a=0;a0){var c=e(t,o.children,!0);if(c)return c}}return null},t.existsOne=function e(t,r){return(Array.isArray(r)?r:[r]).some(function(r){return(0,n.isTag)(r)&&t(r)||(0,n.hasChildren)(r)&&e(t,r.children)})},t.findAll=function(e,t){for(var r=[],i=[Array.isArray(t)?t:[t]],s=[0];;)if(s[0]>=i[0].length){if(1===i.length)return r;i.shift(),s.shift()}else{var a=i[0][s[0]++];(0,n.isTag)(a)&&e(a)&&r.push(a),(0,n.hasChildren)(a)&&a.children.length>0&&(s.unshift(0),i.unshift(a.children))}};var n=r(1141);function i(e,t,r,i){for(var s=[],a=[Array.isArray(t)?t:[t]],o=[0];;)if(o[0]>=a[0].length){if(1===o.length)return s;a.shift(),o.shift()}else{var c=a[0][o[0]++];if(e(c)&&(s.push(c),--i<=0))return s;r&&(0,n.hasChildren)(c)&&c.children.length>0&&(o.unshift(0),a.unshift(c.children))}}},6037(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getOuterHTML=o,t.getInnerHTML=function(e,t){return(0,i.hasChildren)(e)?e.children.map(function(e){return o(e,t)}).join(""):""},t.getText=function e(t){return Array.isArray(t)?t.map(e).join(""):(0,i.isTag)(t)?"br"===t.name?"\n":e(t.children):(0,i.isCDATA)(t)?e(t.children):(0,i.isText)(t)?t.data:""},t.textContent=function e(t){return Array.isArray(t)?t.map(e).join(""):(0,i.hasChildren)(t)&&!(0,i.isComment)(t)?e(t.children):(0,i.isText)(t)?t.data:""},t.innerText=function e(t){return Array.isArray(t)?t.map(e).join(""):(0,i.hasChildren)(t)&&(t.type===a.ElementType.Tag||(0,i.isCDATA)(t))?e(t.children):(0,i.isText)(t)?t.data:""};var i=r(1141),s=n(r(3806)),a=r(5413);function o(e,t){return(0,s.default)(e,t)}},8938(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getChildren=i,t.getParent=s,t.getSiblings=function(e){var t=s(e);if(null!=t)return i(t);for(var r=[e],n=e.prev,a=e.next;null!=n;)r.unshift(n),n=n.prev;for(;null!=a;)r.push(a),a=a.next;return r},t.getAttributeValue=function(e,t){var r;return null===(r=e.attribs)||void 0===r?void 0:r[t]},t.hasAttrib=function(e,t){return null!=e.attribs&&Object.prototype.hasOwnProperty.call(e.attribs,t)&&null!=e.attribs[t]},t.getName=function(e){return e.name},t.nextElementSibling=function(e){for(var t=e.next;null!==t&&!(0,n.isTag)(t);)t=t.next;return t},t.prevElementSibling=function(e){for(var t=e.prev;null!==t&&!(0,n.isTag)(t);)t=t.prev;return t};var n=r(1141);function i(e){return(0,n.hasChildren)(e)?e.children:[]}function s(e){return e.parent||null}},1371(e,t,r){var n=r(321),i=r(2801);t.FALLBACK_CHARACTER=63;var s=t.HAS_TYPED="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array,a=!1,o=!1;try{"a"===String.fromCharCode.apply(null,[97])&&(a=!0)}catch(e){}if(s)try{"a"===String.fromCharCode.apply(null,new Uint8Array([97]))&&(o=!0)}catch(e){}t.CAN_CHARCODE_APPLY=a,t.CAN_CHARCODE_APPLY_TYPED=o,t.APPLY_BUFFER_SIZE=65533,t.APPLY_BUFFER_SIZE_OK=null;var c=t.EncodingNames={UTF32:{order:0},UTF32BE:{alias:["UCS4"]},UTF32LE:null,UTF16:{order:1},UTF16BE:{alias:["UCS2"]},UTF16LE:null,BINARY:{order:2},ASCII:{order:3,alias:["ISO646","CP367"]},JIS:{order:4,alias:["ISO2022JP"]},UTF8:{order:5},EUCJP:{order:6},SJIS:{order:7,alias:["CP932","MSKANJI","WINDOWS31J"]},UNICODE:{order:8}},l={};t.EncodingAliases=l,t.EncodingOrders=function(){for(var e,t,r,i,s=l,a=n.objectKeys(c),o=[],u=0,h=a.length;u95&&(i.JIS_TO_UTF8_TABLE[t]=0|e);for(i.JISX0212_TO_UTF8_TABLE={},a=(r=n.objectKeys(i.UTF8_TO_JISX0212_TABLE)).length,s=0;s=161&&t<=223?(s=188|(i=t-64)>>6&3,o=128|63&i,u[u.length]=239,u[u.length]=255&s,u[u.length]=255&o):t>=128?(r=t<<1,(i=e[++h])<159?(r-=r<319?225:97,i-=i>126?32:31):(r-=r<319?224:96,i-=126),c=((r&=255)<<8)+i,void 0===(l=a.JIS_TO_UTF8_TABLE[c])?u[u.length]=n.FALLBACK_CHARACTER:l<65535?(u[u.length]=l>>8&255,u[u.length]=255&l):(u[u.length]=l>>16&255,u[u.length]=l>>8&255,u[u.length]=255&l)):u[u.length]=255&e[h];return u}function c(e){n.init_JIS_TO_UTF8_TABLE();for(var t,r,i,s,o,c,l=[],u=0,h=e&&e.length;u>6&3,s=128|63&r,l[l.length]=239,l[l.length]=255&i,l[l.length]=255&s):143===t?(o=(e[++u]-128<<8)+(e[++u]-128),void 0===(c=a.JISX0212_TO_UTF8_TABLE[o])?l[l.length]=n.FALLBACK_CHARACTER:c<65535?(l[l.length]=c>>8&255,l[l.length]=255&c):(l[l.length]=c>>16&255,l[l.length]=c>>8&255,l[l.length]=255&c)):t>=128?(o=(t-128<<8)+(e[++u]-128),void 0===(c=a.JIS_TO_UTF8_TABLE[o])?l[l.length]=n.FALLBACK_CHARACTER:c<65535?(l[l.length]=c>>8&255,l[l.length]=255&c):(l[l.length]=c>>16&255,l[l.length]=c>>8&255,l[l.length]=255&c)):l[l.length]=255&e[u];return l}function l(e){n.init_JIS_TO_UTF8_TABLE();for(var t,r,i,s,o,c=[],l=0,u=0,h=e&&e.length;u>8&255,c[c.length]=255&o):(c[c.length]=o>>16&255,c[c.length]=o>>8&255,c[c.length]=255&o)):2===l?(r=188|(t=e[u]+64)>>6&3,i=128|63&t,c[c.length]=239,c[c.length]=255&r,c[c.length]=255&i):3===l?(s=(e[u]<<8)+e[++u],void 0===(o=a.JISX0212_TO_UTF8_TABLE[s])?c[c.length]=n.FALLBACK_CHARACTER:o<65535?(c[c.length]=o>>8&255,c[c.length]=255&o):(c[c.length]=o>>16&255,c[c.length]=o>>8&255,c[c.length]=255&o)):c[c.length]=255&e[u]}return c}function u(e,t){for(var r,i,s,o,c,l,u=[],h=0,f=e&&e.length,A=t&&t.fallback;h=128?(r<=223?(o=[r,e[h+1]],c=(r<<8)+e[++h]):r<=239?(o=[r,e[h+1],e[h+2]],c=(r<<16)+(e[++h]<<8)+(255&e[++h])):(o=[r,e[h+1],e[h+2],e[h+3]],c=(r<<24)+(e[++h]<<16)+(e[++h]<<8)+(255&e[++h])),null==(l=a.UTF8_TO_JIS_TABLE[c])?A?D(u,o,A):u[u.length]=n.FALLBACK_CHARACTER:l<255?u[u.length]=l+128:(l>65536&&(l-=65536),s=255&l,1&(i=l>>8)?((i>>=1)<47?i+=113:i-=79,s+=s>95?32:31):((i>>=1)<=47?i+=112:i-=80,s+=126),u[u.length]=255&i,u[u.length]=255&s)):u[u.length]=255&e[h];return u}function h(e,t){for(var r,i,s,o,c=[],l=0,u=e&&e.length,h=t&&t.fallback;l=128?(r<=223?(i=[r,e[l+1]],s=(r<<8)+e[++l]):r<=239?(i=[r,e[l+1],e[l+2]],s=(r<<16)+(e[++l]<<8)+(255&e[++l])):(i=[r,e[l+1],e[l+2],e[l+3]],s=(r<<24)+(e[++l]<<16)+(e[++l]<<8)+(255&e[++l])),null==(o=a.UTF8_TO_JIS_TABLE[s])?null==(o=a.UTF8_TO_JISX0212_TABLE[s])?h?D(c,i,h):c[c.length]=n.FALLBACK_CHARACTER:(c[c.length]=143,c[c.length]=(o>>8)-128&255,c[c.length]=(255&o)-128&255):(o>65536&&(o-=65536),o<255?(c[c.length]=142,c[c.length]=o-128&255):(c[c.length]=(o>>8)-128&255,c[c.length]=(255&o)-128&255))):c[c.length]=255&e[l];return c}function f(e,t){for(var r,i,s,o,c=[],l=0,u=e&&e.length,h=0,f=t&&t.fallback,A=[27,40,66,27,36,66,27,40,73,27,36,40,68];h>8&255,c[c.length]=255&o):(o>65536&&(o-=65536),o<255?(2!==l&&(l=2,c[c.length]=A[6],c[c.length]=A[7],c[c.length]=A[8]),c[c.length]=255&o):(1!==l&&(l=1,c[c.length]=A[3],c[c.length]=A[4],c[c.length]=A[5]),c[c.length]=o>>8&255,c[c.length]=255&o)));return 0!==l&&(c[c.length]=A[0],c[c.length]=A[1],c[c.length]=A[2]),c}function A(e){for(var t,r,n=[],i=0,s=e&&e.length;i=55296&&t<=56319&&i+1=56320&&r<=57343&&(t=1024*(t-55296)+r-56320+65536,i++),t<128?n[n.length]=t:t<2048?(n[n.length]=192|t>>6&31,n[n.length]=128|63&t):t<65536?(n[n.length]=224|t>>12&15,n[n.length]=128|t>>6&63,n[n.length]=128|63&t):t<2097152&&(n[n.length]=240|t>>18&15,n[n.length]=128|t>>12&63,n[n.length]=128|t>>6&63,n[n.length]=128|63&t);return n}function d(e,t){for(var r,n,i,s=[],a=0,o=e&&e.length,c=t&&t.ignoreSurrogatePair;a>4)>=0&&r<=7?i=n:12===r||13===r?i=(31&n)<<6|63&e[a++]:14===r?i=(15&n)<<12|(63&e[a++])<<6|63&e[a++]:15===r&&(i=(7&n)<<18|(63&e[a++])<<12|(63&e[a++])<<6|63&e[a++]),i<=65535||c?s[s.length]=i:(i-=65536,s[s.length]=55296+(i>>10),s[s.length]=i%1024+56320);return s}function p(e,t){var r;if(t&&t.bom){var n,s,a=t.bom;i.isString(a)||(a="BE"),"B"===a.charAt(0).toUpperCase()?(n=[254,255],s=g(e)):(n=[255,254],s=y(e)),(r=[])[0]=n[0],r[1]=n[1];for(var o=0,c=s.length;o>8&255,r[r.length]=255&t);return r}function y(e){for(var t,r=[],n=0,i=e&&e.length;n>8&255);return r}function m(e){var t,r,n=[],i=0,s=e&&e.length;for(s>=2&&(254===e[0]&&255===e[1]||255===e[0]&&254===e[1])&&(i=2);i=2&&(254===e[0]&&255===e[1]||255===e[0]&&254===e[1])&&(i=2);i=2&&(254===e[0]&&255===e[1]||255===e[0]&&254===e[1])&&(i=2);i>=1)<47?t+=113:t-=79,r+=r>95?32:31):((t>>=1)<=47?t+=112:t-=80,r+=126),i[i.length]=255&t,i[i.length]=255&r):i[i.length]=2===s?e[a]+128&255:3===s?n.FALLBACK_CHARACTER:255&e[a]}return i},t.JISToEUCJP=function(e){for(var t=[],r=0,n=e&&e.length,i=0;i=161&&t<=223?(2!==i&&(i=2,n[n.length]=o[6],n[n.length]=o[7],n[n.length]=o[8]),n[n.length]=t-128&255):t>=128?(1!==i&&(i=1,n[n.length]=o[3],n[n.length]=o[4],n[n.length]=o[5]),t<<=1,(r=e[++a])<159?(t-=t<319?225:97,r-=r>126?32:31):(t-=t<319?224:96,r-=126),n[n.length]=255&t,n[n.length]=255&r):(0!==i&&(i=0,n[n.length]=o[0],n[n.length]=o[1],n[n.length]=o[2]),n[n.length]=255&t);return 0!==i&&(n[n.length]=o[0],n[n.length]=o[1],n[n.length]=o[2]),n},t.SJISToEUCJP=function(e){for(var t,r,n=[],i=e&&e.length,s=0;s=161&&t<=223?(n[n.length]=142,n[n.length]=t):t>=129?(t<<=1,(r=e[++s])<159?(t-=t<319?97:225,r+=r>126?96:97):(t-=t<319?96:224,r+=2),n[n.length]=255&t,n[n.length]=255&r):n[n.length]=255&t;return n},t.EUCJPToJIS=function(e){for(var t,r=[],n=0,i=e&&e.length,s=0,a=[27,40,66,27,36,66,27,40,73,27,36,40,68];s142?(1!==n&&(n=1,r[r.length]=a[3],r[r.length]=a[4],r[r.length]=a[5]),r[r.length]=t-128&255,r[r.length]=e[++s]-128&255):(0!==n&&(n=0,r[r.length]=a[0],r[r.length]=a[1],r[r.length]=a[2]),r[r.length]=255&t);return 0!==n&&(r[r.length]=a[0],r[r.length]=a[1],r[r.length]=a[2]),r},t.EUCJPToSJIS=function(e){for(var t,r,i=[],s=e&&e.length,a=0;a142?(r=e[++a],1&t?(t>>=1,t+=t<111?49:113,r-=r>223?96:97):(t>>=1,t+=t<=111?48:112,r-=2),i[i.length]=255&t,i[i.length]=255&r):i[i.length]=142===t?255&e[++a]:255&t;return i},t.SJISToUTF8=o,t.EUCJPToUTF8=c,t.JISToUTF8=l,t.UTF8ToSJIS=u,t.UTF8ToEUCJP=h,t.UTF8ToJIS=f,t.UNICODEToUTF8=A,t.UTF8ToUNICODE=d,t.UNICODEToUTF16=p,t.UNICODEToUTF16BE=g,t.UNICODEToUTF16LE=y,t.UTF16BEToUNICODE=m,t.UTF16LEToUNICODE=w,t.UTF16ToUNICODE=b,t.UTF16ToUTF16BE=function(e){for(var t,r,n=[],i=0,a=e&&e.length,o=!1,c=!0;i=2&&(254===e[0]&&255===e[1]||255===e[0]&&254===e[1])&&(u=2),r&&(c[0]=r[0],c[1]=r[1]);u=2&&(254===e[0]&&255===e[1]||255===e[0]&&254===e[1])&&(u=2),r&&(c[0]=r[0],c[1]=r[1]);u255)return!1;if(t>=0&&t<=7||255===t)return!0}return!1},t.isASCII=function(e){for(var t,r=0,n=e&&e.length;r255||t>=128&&t<=255||27===t)return!1;return!0},t.isJIS=function(e){for(var t,r,n,i=0,s=e&&e.length;i255||t>=128&&t<=255)return!1;if(27===t){if(i+2>=s)return!1;if(r=e[i+1],n=e[i+2],36===r){if(40===n||64===n||66===n)return!0}else{if(38===r&&64===n)return!0;if(40===r&&(66===n||73===n||74===n))return!0}}}return!1},t.isEUCJP=function(e){for(var t,r=0,n=e&&e.length;r255||t<142)return!1;if(142===t){if(r+1>=n)return!1;if((t=e[++r])<161||223=n)return!1;if((t=e[++r])<162||237=n)return!1;if((t=e[++r])<161||254128;)if(e[r++]>255)return!1;for(;r239||r+1>=n)return!1;if((t=e[++r])<64||127===t||t>252)return!1}return!0},t.isUTF8=function(e){for(var t,r=0,n=e&&e.length;r255)return!1;if(!(9===t||10===t||13===t||t>=32&&t<=126))if(t>=194&&t<=223){if(r+1>=n||e[r+1]<128||e[r+1]>191)return!1;r++}else if(224===t){if(r+2>=n||e[r+1]<160||e[r+1]>191||e[r+2]<128||e[r+2]>191)return!1;r+=2}else if(t>=225&&t<=236||238===t||239===t){if(r+2>=n||e[r+1]<128||e[r+1]>191||e[r+2]<128||e[r+2]>191)return!1;r+=2}else if(237===t){if(r+2>=n||e[r+1]<128||e[r+1]>159||e[r+2]<128||e[r+2]>191)return!1;r+=2}else if(240===t){if(r+3>=n||e[r+1]<144||e[r+1]>191||e[r+2]<128||e[r+2]>191||e[r+3]<128||e[r+3]>191)return!1;r+=3}else if(t>=241&&t<=243){if(r+3>=n||e[r+1]<128||e[r+1]>191||e[r+2]<128||e[r+2]>191||e[r+3]<128||e[r+3]>191)return!1;r+=3}else{if(244!==t)return!1;if(r+3>=n||e[r+1]<128||e[r+1]>143||e[r+2]<128||e[r+2]>191||e[r+3]<128||e[r+3]>191)return!1;r+=3}}return!0},t.isUTF16=function(e){var t,r,n,i,s=0,a=e&&e.length,o=null;if(a<2){if(e[0]>255)return!1}else{if(t=e[0],r=e[1],255===t&&254===r)return!0;if(254===t&&255===r)return!0;for(;s255)return!1}if(null===o)return!1;if(void 0!==(n=e[o+1])&&n>0&&n<128)return!0;if(void 0!==(i=e[o-1])&&i>0&&i<128)return!0}return!1},t.isUTF16BE=function(e){var t,r,n=0,i=e&&e.length,s=null;if(i<2){if(e[0]>255)return!1}else{if(t=e[0],r=e[1],254===t&&255===r)return!0;for(;n255)return!1}if(null===s)return!1;if(s%2==0)return!0}return!1},t.isUTF16LE=function(e){var t,r,n=0,i=e&&e.length,s=null;if(i<2){if(e[0]>255)return!1}else{if(t=e[0],r=e[1],255===t&&254===r)return!0;for(;n255)return!1}if(null===s)return!1;if(s%2!=0)return!0}return!1},t.isUTF32=function(e){var t,r,n,i,s,a,o=0,c=e&&e.length,l=null;if(c<4){for(;o255)return!1}else{if(t=e[0],r=e[1],n=e[2],i=e[3],0===t&&0===r&&254===n&&255===i)return!0;if(255===t&&254===r&&0===n&&0===i)return!0;for(;o255)return!1}if(null===l)return!1;if(void 0!==(s=e[l+3])&&s>0&&s<=127)return 0===e[l+2]&&0===e[l+1];if(void 0!==(a=e[l-1])&&a>0&&a<=127)return 0===e[l+1]&&0===e[l+2]}return!1},t.isUNICODE=function(e){for(var t,r=0,n=e&&e.length;r1114111)return!1;return!0}},2801(e,t,r){t.UTF8_TO_JIS_TABLE=r(4992),t.UTF8_TO_JISX0212_TABLE=r(909),t.JIS_TO_UTF8_TABLE=r(5748),t.JISX0212_TO_UTF8_TABLE=r(7921)},8969(e,t,r){var n=r(1371),i=r(321),s=r(1742),a=r(5210),o=r(3880),c=r(6171).rE,l=Object.prototype.hasOwnProperty,u={version:c,orders:n.EncodingOrders,detect:function(e,t){if(null==e||0===e.length)return!1;i.isObject(t)&&!i.isArray(t)&&(t=t.encoding),i.isString(e)&&(e=i.stringToBuffer(e)),null==t?t=u.orders:i.isString(t)&&(t="AUTO"===(t=t.toUpperCase())?u.orders:~t.indexOf(",")?t.split(/\s*,\s*/):[t]);for(var r,n,a,o=t.length,c=0;c255)return encodeURIComponent(i.codeToString_fast(e));t>=97&&t<=122||t>=65&&t<=90||t>=48&&t<=57||33===t||t>=39&&t<=42||45===t||46===t||95===t||126===t?n[n.length]=t:(n[n.length]=37,t<16?(n[n.length]=48,n[n.length]=r[t]):(n[n.length]=r[t>>4&15],n[n.length]=r[15&t]))}return i.codeToString_fast(n)},urlDecode:function(e){for(var t,r=[],n=0,i=e&&e.length;n=65281&&r<=65374&&(r-=65248),n[n.length]=r;return t?i.codeToString_fast(n):n},toZenkakuCase:function(e){var t=!1;i.isString(e)&&(t=!0,e=i.stringToBuffer(e));for(var r,n=[],s=e&&e.length,a=0;a=33&&r<=126&&(r+=65248),n[n.length]=r;return t?i.codeToString_fast(n):n},toHiraganaCase:function(e){var t=!1;i.isString(e)&&(t=!0,e=i.stringToBuffer(e));for(var r,n=[],s=e&&e.length,a=0;a=12449&&r<=12534?r-=96:12535===r?(n[n.length]=12431,r=12443):12538===r&&(n[n.length]=12434,r=12443),n[n.length]=r;return t?i.codeToString_fast(n):n},toKatakanaCase:function(e){var t=!1;i.isString(e)&&(t=!0,e=i.stringToBuffer(e));for(var r,n=[],s=e&&e.length,a=0;a=12353&&r<=12438&&((12431===r||12434===r)&&a=12289&&r<=12540&&void 0!==(s=o.HANKANA_TABLE[r])?a[a.length]=s:12532===r||12535===r||12538===r?(a[a.length]=o.HANKANA_SONANTS[r],a[a.length]=65438):r>=12459&&r<=12489?(a[a.length]=o.HANKANA_TABLE[r-1],a[a.length]=65438):r>=12495&&r<=12509?(n=r%3,a[a.length]=o.HANKANA_TABLE[r-n],a[a.length]=o.HANKANA_MARKS[n-1]):a[a.length]=r;return t?i.codeToString_fast(a):a},toZenkanaCase:function(e){var t=!1;i.isString(e)&&(t=!0,e=i.stringToBuffer(e));var r,n,s,a=[],c=e&&e.length,l=0;for(l=0;l65376&&r<65440&&(n=o.ZENKANA_TABLE[r-65377],l+165397&&r<65413||r>65417&&r<65423)?(n++,l++):65439===s&&r>65417&&r<65423&&(n+=2,l++)),r=n),a[a.length]=r;return t?i.codeToString_fast(a):a},toHankakuSpace:function(e){if(i.isString(e))return e.replace(/\u3000/g," ");for(var t,r=[],n=e&&e.length,s=0;sn.APPLY_BUFFER_SIZE&&(n.APPLY_BUFFER_SIZE_OK=!0),r}catch(e){n.APPLY_BUFFER_SIZE_OK=!1}}return d(e)}function d(e){for(var t,r="",s=e&&e.length,a=0;an.APPLY_BUFFER_SIZE&&(n.APPLY_BUFFER_SIZE_OK=!0);continue}catch(e){n.APPLY_BUFFER_SIZE_OK=!1}return p(e)}r+=i.apply(null,t)}return r}function p(e){for(var t="",r=e&&e.length,n=0;n>2],t[t.length]=g[(3&i)<<4],t[t.length]=m,t[t.length]=m;break}if(s=e[r++],r==n){t[t.length]=g[i>>2],t[t.length]=g[(3&i)<<4|(240&s)>>4],t[t.length]=g[(15&s)<<2],t[t.length]=m;break}a=e[r++],t[t.length]=g[i>>2],t[t.length]=g[(3&i)<<4|(240&s)>>4],t[t.length]=g[(15&s)<<2|(192&a)>>6],t[t.length]=g[63&a]}return A(t)},t.base64decode=function(e){var t,r,n,i,s,a,o;for(a=e&&e.length,s=0,o=[];s>4;do{if(61==(n=255&e.charCodeAt(s++)))return o;n=y[n]}while(s>2;do{if(61==(i=255&e.charCodeAt(s++)))return o;i=y[i]}while(s>1,u=-7,h=r?i-1:0,f=r?-1:1,A=e[t+h];for(h+=f,s=A&(1<<-u)-1,A>>=-u,u+=o;u>0;s=256*s+e[t+h],h+=f,u-=8);for(a=s&(1<<-u)-1,s>>=-u,u+=n;u>0;a=256*a+e[t+h],h+=f,u-=8);if(0===s)s=1-l;else{if(s===c)return a?NaN:1/0*(A?-1:1);a+=Math.pow(2,n),s-=l}return(A?-1:1)*a*Math.pow(2,s-n)},t.write=function(e,t,r,n,i,s){var a,o,c,l=8*s-i-1,u=(1<>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,A=n?0:s-1,d=n?1:-1,p=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(o=isNaN(t)?1:0,a=u):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+h>=1?f/c:f*Math.pow(2,1-h))*c>=2&&(a++,c/=2),a+h>=u?(o=0,a=u):a+h>=1?(o=(t*c-1)*Math.pow(2,i),a+=h):(o=t*Math.pow(2,h-1)*Math.pow(2,i),a=0));i>=8;e[r+A]=255&o,A+=d,o/=256,i-=8);for(a=a<0;e[r+A]=255&a,A+=d,a/=256,l-=8);e[r+A-d]|=128*p}},8682(e,t){"use strict";function r(e){return"[object Object]"===Object.prototype.toString.call(e)}t.isPlainObject=function(e){var t,n;return!1!==r(e)&&(void 0===(t=e.constructor)||!1!==r(n=t.prototype)&&!1!==n.hasOwnProperty("isPrototypeOf"))}},9466(e,t){var r,n;void 0===(n="function"==typeof(r=function(){return function(e){function t(e){return" "===e||"\t"===e||"\n"===e||"\f"===e||"\r"===e}function r(t){var r,n=t.exec(e.substring(p));if(n)return r=n[0],p+=r.length,r}for(var n,i,s,a,o,c=e.length,l=/^[ \t\n\r\u000c]+/,u=/^[, \t\n\r\u000c]+/,h=/^[^ \t\n\r\u000c]+/,f=/[,]+$/,A=/^\d+$/,d=/^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,p=0,g=[];;){if(r(u),p>=c)return g;n=r(h),i=[],","===n.slice(-1)?(n=n.replace(f,""),m()):y()}function y(){for(r(l),s="",a="in descriptor";;){if(o=e.charAt(p),"in descriptor"===a)if(t(o))s&&(i.push(s),s="",a="after descriptor");else{if(","===o)return p+=1,s&&i.push(s),void m();if("("===o)s+=o,a="in parens";else{if(""===o)return s&&i.push(s),void m();s+=o}}else if("in parens"===a)if(")"===o)s+=o,a="in descriptor";else{if(""===o)return i.push(s),void m();s+=o}else if("after descriptor"===a)if(t(o));else{if(""===o)return void m();a="in descriptor",p-=1}p+=1}}function m(){var t,r,s,a,o,c,l,u,h,f=!1,p={};for(a=0;a(e.nodes&&(e.nodes=f(e.nodes)),delete e.source,e))}function A(e){if(e[u]=!1,e.proxyOf.nodes)for(let t of e.proxyOf.nodes)A(t)}class d extends l{get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}append(...e){for(let t of e){let e=this.normalize(t,this.last);for(let t of e)this.proxyOf.nodes.push(t)}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let t of this.nodes)t.cleanRaws(e)}each(e){if(!this.proxyOf.nodes)return;let t,r,n=this.getIterator();for(;this.indexes[n]"proxyOf"===t?e:e[t]?"each"===t||"string"==typeof t&&t.startsWith("walk")?(...r)=>e[t](...r.map(e=>"function"==typeof e?(t,r)=>e(t.toProxy(),r):e)):"every"===t||"some"===t?r=>e[t]((e,...t)=>r(e.toProxy(),...t)):"root"===t?()=>e.root().toProxy():"nodes"===t?e.nodes.map(e=>e.toProxy()):"first"===t||"last"===t?e[t].toProxy():e[t]:e[t],set:(e,t,r)=>(e[t]===r||(e[t]=r,"name"!==t&&"params"!==t&&"selector"!==t||e.markDirty()),!0)}}index(e){return"number"==typeof e?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}insertAfter(e,t){let r,n=this.index(e),i=this.normalize(t,this.proxyOf.nodes[n]).reverse();n=this.index(e);for(let e of i)this.proxyOf.nodes.splice(n+1,0,e);for(let e in this.indexes)r=this.indexes[e],n(e[h]||d.rebuild(e),(e=e.proxyOf).parent&&e.parent.removeChild(e),e[u]&&A(e),e.raws||(e.raws={}),void 0===e.raws.before&&t&&void 0!==t.raws.before&&(e.raws.before=t.raws.before.replace(/\S/g,"")),e.parent=this.proxyOf,e))}prepend(...e){e=e.reverse();for(let t of e){let e=this.normalize(t,this.first,"prepend").reverse();for(let t of e)this.proxyOf.nodes.unshift(t);for(let t in this.indexes)this.indexes[t]=this.indexes[t]+e.length}return this.markDirty(),this}push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(e){let t;e=this.index(e),this.proxyOf.nodes[e].parent=void 0,this.proxyOf.nodes.splice(e,1);for(let r in this.indexes)t=this.indexes[r],t>=e&&(this.indexes[r]=t-1);return this.markDirty(),this}replaceValues(e,t,r){return r||(r=t,t={}),this.walkDecls(n=>{t.props&&!t.props.includes(n.prop)||t.fast&&!n.value.includes(t.fast)||(n.value=n.value.replace(e,r))}),this.markDirty(),this}some(e){return this.nodes.some(e)}walk(e){return this.each((t,r)=>{let n;try{n=e(t,r)}catch(e){throw t.addToError(e)}return!1!==n&&t.walk&&(n=t.walk(e)),n})}walkAtRules(e,t){return t?e instanceof RegExp?this.walk((r,n)=>{if("atrule"===r.type&&e.test(r.name))return t(r,n)}):this.walk((r,n)=>{if("atrule"===r.type&&r.name===e)return t(r,n)}):(t=e,this.walk((e,r)=>{if("atrule"===e.type)return t(e,r)}))}walkComments(e){return this.walk((t,r)=>{if("comment"===t.type)return e(t,r)})}walkDecls(e,t){return t?e instanceof RegExp?this.walk((r,n)=>{if("decl"===r.type&&e.test(r.prop))return t(r,n)}):this.walk((r,n)=>{if("decl"===r.type&&r.prop===e)return t(r,n)}):(t=e,this.walk((e,r)=>{if("decl"===e.type)return t(e,r)}))}walkRules(e,t){return t?e instanceof RegExp?this.walk((r,n)=>{if("rule"===r.type&&e.test(r.selector))return t(r,n)}):this.walk((r,n)=>{if("rule"===r.type&&r.selector===e)return t(r,n)}):(t=e,this.walk((e,r)=>{if("rule"===e.type)return t(e,r)}))}}d.registerParse=e=>{i=e},d.registerRule=e=>{a=e},d.registerAtRule=e=>{n=e},d.registerRoot=e=>{s=e},e.exports=d,d.default=d,d.rebuild=e=>{"atrule"===e.type?Object.setPrototypeOf(e,n.prototype):"rule"===e.type?Object.setPrototypeOf(e,a.prototype):"decl"===e.type?Object.setPrototypeOf(e,c.prototype):"comment"===e.type?Object.setPrototypeOf(e,o.prototype):"root"===e.type&&Object.setPrototypeOf(e,s.prototype),e[h]=!0,e.nodes&&e.nodes.forEach(e=>{d.rebuild(e)})}},3614(e,t,r){"use strict";let n=r(8633),i=r(9746);class s extends Error{constructor(e,t,r,n,i,a){super(e),this.name="CssSyntaxError",this.reason=e,i&&(this.file=i),n&&(this.source=n),a&&(this.plugin=a),void 0!==t&&void 0!==r&&("number"==typeof t?(this.line=t,this.column=r):(this.line=t.line,this.column=t.column,this.endLine=r.line,this.endColumn=r.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,s)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"",void 0!==this.line&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let t=this.source;null==e&&(e=n.isColorSupported);let r=e=>e,s=e=>e,a=e=>e;if(e){let{bold:e,gray:t,red:o}=n.createColors(!0);s=t=>e(o(t)),r=e=>t(e),i&&(a=e=>i(e))}let o=t.split(/\r?\n/),c=Math.max(this.line-3,0),l=Math.min(this.line+2,o.length),u=String(l).length;return o.slice(c,l).map((e,t)=>{let n=c+1+t,i=" "+(" "+n).slice(-u)+" | ";if(n===this.line){if(e.length>160){let t=20,n=Math.max(0,this.column-t),o=Math.max(this.column+t,this.endColumn+t),c=e.slice(n,o),l=r(i.replace(/\d/g," "))+e.slice(0,Math.min(this.column-1,t-1)).replace(/[^\t]/g," ");return s(">")+r(i)+a(c)+"\n "+l+s("^")}let t=r(i.replace(/\d/g," "))+e.slice(0,this.column-1).replace(/[^\t]/g," ");return s(">")+r(i)+a(e)+"\n "+t+s("^")}return" "+r(i)+a(e)}).join("\n")}toString(){let e=this.showSourceCode();return e&&(e="\n\n"+e+"\n"),this.name+": "+this.message+e}}e.exports=s,s.default=s},5238(e,t,r){"use strict";let n=r(3152);class i extends n{get variable(){return this.prop.startsWith("--")||"$"===this.prop[0]}constructor(e){e&&void 0!==e.value&&"string"!=typeof e.value&&(e={...e,value:String(e.value)}),super(e),this.type="decl"}}e.exports=i,i.default=i},145(e,t,r){"use strict";let n,i,s=r(7793);class a extends s{constructor(e){super({type:"document",...e}),this.nodes||(this.nodes=[])}toResult(e={}){return new n(new i,this,e).stringify()}}a.registerLazyResult=e=>{n=e},a.registerProcessor=e=>{i=e},e.exports=a,a.default=a},3438(e,t,r){"use strict";let n=r(396),i=r(9371),s=r(5238),a=r(1106),o=r(3878),c=r(5644),l=r(1534);function u(e,t){if(Array.isArray(e))return e.map(e=>u(e));let{inputs:r,...h}=e;if(r){t=[];for(let e of r){let r={...e,__proto__:a.prototype};r.map&&(r.map={...r.map,__proto__:o.prototype}),t.push(r)}}if(h.nodes&&(h.nodes=e.nodes.map(e=>u(e,t))),h.source){let{inputId:e,...r}=h.source;h.source=r,null!=e&&(h.source.input=t[e])}if("root"===h.type)return new c(h);if("decl"===h.type)return new s(h);if("rule"===h.type)return new l(h);if("comment"===h.type)return new i(h);if("atrule"===h.type)return new n(h);throw new Error("Unknown node type: "+e.type)}e.exports=u,u.default=u},1106(e,t,r){"use strict";let{nanoid:n}=r(5042),{isAbsolute:i,resolve:s}=r(197),{SourceMapConsumer:a,SourceMapGenerator:o}=r(1866),{fileURLToPath:c,pathToFileURL:l}=r(2739),u=r(3614),h=r(3878),f=r(9746),A=Symbol("lineToIndexCache"),d=Boolean(a&&o),p=Boolean(s&&i);function g(e){if(e[A])return e[A];let t=e.css.split("\n"),r=new Array(t.length),n=0;for(let e=0,i=t.length;e"),this.map&&(this.map.file=this.from)}error(e,t,r,n={}){let i,s,a,o,c;if(t&&"object"==typeof t){let e=t,n=r;if("number"==typeof e.offset){o=e.offset;let n=this.fromOffset(o);t=n.line,r=n.col}else t=e.line,r=e.column,o=this.fromLineAndColumn(t,r);if("number"==typeof n.offset){a=n.offset;let e=this.fromOffset(a);s=e.line,i=e.col}else s=n.line,i=n.column,a=this.fromLineAndColumn(n.line,n.column)}else if(r)o=this.fromLineAndColumn(t,r);else{o=t;let e=this.fromOffset(o);t=e.line,r=e.col}let h=this.origin(t,r,s,i);return c=h?new u(e,void 0===h.endLine?h.line:{column:h.column,line:h.line},void 0===h.endLine?h.column:{column:h.endColumn,line:h.endLine},h.source,h.file,n.plugin):new u(e,void 0===s?t:{column:r,line:t},void 0===s?r:{column:i,line:s},this.css,this.file,n.plugin),c.input={column:r,endColumn:i,endLine:s,endOffset:a,line:t,offset:o,source:this.css},this.file&&(l&&(c.input.url=l(this.file).toString()),c.input.file=this.file),c}fromLineAndColumn(e,t){return g(this)[e-1]+t-1}fromOffset(e){let t=g(this),r=0;if(e>=t[t.length-1])r=t.length-1;else{let n,i=t.length-2;for(;r>1),e=t[n+1])){r=n;break}r=n+1}}return{col:e-t[r]+1,line:r+1}}mapResolve(e){return/^\w+:\/\//.test(e)?e:s(this.map.consumer().sourceRoot||this.map.root||".",e)}origin(e,t,r,n){if(!this.map)return!1;let s,a,o=this.map.consumer(),u=o.originalPositionFor({column:t,line:e});if(!u.source)return!1;"number"==typeof r&&(s=o.originalPositionFor({column:n,line:r})),a=i(u.source)?l(u.source):new URL(u.source,this.map.consumer().sourceRoot||l(this.map.mapFile));let h={column:u.column,endColumn:s&&s.column,endLine:s&&s.line,line:u.line,url:a.toString()};if("file:"===a.protocol){if(!c)throw new Error("file: protocol is not available in this PostCSS build");h.file=c(a)}let f=o.sourceContentFor(u.source);return f&&(h.source=f),h}toJSON(){let e={};for(let t of["hasBOM","css","file","id"])null!=this[t]&&(e[t]=this[t]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}}e.exports=y,y.default=y,f&&f.registerInput&&f.registerInput(y)},6966(e,t,r){"use strict";let n=r(7793),i=r(145),s=r(3604),a=r(9577),o=r(3717),c=r(5644),l=r(3303),{isClean:u,my:h}=r(4151);r(6156);const f={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},A={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},d={Once:!0,postcssPlugin:!0,prepare:!0};function p(e){return"object"==typeof e&&"function"==typeof e.then}function g(e){let t=!1,r=f[e.type];return"decl"===e.type?t=e.prop.toLowerCase():"atrule"===e.type&&(t=e.name.toLowerCase()),t&&e.append?[r,r+"-"+t,0,r+"Exit",r+"Exit-"+t]:t?[r,r+"-"+t,r+"Exit",r+"Exit-"+t]:e.append?[r,0,r+"Exit"]:[r,r+"Exit"]}function y(e){let t;return t="document"===e.type?["Document",0,"DocumentExit"]:"root"===e.type?["Root",0,"RootExit"]:g(e),{eventIndex:0,events:t,iterator:0,node:e,visitorIndex:0,visitors:[]}}function m(e){return e[u]=!1,e.nodes&&e.nodes.forEach(e=>m(e)),e}let w={};class b{get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}constructor(e,t,r){let i;if(this.stringified=!1,this.processed=!1,"object"!=typeof t||null===t||"root"!==t.type&&"document"!==t.type)if(t instanceof b||t instanceof o)i=m(t.root),t.map&&(void 0===r.map&&(r.map={}),r.map.inline||(r.map.inline=!1),r.map.prev=t.map);else{let e=a;r.syntax&&(e=r.syntax.parse),r.parser&&(e=r.parser),e.parse&&(e=e.parse);try{i=e(t,r)}catch(e){this.processed=!0,this.error=e}i&&!i[h]&&n.rebuild(i)}else i=m(t);this.result=new o(e,i,r),this.helpers={...w,postcss:w,result:this.result},this.plugins=this.processor.plugins.map(e=>"object"==typeof e&&e.prepare?{...e,...e.prepare(this.result)}:e)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,t){let r=this.result.lastPlugin;try{t&&t.addToError(e),this.error=e,"CssSyntaxError"!==e.name||e.plugin?r.postcssVersion:(e.plugin=r.postcssPlugin,e.setMessage())}catch(e){console&&console.error&&console.error(e)}return e}prepareVisitors(){this.listeners={};let e=(e,t,r)=>{this.listeners[t]||(this.listeners[t]=[]),this.listeners[t].push([e,r])};for(let t of this.plugins)if("object"==typeof t)for(let r in t){if(!A[r]&&/^[A-Z]/.test(r))throw new Error(`Unknown event ${r} in ${t.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!d[r])if("object"==typeof t[r])for(let n in t[r])e(t,"*"===n?r:r+"-"+n.toLowerCase(),t[r][n]);else"function"==typeof t[r]&&e(t,r,t[r])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let e=0;e0;){let e=this.visitTick(t);if(p(e))try{await e}catch(e){let r=t[t.length-1].node;throw this.handleError(e,r)}}}if(this.listeners.OnceExit)for(let[t,r]of this.listeners.OnceExit){this.result.lastPlugin=t;try{if("document"===e.type){let t=e.nodes.map(e=>r(e,this.helpers));await Promise.all(t)}else await r(e,this.helpers)}catch(e){throw this.handleError(e)}}}return this.processed=!0,this.stringify()}runOnRoot(e){this.result.lastPlugin=e;try{if("object"==typeof e&&e.Once){if("document"===this.result.root.type){let t=this.result.root.nodes.map(t=>e.Once(t,this.helpers));return p(t[0])?Promise.all(t):t}return e.Once(this.result.root,this.helpers)}if("function"==typeof e)return e(this.result.root,this.result)}catch(e){throw this.handleError(e)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,t=l;e.syntax&&(t=e.syntax.stringify),e.stringifier&&(t=e.stringifier),t.stringify&&(t=t.stringify);let r=new s(t,this.result.root,this.result.opts).generate();return this.result.css=r[0],this.result.map=r[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins)if(p(this.runOnRoot(e)))throw this.getAsyncError();if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[u];)e[u]=!0,this.walkSync(e);if(this.listeners.OnceExit)if("document"===e.type)for(let t of e.nodes)this.visitSync(this.listeners.OnceExit,t);else this.visitSync(this.listeners.OnceExit,e)}return this.result}then(e,t){return this.async().then(e,t)}toString(){return this.css}visitSync(e,t){for(let[r,n]of e){let e;this.result.lastPlugin=r;try{e=n(t,this.helpers)}catch(e){throw this.handleError(e,t.proxyOf)}if("root"!==t.type&&"document"!==t.type&&!t.parent)return!0;if(p(e))throw this.getAsyncError()}}visitTick(e){let t=e[e.length-1],{node:r,visitors:n}=t;if("root"!==r.type&&"document"!==r.type&&!r.parent)return void e.pop();if(n.length>0&&t.visitorIndex{e[u]||this.walkSync(e)});else{let t=this.listeners[r];if(t&&this.visitSync(t,e.toProxy()))return}}warnings(){return this.sync().warnings()}}b.registerPostcss=e=>{w=e},e.exports=b,b.default=b,c.registerLazyResult(b),i.registerLazyResult(b)},1752(e){"use strict";let t={comma:e=>t.split(e,[","],!0),space:e=>t.split(e,[" ","\n","\t"]),split(e,t,r){let n=[],i="",s=!1,a=0,o=!1,c="",l=!1;for(let r of e)l?l=!1:"\\"===r?l=!0:o?r===c&&(o=!1):'"'===r||"'"===r?(o=!0,c=r):"("===r?a+=1:")"===r?a>0&&(a-=1):0===a&&t.includes(r)&&(s=!0),s?(""!==i&&n.push(i.trim()),i="",s=!1):i+=r;return(r||""!==i)&&n.push(i.trim()),n}};e.exports=t,t.default=t},3604(e,t,r){"use strict";let{dirname:n,relative:i,resolve:s,sep:a}=r(197),{SourceMapConsumer:o,SourceMapGenerator:c}=r(1866),{pathToFileURL:l}=r(2739),u=r(1106),h=Boolean(o&&c),f=Boolean(n&&s&&i&&a);e.exports=class{constructor(e,t,r,n){this.stringify=e,this.mapOpts=r.map||{},this.root=t,this.opts=r,this.css=n,this.originalCSS=n,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let e;e=this.isInline()?"data:application/json;base64,"+this.toBase64(this.map.toString()):"string"==typeof this.mapOpts.annotation?this.mapOpts.annotation:"function"==typeof this.mapOpts.annotation?this.mapOpts.annotation(this.opts.to,this.root):this.outputFile()+".map";let t="\n";this.css.includes("\r\n")&&(t="\r\n"),this.css+=t+"/*# sourceMappingURL="+e+" */"}applyPrevMaps(){for(let e of this.previous()){let t,r=this.toUrl(this.path(e.file)),i=e.root||n(e.file);!1===this.mapOpts.sourcesContent?(t=new o(e.text),t.sourcesContent&&(t.sourcesContent=null)):t=e.consumer(),this.map.applySourceMap(t,r,this.toUrl(this.path(i)))}}clearAnnotation(){if(!1!==this.mapOpts.annotation)if(this.root){let e;for(let t=this.root.nodes.length-1;t>=0;t--)e=this.root.nodes[t],"comment"===e.type&&e.text.startsWith("# sourceMappingURL=")&&this.root.removeChild(t)}else if(this.css){let e;for(;-1!==(e=this.css.lastIndexOf("/*#"));){let t=this.css.indexOf("*/",e+3);if(-1===t)break;for(;e>0&&"\n"===this.css[e-1];)e--;this.css=this.css.slice(0,e)+this.css.slice(t+2)}}}generate(){if(this.clearAnnotation(),f&&h&&this.isMap())return this.generateMap();{let e="";return this.stringify(this.root,t=>{e+=t}),[e]}}generateMap(){if(this.root)this.generateString();else if(1===this.previous().length){let e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=c.fromSourceMap(e,{ignoreInvalidMapping:!0})}else this.map=new c({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):""});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}generateString(){this.css="",this.map=new c({file:this.outputFile(),ignoreInvalidMapping:!0});let e,t,r=1,n=1,i="",s={generated:{column:0,line:0},original:{column:0,line:0},source:""};this.stringify(this.root,(a,o,c)=>{if(this.css+=a,o&&"end"!==c&&(s.generated.line=r,s.generated.column=n-1,o.source&&o.source.start?(s.source=this.sourcePath(o),s.original.line=o.source.start.line,s.original.column=o.source.start.column-1,this.map.addMapping(s)):(s.source=i,s.original.line=1,s.original.column=0,this.map.addMapping(s))),t=a.match(/\n/g),t?(r+=t.length,e=a.lastIndexOf("\n"),n=a.length-e):n+=a.length,o&&"start"!==c){let e=o.parent||{raws:{}};("decl"===o.type||"atrule"===o.type&&!o.nodes)&&o===e.last&&!e.raws.semicolon||(o.source&&o.source.end?(s.source=this.sourcePath(o),s.original.line=o.source.end.line,s.original.column=o.source.end.column-1,s.generated.line=r,s.generated.column=n-2,this.map.addMapping(s)):(s.source=i,s.original.line=1,s.original.column=0,s.generated.line=r,s.generated.column=n-1,this.map.addMapping(s)))}})}isAnnotation(){return!!this.isInline()||(void 0!==this.mapOpts.annotation?this.mapOpts.annotation:!this.previous().length||this.previous().some(e=>e.annotation))}isInline(){if(void 0!==this.mapOpts.inline)return this.mapOpts.inline;let e=this.mapOpts.annotation;return(void 0===e||!0===e)&&(!this.previous().length||this.previous().some(e=>e.inline))}isMap(){return void 0!==this.opts.map?!!this.opts.map:this.previous().length>0}isSourcesContent(){return void 0!==this.mapOpts.sourcesContent?this.mapOpts.sourcesContent:!this.previous().length||this.previous().some(e=>e.withContent())}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(e){if(this.mapOpts.absolute)return e;if(60===e.charCodeAt(0))return e;if(/^\w+:\/\//.test(e))return e;let t=this.memoizedPaths.get(e);if(t)return t;let r=this.opts.to?n(this.opts.to):".";"string"==typeof this.mapOpts.annotation&&(r=n(s(r,this.mapOpts.annotation)));let a=i(r,e);return this.memoizedPaths.set(e,a),a}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(e=>{if(e.source&&e.source.input.map){let t=e.source.input.map;this.previousMaps.includes(t)||this.previousMaps.push(t)}});else{let e=new u(this.originalCSS,this.opts);e.map&&this.previousMaps.push(e.map)}return this.previousMaps}setSourcesContent(){let e={};if(this.root)this.root.walk(t=>{if(t.source){let r=t.source.input.from;if(r&&!e[r]){e[r]=!0;let n=this.usesFileUrls?this.toFileUrl(r):this.toUrl(this.path(r));this.map.setSourceContent(n,t.source.input.css)}}});else if(this.css){let e=this.opts.from?this.toUrl(this.path(this.opts.from)):"";this.map.setSourceContent(e,this.css)}}sourcePath(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))}toBase64(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))}toFileUrl(e){let t=this.memoizedFileURLs.get(e);if(t)return t;if(l){let t=l(e).toString();return this.memoizedFileURLs.set(e,t),t}throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(e){let t=this.memoizedURLs.get(e);if(t)return t;"\\"===a&&(e=e.replace(/\\/g,"/"));let r=encodeURI(e).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(e,r),r}}},4211(e,t,r){"use strict";let n=r(3604),i=r(9577),s=r(3717),a=r(3303);r(6156);class o{get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let e,t=i;try{e=t(this._css,this._opts)}catch(e){this.error=e}if(this.error)throw this.error;return this._root=e,e}get[Symbol.toStringTag](){return"NoWorkResult"}constructor(e,t,r){t=t.toString(),this.stringified=!1,this._processor=e,this._css=t,this._opts=r,this._map=void 0;let i=a;this.result=new s(this._processor,void 0,this._opts),this.result.css=t;let o=this;Object.defineProperty(this.result,"root",{get:()=>o.root});let c=new n(i,void 0,this._opts,t);if(c.isMap()){let[e,t]=c.generate();e&&(this.result.css=e),t&&(this.result.map=t)}else c.clearAnnotation(),this.result.css=c.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}sync(){if(this.error)throw this.error;return this.result}then(e,t){return this.async().then(e,t)}toString(){return this._css}warnings(){return[]}}e.exports=o,o.default=o},3152(e,t,r){"use strict";let n=r(3614),i=r(7668),s=r(3303),{isClean:a,my:o}=r(4151);function c(e,t){let r=new e.constructor;for(let n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;if("proxyCache"===n)continue;let i=e[n],s=typeof i;"parent"===n&&"object"===s?t&&(r[n]=t):"source"===n?r[n]=i:Array.isArray(i)?r[n]=i.map(e=>c(e,r)):("object"===s&&null!==i&&(i=c(i)),r[n]=i)}return r}function l(e,t){if(t&&void 0!==t.offset)return t.offset;let r=1,n=1,i=0;for(let s=0;s"proxyOf"===t?e:"root"===t?()=>e.root().toProxy():e[t],set:(e,t,r)=>(e[t]===r||(e[t]=r,"prop"!==t&&"value"!==t&&"name"!==t&&"params"!==t&&"important"!==t&&"text"!==t||e.markDirty()),!0)}}markClean(){this[a]=!0}markDirty(){if(this[a]){this[a]=!1;let e=this;for(;e=e.parent;)e[a]=!1}}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}positionBy(e={}){let t=this.source.start;if(e.index)t=this.positionInside(e.index);else if(e.word){let r="document"in this.source.input?this.source.input.document:this.source.input.css,n=r.slice(l(r,this.source.start),l(r,this.source.end)).indexOf(e.word);-1!==n&&(t=this.positionInside(n))}return t}positionInside(e){let t=this.source.start.column,r=this.source.start.line,n="document"in this.source.input?this.source.input.document:this.source.input.css,i=l(n,this.source.start),s=i+e;for(let e=i;e"object"==typeof e&&e.toJSON?e.toJSON(null,t):e);else if("object"==typeof n&&n.toJSON)r[e]=n.toJSON(null,t);else if("source"===e){if(null==n)continue;let s=t.get(n.input);null==s&&(s=i,t.set(n.input,i),i++),r[e]={end:n.end,inputId:s,start:n.start}}else r[e]=n}return n&&(r.inputs=[...t.keys()].map(e=>e.toJSON())),r}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(e=s){e.stringify&&(e=e.stringify);let t="";return e(this,e=>{t+=e}),t}warn(e,t,r={}){let n={node:this};for(let e in r)n[e]=r[e];return e.warn(t,n)}}e.exports=u,u.default=u},9577(e,t,r){"use strict";let n=r(7793),i=r(1106),s=r(8339);function a(e,t){let r=new i(e,t),n=new s(r);try{n.parse()}catch(e){throw e}return n.root}e.exports=a,a.default=a,n.registerParse(a)},8339(e,t,r){"use strict";let n=r(396),i=r(9371),s=r(5238),a=r(5644),o=r(1534),c=r(5781);const l={empty:!0,space:!0};e.exports=class{constructor(e){this.input=e,this.root=new a,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}atrule(e){let t,r,i,s=new n;s.name=e[1].slice(1),""===s.name&&this.unnamedAtrule(s,e),this.init(s,e[2]);let a=!1,o=!1,c=[],l=[];for(;!this.tokenizer.endOfFile();){if(t=(e=this.tokenizer.nextToken())[0],"("===t||"["===t?l.push("("===t?")":"]"):"{"===t&&l.length>0?l.push("}"):t===l[l.length-1]&&l.pop(),0===l.length){if(";"===t){s.source.end=this.getPosition(e[2]),s.source.end.offset++,this.semicolon=!0;break}if("{"===t){o=!0;break}if("}"===t){if(c.length>0){for(i=c.length-1,r=c[i];r&&"space"===r[0];)r=c[--i];r&&(s.source.end=this.getPosition(r[3]||r[2]),s.source.end.offset++)}this.end(e);break}c.push(e)}else c.push(e);if(this.tokenizer.endOfFile()){a=!0;break}}s.raws.between=this.spacesAndCommentsFromEnd(c),c.length?(s.raws.afterName=this.spacesAndCommentsFromStart(c),this.raw(s,"params",c),a&&(e=c[c.length-1],s.source.end=this.getPosition(e[3]||e[2]),s.source.end.offset++,this.spaces=s.raws.between,s.raws.between="")):(s.raws.afterName="",s.params=""),o&&(s.nodes=[],this.current=s)}checkMissedSemicolon(e){let t=this.colon(e);if(!1===t)return;let r,n=0;for(let i=t-1;i>=0&&(r=e[i],"space"===r[0]||(n+=1,2!==n));i--);throw this.input.error("Missed semicolon","word"===r[0]?r[3]+1:r[2])}colon(e){let t,r,n,i=0;for(let[s,a]of e.entries()){if(r=a,n=r[0],"("===n&&(i+=1),")"===n&&(i-=1),0===i&&":"===n){if(t){if("word"===t[0]&&"progid"===t[1])continue;return s}this.doubleColon(r)}t=r}return!1}comment(e){let t=new i;this.init(t,e[2]),t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++;let r=e[1].slice(2,-2);if(r.trim()){let e=r.match(/^(\s*)([^]*\S)(\s*)$/);t.text=e[2],t.raws.left=e[1],t.raws.right=e[3]}else t.text="",t.raws.left=r,t.raws.right=""}createTokenizer(){this.tokenizer=c(this.input)}decl(e,t){let r=new s;this.init(r,e[0][2]);let n,i=e[e.length-1];for(";"===i[0]&&(this.semicolon=!0,e.pop()),r.source.end=this.getPosition(i[3]||i[2]||function(e){for(let t=e.length-1;t>=0;t--){let r=e[t],n=r[3]||r[2];if(n)return n}}(e)),r.source.end.offset++;"word"!==e[0][0];)1===e.length&&this.unknownWord(e),r.raws.before+=e.shift()[1];for(r.source.start=this.getPosition(e[0][2]),r.prop="";e.length;){let t=e[0][0];if(":"===t||"space"===t||"comment"===t)break;r.prop+=e.shift()[1]}for(r.raws.between="";e.length;){if(n=e.shift(),":"===n[0]){r.raws.between+=n[1];break}"word"===n[0]&&/\w/.test(n[1])&&this.unknownWord([n]),r.raws.between+=n[1]}"_"!==r.prop[0]&&"*"!==r.prop[0]||(r.raws.before+=r.prop[0],r.prop=r.prop.slice(1));let a,o=[];for(;e.length&&(a=e[0][0],"space"===a||"comment"===a);)o.push(e.shift());this.precheckMissedSemicolon(e);for(let t=e.length-1;t>=0;t--){if(n=e[t],"!important"===n[1].toLowerCase()){r.important=!0;let n=this.stringFrom(e,t);n=this.spacesFromEnd(e)+n," !important"!==n&&(r.raws.important=n);break}if("important"===n[1].toLowerCase()){let n=e.slice(0),i="";for(let e=t;e>0;e--){let t=n[e][0];if(i.trim().startsWith("!")&&"space"!==t)break;i=n.pop()[1]+i}i.trim().startsWith("!")&&(r.important=!0,r.raws.important=i,e=n)}if("space"!==n[0]&&"comment"!==n[0])break}e.some(e=>"space"!==e[0]&&"comment"!==e[0])&&(r.raws.between+=o.map(e=>e[1]).join(""),o=[]),this.raw(r,"value",o.concat(e),t),r.value.includes(":")&&!t&&this.checkMissedSemicolon(e)}doubleColon(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})}emptyRule(e){let t=new o;this.init(t,e[2]),t.selector="",t.raws.between="",this.current=t}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let t=this.current.nodes[this.current.nodes.length-1];t&&"rule"===t.type&&!t.raws.ownSemicolon&&(t.raws.ownSemicolon=this.spaces,this.spaces="",t.source.end=this.getPosition(e[2]),t.source.end.offset+=t.raws.ownSemicolon.length)}}getPosition(e){let t=this.input.fromOffset(e);return{column:t.col,line:t.line,offset:e}}init(e,t){this.current.push(e),e.source={input:this.input,start:this.getPosition(t)},e.raws.before=this.spaces,this.spaces="","comment"!==e.type&&(this.semicolon=!1)}other(e){let t=!1,r=null,n=!1,i=null,s=[],a=e[1].startsWith("--"),o=[],c=e;for(;c;){if(r=c[0],o.push(c),"("===r||"["===r)i||(i=c),s.push("("===r?")":"]");else if(a&&n&&"{"===r)i||(i=c),s.push("}");else if(0===s.length){if(";"===r){if(n)return void this.decl(o,a);break}if("{"===r)return void this.rule(o);if("}"===r){this.tokenizer.back(o.pop()),t=!0;break}":"===r&&(n=!0)}else r===s[s.length-1]&&(s.pop(),0===s.length&&(i=null));c=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(t=!0),s.length>0&&this.unclosedBracket(i),t&&n){if(!a)for(;o.length&&(c=o[o.length-1][0],"space"===c||"comment"===c);)this.tokenizer.back(o.pop());this.decl(o,a)}else this.unknownWord(o)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e)}this.endFile()}precheckMissedSemicolon(){}raw(e,t,r,n){let i,s,a,o,c=r.length,u="",h=!0;for(let e=0;ee+t[1],"");e.raws[t]={raw:n,value:u}}e[t]=u}rule(e){e.pop();let t=new o;this.init(t,e[0][2]),t.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(t,"selector",e),this.current=t}spacesAndCommentsFromEnd(e){let t,r="";for(;e.length&&(t=e[e.length-1][0],"space"===t||"comment"===t);)r=e.pop()[1]+r;return r}spacesAndCommentsFromStart(e){let t,r="";for(;e.length&&(t=e[0][0],"space"===t||"comment"===t);)r+=e.shift()[1];return r}spacesFromEnd(e){let t,r="";for(;e.length&&(t=e[e.length-1][0],"space"===t);)r=e.pop()[1]+r;return r}stringFrom(e,t){let r="";for(let n=t;n(r||(r=i()),r)}),i.process=function(e,t,r){return E([i(r)]).process(e,t)},i},E.stringify=w,E.parse=d,E.fromJSON=l,E.list=f,E.comment=e=>new i(e),E.atRule=e=>new n(e),E.decl=e=>new o(e),E.rule=e=>new m(e),E.root=e=>new y(e),E.document=e=>new c(e),E.CssSyntaxError=a,E.Declaration=o,E.Container=s,E.Processor=p,E.Document=c,E.Comment=i,E.Warning=b,E.AtRule=n,E.Result=g,E.Input=u,E.Rule=m,E.Root=y,E.Node=A,h.registerPostcss(E),e.exports=E,E.default=E},3878(e,t,r){"use strict";let{existsSync:n,readFileSync:i}=r(9977),{dirname:s,join:a}=r(197),{SourceMapConsumer:o,SourceMapGenerator:c}=r(1866);class l{constructor(e,t){if(!1===t.map)return;this.loadAnnotation(e),this.inline=this.startWith(this.annotation,"data:");let r=t.map?t.map.prev:void 0,n=this.loadMap(t.from,r);!this.mapFile&&t.from&&(this.mapFile=t.from),this.mapFile&&(this.root=s(this.mapFile)),n&&(this.text=n)}consumer(){return this.consumerCache||(this.consumerCache=new o(this.text)),this.consumerCache}decodeInline(e){let t=e.match(/^data:application\/json;charset=utf-?8,/)||e.match(/^data:application\/json,/);if(t)return decodeURIComponent(e.substr(t[0].length));let r=e.match(/^data:application\/json;charset=utf-?8;base64,/)||e.match(/^data:application\/json;base64,/);if(r)return n=e.substr(r[0].length),Buffer?Buffer.from(n,"base64").toString():window.atob(n);var n;let i=e.slice(22);throw i=i.slice(0,i.indexOf(",")),new Error("Unsupported source map encoding "+i)}getAnnotationURL(e){return e.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}isMap(e){return"object"==typeof e&&("string"==typeof e.mappings||"string"==typeof e._mappings||Array.isArray(e.sections))}loadAnnotation(e){let t=e.match(/\/\*\s*# sourceMappingURL=/g);if(!t)return;let r=e.lastIndexOf(t.pop()),n=e.indexOf("*/",r);r>-1&&n>-1&&(this.annotation=this.getAnnotationURL(e.substring(r,n)))}loadFile(e){if(this.root=s(e),n(e))return this.mapFile=e,i(e,"utf-8").toString().trim()}loadMap(e,t){if(!1===t)return!1;if(t){if("string"==typeof t)return t;if("function"!=typeof t){if(t instanceof o)return c.fromSourceMap(t).toString();if(t instanceof c)return t.toString();if(this.isMap(t))return JSON.stringify(t);throw new Error("Unsupported previous source map format: "+t.toString())}{let r=t(e);if(r){let e=this.loadFile(r);if(!e)throw new Error("Unable to load previous source map: "+r.toString());return e}}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let t=this.annotation;return e&&(t=a(s(e),t)),this.loadFile(t)}}}startWith(e,t){return!!e&&e.substr(0,t.length)===t}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}}e.exports=l,l.default=l},6846(e,t,r){"use strict";let n=r(145),i=r(6966),s=r(4211),a=r(5644);class o{constructor(e=[]){this.version="8.5.9",this.plugins=this.normalize(e)}normalize(e){let t=[];for(let r of e)if(!0===r.postcss?r=r():r.postcss&&(r=r.postcss),"object"==typeof r&&Array.isArray(r.plugins))t=t.concat(r.plugins);else if("object"==typeof r&&r.postcssPlugin)t.push(r);else if("function"==typeof r)t.push(r);else if("object"!=typeof r||!r.parse&&!r.stringify)throw new Error(r+" is not a PostCSS plugin");return t}process(e,t={}){return this.plugins.length||t.parser||t.stringifier||t.syntax?new i(this,e,t):new s(this,e,t)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}}e.exports=o,o.default=o,a.registerProcessor(o),n.registerProcessor(o)},3717(e,t,r){"use strict";let n=r(38);class i{get content(){return this.css}constructor(e,t,r){this.processor=e,this.messages=[],this.root=t,this.opts=r,this.css="",this.map=void 0}toString(){return this.css}warn(e,t={}){t.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(t.plugin=this.lastPlugin.postcssPlugin);let r=new n(e,t);return this.messages.push(r),r}warnings(){return this.messages.filter(e=>"warning"===e.type)}}e.exports=i,i.default=i},5644(e,t,r){"use strict";let n,i,s=r(7793);class a extends s{constructor(e){super(e),this.type="root",this.nodes||(this.nodes=[])}normalize(e,t,r){let n=super.normalize(e);if(t)if("prepend"===r)this.nodes.length>1?t.raws.before=this.nodes[1].raws.before:delete t.raws.before;else if(this.first!==t)for(let e of n)e.raws.before=t.raws.before;return n}removeChild(e,t){let r=this.index(e);return!t&&0===r&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[r].raws.before),super.removeChild(e)}toResult(e={}){return new n(new i,this,e).stringify()}}a.registerLazyResult=e=>{n=e},a.registerProcessor=e=>{i=e},e.exports=a,a.default=a,s.registerRoot(a)},1534(e,t,r){"use strict";let n=r(7793),i=r(1752);class s extends n{get selectors(){return i.comma(this.selector)}set selectors(e){let t=this.selector?this.selector.match(/,\s*/):null,r=t?t[0]:","+this.raw("between","beforeOpen");this.selector=e.join(r)}constructor(e){super(e),this.type="rule",this.nodes||(this.nodes=[])}}e.exports=s,s.default=s,n.registerRule(s)},7668(e){"use strict";const t={after:"\n",beforeClose:"\n",beforeComment:"\n",beforeDecl:"\n",beforeOpen:" ",beforeRule:"\n",colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};class r{constructor(e){this.builder=e}atrule(e,t){let r="@"+e.name,n=e.params?this.rawValue(e,"params"):"";if(void 0!==e.raws.afterName?r+=e.raws.afterName:n&&(r+=" "),e.nodes)this.block(e,r+n);else{let i=(e.raws.between||"")+(t?";":"");this.builder(r+n+i,e)}}beforeAfter(e,t){let r;r="decl"===e.type?this.raw(e,null,"beforeDecl"):"comment"===e.type?this.raw(e,null,"beforeComment"):"before"===t?this.raw(e,null,"beforeRule"):this.raw(e,null,"beforeClose");let n=e.parent,i=0;for(;n&&"root"!==n.type;)i+=1,n=n.parent;if(r.includes("\n")){let t=this.raw(e,null,"indent");if(t.length)for(let e=0;e0&&"comment"===e.nodes[t].type;)t-=1;let r=this.raw(e,"semicolon");for(let n=0;n{if(i=e.raws[r],void 0!==i)return!1})}var o;return void 0===i&&(i=t[n]),a.rawCache[n]=i,i}rawBeforeClose(e){let t;return e.walk(e=>{if(e.nodes&&e.nodes.length>0&&void 0!==e.raws.after)return t=e.raws.after,t.includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/\S/g,"")),t}rawBeforeComment(e,t){let r;return e.walkComments(e=>{if(void 0!==e.raws.before)return r=e.raws.before,r.includes("\n")&&(r=r.replace(/[^\n]+$/,"")),!1}),void 0===r?r=this.raw(t,null,"beforeDecl"):r&&(r=r.replace(/\S/g,"")),r}rawBeforeDecl(e,t){let r;return e.walkDecls(e=>{if(void 0!==e.raws.before)return r=e.raws.before,r.includes("\n")&&(r=r.replace(/[^\n]+$/,"")),!1}),void 0===r?r=this.raw(t,null,"beforeRule"):r&&(r=r.replace(/\S/g,"")),r}rawBeforeOpen(e){let t;return e.walk(e=>{if("decl"!==e.type&&(t=e.raws.between,void 0!==t))return!1}),t}rawBeforeRule(e){let t;return e.walk(r=>{if(r.nodes&&(r.parent!==e||e.first!==r)&&void 0!==r.raws.before)return t=r.raws.before,t.includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/\S/g,"")),t}rawColon(e){let t;return e.walkDecls(e=>{if(void 0!==e.raws.between)return t=e.raws.between.replace(/[^\s:]/g,""),!1}),t}rawEmptyBody(e){let t;return e.walk(e=>{if(e.nodes&&0===e.nodes.length&&(t=e.raws.after,void 0!==t))return!1}),t}rawIndent(e){if(e.raws.indent)return e.raws.indent;let t;return e.walk(r=>{let n=r.parent;if(n&&n!==e&&n.parent&&n.parent===e&&void 0!==r.raws.before){let e=r.raws.before.split("\n");return t=e[e.length-1],t=t.replace(/\S/g,""),!1}}),t}rawSemicolon(e){let t;return e.walk(e=>{if(e.nodes&&e.nodes.length&&"decl"===e.last.type&&(t=e.raws.semicolon,void 0!==t))return!1}),t}rawValue(e,t){let r=e[t],n=e.raws[t];return n&&n.value===r?n.raw:r}root(e){this.body(e),e.raws.after&&this.builder(e.raws.after)}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")}stringify(e,t){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,t)}}e.exports=r,r.default=r},3303(e,t,r){"use strict";let n=r(7668);function i(e,t){new n(t).stringify(e)}e.exports=i,i.default=i},4151(e){"use strict";e.exports.isClean=Symbol("isClean"),e.exports.my=Symbol("my")},5781(e){"use strict";const t="'".charCodeAt(0),r='"'.charCodeAt(0),n="\\".charCodeAt(0),i="/".charCodeAt(0),s="\n".charCodeAt(0),a=" ".charCodeAt(0),o="\f".charCodeAt(0),c="\t".charCodeAt(0),l="\r".charCodeAt(0),u="[".charCodeAt(0),h="]".charCodeAt(0),f="(".charCodeAt(0),A=")".charCodeAt(0),d="{".charCodeAt(0),p="}".charCodeAt(0),g=";".charCodeAt(0),y="*".charCodeAt(0),m=":".charCodeAt(0),w="@".charCodeAt(0),b=/[\t\n\f\r "#'()/;[\\\]{}]/g,E=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,v=/.[\r\n"'(/\\]/,k=/[\da-f]/i;e.exports=function(e,I={}){let B,C,S,D,x,K,P,U,T,F,M=e.css.valueOf(),R=I.ignoreErrors,Q=M.length,N=0,O=[],L=[];function G(t){throw e.error("Unclosed "+t,N)}return{back:function(e){L.push(e)},endOfFile:function(){return 0===L.length&&N>=Q},nextToken:function(e){if(L.length)return L.pop();if(N>=Q)return;let I=!!e&&e.ignoreUnclosed;switch(B=M.charCodeAt(N),B){case s:case a:case c:case l:case o:D=N;do{D+=1,B=M.charCodeAt(D)}while(B===a||B===s||B===c||B===l||B===o);K=["space",M.slice(N,D)],N=D-1;break;case u:case h:case d:case p:case m:case g:case A:{let e=String.fromCharCode(B);K=[e,e,N];break}case f:if(F=O.length?O.pop()[1]:"",T=M.charCodeAt(N+1),"url"===F&&T!==t&&T!==r&&T!==a&&T!==s&&T!==c&&T!==o&&T!==l){D=N;do{if(P=!1,D=M.indexOf(")",D+1),-1===D){if(R||I){D=N;break}G("bracket")}for(U=D;M.charCodeAt(U-1)===n;)U-=1,P=!P}while(P);K=["brackets",M.slice(N,D+1),N,D],N=D}else D=M.indexOf(")",N+1),C=M.slice(N,D+1),-1===D||v.test(C)?K=["(","(",N]:(K=["brackets",C,N,D],N=D);break;case t:case r:x=B===t?"'":'"',D=N;do{if(P=!1,D=M.indexOf(x,D+1),-1===D){if(R||I){D=N+1;break}G("string")}for(U=D;M.charCodeAt(U-1)===n;)U-=1,P=!P}while(P);K=["string",M.slice(N,D+1),N,D],N=D;break;case w:b.lastIndex=N+1,b.test(M),D=0===b.lastIndex?M.length-1:b.lastIndex-2,K=["at-word",M.slice(N,D+1),N,D],N=D;break;case n:for(D=N,S=!0;M.charCodeAt(D+1)===n;)D+=1,S=!S;if(B=M.charCodeAt(D+1),S&&B!==i&&B!==a&&B!==s&&B!==c&&B!==l&&B!==o&&(D+=1,k.test(M.charAt(D)))){for(;k.test(M.charAt(D+1));)D+=1;M.charCodeAt(D+1)===a&&(D+=1)}K=["word",M.slice(N,D+1),N,D],N=D;break;default:B===i&&M.charCodeAt(N+1)===y?(D=M.indexOf("*/",N+2)+1,0===D&&(R||I?D=M.length:G("comment")),K=["comment",M.slice(N,D+1),N,D],N=D):(E.lastIndex=N+1,E.test(M),D=0===E.lastIndex?M.length-1:E.lastIndex-2,K=["word",M.slice(N,D+1),N,D],O.push(K),N=D)}return N++,K},position:function(){return N}}}},6156(e){"use strict";let t={};e.exports=function(e){t[e]||(t[e]=!0,"undefined"!=typeof console&&console.warn&&console.warn(e))}},38(e){"use strict";class t{constructor(e,t={}){if(this.type="warning",this.text=e,t.node&&t.node.source){let e=t.node.rangeBy(t);this.line=e.start.line,this.column=e.start.column,this.endLine=e.end.line,this.endColumn=e.end.column}for(let e in t)this[e]=t[e]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}}e.exports=t,t.default=t},4728(e,t,r){const n=r(378),i=r(7151),{isPlainObject:s}=r(8682),a=r(4744),o=r(9466),{parse:c}=r(2895),l=["img","audio","video","picture","svg","object","map","iframe","embed"],u=["script","style"];function h(e,t){e&&Object.keys(e).forEach(function(r){t(e[r],r)})}function f(e,t){return{}.hasOwnProperty.call(e,t)}function A(e,t){const r=[];return h(e,function(e){t(e)&&r.push(e)}),r}e.exports=p;const d=/^[^\0\t\n\f\r /<=>]+$/;function p(e,t,r){if(null==e)return"";"number"==typeof e&&(e=e.toString());let y="",m="";function w(e,t){const r=this;this.tag=e,this.attribs=t||{},this.tagPosition=y.length,this.text="",this.openingTagLength=0,this.mediaChildren=[],this.updateParentNodeText=function(){K.length&&(K[K.length-1].text+=r.text)},this.updateParentNodeMediaChildren=function(){K.length&&l.includes(this.tag)&&K[K.length-1].mediaChildren.push(this.tag)}}(t=Object.assign({},p.defaults,t)).parser=Object.assign({},g,t.parser);const b=function(e){return!1===t.allowedTags||(t.allowedTags||[]).indexOf(e)>-1};u.forEach(function(e){b(e)&&!t.allowVulnerableTags&&console.warn(`\n\n⚠️ Your \`allowedTags\` option includes, \`${e}\`, which is inherently\nvulnerable to XSS attacks. Please remove it from \`allowedTags\`.\nOr, to disable this warning, add the \`allowVulnerableTags\` option\nand ensure you are accounting for this risk.\n\n`)});const E=t.nonTextTags||["script","style","textarea","option"];let v,k;t.allowedAttributes&&(v={},k={},h(t.allowedAttributes,function(e,t){v[t]=[];const r=[];e.forEach(function(e){"string"==typeof e&&e.indexOf("*")>=0?r.push(i(e).replace(/\\\*/g,".*")):v[t].push(e)}),r.length&&(k[t]=new RegExp("^("+r.join("|")+")$"))}));const I={},B={},C={};h(t.allowedClasses,function(e,t){if(v&&(f(v,t)||(v[t]=[]),v[t].push("class")),I[t]=e,Array.isArray(e)){const r=[];I[t]=[],C[t]=[],e.forEach(function(e){"string"==typeof e&&e.indexOf("*")>=0?r.push(i(e).replace(/\\\*/g,".*")):e instanceof RegExp?C[t].push(e):I[t].push(e)}),r.length&&(B[t]=new RegExp("^("+r.join("|")+")$"))}});const S={};let D,x,K,P,U,T,F;h(t.transformTags,function(e,t){let r;"function"==typeof e?r=e:"string"==typeof e&&(r=p.simpleTransform(e)),"*"===t?D=r:S[t]=r});let M=!1;Q();const R=new n.Parser({onopentag:function(e,r){if(t.onOpenTag&&t.onOpenTag(e,r),t.enforceHtmlBoundary&&"html"===e&&Q(),T)return void F++;const n=new w(e,r);K.push(n);let i=!1;const l=!!n.text;let u;if(f(S,e)&&(u=S[e](e,r),n.attribs=r=u.attribs,void 0!==u.text&&(n.innerText=u.text),e!==u.tagName&&(n.name=e=u.tagName,U[x]=u.tagName)),D&&(u=D(e,r),n.attribs=r=u.attribs,e!==u.tagName&&(n.name=e=u.tagName,U[x]=u.tagName)),(!b(e)||"recursiveEscape"===t.disallowedTagsMode&&!function(e){for(const t in e)if(f(e,t))return!1;return!0}(P)||null!=t.nestingLimit&&x>=t.nestingLimit)&&(i=!0,P[x]=!0,"discard"!==t.disallowedTagsMode&&"completelyDiscard"!==t.disallowedTagsMode||-1!==E.indexOf(e)&&(T=!0,F=1)),x++,i){if("discard"===t.disallowedTagsMode||"completelyDiscard"===t.disallowedTagsMode){if(n.innerText&&!l){const r=N(n.innerText);t.textFilter?y+=t.textFilter(r,e):y+=r,M=!0}return}m=y,y=""}y+="<"+e,"script"===e&&(t.allowedScriptHostnames||t.allowedScriptDomains)&&(n.innerText=""),i&&("escape"===t.disallowedTagsMode||"recursiveEscape"===t.disallowedTagsMode)&&t.preserveEscapedAttributes?h(r,function(e,t){y+=" "+t+'="'+N(e||"",!0)+'"'}):(!v||f(v,e)||v["*"])&&h(r,function(r,i){if(!d.test(i))return void delete n.attribs[i];if(""===r&&!t.allowedEmptyAttributes.includes(i)&&(t.nonBooleanAttributes.includes(i)||t.nonBooleanAttributes.includes("*")))return void delete n.attribs[i];let l=!1;if(!v||f(v,e)&&-1!==v[e].indexOf(i)||v["*"]&&-1!==v["*"].indexOf(i)||f(k,e)&&k[e].test(i)||k["*"]&&k["*"].test(i))l=!0;else if(v&&v[e])for(const t of v[e])if(s(t)&&t.name&&t.name===i){l=!0;let e="";if(!0===t.multiple){const n=r.split(" ");for(const r of n)-1!==t.values.indexOf(r)&&(""===e?e=r:e+=" "+r)}else t.values.indexOf(r)>=0&&(e=r);r=e}if(l){if(-1!==t.allowedSchemesAppliedToAttributes.indexOf(i)&&O(e,r))return void delete n.attribs[i];if("script"===e&&"src"===i){let e=!0;try{const n=L(r);if(t.allowedScriptHostnames||t.allowedScriptDomains){const r=(t.allowedScriptHostnames||[]).find(function(e){return e===n.url.hostname}),i=(t.allowedScriptDomains||[]).find(function(e){return n.url.hostname===e||n.url.hostname.endsWith(`.${e}`)});e=r||i}}catch(t){e=!1}if(!e)return void delete n.attribs[i]}if("iframe"===e&&"src"===i){let e=!0;try{const n=L(r);if(n.isRelativeUrl)e=f(t,"allowIframeRelativeUrls")?t.allowIframeRelativeUrls:!t.allowedIframeHostnames&&!t.allowedIframeDomains;else if(t.allowedIframeHostnames||t.allowedIframeDomains){const r=(t.allowedIframeHostnames||[]).find(function(e){return e===n.url.hostname}),i=(t.allowedIframeDomains||[]).find(function(e){return n.url.hostname===e||n.url.hostname.endsWith(`.${e}`)});e=r||i}}catch(t){e=!1}if(!e)return void delete n.attribs[i]}if("srcset"===i)try{let e=o(r);if(e.forEach(function(e){O("srcset",e.url)&&(e.evil=!0)}),e=A(e,function(e){return!e.evil}),!e.length)return void delete n.attribs[i];r=A(e,function(e){return!e.evil}).map(function(e){if(!e.url)throw new Error("URL missing");return e.url+(e.w?` ${e.w}w`:"")+(e.h?` ${e.h}h`:"")+(e.d?` ${e.d}x`:"")}).join(", "),n.attribs[i]=r}catch(e){return void delete n.attribs[i]}if("class"===i){const t=I[e],s=I["*"],o=B[e],c=C[e],l=C["*"],f=[o,B["*"]].concat(c,l).filter(function(e){return e});if(!(u=r,h=t&&s?a(t,s):t||s,p=f,r=h?(u=u.split(/\s+/)).filter(function(e){return-1!==h.indexOf(e)||p.some(function(t){return t.test(e)})}).join(" "):u).length)return void delete n.attribs[i]}if("style"===i)if(t.parseStyleAttributes)try{if(r=function(e){return e.nodes[0].nodes.reduce(function(e,t){return e.push(`${t.prop}:${t.value}${t.important?" !important":""}`),e},[]).join(";")}(function(e,t){if(!t)return e;const r=e.nodes[0];let n;return n=t[r.selector]&&t["*"]?a(t[r.selector],t["*"]):t[r.selector]||t["*"],n&&(e.nodes[0].nodes=r.nodes.reduce(function(e){return function(t,r){return f(e,r.prop)&&e[r.prop].some(function(e){return e.test(r.value)})&&t.push(r),t}}(n),[])),e}(c(e+" {"+r+"}",{map:!1}),t.allowedStyles)),0===r.length)return void delete n.attribs[i]}catch(t){return"undefined"!=typeof window&&console.warn('Failed to parse "'+e+" {"+r+"}\", If you're running this in a browser, we recommend to disable style parsing: options.parseStyleAttributes: false, since this only works in a node environment due to a postcss dependency, More info: https://github.com/apostrophecms/sanitize-html/issues/547"),void delete n.attribs[i]}else if(t.allowedStyles)throw new Error("allowedStyles option cannot be used together with parseStyleAttributes: false.");y+=" "+i,r&&r.length?y+='="'+N(r,!0)+'"':t.allowedEmptyAttributes.includes(i)&&(y+='=""')}else delete n.attribs[i];var u,h,p}),-1!==t.selfClosing.indexOf(e)?y+=" />":(y+=">",!n.innerText||l||t.textFilter||(y+=N(n.innerText),M=!0)),i&&(y=m+N(y),m=""),n.openingTagLength=y.length-n.tagPosition},ontext:function(e){if(T)return;const r=K[K.length-1];let n;if(r&&(n=r.tag,e=void 0!==r.innerText?r.innerText:e),"completelyDiscard"!==t.disallowedTagsMode||b(n))if("discard"!==t.disallowedTagsMode&&"completelyDiscard"!==t.disallowedTagsMode||"script"!==n&&"style"!==n)if("discard"!==t.disallowedTagsMode&&"completelyDiscard"!==t.disallowedTagsMode||-1===E.indexOf(n)){if(!M){const r=N(e,!1);t.textFilter?y+=t.textFilter(r,n):y+=r}}else y+=e;else y+=e;else e="";K.length&&(K[K.length-1].text+=e)},onclosetag:function(e,r){if(t.onCloseTag&&t.onCloseTag(e,r),T){if(F--,F)return;T=!1}const n=K.pop();if(!n)return;if(n.tag!==e)return void K.push(n);T=!!t.enforceHtmlBoundary&&"html"===e,x--;const i=P[x];if(i){if(delete P[x],"discard"===t.disallowedTagsMode||"completelyDiscard"===t.disallowedTagsMode)return void n.updateParentNodeText();m=y,y=""}if(U[x]&&(e=U[x],delete U[x]),t.exclusiveFilter){const e=t.exclusiveFilter(n);if("excludeTag"===e)return i&&(y=m,m=""),void(y=y.substring(0,n.tagPosition)+y.substring(n.tagPosition+n.openingTagLength));if(e)return void(y=y.substring(0,n.tagPosition))}n.updateParentNodeMediaChildren(),n.updateParentNodeText(),-1!==t.selfClosing.indexOf(e)||r&&!b(e)&&["escape","recursiveEscape"].indexOf(t.disallowedTagsMode)>=0?i&&(y=m,m=""):(y+="",i&&(y=m+N(y),m=""),M=!1)}},t.parser);if(R.write(e),R.end(),"escape"===t.disallowedTagsMode||"recursiveEscape"===t.disallowedTagsMode){const t=R.endIndex;if(null!=t&&t>=0&&t0&&""===y&&(y=N(e))}return y;function Q(){y="",x=0,K=[],P={},U={},T=!1,F=0}function N(e,r){return"string"!=typeof e&&(e+=""),t.parser.decodeEntities&&(e=e.replace(/&/g,"&").replace(//g,">"),r&&(e=e.replace(/"/g,"""))),e=e.replace(/&(?![a-zA-Z0-9#]{1,20};)/g,"&").replace(//g,">"),r&&(e=e.replace(/"/g,""")),e}function O(e,r){for(r=r.replace(/[\x00-\x20]+/g,"");;){const e=r.indexOf("\x3c!--");if(-1===e)break;const t=r.indexOf("--\x3e",e+4);if(-1===t)break;r=r.substring(0,e)+r.substring(t+3)}const n=r.match(/^([a-zA-Z][a-zA-Z0-9.\-+]*):/);if(!n)return!!r.match(/^[/\\]{2}/)&&!t.allowProtocolRelative;const i=n[1].toLowerCase();return f(t.allowedSchemesByTag,e)?-1===t.allowedSchemesByTag[e].indexOf(i):!t.allowedSchemes||-1===t.allowedSchemes.indexOf(i)}function L(e){if((e=e.replace(/^(\w+:)?\s*[\\/]\s*[\\/]/,"$1//")).startsWith("relative:"))throw new Error("relative: exploit attempt");let t="relative://relative-site";for(let e=0;e<100;e++)t+=`/${e}`;const r=new URL(e,t);return{isRelativeUrl:r&&"relative-site"===r.hostname&&"relative:"===r.protocol,url:r}}}const g={decodeEntities:!0};p.defaults={allowedTags:["address","article","aside","footer","header","h1","h2","h3","h4","h5","h6","hgroup","main","nav","section","blockquote","dd","div","dl","dt","figcaption","figure","hr","li","menu","ol","p","pre","ul","a","abbr","b","bdi","bdo","br","cite","code","data","dfn","em","i","kbd","mark","q","rb","rp","rt","rtc","ruby","s","samp","small","span","strong","sub","sup","time","u","var","wbr","caption","col","colgroup","table","tbody","td","tfoot","th","thead","tr"],nonBooleanAttributes:["abbr","accept","accept-charset","accesskey","action","allow","alt","as","autocapitalize","autocomplete","blocking","charset","cite","class","color","cols","colspan","content","contenteditable","coords","crossorigin","data","datetime","decoding","dir","dirname","download","draggable","enctype","enterkeyhint","fetchpriority","for","form","formaction","formenctype","formmethod","formtarget","headers","height","hidden","high","href","hreflang","http-equiv","id","imagesizes","imagesrcset","inputmode","integrity","is","itemid","itemprop","itemref","itemtype","kind","label","lang","list","loading","low","max","maxlength","media","method","min","minlength","name","nonce","optimum","pattern","ping","placeholder","popover","popovertarget","popovertargetaction","poster","preload","referrerpolicy","rel","rows","rowspan","sandbox","scope","shape","size","sizes","slot","span","spellcheck","src","srcdoc","srclang","srcset","start","step","style","tabindex","target","title","translate","type","usemap","value","width","wrap","onauxclick","onafterprint","onbeforematch","onbeforeprint","onbeforeunload","onbeforetoggle","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextlost","oncontextmenu","oncontextrestored","oncopy","oncuechange","oncut","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","onformdata","onhashchange","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onlanguagechange","onload","onloadeddata","onloadedmetadata","onloadstart","onmessage","onmessageerror","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onoffline","ononline","onpagehide","onpageshow","onpaste","onpause","onplay","onplaying","onpopstate","onprogress","onratechange","onreset","onresize","onrejectionhandled","onscroll","onscrollend","onsecuritypolicyviolation","onseeked","onseeking","onselect","onslotchange","onstalled","onstorage","onsubmit","onsuspend","ontimeupdate","ontoggle","onunhandledrejection","onunload","onvolumechange","onwaiting","onwheel"],disallowedTagsMode:"discard",allowedAttributes:{a:["href","name","target"],img:["src","srcset","alt","title","width","height","loading"]},allowedEmptyAttributes:["alt"],selfClosing:["img","br","hr","area","base","basefont","input","link","meta"],allowedSchemes:["http","https","ftp","mailto","tel"],allowedSchemesByTag:{},allowedSchemesAppliedToAttributes:["href","src","cite"],allowProtocolRelative:!0,enforceHtmlBoundary:!1,parseStyleAttributes:!0,preserveEscapedAttributes:!1},p.simpleTransform=function(e,t,r){return r=void 0===r||r,t=t||{},function(n,i){let s;if(r)for(s in t)i[s]=t[s];else i=t;return{tagName:e,attribs:i}}}},7151(e){"use strict";e.exports=e=>{if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}},1558(e){"use strict";e.exports=require("../../bundles/raw/web-stream-tools")},9746(){},9977(){},197(){},1866(){},2739(){},5979(e,t){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.fromCodePoint=void 0,t.replaceCodePoint=i,t.decodeCodePoint=function(e){return(0,t.fromCodePoint)(i(e))};const n=new Map([[0,65533],[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 i(e){var t;return e>=55296&&e<=57343||e>1114111?65533:null!==(t=n.get(e))&&void 0!==t?t:e}t.fromCodePoint=null!==(r=String.fromCodePoint)&&void 0!==r?r:e=>{let t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|1023&e),t+=String.fromCharCode(e),t}},9299(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.xmlDecodeTree=t.htmlDecodeTree=t.replaceCodePoint=t.fromCodePoint=t.decodeCodePoint=t.EntityDecoder=t.DecodingMode=void 0,t.determineBranch=p,t.decodeHTML=function(e,t=l.Legacy){return g(e,t)},t.decodeHTMLAttribute=function(e){return g(e,l.Attribute)},t.decodeHTMLStrict=function(e){return g(e,l.Strict)},t.decodeXML=function(e){return y(e,l.Strict)};const n=r(5979),i=r(642),s=r(1838),a=r(4865);var o,c,l;function u(e){return e>=o.ZERO&&e<=o.NINE}function h(e){return e>=o.UPPER_A&&e<=o.UPPER_F||e>=o.LOWER_A&&e<=o.LOWER_F}function f(e){return e===o.EQUALS||function(e){return e>=o.UPPER_A&&e<=o.UPPER_Z||e>=o.LOWER_A&&e<=o.LOWER_Z||u(e)}(e)}!function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.LOWER_Z=122]="LOWER_Z",e[e.UPPER_A=65]="UPPER_A",e[e.UPPER_F=70]="UPPER_F",e[e.UPPER_Z=90]="UPPER_Z"}(o||(o={})),function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"}(c||(c={})),function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"}(l||(t.DecodingMode=l={}));class A{constructor(e,t,r){this.decodeTree=e,this.emitCodePoint=t,this.errors=r,this.state=c.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=l.Strict,this.runConsumed=0}startEntity(e){this.decodeMode=e,this.state=c.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1,this.runConsumed=0}write(e,t){switch(this.state){case c.EntityStart:return e.charCodeAt(t)===o.NUM?(this.state=c.NumericStart,this.consumed+=1,this.stateNumericStart(e,t+1)):(this.state=c.NamedEntity,this.stateNamedEntity(e,t));case c.NumericStart:return this.stateNumericStart(e,t);case c.NumericDecimal:return this.stateNumericDecimal(e,t);case c.NumericHex:return this.stateNumericHex(e,t);case c.NamedEntity:return this.stateNamedEntity(e,t)}}stateNumericStart(e,t){return t>=e.length?-1:(32|e.charCodeAt(t))===o.LOWER_X?(this.state=c.NumericHex,this.consumed+=1,this.stateNumericHex(e,t+1)):(this.state=c.NumericDecimal,this.stateNumericDecimal(e,t))}stateNumericHex(e,t){for(;t>14;for(;t>7;if(0===this.runConsumed){const r=n&a.BinTrieFlags.JUMP_TABLE;if(e.charCodeAt(t)!==r)return 0===this.result?0:this.emitNotTerminatedNamedEntity();t++,this.excess++,this.runConsumed++}for(;this.runConsumed=e.length)return-1;const n=this.runConsumed-1,i=r[this.treeIndex+1+(n>>1)],s=n%2==0?255&i:i>>8&255;if(e.charCodeAt(t)!==s)return this.runConsumed=0,0===this.result?0:this.emitNotTerminatedNamedEntity();t++,this.excess++,this.runConsumed++}this.runConsumed=0,this.treeIndex+=1+(s>>1),n=r[this.treeIndex],i=(n&a.BinTrieFlags.VALUE_LENGTH)>>14}if(t>=e.length)break;const s=e.charCodeAt(t);if(s===o.SEMI&&0!==i&&0!==(n&a.BinTrieFlags.FLAG13))return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);if(this.treeIndex=p(r,n,this.treeIndex+Math.max(1,i),s),this.treeIndex<0)return 0===this.result||this.decodeMode===l.Attribute&&(0===i||f(s))?0:this.emitNotTerminatedNamedEntity();if(n=r[this.treeIndex],i=(n&a.BinTrieFlags.VALUE_LENGTH)>>14,0!==i){if(s===o.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);this.decodeMode!==l.Strict&&0===(n&a.BinTrieFlags.FLAG13)&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}t++,this.excess++}return-1}emitNotTerminatedNamedEntity(){var e;const{result:t,decodeTree:r}=this,n=(r[t]&a.BinTrieFlags.VALUE_LENGTH)>>14;return this.emitNamedEntityData(t,n,this.consumed),null===(e=this.errors)||void 0===e||e.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(e,t,r){const{decodeTree:n}=this;return this.emitCodePoint(1===t?n[e]&~(a.BinTrieFlags.VALUE_LENGTH|a.BinTrieFlags.FLAG13):n[e+1],r),3===t&&this.emitCodePoint(n[e+2],r),r}end(){var e;switch(this.state){case c.NamedEntity:return 0===this.result||this.decodeMode===l.Attribute&&this.result!==this.treeIndex?0:this.emitNotTerminatedNamedEntity();case c.NumericDecimal:return this.emitNumericEntity(0,2);case c.NumericHex:return this.emitNumericEntity(0,3);case c.NumericStart:return null===(e=this.errors)||void 0===e||e.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case c.EntityStart:return 0}}}function d(e){let t="";const r=new A(e,e=>t+=(0,n.fromCodePoint)(e));return function(e,n){let i=0,s=0;for(;(s=e.indexOf("&",s))>=0;){t+=e.slice(i,s),r.startEntity(n);const a=r.write(e,s+1);if(a<0){i=s+r.end();break}i=s+a,s=0===a?i+1:i}const a=t+e.slice(i);return t="",a}}function p(e,t,r,n){const i=(t&a.BinTrieFlags.BRANCH_LENGTH)>>7,s=t&a.BinTrieFlags.JUMP_TABLE;if(0===i)return 0!==s&&n===s?r:-1;if(s){const t=n-s;return t<0||t>=i?-1:e[r+t]-1}const o=i+1>>1;let c=0,l=i-1;for(;c<=l;){const t=c+l>>>1,i=e[r+(t>>1)]>>8*(1&t)&255;if(in))return e[r+o+t];l=t-1}}return-1}t.EntityDecoder=A;const g=d(i.htmlDecodeTree),y=d(s.xmlDecodeTree);var m=r(5979);Object.defineProperty(t,"decodeCodePoint",{enumerable:!0,get:function(){return m.decodeCodePoint}}),Object.defineProperty(t,"fromCodePoint",{enumerable:!0,get:function(){return m.fromCodePoint}}),Object.defineProperty(t,"replaceCodePoint",{enumerable:!0,get:function(){return m.replaceCodePoint}});var w=r(642);Object.defineProperty(t,"htmlDecodeTree",{enumerable:!0,get:function(){return w.htmlDecodeTree}});var b=r(1838);Object.defineProperty(t,"xmlDecodeTree",{enumerable:!0,get:function(){return b.xmlDecodeTree}})},642(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.htmlDecodeTree=void 0;const n=r(275);t.htmlDecodeTree=(0,n.decodeBase64)("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IA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YwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWls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ZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg")},1838(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.xmlDecodeTree=void 0;const n=r(275);t.xmlDecodeTree=(0,n.decodeBase64)("AAJhZ2xxBwARABMAFQBtAg0AAAAAAA8AcAAmYG8AcwAnYHQAPmB0ADxg9SFvdCJg")},4865(e,t){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.BinTrieFlags=void 0,function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.FLAG13=8192]="FLAG13",e[e.BRANCH_LENGTH=8064]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"}(r||(t.BinTrieFlags=r={}))},275(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decodeBase64=function(e){const t="function"==typeof atob?atob(e):"function"==typeof Buffer.from?Buffer.from(e,"base64").toString("binary"):new Buffer(e,"base64").toString("binary"),r=-2&t.length,n=new Uint16Array(r/2);for(let e=0,i=0;e0&&s.has(this.stack[0]);){const e=this.stack.shift();null===(r=(t=this.cbs).onclosetag)||void 0===r||r.call(t,e,!0)}this.isVoidElement(e)||(this.stack.unshift(e),this.htmlMode&&(g.has(e)?this.foreignContext.unshift(!0):y.has(e)&&this.foreignContext.unshift(!1))),null===(i=(n=this.cbs).onopentagname)||void 0===i||i.call(n,e),this.cbs.onopentag&&(this.attribs={})}endOpenTag(e){var t,r;this.startIndex=this.openTagStart,this.attribs&&(null===(r=(t=this.cbs).onopentag)||void 0===r||r.call(t,this.tagname,this.attribs,e),this.attribs=null),this.cbs.onclosetag&&this.isVoidElement(this.tagname)&&this.cbs.onclosetag(this.tagname,!0),this.tagname=""}onopentagend(e){this.endIndex=e,this.endOpenTag(!1),this.startIndex=e+1}onclosetag(e,t){var r,n,i,s,a,o,c,l;this.endIndex=t;let u=this.getSlice(e,t);if(this.lowerCaseTagNames&&(u=u.toLowerCase()),this.htmlMode&&(g.has(u)||y.has(u))&&this.foreignContext.shift(),this.isVoidElement(u))this.htmlMode&&"br"===u&&(null===(s=(i=this.cbs).onopentagname)||void 0===s||s.call(i,"br"),null===(o=(a=this.cbs).onopentag)||void 0===o||o.call(a,"br",{},!0),null===(l=(c=this.cbs).onclosetag)||void 0===l||l.call(c,"br",!1));else{const e=this.stack.indexOf(u);if(-1!==e)for(let t=0;t<=e;t++){const i=this.stack.shift();null===(n=(r=this.cbs).onclosetag)||void 0===n||n.call(r,i,t!==e)}else this.htmlMode&&"p"===u&&(this.emitOpenTag("p"),this.closeCurrentTag(!0))}this.startIndex=t+1}onselfclosingtag(e){this.endIndex=e,this.recognizeSelfClosing||this.foreignContext[0]?(this.closeCurrentTag(!1),this.startIndex=e+1):this.onopentagend(e)}closeCurrentTag(e){var t,r;const n=this.tagname;this.endOpenTag(e),this.stack[0]===n&&(null===(r=(t=this.cbs).onclosetag)||void 0===r||r.call(t,n,!e),this.stack.shift())}onattribname(e,t){this.startIndex=e;const r=this.getSlice(e,t);this.attribname=this.lowerCaseAttributeNames?r.toLowerCase():r}onattribdata(e,t){this.attribvalue+=this.getSlice(e,t)}onattribentity(e){this.attribvalue+=(0,c.fromCodePoint)(e)}onattribend(e,t){var r,n;this.endIndex=t,null===(n=(r=this.cbs).onattribute)||void 0===n||n.call(r,this.attribname,this.attribvalue,e===o.QuoteType.Double?'"':e===o.QuoteType.Single?"'":e===o.QuoteType.NoValue?void 0:null),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribvalue=""}getInstructionName(e){const t=e.search(m);let r=t<0?e:e.substr(0,t);return this.lowerCaseTagNames&&(r=r.toLowerCase()),r}ondeclaration(e,t){this.endIndex=t;const r=this.getSlice(e,t);if(this.cbs.onprocessinginstruction){const e=this.getInstructionName(r);this.cbs.onprocessinginstruction(`!${e}`,`!${r}`)}this.startIndex=t+1}onprocessinginstruction(e,t){this.endIndex=t;const r=this.getSlice(e,t);if(this.cbs.onprocessinginstruction){const e=this.getInstructionName(r);this.cbs.onprocessinginstruction(`?${e}`,`?${r}`)}this.startIndex=t+1}oncomment(e,t,r){var n,i,s,a;this.endIndex=t,null===(i=(n=this.cbs).oncomment)||void 0===i||i.call(n,this.getSlice(e,t-r)),null===(a=(s=this.cbs).oncommentend)||void 0===a||a.call(s),this.startIndex=t+1}oncdata(e,t,r){var n,i,s,a,o,c,l,u,h,f;this.endIndex=t;const A=this.getSlice(e,t-r);!this.htmlMode||this.options.recognizeCDATA?(null===(i=(n=this.cbs).oncdatastart)||void 0===i||i.call(n),null===(a=(s=this.cbs).ontext)||void 0===a||a.call(s,A),null===(c=(o=this.cbs).oncdataend)||void 0===c||c.call(o)):(null===(u=(l=this.cbs).oncomment)||void 0===u||u.call(l,`[CDATA[${A}]]`),null===(f=(h=this.cbs).oncommentend)||void 0===f||f.call(h)),this.startIndex=t+1}onend(){var e,t;if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(let e=0;e=this.buffers[0].length;)this.shiftBuffer();let r=this.buffers[0].slice(e-this.bufferOffset,t-this.bufferOffset);for(;t-this.bufferOffset>this.buffers[0].length;)this.shiftBuffer(),r+=this.buffers[0].slice(0,t-this.bufferOffset);return r}shiftBuffer(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()}write(e){var t,r;this.ended?null===(r=(t=this.cbs).onerror)||void 0===r||r.call(t,new Error(".write() after done!")):(this.buffers.push(e),this.tokenizer.running&&(this.tokenizer.write(e),this.writeIndex++))}end(e){var t,r;this.ended?null===(r=(t=this.cbs).onerror)||void 0===r||r.call(t,new Error(".end() after done!")):(e&&this.write(e),this.ended=!0,this.tokenizer.end())}pause(){this.tokenizer.pause()}resume(){for(this.tokenizer.resume();this.tokenizer.running&&this.writeIndexthis.emitCodePoint(e,t))}reset(){this.state=s.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=s.Text,this.currentSequence=void 0,this.running=!0,this.offset=0}write(e){this.offset+=this.buffer.length,this.buffer=e,this.parse()}end(){this.running&&this.finish()}pause(){this.running=!1}resume(){this.running=!0,this.indexthis.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=s.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&e===i.Amp&&this.startEntity()}stateSpecialStartSequence(e){const t=this.sequenceIndex===this.currentSequence.length;if(t?c(e):(32|e)===this.currentSequence[this.sequenceIndex]){if(!t)return void this.sequenceIndex++}else this.isSpecial=!1;this.sequenceIndex=0,this.state=s.InTagName,this.stateInTagName(e)}stateInSpecialTag(e){if(this.sequenceIndex===this.currentSequence.length){if(e===i.Gt||o(e)){const t=this.index-this.currentSequence.length;if(this.sectionStart=i.LowerA&&e<=i.LowerZ||e>=i.UpperA&&e<=i.UpperZ}(e)}startSpecial(e,t){this.isSpecial=!0,this.currentSequence=e,this.sequenceIndex=t,this.state=s.SpecialStartSequence}stateBeforeTagName(e){if(e===i.ExclamationMark)this.state=s.BeforeDeclaration,this.sectionStart=this.index+1;else if(e===i.Questionmark)this.state=s.InProcessingInstruction,this.sectionStart=this.index+1;else if(this.isTagStartChar(e)){const t=32|e;this.sectionStart=this.index,this.xmlMode?this.state=s.InTagName:t===l.ScriptEnd[2]?this.state=s.BeforeSpecialS:t===l.TitleEnd[2]||t===l.XmpEnd[2]?this.state=s.BeforeSpecialT:this.state=s.InTagName}else e===i.Slash?this.state=s.BeforeClosingTagName:(this.state=s.Text,this.stateText(e))}stateInTagName(e){c(e)&&(this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=s.BeforeAttributeName,this.stateBeforeAttributeName(e))}stateBeforeClosingTagName(e){o(e)||(e===i.Gt?this.state=s.Text:(this.state=this.isTagStartChar(e)?s.InClosingTagName:s.InSpecialComment,this.sectionStart=this.index))}stateInClosingTagName(e){(e===i.Gt||o(e))&&(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=s.AfterClosingTagName,this.stateAfterClosingTagName(e))}stateAfterClosingTagName(e){(e===i.Gt||this.fastForwardTo(i.Gt))&&(this.state=s.Text,this.sectionStart=this.index+1)}stateBeforeAttributeName(e){e===i.Gt?(this.cbs.onopentagend(this.index),this.isSpecial?(this.state=s.InSpecialTag,this.sequenceIndex=0):this.state=s.Text,this.sectionStart=this.index+1):e===i.Slash?this.state=s.InSelfClosingTag:o(e)||(this.state=s.InAttributeName,this.sectionStart=this.index)}stateInSelfClosingTag(e){e===i.Gt?(this.cbs.onselfclosingtag(this.index),this.state=s.Text,this.sectionStart=this.index+1,this.isSpecial=!1):o(e)||(this.state=s.BeforeAttributeName,this.stateBeforeAttributeName(e))}stateInAttributeName(e){(e===i.Eq||c(e))&&(this.cbs.onattribname(this.sectionStart,this.index),this.sectionStart=this.index,this.state=s.AfterAttributeName,this.stateAfterAttributeName(e))}stateAfterAttributeName(e){e===i.Eq?this.state=s.BeforeAttributeValue:e===i.Slash||e===i.Gt?(this.cbs.onattribend(a.NoValue,this.sectionStart),this.sectionStart=-1,this.state=s.BeforeAttributeName,this.stateBeforeAttributeName(e)):o(e)||(this.cbs.onattribend(a.NoValue,this.sectionStart),this.state=s.InAttributeName,this.sectionStart=this.index)}stateBeforeAttributeValue(e){e===i.DoubleQuote?(this.state=s.InAttributeValueDq,this.sectionStart=this.index+1):e===i.SingleQuote?(this.state=s.InAttributeValueSq,this.sectionStart=this.index+1):o(e)||(this.sectionStart=this.index,this.state=s.InAttributeValueNq,this.stateInAttributeValueNoQuotes(e))}handleInAttributeValue(e,t){e===t||!this.decodeEntities&&this.fastForwardTo(t)?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(t===i.DoubleQuote?a.Double:a.Single,this.index+1),this.state=s.BeforeAttributeName):this.decodeEntities&&e===i.Amp&&this.startEntity()}stateInAttributeValueDoubleQuotes(e){this.handleInAttributeValue(e,i.DoubleQuote)}stateInAttributeValueSingleQuotes(e){this.handleInAttributeValue(e,i.SingleQuote)}stateInAttributeValueNoQuotes(e){o(e)||e===i.Gt?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(a.Unquoted,this.index),this.state=s.BeforeAttributeName,this.stateBeforeAttributeName(e)):this.decodeEntities&&e===i.Amp&&this.startEntity()}stateBeforeDeclaration(e){e===i.OpeningSquareBracket?(this.state=s.CDATASequence,this.sequenceIndex=0):this.state=e===i.Dash?s.BeforeComment:s.InDeclaration}stateInDeclaration(e){(e===i.Gt||this.fastForwardTo(i.Gt))&&(this.cbs.ondeclaration(this.sectionStart,this.index),this.state=s.Text,this.sectionStart=this.index+1)}stateInProcessingInstruction(e){(e===i.Gt||this.fastForwardTo(i.Gt))&&(this.cbs.onprocessinginstruction(this.sectionStart,this.index),this.state=s.Text,this.sectionStart=this.index+1)}stateBeforeComment(e){e===i.Dash?(this.state=s.InCommentLike,this.currentSequence=l.CommentEnd,this.sequenceIndex=2,this.sectionStart=this.index+1):this.state=s.InDeclaration}stateInSpecialComment(e){(e===i.Gt||this.fastForwardTo(i.Gt))&&(this.cbs.oncomment(this.sectionStart,this.index,0),this.state=s.Text,this.sectionStart=this.index+1)}stateBeforeSpecialS(e){const t=32|e;t===l.ScriptEnd[3]?this.startSpecial(l.ScriptEnd,4):t===l.StyleEnd[3]?this.startSpecial(l.StyleEnd,4):(this.state=s.InTagName,this.stateInTagName(e))}stateBeforeSpecialT(e){switch(32|e){case l.TitleEnd[3]:this.startSpecial(l.TitleEnd,4);break;case l.TextareaEnd[3]:this.startSpecial(l.TextareaEnd,4);break;case l.XmpEnd[3]:this.startSpecial(l.XmpEnd,4);break;default:this.state=s.InTagName,this.stateInTagName(e)}}startEntity(){this.baseState=this.state,this.state=s.InEntity,this.entityStart=this.index,this.entityDecoder.startEntity(this.xmlMode?n.DecodingMode.Strict:this.baseState===s.Text||this.baseState===s.InSpecialTag?n.DecodingMode.Legacy:n.DecodingMode.Attribute)}stateInEntity(){const e=this.index-this.offset,t=this.entityDecoder.write(this.buffer,e);if(t>=0)this.state=this.baseState,0===t&&(this.index-=1);else{if(e=e||(this.state===s.InCommentLike?this.currentSequence===l.CdataEnd?this.cbs.oncdata(this.sectionStart,e,0):this.cbs.oncomment(this.sectionStart,e,0):this.state===s.InTagName||this.state===s.BeforeAttributeName||this.state===s.BeforeAttributeValue||this.state===s.AfterAttributeName||this.state===s.InAttributeName||this.state===s.InAttributeValueSq||this.state===s.InAttributeValueDq||this.state===s.InAttributeValueNq||this.state===s.InClosingTagName||this.cbs.ontext(this.sectionStart,e))}emitCodePoint(e,t){this.baseState!==s.Text&&this.baseState!==s.InSpecialTag?(this.sectionStarte(t,n.root),t,r);return new c.Parser(n,t)},t.createDomStream=function(e,t,r){const n=new u.DomHandler(e,t,r);return new c.Parser(n,t)},t.parseFeed=function(e,t=y){return(0,p.getFeed)(A(e,t))};const c=r(2067);var l=r(2067);Object.defineProperty(t,"Parser",{enumerable:!0,get:function(){return l.Parser}});const u=r(1141);var h=r(1141);function f(e,t){const r=new u.DomHandler(void 0,t);return new c.Parser(r,t).end(e),r.root}function A(e,t){return f(e,t).children}Object.defineProperty(t,"DomHandler",{enumerable:!0,get:function(){return h.DomHandler}}),Object.defineProperty(t,"DefaultHandler",{enumerable:!0,get:function(){return h.DomHandler}});var d=r(8391);Object.defineProperty(t,"Tokenizer",{enumerable:!0,get:function(){return o(d).default}}),Object.defineProperty(t,"QuoteType",{enumerable:!0,get:function(){return d.QuoteType}}),t.ElementType=a(r(5413));const p=r(8888);var g=r(8888);Object.defineProperty(t,"getFeed",{enumerable:!0,get:function(){return g.getFeed}});const y={xmlMode:!0};t.DomUtils=a(r(8888))},5042(e){e.exports={nanoid:(e=21)=>{let t="",r=0|e;for(;r--;)t+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[64*Math.random()|0];return t},customAlphabet:(e,t=21)=>(r=t)=>{let n="",i=0|r;for(;i--;)n+=e[Math.random()*e.length|0];return n}}},9275(e,t,r){"use strict";r.r(t),r.d(t,{ArrayStream:()=>n.ArrayStream,cancel:()=>n.cancel,clone:()=>n.clone,concat:()=>n.concat,concatStream:()=>n.concatStream,concatUint8Array:()=>i.Cs,fromAsync:()=>n.fromAsync,getReader:()=>n.getReader,getWriter:()=>n.getWriter,isArrayStream:()=>i.AS,isStream:()=>i.rL,isUint8Array:()=>i.mg,parse:()=>n.parse,passiveClone:()=>n.passiveClone,pipe:()=>n.pipe,readToEnd:()=>n.readToEnd,slice:()=>n.slice,toStream:()=>n.toStream,transform:()=>n.transform,transformPair:()=>n.transformPair,transformRaw:()=>n.transformRaw});var n=r(8877),i=r(7971)},8877(e,t,r){"use strict";r.d(t,{ArrayStream:()=>o.S5,cancel:()=>k,clone:()=>m,concat:()=>u,concatStream:()=>h,fromAsync:()=>I,getReader:()=>B,getWriter:()=>C,parse:()=>y,passiveClone:()=>w,pipe:()=>f,readToEnd:()=>v,slice:()=>E,toStream:()=>c,transform:()=>p,transformPair:()=>g,transformRaw:()=>A});var n=r(7971);const i=new WeakSet,s=Symbol("externalBuffer");function a(e){if(this.stream=e,e[s]&&(this[s]=e[s].slice()),(0,n.AS)(e)){const t=e.getReader();return this._read=t.read.bind(t),this._releaseLock=()=>{},void(this._cancel=()=>{})}if((0,n.rL)(e)){const t=e.getReader();return this._read=t.read.bind(t),this._releaseLock=()=>{t.closed.catch(function(){}),t.releaseLock()},void(this._cancel=t.cancel.bind(t))}let t=!1;this._read=async()=>t||i.has(e)?{value:void 0,done:!0}:(t=!0,{value:e,done:!1}),this._releaseLock=()=>{if(t)try{i.add(e)}catch(e){}}}a.prototype.read=async function(){return this[s]&&this[s].length?{done:!1,value:this[s].shift()}:this._read()},a.prototype.releaseLock=function(){this[s]&&(this.stream[s]=this[s]),this._releaseLock()},a.prototype.cancel=function(e){return this._cancel(e)},a.prototype.readLine=async function(){let e,t=[];for(;!e;){let{done:r,value:n}=await this.read();if(n+="",r)return t.length?u(t):void 0;const i=n.indexOf("\n")+1;i&&(e=u(t.concat(n.substr(0,i))),t=[]),i!==n.length&&t.push(n.substr(i))}return this.unshift(...t),e},a.prototype.readByte=async function(){const{done:e,value:t}=await this.read();if(e)return;const r=t[0];return this.unshift(E(t,1)),r},a.prototype.readBytes=async function(e){const t=[];let r=0;for(;;){const{done:n,value:i}=await this.read();if(n)return t.length?u(t):void 0;if(t.push(i),r+=i.length,r>=e){const r=u(t);return this.unshift(E(r,e)),E(r,0,e)}}},a.prototype.peekBytes=async function(e){const t=await this.readBytes(e);return this.unshift(t),t},a.prototype.unshift=function(...e){this[s]||(this[s]=[]),1===e.length&&(0,n.mg)(e[0])&&this[s].length&&e[0].length&&this[s][0].byteOffset>=e[0].length?this[s][0]=new Uint8Array(this[s][0].buffer,this[s][0].byteOffset-e[0].length,this[s][0].byteLength+e[0].length):this[s].unshift(...e.filter(e=>e&&e.length))},a.prototype.readToEnd=async function(e=u){const t=[];for(;;){const{done:e,value:r}=await this.read();if(e)break;t.push(r)}return e(t)};var o=r(9844);function c(e){return(0,n.rL)(e)?e:new ReadableStream({start(t){t.enqueue(e),t.close()}})}function l(e){if((0,n.rL)(e))return e;const t=new o.S5;return(async()=>{const r=C(t);await r.write(e),await r.close()})(),t}function u(e){return e.some(e=>(0,n.rL)(e)&&!(0,n.AS)(e))?h(e):e.some(e=>(0,n.AS)(e))?function(e){const t=new o.S5;let r=Promise.resolve();return e.forEach((n,i)=>(r=r.then(()=>f(n,t,{preventClose:i!==e.length-1})),r)),t}(e):"string"==typeof e[0]?e.join(""):(0,n.Cs)(e)}function h(e){e=e.map(c);const t=d(async function(e){await Promise.all(n.map(t=>k(t,e)))});let r=Promise.resolve();const n=e.map((n,i)=>g(n,(n,s)=>(r=r.then(()=>f(n,t.writable,{preventClose:i!==e.length-1})),r)));return t.readable}async function f(e,t,{preventClose:r=!1,preventAbort:i=!1,preventCancel:a=!1}={}){if((0,n.rL)(e)&&!(0,n.AS)(e)){e=c(e);try{if(e[s]){const r=C(t);for(let t=0;t{t=e,r=n}),t=null,r=null)},close:n.close.bind(n),abort:n.error.bind(n)})}}function p(e,t=()=>{},r=()=>{}){if((0,n.AS)(e)){const n=new o.S5;return(async()=>{const i=C(n);try{const n=await v(e),s=t(n),a=r();let o;o=void 0!==s&&void 0!==a?u([s,a]):void 0!==s?s:a,await i.write(o),await i.close()}catch(e){await i.abort(e)}})(),n}if((0,n.rL)(e))return A(e,{async transform(e,r){try{const n=await t(e);void 0!==n&&r.enqueue(n)}catch(e){r.error(e)}},async flush(e){try{const t=await r();void 0!==t&&e.enqueue(t)}catch(t){e.error(t)}}});const i=t(e),s=r();return void 0!==i&&void 0!==s?u([i,s]):void 0!==i?i:s}function g(e,t){if((0,n.rL)(e)&&!(0,n.AS)(e)){let r;const n=new TransformStream({start(e){r=e}}),i=f(e,n.writable),s=d(async function(e){r.error(e),await i,await new Promise(setTimeout)});return t(n.readable,s.writable),s.readable}e=l(e);const r=new o.S5;return t(e,r),r}function y(e,t){let r;const n=g(e,(e,i)=>{const s=B(e);s.remainder=()=>(s.releaseLock(),f(e,i),n),r=t(s)});return r}function m(e){if((0,n.AS)(e))return e.clone();if((0,n.rL)(e)){const t=function(e){if((0,n.AS)(e))throw new Error("ArrayStream cannot be tee()d, use clone() instead");if((0,n.rL)(e)){const t=c(e).tee();return t[0][s]=t[1][s]=e[s],t}return[E(e),E(e)]}(e);return b(e,t[0]),t[1]}return E(e)}function w(e){return(0,n.AS)(e)?m(e):(0,n.rL)(e)?new ReadableStream({start(t){const r=g(e,async(e,r)=>{const n=B(e),i=C(r);try{for(;;){await i.ready;const{done:e,value:r}=await n.read();if(e){try{t.close()}catch(e){}return void await i.close()}try{t.enqueue(r)}catch(e){}await i.write(r)}}catch(e){t.error(e),await i.abort(e)}});b(e,r)}}):E(e)}function b(e,t){Object.entries(Object.getOwnPropertyDescriptors(e.constructor.prototype)).forEach(([r,n])=>{"constructor"!==r&&(n.value?n.value=n.value.bind(t):n.get=n.get.bind(t),Object.defineProperty(e,r,n))})}function E(e,t=0,r=1/0){if((0,n.AS)(e))throw new Error("Not implemented");if((0,n.rL)(e)){if(t>=0&&r>=0){let n=0;return A(e,{transform(e,i){n=t&&i.enqueue(E(e,Math.max(t-n,0),r-n)),n+=e.length):i.terminate()}})}if(t<0&&(r<0||r===1/0)){let n=[];return p(e,e=>{e.length>=-t?n=[e]:n.push(e)},()=>E(u(n),t,r))}if(0===t&&r<0){let n;return p(e,e=>{const i=n?u([n,e]):e;if(i.length>=-r)return n=E(i,r),E(i,t,r);n=i})}return console.warn(`stream.slice(input, ${t}, ${r}) not implemented efficiently.`),I(async()=>E(await v(e),t,r))}return e[s]&&(e=u(e[s].concat([e]))),(0,n.mg)(e)?e.subarray(t,r===1/0?e.length:r):e.slice(t,r)}async function v(e,t=u){return(0,n.AS)(e)?e.readToEnd(t):(0,n.rL)(e)?B(e).readToEnd(t):e}async function k(e,t){if((0,n.rL)(e)){if(e.cancel){const r=await e.cancel(t);return await new Promise(setTimeout),r}if(e.destroy)return e.destroy(t),await new Promise(setTimeout),t}}function I(e){const t=new o.S5;return(async()=>{const r=C(t);try{await r.write(await e()),await r.close()}catch(e){await r.abort(e)}})(),t}function B(e){return new a(e)}function C(e){return new o.AU(e)}},7971(e,t,r){"use strict";r.d(t,{AS:()=>n.AS,Cs:()=>a,mg:()=>s,rL:()=>i});var n=r(9844);function i(e){if((0,n.AS)(e))return"array";if(globalThis.ReadableStream&&globalThis.ReadableStream.prototype.isPrototypeOf(e))return"web";if(e&&!(globalThis.ReadableStream&&e instanceof globalThis.ReadableStream)&&"function"==typeof e._read&&"object"==typeof e._readableState)throw new Error("Native Node streams are no longer supported: please manually convert the stream to a WebStream, using e.g. `stream.Readable.toWeb`");return!(!e||!e.getReader)&&"web-like"}function s(e){return Uint8Array.prototype.isPrototypeOf(e)}function a(e){if(1===e.length)return e[0];let t=0;for(let r=0;rc,AU:()=>l,S5:()=>o});const n=Symbol("doneWritingPromise"),i=Symbol("doneWritingResolve"),s=Symbol("doneWritingReject"),a=Symbol("readingIndex");class o extends Array{constructor(){super(),Object.setPrototypeOf(this,o.prototype),this[n]=new Promise((e,t)=>{this[i]=e,this[s]=t}),this[n].catch(()=>{})}}function c(e){return e&&e.getReader&&Array.isArray(e)}function l(e){if(!c(e)){const t=e.getWriter(),r=t.releaseLock;return t.releaseLock=()=>{t.closed.catch(function(){}),r.call(t)},t}this.stream=e}o.prototype.getReader=function(){return void 0===this[a]&&(this[a]=0),{read:async()=>(await this[n],this[a]===this.length?{value:void 0,done:!0}:{value:this[this[a]++],done:!1})}},o.prototype.readToEnd=async function(e){await this[n];const t=e(this.slice(this[a]));return this.length=0,t},o.prototype.clone=function(){const e=new o;return e[n]=this[n].then(()=>{e.push(...this)}),e},l.prototype.write=async function(e){this.stream.push(e)},l.prototype.close=async function(){this.stream[i]()},l.prototype.abort=async function(e){return this.stream[s](e),e},l.prototype.releaseLock=function(){}},6382(e,t,r){"use strict";r.r(t),r.d(t,{AEADEncryptedDataPacket:()=>qs,CleartextMessage:()=>za,CompressedDataPacket:()=>Ns,GrammarError:()=>Fs,LiteralDataPacket:()=>ks,MarkerPacket:()=>ta,Message:()=>Ya,OnePassSignaturePacket:()=>Ps,PacketList:()=>Ts,PaddingPacket:()=>la,PrivateKey:()=>Fa,PublicKey:()=>Ta,PublicKeyEncryptedSessionKeyPacket:()=>Zs,PublicKeyPacket:()=>Xs,PublicSubkeyPacket:()=>ra,SecretKeyPacket:()=>ia,SecretSubkeyPacket:()=>oa,Signature:()=>ha,SignaturePacket:()=>Ds,Subkey:()=>Da,SymEncryptedIntegrityProtectedDataPacket:()=>Ys,SymEncryptedSessionKeyPacket:()=>zs,SymmetricallyEncryptedDataPacket:()=>ea,TrustPacket:()=>ca,UnparseablePacket:()=>lt,UserAttributePacket:()=>na,UserIDPacket:()=>aa,armor:()=>re,config:()=>N,createCleartextMessage:()=>$a,createMessage:()=>Za,decrypt:()=>ao,decryptKey:()=>no,decryptSessionKeys:()=>ho,encrypt:()=>so,encryptKey:()=>io,encryptSessionKey:()=>uo,enums:()=>Q,generateKey:()=>eo,generateSessionKey:()=>lo,readCleartextMessage:()=>Xa,readKey:()=>Na,readKeys:()=>La,readMessage:()=>qa,readPrivateKey:()=>Oa,readPrivateKeys:()=>Ga,readSignature:()=>fa,reformatKey:()=>to,revokeKey:()=>ro,sign:()=>oo,unarmor:()=>te,verify:()=>co});const n="undefined"!=typeof window?window:void 0!==r.g?r.g:"undefined"!=typeof self?self:{},i=Symbol("doneWritingPromise"),s=Symbol("doneWritingResolve"),a=Symbol("doneWritingReject"),o=Symbol("readingIndex");class c extends Array{constructor(){super(),Object.setPrototypeOf(this,c.prototype),this[i]=new Promise((e,t)=>{this[s]=e,this[a]=t}),this[i].catch(()=>{})}}function l(e){return e&&e.getReader&&Array.isArray(e)}function u(e){if(!l(e)){const t=e.getWriter(),r=t.releaseLock;return t.releaseLock=()=>{t.closed.catch(function(){}),r.call(t)},t}this.stream=e}function h(e){if(l(e))return"array";if(n.ReadableStream&&n.ReadableStream.prototype.isPrototypeOf(e))return"web";if(e&&!(n.ReadableStream&&e instanceof n.ReadableStream)&&"function"==typeof e._read&&"object"==typeof e._readableState)throw new Error("Native Node streams are no longer supported: please manually convert the stream to a WebStream, using e.g. `stream.Readable.toWeb`");return!(!e||!e.getReader)&&"web-like"}function f(e){return Uint8Array.prototype.isPrototypeOf(e)}function A(e){if(1===e.length)return e[0];let t=0;for(let r=0;r(await this[i],this[o]===this.length?{value:void 0,done:!0}:{value:this[this[o]++],done:!1})}},c.prototype.readToEnd=async function(e){await this[i];const t=e(this.slice(this[o]));return this.length=0,t},c.prototype.clone=function(){const e=new c;return e[i]=this[i].then(()=>{e.push(...this)}),e},u.prototype.write=async function(e){this.stream.push(e)},u.prototype.close=async function(){this.stream[s]()},u.prototype.abort=async function(e){return this.stream[a](e),e},u.prototype.releaseLock=function(){},"object"==typeof n.process&&n.process.versions;const d=new WeakSet,p=Symbol("externalBuffer");function g(e){if(this.stream=e,e[p]&&(this[p]=e[p].slice()),l(e)){const t=e.getReader();return this._read=t.read.bind(t),this._releaseLock=()=>{},void(this._cancel=()=>{})}if(h(e)){const t=e.getReader();return this._read=t.read.bind(t),this._releaseLock=()=>{t.closed.catch(function(){}),t.releaseLock()},void(this._cancel=t.cancel.bind(t))}let t=!1;this._read=async()=>t||d.has(e)?{value:void 0,done:!0}:(t=!0,{value:e,done:!1}),this._releaseLock=()=>{if(t)try{d.add(e)}catch(e){}}}function y(e){return h(e)?e:new ReadableStream({start(t){t.enqueue(e),t.close()}})}function m(e){const t=h(e);if(t){if("array"!==t)throw new Error("Can't convert Stream to ArrayStream here, call `readToEnd` first");return e}const r=new c;return(async()=>{const t=M(r);await t.write(e),await t.close()})(),r}function w(e){return e.some(e=>h(e)&&!l(e))?function(e){e=e.map(y);const t=E(async function(e){await Promise.all(n.map(t=>U(t,e)))});let r=Promise.resolve();const n=e.map((n,i)=>B(n,(n,s)=>(r=r.then(()=>b(n,t.writable,{preventClose:i!==e.length-1})),r)));return t.readable}(e):e.some(e=>l(e))?function(e){const t=new c;let r=Promise.resolve();return e.forEach((n,i)=>(r=r.then(()=>b(n,t,{preventClose:i!==e.length-1})),r)),t}(e):"string"==typeof e[0]?e.join(""):A(e)}async function b(e,t,{preventClose:r=!1,preventAbort:n=!1,preventCancel:i=!1}={}){if(h(e)&&!l(e)&&!l(t)){e=y(e);try{if(e[p]){const r=M(t);for(let t=0;t{t=e,r=n}),t=null,r=null)},close:n.close.bind(n),abort:n.error.bind(n)})}}function v(e,t=()=>{},r=()=>{},n={highWaterMark:0}){if(h(e))return I(e,t,r,n);const i=t(e),s=r();return void 0!==i&&void 0!==s?w([i,s]):void 0!==i?i:s}async function k(e,t=async()=>{},r=async()=>{},n={highWaterMark:1}){if(h(e))return I(e,t,r,n);const i=await t(e),s=await r();return void 0!==i&&void 0!==s?w([i,s]):void 0!==i?i:s}function I(e,t,r,n){if(l(e)){const n=new c;return(async()=>{const i=M(n);try{const n=await P(e),s=await t(n),a=await r();let o;o=void 0!==s&&void 0!==a?w([s,a]):void 0!==s?s:a,await i.write(o),await i.close()}catch(e){await i.abort(e)}})(),n}if(h(e)){let i,s=!1;return new ReadableStream({start(){i=e.getReader()},async pull(n){if(s)return n.close(),void e.releaseLock();try{for(;;){const{value:a,done:o}=await i.read();s=o;const c=await(o?r:t)(a);if(void 0!==c)return void n.enqueue(c);if(o)return n.close(),void e.releaseLock()}}catch(e){n.error(e)}},async cancel(e){await i.cancel(e)}},n)}throw new Error("Unreachable")}function B(e,t){if(h(e)&&!l(e)){let r;const n=new TransformStream({start(e){r=e}}),i=b(e,n.writable),s=E(async function(e){r.error(e),await i,await new Promise(e=>setTimeout(e))});return t(n.readable,s.writable),s.readable}e=m(e);const r=new c;return t(e,r),r}function C(e,t){let r;const n=B(e,(e,i)=>{const s=F(e);s.remainder=()=>(s.releaseLock(),b(e,i),n),r=t(s)});return r}function S(e){if(l(e))return e.clone();if(h(e)){const t=function(e){if(l(e))throw new Error("ArrayStream cannot be tee()d, use clone() instead");if(h(e)){const t=y(e).tee();return t[0][p]=t[1][p]=e[p],t}return[K(e),K(e)]}(e);return x(e,t[0]),t[1]}return K(e)}function D(e){return l(e)?S(e):h(e)?new ReadableStream({start(t){const r=B(e,async(e,r)=>{const n=F(e),i=M(r);try{for(;;){await i.ready;const{done:e,value:r}=await n.read();if(e){try{t.close()}catch(e){}return void await i.close()}try{t.enqueue(r)}catch(e){}await i.write(r)}}catch(e){t.error(e),await i.abort(e)}});x(e,r)}}):K(e)}function x(e,t){Object.entries(Object.getOwnPropertyDescriptors(e.constructor.prototype)).forEach(([r,n])=>{"constructor"!==r&&(n.value?n.value=n.value.bind(t):n.get=n.get.bind(t),Object.defineProperty(e,r,n))})}function K(e,t=0,r=1/0){if(l(e))throw new Error("Not implemented");if(h(e)){if(t>=0&&r>=0){let n,i=0;return new ReadableStream({start(){n=e.getReader()},async pull(s){try{for(;;){if(!(i=t&&(c=K(a,Math.max(t-i,0),r-i)),i+=a.length,c)return void s.enqueue(c)}}}catch(e){s.error(e)}},async cancel(e){await n.cancel(e)}},{highWaterMark:0})}if(t<0&&(r<0||r===1/0)){let n=[];return v(e,e=>{e.length>=-t?n=[e]:n.push(e)},()=>K(w(n),t,r))}if(0===t&&r<0){let n;return v(e,e=>{const i=n?w([n,e]):e;if(i.length>=-r)return n=K(i,r),K(i,t,r);n=i})}return console.warn(`stream.slice(input, ${t}, ${r}) not implemented efficiently.`),T(async()=>K(await P(e),t,r))}return e[p]&&(e=w(e[p].concat([e]))),f(e)?e.subarray(t,r===1/0?e.length:r):e.slice(t,r)}async function P(e,t=w){return l(e)?e.readToEnd(t):h(e)?F(e).readToEnd(t):e}async function U(e,t){if(h(e)){if(e.cancel){const r=await e.cancel(t);return await new Promise(e=>setTimeout(e)),r}if(e.destroy)return e.destroy(t),await new Promise(e=>setTimeout(e)),t}}function T(e){const t=new c;return(async()=>{const r=M(t);try{await r.write(await e()),await r.close()}catch(e){await r.abort(e)}})(),t}function F(e){return new g(e)}function M(e){return new u(e)}g.prototype.read=async function(){return this[p]&&this[p].length?{done:!1,value:this[p].shift()}:this._read()},g.prototype.releaseLock=function(){this[p]&&(this.stream[p]=this[p]),this._releaseLock()},g.prototype.cancel=function(e){return this._cancel(e)},g.prototype.readLine=async function(){let e,t=[];for(;!e;){let{done:r,value:n}=await this.read();if(n+="",r)return t.length?w(t):void 0;const i=n.indexOf("\n")+1;i&&(e=w(t.concat(n.substr(0,i))),t=[]),i!==n.length&&t.push(n.substr(i))}return this.unshift(...t),e},g.prototype.readByte=async function(){const{done:e,value:t}=await this.read();if(e)return;const r=t[0];return this.unshift(K(t,1)),r},g.prototype.readBytes=async function(e){const t=[];let r=0;for(;;){const{done:n,value:i}=await this.read();if(n)return t.length?w(t):void 0;if(t.push(i),r+=i.length,r>=e){const r=w(t);return this.unshift(K(r,e)),K(r,0,e)}}},g.prototype.peekBytes=async function(e){const t=await this.readBytes(e);return this.unshift(t),t},g.prototype.unshift=function(...e){this[p]||(this[p]=[]),1===e.length&&f(e[0])&&this[p].length&&e[0].length&&this[p][0].byteOffset>=e[0].length?this[p][0]=new Uint8Array(this[p][0].buffer,this[p][0].byteOffset-e[0].length,this[p][0].byteLength+e[0].length):this[p].unshift(...e.filter(e=>e&&e.length))},g.prototype.readToEnd=async function(e=w){const t=[];for(;;){const{done:e,value:r}=await this.read();if(e)break;t.push(r)}return e(t)};const R=Symbol("byValue");var Q={curve:{nistP256:"nistP256",p256:"nistP256",nistP384:"nistP384",p384:"nistP384",nistP521:"nistP521",p521:"nistP521",secp256k1:"secp256k1",ed25519Legacy:"ed25519Legacy",ed25519:"ed25519Legacy",curve25519Legacy:"curve25519Legacy",curve25519:"curve25519Legacy",brainpoolP256r1:"brainpoolP256r1",brainpoolP384r1:"brainpoolP384r1",brainpoolP512r1:"brainpoolP512r1"},s2k:{simple:0,salted:1,iterated:3,argon2:4,gnu:101},publicKey:{rsaEncryptSign:1,rsaEncrypt:2,rsaSign:3,elgamal:16,dsa:17,ecdh:18,ecdsa:19,eddsaLegacy:22,aedh:23,aedsa:24,x25519:25,x448:26,ed25519:27,ed448:28},symmetric:{idea:1,tripledes:2,cast5:3,blowfish:4,aes128:7,aes192:8,aes256:9,twofish:10},compression:{uncompressed:0,zip:1,zlib:2,bzip2:3},hash:{md5:1,sha1:2,ripemd:3,sha256:8,sha384:9,sha512:10,sha224:11,sha3_256:12,sha3_512:14},webHash:{"SHA-1":2,"SHA-256":8,"SHA-384":9,"SHA-512":10},aead:{eax:1,ocb:2,gcm:3,experimentalGCM:100},packet:{publicKeyEncryptedSessionKey:1,signature:2,symEncryptedSessionKey:3,onePassSignature:4,secretKey:5,publicKey:6,secretSubkey:7,compressedData:8,symmetricallyEncryptedData:9,marker:10,literalData:11,trust:12,userID:13,publicSubkey:14,userAttribute:17,symEncryptedIntegrityProtectedData:18,modificationDetectionCode:19,aeadEncryptedData:20,padding:21},literal:{binary:"b".charCodeAt(),text:"t".charCodeAt(),utf8:"u".charCodeAt(),mime:"m".charCodeAt()},signature:{binary:0,text:1,standalone:2,certGeneric:16,certPersona:17,certCasual:18,certPositive:19,certRevocation:48,subkeyBinding:24,keyBinding:25,key:31,keyRevocation:32,subkeyRevocation:40,timestamp:64,thirdParty:80},signatureSubpacket:{signatureCreationTime:2,signatureExpirationTime:3,exportableCertification:4,trustSignature:5,regularExpression:6,revocable:7,keyExpirationTime:9,placeholderBackwardsCompatibility:10,preferredSymmetricAlgorithms:11,revocationKey:12,issuerKeyID:16,notationData:20,preferredHashAlgorithms:21,preferredCompressionAlgorithms:22,keyServerPreferences:23,preferredKeyServer:24,primaryUserID:25,policyURI:26,keyFlags:27,signersUserID:28,reasonForRevocation:29,features:30,signatureTarget:31,embeddedSignature:32,issuerFingerprint:33,preferredAEADAlgorithms:34,preferredCipherSuites:39},keyFlags:{certifyKeys:1,signData:2,encryptCommunication:4,encryptStorage:8,splitPrivateKey:16,authentication:32,sharedPrivateKey:128},armor:{multipartSection:0,multipartLast:1,signed:2,message:3,publicKey:4,privateKey:5,signature:6},reasonForRevocation:{noReason:0,keySuperseded:1,keyCompromised:2,keyRetired:3,userIDInvalid:32},features:{modificationDetection:1,aead:2,v5Keys:4,seipdv2:8},write:function(e,t){if("number"==typeof t&&(t=this.read(e,t)),void 0!==e[t])return e[t];throw new Error("Invalid enum value.")},read:function(e,t){if(e[R]||(e[R]=[],Object.entries(e).forEach(([t,r])=>{e[R][r]=t})),void 0!==e[R][t])return e[R][t];throw new Error("Invalid enum value.")}},N={preferredHashAlgorithm:Q.hash.sha512,preferredSymmetricAlgorithm:Q.symmetric.aes256,preferredCompressionAlgorithm:Q.compression.uncompressed,aeadProtect:!1,parseAEADEncryptedV4KeysAsLegacy:!1,preferredAEADAlgorithm:Q.aead.gcm,aeadChunkSizeByte:12,v6Keys:!1,enableParsingV5Entities:!1,s2kType:Q.s2k.iterated,s2kIterationCountByte:224,s2kArgon2Params:{passes:3,parallelism:4,memoryExponent:16},allowUnauthenticatedMessages:!1,allowUnauthenticatedStream:!1,minRSABits:2047,passwordCollisionCheck:!1,allowInsecureDecryptionWithSigningKeys:!1,allowInsecureVerificationWithReformattedKeys:!1,allowMissingKeyFlags:!1,constantTimePKCS1Decryption:!1,constantTimePKCS1DecryptionSupportedSymmetricAlgorithms:new Set([Q.symmetric.aes128,Q.symmetric.aes192,Q.symmetric.aes256]),ignoreUnsupportedPackets:!0,ignoreMalformedPackets:!1,enforceGrammar:!0,additionalAllowedPackets:[],showVersion:!1,showComment:!1,versionString:"OpenPGP.js 6.3.0",commentString:"https://openpgpjs.org",maxUserIDLength:5120,maxDecompressedMessageSize:1/0,knownNotations:[],nonDeterministicSignaturesViaNotation:!0,useEllipticFallback:!0,rejectHashAlgorithms:new Set([Q.hash.md5,Q.hash.ripemd]),rejectMessageHashAlgorithms:new Set([Q.hash.md5,Q.hash.ripemd,Q.hash.sha1]),rejectPublicKeyAlgorithms:new Set([Q.publicKey.elgamal,Q.publicKey.dsa]),rejectCurves:new Set([Q.curve.secp256k1])};const O=(()=>{try{return!1}catch{}return!1})(),L={isString:function(e){return"string"==typeof e||e instanceof String},nodeRequire:()=>{},isArray:function(e){return e instanceof Array},isUint8Array:f,isStream:h,getNobleCurve:async(e,t)=>{if(!N.useEllipticFallback)throw new Error("This curve is only supported in the full build of OpenPGP.js");const{nobleCurves:r}=await Promise.resolve().then(function(){return ph});switch(e){case Q.publicKey.ecdh:case Q.publicKey.ecdsa:{const e=r.get(t);if(!e)throw new Error("Unsupported curve");return e}case Q.publicKey.x448:return r.get("x448");case Q.publicKey.ed448:return r.get("ed448");default:throw new Error("Unsupported curve")}},readNumber:function(e){let t=0;for(let r=0;r>8*(t-n-1)&255;return r},readDate:function(e){const t=L.readNumber(e);return new Date(1e3*t)},writeDate:function(e){const t=Math.floor(e.getTime()/1e3);return L.writeNumber(t,4)},normalizeDate:function(e=Date.now()){return null===e||e===1/0?e:new Date(1e3*Math.floor(+e/1e3))},readMPI:function(e){const t=7+(e[0]<<8|e[1])>>>3;return L.readExactSubarray(e,2,2+t)},readExactSubarray:function(e,t,r){if(e.lengtht)throw new Error("Input array too long");const r=new Uint8Array(t),n=t-e.length;return r.set(e,n),r},uint8ArrayToMPI:function(e){const t=L.uint8ArrayBitLength(e);if(0===t)throw new Error("Zero MPI");const r=e.subarray(e.length-Math.ceil(t/8)),n=new Uint8Array([(65280&t)>>8,255&t]);return L.concatUint8Array([n,r])},uint8ArrayBitLength:function(e){let t;for(t=0;t>1);for(let r=0;r>1;r++)t[r]=parseInt(e.substr(r<<1,2),16);return t},uint8ArrayToHex:function(e){const t="0123456789abcdef";let r="";return e.forEach(e=>{r+=t[e>>4]+t[15&e]}),r},stringToUint8Array:function(e){return v(e,e=>{if(!L.isString(e))throw new Error("stringToUint8Array: Data must be in the form of a string");const t=new Uint8Array(e.length);for(let r=0;rr("",!0))},decodeUTF8:function(e){const t=new TextDecoder("utf-8");function r(e,r=!1){return t.decode(e,{stream:!r})}return v(e,r,()=>r(new Uint8Array,!0))},concat:w,concatUint8Array:A,equalsUint8Array:function(e,t){if(!L.isUint8Array(e)||!L.isUint8Array(t))throw new Error("Data must be in the form of a Uint8Array");if(e.length!==t.length)return!1;for(let r=0;r=0;r--)if(t(e[r],r,e))return r;return-1},writeChecksum:function(e){let t=0;for(let r=0;r>>16;return 0!==r&&(e=r,t+=16),r=e>>8,0!==r&&(e=r,t+=8),r=e>>4,0!==r&&(e=r,t+=4),r=e>>2,0!==r&&(e=r,t+=2),r=e>>1,0!==r&&(e=r,t+=1),t},double:function(e){const t=new Uint8Array(e.length),r=e.length-1;for(let n=0;n>7;return t[r]=e[r]<<1^135*(e[0]>>7),t},shiftRight:function(e,t){if(t)for(let r=e.length-1;r>=0;r--)e[r]>>=t,r>0&&(e[r]|=e[r-1]<<8-t);return e},getWebCrypto:function(){const e=void 0!==n&&n.crypto&&n.crypto.subtle||this.getNodeCrypto()?.webcrypto.subtle;if(!e)throw new Error("The WebCrypto API is not available");return e},getNodeCrypto:function(){return this.nodeRequire("crypto")},getNodeZlib:function(){return this.nodeRequire("zlib")},getNodeBuffer:function(){return(this.nodeRequire("buffer")||{}).Buffer},getHardwareConcurrency:function(){return"undefined"!=typeof navigator?navigator.hardwareConcurrency||1:this.nodeRequire("os").cpus().length},isEmailAddress:function(e){return!!L.isString(e)&&/^[^\p{C}\p{Z}@<>\\]+@[^\p{C}\p{Z}@<>\\]+[^\p{C}\p{Z}\p{P}]$/u.test(e)},canonicalizeEOL:function(e){let t=!1;return v(e,e=>{let r;t&&(e=L.concatUint8Array([new Uint8Array([13]),e])),13===e[e.length-1]?(t=!0,e=e.subarray(0,-1)):t=!1;const n=[];for(let t=0;r=e.indexOf(10,t)+1,r;t=r)13!==e[r-2]&&n.push(r);if(!n.length)return e;const i=new Uint8Array(e.length+n.length);let s=0;for(let t=0;tt?new Uint8Array([13]):void 0)},nativeEOL:function(e){let t=!1;return v(e,e=>{let r;13===(e=t&&10!==e[0]?L.concatUint8Array([new Uint8Array([13]),e]):new Uint8Array(e))[e.length-1]?(t=!0,e=e.subarray(0,-1)):t=!1;let n=0;for(let t=0;t!==e.length;t=r){r=e.indexOf(13,t)+1,r||(r=e.length);const i=r-(10===e[r]?1:0);t&&e.copyWithin(n,t,i),n+=i-t}return e.subarray(0,n)},()=>t?new Uint8Array([13]):void 0)},removeTrailingSpaces:function(e){return e.split("\n").map(e=>{let t=e.length-1;for(;t>=0&&(" "===e[t]||"\t"===e[t]||"\r"===e[t]);t--);return e.substr(0,t+1)}).join("\n")},wrapError:function(e,t){if(!t)return e instanceof Error?e:new Error(e);if(e instanceof Error){try{e.message+=": "+t.message,e.cause=t}catch{}return e}return new Error(e+": "+t.message,{cause:t})},constructAllowedPackets:function(e){const t={};return e.forEach(e=>{if(!e.tag)throw new Error("Invalid input: expected a packet class");t[e.tag]=e}),t},anyPromise:function(e){return new Promise((t,r)=>{let n;Promise.all(e.map(async e=>{try{t(await e)}catch(e){n=e}})).then(()=>{r(n)})})},selectUint8Array:function(e,t,r){const n=Math.max(t.length,r.length),i=new Uint8Array(n);let s=0;for(let n=0;n{t=L.concatUint8Array([t,e]);const r=[],n=Math.floor(t.length/45),i=45*n,s=H(t.subarray(0,i));for(let e=0;et.length?H(t)+"\n":"")}function Y(e){let t="";return v(e,e=>{t+=e;let r=0;const n=[" ","\t","\r","\n"];for(let e=0;e0&&(i-r)%4!=0;i--)n.includes(t[i])&&r--;const s=j(t.substr(0,i));return t=t.substr(i),s},()=>j(t))}function J(e){return Y(e.replace(/-/g,"+").replace(/_/g,"/"))}function _(e,t){let r=W(e).replace(/[\r\n]/g,"");return r=r.replace(/[+]/g,"-").replace(/[/]/g,"_").replace(/[=]/g,""),r}function q(e){const t=e.match(/^-----BEGIN PGP (MESSAGE, PART \d+\/\d+|MESSAGE, PART \d+|SIGNED MESSAGE|MESSAGE|PUBLIC KEY BLOCK|PRIVATE KEY BLOCK|SIGNATURE)-----$/m);if(!t)throw new Error("Unknown ASCII armor type");return/MESSAGE, PART \d+\/\d+/.test(t[1])?Q.armor.multipartSection:/MESSAGE, PART \d+/.test(t[1])?Q.armor.multipartLast:/SIGNED MESSAGE/.test(t[1])?Q.armor.signed:/MESSAGE/.test(t[1])?Q.armor.message:/PUBLIC KEY BLOCK/.test(t[1])?Q.armor.publicKey:/PRIVATE KEY BLOCK/.test(t[1])?Q.armor.privateKey:/SIGNATURE/.test(t[1])?Q.armor.signature:void 0}function Z(e,t){let r="";return t.showVersion&&(r+="Version: "+t.versionString+"\n"),t.showComment&&(r+="Comment: "+t.commentString+"\n"),e&&(r+="Comment: "+e+"\n"),r+="\n",r}function V(e){const t=function(e){let t=13501623;return v(e,e=>{const r=X?Math.floor(e.length/4):0,n=new Uint32Array(e.buffer,e.byteOffset,r);for(let e=0;e>24&255]^z[1][t>>16&255]^z[2][t>>8&255]^z[3][255&t];for(let n=4*r;n>8^z[0][255&t^e[n]]},()=>new Uint8Array([t,t>>8,t>>16]))}(e);return W(t)}G?(H=e=>G.from(e).toString("base64"),j=e=>{const t=G.from(e,"base64");return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}):(H=e=>btoa(L.uint8ArrayToString(e)),j=e=>L.stringToUint8Array(atob(e)));const z=[new Array(255),new Array(255),new Array(255),new Array(255)];for(let e=0;e<=255;e++){let t=e<<16;for(let e=0;e<8;e++)t=t<<1^(8388608&t?8801531:0);z[0][e]=(16711680&t)>>16|65280&t|(255&t)<<16}for(let e=0;e<=255;e++)z[1][e]=z[0][e]>>8^z[0][255&z[0][e]];for(let e=0;e<=255;e++)z[2][e]=z[1][e]>>8^z[0][255&z[1][e]];for(let e=0;e<=255;e++)z[3][e]=z[2][e]>>8^z[0][255&z[2][e]];const X=function(){const e=new ArrayBuffer(2);return new DataView(e).setInt16(0,255,!0),255===new Int16Array(e)[0]}();function $(e){for(let t=0;t=0&&r!==e.length-1&&(t=e.slice(0,r)),t}function te(e){return new Promise((t,r)=>{try{const n=/^-----[^-]+-----$/m,i=/^[ \f\r\t\u00a0\u2000-\u200a\u202f\u205f\u3000]*$/;let s;const a=[];let o,c,l=a,u=[];const h=Y(B(e,async(e,f)=>{const A=F(e);try{for(;;){let e=await A.readLine();if(void 0===e)throw new Error("Misformed armored text");if(e=L.removeTrailingSpaces(e.replace(/[\r\n]/g,"")),s)if(o)c||s!==Q.armor.signed||(n.test(e)?(u=u.join("\r\n"),c=!0,$(l),l=[],o=!1):u.push(e.replace(/^- /,"")));else if(n.test(e)&&r(new Error("Mandatory blank line missing between armor headers and armor data")),i.test(e)){if($(l),o=!0,c||s!==Q.armor.signed){t({text:u,data:h,headers:a,type:s});break}}else l.push(e);else n.test(e)&&(s=q(e))}}catch(e){return void r(e)}const d=M(f);try{for(;;){await d.ready;const{done:e,value:t}=await A.read();if(e)throw new Error("Misformed armored text");const r=t+"";if(-1!==r.indexOf("=")||-1!==r.indexOf("-")){let e=await A.readToEnd();e.length||(e=""),e=r+e,e=L.removeTrailingSpaces(e.replace(/\r/g,""));const t=e.split(n);if(1===t.length)throw new Error("Misformed armored text");const i=ee(t[0].slice(0,-1));await d.write(i);break}await d.write(r)}await d.ready,await d.close()}catch(e){await d.abort(e)}}))}catch(e){r(e)}}).then(async e=>(l(e.data)&&(e.data=await P(e.data)),e))}function re(e,t,r,n,i,s=!1,a=N){let o,c;e===Q.armor.signed&&(o=t.text,c=t.hash,t=t.data);const l=s&&D(t),u=[];switch(e){case Q.armor.multipartSection:u.push("-----BEGIN PGP MESSAGE, PART "+r+"/"+n+"-----\n"),u.push(Z(i,a)),u.push(W(t)),l&&u.push("=",V(l)),u.push("-----END PGP MESSAGE, PART "+r+"/"+n+"-----\n");break;case Q.armor.multipartLast:u.push("-----BEGIN PGP MESSAGE, PART "+r+"-----\n"),u.push(Z(i,a)),u.push(W(t)),l&&u.push("=",V(l)),u.push("-----END PGP MESSAGE, PART "+r+"-----\n");break;case Q.armor.signed:u.push("-----BEGIN PGP SIGNED MESSAGE-----\n"),u.push(c?`Hash: ${c}\n\n`:"\n"),u.push(o.replace(/^-/gm,"- -")),u.push("\n-----BEGIN PGP SIGNATURE-----\n"),u.push(Z(i,a)),u.push(W(t)),l&&u.push("=",V(l)),u.push("-----END PGP SIGNATURE-----\n");break;case Q.armor.message:u.push("-----BEGIN PGP MESSAGE-----\n"),u.push(Z(i,a)),u.push(W(t)),l&&u.push("=",V(l)),u.push("-----END PGP MESSAGE-----\n");break;case Q.armor.publicKey:u.push("-----BEGIN PGP PUBLIC KEY BLOCK-----\n"),u.push(Z(i,a)),u.push(W(t)),l&&u.push("=",V(l)),u.push("-----END PGP PUBLIC KEY BLOCK-----\n");break;case Q.armor.privateKey:u.push("-----BEGIN PGP PRIVATE KEY BLOCK-----\n"),u.push(Z(i,a)),u.push(W(t)),l&&u.push("=",V(l)),u.push("-----END PGP PRIVATE KEY BLOCK-----\n");break;case Q.armor.signature:u.push("-----BEGIN PGP SIGNATURE-----\n"),u.push(Z(i,a)),u.push(W(t)),l&&u.push("=",V(l)),u.push("-----END PGP SIGNATURE-----\n")}return L.concat(u)}const ne=BigInt(0),ie=BigInt(1);function se(e){const t="0123456789ABCDEF";let r="";return e.forEach(e=>{r+=t[e>>4]+t[15&e]}),BigInt("0x0"+r)}function ae(e,t){const r=e%t;return rne;){const e=n&ie;n>>=ie,s=e?s*i%r:s,i=i*i%r}return s}function ce(e){return e>=ne?e:-e}function le(e,t){const{gcd:r,x:n}=function(e,t){let r=BigInt(0),n=BigInt(1),i=BigInt(1),s=BigInt(0),a=ce(e),o=ce(t);const c=eNumber.MAX_SAFE_INTEGER)throw new Error("Number can only safely store up to 53 bits");return t}function he(e,t){return(e>>BigInt(t)&ie)===ne?0:1}function fe(e){const t=e>=ie)!==t;)r++;return r}function Ae(e){const t=e>=r)!==t;)n++;return n}function de(e,t="be",r){let n=e.toString(16);n.length%2==1&&(n="0"+n);const i=n.length/2,s=new Uint8Array(r||i),a=r?r-i:0;let o=0;for(;oe&&(a=ae(a,i<ae(e,r)!==t)}(e)||!function(e,t=BigInt(2)){return oe(t,e-me,e)===me}(e)||!function(e,t){const r=fe(e);t||(t=Math.max(1,r/48|0));const n=e-me;let i=0;for(;!he(n,i);)i++;const s=e>>BigInt(i);for(;t>0;t--){let t,r=oe(ye(BigInt(2),n),s,e);if(r!==me&&r!==n){for(t=1;tBigInt(e)),ve=L.getWebCrypto(),ke=L.getNodeCrypto(),Ie=ke&&ke.getHashes();function Be(e){if(ke&&Ie.includes(e))return async function(t){const r=ke.createHash(e);return v(t,e=>{r.update(e)},()=>new Uint8Array(r.digest()))}}function Ce(e,t){const r=async()=>{const{nobleHashes:t}=await Promise.resolve().then(function(){return jh}),r=t.get(e);if(!r)throw new Error("Unsupported hash");return r};return async function(e){if(l(e)&&(e=await P(e)),L.isStream(e)){const t=(await r()).create();return v(e,e=>{t.update(e)},()=>t.digest())}return ve&&t?new Uint8Array(await ve.digest(t,e)):(await r())(e)}}const Se=Be("md5")||Ce("md5"),De=Be("sha1")||Ce("sha1","SHA-1"),xe=Be("sha224")||Ce("sha224"),Ke=Be("sha256")||Ce("sha256","SHA-256"),Pe=Be("sha384")||Ce("sha384","SHA-384"),Ue=Be("sha512")||Ce("sha512","SHA-512"),Te=Be("ripemd160")||Ce("ripemd160"),Fe=Be("sha3-256")||Ce("sha3_256"),Me=Be("sha3-512")||Ce("sha3_512");function Re(e,t){switch(e){case Q.hash.md5:return Se(t);case Q.hash.sha1:return De(t);case Q.hash.ripemd:return Te(t);case Q.hash.sha256:return Ke(t);case Q.hash.sha384:return Pe(t);case Q.hash.sha512:return Ue(t);case Q.hash.sha224:return xe(t);case Q.hash.sha3_256:return Fe(t);case Q.hash.sha3_512:return Me(t);default:throw new Error("Unsupported hash function")}}function Qe(e){switch(e){case Q.hash.md5:return 16;case Q.hash.sha1:case Q.hash.ripemd:return 20;case Q.hash.sha256:return 32;case Q.hash.sha384:return 48;case Q.hash.sha512:return 64;case Q.hash.sha224:return 28;case Q.hash.sha3_256:return 32;case Q.hash.sha3_512:return 64;default:throw new Error("Invalid hash algorithm.")}}const Ne=[];function Oe(e,t){const r=e.length;if(r>t-11)throw new Error("Message too long");const n=function(e){const t=new Uint8Array(e);let r=0;for(;r=8&!n;if(t)return L.selectUint8Array(a,s,t);if(a)return s;throw new Error("Decryption error")}function Ge(e,t,r){let n;if(t.length!==Qe(e))throw new Error("Invalid hash length");const i=new Uint8Array(Ne[e].length);for(n=0;n=r.length)throw new Error("Digest size cannot exceed key modulus size");if(t&&!L.isStream(t))if(L.getWebCrypto())try{return await async function(e,t,r,n,i,s,a,o){const c=_e(r,n,i,s,a,o),l={name:"RSASSA-PKCS1-v1_5",hash:{name:e}},u=await He.importKey("jwk",c,l,!1,["sign"]);return new Uint8Array(await He.sign("RSASSA-PKCS1-v1_5",u,t))}(Q.read(Q.webHash,e),t,r,n,i,s,a,o)}catch(e){L.printDebugError(e)}else if(L.getNodeCrypto())return function(e,t,r,n,i,s,a,o){const c=je.createSign(Q.read(Q.hash,e));c.write(t),c.end();const l=_e(r,n,i,s,a,o);return new Uint8Array(c.sign({key:l,format:"jwk",type:"pkcs1"}))}(e,t,r,n,i,s,a,o);return function(e,t,r,n){t=se(t);return de(oe(se(Ge(e,n,Ae(t))),r=se(r),t),"be",Ae(t))}(e,r,i,c)}async function Je(e,t,r){return L.getNodeCrypto()?function(e,t,r){const n={key:qe(t,r),format:"jwk",type:"pkcs1",padding:je.constants.RSA_PKCS1_PADDING};return new Uint8Array(je.publicEncrypt(n,e))}(e,t,r):function(e,t,r){if(t=se(t),e=se(Oe(e,Ae(t))),r=se(r),e>=t)throw new Error("Message size cannot exceed modulus size");return de(oe(e,r,t),"be",Ae(t))}(e,t,r)}function _e(e,t,r,n,i,s){const a=se(n),o=se(i),c=se(r);let l=ae(c,o-We),u=ae(c,a-We);return u=de(u),l=de(l),{kty:"RSA",n:_(e),e:_(t),d:_(r),p:_(i),q:_(n),dp:_(l),dq:_(u),qi:_(s),ext:!0}}function qe(e,t){return{kty:"RSA",n:_(e),e:_(t),ext:!0}}function Ze(e,t){return{n:J(e.n),e:de(t),d:J(e.d),p:J(e.q),q:J(e.p),u:J(e.qi)}}const Ve=BigInt(1),ze={"2a8648ce3d030107":Q.curve.nistP256,"2b81040022":Q.curve.nistP384,"2b81040023":Q.curve.nistP521,"2b8104000a":Q.curve.secp256k1,"2b06010401da470f01":Q.curve.ed25519Legacy,"2b060104019755010501":Q.curve.curve25519Legacy,"2b2403030208010107":Q.curve.brainpoolP256r1,"2b240303020801010b":Q.curve.brainpoolP384r1,"2b240303020801010d":Q.curve.brainpoolP512r1};class Xe{constructor(e){if(e instanceof Xe)this.oid=e.oid;else if(L.isArray(e)||L.isUint8Array(e)){if(6===(e=new Uint8Array(e))[0]){if(e[1]!==e.length-2)throw new Error("Length mismatch in DER encoded oid");e=e.subarray(2)}this.oid=e}else this.oid=""}read(e){if(e.length>=1){const t=e[0];if(e.length>=1+t)return this.oid=e.subarray(1,1+t),1+this.oid.length}throw new Error("Invalid oid")}write(){return L.concatUint8Array([new Uint8Array([this.oid.length]),this.oid])}toHex(){return L.uint8ArrayToHex(this.oid)}getName(){const e=ze[this.toHex()];if(!e)throw new Error("Unknown curve object identifier.");return e}}function $e(e){let t,r=0;const n=e[0];return n<192?([r]=e,t=1):n<255?(r=(e[0]-192<<8)+e[1]+192,t=2):255===n&&(r=L.readNumber(e.subarray(1,5)),t=5),{len:r,offset:t}}function et(e){return e<192?new Uint8Array([e]):e>191&&e<8384?new Uint8Array([192+(e-192>>8),e-192&255]):L.concatUint8Array([new Uint8Array([255]),L.writeNumber(e,4)])}function tt(e){if(e<0||e>30)throw new Error("Partial Length power must be between 1 and 30");return new Uint8Array([224+e])}function rt(e){return new Uint8Array([192|e])}function nt(e,t){return L.concatUint8Array([rt(e),et(t)])}function it(e){return[Q.packet.literalData,Q.packet.compressedData,Q.packet.symmetricallyEncryptedData,Q.packet.symEncryptedIntegrityProtectedData,Q.packet.aeadEncryptedData].includes(e)}async function st(e,t,r){let n,i;try{const s=await e.peekBytes(2);if(!s||s.length<2||!(128&s[0]))throw new Error("Error during parsing. This message / key probably does not conform to a valid OpenPGP format.");const a=await e.readByte();let o,l,u=-1,h=-1;h=0,64&a&&(h=1),h?u=63&a:(u=(63&a)>>2,l=3&a);const f=it(u);let A,d=null;if(t&&f){if("array"===t){const e=new c;n=M(e),d=e}else{const e=new TransformStream;n=M(e.writable),d=e.readable}i=r({tag:u,packet:d})}else d=[];do{if(h){const t=await e.readByte();if(A=!1,t<192)o=t;else if(t>=192&&t<224)o=(t-192<<8)+await e.readByte()+192;else if(t>223&&t<255){if(o=1<<(31&t),A=!0,!f)throw new TypeError("This packet type does not support partial lengths.")}else o=await e.readByte()<<24|await e.readByte()<<16|await e.readByte()<<8|await e.readByte()}else switch(l){case 0:o=await e.readByte();break;case 1:o=await e.readByte()<<8|await e.readByte();break;case 2:o=await e.readByte()<<24|await e.readByte()<<16|await e.readByte()<<8|await e.readByte();break;default:o=1/0}if(o>0){let t=0;for(;;){n&&await n.ready;const{done:r,value:i}=await e.read();if(r){if(o===1/0)break;throw new Error("Unexpected end of packet")}const s=o===1/0?i:i.subarray(0,o-t);if(n?await n.write(s):d.push(s),t+=i.length,t>=o){e.unshift(i.subarray(o-t+i.length));break}}}}while(A);n?(await n.ready,await n.close()):(d=L.concatUint8Array(d),await r({tag:u,packet:d}))}catch(e){if(n)return await n.abort(e),!0;throw e}finally{n&&await i}}class at extends Error{constructor(...e){super(...e),Error.captureStackTrace&&Error.captureStackTrace(this,at),this.name="UnsupportedError"}}class ot extends at{constructor(...e){super(...e),Error.captureStackTrace&&Error.captureStackTrace(this,at),this.name="UnknownPacketError"}}class ct extends at{constructor(...e){super(...e),Error.captureStackTrace&&Error.captureStackTrace(this,at),this.name="MalformedPacketError"}}class lt{constructor(e,t){this.tag=e,this.rawContent=t}write(){return this.rawContent}}async function ut(e){switch(e){case Q.publicKey.ed25519:try{const e=L.getWebCrypto(),t=await e.generateKey("Ed25519",!0,["sign","verify"]).catch(e=>{if("OperationError"===e.name){const e=new Error("Unexpected key generation issue");throw e.name="NotSupportedError",e}throw e}),r=await e.exportKey("jwk",t.privateKey),n=await e.exportKey("jwk",t.publicKey);return{A:new Uint8Array(J(n.x)),seed:J(r.d)}}catch(t){if("NotSupportedError"!==t.name)throw t;const{default:r}=await Promise.resolve().then(function(){return Ff}),n=ge(dt(e)),{publicKey:i}=r.sign.keyPair.fromSeed(n);return{A:i,seed:n}}case Q.publicKey.ed448:{const e=await L.getNobleCurve(Q.publicKey.ed448),{secretKey:t,publicKey:r}=e.keygen();return{A:r,seed:t}}default:throw new Error("Unsupported EdDSA algorithm")}}async function ht(e,t,r,n,i,s){if(Qe(t){if(e===Q.publicKey.ed25519)return{kty:"OKP",crv:"Ed25519",x:_(t),ext:!0};throw new Error("Unsupported EdDSA algorithm")},yt=(e,t,r)=>{if(e===Q.publicKey.ed25519){const n=gt(e,t);return n.d=_(r),n}throw new Error("Unsupported EdDSA algorithm")};var mt=Object.freeze({__proto__:null,generate:ut,getPayloadSize:dt,getPreferredHashAlgo:pt,sign:ht,validateParams:At,verify:ft});function wt(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function bt(e,...t){if(!wt(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function Et(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function vt(e,t){bt(e);const r=t.outputLen;if(e.length68===new Uint8Array(new Uint32Array([287454020]).buffer)[0])();function Dt(e){if("string"==typeof e)e=function(e){if("string"!=typeof e)throw new Error("string expected");return new Uint8Array((new TextEncoder).encode(e))}(e);else{if(!wt(e))throw new Error("Uint8Array expected, got "+typeof e);e=Rt(e)}return e}function xt(e,t){return e.buffer===t.buffer&&e.byteOffset{function r(r,...n){if(bt(r),!St)throw new Error("Non little-endian hardware is not yet supported");if(void 0!==e.nonceLength){const t=n[0];if(!t)throw new Error("nonce / iv required");e.varSizeNonce?bt(t):bt(t,e.nonceLength)}const i=e.tagLength;i&&void 0!==n[1]&&bt(n[1]);const s=t(r,...n),a=(e,t)=>{if(void 0!==t){if(2!==e)throw new Error("cipher output not supported");bt(t)}};let o=!1;return{encrypt(e,t){if(o)throw new Error("cannot encrypt() twice with same key + nonce");return o=!0,bt(e),a(s.encrypt.length,t),s.encrypt(e,t)},decrypt(e,t){if(bt(e),i&&e.length>i&s),o=Number(r&s);e.setUint32(t+0,a,n),e.setUint32(t+4,o,n)}function Mt(e){return e.byteOffset%4==0}function Rt(e){return Uint8Array.from(e)}const Qt=16,Nt=new Uint8Array(16),Ot=It(Nt),Lt=(e,t,r,n)=>({s3:r<<31|n>>>1,s2:t<<31|r>>>1,s1:e<<31|t>>>1,s0:e>>>1^225<<24&-(1&n)}),Gt=e=>(e>>>0&255)<<24|(e>>>8&255)<<16|(e>>>16&255)<<8|e>>>24&255;class Ht{constructor(e,t){this.blockLen=Qt,this.outputLen=Qt,this.s0=0,this.s1=0,this.s2=0,this.s3=0,this.finished=!1,bt(e=Dt(e),16);const r=Ct(e);let n=r.getUint32(0,!1),i=r.getUint32(4,!1),s=r.getUint32(8,!1),a=r.getUint32(12,!1);const o=[];for(let e=0;e<128;e++)o.push({s0:Gt(n),s1:Gt(i),s2:Gt(s),s3:Gt(a)}),({s0:n,s1:i,s2:s,s3:a}=Lt(n,i,s,a));const c=(l=t||1024)>65536?8:l>1024?4:2;var l;if(![1,2,4,8].includes(c))throw new Error("ghash: invalid window size, expected 2, 4 or 8");this.W=c;const u=128/c,h=this.windowSize=2**c,f=[];for(let e=0;e>>c-a-1&1))continue;const{s0:l,s1:u,s2:h,s3:f}=o[c*e+a];r^=l,n^=u,i^=h,s^=f}f.push({s0:r,s1:n,s2:i,s3:s})}this.t=f}_updateBlock(e,t,r,n){e^=this.s0,t^=this.s1,r^=this.s2,n^=this.s3;const{W:i,t:s,windowSize:a}=this;let o=0,c=0,l=0,u=0;const h=(1<>>8*e&255;for(let e=8/i-1;e>=0;e--){const r=t>>>i*e&h,{s0:n,s1:A,s2:d,s3:p}=s[f*a+r];o^=n,c^=A,l^=d,u^=p,f+=1}}this.s0=o,this.s1=c,this.s2=l,this.s3=u}update(e){Et(this),bt(e=Dt(e));const t=It(e),r=Math.floor(e.length/Qt),n=e.length%Qt;for(let e=0;e>>1|r,r=(1&n)<<7}return e[0]^=225&-t,e}(Rt(e));super(r,t),Bt(r)}update(e){e=Dt(e),Et(this);const t=It(e),r=e.length%Qt,n=Math.floor(e.length/Qt);for(let e=0;ee(r,t.length).update(Dt(t)).digest(),r=e(new Uint8Array(16),0);return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=(t,r)=>e(t,r),t}const Yt=Wt((e,t)=>new Ht(e,t));Wt((e,t)=>new jt(e,t));const Jt=16,_t=new Uint8Array(Jt);function qt(e){return e<<1^283&-(e>>7)}function Zt(e,t){let r=0;for(;t>0;t>>=1)r^=e&-(1&t),e=qt(e);return r}const Vt=(()=>{const e=new Uint8Array(256);for(let t=0,r=1;t<256;t++,r^=qt(r))e[t]=r;const t=new Uint8Array(256);t[0]=99;for(let r=0;r<255;r++){let n=e[255-r];n|=n<<8,t[e[r]]=255&(n^n>>4^n>>5^n>>6^n>>7^99)}return Bt(e),t})(),zt=Vt.map((e,t)=>Vt.indexOf(t)),Xt=e=>e<<24|e>>>8,$t=e=>e<<8|e>>>24,er=e=>e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255;function tr(e,t){if(256!==e.length)throw new Error("Wrong sbox length");const r=new Uint32Array(256).map((r,n)=>t(e[n])),n=r.map($t),i=n.map($t),s=i.map($t),a=new Uint32Array(65536),o=new Uint32Array(65536),c=new Uint16Array(65536);for(let t=0;t<256;t++)for(let l=0;l<256;l++){const u=256*t+l;a[u]=r[t]^n[l],o[u]=i[t]^s[l],c[u]=e[t]<<8|e[l]}return{sbox:e,sbox2:c,T0:r,T1:n,T2:i,T3:s,T01:a,T23:o}}const rr=tr(Vt,e=>Zt(e,3)<<24|e<<16|e<<8|Zt(e,2)),nr=tr(zt,e=>Zt(e,11)<<24|Zt(e,13)<<16|Zt(e,9)<<8|Zt(e,14)),ir=(()=>{const e=new Uint8Array(16);for(let t=0,r=1;t<16;t++,r=qt(r))e[t]=r;return e})();function sr(e){bt(e);const t=e.length;if(![16,24,32].includes(t))throw new Error("aes: invalid key size, should be 16, 24 or 32, got "+t);const{sbox2:r}=rr,n=[];Mt(e)||n.push(e=Rt(e));const i=It(e),s=i.length,a=e=>cr(r,e,e,e,e),o=new Uint32Array(t+28);o.set(i);for(let e=s;e6&&e%s===4&&(t=a(t)),o[e]=o[e-s]^t}return Bt(...n),o}function ar(e){const t=sr(e),r=t.slice(),n=t.length,{sbox2:i}=rr,{T0:s,T1:a,T2:o,T3:c}=nr;for(let e=0;e>>8&255]^o[n>>>16&255]^c[n>>>24]}return r}function or(e,t,r,n,i,s){return e[r<<8&65280|n>>>8&255]^t[i>>>8&65280|s>>>24&255]}function cr(e,t,r,n,i){return e[255&t|65280&r]|e[n>>>16&255|i>>>16&65280]<<16}function lr(e,t,r,n,i){const{sbox2:s,T01:a,T23:o}=rr;let c=0;t^=e[c++],r^=e[c++],n^=e[c++],i^=e[c++];const l=e.length/4-2;for(let s=0;s=0;e--)r=r+(255&s[e])|0,s[e]=255&r,r>>>=8;({s0:o,s1:c,s2:l,s3:u}=lr(e,a[0],a[1],a[2],a[3]))}const A=Jt*Math.floor(h.length/4);if(A>>0,o.setUint32(u,f,t),({s0:A,s1:d,s2:p,s3:g}=lr(e,a[0],a[1],a[2],a[3]));const y=Jt*Math.floor(c.length/4);if(yr(e,t),decrypt:(e,t)=>r(e,t)}}),dr=Ut({blockSize:16,nonceLength:16},function(e,t,r={}){const n=!r.disablePadding;return{encrypt(r,i){const s=sr(e),{b:a,o,out:c}=function(e,t,r){bt(e);let n=e.length;const i=n%Jt;if(!t&&0!==i)throw new Error("aec/(cbc-ecb): unpadded plaintext with disabled padding");Mt(e)||(e=Rt(e));const s=It(e);if(t){let e=Jt-i;e||(e=Jt),n+=e}return Kt(e,r=Tt(n,r)),{b:s,o:It(r),out:r}}(r,n,i);let l=t;const u=[s];Mt(l)||u.push(l=Rt(l));const h=It(l);let f=h[0],A=h[1],d=h[2],p=h[3],g=0;for(;g+4<=a.length;)f^=a[g+0],A^=a[g+1],d^=a[g+2],p^=a[g+3],({s0:f,s1:A,s2:d,s3:p}=lr(s,f,A,d,p)),o[g++]=f,o[g++]=A,o[g++]=d,o[g++]=p;if(n){const e=function(e){const t=new Uint8Array(16),r=It(t);t.set(e);const n=Jt-e.length;for(let e=Jt-n;e16)throw new Error("aes/pcks5: wrong padding");const i=e.subarray(0,-n);for(let t=0;tr(e,!0,t),decrypt:(e,t)=>r(e,!1,t)}});const gr=Ut({blockSize:16,nonceLength:12,tagLength:16,varSizeNonce:!0},function(e,t,r){if(t.length<8)throw new Error("aes/gcm: invalid nonce length");function n(e,t,n){const i=function(e,t,r,n,i){const s=i?i.length:0,a=e.create(r,n.length+s);i&&a.update(i);const o=function(e,t,r){const n=new Uint8Array(16),i=Ct(n);return Ft(i,0,BigInt(t),r),Ft(i,8,BigInt(e),r),n}(8*n.length,8*s,t);a.update(n),a.update(o);const c=a.digest();return Bt(o),c}(Yt,!1,e,n,r);for(let e=0;e=2**32)throw new Error("plaintext should be less than 4gb");const r=sr(e);if(16===t.length)mr(r,t);else{const e=It(t);let n=e[0],i=e[1];for(let t=0,s=1;t<6;t++)for(let t=2;t=2**32)throw new Error("ciphertext should be less than 4gb");const r=ar(e),n=t.length/8-1;if(1===n)wr(r,t);else{const e=It(t);let i=e[0],s=e[1];for(let t=0,a=6*n;t<6;t++)for(let t=2*n;t>=1;t-=2,a--){s^=er(a);const{s0:n,s1:o,s2:c,s3:l}=ur(r,i,s,e[t],e[t+1]);i=n,s=o,e[t]=c,e[t+1]=l}e[0]=i,e[1]=s}r.fill(0)}},Er=new Uint8Array(8).fill(166),vr=Ut({blockSize:8},e=>({encrypt(t){if(!t.length||t.length%8!=0)throw new Error("invalid plaintext length");if(8===t.length)throw new Error("8-byte keys not allowed in AESKW, use AESKWP instead");const r=function(...e){let t=0;for(let r=0;r{if("OperationError"===e.name){const e=new Error("Unexpected key generation issue");throw e.name="NotSupportedError",e}throw e}),r=await e.exportKey("jwk",t.privateKey),n=await e.exportKey("jwk",t.publicKey);if(r.x!==n.x){const e=new Error("Unexpected mismatching public point");throw e.name="NotSupportedError",e}return{A:new Uint8Array(J(n.x)),k:J(r.d)}}catch(e){if("NotSupportedError"!==e.name)throw e;const{default:t}=await Promise.resolve().then(function(){return Ff}),{secretKey:r,publicKey:n}=t.box.keyPair();return{A:n,k:r}}case Q.publicKey.x448:{const e=await L.getNobleCurve(Q.publicKey.x448),{secretKey:t,publicKey:r}=e.keygen();return{A:r,k:t}}default:throw new Error("Unsupported ECDH algorithm")}}async function Fr(e,t,r){switch(e){case Q.publicKey.x25519:try{const{ephemeralPublicKey:n,sharedSecret:i}=await Nr(e,t),s=await Or(e,n,t,r);return L.equalsUint8Array(i,s)}catch{return!1}case Q.publicKey.x448:{const e=(await L.getNobleCurve(Q.publicKey.x448)).getPublicKey(r);return L.equalsUint8Array(t,e)}default:return!1}}async function Mr(e,t,r){const{ephemeralPublicKey:n,sharedSecret:i}=await Nr(e,r),s=L.concatUint8Array([n,r,i]);switch(e){case Q.publicKey.x25519:{const e=Q.symmetric.aes128,{keySize:r}=Sr(e),i=await Pr(Q.hash.sha256,s,new Uint8Array,Ur.x25519,r);return{ephemeralPublicKey:n,wrappedKey:await xr(e,i,t)}}case Q.publicKey.x448:{const e=Q.symmetric.aes256,{keySize:r}=Sr(Q.symmetric.aes256),i=await Pr(Q.hash.sha512,s,new Uint8Array,Ur.x448,r);return{ephemeralPublicKey:n,wrappedKey:await xr(e,i,t)}}default:throw new Error("Unsupported ECDH algorithm")}}async function Rr(e,t,r,n,i){const s=await Or(e,t,n,i),a=L.concatUint8Array([t,n,s]);switch(e){case Q.publicKey.x25519:{const e=Q.symmetric.aes128,{keySize:t}=Sr(e);return Kr(e,await Pr(Q.hash.sha256,a,new Uint8Array,Ur.x25519,t),r)}case Q.publicKey.x448:{const e=Q.symmetric.aes256,{keySize:t}=Sr(Q.symmetric.aes256);return Kr(e,await Pr(Q.hash.sha512,a,new Uint8Array,Ur.x448,t),r)}default:throw new Error("Unsupported ECDH algorithm")}}function Qr(e){switch(e){case Q.publicKey.x25519:return 32;case Q.publicKey.x448:return 56;default:throw new Error("Unsupported ECDH algorithm")}}async function Nr(e,t){switch(e){case Q.publicKey.x25519:try{const r=L.getWebCrypto(),n=await r.generateKey("X25519",!0,["deriveKey","deriveBits"]).catch(e=>{if("OperationError"===e.name){const e=new Error("Unexpected key generation issue");throw e.name="NotSupportedError",e}throw e}),i=await r.exportKey("jwk",n.publicKey);if((await r.exportKey("jwk",n.privateKey)).x!==i.x){const e=new Error("Unexpected mismatching public point");throw e.name="NotSupportedError",e}const s=Gr(e,t),a=await r.importKey("jwk",s,"X25519",!1,[]),o=await r.deriveBits({name:"X25519",public:a},n.privateKey,8*Qr(e));return{sharedSecret:new Uint8Array(o),ephemeralPublicKey:new Uint8Array(J(i.x))}}catch(e){if("NotSupportedError"!==e.name)throw e;const{default:r}=await Promise.resolve().then(function(){return Ff}),{secretKey:n,publicKey:i}=r.box.keyPair(),s=r.scalarMult(n,t);return Lr(s),{ephemeralPublicKey:i,sharedSecret:s}}case Q.publicKey.x448:{const e=await L.getNobleCurve(Q.publicKey.x448),{secretKey:r,publicKey:n}=e.keygen(),i=e.getSharedSecret(r,t);return Lr(i),{ephemeralPublicKey:n,sharedSecret:i}}default:throw new Error("Unsupported ECDH algorithm")}}async function Or(e,t,r,n){switch(e){case Q.publicKey.x25519:try{const i=L.getWebCrypto(),s=function(e,t,r){if(e===Q.publicKey.x25519){const n=Gr(e,t);return n.d=_(r),n}throw new Error("Unsupported ECDH algorithm")}(e,r,n),a=Gr(e,t),o=await i.importKey("jwk",s,"X25519",!1,["deriveKey","deriveBits"]),c=await i.importKey("jwk",a,"X25519",!1,[]),l=await i.deriveBits({name:"X25519",public:c},o,8*Qr(e));return new Uint8Array(l)}catch(e){if("NotSupportedError"!==e.name)throw e;const{default:r}=await Promise.resolve().then(function(){return Ff}),i=r.scalarMult(n,t);return Lr(i),i}case Q.publicKey.x448:{const e=(await L.getNobleCurve(Q.publicKey.x448)).getSharedSecret(n,t);return Lr(e),e}default:throw new Error("Unsupported ECDH algorithm")}}function Lr(e){let t=0;for(let r=0;r0===s[0]&&ln(a,r,s.subarray(1),i);if(n&&!L.isStream(n))switch(a.type){case"web":try{const e=await async function(e,t,{r,s:n},i,s){const a=rn(e.payloadSize,Yr[e.name],s),o=await sn.importKey("jwk",a,{name:"ECDSA",namedCurve:Yr[e.name],hash:{name:Q.read(Q.webHash,e.hash)}},!1,["verify"]),c=L.concatUint8Array([r,n]).buffer;return sn.verify({name:"ECDSA",namedCurve:Yr[e.name],hash:{name:Q.read(Q.webHash,t)}},o,c,i)}(a,t,r,n,i);return e||o()}catch(e){if("nistP521"!==a.name&&("DataError"===e.name||"OperationError"===e.name))throw e;L.printDebugError("Browser did not support verifying: "+e.message)}break;case"node":{const e=function(e,t,{r,s:n},i,s){const a=L.nodeRequire("eckey-utils"),o=L.getNodeBuffer(),{publicKey:c}=a.generateDer({curveName:_r[e.name],publicKey:o.from(s)}),l=an.createVerify(Q.read(Q.hash,t));l.write(i),l.end();const u=L.concatUint8Array([r,n]);try{return l.verify({key:c,format:"der",type:"spki",dsaEncoding:"ieee-p1363"},u)}catch{return!1}}(a,t,r,n,i);return e||o()}}return await ln(a,r,s,i)||o()}async function ln(e,t,r,n){return(await L.getNobleCurve(Q.publicKey.ecdsa,e.name)).verify(L.concatUint8Array([t.r,t.s]),r,n,{lowS:!1})}var un=Object.freeze({__proto__:null,sign:on,validateParams:async function(e,t,r){const n=new Zr(e);if(n.keyType!==Q.publicKey.ecdsa)return!1;switch(n.type){case"web":case"node":{const n=ge(8),i=Q.hash.sha256,s=await Re(i,n);try{const a=await on(e,i,n,t,r,s);return await cn(e,i,a,n,t,s)}catch{return!1}}default:return Xr(Q.publicKey.ecdsa,e,t,r)}},verify:cn});async function hn(e,t,r,n,i,s){if($r(new Zr(e),n),Qe(t)0){const r=e[t-1];if(r>=1){const n=e.subarray(t-r),i=new Uint8Array(r).fill(r);if(L.equalsUint8Array(n,i))return e.subarray(0,t-r)}}throw new Error("Invalid padding")}function gn(e,t,r,n){return L.concatUint8Array([t.write(),new Uint8Array([e]),r.write(),L.stringToUint8Array("Anonymous Sender "),n])}async function yn(e,t,r,n,i=!1,s=!1){let a;if(i){for(a=0;a=0&&0===t[a];a--);t=t.subarray(0,a+1)}return(await Re(e,L.concatUint8Array([new Uint8Array([0,0,0,1]),t,n]))).subarray(0,r)}async function mn(e,t,r,n,i){const s=function(e){const t=8-e.length%8,r=new Uint8Array(e.length+t).fill(t);return r.set(e),r}(r),a=new Zr(e);$r(a,n);const{publicKey:o,sharedKey:c}=await async function(e,t){switch(e.type){case"curve25519Legacy":{const{sharedSecret:r,ephemeralPublicKey:n}=await Nr(Q.publicKey.x25519,t.subarray(1));return{publicKey:L.concatUint8Array([new Uint8Array([e.wireFormatLeadingByte]),n]),sharedKey:r}}case"web":if(e.web&&L.getWebCrypto())try{return await async function(e,t){const r=L.getWebCrypto(),n=rn(e.payloadSize,e.web,t);let i=r.generateKey({name:"ECDH",namedCurve:e.web},!0,["deriveKey","deriveBits"]),s=r.importKey("jwk",n,{name:"ECDH",namedCurve:e.web},!1,[]);[i,s]=await Promise.all([i,s]);let a=r.deriveBits({name:"ECDH",namedCurve:e.web,public:s},i.privateKey,e.sharedSize),o=r.exportKey("jwk",i.publicKey);[a,o]=await Promise.all([a,o]);const c=new Uint8Array(a);return{publicKey:new Uint8Array(tn(o,e.wireFormatLeadingByte)),sharedKey:c}}(e,t)}catch(r){return L.printDebugError(r),En(e,t)}break;case"node":return function(e,t){const r=L.getNodeCrypto().createECDH(e.node);r.generateKeys();const n=new Uint8Array(r.computeSecret(t));return{publicKey:new Uint8Array(r.getPublicKey()),sharedKey:n}}(e,t);default:return En(e,t)}}(a,n),l=gn(Q.publicKey.ecdh,e,t,i),{keySize:u}=Sr(t.cipher),h=await yn(t.hash,c,u,l);return{publicKey:o,wrappedKey:await xr(t.cipher,h,s)}}async function wn(e,t,r,n,i,s,a){const o=new Zr(e);$r(o,i),$r(o,r);const{sharedKey:c}=await async function(e,t,r,n){if(n.length!==e.payloadSize){const t=new Uint8Array(e.payloadSize);t.set(n,e.payloadSize-n.length),n=t}switch(e.type){case"curve25519Legacy":{const e=n.slice().reverse();return{secretKey:e,sharedKey:await Or(Q.publicKey.x25519,t.subarray(1),r.subarray(1),e)}}case"web":if(e.web&&L.getWebCrypto())try{return await async function(e,t,r,n){const i=L.getWebCrypto(),s=nn(e.payloadSize,e.web,r,n);let a=i.importKey("jwk",s,{name:"ECDH",namedCurve:e.web},!0,["deriveKey","deriveBits"]);const o=rn(e.payloadSize,e.web,t);let c=i.importKey("jwk",o,{name:"ECDH",namedCurve:e.web},!0,[]);[a,c]=await Promise.all([a,c]);let l=i.deriveBits({name:"ECDH",namedCurve:e.web,public:c},a,e.sharedSize),u=i.exportKey("jwk",a);[l,u]=await Promise.all([l,u]);const h=new Uint8Array(l);return{secretKey:J(u.d),sharedKey:h}}(e,t,r,n)}catch(r){return L.printDebugError(r),bn(e,t,n)}break;case"node":return function(e,t,r){const n=L.getNodeCrypto().createECDH(e.node);n.setPrivateKey(r);const i=new Uint8Array(n.computeSecret(t));return{secretKey:new Uint8Array(n.getPrivateKey()),sharedKey:i}}(e,t,n);default:return bn(e,t,n)}}(o,r,i,s),l=gn(Q.publicKey.ecdh,e,t,a),{keySize:u}=Sr(t.cipher);let h;for(let e=0;e<3;e++)try{const r=await yn(t.hash,c,u,l,1===e,2===e);return pn(await Kr(t.cipher,r,n))}catch(e){h=e}throw h}async function bn(e,t,r){return{secretKey:r,sharedKey:(await L.getNobleCurve(Q.publicKey.ecdh,e.name)).getSharedSecret(r,t).subarray(1)}}async function En(e,t){const r=await L.getNobleCurve(Q.publicKey.ecdh,e.name),{publicKey:n,privateKey:i}=await e.genKeyPair();return{publicKey:n,sharedKey:r.getSharedSecret(i,t).subarray(1)}}var vn=Object.freeze({__proto__:null,decrypt:wn,encrypt:mn,validateParams:async function(e,t,r){return Xr(Q.publicKey.ecdh,e,t,r)}}),kn=Object.freeze({__proto__:null,CurveWithOID:Zr,ecdh:vn,ecdhX:Hr,ecdsa:un,eddsa:mt,eddsaLegacy:dn,generate:Vr,getPreferredHashAlgo:zr});const In=BigInt(0),Bn=BigInt(1);class Cn{constructor(e){e&&(this.data=e)}read(e){if(e.length>=1){const t=e[0];if(e.length>=1+t)return this.data=e.subarray(1,1+t),1+this.data.length}throw new Error("Invalid symmetric key")}write(){return L.concatUint8Array([new Uint8Array([this.data.length]),this.data])}}class Sn{constructor(e){if(e){const{hash:t,cipher:r}=e;this.hash=t,this.cipher=r}else this.hash=null,this.cipher=null}read(e){if(e.length<4||3!==e[0]||1!==e[1])throw new at("Cannot read KDFParams");return this.hash=e[2],this.cipher=e[3],4}write(){return new Uint8Array([3,1,this.hash,this.cipher])}}class Dn{static fromObject({wrappedKey:e,algorithm:t}){const r=new Dn;return r.wrappedKey=e,r.algorithm=t,r}read(e){let t=0,r=e[t++];this.algorithm=r%2?e[t++]:null,r-=r%2,this.wrappedKey=L.readExactSubarray(e,t,t+r),t+=r}write(){return L.concatUint8Array([this.algorithm?new Uint8Array([this.wrappedKey.length+1,this.algorithm]):new Uint8Array([this.wrappedKey.length]),this.wrappedKey])}}async function xn(e,t,r,n,i,s){switch(e){case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaEncrypt:{const{c:e}=n,{n:i,e:a}=t,{d:o,p:c,q:l,u}=r;return async function(e,t,r,n,i,s,a,o){if(L.getNodeCrypto()&&!o)try{return function(e,t,r,n,i,s,a){const o={key:_e(t,r,n,i,s,a),format:"jwk",type:"pkcs1",padding:je.constants.RSA_PKCS1_PADDING};try{return new Uint8Array(je.privateDecrypt(o,e))}catch{throw new Error("Decryption error")}}(e,t,r,n,i,s,a)}catch(e){L.printDebugError(e)}return function(e,t,r,n,i,s,a,o){if(e=se(e),t=se(t),r=se(r),n=se(n),i=se(i),s=se(s),a=se(a),e>=t)throw new Error("Data too large.");const c=ae(n,s-We),l=ae(n,i-We),u=ye(BigInt(2),t),h=oe(le(u,t),r,t),f=oe(e=ae(e*h,t),l,i);let A=ae(a*(oe(e,c,s)-f),s)*i+f;return A=ae(A*u,t),Le(de(A,"be",Ae(t)),o)}(e,t,r,n,i,s,a,o)}(e,i,a,o,c,l,u,s)}case Q.publicKey.elgamal:{const{c1:e,c2:i}=n;return async function(e,t,r,n,i){return e=se(e),t=se(t),r=se(r),Le(de(ae(le(oe(e,n=se(n),r),r)*t,r),"be",Ae(r)),i)}(e,i,t.p,r.x,s)}case Q.publicKey.ecdh:{const{oid:e,Q:s,kdfParams:a}=t,{d:o}=r,{V:c,C:l}=n;return wn(e,a,c,l.data,s,o,i)}case Q.publicKey.x25519:case Q.publicKey.x448:{const{A:i}=t,{k:s}=r,{ephemeralPublicKey:a,C:o}=n;if(null!==o.algorithm&&!L.isAES(o.algorithm))throw new Error("AES session key expected");return Rr(e,a,o.wrappedKey,i,s)}default:throw new Error("Unknown public key encryption algorithm.")}}function Kn(e,t,r){let n=0;switch(e){case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaSign:{const e=L.readMPI(t.subarray(n));n+=e.length+2;const r=L.readMPI(t.subarray(n));n+=r.length+2;const i=L.readMPI(t.subarray(n));n+=i.length+2;const s=L.readMPI(t.subarray(n));return n+=s.length+2,{read:n,privateParams:{d:e,p:r,q:i,u:s}}}case Q.publicKey.dsa:case Q.publicKey.elgamal:{const e=L.readMPI(t.subarray(n));return n+=e.length+2,{read:n,privateParams:{x:e}}}case Q.publicKey.ecdsa:case Q.publicKey.ecdh:{const i=Fn(e,r.oid);let s=L.readMPI(t.subarray(n));return n+=s.length+2,s=L.leftPad(s,i),{read:n,privateParams:{d:s}}}case Q.publicKey.eddsaLegacy:{const i=Fn(e,r.oid);if(r.oid.getName()!==Q.curve.ed25519Legacy)throw new Error("Unexpected OID for eddsaLegacy");let s=L.readMPI(t.subarray(n));return n+=s.length+2,s=L.leftPad(s,i),{read:n,privateParams:{seed:s}}}case Q.publicKey.ed25519:case Q.publicKey.ed448:{const r=Fn(e),i=L.readExactSubarray(t,n,n+r);return n+=i.length,{read:n,privateParams:{seed:i}}}case Q.publicKey.x25519:case Q.publicKey.x448:{const r=Fn(e),i=L.readExactSubarray(t,n,n+r);return n+=i.length,{read:n,privateParams:{k:i}}}default:throw new at("Unknown public key encryption algorithm.")}}function Pn(e,t){const r=new Set([Q.publicKey.ed25519,Q.publicKey.x25519,Q.publicKey.ed448,Q.publicKey.x448]),n=Object.keys(t).map(n=>{const i=t[n];return L.isUint8Array(i)?r.has(e)?i:L.uint8ArrayToMPI(i):i.write()});return L.concatUint8Array(n)}function Un(e){const{keySize:t}=Sr(e);return ge(t)}function Tn(e){try{e.getName()}catch{throw new at("Unknown curve OID")}}function Fn(e,t){switch(e){case Q.publicKey.ecdsa:case Q.publicKey.ecdh:case Q.publicKey.eddsaLegacy:return new Zr(t).payloadSize;case Q.publicKey.ed25519:case Q.publicKey.ed448:return dt(e);case Q.publicKey.x25519:case Q.publicKey.x448:return Qr(e);default:throw new Error("Unknown elliptic algo")}}const Mn=L.getWebCrypto(),Rn=L.getNodeCrypto(),Qn=Rn?Rn.getCiphers():[],Nn={idea:Qn.includes("idea-cfb")?"idea-cfb":void 0,tripledes:Qn.includes("des-ede3-cfb")?"des-ede3-cfb":void 0,cast5:Qn.includes("cast5-cfb")?"cast5-cfb":void 0,blowfish:Qn.includes("bf-cfb")?"bf-cfb":void 0,aes128:Qn.includes("aes-128-cfb")?"aes-128-cfb":void 0,aes192:Qn.includes("aes-192-cfb")?"aes-192-cfb":void 0,aes256:Qn.includes("aes-256-cfb")?"aes-256-cfb":void 0};function On(e){const{blockSize:t}=Sr(e),r=ge(t),n=new Uint8Array([r[r.length-2],r[r.length-1]]);return L.concat([r,n])}async function Ln(e,t,r,n,i){const s=Q.read(Q.symmetric,e);if(L.getNodeCrypto()&&Nn[s])return function(e,t,r,n){const i=Q.read(Q.symmetric,e),s=new Rn.createCipheriv(Nn[i],t,n);return v(r,e=>new Uint8Array(s.update(e)))}(e,t,r,n);if(L.isAES(e))return async function(e,t,r,n){if(Mn&&await Hn.isSupported(e)){const i=new Hn(e,t,n);return L.isStream(r)?k(r,e=>i.encryptChunk(e),()=>i.finish()):i.encrypt(r)}if(L.isStream(r)){const i=new jn(!0,e,t,n);return k(r,e=>i.processChunk(e),()=>i.finish())}return pr(t,n).encrypt(r)}(e,t,r,n);const a=new(await Ir(e))(t),o=a.blockSize,c=n.slice();let l=new Uint8Array;const u=e=>{e&&(l=L.concatUint8Array([l,e]));const t=new Uint8Array(l.length);let r,n=0;for(;e?l.length>=o:l.length;){const e=a.encrypt(c);for(r=0;rnew Uint8Array(s.update(e)))}(e,t,r,n);if(L.isAES(e))return function(e,t,r,n){if(L.isStream(r)){const i=new jn(!1,e,t,n);return k(r,e=>i.processChunk(e),()=>i.finish())}return pr(t,n).decrypt(r)}(e,t,r,n);const s=new(await Ir(e))(t),a=s.blockSize;let o=n,c=new Uint8Array;const l=e=>{e&&(c=L.concatUint8Array([c,e]));const t=new Uint8Array(c.length);let r,n=0;for(;e?c.length>=a:c.length;){const e=s.encrypt(o);for(o=c.subarray(0,a),r=0;r!0,()=>!1)}async _runCBC(e,t){const r="AES-CBC";this.keyRef=this.keyRef||await Mn.importKey("raw",this.key,r,!1,["encrypt"]);const n=await Mn.encrypt({name:r,iv:t||this.zeroBlock},this.keyRef,e);return new Uint8Array(n).subarray(0,e.length)}async encryptChunk(e){const t=this.nextBlock.length-this.i,r=e.subarray(0,t);if(this.nextBlock.set(r,this.i),this.i+e.length>=2*this.blockSize){const r=(e.length-t)%this.blockSize,n=L.concatUint8Array([this.nextBlock,e.subarray(t,e.length-r)]),i=L.concatUint8Array([this.prevBlock,n.subarray(0,n.length-this.blockSize)]),s=await this._runCBC(i);return Wn(s,n),this.prevBlock=s.slice(-this.blockSize),r>0&&this.nextBlock.set(e.subarray(-r)),this.i=r,s}let n;if(this.i+=r.length,this.i===this.nextBlock.length){const t=this.nextBlock;n=await this._runCBC(this.prevBlock),Wn(n,t),this.prevBlock=n.slice(),this.i=0;const i=e.subarray(r.length);this.nextBlock.set(i,this.i),this.i+=i.length}else n=new Uint8Array;return n}async finish(){let e;if(0===this.i)e=new Uint8Array;else{this.nextBlock=this.nextBlock.subarray(0,this.i);const t=this.nextBlock,r=await this._runCBC(this.prevBlock);Wn(r,t),e=r.subarray(0,t.length)}return this.clearSensitiveData(),e}clearSensitiveData(){this.nextBlock.fill(0),this.prevBlock.fill(0),this.keyRef=null,this.key=null}async encrypt(e){const t=(await this._runCBC(L.concatUint8Array([new Uint8Array(this.blockSize),e]),this.iv)).subarray(0,e.length);return Wn(t,e),this.clearSensitiveData(),t}}class jn{constructor(e,t,r,n){this.forEncryption=e;const{blockSize:i}=Sr(t);this.key=kr.expandKeyLE(r),n.byteOffset%4!=0&&(n=n.slice()),this.prevBlock=Yn(n),this.nextBlock=new Uint8Array(i),this.i=0,this.blockSize=i}_runCFB(e){const t=Yn(e),r=new Uint8Array(e.length),n=Yn(r);for(let e=0;e+4<=n.length;e+=4){const{s0:r,s1:i,s2:s,s3:a}=kr.encrypt(this.key,this.prevBlock[0],this.prevBlock[1],this.prevBlock[2],this.prevBlock[3]);n[e+0]=t[e+0]^r,n[e+1]=t[e+1]^i,n[e+2]=t[e+2]^s,n[e+3]=t[e+3]^a,this.prevBlock=(this.forEncryption?n:t).slice(e,e+4)}return r}async processChunk(e){const t=this.nextBlock.length-this.i,r=e.subarray(0,t);if(this.nextBlock.set(r,this.i),this.i+e.length>=2*this.blockSize){const r=(e.length-t)%this.blockSize,n=L.concatUint8Array([this.nextBlock,e.subarray(t,e.length-r)]),i=this._runCFB(n);return r>0&&this.nextBlock.set(e.subarray(-r)),this.i=r,i}let n;if(this.i+=r.length,this.i===this.nextBlock.length){n=this._runCFB(this.nextBlock),this.i=0;const t=e.subarray(r.length);this.nextBlock.set(t,this.i),this.i+=t.length}else n=new Uint8Array;return n}async finish(){let e;return e=0===this.i?new Uint8Array:this._runCFB(this.nextBlock).subarray(0,this.i),this.clearSensitiveData(),e}clearSensitiveData(){this.nextBlock.fill(0),this.prevBlock.fill(0),this.key.fill(0)}}function Wn(e,t){const r=Math.min(e.length,t.length);for(let n=0;nnew Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4)),Jn=L.getWebCrypto(),_n=L.getNodeCrypto(),qn=16;function Zn(e,t){const r=e.length-qn;for(let n=0;ndr(t,hi,{disablePadding:!0}).encrypt(e),s=e=>dr(t,hi,{disablePadding:!0}).decrypt(e);let a;function o(e,t,r,s){const o=t.length/oi|0;!function(e,t){const r=L.nbits(Math.max(e.length,t.length)/oi|0)-1;for(let e=n+1;e<=r;e++)a[e]=L.double(a[e-1]);n=r}(t,s);const c=L.concatUint8Array([hi.subarray(0,15-r.length),fi,r]),l=63&c[15];c[15]&=192;const u=i(c),h=L.concatUint8Array([u,ui(u.subarray(0,8),u.subarray(1,9))]),f=L.shiftRight(h.subarray(0+(l>>3),17+(l>>3)),8-(7&l)).subarray(1),A=new Uint8Array(oi),d=new Uint8Array(t.length+16);let p,g=0;for(p=0;p=r)throw new Error("Signature size cannot exceed modulus size");const s=de(oe(t,n,r),"be",Ae(r)),a=Ge(e,i,Ae(r));return L.equalsUint8Array(s,a)}(e,r,n,i,s)}(t,i,L.leftPad(r.s,e.length),e,a,s)}case Q.publicKey.dsa:{const{g:e,p:t,q:i,y:a}=n,{r:o,s:c}=r;return async function(e,t,r,n,i,s,a,o){if(t=se(t),r=se(r),s=se(s),a=se(a),i=se(i),o=se(o),t<=In||t>=a||r<=In||r>=a)return L.printDebug("invalid DSA Signature"),!1;const c=ae(se(n.subarray(0,Ae(a))),a),l=le(r,a);if(l===In)return L.printDebug("invalid DSA Signature"),!1;i=ae(i,s),o=ae(o,s);const u=ae(c*l,a),h=ae(t*l,a);return ae(ae(oe(i,u,s)*oe(o,h,s),s),a)===t}(0,o,c,s,e,t,i,a)}case Q.publicKey.ecdsa:{const{oid:e,Q:a}=n,o=new Zr(e).payloadSize;return cn(e,t,{r:L.leftPad(r.r,o),s:L.leftPad(r.s,o)},i,a,s)}case Q.publicKey.eddsaLegacy:{const{oid:e,Q:i}=n,a=new Zr(e).payloadSize;return fn(e,t,{r:L.leftPad(r.r,a),s:L.leftPad(r.s,a)},0,i,s)}case Q.publicKey.ed25519:case Q.publicKey.ed448:{const{A:i}=n;return ft(e,t,r,0,i,s)}default:throw new Error("Unknown signature algorithm.")}}mi.getNonce=function(e,t){const r=e.slice();for(let e=0;e1048576&&(ki=vi(),ki.catch(()=>{})),n}catch(e){throw e.message&&(e.message.includes("Unable to grow instance memory")||e.message.includes("failed to grow memory")||e.message.includes("WebAssembly.Memory.grow")||e.message.includes("Out of memory"))?new Ei("Could not allocate required memory for Argon2"):e}}}class Bi{constructor(e,t=N){this.algorithm=Q.hash.sha256,this.type=Q.read(Q.s2k,e),this.c=t.s2kIterationCountByte,this.salt=null}generateSalt(){switch(this.type){case"salted":case"iterated":this.salt=ge(8)}}getCount(){return 16+(15&this.c)<<6+(this.c>>4)}read(e){let t=0;switch(this.algorithm=e[t++],this.type){case"simple":break;case"salted":this.salt=e.subarray(t,t+8),t+=8;break;case"iterated":this.salt=e.subarray(t,t+8),t+=8,this.c=e[t++];break;case"gnu":if("GNU"!==L.uint8ArrayToString(e.subarray(t,t+3)))throw new at("Unknown s2k type.");if(t+=3,1001!==1e3+e[t++])throw new at("Unknown s2k gnu protection mode.");this.type="gnu-dummy";break;default:throw new at("Unknown s2k type.")}return t}write(){if("gnu-dummy"===this.type)return new Uint8Array([101,0,...L.stringToUint8Array("GNU"),1]);const e=[new Uint8Array([Q.write(Q.s2k,this.type),this.algorithm])];switch(this.type){case"simple":break;case"salted":e.push(this.salt);break;case"iterated":e.push(this.salt),e.push(new Uint8Array([this.c]));break;case"gnu":throw new Error("GNU s2k type not supported.");default:throw new Error("Unknown s2k type.")}return L.concatUint8Array(e)}async produceKey(e,t){e=L.encodeUTF8(e);const r=[];let n=0,i=0;for(;n>1|(21845&ji)<<1;Wi=(61680&(Wi=(52428&Wi)>>2|(13107&Wi)<<2))>>4|(3855&Wi)<<4,Hi[ji]=((65280&Wi)>>8|(255&Wi)<<8)>>1}var Yi=function(e,t,r){for(var n=e.length,i=0,s=new Ki(t);i>c]=l}else for(a=new Ki(n),i=0;i>15-e[i]);return a},Ji=new xi(288);for(ji=0;ji<144;++ji)Ji[ji]=8;for(ji=144;ji<256;++ji)Ji[ji]=9;for(ji=256;ji<280;++ji)Ji[ji]=7;for(ji=280;ji<288;++ji)Ji[ji]=8;var _i=new xi(32);for(ji=0;ji<32;++ji)_i[ji]=5;var qi=Yi(Ji,9,0),Zi=Yi(Ji,9,1),Vi=Yi(_i,5,0),zi=Yi(_i,5,1),Xi=function(e){for(var t=e[0],r=1;rt&&(t=e[r]);return t},$i=function(e,t,r){var n=t/8|0;return(e[n]|e[n+1]<<8)>>(7&t)&r},es=function(e,t){var r=t/8|0;return(e[r]|e[r+1]<<8|e[r+2]<<16)>>(7&t)},ts=function(e){return(e+7)/8|0},rs=function(e,t,r){return(null==t||t<0)&&(t=0),(null==r||r>e.length)&&(r=e.length),new xi(e.subarray(t,r))},ns=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],is=function(e,t,r){var n=new Error(t||ns[e]);if(n.code=e,Error.captureStackTrace&&Error.captureStackTrace(n,is),!r)throw n;return n},ss=function(e,t,r){r<<=7&t;var n=t/8|0;e[n]|=r,e[n+1]|=r>>8},as=function(e,t,r){r<<=7&t;var n=t/8|0;e[n]|=r,e[n+1]|=r>>8,e[n+2]|=r>>16},os=function(e,t){for(var r=[],n=0;nf&&(f=s[n].s);var A=new Ki(f+1),d=cs(r[u-1],A,0);if(d>t){n=0;var p=0,g=d-t,y=1<t))break;p+=y-(1<>=g;p>0;){var w=s[n].s;A[w]=0&&p;--n){var b=s[n].s;A[b]==t&&(--A[b],++p)}d=t}return{t:new xi(A),l:d}},cs=function(e,t,r){return-1==e.s?Math.max(cs(e.l,t,r+1),cs(e.r,t,r+1)):t[e.s]=r},ls=function(e){for(var t=e.length;t&&!e[--t];);for(var r=new Ki(++t),n=0,i=e[0],s=1,a=function(e){r[n++]=e},o=1;o<=t;++o)if(e[o]==i&&o!=t)++s;else{if(!i&&s>2){for(;s>138;s-=138)a(32754);s>2&&(a(s>10?s-11<<5|28690:s-3<<5|12305),s=0)}else if(s>3){for(a(i),--s;s>6;s-=6)a(8304);s>2&&(a(s-3<<5|8208),s=0)}for(;s--;)a(i);s=1,i=e[o]}return{c:r.subarray(0,n),n:t}},us=function(e,t){for(var r=0,n=0;n>8,e[i+2]=255^e[i],e[i+3]=255^e[i+1];for(var s=0;s4&&!C[Fi[D-1]];--D);var x,K,P,U,T=l+5<<3,F=us(i,Ji)+us(s,_i)+a,M=us(i,f)+us(s,p)+a+14+3*D+us(k,C)+2*k[16]+3*k[17]+7*k[18];if(c>=0&&T<=F&&T<=M)return hs(t,u,e.subarray(c,c+l));if(ss(t,u,1+(M15&&(ss(t,u,O[I]>>5&127),u+=O[I]>>12)}}}else x=qi,K=Ji,P=Vi,U=_i;for(I=0;I255){as(t,u,x[257+(L=G>>18&31)]),u+=K[L+257],L>7&&(ss(t,u,G>>23&31),u+=Ui[L]);var H=31&G;as(t,u,P[H]),u+=U[H],H>3&&(as(t,u,G>>5&8191),u+=Ti[H])}else as(t,u,x[G]),u+=K[G]}return as(t,u,x[256]),u+K[256]},As=new Pi([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),ds=new xi(0),ps=function(){var e=1,t=0;return{p:function(r){for(var n=e,i=t,s=0|r.length,a=0;a!=s;){for(var o=Math.min(a+2655,s);a>16),i=(65535&i)+15*(i>>16)}e=n,t=i},d:function(){return(255&(e%=65521))<<24|(65280&e)<<8|(255&(t%=65521))<<8|t>>8}}},gs=function(e,t,r,n,i){if(!i&&(i={l:1},t.dictionary)){var s=t.dictionary.subarray(-32768),a=new xi(s.length+e.length);a.set(s),a.set(e,s.length),e=a,i.w=s.length}return function(e,t,r,n,i,s){var a=s.z||e.length,o=new xi(n+a+5*(1+Math.ceil(a/7e3))+i),c=o.subarray(n,o.length-i),l=s.l,u=7&(s.r||0);if(t){u&&(c[0]=s.r>>3);for(var h=As[t-1],f=h>>13,A=8191&h,d=(1<7e3||C>24576)&&(U>423||!l)){u=fs(e,c,0,b,E,v,I,C,D,B-D,u),C=k=I=0,D=B;for(var T=0;T<286;++T)E[T]=0;for(T=0;T<30;++T)v[T]=0}var F=2,M=0,R=A,Q=K-P&32767;if(U>2&&x==w(B-Q))for(var N=Math.min(f,U)-1,O=Math.min(32767,B),L=Math.min(258,U);Q<=O&&--R&&K!=P;){if(e[B+F]==e[B+F-Q]){for(var G=0;GF){if(F=G,M=Q,G>N)break;var H=Math.min(Q,G-2),j=0;for(T=0;Tj&&(j=Y,P=W)}}}Q+=(K=P)-(P=p[K])&32767}if(M){b[C++]=268435456|Ni[F]<<18|Gi[M];var J=31&Ni[F],_=31&Gi[M];I+=Ui[J]+Ti[_],++E[257+J],++v[_],S=B+F,++k}else b[C++]=e[B],++E[e[B]]}}for(B=Math.max(B,S);B=a&&(c[u/8|0]=l,q=a),u=hs(c,u+1,e.subarray(B,q))}s.i=a}return rs(o,0,n+ts(u)+i)}(e,null==t.level?6:t.level,null==t.mem?i.l?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(e.length)))):20:12+t.mem,r,n,i)},ys=function(e,t,r){for(;r;++t)e[t]=r,r>>>=8},ms=function(){function e(e,t){if("function"==typeof e&&(t=e,e={}),this.ondata=t,this.o=e||{},this.s={l:0,i:32768,w:32768,z:32768},this.b=new xi(98304),this.o.dictionary){var r=this.o.dictionary.subarray(-32768);this.b.set(r,32768-r.length),this.s.i=32768-r.length}}return e.prototype.p=function(e,t){this.ondata(gs(e,this.o,0,0,this.s),t)},e.prototype.push=function(e,t){this.ondata||is(5),this.s.l&&is(4);var r=e.length+this.s.z;if(r>this.b.length){if(r>2*this.b.length-32768){var n=new xi(-32768&r);n.set(this.b.subarray(0,this.s.z)),this.b=n}var i=this.b.length-this.s.z;this.b.set(e.subarray(0,i),this.s.z),this.s.z=this.b.length,this.p(this.b,!1),this.b.set(this.b.subarray(-32768)),this.b.set(e.subarray(i),32768),this.s.z=e.length-i+32768,this.s.i=32766,this.s.w=32768}else this.b.set(e,this.s.z),this.s.z+=e.length;this.s.l=1&t,(this.s.z>this.s.w+8191||t)&&(this.p(this.b,t||!1),this.s.w=this.s.i,this.s.i-=2)},e.prototype.flush=function(){this.ondata||is(5),this.s.l&&is(4),this.p(this.b,!1),this.s.w=this.s.i,this.s.i-=2},e}(),ws=function(){function e(e,t){"function"==typeof e&&(t=e,e={}),this.ondata=t;var r=e&&e.dictionary&&e.dictionary.subarray(-32768);this.s={i:0,b:r?r.length:0},this.o=new xi(32768),this.p=new xi(0),r&&this.o.set(r)}return e.prototype.e=function(e){if(this.ondata||is(5),this.d&&is(4),this.p.length){if(e.length){var t=new xi(this.p.length+e.length);t.set(this.p),t.set(e,this.p.length),this.p=t}}else this.p=e},e.prototype.c=function(e){this.s.i=+(this.d=e||!1);var t=this.s.b,r=function(e,t,r){var n=e.length;if(!n||t.f&&!t.l)return r||new xi(0);var i=!r,s=i||2!=t.i,a=t.i;i&&(r=new xi(3*n));var o=function(e){var t=r.length;if(e>t){var n=new xi(Math.max(2*t,e));n.set(r),r=n}},c=t.f||0,l=t.p||0,u=t.b||0,h=t.l,f=t.d,A=t.m,d=t.n,p=8*n;do{if(!h){c=$i(e,l,1);var g=$i(e,l+1,3);if(l+=3,!g){var y=e[(D=ts(l)+4)-4]|e[D-3]<<8,m=D+y;if(m>n){a&&is(0);break}s&&o(u+y),r.set(e.subarray(D,m),u),t.b=u+=y,t.p=l=8*m,t.f=c;continue}if(1==g)h=Zi,f=zi,A=9,d=5;else if(2==g){var w=$i(e,l,31)+257,b=$i(e,l+10,15)+4,E=w+$i(e,l+5,31)+1;l+=14;for(var v=new xi(E),k=new xi(19),I=0;I>4)<16)v[I++]=D;else{var K=0,P=0;for(16==D?(P=3+$i(e,l,3),l+=2,K=v[I-1]):17==D?(P=3+$i(e,l,7),l+=3):18==D&&(P=11+$i(e,l,127),l+=7);P--;)v[I++]=K}}var U=v.subarray(0,w),T=v.subarray(w);A=Xi(U),d=Xi(T),h=Yi(U,A,1),f=Yi(T,d,1)}else is(1);if(l>p){a&&is(0);break}}s&&o(u+131072);for(var F=(1<>4;if((l+=15&K)>p){a&&is(0);break}if(K||is(2),Q<256)r[u++]=Q;else{if(256==Q){R=l,h=null;break}var N=Q-254;if(Q>264){var O=Ui[I=Q-257];N=$i(e,l,(1<>4;if(L||is(3),l+=15&L,T=Li[G],G>3&&(O=Ti[G],T+=es(e,l)&(1<p){a&&is(0);break}s&&o(u+131072);var H=u+N;if(u>4>7||(r[0]<<8|r[1])%31)&&is(6,"invalid zlib data"),(r[1]>>5&1)==+!n&&is(6,"invalid zlib data: "+(32&r[1]?"need":"unexpected")+" dictionary"),2+(r[1]>>3&4))),this.v=0}var r,n;t&&(this.p.length<4&&is(6,"invalid zlib data"),this.p=this.p.subarray(0,-4)),ws.prototype.c.call(this,t)},e}(),vs="undefined"!=typeof TextDecoder&&new TextDecoder;try{vs.decode(ds,{stream:!0})}catch(e){}class ks{static get tag(){return Q.packet.literalData}constructor(e=new Date){this.format=Q.literal.utf8,this.date=L.normalizeDate(e),this.text=null,this.data=null,this.filename=""}setText(e,t=Q.literal.utf8){this.format=t,this.text=e,this.data=null}getText(e=!1){return(null===this.text||L.isStream(this.text))&&(this.text=L.decodeUTF8(L.nativeEOL(this.getBytes(e)))),this.text}setBytes(e,t){this.format=t,this.data=e,this.text=null}getBytes(e=!1){return null===this.data&&(this.data=L.canonicalizeEOL(L.encodeUTF8(this.text))),e?D(this.data):this.data}setFilename(e){this.filename=e}getFilename(){return this.filename}async read(e){await C(e,async e=>{const t=await e.readByte(),r=await e.readByte();this.filename=L.decodeUTF8(await e.readBytes(r)),this.date=L.readDate(await e.readBytes(4));let n=e.remainder();l(n)&&(n=await P(n)),this.setBytes(n,t)})}writeHeader(){const e=L.encodeUTF8(this.filename),t=new Uint8Array([e.length]),r=new Uint8Array([this.format]),n=L.writeDate(this.date);return L.concatUint8Array([r,t,e,n])}write(){const e=this.writeHeader(),t=this.getBytes();return L.concat([e,t])}}class Is{constructor(){this.bytes=""}read(e){return this.bytes=L.uint8ArrayToString(e.subarray(0,8)),this.bytes.length}write(){return L.stringToUint8Array(this.bytes)}toHex(){return L.uint8ArrayToHex(L.stringToUint8Array(this.bytes))}equals(e,t=!1){return t&&(e.isWildcard()||this.isWildcard())||this.bytes===e.bytes}isNull(){return""===this.bytes}isWildcard(){return/^0+$/.test(this.toHex())}static mapToHex(e){return e.toHex()}static fromID(e){const t=new Is;return t.read(L.hexToUint8Array(e)),t}static wildcard(){const e=new Is;return e.read(new Uint8Array(8)),e}}const Bs=Symbol("verified"),Cs="salt@notations.openpgpjs.org",Ss=new Set([Q.signatureSubpacket.issuerKeyID,Q.signatureSubpacket.issuerFingerprint,Q.signatureSubpacket.embeddedSignature]);class Ds{static get tag(){return Q.packet.signature}constructor(){this.version=null,this.signatureType=null,this.hashAlgorithm=null,this.publicKeyAlgorithm=null,this.signatureData=null,this.unhashedSubpackets=[],this.unknownSubpackets=[],this.signedHashValue=null,this.salt=null,this.created=null,this.signatureExpirationTime=null,this.signatureNeverExpires=!0,this.exportable=null,this.trustLevel=null,this.trustAmount=null,this.regularExpression=null,this.revocable=null,this.keyExpirationTime=null,this.keyNeverExpires=null,this.preferredSymmetricAlgorithms=null,this.revocationKeyClass=null,this.revocationKeyAlgorithm=null,this.revocationKeyFingerprint=null,this.issuerKeyID=new Is,this.rawNotations=[],this.notations={},this.preferredHashAlgorithms=null,this.preferredCompressionAlgorithms=null,this.keyServerPreferences=null,this.preferredKeyServer=null,this.isPrimaryUserID=null,this.policyURI=null,this.keyFlags=null,this.signersUserID=null,this.reasonForRevocationFlag=null,this.reasonForRevocationString=null,this.features=null,this.signatureTargetPublicKeyAlgorithm=null,this.signatureTargetHashAlgorithm=null,this.signatureTargetHash=null,this.embeddedSignature=null,this.issuerKeyVersion=null,this.issuerFingerprint=null,this.preferredAEADAlgorithms=null,this.preferredCipherSuites=null,this.revoked=null,this[Bs]=null}read(e,t=N){let r=0;if(this.version=e[r++],5===this.version&&!t.enableParsingV5Entities)throw new at("Support for v5 entities is disabled; turn on `config.enableParsingV5Entities` if needed");if(4!==this.version&&5!==this.version&&6!==this.version)throw new at(`Version ${this.version} of the signature packet is unsupported.`);if(this.signatureType=e[r++],this.publicKeyAlgorithm=e[r++],this.hashAlgorithm=e[r++],r+=this.readSubPackets(e.subarray(r,e.length),!0),!this.created)throw new Error("Missing signature creation time subpacket.");if(this.signatureData=e.subarray(0,r),r+=this.readSubPackets(e.subarray(r,e.length),!1),this.signedHashValue=e.subarray(r,r+2),r+=2,6===this.version){const t=e[r++];this.salt=e.subarray(r,r+t),r+=t}const n=e.subarray(r,e.length),{read:i,signatureParams:s}=function(e,t){let r=0;switch(e){case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaSign:{const e=L.readMPI(t.subarray(r));return r+=e.length+2,{read:r,signatureParams:{s:e}}}case Q.publicKey.dsa:case Q.publicKey.ecdsa:{const e=L.readMPI(t.subarray(r));r+=e.length+2;const n=L.readMPI(t.subarray(r));return r+=n.length+2,{read:r,signatureParams:{r:e,s:n}}}case Q.publicKey.eddsaLegacy:{const e=L.readMPI(t.subarray(r));r+=e.length+2;const n=L.readMPI(t.subarray(r));return r+=n.length+2,{read:r,signatureParams:{r:e,s:n}}}case Q.publicKey.ed25519:case Q.publicKey.ed448:{const n=2*dt(e),i=L.readExactSubarray(t,r,r+n);return r+=i.length,{read:r,signatureParams:{RS:i}}}default:throw new at("Unknown signature algorithm.")}}(this.publicKeyAlgorithm,n);if(iPn(this.publicKeyAlgorithm,await this.params)):Pn(this.publicKeyAlgorithm,this.params)}write(){const e=[];return e.push(this.signatureData),e.push(this.writeUnhashedSubPackets()),e.push(this.signedHashValue),6===this.version&&(e.push(new Uint8Array([this.salt.length])),e.push(this.salt)),e.push(this.writeParams()),L.concat(e)}async sign(e,t,r=new Date,n=!1,i){this.version=e.version,this.created=L.normalizeDate(r),this.issuerKeyVersion=e.version,this.issuerFingerprint=e.getFingerprintBytes(),this.issuerKeyID=e.getKeyID();const s=[new Uint8Array([this.version,this.signatureType,this.publicKeyAlgorithm,this.hashAlgorithm])];if(6===this.version){const e=Ks(this.hashAlgorithm);if(null===this.salt)this.salt=ge(e);else if(e!==this.salt.length)throw new Error("Provided salt does not have the required length")}else if(i.nonDeterministicSignaturesViaNotation){if(0!==this.rawNotations.filter(({name:e})=>e===Cs).length)throw new Error("Unexpected existing salt notation");{const e=ge(Ks(this.hashAlgorithm));this.rawNotations.push({name:Cs,value:e,humanReadable:!1,critical:!1})}}s.push(this.writeHashedSubPackets()),this.unhashedSubpackets=[],this.signatureData=L.concat(s);const a=this.toHash(this.signatureType,t,n),o=await this.hash(this.signatureType,t,a,n);this.signedHashValue=K(S(o),0,2);const c=async()=>async function(e,t,r,n,i,s){if(!r||!n)throw new Error("Missing key parameters");switch(e){case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaSign:{const{n:e,e:a}=r,{d:o,p:c,q:l,u}=n;return{s:await Ye(t,i,e,a,o,c,l,u,s)}}case Q.publicKey.dsa:{const{g:e,p:t,q:i}=r,{x:a}=n;return async function(e,t,r,n,i,s){const a=BigInt(0);let o,c,l,u;n=se(n),i=se(i),r=se(r),s=se(s),r=ae(r,n),s=ae(s,i);const h=ae(se(t.subarray(0,Ae(i))),i);for(;;){if(o=ye(Bn,i),c=ae(oe(r,o,n),i),c===a)continue;const e=ae(s*c,i);if(u=ae(h+e,i),l=ae(le(o,i)*u,i),l!==a)break}return{r:de(c,"be",Ae(n)),s:de(l,"be",Ae(n))}}(0,s,e,t,i,a)}case Q.publicKey.elgamal:throw new Error("Signing with Elgamal is not defined in the OpenPGP standard.");case Q.publicKey.ecdsa:{const{oid:e,Q:a}=r,{d:o}=n;return on(e,t,i,a,o,s)}case Q.publicKey.eddsaLegacy:{const{oid:e,Q:i}=r,{seed:a}=n;return hn(e,t,0,i,a,s)}case Q.publicKey.ed25519:case Q.publicKey.ed448:{const{A:i}=r,{seed:a}=n;return ht(e,t,0,i,a,s)}default:throw new Error("Unknown signature algorithm.")}}(this.publicKeyAlgorithm,this.hashAlgorithm,e.publicParams,e.privateParams,a,await P(o));L.isStream(o)?this.params=c():(this.params=await c(),this[Bs]=!0)}writeHashedSubPackets(){const e=Q.signatureSubpacket,t=[];let r;if(null===this.created)throw new Error("Missing signature creation time");t.push(xs(e.signatureCreationTime,!0,L.writeDate(this.created))),null!==this.signatureExpirationTime&&t.push(xs(e.signatureExpirationTime,!0,L.writeNumber(this.signatureExpirationTime,4))),null!==this.exportable&&t.push(xs(e.exportableCertification,!0,new Uint8Array([this.exportable?1:0]))),null!==this.trustLevel&&(r=new Uint8Array([this.trustLevel,this.trustAmount]),t.push(xs(e.trustSignature,!0,r))),null!==this.regularExpression&&t.push(xs(e.regularExpression,!0,this.regularExpression)),null!==this.revocable&&t.push(xs(e.revocable,!0,new Uint8Array([this.revocable?1:0]))),null!==this.keyExpirationTime&&t.push(xs(e.keyExpirationTime,!0,L.writeNumber(this.keyExpirationTime,4))),null!==this.preferredSymmetricAlgorithms&&(r=L.stringToUint8Array(L.uint8ArrayToString(this.preferredSymmetricAlgorithms)),t.push(xs(e.preferredSymmetricAlgorithms,!1,r))),null!==this.revocationKeyClass&&(r=new Uint8Array([this.revocationKeyClass,this.revocationKeyAlgorithm]),r=L.concat([r,this.revocationKeyFingerprint]),t.push(xs(e.revocationKey,!1,r))),!this.issuerKeyID.isNull()&&this.issuerKeyVersion<5&&t.push(xs(e.issuerKeyID,!1,this.issuerKeyID.write())),this.rawNotations.forEach(({name:n,value:i,humanReadable:s,critical:a})=>{r=[new Uint8Array([s?128:0,0,0,0])];const o=L.encodeUTF8(n);r.push(L.writeNumber(o.length,2)),r.push(L.writeNumber(i.length,2)),r.push(o),r.push(i),r=L.concat(r),t.push(xs(e.notationData,a,r))}),null!==this.preferredHashAlgorithms&&(r=L.stringToUint8Array(L.uint8ArrayToString(this.preferredHashAlgorithms)),t.push(xs(e.preferredHashAlgorithms,!1,r))),null!==this.preferredCompressionAlgorithms&&(r=L.stringToUint8Array(L.uint8ArrayToString(this.preferredCompressionAlgorithms)),t.push(xs(e.preferredCompressionAlgorithms,!1,r))),null!==this.keyServerPreferences&&(r=L.stringToUint8Array(L.uint8ArrayToString(this.keyServerPreferences)),t.push(xs(e.keyServerPreferences,!1,r))),null!==this.preferredKeyServer&&t.push(xs(e.preferredKeyServer,!1,L.encodeUTF8(this.preferredKeyServer))),null!==this.isPrimaryUserID&&t.push(xs(e.primaryUserID,!1,new Uint8Array([this.isPrimaryUserID?1:0]))),null!==this.policyURI&&t.push(xs(e.policyURI,!1,L.encodeUTF8(this.policyURI))),null!==this.keyFlags&&(r=L.stringToUint8Array(L.uint8ArrayToString(this.keyFlags)),t.push(xs(e.keyFlags,!0,r))),null!==this.signersUserID&&t.push(xs(e.signersUserID,!1,L.encodeUTF8(this.signersUserID))),null!==this.reasonForRevocationFlag&&(r=L.stringToUint8Array(String.fromCharCode(this.reasonForRevocationFlag)+this.reasonForRevocationString),t.push(xs(e.reasonForRevocation,!0,r))),null!==this.features&&(r=L.stringToUint8Array(L.uint8ArrayToString(this.features)),t.push(xs(e.features,!1,r))),null!==this.signatureTargetPublicKeyAlgorithm&&(r=[new Uint8Array([this.signatureTargetPublicKeyAlgorithm,this.signatureTargetHashAlgorithm])],r.push(L.stringToUint8Array(this.signatureTargetHash)),r=L.concat(r),t.push(xs(e.signatureTarget,!0,r))),null!==this.embeddedSignature&&t.push(xs(e.embeddedSignature,!0,this.embeddedSignature.write())),null!==this.issuerFingerprint&&(r=[new Uint8Array([this.issuerKeyVersion]),this.issuerFingerprint],r=L.concat(r),t.push(xs(e.issuerFingerprint,this.version>=5,r))),null!==this.preferredAEADAlgorithms&&(r=L.stringToUint8Array(L.uint8ArrayToString(this.preferredAEADAlgorithms)),t.push(xs(e.preferredAEADAlgorithms,!1,r))),null!==this.preferredCipherSuites&&(r=new Uint8Array([].concat(...this.preferredCipherSuites)),t.push(xs(e.preferredCipherSuites,!1,r)));const n=L.concat(t),i=L.writeNumber(n.length,6===this.version?4:2);return L.concat([i,n])}writeUnhashedSubPackets(){const e=this.unhashedSubpackets.map(({type:e,critical:t,body:r})=>xs(e,t,r)),t=L.concat(e),r=L.writeNumber(t.length,6===this.version?4:2);return L.concat([r,t])}readSubPacket(e,t=!0){let r=0;const n=!!(128&e[r]),i=127&e[r];if(r++,t||(this.unhashedSubpackets.push({type:i,critical:n,body:e.subarray(r,e.length)}),Ss.has(i)))switch(i){case Q.signatureSubpacket.signatureCreationTime:this.created=L.readDate(e.subarray(r,e.length));break;case Q.signatureSubpacket.signatureExpirationTime:{const t=L.readNumber(e.subarray(r,e.length));this.signatureNeverExpires=0===t,this.signatureExpirationTime=t;break}case Q.signatureSubpacket.exportableCertification:this.exportable=1===e[r++];break;case Q.signatureSubpacket.trustSignature:this.trustLevel=e[r++],this.trustAmount=e[r++];break;case Q.signatureSubpacket.regularExpression:this.regularExpression=e[r];break;case Q.signatureSubpacket.revocable:this.revocable=1===e[r++];break;case Q.signatureSubpacket.keyExpirationTime:{const t=L.readNumber(e.subarray(r,e.length));this.keyExpirationTime=t,this.keyNeverExpires=0===t;break}case Q.signatureSubpacket.preferredSymmetricAlgorithms:this.preferredSymmetricAlgorithms=[...e.subarray(r,e.length)];break;case Q.signatureSubpacket.revocationKey:this.revocationKeyClass=e[r++],this.revocationKeyAlgorithm=e[r++],this.revocationKeyFingerprint=e.subarray(r,r+20);break;case Q.signatureSubpacket.issuerKeyID:if(4===this.version)this.issuerKeyID.read(e.subarray(r,e.length));else if(t)throw new Error("Unexpected Issuer Key ID subpacket");break;case Q.signatureSubpacket.notationData:{const t=!!(128&e[r]);r+=4;const i=L.readNumber(e.subarray(r,r+2));r+=2;const s=L.readNumber(e.subarray(r,r+2));r+=2;const a=L.decodeUTF8(e.subarray(r,r+i)),o=e.subarray(r+i,r+i+s);this.rawNotations.push({name:a,humanReadable:t,value:o,critical:n}),t&&(this.notations[a]=L.decodeUTF8(o));break}case Q.signatureSubpacket.preferredHashAlgorithms:this.preferredHashAlgorithms=[...e.subarray(r,e.length)];break;case Q.signatureSubpacket.preferredCompressionAlgorithms:this.preferredCompressionAlgorithms=[...e.subarray(r,e.length)];break;case Q.signatureSubpacket.keyServerPreferences:this.keyServerPreferences=[...e.subarray(r,e.length)];break;case Q.signatureSubpacket.preferredKeyServer:this.preferredKeyServer=L.decodeUTF8(e.subarray(r,e.length));break;case Q.signatureSubpacket.primaryUserID:this.isPrimaryUserID=0!==e[r++];break;case Q.signatureSubpacket.policyURI:this.policyURI=L.decodeUTF8(e.subarray(r,e.length));break;case Q.signatureSubpacket.keyFlags:this.keyFlags=[...e.subarray(r,e.length)];break;case Q.signatureSubpacket.signersUserID:this.signersUserID=L.decodeUTF8(e.subarray(r,e.length));break;case Q.signatureSubpacket.reasonForRevocation:this.reasonForRevocationFlag=e[r++],this.reasonForRevocationString=L.decodeUTF8(e.subarray(r,e.length));break;case Q.signatureSubpacket.features:this.features=[...e.subarray(r,e.length)];break;case Q.signatureSubpacket.signatureTarget:{this.signatureTargetPublicKeyAlgorithm=e[r++],this.signatureTargetHashAlgorithm=e[r++];const t=Qe(this.signatureTargetHashAlgorithm);this.signatureTargetHash=L.uint8ArrayToString(e.subarray(r,r+t));break}case Q.signatureSubpacket.embeddedSignature:this.embeddedSignature=new Ds,this.embeddedSignature.read(e.subarray(r,e.length));break;case Q.signatureSubpacket.issuerFingerprint:this.issuerKeyVersion=e[r++],this.issuerFingerprint=e.subarray(r,e.length),this.issuerKeyVersion>=5?this.issuerKeyID.read(this.issuerFingerprint):this.issuerKeyID.read(this.issuerFingerprint.subarray(-8));break;case Q.signatureSubpacket.preferredAEADAlgorithms:this.preferredAEADAlgorithms=[...e.subarray(r,e.length)];break;case Q.signatureSubpacket.preferredCipherSuites:this.preferredCipherSuites=[];for(let t=r;t{r+=e.length},()=>{const n=[];return 5!==this.version||this.signatureType!==Q.signature.binary&&this.signatureType!==Q.signature.text||(t?n.push(new Uint8Array(6)):n.push(e.writeHeader())),n.push(new Uint8Array([this.version,255])),5===this.version&&n.push(new Uint8Array(4)),n.push(L.writeNumber(r,4)),L.concat(n)})}toHash(e,t,r=!1){const n=this.toSign(e,t);return L.concat([this.salt||new Uint8Array,n,this.signatureData,this.calculateTrailer(t,r)])}async hash(e,t,r,n=!1){if(6===this.version&&this.salt.length!==Ks(this.hashAlgorithm))throw new Error("Signature salt does not have the expected length");return r||(r=this.toHash(e,t,n)),Re(this.hashAlgorithm,r)}async verify(e,t,r,n=new Date,i=!1,s=N){if(!this.issuerKeyID.equals(e.getKeyID()))throw new Error("Signature was not issued by the given public key");if(this.publicKeyAlgorithm!==e.algorithm)throw new Error("Public key algorithm used to sign signature does not match issuer key algorithm.");const a=t===Q.signature.binary||t===Q.signature.text;if(!this[Bs]||a){let n,s;if(this.hashed?s=await this.hashed:(n=this.toHash(t,r,i),s=await this.hash(t,r,n)),s=await P(s),this.signedHashValue[0]!==s[0]||this.signedHashValue[1]!==s[1])throw new Error("Signed digest did not match");if(this.params=await this.params,this[Bs]=await bi(this.publicKeyAlgorithm,this.hashAlgorithm,this.params,e.publicParams,n,s),!this[Bs])throw new Error("Signature verification failed")}const o=L.normalizeDate(n);if(o&&this.created>o)throw new Error("Signature creation time is in the future");if(o&&o>=this.getExpirationTime())throw new Error("Signature is expired");if(s.rejectHashAlgorithms.has(this.hashAlgorithm))throw new Error("Insecure hash algorithm: "+Q.read(Q.hash,this.hashAlgorithm).toUpperCase());if(s.rejectMessageHashAlgorithms.has(this.hashAlgorithm)&&[Q.signature.binary,Q.signature.text].includes(this.signatureType))throw new Error("Insecure message hash algorithm: "+Q.read(Q.hash,this.hashAlgorithm).toUpperCase());if(this.unknownSubpackets.forEach(({type:e,critical:t})=>{if(t)throw new Error(`Unknown critical signature subpacket type ${e}`)}),this.rawNotations.forEach(({name:e,critical:t})=>{if(t&&s.knownNotations.indexOf(e)<0)throw new Error(`Unknown critical notation: ${e}`)}),null!==this.revocationKeyClass)throw new Error("This key is intended to be revoked with an authorized key, which OpenPGP.js does not support.")}isExpired(e=new Date){const t=L.normalizeDate(e);return null!==t&&!(this.created<=t&&tDs.prototype.calculateTrailer.apply(await this.correspondingSig,e))}async verify(){const e=await this.correspondingSig;if(!e||e.constructor.tag!==Q.packet.signature)throw new Error("Corresponding signature packet missing");if(e.signatureType!==this.signatureType||e.hashAlgorithm!==this.hashAlgorithm||e.publicKeyAlgorithm!==this.publicKeyAlgorithm||!e.issuerKeyID.equals(this.issuerKeyID)||3===this.version&&6===e.version||6===this.version&&6!==e.version||6===this.version&&!L.equalsUint8Array(e.issuerFingerprint,this.issuerFingerprint)||6===this.version&&!L.equalsUint8Array(e.salt,this.salt))throw new Error("Corresponding signature packet does not match one-pass signature packet");return e.hashed=this.hashed,e.verify.apply(e,arguments)}}function Us(e,t){if(!t[e]){let t;try{t=Q.read(Q.packet,e)}catch{throw new ot(`Unknown packet type with tag: ${e}`)}throw new Error(`Packet not allowed in this context: ${t}`)}return new t[e]}Ps.prototype.hash=Ds.prototype.hash,Ps.prototype.toHash=Ds.prototype.toHash,Ps.prototype.toSign=Ds.prototype.toSign;class Ts extends Array{static async fromBinary(e,t,r=N,n=null,i=!1){const s=new Ts;return await s.read(e,t,r,n,i),s}async read(e,t,r=N,n=null,i=!1){let s;r.additionalAllowedPackets.length&&(s=L.constructAllowedPackets(r.additionalAllowedPackets),t={...t,...s}),this.stream=B(e,async(e,a)=>{const o=F(e),c=M(a);try{let a=L.isStream(e);for(;;){let e,l;if(await c.ready,await st(o,a,async a=>{try{if(a.tag===Q.packet.marker||a.tag===Q.packet.trust||a.tag===Q.packet.padding)return;const e=Us(a.tag,t);try{n?.recordPacket(a.tag,s)}catch(e){if(r.enforceGrammar)throw e;L.printDebugError(e)}e.packets=new Ts,e.fromStream=L.isStream(a.packet),l=e.fromStream;try{await e.read(a.packet,r)}catch(t){if(!(t instanceof at))throw L.wrapError(new ct(`Parsing ${e.constructor.name} failed`),t);throw t}await c.write(e)}catch(t){const n=t instanceof ot&&a.tag<=39,s=t instanceof at&&!(t instanceof ot)&&!r.ignoreUnsupportedPackets,o=t instanceof ct&&!r.ignoreMalformedPackets,l=it(a.tag);if(n||s||o||l||!(t instanceof ot||t instanceof at||t instanceof ct))i?e=t:await c.abort(t);else{const e=new lt(a.tag,a.packet);await c.write(e)}L.printDebugError(t)}}),l&&(a=null),e)throw await o.readToEnd(),e;const u=await o.peekBytes(2);if(!u||!u.length){try{n?.recordEnd()}catch(e){if(r.enforceGrammar)throw e;L.printDebugError(e)}return await c.ready,void await c.close()}}}catch(e){await c.abort(e)}});const a=F(this.stream);for(;;){const{done:e,value:t}=await a.read();if(e?this.stream=null:this.push(t),e||it(t.constructor.tag))break}a.releaseLock()}write(){const e=[];for(let t=0;t{if(t.push(e),i+=e.length,i>=s){const e=Math.min(Math.log(i)/Math.LN2|0,30),r=2**e,n=L.concat([tt(e)].concat(t));return t=[n.subarray(1+r)],i=t[0].length,n.subarray(0,1+r)}},()=>L.concat([et(i)].concat(t))))}else{if(L.isStream(n)){let t=0;e.push(v(S(n),e=>{t+=e.length},()=>nt(r,t)))}else e.push(nt(r,n.length));e.push(n)}}return L.concat(e)}filterByTag(...e){const t=new Ts,r=e=>t=>e===t;for(let n=0;nt.constructor.tag===e)}indexOfTag(...e){const t=[],r=this,n=e=>t=>e===t;for(let i=0;i0)throw new Fs("Missing trailing signature packets")}}}const Qs=L.constructAllowedPackets([ks,Ps,Ds]);class Ns{static get tag(){return Q.packet.compressedData}constructor(e=N){this.packets=null,this.algorithm=e.preferredCompressionAlgorithm,this.compressed=null}async read(e,t=N){await C(e,async e=>{this.algorithm=await e.readByte(),this.compressed=e.remainder(),await this.decompress(t)})}write(){return null===this.compressed&&this.compress(),L.concat([new Uint8Array([this.algorithm]),this.compressed])}async decompress(e=N){const t=Q.read(Q.compression,this.algorithm),r=js[t];if(!r)throw new Error(`${t} decompression not supported`);let n=await r(this.compressed);if(e.maxDecompressedMessageSize!==1/0){let t=0;n=v(n,r=>{if(t+=r.length,t>e.maxDecompressedMessageSize)throw new Error("Maximum decompressed message size exceeded");return r})}h(this.compressed)&&!l(this.compressed)||(n=await P(n)),this.packets=await Ts.fromBinary(n,Qs,e,new Rs)}compress(){const e=Q.read(Q.compression,this.algorithm),t=Hs[e];if(!t)throw new Error(`${e} compression not supported`);const r=this.packets.write();let n=t(r);h(r)&&!l(r)||(n=T(()=>P(n))),this.compressed=n}}function Os(e,t){return r=>{let n;if(n=l(r)?new ReadableStream({async start(e){try{e.enqueue(await P(r)),e.close()}catch(t){e.error(t)}}}):h(r)?r:y(r),n=function(e){const t=F(e);return new ReadableStream({async pull(e){try{const{value:r,done:n}=await t.read();if(n)return void e.close();for(let t=0;t<=r.length;t+=65536)(!t||t{e.enqueue(t),a=!0,r&&(e.close(),o=!0)}},async pull(){for(a=!1;!a&&!o;){const{done:e,value:t}=await i.read();if(e)return void s.push(new Uint8Array,!0);t.length&&s.push(t)}}},{highWaterMark:0})}}function Ls(){return async function(e){const{default:t}=await Promise.resolve().then(function(){return DA});return t(y(e))}}const Gs=e=>({compressor:"undefined"!=typeof CompressionStream&&(()=>new CompressionStream(e)),decompressor:"undefined"!=typeof DecompressionStream&&(()=>new DecompressionStream(e))}),Hs={zip:Os(Gs("deflate-raw").compressor,ms),zlib:Os(Gs("deflate").compressor,bs)},js={uncompressed:e=>e,zip:Os(Gs("deflate-raw").decompressor,ws),zlib:Os(Gs("deflate").decompressor,Es),bzip2:Ls()},Ws=L.constructAllowedPackets([ks,Ns,Ps,Ds]);class Ys{static get tag(){return Q.packet.symEncryptedIntegrityProtectedData}static fromObject({version:e,aeadAlgorithm:t}){if(1!==e&&2!==e)throw new Error("Unsupported SEIPD version");const r=new Ys;return r.version=e,2===e&&(r.aeadAlgorithm=t),r}constructor(){this.version=null,this.cipherAlgorithm=null,this.aeadAlgorithm=null,this.chunkSizeByte=null,this.salt=null,this.encrypted=null,this.packets=null}async read(e){await C(e,async e=>{if(this.version=await e.readByte(),1!==this.version&&2!==this.version)throw new at(`Version ${this.version} of the SEIP packet is unsupported.`);2===this.version&&(this.cipherAlgorithm=await e.readByte(),this.aeadAlgorithm=await e.readByte(),this.chunkSizeByte=await e.readByte(),this.salt=await e.readBytes(32)),this.encrypted=e.remainder()})}write(){return 2===this.version?L.concat([new Uint8Array([this.version,this.cipherAlgorithm,this.aeadAlgorithm,this.chunkSizeByte]),this.salt,this.encrypted]):L.concat([new Uint8Array([this.version]),this.encrypted])}async encrypt(e,t,r=N){const{blockSize:n,keySize:i}=Sr(e);if(t.length!==i)throw new Error("Unexpected session key size");let s=this.packets.write();if(l(s)&&(s=await P(s)),2===this.version)this.cipherAlgorithm=e,this.salt=ge(32),this.chunkSizeByte=r.aeadChunkSizeByte,this.encrypted=await Js(this,"encrypt",t,s);else{const r=await On(e),i=new Uint8Array([211,20]),a=L.concat([r,s,i]),o=await Re(Q.hash.sha1,D(a)),c=L.concat([a,o]);this.encrypted=await Ln(e,t,c,new Uint8Array(n))}return!0}async decrypt(e,t,r=N){if(t.length!==Sr(e).keySize)throw new Error("Unexpected session key size");let n,i=S(this.encrypted);l(i)&&(i=await P(i));let s=!1;if(2===this.version){if(this.cipherAlgorithm!==e)throw new Error("Unexpected session key algorithm");n=await Js(this,"decrypt",t,i)}else{const{blockSize:a}=Sr(e),o=await Gn(e,t,i,new Uint8Array(a)),c=K(D(o),-20),l=K(o,0,-20),u=Promise.all([P(await Re(Q.hash.sha1,D(l))),P(c)]).then(([e,t])=>{if(!L.equalsUint8Array(e,t))throw new Error("Modification detected.");return new Uint8Array}),h=K(l,a+2);n=K(h,0,-2),n=w([n,T(()=>u)]),L.isStream(i)&&r.allowUnauthenticatedStream?s=!0:n=await P(n)}return this.packets=await Ts.fromBinary(n,Ws,r,new Rs,s),!0}}async function Js(e,t,r,n){const i=e instanceof Ys&&2===e.version,s=!i&&e.constructor.tag===Q.packet.aeadEncryptedData;if(!i&&!s)throw new Error("Unexpected packet type");const a=wi(e.aeadAlgorithm,s),o="decrypt"===t?a.tagLength:0,c="encrypt"===t?a.tagLength:0,l=2**(e.chunkSizeByte+6)+o,u=s?8:0,h=new ArrayBuffer(13+u),f=new Uint8Array(h,0,5+u),A=new Uint8Array(h),d=new DataView(h),p=new Uint8Array(h,5,8);f.set([192|e.constructor.tag,e.version,e.cipherAlgorithm,e.aeadAlgorithm,e.chunkSizeByte],0);let g,y,m=0,w=Promise.resolve(),E=0,v=0;if(i){const{keySize:t}=Sr(e.cipherAlgorithm),{ivLength:n}=a,i=new Uint8Array(h,0,5),s=await Pr(Q.hash.sha256,r,e.salt,i,t+n);r=s.subarray(0,t),g=s.subarray(t),g.fill(0,g.length-8),y=new DataView(g.buffer,g.byteOffset,g.byteLength)}else g=e.iv;const k=await a(e.cipherAlgorithm,r);return B(n,async(r,n)=>{if("array"!==L.isStream(r)){const t=new TransformStream({},{highWaterMark:L.getHardwareConcurrency()*2**(e.chunkSizeByte+6),size:e=>e.length});b(t.readable,n),n=t.writable}const s=F(r),a=M(n);try{for(;;){let e=await s.readBytes(l+o)||new Uint8Array;const r=e.subarray(e.length-o);let n,h,b;if(e=e.subarray(0,e.length-o),i)b=g;else{b=g.slice();for(let e=0;e<8;e++)b[g.length-8+e]^=p[e]}if(!m||e.length?(s.unshift(r),n=k[t](e,b,f),n.catch(()=>{}),v+=e.length-o+c):(d.setInt32(5+u+4,E),n=k[t](r,b,A),n.catch(()=>{}),v+=c,h=!0),E+=e.length-o,w=w.then(()=>n).then(async e=>{await a.ready,await a.write(e),v-=e.length}).catch(e=>a.abort(e)),(h||v>a.desiredSize)&&await w,h){await a.close();break}i?y.setInt32(g.length-4,++m):d.setInt32(9,++m)}}catch(e){await a.ready.catch(()=>{}),await a.abort(e)}})}const _s=L.constructAllowedPackets([ks,Ns,Ps,Ds]);class qs{static get tag(){return Q.packet.aeadEncryptedData}constructor(){this.version=1,this.cipherAlgorithm=null,this.aeadAlgorithm=Q.aead.eax,this.chunkSizeByte=null,this.iv=null,this.encrypted=null,this.packets=null}async read(e){await C(e,async e=>{const t=await e.readByte();if(1!==t)throw new at(`Version ${t} of the AEAD-encrypted data packet is not supported.`);this.cipherAlgorithm=await e.readByte(),this.aeadAlgorithm=await e.readByte(),this.chunkSizeByte=await e.readByte();const r=wi(this.aeadAlgorithm,!0);this.iv=await e.readBytes(r.ivLength),this.encrypted=e.remainder()})}write(){return L.concat([new Uint8Array([this.version,this.cipherAlgorithm,this.aeadAlgorithm,this.chunkSizeByte]),this.iv,this.encrypted])}async decrypt(e,t,r=N){this.packets=await Ts.fromBinary(await Js(this,"decrypt",t,S(this.encrypted)),_s,r,new Rs)}async encrypt(e,t,r=N){this.cipherAlgorithm=e;const{ivLength:n}=wi(this.aeadAlgorithm,!0);this.iv=ge(n),this.chunkSizeByte=r.aeadChunkSizeByte;const i=this.packets.write();this.encrypted=await Js(this,"encrypt",t,i)}}class Zs{static get tag(){return Q.packet.publicKeyEncryptedSessionKey}constructor(){this.version=null,this.publicKeyID=new Is,this.publicKeyVersion=null,this.publicKeyFingerprint=null,this.publicKeyAlgorithm=null,this.sessionKey=null,this.sessionKeyAlgorithm=null,this.encrypted={}}static fromObject({version:e,encryptionKeyPacket:t,anonymousRecipient:r,sessionKey:n,sessionKeyAlgorithm:i}){const s=new Zs;if(3!==e&&6!==e)throw new Error("Unsupported PKESK version");return s.version=e,6===e&&(s.publicKeyVersion=r?null:t.version,s.publicKeyFingerprint=r?null:t.getFingerprintBytes()),s.publicKeyID=r?Is.wildcard():t.getKeyID(),s.publicKeyAlgorithm=t.algorithm,s.sessionKey=n,s.sessionKeyAlgorithm=i,s}read(e){let t=0;if(this.version=e[t++],3!==this.version&&6!==this.version)throw new at(`Version ${this.version} of the PKESK packet is unsupported.`);if(6===this.version){const r=e[t++];if(r){this.publicKeyVersion=e[t++];const n=r-1;this.publicKeyFingerprint=e.subarray(t,t+n),t+=n,this.publicKeyVersion>=5?this.publicKeyID.read(this.publicKeyFingerprint):this.publicKeyID.read(this.publicKeyFingerprint.subarray(-8))}else this.publicKeyID=Is.wildcard()}else t+=this.publicKeyID.read(e.subarray(t,t+8));if(this.publicKeyAlgorithm=e[t++],this.encrypted=function(e,t){let r=0;switch(e){case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaEncryptSign:return{c:L.readMPI(t.subarray(r))};case Q.publicKey.elgamal:{const e=L.readMPI(t.subarray(r));return r+=e.length+2,{c1:e,c2:L.readMPI(t.subarray(r))}}case Q.publicKey.ecdh:{const e=L.readMPI(t.subarray(r));r+=e.length+2;const n=new Cn;return n.read(t.subarray(r)),{V:e,C:n}}case Q.publicKey.x25519:case Q.publicKey.x448:{const n=Fn(e),i=L.readExactSubarray(t,r,r+n);r+=i.length;const s=new Dn;return s.read(t.subarray(r)),{ephemeralPublicKey:i,C:s}}default:throw new at("Unknown public key encryption algorithm.")}}(this.publicKeyAlgorithm,e.subarray(t)),this.publicKeyAlgorithm===Q.publicKey.x25519||this.publicKeyAlgorithm===Q.publicKey.x448)if(3===this.version)this.sessionKeyAlgorithm=Q.write(Q.symmetric,this.encrypted.C.algorithm);else if(null!==this.encrypted.C.algorithm)throw new Error("Unexpected cleartext symmetric algorithm")}write(){const e=[new Uint8Array([this.version])];return 6===this.version?null!==this.publicKeyFingerprint?(e.push(new Uint8Array([this.publicKeyFingerprint.length+1,this.publicKeyVersion])),e.push(this.publicKeyFingerprint)):e.push(new Uint8Array([0])):e.push(this.publicKeyID.write()),e.push(new Uint8Array([this.publicKeyAlgorithm]),Pn(this.publicKeyAlgorithm,this.encrypted)),L.concatUint8Array(e)}async encrypt(e){const t=Q.write(Q.publicKey,this.publicKeyAlgorithm),r=3===this.version?this.sessionKeyAlgorithm:null,n=5===e.version?e.getFingerprintBytes().subarray(0,20):e.getFingerprintBytes(),i=Vs(this.version,t,r,this.sessionKey);this.encrypted=await async function(e,t,r,n,i){switch(e){case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaEncryptSign:{const{n:e,e:t}=r;return{c:await Je(n,e,t)}}case Q.publicKey.elgamal:{const{p:e,g:t,y:i}=r;return async function(e,t,r,n){t=se(t),r=se(r),n=se(n);const i=se(Oe(e,Ae(t))),s=ye(Ve,t-Ve);return{c1:de(oe(r,s,t)),c2:de(ae(oe(n,s,t)*i,t))}}(n,e,t,i)}case Q.publicKey.ecdh:{const{oid:e,Q:t,kdfParams:s}=r,{publicKey:a,wrappedKey:o}=await mn(e,s,n,t,i);return{V:a,C:new Cn(o)}}case Q.publicKey.x25519:case Q.publicKey.x448:{if(t&&!L.isAES(t))throw new Error("X25519 and X448 keys can only encrypt AES session keys");const{A:i}=r,{ephemeralPublicKey:s,wrappedKey:a}=await Mr(e,n,i);return{ephemeralPublicKey:s,C:Dn.fromObject({algorithm:t,wrappedKey:a})}}default:return[]}}(t,r,e.publicParams,i,n)}async decrypt(e,t){if(this.publicKeyAlgorithm!==e.algorithm)throw new Error("Decryption error");const r=t?Vs(this.version,this.publicKeyAlgorithm,t.sessionKeyAlgorithm,t.sessionKey):null,n=5===e.version?e.getFingerprintBytes().subarray(0,20):e.getFingerprintBytes(),i=await xn(this.publicKeyAlgorithm,e.publicParams,e.privateParams,this.encrypted,n,r),{sessionKey:s,sessionKeyAlgorithm:a}=function(e,t,r,n){switch(t){case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaEncryptSign:case Q.publicKey.elgamal:case Q.publicKey.ecdh:{const t=r.subarray(0,r.length-2),i=r.subarray(r.length-2),s=L.writeChecksum(t.subarray(t.length%8)),a=s[0]===i[0]&s[1]===i[1],o=6===e?{sessionKeyAlgorithm:null,sessionKey:t}:{sessionKeyAlgorithm:t[0],sessionKey:t.subarray(1)};if(n){const t=a&o.sessionKeyAlgorithm===n.sessionKeyAlgorithm&o.sessionKey.length===n.sessionKey.length;return{sessionKey:L.selectUint8Array(t,o.sessionKey,n.sessionKey),sessionKeyAlgorithm:6===e?null:L.selectUint8(t,o.sessionKeyAlgorithm,n.sessionKeyAlgorithm)}}if(a&&(6===e||Q.read(Q.symmetric,o.sessionKeyAlgorithm)))return o;throw new Error("Decryption error")}case Q.publicKey.x25519:case Q.publicKey.x448:return{sessionKeyAlgorithm:null,sessionKey:r};default:throw new Error("Unsupported public key algorithm")}}(this.version,this.publicKeyAlgorithm,i,t);if(3===this.version){const e=this.publicKeyAlgorithm!==Q.publicKey.x25519&&this.publicKeyAlgorithm!==Q.publicKey.x448;if(this.sessionKeyAlgorithm=e?a:this.sessionKeyAlgorithm,s.length!==Sr(this.sessionKeyAlgorithm).keySize)throw new Error("Unexpected session key size")}this.sessionKey=s}}function Vs(e,t,r,n){switch(t){case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaEncryptSign:case Q.publicKey.elgamal:case Q.publicKey.ecdh:return L.concatUint8Array([new Uint8Array(6===e?[]:[r]),n,L.writeChecksum(n.subarray(n.length%8))]);case Q.publicKey.x25519:case Q.publicKey.x448:return n;default:throw new Error("Unsupported public key algorithm")}}class zs{static get tag(){return Q.packet.symEncryptedSessionKey}constructor(e=N){this.version=e.aeadProtect?6:4,this.sessionKey=null,this.sessionKeyEncryptionAlgorithm=null,this.sessionKeyAlgorithm=null,this.aeadAlgorithm=Q.write(Q.aead,e.preferredAEADAlgorithm),this.encrypted=null,this.s2k=null,this.iv=null}read(e){let t=0;if(this.version=e[t++],4!==this.version&&5!==this.version&&6!==this.version)throw new at(`Version ${this.version} of the SKESK packet is unsupported.`);6===this.version&&t++;const r=e[t++];this.version>=5&&(this.aeadAlgorithm=e[t++],6===this.version&&t++);const n=e[t++];if(this.s2k=Si(n),t+=this.s2k.read(e.subarray(t,e.length)),this.version>=5){const r=wi(this.aeadAlgorithm,!0);this.iv=e.subarray(t,t+=r.ivLength)}this.version>=5||t=5){const e=wi(this.aeadAlgorithm,!0),r=new Uint8Array([192|zs.tag,this.version,this.sessionKeyEncryptionAlgorithm,this.aeadAlgorithm]),s=6===this.version?await Pr(Q.hash.sha256,i,new Uint8Array,r,n):i,a=await e(t,s);this.sessionKey=await a.decrypt(this.encrypted,this.iv,r)}else if(null!==this.encrypted){const e=await Gn(t,i,this.encrypted,new Uint8Array(r));if(this.sessionKeyAlgorithm=Q.write(Q.symmetric,e[0]),this.sessionKey=e.subarray(1,e.length),this.sessionKey.length!==Sr(this.sessionKeyAlgorithm).keySize)throw new Error("Unexpected session key size")}else this.sessionKey=i}async encrypt(e,t=N){const r=null!==this.sessionKeyEncryptionAlgorithm?this.sessionKeyEncryptionAlgorithm:this.sessionKeyAlgorithm;this.sessionKeyEncryptionAlgorithm=r,this.s2k=Di(t),this.s2k.generateSalt();const{blockSize:n,keySize:i}=Sr(r),s=await this.s2k.produceKey(e,i);if(null===this.sessionKey&&(this.sessionKey=Un(this.sessionKeyAlgorithm)),this.version>=5){const e=wi(this.aeadAlgorithm);this.iv=ge(e.ivLength);const t=new Uint8Array([192|zs.tag,this.version,this.sessionKeyEncryptionAlgorithm,this.aeadAlgorithm]),n=6===this.version?await Pr(Q.hash.sha256,s,new Uint8Array,t,i):s,a=await e(r,n);this.encrypted=await a.encrypt(this.sessionKey,this.iv,t)}else{const e=L.concatUint8Array([new Uint8Array([this.sessionKeyAlgorithm]),this.sessionKey]);this.encrypted=await Ln(r,s,e,new Uint8Array(n))}}}class Xs{static get tag(){return Q.packet.publicKey}constructor(e=new Date,t=N){this.version=t.v6Keys?6:4,this.created=L.normalizeDate(e),this.algorithm=null,this.publicParams=null,this.expirationTimeV3=0,this.fingerprint=null,this.keyID=null}static fromSecretKeyPacket(e){const t=new Xs,{version:r,created:n,algorithm:i,publicParams:s,keyID:a,fingerprint:o}=e;return t.version=r,t.created=n,t.algorithm=i,t.publicParams=s,t.keyID=a,t.fingerprint=o,t}async read(e,t=N){let r=0;if(this.version=e[r++],5===this.version&&!t.enableParsingV5Entities)throw new at("Support for parsing v5 entities is disabled; turn on `config.enableParsingV5Entities` if needed");if(4===this.version||5===this.version||6===this.version){this.created=L.readDate(e.subarray(r,r+4)),r+=4,this.algorithm=e[r++],this.version>=5&&(r+=4);const{read:t,publicParams:n}=function(e,t){let r=0;switch(e){case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaSign:{const e=L.readMPI(t.subarray(r));r+=e.length+2;const n=L.readMPI(t.subarray(r));return r+=n.length+2,{read:r,publicParams:{n:e,e:n}}}case Q.publicKey.dsa:{const e=L.readMPI(t.subarray(r));r+=e.length+2;const n=L.readMPI(t.subarray(r));r+=n.length+2;const i=L.readMPI(t.subarray(r));r+=i.length+2;const s=L.readMPI(t.subarray(r));return r+=s.length+2,{read:r,publicParams:{p:e,q:n,g:i,y:s}}}case Q.publicKey.elgamal:{const e=L.readMPI(t.subarray(r));r+=e.length+2;const n=L.readMPI(t.subarray(r));r+=n.length+2;const i=L.readMPI(t.subarray(r));return r+=i.length+2,{read:r,publicParams:{p:e,g:n,y:i}}}case Q.publicKey.ecdsa:{const e=new Xe;r+=e.read(t),Tn(e);const n=L.readMPI(t.subarray(r));return r+=n.length+2,{read:r,publicParams:{oid:e,Q:n}}}case Q.publicKey.eddsaLegacy:{const e=new Xe;if(r+=e.read(t),Tn(e),e.getName()!==Q.curve.ed25519Legacy)throw new Error("Unexpected OID for eddsaLegacy");let n=L.readMPI(t.subarray(r));return r+=n.length+2,n=L.leftPad(n,33),{read:r,publicParams:{oid:e,Q:n}}}case Q.publicKey.ecdh:{const e=new Xe;r+=e.read(t),Tn(e);const n=L.readMPI(t.subarray(r));r+=n.length+2;const i=new Sn;return r+=i.read(t.subarray(r)),{read:r,publicParams:{oid:e,Q:n,kdfParams:i}}}case Q.publicKey.ed25519:case Q.publicKey.ed448:case Q.publicKey.x25519:case Q.publicKey.x448:{const n=L.readExactSubarray(t,r,r+Fn(e));return r+=n.length,{read:r,publicParams:{A:n}}}default:throw new at("Unknown public key encryption algorithm.")}}(this.algorithm,e.subarray(r));if(6===this.version&&n.oid&&(n.oid.getName()===Q.curve.curve25519Legacy||n.oid.getName()===Q.curve.ed25519Legacy))throw new Error("Legacy curve25519 cannot be used with v6 keys");return this.publicParams=n,r+=t,await this.computeFingerprintAndKeyID(),r}throw new at(`Version ${this.version} of the key packet is unsupported.`)}write(){const e=[];e.push(new Uint8Array([this.version])),e.push(L.writeDate(this.created)),e.push(new Uint8Array([this.algorithm]));const t=Pn(this.algorithm,this.publicParams);return this.version>=5&&e.push(L.writeNumber(t.length,4)),e.push(t),L.concatUint8Array(e)}writeForHash(e){const t=this.writePublicKey(),r=149+e,n=e>=5?4:2;return L.concatUint8Array([new Uint8Array([r]),L.writeNumber(t.length,n),t])}isDecrypted(){return null}getCreationTime(){return this.created}getKeyID(){return this.keyID}async computeFingerprintAndKeyID(){if(await this.computeFingerprint(),this.keyID=new Is,this.version>=5)this.keyID.read(this.fingerprint.subarray(0,8));else{if(4!==this.version)throw new Error("Unsupported key version");this.keyID.read(this.fingerprint.subarray(12,20))}}async computeFingerprint(){const e=this.writeForHash(this.version);if(this.version>=5)this.fingerprint=await Re(Q.hash.sha256,e);else{if(4!==this.version)throw new Error("Unsupported key version");this.fingerprint=await Re(Q.hash.sha1,e)}}getFingerprintBytes(){return this.fingerprint}getFingerprint(){return L.uint8ArrayToHex(this.getFingerprintBytes())}hasSameFingerprintAs(e){return this.version===e.version&&L.equalsUint8Array(this.writePublicKey(),e.writePublicKey())}getAlgorithmInfo(){const e={};e.algorithm=Q.read(Q.publicKey,this.algorithm);const t=this.publicParams.n||this.publicParams.p;return t?e.bits=L.uint8ArrayBitLength(t):this.publicParams.oid&&(e.curve=this.publicParams.oid.getName()),e}}Xs.prototype.readPublicKey=Xs.prototype.read,Xs.prototype.writePublicKey=Xs.prototype.write;const $s=L.constructAllowedPackets([ks,Ns,Ps,Ds]);class ea{static get tag(){return Q.packet.symmetricallyEncryptedData}constructor(){this.encrypted=null,this.packets=null}read(e){this.encrypted=e}write(){return this.encrypted}async decrypt(e,t,r=N){if(!r.allowUnauthenticatedMessages)throw new Error("Message is not authenticated.");const{blockSize:n}=Sr(e),i=await P(S(this.encrypted)),s=await Gn(e,t,i.subarray(n+2),i.subarray(2,n+2));this.packets=await Ts.fromBinary(s,$s,r)}async encrypt(e,t,r=N){const n=this.packets.write(),{blockSize:i}=Sr(e),s=await On(e),a=await Ln(e,t,s,new Uint8Array(i)),o=await Ln(e,t,n,a.subarray(2));this.encrypted=L.concat([a,o])}}class ta{static get tag(){return Q.packet.marker}read(e){return 80===e[0]&&71===e[1]&&80===e[2]}write(){return new Uint8Array([80,71,80])}}class ra extends Xs{static get tag(){return Q.packet.publicSubkey}constructor(e,t){super(e,t)}static fromSecretSubkeyPacket(e){const t=new ra,{version:r,created:n,algorithm:i,publicParams:s,keyID:a,fingerprint:o}=e;return t.version=r,t.created=n,t.algorithm=i,t.publicParams=s,t.keyID=a,t.fingerprint=o,t}}class na{static get tag(){return Q.packet.userAttribute}constructor(){this.attributes=[]}read(e){let t=0;for(;t=s)return!1;if(ae(s-Bn,a)!==In)return!1;if(oe(o,a,s)!==Bn)return!1;const l=BigInt(fe(a));if(l=i)return!1;const o=BigInt(fe(i));if(o{je.generateKeyPair("rsa",r,(r,n,i)=>{r?t(r):e(i)})});return Ze(n,t)}let r,n,i;do{n=we(e-(e>>1),t,40),r=we(e>>1,t,40),i=r*n}while(fe(i)!==e);const s=(r-We)*(n-We);return n({privateParams:{d:r,p:n,q:i,u:s},publicParams:{n:e,e:t}}));case Q.publicKey.ecdsa:return Vr(r).then(({oid:e,Q:t,secret:r})=>({privateParams:{d:r},publicParams:{oid:new Xe(e),Q:t}}));case Q.publicKey.eddsaLegacy:return Vr(r).then(({oid:e,Q:t,secret:r})=>({privateParams:{seed:r},publicParams:{oid:new Xe(e),Q:t}}));case Q.publicKey.ecdh:return Vr(r).then(({oid:e,Q:t,secret:r,hash:n,cipher:i})=>({privateParams:{d:r},publicParams:{oid:new Xe(e),Q:t,kdfParams:new Sn({hash:n,cipher:i})}}));case Q.publicKey.ed25519:case Q.publicKey.ed448:return ut(e).then(({A:e,seed:t})=>({privateParams:{seed:t},publicParams:{A:e}}));case Q.publicKey.x25519:case Q.publicKey.x448:return Tr(e).then(({A:e,k:t})=>({privateParams:{k:t},publicParams:{A:e}}));case Q.publicKey.dsa:case Q.publicKey.elgamal:throw new Error("Unsupported algorithm for key generation.");default:throw new Error("Unknown public key algorithm.")}}(this.algorithm,e,t);this.privateParams=r,this.publicParams=n,this.isEncrypted=!1}clearPrivateParams(){this.isMissingSecretKeyMaterial()||(Object.keys(this.privateParams).forEach(e=>{this.privateParams[e].fill(0),delete this.privateParams[e]}),this.privateParams=null,this.isEncrypted=!0)}}async function sa(e,t,r,n,i,s,a){if("argon2"===t.type&&!i)throw new Error("Using Argon2 S2K without AEAD is not allowed");if("simple"===t.type&&6===e)throw new Error("Using Simple S2K with version 6 keys is not allowed");const{keySize:o}=Sr(n),c=await t.produceKey(r,o);if(!i||5===e||a)return c;const l=L.concatUint8Array([s,new Uint8Array([e,n,i])]);return Pr(Q.hash.sha256,c,new Uint8Array,l,o)}class aa{static get tag(){return Q.packet.userID}constructor(){this.userID="",this.name="",this.email="",this.comment=""}static fromObject(e){if(L.isString(e)||e.name&&!L.isString(e.name)||e.email&&!L.isEmailAddress(e.email)||e.comment&&!L.isString(e.comment))throw new Error("Invalid user ID format");const t=new aa;Object.assign(t,e);const r=[];return t.name&&r.push(t.name),t.comment&&r.push(`(${t.comment})`),t.email&&r.push(`<${t.email}>`),t.userID=r.join(" "),t}read(e,t=N){const r=L.decodeUTF8(e);if(r.length>t.maxUserIDLength)throw new Error("User ID string is too long");const n=e=>/^[^\s@]+@[^\s@]+$/.test(e),i=r.indexOf("<"),s=r.lastIndexOf(">");if(-1!==i&&-1!==s&&s>i){const e=r.substring(i+1,s);if(n(e)){this.email=e;const t=r.substring(0,i).trim(),n=t.indexOf("("),s=t.lastIndexOf(")");-1!==n&&-1!==s&&s>n?(this.comment=t.substring(n+1,s).trim(),this.name=t.substring(0,n).trim()):(this.name=t,this.comment="")}}else n(r.trim())&&(this.email=r.trim(),this.name="",this.comment="");this.userID=r}write(){return L.encodeUTF8(this.userID)}equals(e){return e&&e.userID===this.userID}}class oa extends ia{static get tag(){return Q.packet.secretSubkey}constructor(e=new Date,t=N){super(e,t)}}class ca{static get tag(){return Q.packet.trust}read(){throw new at("Trust packets are not supported")}write(){throw new at("Trust packets are not supported")}}class la{static get tag(){return Q.packet.padding}constructor(){this.padding=null}read(e){}write(){return this.padding}async createPadding(e){this.padding=ge(e)}}const ua=L.constructAllowedPackets([Ds]);class ha{constructor(e){this.packets=e||new Ts}write(){return this.packets.write()}armor(e=N){const t=this.packets.some(e=>e.constructor.tag===Ds.tag&&6!==e.version);return re(Q.armor.signature,this.write(),void 0,void 0,void 0,t,e)}getSigningKeyIDs(){return this.packets.map(e=>e.issuerKeyID)}}async function fa({armoredSignature:e,binarySignature:t,config:r,...n}){r={...N,...r};let i=e||t;if(!i)throw new Error("readSignature: must pass options object containing `armoredSignature` or `binarySignature`");if(e&&!L.isString(e))throw new Error("readSignature: options.armoredSignature must be a string");if(t&&!L.isUint8Array(t))throw new Error("readSignature: options.binarySignature must be a Uint8Array");const s=Object.keys(n);if(s.length>0)throw new Error(`Unknown option: ${s.join(", ")}`);if(e){const{type:e,data:t}=await te(i);if(e!==Q.armor.signature)throw new Error("Armored text not of type signature");i=t}const a=await Ts.fromBinary(i,ua,r);return new ha(a)}async function Aa(e,t){const r=new oa(e.date,t);return r.packets=null,r.algorithm=Q.write(Q.publicKey,e.algorithm),await r.generate(e.rsaBits,e.curve),await r.computeFingerprintAndKeyID(),r}async function da(e,t){const r=new ia(e.date,t);return r.packets=null,r.algorithm=Q.write(Q.publicKey,e.algorithm),await r.generate(e.rsaBits,e.curve,e.config),await r.computeFingerprintAndKeyID(),r}async function pa(e,t,r,n,i=new Date,s){let a,o;for(let c=e.length-1;c>=0;c--)try{(!a||e[c].created>=a.created)&&(await e[c].verify(t,r,n,i,void 0,s),a=e[c])}catch(e){o=e}if(!a)throw L.wrapError(`Could not find valid ${Q.read(Q.signature,r)} signature in key ${t.getKeyID().toHex()}`.replace("certGeneric ","self-").replace(/([a-z])([A-Z])/g,(e,t,r)=>t+" "+r.toLowerCase()),o);return a}function ga(e,t,r=new Date){const n=L.normalizeDate(r);if(null!==n){const r=Ea(e,t);return!(e.created<=n&&n0&&(s.keyExpirationTime=r.keyExpirationTime,s.keyNeverExpires=!1),await ma(i,[],t,s,r.date,void 0,void 0,void 0,n)}async function ma(e,t,r,n,i,s,a=[],o=!1,c){if(r.isDummy())throw new Error("Cannot sign with a gnu-dummy key.");if(!r.isDecrypted())throw new Error("Signing key is not decrypted.");const l=new Ds;return Object.assign(l,n),l.publicKeyAlgorithm=r.algorithm,l.hashAlgorithm=await async function(e,t,r=new Date,n=[],i){const s=Q.hash.sha256,a=i.preferredHashAlgorithm,o=await Promise.all(e.map(async(e,t)=>(await e.getPrimarySelfSignature(r,n[t],i)).preferredHashAlgorithms||[])),c=new Map;for(const e of o)for(const t of e)try{const e=Q.write(Q.hash,t);c.set(e,c.has(e)?c.get(e)+1:1)}catch{}const l=t=>0===e.length||c.get(t)===e.length||t===s,u=()=>{if(0===c.size)return s;const e=Array.from(c.keys()).filter(e=>l(e)).sort((e,t)=>Qe(e)-Qe(t))[0];return Qe(e)>=Qe(s)?e:s};if(new Set([Q.publicKey.ecdsa,Q.publicKey.eddsaLegacy,Q.publicKey.ed25519,Q.publicKey.ed448]).has(t.algorithm)){const e=function(e,t){switch(e){case Q.publicKey.ecdsa:case Q.publicKey.eddsaLegacy:return zr(t);case Q.publicKey.ed25519:case Q.publicKey.ed448:return pt(e);default:throw new Error("Unknown elliptic signing algo")}}(t.algorithm,t.publicParams.oid),r=l(a),n=Qe(a)>=Qe(e);if(r&&n)return a;{const t=u();return Qe(t)>=Qe(e)?t:e}}return l(a)?a:u()}(t,r,i,s,c),l.rawNotations=[...a],await l.sign(r,e,i,o,c),l}async function wa(e,t,r,n=new Date,i){(e=e[r])&&(t[r].length?await Promise.all(e.map(async function(e){e.isExpired(n)||i&&!await i(e)||t[r].some(function(t){return L.equalsUint8Array(t.writeParams(),e.writeParams())})||t[r].push(e)})):t[r]=e)}async function ba(e,t,r,n,i,s,a=new Date,o){s=s||e;const c=[];return await Promise.all(n.map(async function(e){try{if(!i||e.issuerKeyID.equals(i.issuerKeyID)){const n=![Q.reasonForRevocation.keyRetired,Q.reasonForRevocation.keySuperseded,Q.reasonForRevocation.userIDInvalid].includes(e.reasonForRevocationFlag);await e.verify(s,t,r,n?null:a,!1,o),c.push(e.issuerKeyID)}}catch{}})),i?(i.revoked=!!c.some(e=>e.equals(i.issuerKeyID))||i.revoked||!1,i.revoked):c.length>0}function Ea(e,t){let r;return!1===t.keyNeverExpires&&(r=e.created.getTime()+1e3*t.keyExpirationTime),r?new Date(r):1/0}function va(e,t={}){switch(e.type=e.type||t.type,e.curve=e.curve||t.curve,e.rsaBits=e.rsaBits||t.rsaBits,e.keyExpirationTime=void 0!==e.keyExpirationTime?e.keyExpirationTime:t.keyExpirationTime,e.passphrase=L.isString(e.passphrase)?e.passphrase:t.passphrase,e.date=e.date||t.date,e.sign=e.sign||!1,e.type){case"ecc":try{e.curve=Q.write(Q.curve,e.curve)}catch{throw new Error("Unknown curve")}e.curve!==Q.curve.ed25519Legacy&&e.curve!==Q.curve.curve25519Legacy&&"ed25519"!==e.curve&&"curve25519"!==e.curve||(e.curve=e.sign?Q.curve.ed25519Legacy:Q.curve.curve25519Legacy),e.sign?e.algorithm=e.curve===Q.curve.ed25519Legacy?Q.publicKey.eddsaLegacy:Q.publicKey.ecdsa:e.algorithm=Q.publicKey.ecdh;break;case"curve25519":e.algorithm=e.sign?Q.publicKey.ed25519:Q.publicKey.x25519;break;case"curve448":e.algorithm=e.sign?Q.publicKey.ed448:Q.publicKey.x448;break;case"rsa":e.algorithm=Q.publicKey.rsaEncryptSign;break;default:throw new Error(`Unsupported key type ${e.type}`)}return e}function ka(e,t,r){switch(e.algorithm){case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaSign:case Q.publicKey.dsa:case Q.publicKey.ecdsa:case Q.publicKey.eddsaLegacy:case Q.publicKey.ed25519:case Q.publicKey.ed448:if(!t.keyFlags&&!r.allowMissingKeyFlags)throw new Error("None of the key flags is set: consider passing `config.allowMissingKeyFlags`");return!t.keyFlags||0!==(t.keyFlags[0]&Q.keyFlags.signData);default:return!1}}function Ia(e,t,r){switch(e.algorithm){case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaEncrypt:case Q.publicKey.elgamal:case Q.publicKey.ecdh:case Q.publicKey.x25519:case Q.publicKey.x448:if(!t.keyFlags&&!r.allowMissingKeyFlags)throw new Error("None of the key flags is set: consider passing `config.allowMissingKeyFlags`");return!t.keyFlags||0!==(t.keyFlags[0]&Q.keyFlags.encryptCommunication)||0!==(t.keyFlags[0]&Q.keyFlags.encryptStorage);default:return!1}}function Ba(e,t,r){if(!t.keyFlags&&!r.allowMissingKeyFlags)throw new Error("None of the key flags is set: consider passing `config.allowMissingKeyFlags`");switch(e.algorithm){case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaEncrypt:case Q.publicKey.elgamal:case Q.publicKey.ecdh:case Q.publicKey.x25519:case Q.publicKey.x448:return!(t.keyFlags&&0===(t.keyFlags[0]&Q.keyFlags.signData)||!r.allowInsecureDecryptionWithSigningKeys)||!t.keyFlags||0!==(t.keyFlags[0]&Q.keyFlags.encryptCommunication)||0!==(t.keyFlags[0]&Q.keyFlags.encryptStorage);default:return!1}}function Ca(e,t){const r=Q.write(Q.publicKey,e.algorithm),n=e.getAlgorithmInfo();if(t.rejectPublicKeyAlgorithms.has(r))throw new Error(`${n.algorithm} keys are considered too weak.`);switch(r){case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaSign:case Q.publicKey.rsaEncrypt:if(n.bitse.getKeys(o).length>0);return 0===c.length?null:(await Promise.all(c.map(async t=>{const s=await t.getSigningKey(o,e.created,void 0,n);if(e.revoked||await i.isRevoked(e,s.keyPacket,r,n))throw new Error("User certificate is revoked");try{await e.verify(s.keyPacket,Q.signature.certGeneric,a,r,void 0,n)}catch(e){throw L.wrapError("User certificate is invalid",e)}})),!0)}async verifyAllCertifications(e,t=new Date,r){const n=this,i=this.selfCertifications.concat(this.otherCertifications);return Promise.all(i.map(async i=>({keyID:i.issuerKeyID,valid:await n.verifyCertificate(i,e,t,r).catch(()=>!1)})))}async verify(e=new Date,t){if(!this.selfCertifications.length)throw new Error("No self-certifications found");const r=this,n=this.mainKey.keyPacket,i={userID:this.userID,userAttribute:this.userAttribute,key:n};let s;for(let a=this.selfCertifications.length-1;a>=0;a--)try{const s=this.selfCertifications[a];if(s.revoked||await r.isRevoked(s,void 0,e,t))throw new Error("Self-certification is revoked");try{await s.verify(n,Q.signature.certGeneric,i,e,void 0,t)}catch(e){throw L.wrapError("Self-certification is invalid",e)}return!0}catch(e){s=e}throw s}async update(e,t,r){const n=this.mainKey.keyPacket,i={userID:this.userID,userAttribute:this.userAttribute,key:n};await wa(e,this,"selfCertifications",t,async function(e){try{return await e.verify(n,Q.signature.certGeneric,i,t,!1,r),!0}catch{return!1}}),await wa(e,this,"otherCertifications",t),await wa(e,this,"revocationSignatures",t,function(e){return ba(n,Q.signature.certRevocation,i,[e],void 0,void 0,t,r)})}async revoke(e,{flag:t=Q.reasonForRevocation.noReason,string:r=""}={},n=new Date,i=N){const s={userID:this.userID,userAttribute:this.userAttribute,key:e},a=new Sa(s.userID||s.userAttribute,this.mainKey);return a.revocationSignatures.push(await ma(s,[],e,{signatureType:Q.signature.certRevocation,reasonForRevocationFlag:Q.write(Q.reasonForRevocation,t),reasonForRevocationString:r},n,void 0,void 0,!1,i)),await a.update(this),a}}class Da{constructor(e,t){this.keyPacket=e,this.bindingSignatures=[],this.revocationSignatures=[],this.mainKey=t}toPacketList(){const e=new Ts;return e.push(this.keyPacket),e.push(...this.revocationSignatures),e.push(...this.bindingSignatures),e}clone(){const e=new Da(this.keyPacket,this.mainKey);return e.bindingSignatures=[...this.bindingSignatures],e.revocationSignatures=[...this.revocationSignatures],e}async isRevoked(e,t,r=new Date,n=N){const i=this.mainKey.keyPacket;return ba(i,Q.signature.subkeyRevocation,{key:i,bind:this.keyPacket},this.revocationSignatures,e,t,r,n)}async verify(e=new Date,t=N){const r=this.mainKey.keyPacket,n={key:r,bind:this.keyPacket},i=await pa(this.bindingSignatures,r,Q.signature.subkeyBinding,n,e,t);if(i.revoked||await this.isRevoked(i,null,e,t))throw new Error("Subkey is revoked");if(ga(this.keyPacket,i,e))throw new Error("Subkey is expired");return i}async getExpirationTime(e=new Date,t=N){const r=this.mainKey.keyPacket,n={key:r,bind:this.keyPacket};let i;try{i=await pa(this.bindingSignatures,r,Q.signature.subkeyBinding,n,e,t)}catch{return null}const s=Ea(this.keyPacket,i),a=i.getExpirationTime();return si.bindingSignatures[t].created&&(i.bindingSignatures[t]=e),!1;try{return await e.verify(n,Q.signature.subkeyBinding,s,t,void 0,r),!0}catch{return!1}}),await wa(e,this,"revocationSignatures",t,function(e){return ba(n,Q.signature.subkeyRevocation,s,[e],void 0,void 0,t,r)})}async revoke(e,{flag:t=Q.reasonForRevocation.noReason,string:r=""}={},n=new Date,i=N){const s={key:e,bind:this.keyPacket},a=new Da(this.keyPacket,this.mainKey);return a.revocationSignatures.push(await ma(s,[],e,{signatureType:Q.signature.subkeyRevocation,reasonForRevocationFlag:Q.write(Q.reasonForRevocation,t),reasonForRevocationString:r},n,void 0,void 0,!1,i)),await a.update(this),a}hasSameFingerprintAs(e){return this.keyPacket.hasSameFingerprintAs(e.keyPacket||e)}}["getKeyID","getFingerprint","getAlgorithmInfo","getCreationTime","isDecrypted"].forEach(e=>{Da.prototype[e]=function(){return this.keyPacket[e]()}});const xa=L.constructAllowedPackets([Ds]),Ka=new Set([Q.packet.publicKey,Q.packet.privateKey]),Pa=new Set([Q.packet.publicKey,Q.packet.privateKey,Q.packet.publicSubkey,Q.packet.privateSubkey]);class Ua{packetListToStructure(e,t=new Set){let r,n,i,s;for(const a of e){if(a instanceof lt){Pa.has(a.tag)&&!s&&(s=Ka.has(a.tag)?Ka:Pa);continue}const e=a.constructor.tag;if(s){if(!s.has(e))continue;s=null}if(t.has(e))throw new Error(`Unexpected packet type: ${e}`);switch(e){case Q.packet.publicKey:case Q.packet.secretKey:if(this.keyPacket)throw new Error("Key block contains multiple keys");if(this.keyPacket=a,n=this.getKeyID(),!n)throw new Error("Missing Key ID");break;case Q.packet.userID:case Q.packet.userAttribute:r=new Sa(a,this),this.users.push(r);break;case Q.packet.publicSubkey:case Q.packet.secretSubkey:r=null,i=new Da(a,this),this.subkeys.push(i);break;case Q.packet.signature:switch(a.signatureType){case Q.signature.certGeneric:case Q.signature.certPersona:case Q.signature.certCasual:case Q.signature.certPositive:if(!r){L.printDebug("Dropping certification signatures without preceding user packet");continue}a.issuerKeyID.equals(n)?r.selfCertifications.push(a):r.otherCertifications.push(a);break;case Q.signature.certRevocation:r?r.revocationSignatures.push(a):this.directSignatures.push(a);break;case Q.signature.key:this.directSignatures.push(a);break;case Q.signature.subkeyBinding:if(!i){L.printDebug("Dropping subkey binding signature without preceding subkey packet");continue}i.bindingSignatures.push(a);break;case Q.signature.keyRevocation:this.revocationSignatures.push(a);break;case Q.signature.subkeyRevocation:if(!i){L.printDebug("Dropping subkey revocation signature without preceding subkey packet");continue}i.revocationSignatures.push(a)}}}}toPacketList(){const e=new Ts;return e.push(this.keyPacket),e.push(...this.revocationSignatures),e.push(...this.directSignatures),this.users.map(t=>e.push(...t.toPacketList())),this.subkeys.map(t=>e.push(...t.toPacketList())),e}clone(e=!1){const t=new this.constructor(this.toPacketList());return e&&t.getKeys().forEach(e=>{if(e.keyPacket=Object.create(Object.getPrototypeOf(e.keyPacket),Object.getOwnPropertyDescriptors(e.keyPacket)),!e.keyPacket.isDecrypted())return;const t={};Object.keys(e.keyPacket.privateParams).forEach(r=>{t[r]=new Uint8Array(e.keyPacket.privateParams[r])}),e.keyPacket.privateParams=t}),t}getSubkeys(e=null){return this.subkeys.filter(t=>!e||t.getKeyID().equals(e,!0))}getKeys(e=null){const t=[];return e&&!this.getKeyID().equals(e,!0)||t.push(this),t.concat(this.getSubkeys(e))}getKeyIDs(){return this.getKeys().map(e=>e.getKeyID())}getUserIDs(){return this.users.map(e=>e.userID?e.userID.userID:null).filter(e=>null!==e)}write(){return this.toPacketList().write()}async getSigningKey(e=null,t=new Date,r={},n=N){await this.verifyPrimaryKey(t,r,n);const i=this.keyPacket;try{Ca(i,n)}catch(e){throw L.wrapError("Could not verify primary key",e)}const s=this.subkeys.slice().sort((e,t)=>t.keyPacket.created-e.keyPacket.created||t.keyPacket.algorithm-e.keyPacket.algorithm);let a;for(const r of s)if(!e||r.getKeyID().equals(e))try{await r.verify(t,n);const e={key:i,bind:r.keyPacket},s=await pa(r.bindingSignatures,i,Q.signature.subkeyBinding,e,t,n);if(!ka(r.keyPacket,s,n))continue;if(!s.embeddedSignature)throw new Error("Missing embedded signature");return await pa([s.embeddedSignature],r.keyPacket,Q.signature.keyBinding,e,t,n),Ca(r.keyPacket,n),r}catch(e){a=e}try{const s=await this.getPrimarySelfSignature(t,r,n);if((!e||i.getKeyID().equals(e))&&ka(i,s,n))return Ca(i,n),this}catch(e){a=e}throw L.wrapError("Could not find valid signing key packet in key "+this.getKeyID().toHex(),a)}async getEncryptionKey(e,t=new Date,r={},n=N){await this.verifyPrimaryKey(t,r,n);const i=this.keyPacket;try{Ca(i,n)}catch(e){throw L.wrapError("Could not verify primary key",e)}const s=this.subkeys.slice().sort((e,t)=>t.keyPacket.created-e.keyPacket.created||t.keyPacket.algorithm-e.keyPacket.algorithm);let a;for(const r of s)if(!e||r.getKeyID().equals(e))try{await r.verify(t,n);const e={key:i,bind:r.keyPacket},s=await pa(r.bindingSignatures,i,Q.signature.subkeyBinding,e,t,n);if(Ia(r.keyPacket,s,n))return Ca(r.keyPacket,n),r}catch(e){a=e}try{const s=await this.getPrimarySelfSignature(t,r,n);if((!e||i.getKeyID().equals(e))&&Ia(i,s,n))return Ca(i,n),this}catch(e){a=e}throw L.wrapError("Could not find valid encryption key packet in key "+this.getKeyID().toHex(),a)}async isRevoked(e,t,r=new Date,n=N){return ba(this.keyPacket,Q.signature.keyRevocation,{key:this.keyPacket},this.revocationSignatures,e,t,r,n)}async verifyPrimaryKey(e=new Date,t={},r=N){const n=this.keyPacket;if(await this.isRevoked(null,null,e,r))throw new Error("Primary key is revoked");if(ga(n,await this.getPrimarySelfSignature(e,t,r),e))throw new Error("Primary key is expired");if(6!==n.version){const t=await pa(this.directSignatures,n,Q.signature.key,{key:n},e,r).catch(()=>{});if(t&&ga(n,t,e))throw new Error("Primary key is expired")}}async getExpirationTime(e,t=N){let r;try{const n=await this.getPrimarySelfSignature(null,e,t),i=Ea(this.keyPacket,n),s=n.getExpirationTime(),a=6!==this.keyPacket.version&&await pa(this.directSignatures,this.keyPacket,Q.signature.key,{key:this.keyPacket},null,t).catch(()=>{});if(a){const e=Ea(this.keyPacket,a);r=Math.min(i,s,e)}else r=i{t.selfCertification.revoked||await t.user.isRevoked(t.selfCertification,null,e,r)}));const a=i.sort(function(e,t){const r=e.selfCertification,n=t.selfCertification;return n.revoked-r.revoked||r.isPrimaryUserID-n.isPrimaryUserID||r.created-n.created}).pop(),{user:o,selfCertification:c}=a;if(c.revoked||await o.isRevoked(c,null,e,r))throw new Error("Primary user is revoked");return a}async update(e,t=new Date,r=N){if(!this.hasSameFingerprintAs(e))throw new Error("Primary key fingerprints must be equal to update the key");if(!this.isPrivate()&&e.isPrivate()){if(this.subkeys.length!==e.subkeys.length||!this.subkeys.every(t=>e.subkeys.some(e=>t.hasSameFingerprintAs(e))))throw new Error("Cannot update public key with private key if subkeys mismatch");return e.update(this,r)}const n=this.clone();return await wa(e,n,"revocationSignatures",t,i=>ba(n.keyPacket,Q.signature.keyRevocation,n,[i],null,e.keyPacket,t,r)),await wa(e,n,"directSignatures",t),await Promise.all(e.users.map(async e=>{const i=n.users.filter(t=>e.userID&&e.userID.equals(t.userID)||e.userAttribute&&e.userAttribute.equals(t.userAttribute));if(i.length>0)await Promise.all(i.map(n=>n.update(e,t,r)));else{const t=e.clone();t.mainKey=n,n.users.push(t)}})),await Promise.all(e.subkeys.map(async e=>{const i=n.subkeys.filter(t=>t.hasSameFingerprintAs(e));if(i.length>0)await Promise.all(i.map(n=>n.update(e,t,r)));else{const t=e.clone();t.mainKey=n,n.subkeys.push(t)}})),n}async getRevocationCertificate(e=new Date,t=N){const r={key:this.keyPacket},n=await pa(this.revocationSignatures,this.keyPacket,Q.signature.keyRevocation,r,e,t),i=new Ts;i.push(n);const s=6!==this.keyPacket.version;return re(Q.armor.publicKey,i.write(),null,null,"This is a revocation certificate",s,t)}async applyRevocationCertificate(e,t=new Date,r=N){const n=await te(e),i=(await Ts.fromBinary(n.data,xa,r)).findPacket(Q.packet.signature);if(!i||i.signatureType!==Q.signature.keyRevocation)throw new Error("Could not find revocation signature packet");if(!i.issuerKeyID.equals(this.getKeyID()))throw new Error("Revocation signature does not match key");try{await i.verify(this.keyPacket,Q.signature.keyRevocation,{key:this.keyPacket},t,void 0,r)}catch(e){throw L.wrapError("Could not verify revocation signature",e)}const s=this.clone();return s.revocationSignatures.push(i),s}async signPrimaryUser(e,t,r,n=N){const{index:i,user:s}=await this.getPrimaryUser(t,r,n),a=await s.certify(e,t,n),o=this.clone();return o.users[i]=a,o}async signAllUsers(e,t=new Date,r=N){const n=this.clone();return n.users=await Promise.all(this.users.map(function(n){return n.certify(e,t,r)})),n}async verifyPrimaryUser(e,t=new Date,r,n=N){const i=this.keyPacket,{user:s}=await this.getPrimaryUser(t,r,n);return e?await s.verifyAllCertifications(e,t,n):[{keyID:i.getKeyID(),valid:await s.verify(t,n).catch(()=>!1)}]}async verifyAllUsers(e,t=new Date,r=N){const n=this.keyPacket,i=[];return await Promise.all(this.users.map(async s=>{const a=e?await s.verifyAllCertifications(e,t,r):[{keyID:n.getKeyID(),valid:await s.verify(t,r).catch(()=>!1)}];i.push(...a.map(e=>({userID:s.userID?s.userID.userID:null,userAttribute:s.userAttribute,keyID:e.keyID,valid:e.valid})))})),i}}["getKeyID","getFingerprint","getAlgorithmInfo","getCreationTime","hasSameFingerprintAs"].forEach(e=>{Ua.prototype[e]=Da.prototype[e]});class Ta extends Ua{constructor(e){if(super(),this.keyPacket=null,this.revocationSignatures=[],this.directSignatures=[],this.users=[],this.subkeys=[],e&&(this.packetListToStructure(e,new Set([Q.packet.secretKey,Q.packet.secretSubkey])),!this.keyPacket))throw new Error("Invalid key: missing public-key packet")}isPrivate(){return!1}toPublic(){return this}armor(e=N){const t=6!==this.keyPacket.version;return re(Q.armor.publicKey,this.toPacketList().write(),void 0,void 0,void 0,t,e)}}class Fa extends Ta{constructor(e){if(super(),this.packetListToStructure(e,new Set([Q.packet.publicKey,Q.packet.publicSubkey])),!this.keyPacket)throw new Error("Invalid key: missing private-key packet")}isPrivate(){return!0}toPublic(){const e=new Ts,t=this.toPacketList();for(const r of t)switch(r.constructor.tag){case Q.packet.secretKey:{const t=Xs.fromSecretKeyPacket(r);e.push(t);break}case Q.packet.secretSubkey:{const t=ra.fromSecretSubkeyPacket(r);e.push(t);break}default:e.push(r)}return new Ta(e)}armor(e=N){const t=6!==this.keyPacket.version;return re(Q.armor.privateKey,this.toPacketList().write(),void 0,void 0,void 0,t,e)}async getDecryptionKeys(e,t=new Date,r={},n=N){const i=this.keyPacket,s=[];let a=null;for(let r=0;re.isDecrypted())}async validate(e=N){if(!this.isPrivate())throw new Error("Cannot validate a public key");let t;if(this.keyPacket.isDummy()){const r=await this.getSigningKey(null,null,void 0,{...e,rejectPublicKeyAlgorithms:new Set,minRSABits:0});r&&!r.keyPacket.isDummy()&&(t=r.keyPacket)}else t=this.keyPacket;if(t)return t.validate();{const e=this.getKeys();if(e.map(e=>e.keyPacket.isDummy()).every(Boolean))throw new Error("Cannot validate an all-gnu-dummy key");return Promise.all(e.map(e=>e.keyPacket.validate()))}}clearPrivateParams(){this.getKeys().forEach(({keyPacket:e})=>{e.isDecrypted()&&e.clearPrivateParams()})}async revoke({flag:e=Q.reasonForRevocation.noReason,string:t=""}={},r=new Date,n=N){if(!this.isPrivate())throw new Error("Need private key for revoking");const i={key:this.keyPacket},s=this.clone();return s.revocationSignatures.push(await ma(i,[],this.keyPacket,{signatureType:Q.signature.keyRevocation,reasonForRevocationFlag:Q.write(Q.reasonForRevocation,e),reasonForRevocationString:t},r,void 0,void 0,void 0,n)),s}async addSubkey(e={}){const t={...N,...e.config};if(e.passphrase)throw new Error("Subkey could not be encrypted here, please encrypt whole key");if(e.rsaBitse!==t)]}function a(){const e={};e.keyFlags=[Q.keyFlags.certifyKeys|Q.keyFlags.signData];const t=s([Q.symmetric.aes256,Q.symmetric.aes128],n.preferredSymmetricAlgorithm);if(e.preferredSymmetricAlgorithms=t,n.aeadProtect){const r=s([Q.aead.gcm,Q.aead.eax,Q.aead.ocb],n.preferredAEADAlgorithm);e.preferredCipherSuites=r.flatMap(e=>t.map(t=>[t,e]))}return e.preferredHashAlgorithms=s([Q.hash.sha512,Q.hash.sha256,Q.hash.sha3_512,Q.hash.sha3_256],n.preferredHashAlgorithm),e.preferredCompressionAlgorithms=s([Q.compression.uncompressed,Q.compression.zlib,Q.compression.zip],n.preferredCompressionAlgorithm),e.features=[0],e.features[0]|=Q.features.modificationDetection,n.aeadProtect&&(e.features[0]|=Q.features.seipdv2),r.keyExpirationTime>0&&(e.keyExpirationTime=r.keyExpirationTime,e.keyNeverExpires=!1),e}if(i.push(e),6===e.version){const t={key:e},s=a();s.signatureType=Q.signature.key;const o=await ma(t,[],e,s,r.date,void 0,void 0,void 0,n);i.push(o)}await Promise.all(r.userIDs.map(async function(t,i){const s=aa.fromObject(t),o={userID:s,key:e},c=6!==e.version?a():{};return c.signatureType=Q.signature.certPositive,0===i&&(c.isPrimaryUserID=!0),{userIDPacket:s,signaturePacket:await ma(o,[],e,c,r.date,void 0,void 0,void 0,n)}})).then(e=>{e.forEach(({userIDPacket:e,signaturePacket:t})=>{i.push(e),i.push(t)})}),await Promise.all(t.map(async function(t,i){const s=r.subkeys[i];return{secretSubkeyPacket:t,subkeySignaturePacket:await ya(t,e,s,n)}})).then(e=>{e.forEach(({secretSubkeyPacket:e,subkeySignaturePacket:t})=>{i.push(e),i.push(t)})});const o={key:e};return i.push(await ma(o,[],e,{signatureType:Q.signature.keyRevocation,reasonForRevocationFlag:Q.reasonForRevocation.noReason,reasonForRevocationString:""},r.date,void 0,void 0,void 0,n)),r.passphrase&&e.clearPrivateParams(),t.map(function(e,t){r.subkeys[t].passphrase&&e.clearPrivateParams()}),new Fa(i)}async function Na({armoredKey:e,binaryKey:t,config:r,...n}){if(r={...N,...r},!e&&!t)throw new Error("readKey: must pass options object containing `armoredKey` or `binaryKey`");if(e&&!L.isString(e))throw new Error("readKey: options.armoredKey must be a string");if(t&&!L.isUint8Array(t))throw new Error("readKey: options.binaryKey must be a Uint8Array");const i=Object.keys(n);if(i.length>0)throw new Error(`Unknown option: ${i.join(", ")}`);let s;if(e){const{type:t,data:r}=await te(e);if(t!==Q.armor.publicKey&&t!==Q.armor.privateKey)throw new Error("Armored text not of type key");s=r}else s=t;const a=await Ts.fromBinary(s,Ma,r),o=a.indexOfTag(Q.packet.publicKey,Q.packet.secretKey);if(0===o.length)throw new Error("No key packet found");return Ra(a.slice(o[0],o[1]))}async function Oa({armoredKey:e,binaryKey:t,config:r,...n}){if(r={...N,...r},!e&&!t)throw new Error("readPrivateKey: must pass options object containing `armoredKey` or `binaryKey`");if(e&&!L.isString(e))throw new Error("readPrivateKey: options.armoredKey must be a string");if(t&&!L.isUint8Array(t))throw new Error("readPrivateKey: options.binaryKey must be a Uint8Array");const i=Object.keys(n);if(i.length>0)throw new Error(`Unknown option: ${i.join(", ")}`);let s;if(e){const{type:t,data:r}=await te(e);if(t!==Q.armor.privateKey)throw new Error("Armored text not of type private key");s=r}else s=t;const a=await Ts.fromBinary(s,Ma,r),o=a.indexOfTag(Q.packet.publicKey,Q.packet.secretKey);for(let e=0;e0)throw new Error(`Unknown option: ${s.join(", ")}`);if(e){const{type:t,data:r}=await te(e);if(t!==Q.armor.publicKey&&t!==Q.armor.privateKey)throw new Error("Armored text not of type key");i=r}const a=[],o=await Ts.fromBinary(i,Ma,r),c=o.indexOfTag(Q.packet.publicKey,Q.packet.secretKey);if(0===c.length)throw new Error("No key packet found");for(let e=0;e0?t.map(e=>e.issuerKeyID):e.packets.filterByTag(Q.packet.signature).map(e=>e.issuerKeyID)}async decrypt(e,t,r,n=new Date,i=N){const s=this.packets.filterByTag(Q.packet.symmetricallyEncryptedData,Q.packet.symEncryptedIntegrityProtectedData,Q.packet.aeadEncryptedData);if(0===s.length)throw new Error("No encrypted data found");const a=s[0],o=a.cipherAlgorithm,c=r||await this.decryptSessionKeys(e,t,o,n,i);let l=null;const u=Promise.all(c.map(async({algorithm:e,data:t})=>{if(!L.isUint8Array(t)||!a.cipherAlgorithm&&!L.isString(e))throw new Error("Invalid session key for decryption.");try{const r=a.cipherAlgorithm||Q.write(Q.symmetric,e);await a.decrypt(r,t,i)}catch(e){L.printDebugError(e),l=e}}));if(U(a.encrypted),a.encrypted=null,await u,!a.packets||!a.packets.length)throw l||new Error("Decryption failed.");const h=new Ya(a.packets);return a.packets=new Ts,h}async decryptSessionKeys(e,t,r,n=new Date,i=N){let s,a=[];if(t){const e=this.packets.filterByTag(Q.packet.symEncryptedSessionKey);if(0===e.length)throw new Error("No symmetrically encrypted session key packet found.");await Promise.all(t.map(async function(t,r){let n;n=r?await Ts.fromBinary(e.write(),ja,i):e,await Promise.all(n.map(async function(e){try{await e.decrypt(t),a.push(e)}catch(e){L.printDebugError(e),e instanceof Ei&&(s=e)}}))}))}else{if(!e)throw new Error("No key or password specified.");{const t=this.packets.filterByTag(Q.packet.publicKeyEncryptedSessionKey);if(0===t.length)throw new Error("No public key encrypted session key packet found.");await Promise.all(t.map(async function(t){await Promise.all(e.map(async function(e){let o;try{o=(await e.getDecryptionKeys(t.publicKeyID,null,void 0,i)).map(e=>e.keyPacket)}catch(e){return void(s=e)}let c=[Q.symmetric.aes256,Q.symmetric.aes128,Q.symmetric.tripledes,Q.symmetric.cast5];try{const t=await e.getPrimarySelfSignature(n,void 0,i);t.preferredSymmetricAlgorithms&&(c=c.concat(t.preferredSymmetricAlgorithms))}catch{}await Promise.all(o.map(async function(e){if(!e.isDecrypted())throw new Error("Decryption key is not decrypted.");if(!i.constantTimePKCS1Decryption||t.publicKeyAlgorithm!==Q.publicKey.rsaEncrypt&&t.publicKeyAlgorithm!==Q.publicKey.rsaEncryptSign&&t.publicKeyAlgorithm!==Q.publicKey.rsaSign&&t.publicKeyAlgorithm!==Q.publicKey.elgamal)try{await t.decrypt(e);const n=r||t.sessionKeyAlgorithm;if(n&&!c.includes(Q.write(Q.symmetric,n)))throw new Error("A non-preferred symmetric algorithm was used.");a.push(t)}catch(e){L.printDebugError(e),s=e}else{const n=t.write();await Promise.all((r?[r]:Array.from(i.constantTimePKCS1DecryptionSupportedSymmetricAlgorithms)).map(async t=>{const r=new Zs;r.read(n);const i={sessionKeyAlgorithm:t,sessionKey:Un(t)};try{await r.decrypt(e,i),a.push(r)}catch(e){L.printDebugError(e),s=e}}))}}))})),U(t.encrypted),t.encrypted=null}))}}if(a.length>0){if(a.length>1){const e=new Set;a=a.filter(t=>{const r=t.sessionKeyAlgorithm+L.uint8ArrayToString(t.sessionKey);return!e.has(r)&&(e.add(r),!0)})}return a.map(e=>({data:e.sessionKey,algorithm:e.sessionKeyAlgorithm&&Q.read(Q.symmetric,e.sessionKeyAlgorithm)}))}throw s||new Error("Session key decryption failed.")}getLiteralData(){const e=this.unwrapCompressed().packets.findPacket(Q.packet.literalData);return e&&e.getBytes()||null}getFilename(){const e=this.unwrapCompressed().packets.findPacket(Q.packet.literalData);return e&&e.getFilename()||null}getText(){const e=this.unwrapCompressed().packets.findPacket(Q.packet.literalData);return e?e.getText():null}static async generateSessionKey(e=[],t=new Date,r=[],n=N){const{symmetricAlgo:i,aeadAlgo:s}=await async function(e=[],t=new Date,r=[],n=N){const i=await Promise.all(e.map((e,i)=>e.getPrimarySelfSignature(t,r[i],n)));if(e.length?i.every(e=>e.features&&e.features[0]&Q.features.seipdv2):n.aeadProtect){const e={symmetricAlgo:Q.symmetric.aes128,aeadAlgo:Q.aead.ocb},t=[{symmetricAlgo:n.preferredSymmetricAlgorithm,aeadAlgo:n.preferredAEADAlgorithm},{symmetricAlgo:n.preferredSymmetricAlgorithm,aeadAlgo:Q.aead.ocb},{symmetricAlgo:Q.symmetric.aes128,aeadAlgo:n.preferredAEADAlgorithm}];for(const e of t)if(i.every(t=>t.preferredCipherSuites&&t.preferredCipherSuites.some(t=>t[0]===e.symmetricAlgo&&t[1]===e.aeadAlgo)))return e;return e}const s=Q.symmetric.aes128,a=n.preferredSymmetricAlgorithm;return{symmetricAlgo:i.every(e=>e.preferredSymmetricAlgorithms&&e.preferredSymmetricAlgorithms.includes(a))?a:s,aeadAlgo:void 0}}(e,t,r,n),a=Q.read(Q.symmetric,i),o=s?Q.read(Q.aead,s):void 0;return await Promise.all(e.map(e=>e.getEncryptionKey().catch(()=>null).then(e=>{if(e&&(e.keyPacket.algorithm===Q.publicKey.x25519||e.keyPacket.algorithm===Q.publicKey.x448)&&!o&&!L.isAES(i))throw new Error("Could not generate a session key compatible with the given `encryptionKeys`: X22519 and X448 keys can only be used to encrypt AES session keys; change `config.preferredSymmetricAlgorithm` accordingly.")}))),{data:Un(i),algorithm:a,aeadAlgorithm:o}}async encrypt(e,t,r,n=!1,i=[],s=new Date,a=[],o=N){if(r){if(!L.isUint8Array(r.data)||!L.isString(r.algorithm))throw new Error("Invalid session key for encryption.")}else if(e&&e.length)r=await Ya.generateSessionKey(e,s,a,o);else{if(!t||!t.length)throw new Error("No keys, passwords, or session key provided.");r=await Ya.generateSessionKey(void 0,void 0,void 0,o)}const{data:c,algorithm:l,aeadAlgorithm:u}=r,h=await Ya.encryptSessionKey(c,l,u,e,t,n,i,s,a,o),f=Ys.fromObject({version:u?2:1,aeadAlgorithm:u?Q.write(Q.aead,u):null});f.packets=this.packets;const A=Q.write(Q.symmetric,l);return await f.encrypt(A,c,o),h.packets.push(f),f.packets=new Ts,h}static async encryptSessionKey(e,t,r,n,i,s=!1,a=[],o=new Date,c=[],l=N){const u=new Ts,h=Q.write(Q.symmetric,t),f=r&&Q.write(Q.aead,r);if(n){const t=await Promise.all(n.map(async function(t,r){const n=await t.getEncryptionKey(a[r],o,c,l),i=Zs.fromObject({version:f?6:3,encryptionKeyPacket:n.keyPacket,anonymousRecipient:s,sessionKey:e,sessionKeyAlgorithm:h});return await i.encrypt(n.keyPacket),delete i.sessionKey,i}));u.push(...t)}if(i){const t=async function(e,t){try{return await e.decrypt(t),1}catch{return 0}},r=(e,t)=>e+t,n=async function(e,s,a,o){const c=new zs(l);return c.sessionKey=e,c.sessionKeyAlgorithm=s,a&&(c.aeadAlgorithm=a),await c.encrypt(o,l),l.passwordCollisionCheck&&1!==(await Promise.all(i.map(e=>t(c,e)))).reduce(r)?n(e,s,o):(delete c.sessionKey,c)},s=await Promise.all(i.map(t=>n(e,h,f,t)));u.push(...s)}return new Ya(u)}async sign(e=[],t=[],r=null,n=[],i=new Date,s=[],a=[],o=[],c=N){const l=new Ts,u=this.packets.findPacket(Q.packet.literalData);if(!u)throw new Error("No literal data packet to sign.");const h=await Ja(u,e,t,r,n,i,s,a,o,!1,c),f=h.map((e,t)=>Ps.fromSignaturePacket(e,0===t)).reverse();return l.push(...f),l.push(u),l.push(...h),new Ya(l)}compress(e,t=N){if(e===Q.compression.uncompressed)return this;const r=new Ns(t);r.algorithm=e,r.packets=this.packets;const n=new Ts;return n.push(r),new Ya(n)}async signDetached(e=[],t=[],r=null,n=[],i=[],s=new Date,a=[],o=[],c=N){const l=this.packets.findPacket(Q.packet.literalData);if(!l)throw new Error("No literal data packet to sign.");return new ha(await Ja(l,e,t,r,n,i,s,a,o,!0,c))}async verify(e,t=new Date,r=N){const n=this.unwrapCompressed(),i=n.packets.filterByTag(Q.packet.literalData);if(1!==i.length)throw new Error("Can only verify message with one literal data packet.");let s=n.packets;l(s.stream)&&(s=s.concat(await P(s.stream,e=>e||[])));const a=s.filterByTag(Q.packet.onePassSignature).reverse(),o=s.filterByTag(Q.packet.signature);return a.length&&!o.length&&L.isStream(s.stream)&&!l(s.stream)?(await Promise.all(a.map(async e=>{e.correspondingSig=new Promise((t,r)=>{e.correspondingSigResolve=t,e.correspondingSigReject=r}),e.signatureData=T(async()=>(await e.correspondingSig).signatureData),e.hashed=P(await e.hash(e.signatureType,i[0],void 0,!1)),e.hashed.catch(()=>{})})),s.stream=B(s.stream,async(e,t)=>{const r=F(e),n=M(t);try{for(let e=0;e{t.correspondingSigReject(e)}),await n.abort(e)}}),_a(a,i,e,t,!1,r)):_a(o,i,e,t,!1,r)}async verifyDetached(e,t,r=new Date,n=N){const i=this.unwrapCompressed().packets.filterByTag(Q.packet.literalData);if(1!==i.length)throw new Error("Can only verify message with one literal data packet.");return _a(e.packets.filterByTag(Q.packet.signature),i,t,r,!0,n)}unwrapCompressed(){const e=this.packets.filterByTag(Q.packet.compressedData);return e.length?new Ya(e[0].packets):this}async appendSignature(e,t=N){await this.packets.read(L.isUint8Array(e)?e:(await te(e)).data,Wa,t)}write(){return this.packets.write()}armor(e=N){const t=this.packets[this.packets.length-1],r=t.constructor.tag===Ys.tag?2!==t.version:this.packets.some(e=>e.constructor.tag===Ds.tag&&6!==e.version);return re(Q.armor.message,this.write(),null,null,null,r,e)}}async function Ja(e,t,r=[],n=null,i=[],s=new Date,a=[],o=[],c=[],l=!1,u=N){const h=new Ts,f=null===e.text?Q.signature.binary:Q.signature.text;if(await Promise.all(t.map(async(t,n)=>{const h=a[n];if(!t.isPrivate())throw new Error("Need private key for signing");const A=await t.getSigningKey(i[n],s,h,u);return ma(e,r.length?r:[t],A.keyPacket,{signatureType:f},s,o,c,l,u)})).then(e=>{h.push(...e)}),n){const e=n.packets.filterByTag(Q.packet.signature);h.push(...e)}return h}function _a(e,t,r,n=new Date,i=!1,s=N){return e.filter(e=>["text","binary"].includes(Q.read(Q.signature,e.signatureType))).map(e=>function(e,t,r,n=new Date,i=!1,s=N){let a,o;for(const t of r){const r=t.getKeys(e.issuerKeyID);if(r.length>0){a=t,o=r[0];break}}const c=e instanceof Ps?e.correspondingSig:e,l={keyID:e.issuerKeyID,verified:(async()=>{if(!o)throw new Error(`Could not find signing key with key ID ${e.issuerKeyID.toHex()}`);await e.verify(o.keyPacket,e.signatureType,t[0],n,i,s);const r=await c;if(o.getCreationTime()>r.created)throw new Error("Key is newer than the signature");try{await a.getSigningKey(o.getKeyID(),r.created,void 0,s)}catch(e){if(!s.allowInsecureVerificationWithReformattedKeys||!e.message.match(/Signature creation time is in the future/))throw e;await a.getSigningKey(o.getKeyID(),n,void 0,s)}return!0})(),signature:(async()=>{const e=await c,t=new Ts;return e&&t.push(e),new ha(t)})()};return l.signature.catch(()=>{}),l.verified.catch(()=>{}),l}(e,t,r,n,i,s))}async function qa({armoredMessage:e,binaryMessage:t,config:r,...n}){r={...N,...r};let i=e||t;if(!i)throw new Error("readMessage: must pass options object containing `armoredMessage` or `binaryMessage`");if(e&&!L.isString(e)&&!L.isStream(e))throw new Error("readMessage: options.armoredMessage must be a string or stream");if(t&&!L.isUint8Array(t)&&!L.isStream(t))throw new Error("readMessage: options.binaryMessage must be a Uint8Array or stream");const s=Object.keys(n);if(s.length>0)throw new Error(`Unknown option: ${s.join(", ")}`);const a=L.isStream(i);if(e){const{type:e,data:t}=await te(i);if(e!==Q.armor.message)throw new Error("Armored text not of type message");i=t}const o=await Ts.fromBinary(i,Ha,r,new Rs),c=new Ya(o);return c.fromStream=a,c}async function Za({text:e,binary:t,filename:r,date:n=new Date,format:i=(void 0!==e?"utf8":"binary"),...s}){const a=void 0!==e?e:t;if(void 0===a)throw new Error("createMessage: must pass options object containing `text` or `binary`");if(e&&!L.isString(e)&&!L.isStream(e))throw new Error("createMessage: options.text must be a string or stream");if(t&&!L.isUint8Array(t)&&!L.isStream(t))throw new Error("createMessage: options.binary must be a Uint8Array or stream");const o=Object.keys(s);if(o.length>0)throw new Error(`Unknown option: ${o.join(", ")}`);const c=L.isStream(a),l=new ks(n);void 0!==e?l.setText(a,Q.write(Q.literal,i)):l.setBytes(a,Q.write(Q.literal,i)),void 0!==r&&l.setFilename(r);const u=new Ts;u.push(l);const h=new Ya(u);return h.fromStream=c,h}const Va=L.constructAllowedPackets([Ds]);class za{constructor(e,t){if(this.text=L.removeTrailingSpaces(e).replace(/\r?\n/g,"\r\n"),t&&!(t instanceof ha))throw new Error("Invalid signature input");this.signature=t||new ha(new Ts)}getSigningKeyIDs(){const e=[];return this.signature.packets.forEach(function(t){e.push(t.issuerKeyID)}),e}async sign(e,t=[],r=null,n=[],i=new Date,s=[],a=[],o=[],c=N){const l=new ks;l.setText(this.text);const u=new ha(await Ja(l,e,t,r,n,i,s,a,o,!0,c));return new za(this.text,u)}verify(e,t=new Date,r=N){const n=this.signature.packets.filterByTag(Q.packet.signature),i=new ks;return i.setText(this.text),_a(n,[i],e,t,!0,r)}getText(){return this.text.replace(/\r\n/g,"\n")}armor(e=N){const t=this.signature.packets.some(e=>6!==e.version),r={hash:t?Array.from(new Set(this.signature.packets.map(e=>Q.read(Q.hash,e.hashAlgorithm).toUpperCase()))).join():null,text:this.text,data:this.signature.packets.write()};return re(Q.armor.signed,r,void 0,void 0,void 0,t,e)}}async function Xa({cleartextMessage:e,config:t,...r}){if(t={...N,...t},!e)throw new Error("readCleartextMessage: must pass options object containing `cleartextMessage`");if(!L.isString(e))throw new Error("readCleartextMessage: options.cleartextMessage must be a string");const n=Object.keys(r);if(n.length>0)throw new Error(`Unknown option: ${n.join(", ")}`);const i=await te(e);if(i.type!==Q.armor.signed)throw new Error("No cleartext signed message.");const s=await Ts.fromBinary(i.data,Va,t);!function(e,t){const r=[];if(e.forEach(e=>{const t=e.match(/^Hash: (.+)$/);if(!t)throw new Error('Only "Hash" header allowed in cleartext signed message');{const e=t[1].replace(/\s/g,"").split(",").map(e=>{try{return Q.write(Q.hash,e.toLowerCase())}catch{throw new Error("Unknown hash algorithm in armor header: "+e.toLowerCase())}});r.push(...e)}}),r.length&&!function(e){const r=e=>t=>e.hashAlgorithm===t;for(let n=0;n0)throw new Error(`Unknown option: ${r.join(", ")}`);return new za(e)}async function eo({userIDs:e=[],passphrase:t,type:r,curve:n,rsaBits:i=4096,keyExpirationTime:s=0,date:a=new Date,subkeys:o=[{}],format:c="armored",config:l,...u}){yo(l={...N,...l}),r||n?(r=r||"ecc",n=n||"curve25519Legacy"):(r=l.v6Keys?"curve25519":"ecc",n="curve25519Legacy"),e=mo(e);const h=Object.keys(u);if(h.length>0)throw new Error(`Unknown option: ${h.join(", ")}`);if(0===e.length&&!l.v6Keys)throw new Error("UserIDs are required for V4 keys");if("rsa"===r&&iva(e.subkeys[r],e));let r=[da(e,t)];r=r.concat(e.subkeys.map(e=>Aa(e,t)));const n=await Promise.all(r),i=await Qa(n[0],n.slice(1),e,t),s=await i.getRevocationCertificate(e.date,t);return i.revocationSignatures=[],{key:i,revocationCertificate:s}}(f,l);return e.getKeys().forEach(({keyPacket:e})=>Ca(e,l)),{privateKey:Eo(e,c,l),publicKey:Eo(e.toPublic(),c,l),revocationCertificate:t}}catch(e){throw L.wrapError("Error generating keypair",e)}}async function to({privateKey:e,userIDs:t=[],passphrase:r,keyExpirationTime:n=0,date:i,format:s="armored",config:a,...o}){yo(a={...N,...a}),t=mo(t);const c=Object.keys(o);if(c.length>0)throw new Error(`Unknown option: ${c.join(", ")}`);if(0===t.length&&6!==e.keyPacket.version)throw new Error("UserIDs are required for V4 keys");const l={privateKey:e,userIDs:t,passphrase:r,keyExpirationTime:n,date:i};try{const{key:e,revocationCertificate:t}=await async function(e,t){e=o(e);const{privateKey:r}=e;if(!r.isPrivate())throw new Error("Cannot reformat a public key");if(r.keyPacket.isDummy())throw new Error("Cannot reformat a gnu-dummy primary key");if(!r.getKeys().every(({keyPacket:e})=>e.isDecrypted()))throw new Error("Key is not decrypted");const n=r.keyPacket;e.subkeys||(e.subkeys=await Promise.all(r.subkeys.map(async e=>{const r=e.keyPacket,i={key:n,bind:r},s=await pa(e.bindingSignatures,n,Q.signature.subkeyBinding,i,null,t).catch(()=>({}));return{sign:s.keyFlags&&s.keyFlags[0]&Q.keyFlags.signData}})));const i=r.subkeys.map(e=>e.keyPacket);if(e.subkeys.length!==i.length)throw new Error("Number of subkey options does not match number of subkeys");e.subkeys=e.subkeys.map(t=>o(t,e));const s=await Qa(n,i,e,t),a=await s.getRevocationCertificate(e.date,t);return s.revocationSignatures=[],{key:s,revocationCertificate:a};function o(e,t={}){return e.keyExpirationTime=e.keyExpirationTime||t.keyExpirationTime,e.passphrase=L.isString(e.passphrase)?e.passphrase:t.passphrase,e.date=e.date||t.date,e}}(l,a);return{privateKey:Eo(e,s,a),publicKey:Eo(e.toPublic(),s,a),revocationCertificate:t}}catch(e){throw L.wrapError("Error reformatting keypair",e)}}async function ro({key:e,revocationCertificate:t,reasonForRevocation:r,date:n=new Date,format:i="armored",config:s,...a}){yo(s={...N,...s});const o=Object.keys(a);if(o.length>0)throw new Error(`Unknown option: ${o.join(", ")}`);try{const a=t?await e.applyRevocationCertificate(t,n,s):await e.revoke(r,n,s);return a.isPrivate()?{privateKey:Eo(a,i,s),publicKey:Eo(a.toPublic(),i,s)}:{privateKey:null,publicKey:Eo(a,i,s)}}catch(e){throw L.wrapError("Error revoking key",e)}}async function no({privateKey:e,passphrase:t,config:r,...n}){yo(r={...N,...r});const i=Object.keys(n);if(i.length>0)throw new Error(`Unknown option: ${i.join(", ")}`);if(!e.isPrivate())throw new Error("Cannot decrypt a public key");const s=e.clone(!0),a=L.isArray(t)?t:[t];try{return await Promise.all(s.getKeys().map(e=>L.anyPromise(a.map(t=>e.keyPacket.decrypt(t))))),await s.validate(r),s}catch(e){throw s.clearPrivateParams(),L.wrapError("Error decrypting private key",e)}}async function io({privateKey:e,passphrase:t,config:r,...n}){yo(r={...N,...r});const i=Object.keys(n);if(i.length>0)throw new Error(`Unknown option: ${i.join(", ")}`);if(!e.isPrivate())throw new Error("Cannot encrypt a public key");const s=e.clone(!0),a=s.getKeys(),o=L.isArray(t)?t:new Array(a.length).fill(t);if(o.length!==a.length)throw new Error("Invalid number of passphrases given for key encryption");try{return await Promise.all(a.map(async(e,t)=>{const{keyPacket:n}=e;await n.encrypt(o[t],r),n.clearPrivateParams()})),s}catch(e){throw s.clearPrivateParams(),L.wrapError("Error encrypting private key",e)}}async function so({message:e,encryptionKeys:t,signingKeys:r,passwords:n,sessionKey:i,format:s="armored",signature:a=null,wildcard:o=!1,signingKeyIDs:c=[],encryptionKeyIDs:l=[],date:u=new Date,signingUserIDs:h=[],encryptionUserIDs:f=[],signatureNotations:A=[],config:d,...p}){if(yo(d={...N,...d}),fo(e),po(s),t=mo(t),r=mo(r),n=mo(n),c=mo(c),l=mo(l),h=mo(h),f=mo(f),A=mo(A),p.detached)throw new Error("The `detached` option has been removed from openpgp.encrypt, separately call openpgp.sign instead. Don't forget to remove the `privateKeys` option as well.");if(p.publicKeys)throw new Error("The `publicKeys` option has been removed from openpgp.encrypt, pass `encryptionKeys` instead");if(p.privateKeys)throw new Error("The `privateKeys` option has been removed from openpgp.encrypt, pass `signingKeys` instead");if(void 0!==p.armor)throw new Error("The `armor` option has been removed from openpgp.encrypt, pass `format` instead.");const g=Object.keys(p);if(g.length>0)throw new Error(`Unknown option: ${g.join(", ")}`);r||(r=[]);try{if((r.length||a)&&(e=await e.sign(r,t,a,c,u,h,l,A,d)),e=e.compress(await async function(e=[],t=new Date,r=[],n=N){const i=Q.compression.uncompressed,s=n.preferredCompressionAlgorithm,a=await Promise.all(e.map(async function(e,i){const a=(await e.getPrimarySelfSignature(t,r[i],n)).preferredCompressionAlgorithms;return!!a&&a.indexOf(s)>=0}));return a.every(Boolean)?s:i}(t,u,f,d),d),e=await e.encrypt(t,n,i,o,l,u,f,d),"object"===s)return e;const p="armored"===s?e.armor(d):e.write();return await wo(p)}catch(e){throw L.wrapError("Error encrypting message",e)}}async function ao({message:e,decryptionKeys:t,passwords:r,sessionKeys:n,verificationKeys:i,expectSigned:s=!1,format:a="utf8",signature:o=null,date:c=new Date,config:l,...u}){if(yo(l={...N,...l}),fo(e),i=mo(i),t=mo(t),r=mo(r),n=mo(n),u.privateKeys)throw new Error("The `privateKeys` option has been removed from openpgp.decrypt, pass `decryptionKeys` instead");if(u.publicKeys)throw new Error("The `publicKeys` option has been removed from openpgp.decrypt, pass `verificationKeys` instead");const h=Object.keys(u);if(h.length>0)throw new Error(`Unknown option: ${h.join(", ")}`);try{const u=await e.decrypt(t,r,n,c,l);i||(i=[]);const h={};if(h.signatures=o?await u.verifyDetached(o,i,c,l):await u.verify(i,c,l),h.data="binary"===a?u.getLiteralData():u.getText(),h.filename=u.getFilename(),bo(h,e,...new Set([u,u.unwrapCompressed()])),s){if(0===i.length)throw new Error("Verification keys are required to verify message signatures");if(0===h.signatures.length)throw new Error("Message is not signed");h.data=w([h.data,T(async()=>(await L.anyPromise(h.signatures.map(e=>e.verified)),"binary"===a?new Uint8Array:""))])}return h.data=await wo(h.data),h}catch(e){throw L.wrapError("Error decrypting message",e)}}async function oo({message:e,signingKeys:t,recipientKeys:r=[],format:n="armored",detached:i=!1,signingKeyIDs:s=[],date:a=new Date,signingUserIDs:o=[],recipientUserIDs:c=[],signatureNotations:l=[],config:u,...h}){if(yo(u={...N,...u}),Ao(e),po(n),t=mo(t),s=mo(s),o=mo(o),r=mo(r),c=mo(c),l=mo(l),h.privateKeys)throw new Error("The `privateKeys` option has been removed from openpgp.sign, pass `signingKeys` instead");if(void 0!==h.armor)throw new Error("The `armor` option has been removed from openpgp.sign, pass `format` instead.");const f=Object.keys(h);if(f.length>0)throw new Error(`Unknown option: ${f.join(", ")}`);if(e instanceof za&&"binary"===n)throw new Error("Cannot return signed cleartext message in binary format");if(e instanceof za&&i)throw new Error("Cannot detach-sign a cleartext message");if(!t||0===t.length)throw new Error("No signing keys provided");try{let h;return h=i?await e.signDetached(t,r,void 0,s,a,o,c,l,u):await e.sign(t,r,void 0,s,a,o,c,l,u),"object"===n?h:(h="armored"===n?h.armor(u):h.write(),i&&(h=B(e.packets.write(),async(e,t)=>{await Promise.all([b(h,t),P(e).catch(()=>{})])})),await wo(h))}catch(e){throw L.wrapError("Error signing message",e)}}async function co({message:e,verificationKeys:t,expectSigned:r=!1,format:n="utf8",signature:i=null,date:s=new Date,config:a,...o}){if(yo(a={...N,...a}),Ao(e),t=mo(t),o.publicKeys)throw new Error("The `publicKeys` option has been removed from openpgp.verify, pass `verificationKeys` instead");const c=Object.keys(o);if(c.length>0)throw new Error(`Unknown option: ${c.join(", ")}`);if(e instanceof za&&"binary"===n)throw new Error("Can't return cleartext message data as binary");if(e instanceof za&&i)throw new Error("Can't verify detached cleartext signature");try{const o={};if(o.signatures=i?await e.verifyDetached(i,t,s,a):await e.verify(t,s,a),o.data="binary"===n?e.getLiteralData():e.getText(),e.fromStream&&!i&&bo(o,...new Set([e,e.unwrapCompressed()])),r){if(0===o.signatures.length)throw new Error("Message is not signed");o.data=w([o.data,T(async()=>(await L.anyPromise(o.signatures.map(e=>e.verified)),"binary"===n?new Uint8Array:""))])}return o.data=await wo(o.data),o}catch(e){throw L.wrapError("Error verifying signed message",e)}}async function lo({encryptionKeys:e,date:t=new Date,encryptionUserIDs:r=[],config:n,...i}){if(yo(n={...N,...n}),e=mo(e),r=mo(r),i.publicKeys)throw new Error("The `publicKeys` option has been removed from openpgp.generateSessionKey, pass `encryptionKeys` instead");const s=Object.keys(i);if(s.length>0)throw new Error(`Unknown option: ${s.join(", ")}`);try{return await Ya.generateSessionKey(e,t,r,n)}catch(e){throw L.wrapError("Error generating session key",e)}}async function uo({data:e,algorithm:t,aeadAlgorithm:r,encryptionKeys:n,passwords:i,format:s="armored",wildcard:a=!1,encryptionKeyIDs:o=[],date:c=new Date,encryptionUserIDs:l=[],config:u,...h}){if(yo(u={...N,...u}),function(e){if(!L.isUint8Array(e))throw new Error("Parameter [data] must be of type Uint8Array")}(e),function(e){if(!L.isString(e))throw new Error("Parameter [algorithm] must be of type String")}(t),po(s),n=mo(n),i=mo(i),o=mo(o),l=mo(l),h.publicKeys)throw new Error("The `publicKeys` option has been removed from openpgp.encryptSessionKey, pass `encryptionKeys` instead");const f=Object.keys(h);if(f.length>0)throw new Error(`Unknown option: ${f.join(", ")}`);if(!(n&&0!==n.length||i&&0!==i.length))throw new Error("No encryption keys or passwords provided.");try{return Eo(await Ya.encryptSessionKey(e,t,r,n,i,a,o,c,l,u),s,u)}catch(e){throw L.wrapError("Error encrypting session key",e)}}async function ho({message:e,decryptionKeys:t,passwords:r,date:n=new Date,config:i,...s}){if(yo(i={...N,...i}),fo(e),t=mo(t),r=mo(r),s.privateKeys)throw new Error("The `privateKeys` option has been removed from openpgp.decryptSessionKeys, pass `decryptionKeys` instead");const a=Object.keys(s);if(a.length>0)throw new Error(`Unknown option: ${a.join(", ")}`);try{return await e.decryptSessionKeys(t,r,void 0,n,i)}catch(e){throw L.wrapError("Error decrypting session keys",e)}}function fo(e){if(!(e instanceof Ya))throw new Error("Parameter [message] needs to be of type Message")}function Ao(e){if(!(e instanceof za||e instanceof Ya))throw new Error("Parameter [message] needs to be of type Message or CleartextMessage")}function po(e){if("armored"!==e&&"binary"!==e&&"object"!==e)throw new Error(`Unsupported format ${e}`)}const go=Object.keys(N).length;function yo(e){const t=Object.keys(e);if(t.length!==go)for(const e of t)if(void 0===N[e])throw new Error(`Unknown config property: ${e}`)}function mo(e){return e&&!L.isArray(e)&&(e=[e]),e}async function wo(e){return"array"===L.isStream(e)?P(e):e}function bo(e,t,...r){e.data=B(t.packets.stream,async(t,n)=>{await b(e.data,n,{preventClose:!0});const i=M(n);try{await P(t,e=>e),await Promise.all(r.map(e=>P(e.packets.stream,e=>e))),await i.close()}catch(e){await i.abort(e)}})}function Eo(e,t,r){switch(t){case"object":return e;case"armored":return e.armor(r);case"binary":return e.write();default:throw new Error(`Unsupported format ${t}`)}}const vo="object"==typeof n&&"crypto"in n?n.crypto:void 0;function ko(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function Io(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function Bo(e,...t){if(!ko(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function Co(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.createHasher");Io(e.outputLen),Io(e.blockLen)}function So(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Do(e,t){Bo(e);const r=t.outputLen;if(e.length>>t}function Uo(e,t){return e<>>32-t>>>0}function To(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}const Fo=(()=>68===new Uint8Array(new Uint32Array([287454020]).buffer)[0])()?e=>e:function(e){for(let t=0;t"function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex)(),Ro=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Qo(e){if(Bo(e),Mo)return e.toHex();let t="";for(let r=0;r=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:void 0}function Oo(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);if(Mo)return Uint8Array.fromHex(e);const t=e.length,r=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);const n=new Uint8Array(r);for(let t=0,i=0;te().update(Lo(t)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}const Wo=jo;function Yo(e=32){if(vo&&"function"==typeof vo.getRandomValues)return vo.getRandomValues(new Uint8Array(e));if(vo&&"function"==typeof vo.randomBytes)return Uint8Array.from(vo.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}const Jo=BigInt(0),_o=BigInt(1);function qo(e,t=""){if("boolean"!=typeof e)throw new Error((t&&`"${t}"`)+"expected boolean, got type="+typeof e);return e}function Zo(e,t,r=""){const n=ko(e),i=e?.length,s=void 0!==t;if(!n||s&&i!==t)throw new Error((r&&`"${r}" `)+"expected Uint8Array"+(s?` of length ${t}`:"")+", got "+(n?`length=${i}`:"type="+typeof e));return e}function Vo(e){const t=e.toString(16);return 1&t.length?"0"+t:t}function zo(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);return""===e?Jo:BigInt("0x"+e)}function Xo(e){return zo(Qo(e))}function $o(e){return Bo(e),zo(Qo(Uint8Array.from(e).reverse()))}function ec(e,t){return Oo(e.toString(16).padStart(2*t,"0"))}function tc(e,t){return ec(e,t).reverse()}function rc(e,t,r){let n;if("string"==typeof t)try{n=Oo(t)}catch(t){throw new Error(e+" must be hex string or Uint8Array, cause: "+t)}else{if(!ko(t))throw new Error(e+" must be hex string or Uint8Array");n=Uint8Array.from(t)}const i=n.length;if("number"==typeof r&&i!==r)throw new Error(e+" of length "+r+" expected, got "+i);return n}function nc(e){return Uint8Array.from(e)}const ic=e=>"bigint"==typeof e&&Jo<=e;function sc(e,t,r,n){if(!function(e,t,r){return ic(e)&&ic(t)&&ic(r)&&t<=e&&eJo;e>>=_o,t+=1);return t}const oc=e=>(_o<n(e,t,!1)),Object.entries(r).forEach(([e,t])=>n(e,t,!0))}function lc(e){const t=new WeakMap;return(r,...n)=>{const i=t.get(r);if(void 0!==i)return i;const s=e(r,...n);return t.set(r,s),s}}const uc=BigInt(0),hc=BigInt(1),fc=BigInt(2),Ac=BigInt(3),dc=BigInt(4),pc=BigInt(5),gc=BigInt(7),yc=BigInt(8),mc=BigInt(9),wc=BigInt(16);function bc(e,t){const r=e%t;return r>=uc?r:t+r}function Ec(e,t,r){let n=e;for(;t-- >uc;)n*=n,n%=r;return n}function vc(e,t){if(e===uc)throw new Error("invert: expected non-zero number");if(t<=uc)throw new Error("invert: expected positive modulus, got "+t);let r=bc(e,t),n=t,i=uc,s=hc;for(;r!==uc;){const e=n%r,t=i-s*(n/r);n=r,r=e,i=s,s=t}if(n!==hc)throw new Error("invert: does not exist");return bc(i,t)}function kc(e,t,r){if(!e.eql(e.sqr(t),r))throw new Error("Cannot find square root")}function Ic(e,t){const r=(e.ORDER+hc)/dc,n=e.pow(t,r);return kc(e,n,t),n}function Bc(e,t){const r=(e.ORDER-pc)/yc,n=e.mul(t,fc),i=e.pow(n,r),s=e.mul(t,i),a=e.mul(e.mul(s,fc),i),o=e.mul(s,e.sub(a,e.ONE));return kc(e,o,t),o}function Cc(e){if(e1e3)throw new Error("Cannot find square root: probably non-prime P");if(1===r)return Ic;let s=i.pow(n,t);const a=(t+hc)/fc;return function(e,n){if(e.is0(n))return n;if(1!==xc(e,n))throw new Error("Cannot find square root");let i=r,o=e.mul(e.ONE,s),c=e.pow(n,t),l=e.pow(n,a);for(;!e.eql(c,e.ONE);){if(e.is0(c))return e.ZERO;let t=1,r=e.sqr(c);for(;!e.eql(r,e.ONE);)if(t++,r=e.sqr(r),t===i)throw new Error("Cannot find square root");const n=hc<e.is0(r)?t:(n[i]=t,e.mul(t,r)),e.ONE),s=e.inv(i);return t.reduceRight((t,r,i)=>e.is0(r)?t:(n[i]=e.mul(t,n[i]),e.mul(t,r)),s),n}function xc(e,t){const r=(e.ORDER-hc)/fc,n=e.pow(t,r),i=e.eql(n,e.ONE),s=e.eql(n,e.ZERO),a=e.eql(n,e.neg(e.ONE));if(!i&&!s&&!a)throw new Error("invalid Legendre symbol result");return i?1:s?0:-1}function Kc(e,t){void 0!==t&&Io(t);const r=void 0!==t?t:e.toString(2).length;return{nBitLength:r,nByteLength:Math.ceil(r/8)}}function Pc(e,t,r=!1,n={}){if(e<=uc)throw new Error("invalid field: expected ORDER > 0, got "+e);let i,s,a,o=!1;if("object"==typeof t&&null!=t){if(n.sqrt||r)throw new Error("cannot specify opts in two arguments");const e=t;e.BITS&&(i=e.BITS),e.sqrt&&(s=e.sqrt),"boolean"==typeof e.isLE&&(r=e.isLE),"boolean"==typeof e.modFromBytes&&(o=e.modFromBytes),a=e.allowedLengths}else"number"==typeof t&&(i=t),n.sqrt&&(s=n.sqrt);const{nBitLength:c,nByteLength:l}=Kc(e,i);if(l>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let u;const h=Object.freeze({ORDER:e,isLE:r,BITS:c,BYTES:l,MASK:oc(c),ZERO:uc,ONE:hc,allowedLengths:a,create:t=>bc(t,e),isValid:t=>{if("bigint"!=typeof t)throw new Error("invalid field element: expected bigint, got "+typeof t);return uc<=t&&te===uc,isValidNot0:e=>!h.is0(e)&&h.isValid(e),isOdd:e=>(e&hc)===hc,neg:t=>bc(-t,e),eql:(e,t)=>e===t,sqr:t=>bc(t*t,e),add:(t,r)=>bc(t+r,e),sub:(t,r)=>bc(t-r,e),mul:(t,r)=>bc(t*r,e),pow:(e,t)=>function(e,t,r){if(ruc;)r&hc&&(n=e.mul(n,i)),i=e.sqr(i),r>>=hc;return n}(h,e,t),div:(t,r)=>bc(t*vc(r,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>vc(t,e),sqrt:s||(t=>{return u||(u=(r=e)%dc===Ac?Ic:r%yc===pc?Bc:r%wc===mc?function(e){const t=Pc(e),r=Cc(e),n=r(t,t.neg(t.ONE)),i=r(t,n),s=r(t,t.neg(n)),a=(e+gc)/wc;return(e,t)=>{let r=e.pow(t,a),o=e.mul(r,n);const c=e.mul(r,i),l=e.mul(r,s),u=e.eql(e.sqr(o),t),h=e.eql(e.sqr(c),t);r=e.cmov(r,o,u),o=e.cmov(l,c,h);const f=e.eql(e.sqr(o),t),A=e.cmov(r,o,f);return kc(e,A,t),A}}(r):Cc(r)),u(h,t);var r}),toBytes:e=>r?tc(e,l):ec(e,l),fromBytes:(t,n=!0)=>{if(a){if(!a.includes(t.length)||t.length>l)throw new Error("Field.fromBytes: expected "+a+" bytes, got "+t.length);const e=new Uint8Array(l);e.set(t,r?0:e.length-t.length),t=e}if(t.length!==l)throw new Error("Field.fromBytes: expected "+l+" bytes, got "+t.length);let i=r?$o(t):Xo(t);if(o&&(i=bc(i,e)),!n&&!h.isValid(i))throw new Error("invalid field element: outside of range 0..ORDER");return i},invertBatch:e=>Dc(h,e),cmov:(e,t,r)=>r?t:e});return Object.freeze(h)}function Uc(e){if("bigint"!=typeof e)throw new Error("field order must be bigint");const t=e.toString(2).length;return Math.ceil(t/8)}function Tc(e){const t=Uc(e);return t+Math.ceil(t/2)}function Fc(e,t,r){return e&t^~e&r}function Mc(e,t,r){return e&t^e&r^t&r}class Rc extends Ho{constructor(e,t,r,n){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=t,this.padOffset=r,this.isLE=n,this.buffer=new Uint8Array(e),this.view=Ko(this.buffer)}update(e){So(this),Bo(e=Lo(e));const{view:t,buffer:r,blockLen:n}=this,i=e.length;for(let s=0;sn-s&&(this.process(r,0),s=0);for(let e=s;e>i&s),o=Number(r&s),c=n?4:0,l=n?0:4;e.setUint32(t+c,a,n),e.setUint32(t+l,o,n)}(r,n-8,BigInt(8*this.length),i),this.process(r,0);const a=Ko(e),o=this.outputLen;if(o%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const c=o/4,l=this.get();if(c>l.length)throw new Error("_sha2: outputLen bigger than state");for(let e=0;e>Hc&Gc)}:{h:0|Number(e>>Hc&Gc),l:0|Number(e&Gc)}}function Wc(e,t=!1){const r=e.length;let n=new Uint32Array(r),i=new Uint32Array(r);for(let s=0;se>>>r,Jc=(e,t,r)=>e<<32-r|t>>>r,_c=(e,t,r)=>e>>>r|t<<32-r,qc=(e,t,r)=>e<<32-r|t>>>r,Zc=(e,t,r)=>e<<64-r|t>>>r-32,Vc=(e,t,r)=>e>>>r-32|t<<64-r;function zc(e,t,r,n){const i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:0|i}}const Xc=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),$c=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,el=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),tl=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,rl=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),nl=(e,t,r,n,i,s)=>t+r+n+i+s+(e/2**32|0)|0,il=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),sl=new Uint32Array(64);class al extends Rc{constructor(e=32){super(64,e,8,!1),this.A=0|Qc[0],this.B=0|Qc[1],this.C=0|Qc[2],this.D=0|Qc[3],this.E=0|Qc[4],this.F=0|Qc[5],this.G=0|Qc[6],this.H=0|Qc[7]}get(){const{A:e,B:t,C:r,D:n,E:i,F:s,G:a,H:o}=this;return[e,t,r,n,i,s,a,o]}set(e,t,r,n,i,s,a,o){this.A=0|e,this.B=0|t,this.C=0|r,this.D=0|n,this.E=0|i,this.F=0|s,this.G=0|a,this.H=0|o}process(e,t){for(let r=0;r<16;r++,t+=4)sl[r]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=sl[e-15],r=sl[e-2],n=Po(t,7)^Po(t,18)^t>>>3,i=Po(r,17)^Po(r,19)^r>>>10;sl[e]=i+sl[e-7]+n+sl[e-16]|0}let{A:r,B:n,C:i,D:s,E:a,F:o,G:c,H:l}=this;for(let e=0;e<64;e++){const t=l+(Po(a,6)^Po(a,11)^Po(a,25))+Fc(a,o,c)+il[e]+sl[e]|0,u=(Po(r,2)^Po(r,13)^Po(r,22))+Mc(r,n,i)|0;l=c,c=o,o=a,a=s+t|0,s=i,i=n,n=r,r=t+u|0}r=r+this.A|0,n=n+this.B|0,i=i+this.C|0,s=s+this.D|0,a=a+this.E|0,o=o+this.F|0,c=c+this.G|0,l=l+this.H|0,this.set(r,n,i,s,a,o,c,l)}roundClean(){xo(sl)}destroy(){this.set(0,0,0,0,0,0,0,0),xo(this.buffer)}}class ol extends al{constructor(){super(28),this.A=0|Nc[0],this.B=0|Nc[1],this.C=0|Nc[2],this.D=0|Nc[3],this.E=0|Nc[4],this.F=0|Nc[5],this.G=0|Nc[6],this.H=0|Nc[7]}}const cl=(()=>Wc(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))))(),ll=(()=>cl[0])(),ul=(()=>cl[1])(),hl=new Uint32Array(80),fl=new Uint32Array(80);class Al extends Rc{constructor(e=64){super(128,e,16,!1),this.Ah=0|Lc[0],this.Al=0|Lc[1],this.Bh=0|Lc[2],this.Bl=0|Lc[3],this.Ch=0|Lc[4],this.Cl=0|Lc[5],this.Dh=0|Lc[6],this.Dl=0|Lc[7],this.Eh=0|Lc[8],this.El=0|Lc[9],this.Fh=0|Lc[10],this.Fl=0|Lc[11],this.Gh=0|Lc[12],this.Gl=0|Lc[13],this.Hh=0|Lc[14],this.Hl=0|Lc[15]}get(){const{Ah:e,Al:t,Bh:r,Bl:n,Ch:i,Cl:s,Dh:a,Dl:o,Eh:c,El:l,Fh:u,Fl:h,Gh:f,Gl:A,Hh:d,Hl:p}=this;return[e,t,r,n,i,s,a,o,c,l,u,h,f,A,d,p]}set(e,t,r,n,i,s,a,o,c,l,u,h,f,A,d,p){this.Ah=0|e,this.Al=0|t,this.Bh=0|r,this.Bl=0|n,this.Ch=0|i,this.Cl=0|s,this.Dh=0|a,this.Dl=0|o,this.Eh=0|c,this.El=0|l,this.Fh=0|u,this.Fl=0|h,this.Gh=0|f,this.Gl=0|A,this.Hh=0|d,this.Hl=0|p}process(e,t){for(let r=0;r<16;r++,t+=4)hl[r]=e.getUint32(t),fl[r]=e.getUint32(t+=4);for(let e=16;e<80;e++){const t=0|hl[e-15],r=0|fl[e-15],n=_c(t,r,1)^_c(t,r,8)^Yc(t,0,7),i=qc(t,r,1)^qc(t,r,8)^Jc(t,r,7),s=0|hl[e-2],a=0|fl[e-2],o=_c(s,a,19)^Zc(s,a,61)^Yc(s,0,6),c=qc(s,a,19)^Vc(s,a,61)^Jc(s,a,6),l=el(i,c,fl[e-7],fl[e-16]),u=tl(l,n,o,hl[e-7],hl[e-16]);hl[e]=0|u,fl[e]=0|l}let{Ah:r,Al:n,Bh:i,Bl:s,Ch:a,Cl:o,Dh:c,Dl:l,Eh:u,El:h,Fh:f,Fl:A,Gh:d,Gl:p,Hh:g,Hl:y}=this;for(let e=0;e<80;e++){const t=_c(u,h,14)^_c(u,h,18)^Zc(u,h,41),m=qc(u,h,14)^qc(u,h,18)^Vc(u,h,41),w=u&f^~u&d,b=rl(y,m,h&A^~h&p,ul[e],fl[e]),E=nl(b,g,t,w,ll[e],hl[e]),v=0|b,k=_c(r,n,28)^Zc(r,n,34)^Zc(r,n,39),I=qc(r,n,28)^Vc(r,n,34)^Vc(r,n,39),B=r&i^r&a^i&a,C=n&s^n&o^s&o;g=0|d,y=0|p,d=0|f,p=0|A,f=0|u,A=0|h,({h:u,l:h}=zc(0|c,0|l,0|E,0|v)),c=0|a,l=0|o,a=0|i,o=0|s,i=0|r,s=0|n;const S=Xc(v,I,C);r=$c(S,E,k,B),n=0|S}({h:r,l:n}=zc(0|this.Ah,0|this.Al,0|r,0|n)),({h:i,l:s}=zc(0|this.Bh,0|this.Bl,0|i,0|s)),({h:a,l:o}=zc(0|this.Ch,0|this.Cl,0|a,0|o)),({h:c,l}=zc(0|this.Dh,0|this.Dl,0|c,0|l)),({h:u,l:h}=zc(0|this.Eh,0|this.El,0|u,0|h)),({h:f,l:A}=zc(0|this.Fh,0|this.Fl,0|f,0|A)),({h:d,l:p}=zc(0|this.Gh,0|this.Gl,0|d,0|p)),({h:g,l:y}=zc(0|this.Hh,0|this.Hl,0|g,0|y)),this.set(r,n,i,s,a,o,c,l,u,h,f,A,d,p,g,y)}roundClean(){xo(hl,fl)}destroy(){xo(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class dl extends Al{constructor(){super(48),this.Ah=0|Oc[0],this.Al=0|Oc[1],this.Bh=0|Oc[2],this.Bl=0|Oc[3],this.Ch=0|Oc[4],this.Cl=0|Oc[5],this.Dh=0|Oc[6],this.Dl=0|Oc[7],this.Eh=0|Oc[8],this.El=0|Oc[9],this.Fh=0|Oc[10],this.Fl=0|Oc[11],this.Gh=0|Oc[12],this.Gl=0|Oc[13],this.Hh=0|Oc[14],this.Hl=0|Oc[15]}}const pl=jo(()=>new al),gl=jo(()=>new ol),yl=jo(()=>new Al),ml=jo(()=>new dl);class wl extends Ho{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,Co(e);const r=Lo(t);if(this.iHash=e.create(),"function"!=typeof this.iHash.update)throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const n=this.blockLen,i=new Uint8Array(n);i.set(r.length>n?e.create().update(r).digest():r);for(let e=0;enew wl(e,t).update(r).digest();bl.create=(e,t)=>new wl(e,t);const El=BigInt(0),vl=BigInt(1);function kl(e,t){const r=t.negate();return e?r:t}function Il(e,t){const r=Dc(e.Fp,t.map(e=>e.Z));return t.map((t,n)=>e.fromAffine(t.toAffine(r[n])))}function Bl(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function Cl(e,t){Bl(e,t);const r=2**e;return{windows:Math.ceil(t/e)+1,windowSize:2**(e-1),mask:oc(e),maxNumber:r,shiftBy:BigInt(e)}}function Sl(e,t,r){const{windowSize:n,mask:i,maxNumber:s,shiftBy:a}=r;let o=Number(e&i),c=e>>a;o>n&&(o-=s,c+=vl);const l=t*n;return{nextN:c,offset:l+Math.abs(o)-1,isZero:0===o,isNeg:o<0,isNegF:t%2!=0,offsetF:l}}const Dl=new WeakMap,xl=new WeakMap;function Kl(e){return xl.get(e)||1}function Pl(e){if(e!==El)throw new Error("invalid wNAF")}class Ul{constructor(e,t){this.BASE=e.BASE,this.ZERO=e.ZERO,this.Fn=e.Fn,this.bits=t}_unsafeLadder(e,t,r=this.ZERO){let n=e;for(;t>El;)t&vl&&(r=r.add(n)),n=n.double(),t>>=vl;return r}precomputeWindow(e,t){const{windows:r,windowSize:n}=Cl(t,this.bits),i=[];let s=e,a=s;for(let e=0;e{if(!(e instanceof t))throw new Error("invalid point at index "+r)})}(r,e),function(e,t){if(!Array.isArray(e))throw new Error("array of scalars expected");e.forEach((e,r)=>{if(!t.isValid(e))throw new Error("invalid scalar at index "+r)})}(n,t);const i=r.length,s=n.length;if(i!==s)throw new Error("arrays of points and scalars must have equal length");const a=e.ZERO,o=ac(BigInt(i));let c=1;o>12?c=o-3:o>4?c=o-2:o>0&&(c=2);const l=oc(c),u=new Array(Number(l)+1).fill(a);let h=a;for(let e=Math.floor((t.BITS-1)/c)*c;e>=0;e-=c){u.fill(a);for(let t=0;t>BigInt(e)&l);u[s]=u[s].add(r[t])}let t=a;for(let e=u.length-1,r=a;e>0;e--)r=r.add(u[e]),t=t.add(r);if(h=h.add(t),0!==e)for(let e=0;e(e[t]="function",e),{ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"}))}(t),t}return Pc(e,{isLE:r})}function Ml(e,t,r={},n){if(void 0===n&&(n="edwards"===e),!t||"object"!=typeof t)throw new Error(`expected valid ${e} CURVE object`);for(const e of["p","n","h"]){const r=t[e];if(!("bigint"==typeof r&&r>El))throw new Error(`CURVE.${e} must be positive bigint`)}const i=Fl(t.p,r.Fp,n),s=Fl(t.n,r.Fn,n),a=["Gx","Gy","a","weierstrass"===e?"b":"d"];for(const e of a)if(!i.isValid(t[e]))throw new Error(`CURVE.${e} must be valid field element of CURVE.Fp`);return{CURVE:t=Object.freeze(Object.assign({},t)),Fp:i,Fn:s}}const Rl=(e,t)=>(e+(e>=0?t:-t)/jl)/t;function Ql(e){if(!["compact","recovered","der"].includes(e))throw new Error('Signature format must be "compact", "recovered", or "der"');return e}function Nl(e,t){const r={};for(let n of Object.keys(t))r[n]=void 0===e[n]?t[n]:e[n];return qo(r.lowS,"lowS"),qo(r.prehash,"prehash"),void 0!==r.format&&Ql(r.format),r}class Ol extends Error{constructor(e=""){super(e)}}const Ll={Err:Ol,_tlv:{encode:(e,t)=>{const{Err:r}=Ll;if(e<0||e>256)throw new r("tlv.encode: wrong tag");if(1&t.length)throw new r("tlv.encode: unpadded data");const n=t.length/2,i=Vo(n);if(i.length/2&128)throw new r("tlv.encode: long form length too big");const s=n>127?Vo(i.length/2|128):"";return Vo(e)+s+i+t},decode(e,t){const{Err:r}=Ll;let n=0;if(e<0||e>256)throw new r("tlv.encode: wrong tag");if(t.length<2||t[n++]!==e)throw new r("tlv.decode: wrong tlv");const i=t[n++];let s=0;if(128&i){const e=127&i;if(!e)throw new r("tlv.decode(long): indefinite length not supported");if(e>4)throw new r("tlv.decode(long): byte length is too big");const a=t.subarray(n,n+e);if(a.length!==e)throw new r("tlv.decode: length bytes not complete");if(0===a[0])throw new r("tlv.decode(long): zero leftmost byte");for(const e of a)s=s<<8|e;if(n+=e,s<128)throw new r("tlv.decode(long): not minimal encoding")}else s=i;const a=t.subarray(n,n+s);if(a.length!==s)throw new r("tlv.decode: wrong value length");return{v:a,l:t.subarray(n+s)}}},_int:{encode(e){const{Err:t}=Ll;if(ebl(t,e,Go(...r))),{Fp:s,Fn:a}=e,{ORDER:o,BITS:c}=a,{keygen:l,getPublicKey:u,getSharedSecret:h,utils:f,lengths:A}=function(e,t={}){const{Fn:r}=e,n=t.randomBytes||Yo,i=Object.assign(ql(e.Fp,r),{seed:Tc(r.ORDER)});function s(e){try{return!!Jl(r,e)}catch(e){return!1}}function a(e=n(i.seed)){return function(e,t,r=!1){const n=e.length,i=Uc(t),s=Tc(t);if(n<16||n1024)throw new Error("expected "+s+"-1024 bytes of input, got "+n);const a=bc(r?$o(e):Xo(e),t-hc)+hc;return r?tc(a,i):ec(a,i)}(Zo(e,i.seed,"seed"),r.ORDER)}function o(t,n=!0){return e.BASE.multiply(Jl(r,t)).toBytes(n)}function c(t){if("bigint"==typeof t)return!1;if(t instanceof e)return!0;const{secretKey:n,publicKey:s,publicKeyUncompressed:a}=i;if(r.allowedLengths||n===s)return;const o=rc("key",t).length;return o===s||o===a}const l={isValidSecretKey:s,isValidPublicKey:function(t,r){const{publicKey:n,publicKeyUncompressed:s}=i;try{const i=t.length;return!(!0===r&&i!==n||!1===r&&i!==s||!e.fromBytes(t))}catch(e){return!1}},randomSecretKey:a,isValidPrivateKey:s,randomPrivateKey:a,normPrivateKeyToScalar:e=>Jl(r,e),precompute:(t=8,r=e.BASE)=>r.precompute(t,!1)};return Object.freeze({getPublicKey:o,getSharedSecret:function(t,n,i=!0){if(!0===c(t))throw new Error("first arg must be private key");if(!1===c(n))throw new Error("second arg must be public key");const s=Jl(r,t);return e.fromHex(n).multiply(s).toBytes(i)},keygen:function(e){const t=a(e);return{secretKey:t,publicKey:o(t)}},Point:e,utils:l,lengths:i})}(e,r),d={prehash:!1,lowS:"boolean"==typeof r.lowS&&r.lowS,format:void 0,extraEntropy:!1},p="compact";function g(e){return e>o>>Hl}function y(e,t){if(!a.isValidNot0(t))throw new Error(`invalid signature ${e}: out of range 1..Point.Fn.ORDER`);return t}class m{constructor(e,t,r){this.r=y("r",e),this.s=y("s",t),null!=r&&(this.recovery=r),Object.freeze(this)}static fromBytes(e,t=p){let r;if(function(e,t){Ql(t);const r=A.signature;Zo(e,"compact"===t?r:"recovered"===t?r+1:void 0,`${t} signature`)}(e,t),"der"===t){const{r:t,s:r}=Ll.toSig(Zo(e));return new m(t,r)}"recovered"===t&&(r=e[0],t="compact",e=e.subarray(1));const n=a.BYTES,i=e.subarray(0,n),s=e.subarray(n,2*n);return new m(a.fromBytes(i),a.fromBytes(s),r)}static fromHex(e,t){return this.fromBytes(Oo(e),t)}addRecoveryBit(e){return new m(this.r,this.s,e)}recoverPublicKey(t){const r=s.ORDER,{r:n,s:i,recovery:c}=this;if(null==c||![0,1,2,3].includes(c))throw new Error("recovery id invalid");if(o*jl1)throw new Error("recovery id is ambiguous for h>1 curve");const l=2===c||3===c?n+o:n;if(!s.isValid(l))throw new Error("recovery id 2 or 3 invalid");const u=s.toBytes(l),h=e.fromBytes(Go(_l(!(1&c)),u)),f=a.inv(l),A=b(rc("msgHash",t)),d=a.create(-A*f),p=a.create(i*f),g=e.BASE.multiplyUnsafe(d).add(h.multiplyUnsafe(p));if(g.is0())throw new Error("point at infinify");return g.assertValidity(),g}hasHighS(){return g(this.s)}toBytes(e=p){if(Ql(e),"der"===e)return Oo(Ll.hexFromSig(this));const t=a.toBytes(this.r),r=a.toBytes(this.s);if("recovered"===e){if(null==this.recovery)throw new Error("recovery bit must be present");return Go(Uint8Array.of(this.recovery),t,r)}return Go(t,r)}toHex(e){return Qo(this.toBytes(e))}assertValidity(){}static fromCompact(e){return m.fromBytes(rc("sig",e),"compact")}static fromDER(e){return m.fromBytes(rc("sig",e),"der")}normalizeS(){return this.hasHighS()?new m(this.r,a.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return Qo(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return Qo(this.toBytes("compact"))}}const w=r.bits2int||function(e){if(e.length>8192)throw new Error("input is too large");const t=Xo(e),r=8*e.length-c;return r>0?t>>BigInt(r):t},b=r.bits2int_modN||function(e){return a.create(w(e))},E=oc(c);function v(e){return sc("num < 2^"+c,e,Gl,E),a.toBytes(e)}function k(e,r){return Zo(e,void 0,"message"),r?Zo(t(e),void 0,"prehashed message"):e}return Object.freeze({keygen:l,getPublicKey:u,getSharedSecret:h,utils:f,lengths:A,Point:e,sign:function(r,s,o={}){r=rc("message",r);const{seed:c,k2sig:l}=function(t,r,i){if(["recovered","canonical"].some(e=>e in i))throw new Error("sign() legacy options not supported");const{lowS:s,prehash:o,extraEntropy:c}=Nl(i,d);t=k(t,o);const l=b(t),u=Jl(a,r),h=[v(u),v(l)];if(null!=c&&!1!==c){const e=!0===c?n(A.secretKey):c;h.push(rc("extraEntropy",e))}const f=Go(...h),p=l;return{seed:f,k2sig:function(t){const r=w(t);if(!a.isValidNot0(r))return;const n=a.inv(r),i=e.BASE.multiply(r).toAffine(),o=a.create(i.x);if(o===Gl)return;const c=a.create(n*a.create(p+o*u));if(c===Gl)return;let l=(i.x===o?0:2)|Number(i.y&Hl),h=c;return s&&g(c)&&(h=a.neg(c),l^=1),new m(o,h,l)}}}(r,s,o),u=function(e,t,r){if("number"!=typeof e||e<2)throw new Error("hashLen must be a number");if("number"!=typeof t||t<2)throw new Error("qByteLen must be a number");if("function"!=typeof r)throw new Error("hmacFn must be a function");const n=e=>new Uint8Array(e),i=e=>Uint8Array.of(e);let s=n(e),a=n(e),o=0;const c=()=>{s.fill(1),a.fill(0),o=0},l=(...e)=>r(a,s,...e),u=(e=n(0))=>{a=l(i(0),e),s=l(),0!==e.length&&(a=l(i(1),e),s=l())},h=()=>{if(o++>=1e3)throw new Error("drbg: tried 1000 values");let e=0;const r=[];for(;e{let r;for(c(),u(e);!(r=t(h()));)u();return c(),r}}(t.outputLen,a.BYTES,i);return u(c,l)},verify:function(t,r,n,i={}){const{lowS:s,prehash:o,format:c}=Nl(i,d);if(n=rc("publicKey",n),r=k(rc("message",r),o),"strict"in i)throw new Error("options.strict was renamed to lowS");const l=void 0===c?function(e){let t;const r="string"==typeof e||ko(e),n=!r&&null!==e&&"object"==typeof e&&"bigint"==typeof e.r&&"bigint"==typeof e.s;if(!r&&!n)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(n)t=new m(e.r,e.s);else if(r){try{t=m.fromBytes(rc("sig",e),"der")}catch(e){if(!(e instanceof Ll.Err))throw e}if(!t)try{t=m.fromBytes(rc("sig",e),"compact")}catch(e){return!1}}return t||!1}(t):m.fromBytes(rc("sig",t),c);if(!1===l)return!1;try{const t=e.fromBytes(n);if(s&&l.hasHighS())return!1;const{r:i,s:o}=l,c=b(r),u=a.inv(o),h=a.create(c*u),f=a.create(i*u),A=e.BASE.multiplyUnsafe(h).add(t.multiplyUnsafe(f));return!A.is0()&&a.create(A.x)===i}catch(e){return!1}},recoverPublicKey:function(e,t,r={}){const{prehash:n}=Nl(r,d);return t=k(t,n),m.fromBytes(e,"recovered").recoverPublicKey(t).toBytes()},Signature:m,hash:t})}function Vl(e){const{CURVE:t,curveOpts:r,hash:n,ecdsaOpts:i}=function(e){const{CURVE:t,curveOpts:r}=function(e){const t={a:e.a,b:e.b,p:e.Fp.ORDER,n:e.n,h:e.h,Gx:e.Gx,Gy:e.Gy},r=e.Fp;let n=e.allowedPrivateKeyLengths?Array.from(new Set(e.allowedPrivateKeyLengths.map(e=>Math.ceil(e/2)))):void 0;return{CURVE:t,curveOpts:{Fp:r,Fn:Pc(t.n,{BITS:e.nBitLength,allowedLengths:n,modFromBytes:e.wrapPrivateKey}),allowInfinityPoint:e.allowInfinityPoint,endo:e.endo,isTorsionFree:e.isTorsionFree,clearCofactor:e.clearCofactor,fromBytes:e.fromBytes,toBytes:e.toBytes}}}(e),n={hmac:e.hmac,randomBytes:e.randomBytes,lowS:e.lowS,bits2int:e.bits2int,bits2int_modN:e.bits2int_modN};return{CURVE:t,curveOpts:r,hash:e.hash,ecdsaOpts:n}}(e);return function(e,t){const r=t.Point;return Object.assign({},t,{ProjectivePoint:r,CURVE:Object.assign({},e,Kc(r.Fn.ORDER,r.Fn.BITS))})}(e,Zl(function(e,t={}){const r=Ml("weierstrass",e,t),{Fp:n,Fn:i}=r;let s=r.CURVE;const{h:a,n:o}=s;cc(t,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});const{endo:c}=t;if(c&&(!n.is0(s.a)||"bigint"!=typeof c.beta||!Array.isArray(c.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');const l=ql(n,i);function u(){if(!n.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}const h=t.toBytes||function(e,t,r){const{x:i,y:s}=t.toAffine(),a=n.toBytes(i);return qo(r,"isCompressed"),r?(u(),Go(_l(!n.isOdd(s)),a)):Go(Uint8Array.of(4),a,n.toBytes(s))},f=t.fromBytes||function(e){Zo(e,void 0,"Point");const{publicKey:t,publicKeyUncompressed:r}=l,i=e.length,s=e[0],a=e.subarray(1);if(i!==t||2!==s&&3!==s){if(i===r&&4===s){const e=n.BYTES,t=n.fromBytes(a.subarray(0,e)),r=n.fromBytes(a.subarray(e,2*e));if(!d(t,r))throw new Error("bad point: is not on curve");return{x:t,y:r}}throw new Error(`bad point: got length ${i}, expected compressed=${t} or uncompressed=${r}`)}{const e=n.fromBytes(a);if(!n.isValid(e))throw new Error("bad point: is not on curve, wrong x");const t=A(e);let r;try{r=n.sqrt(t)}catch(e){const t=e instanceof Error?": "+e.message:"";throw new Error("bad point: is not on curve, sqrt error"+t)}return u(),!(1&~s)!==n.isOdd(r)&&(r=n.neg(r)),{x:e,y:r}}};function A(e){const t=n.sqr(e),r=n.mul(t,e);return n.add(n.add(r,n.mul(e,s.a)),s.b)}function d(e,t){const r=n.sqr(t),i=A(e);return n.eql(r,i)}if(!d(s.Gx,s.Gy))throw new Error("bad curve params: generator point");const p=n.mul(n.pow(s.a,Wl),Yl),g=n.mul(n.sqr(s.b),BigInt(27));if(n.is0(n.add(p,g)))throw new Error("bad curve params: a or b");function y(e,t,r=!1){if(!n.isValid(t)||r&&n.is0(t))throw new Error(`bad point coordinate ${e}`);return t}function m(e){if(!(e instanceof k))throw new Error("ProjectivePoint expected")}function w(e){if(!c||!c.basises)throw new Error("no endo");return function(e,t,r){const[[n,i],[s,a]]=t,o=Rl(a*e,r),c=Rl(-i*e,r);let l=e-o*n-c*s,u=-o*i-c*a;const h=l=A||u=A)throw new Error("splitScalar (endomorphism): failed, k="+e);return{k1neg:h,k1:l,k2neg:f,k2:u}}(e,c.basises,i.ORDER)}const b=lc((e,t)=>{const{X:r,Y:i,Z:s}=e;if(n.eql(s,n.ONE))return{x:r,y:i};const a=e.is0();null==t&&(t=a?n.ONE:n.inv(s));const o=n.mul(r,t),c=n.mul(i,t),l=n.mul(s,t);if(a)return{x:n.ZERO,y:n.ZERO};if(!n.eql(l,n.ONE))throw new Error("invZ was invalid");return{x:o,y:c}}),E=lc(e=>{if(e.is0()){if(t.allowInfinityPoint&&!n.is0(e.Y))return;throw new Error("bad point: ZERO")}const{x:r,y:i}=e.toAffine();if(!n.isValid(r)||!n.isValid(i))throw new Error("bad point: x or y not field elements");if(!d(r,i))throw new Error("bad point: equation left != right");if(!e.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function v(e,t,r,i,s){return r=new k(n.mul(r.X,e),r.Y,r.Z),t=kl(i,t),r=kl(s,r),t.add(r)}class k{constructor(e,t,r){this.X=y("x",e),this.Y=y("y",t,!0),this.Z=y("z",r),Object.freeze(this)}static CURVE(){return s}static fromAffine(e){const{x:t,y:r}=e||{};if(!e||!n.isValid(t)||!n.isValid(r))throw new Error("invalid affine point");if(e instanceof k)throw new Error("projective point not allowed");return n.is0(t)&&n.is0(r)?k.ZERO:new k(t,r,n.ONE)}static fromBytes(e){const t=k.fromAffine(f(Zo(e,void 0,"point")));return t.assertValidity(),t}static fromHex(e){return k.fromBytes(rc("pointHex",e))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(e=8,t=!0){return B.createCache(this,e),t||this.multiply(Wl),this}assertValidity(){E(this)}hasEvenY(){const{y:e}=this.toAffine();if(!n.isOdd)throw new Error("Field doesn't support isOdd");return!n.isOdd(e)}equals(e){m(e);const{X:t,Y:r,Z:i}=this,{X:s,Y:a,Z:o}=e,c=n.eql(n.mul(t,o),n.mul(s,i)),l=n.eql(n.mul(r,o),n.mul(a,i));return c&&l}negate(){return new k(this.X,n.neg(this.Y),this.Z)}double(){const{a:e,b:t}=s,r=n.mul(t,Wl),{X:i,Y:a,Z:o}=this;let c=n.ZERO,l=n.ZERO,u=n.ZERO,h=n.mul(i,i),f=n.mul(a,a),A=n.mul(o,o),d=n.mul(i,a);return d=n.add(d,d),u=n.mul(i,o),u=n.add(u,u),c=n.mul(e,u),l=n.mul(r,A),l=n.add(c,l),c=n.sub(f,l),l=n.add(f,l),l=n.mul(c,l),c=n.mul(d,c),u=n.mul(r,u),A=n.mul(e,A),d=n.sub(h,A),d=n.mul(e,d),d=n.add(d,u),u=n.add(h,h),h=n.add(u,h),h=n.add(h,A),h=n.mul(h,d),l=n.add(l,h),A=n.mul(a,o),A=n.add(A,A),h=n.mul(A,d),c=n.sub(c,h),u=n.mul(A,f),u=n.add(u,u),u=n.add(u,u),new k(c,l,u)}add(e){m(e);const{X:t,Y:r,Z:i}=this,{X:a,Y:o,Z:c}=e;let l=n.ZERO,u=n.ZERO,h=n.ZERO;const f=s.a,A=n.mul(s.b,Wl);let d=n.mul(t,a),p=n.mul(r,o),g=n.mul(i,c),y=n.add(t,r),w=n.add(a,o);y=n.mul(y,w),w=n.add(d,p),y=n.sub(y,w),w=n.add(t,i);let b=n.add(a,c);return w=n.mul(w,b),b=n.add(d,g),w=n.sub(w,b),b=n.add(r,i),l=n.add(o,c),b=n.mul(b,l),l=n.add(p,g),b=n.sub(b,l),h=n.mul(f,w),l=n.mul(A,g),h=n.add(l,h),l=n.sub(p,h),h=n.add(p,h),u=n.mul(l,h),p=n.add(d,d),p=n.add(p,d),g=n.mul(f,g),w=n.mul(A,w),p=n.add(p,g),g=n.sub(d,g),g=n.mul(f,g),w=n.add(w,g),d=n.mul(p,w),u=n.add(u,d),d=n.mul(b,w),l=n.mul(y,l),l=n.sub(l,d),d=n.mul(y,p),h=n.mul(b,h),h=n.add(h,d),new k(l,u,h)}subtract(e){return this.add(e.negate())}is0(){return this.equals(k.ZERO)}multiply(e){const{endo:r}=t;if(!i.isValidNot0(e))throw new Error("invalid scalar: out of range");let n,s;const a=e=>B.cached(this,e,e=>Il(k,e));if(r){const{k1neg:t,k1:i,k2neg:o,k2:c}=w(e),{p:l,f:u}=a(i),{p:h,f}=a(c);s=u.add(f),n=v(r.beta,l,h,t,o)}else{const{p:t,f:r}=a(e);n=t,s=r}return Il(k,[n,s])[0]}multiplyUnsafe(e){const{endo:r}=t,n=this;if(!i.isValid(e))throw new Error("invalid scalar: out of range");if(e===Gl||n.is0())return k.ZERO;if(e===Hl)return n;if(B.hasCache(this))return this.multiply(e);if(r){const{k1neg:t,k1:i,k2neg:s,k2:a}=w(e),{p1:o,p2:c}=function(e,t,r,n){let i=t,s=e.ZERO,a=e.ZERO;for(;r>El||n>El;)r&vl&&(s=s.add(i)),n&vl&&(a=a.add(i)),i=i.double(),r>>=vl,n>>=vl;return{p1:s,p2:a}}(k,n,i,a);return v(r.beta,o,c,t,s)}return B.unsafe(n,e)}multiplyAndAddUnsafe(e,t,r){const n=this.multiplyUnsafe(t).add(e.multiplyUnsafe(r));return n.is0()?void 0:n}toAffine(e){return b(this,e)}isTorsionFree(){const{isTorsionFree:e}=t;return a===Hl||(e?e(k,this):B.unsafe(this,o).is0())}clearCofactor(){const{clearCofactor:e}=t;return a===Hl?this:e?e(k,this):this.multiplyUnsafe(a)}isSmallOrder(){return this.multiplyUnsafe(a).is0()}toBytes(e=!0){return qo(e,"isCompressed"),this.assertValidity(),h(k,this,e)}toHex(e=!0){return Qo(this.toBytes(e))}toString(){return``}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(e=!0){return this.toBytes(e)}_setWindowSize(e){this.precompute(e)}static normalizeZ(e){return Il(k,e)}static msm(e,t){return Tl(k,i,e,t)}static fromPrivateKey(e){return k.BASE.multiply(Jl(i,e))}}k.BASE=new k(s.Gx,s.Gy,n.ONE),k.ZERO=new k(n.ZERO,n.ONE,n.ZERO),k.Fp=n,k.Fn=i;const I=i.BITS,B=new Ul(k,t.endo?Math.ceil(I/2):I);return k.BASE.precompute(8),k}(t,r),n,i))}function zl(e,t){const r=t=>Vl({...e,hash:t});return{...r(t),create:r}}const Xl={p:BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff"),n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),h:BigInt(1),a:BigInt("0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc"),b:BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5")},$l={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff"),n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),h:BigInt(1),a:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc"),b:BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f")},eu={p:BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),h:BigInt(1),a:BigInt("0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"),b:BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650")},tu=Pc(Xl.p),ru=Pc($l.p),nu=Pc(eu.p),iu=zl({...Xl,Fp:tu,lowS:!1},pl),su=zl({...$l,Fp:ru,lowS:!1},ml),au=zl({...eu,Fp:nu,lowS:!1,allowedPrivateKeyLengths:[130,131,132]},yl),ou=BigInt(0),cu=BigInt(1),lu=BigInt(2),uu=BigInt(7),hu=BigInt(256),fu=BigInt(113),Au=[],du=[],pu=[];for(let e=0,t=cu,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],Au.push(2*(5*n+r)),du.push((e+1)*(e+2)/2%64);let i=ou;for(let e=0;e<7;e++)t=(t<>uu)*fu)%hu,t&lu&&(i^=cu<<(cu<r>32?((e,t,r)=>t<>>64-r)(e,t,r):((e,t,r)=>e<>>32-r)(e,t,r),bu=(e,t,r)=>r>32?((e,t,r)=>e<>>64-r)(e,t,r):((e,t,r)=>t<>>32-r)(e,t,r);class Eu extends Ho{constructor(e,t,r,n=!1,i=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=e,this.suffix=t,this.outputLen=r,this.enableXOF=n,this.rounds=i,Io(r),!(0=r&&this.keccak();const s=Math.min(r-this.posOut,i-n);e.set(t.subarray(this.posOut,this.posOut+s),n),this.posOut+=s,n+=s}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return Io(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(Do(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,xo(this.state)}_cloneInto(e){const{blockLen:t,suffix:r,outputLen:n,rounds:i,enableXOF:s}=this;return e||(e=new Eu(t,r,n,s,i)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=i,e.suffix=r,e.outputLen=n,e.enableXOF=s,e.destroyed=this.destroyed,e}}const vu=(e,t,r)=>jo(()=>new Eu(t,e,r)),ku=(()=>vu(6,136,32))(),Iu=(()=>vu(6,72,64))(),Bu=(()=>{return e=31,t=136,r=32,function(e){const t=(t,r)=>e(r).update(Lo(t)).digest(),r=e({});return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=t=>e(t),t}((n={})=>new Eu(t,e,void 0===n.dkLen?r:n.dkLen,!0));var e,t,r})(),Cu=BigInt(0),Su=BigInt(1),Du=BigInt(2),xu=BigInt(8);function Ku(e,t={}){const r=Ml("edwards",e,t,t.FpFnLE),{Fp:n,Fn:i}=r;let s=r.CURVE;const{h:a}=s;cc(t,{},{uvRatio:"function"});const o=Du<n.create(e),l=t.uvRatio||((e,t)=>{try{return{isValid:!0,value:n.sqrt(n.div(e,t))}}catch(e){return{isValid:!1,value:Cu}}});if(!function(e,t,r,n){const i=e.sqr(r),s=e.sqr(n),a=e.add(e.mul(t.a,i),s),o=e.add(e.ONE,e.mul(t.d,e.mul(i,s)));return e.eql(a,o)}(n,s,s.Gx,s.Gy))throw new Error("bad curve params: generator point");function u(e,t,r=!1){return sc("coordinate "+e,t,r?Su:Cu,o),t}function h(e){if(!(e instanceof d))throw new Error("ExtendedPoint expected")}const f=lc((e,t)=>{const{X:r,Y:i,Z:s}=e,a=e.is0();null==t&&(t=a?xu:n.inv(s));const o=c(r*t),l=c(i*t),u=n.mul(s,t);if(a)return{x:Cu,y:Su};if(u!==Su)throw new Error("invZ was invalid");return{x:o,y:l}}),A=lc(e=>{const{a:t,d:r}=s;if(e.is0())throw new Error("bad point: ZERO");const{X:n,Y:i,Z:a,T:o}=e,l=c(n*n),u=c(i*i),h=c(a*a),f=c(h*h),A=c(l*t);if(c(h*c(A+u))!==c(f+c(r*c(l*u))))throw new Error("bad point: equation left != right (1)");if(c(n*i)!==c(a*o))throw new Error("bad point: equation left != right (2)");return!0});class d{constructor(e,t,r,n){this.X=u("x",e),this.Y=u("y",t),this.Z=u("z",r,!0),this.T=u("t",n),Object.freeze(this)}static CURVE(){return s}static fromAffine(e){if(e instanceof d)throw new Error("extended point not allowed");const{x:t,y:r}=e||{};return u("x",t),u("y",r),new d(t,r,Su,c(t*r))}static fromBytes(e,t=!1){const r=n.BYTES,{a:i,d:a}=s;e=nc(Zo(e,r,"point")),qo(t,"zip215");const u=nc(e),h=e[r-1];u[r-1]=-129&h;const f=$o(u),A=t?o:n.ORDER;sc("point.y",f,Cu,A);const p=c(f*f),g=c(p-Su),y=c(a*p-i);let{isValid:m,value:w}=l(g,y);if(!m)throw new Error("bad point: invalid y coordinate");const b=(w&Su)===Su,E=!!(128&h);if(!t&&w===Cu&&E)throw new Error("bad point: x=0 and x_0=1");return E!==b&&(w=c(-w)),d.fromAffine({x:w,y:f})}static fromHex(e,t=!1){return d.fromBytes(rc("point",e),t)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(e=8,t=!0){return p.createCache(this,e),t||this.multiply(Du),this}assertValidity(){A(this)}equals(e){h(e);const{X:t,Y:r,Z:n}=this,{X:i,Y:s,Z:a}=e,o=c(t*a),l=c(i*n),u=c(r*a),f=c(s*n);return o===l&&u===f}is0(){return this.equals(d.ZERO)}negate(){return new d(c(-this.X),this.Y,this.Z,c(-this.T))}double(){const{a:e}=s,{X:t,Y:r,Z:n}=this,i=c(t*t),a=c(r*r),o=c(Du*c(n*n)),l=c(e*i),u=t+r,h=c(c(u*u)-i-a),f=l+a,A=f-o,p=l-a,g=c(h*A),y=c(f*p),m=c(h*p),w=c(A*f);return new d(g,y,w,m)}add(e){h(e);const{a:t,d:r}=s,{X:n,Y:i,Z:a,T:o}=this,{X:l,Y:u,Z:f,T:A}=e,p=c(n*l),g=c(i*u),y=c(o*r*A),m=c(a*f),w=c((n+i)*(l+u)-p-g),b=m-y,E=m+y,v=c(g-t*p),k=c(w*b),I=c(E*v),B=c(w*v),C=c(b*E);return new d(k,I,C,B)}subtract(e){return this.add(e.negate())}multiply(e){if(!i.isValidNot0(e))throw new Error("invalid scalar: expected 1 <= sc < curve.n");const{p:t,f:r}=p.cached(this,e,e=>Il(d,e));return Il(d,[t,r])[0]}multiplyUnsafe(e,t=d.ZERO){if(!i.isValid(e))throw new Error("invalid scalar: expected 0 <= sc < curve.n");return e===Cu?d.ZERO:this.is0()||e===Su?this:p.unsafe(this,e,e=>Il(d,e),t)}isSmallOrder(){return this.multiplyUnsafe(a).is0()}isTorsionFree(){return p.unsafe(this,s.n).is0()}toAffine(e){return f(this,e)}clearCofactor(){return a===Su?this:this.multiplyUnsafe(a)}toBytes(){const{x:e,y:t}=this.toAffine(),r=n.toBytes(t);return r[r.length-1]|=e&Su?128:0,r}toHex(){return Qo(this.toBytes())}toString(){return``}get ex(){return this.X}get ey(){return this.Y}get ez(){return this.Z}get et(){return this.T}static normalizeZ(e){return Il(d,e)}static msm(e,t){return Tl(d,i,e,t)}_setWindowSize(e){this.precompute(e)}toRawBytes(){return this.toBytes()}}d.BASE=new d(s.Gx,s.Gy,Su,c(s.Gx*s.Gy)),d.ZERO=new d(Cu,Su,Su,Cu),d.Fp=n,d.Fn=i;const p=new Ul(d,i.BITS);return d.BASE.precompute(8),d}const Pu=BigInt(0),Uu=BigInt(1),Tu=BigInt(2);const Fu={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n:BigInt("0x3fffffffffffffffffffffffffffffffffffffffffffffffffffffff7cca23e9c44edb49aed63690216cc2728dc58f552378c292ab5844f3"),h:BigInt(4),a:BigInt(1),d:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffff6756"),Gx:BigInt("0x4f1970c66bed0ded221d15a622bf36da9e146570470f1767ea6de324a3d3a46412ae1af72ab66511433b80e18b00938e2626a82bc70cc05e"),Gy:BigInt("0x693f46716eb6bc248876203756c9c7624bea73736ca3984087789c1e05a0c2d73ad3ff1ce67c39c4fdbd132c4ed7c8ad9808795bf230fa14")},Mu=Object.assign({},Fu,{d:BigInt("0xd78b4bdc7f0daf19f24f38c29373a2ccad46157242a50f37809b1da3412a12e79ccc9c81264cfe9ad080997058fb61c4243cc32dbaa156b9"),Gx:BigInt("0x79a70b2b70400553ae7c9df416c792c61128751ac92969240c25a07d728bdc93e21f7787ed6972249de732f38496cd11698713093e9c04fc"),Gy:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffff80000000000000000000000000000000000000000000000000000001")}),Ru=jo(()=>Bu.create({dkLen:114})),Qu=BigInt(1),Nu=BigInt(2),Ou=BigInt(3);BigInt(4);const Lu=BigInt(11),Gu=BigInt(22),Hu=BigInt(44),ju=BigInt(88),Wu=BigInt(223);function Yu(e){const t=Fu.p,r=e*e*e%t,n=r*r*e%t,i=Ec(n,Ou,t)*n%t,s=Ec(i,Ou,t)*n%t,a=Ec(s,Nu,t)*r%t,o=Ec(a,Lu,t)*a%t,c=Ec(o,Gu,t)*o%t,l=Ec(c,Hu,t)*c%t,u=Ec(l,ju,t)*l%t,h=Ec(u,Hu,t)*c%t,f=Ec(h,Nu,t)*r%t,A=Ec(f,Qu,t)*e%t;return Ec(A,Wu,t)*f%t}function Ju(e){return e[0]&=252,e[55]|=128,e[56]=0,e}function _u(e,t){const r=Fu.p,n=bc(e*e*t,r),i=bc(n*e,r),s=bc(i*n*t,r),a=bc(i*Yu(s),r),o=bc(a*a,r);return{isValid:bc(o*t,r)===e,value:a}}const qu=(()=>Pc(Fu.p,{BITS:456,isLE:!0}))(),Zu=(()=>Pc(Fu.n,{BITS:456,isLE:!0}))();function Vu(e,t,r){if(t.length>255)throw new Error("context must be smaller than 255, got: "+t.length);return Go((n="SigEd448",Uint8Array.from(n,(e,t)=>{const r=e.charCodeAt(0);if(1!==e.length||r>127)throw new Error(`string contains non-ASCII character "${n[t]}" with code ${r} at position ${t}`);return r})),new Uint8Array([r?1:0,t.length]),t,e);var n}const zu=function(e){const{CURVE:t,curveOpts:r,hash:n,eddsaOpts:i}=function(e){const t={a:e.a,d:e.d,p:e.Fp.ORDER,n:e.n,h:e.h,Gx:e.Gx,Gy:e.Gy},r={Fp:e.Fp,Fn:Pc(t.n,e.nBitLength,!0),uvRatio:e.uvRatio},n={randomBytes:e.randomBytes,adjustScalarBytes:e.adjustScalarBytes,domain:e.domain,prehash:e.prehash,mapToCurve:e.mapToCurve};return{CURVE:t,curveOpts:r,hash:e.hash,eddsaOpts:n}}(e);return function(e,t){const r=t.Point;return Object.assign({},t,{ExtendedPoint:r,CURVE:e,nBitLength:r.Fn.BITS,nByteLength:r.Fn.BYTES})}(e,function(e,t,r={}){if("function"!=typeof t)throw new Error('"hash" function param is required');cc(r,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",mapToCurve:"function"});const{prehash:n}=r,{BASE:i,Fp:s,Fn:a}=e,o=r.randomBytes||Yo,c=r.adjustScalarBytes||(e=>e),l=r.domain||((e,t,r)=>{if(qo(r,"phflag"),t.length||r)throw new Error("Contexts/pre-hash are not supported");return e});function u(e){return a.create($o(e))}function h(e){const{head:r,prefix:n,scalar:s}=function(e){const r=g.secretKey;e=rc("private key",e,r);const n=rc("hashed private key",t(e),2*r),i=c(n.slice(0,r));return{head:i,prefix:n.slice(r,2*r),scalar:u(i)}}(e),a=i.multiply(s),o=a.toBytes();return{head:r,prefix:n,scalar:s,point:a,pointBytes:o}}function f(e){return h(e).pointBytes}function A(e=Uint8Array.of(),...r){const i=Go(...r);return u(t(l(i,rc("context",e),!!n)))}const d={zip215:!0},p=s.BYTES,g={secretKey:p,publicKey:p,signature:2*p,seed:p};function y(e=o(g.seed)){return Zo(e,g.seed,"seed")}const m={getExtendedPublicKey:h,randomSecretKey:y,isValidSecretKey:function(e){return ko(e)&&e.length===a.BYTES},isValidPublicKey:function(t,r){try{return!!e.fromBytes(t,r)}catch(e){return!1}},toMontgomery(t){const{y:r}=e.fromBytes(t),n=g.publicKey,i=32===n;if(!i&&57!==n)throw new Error("only defined for 25519 and 448");const a=i?s.div(Su+r,Su-r):s.div(r-Su,r+Su);return s.toBytes(a)},toMontgomerySecret(e){const r=g.secretKey;Zo(e,r);const n=t(e.subarray(0,r));return c(n).subarray(0,r)},randomPrivateKey:y,precompute:(t=8,r=e.BASE)=>r.precompute(t,!1)};return Object.freeze({keygen:function(e){const t=m.randomSecretKey(e);return{secretKey:t,publicKey:f(t)}},getPublicKey:f,sign:function(e,t,r={}){e=rc("message",e),n&&(e=n(e));const{prefix:s,scalar:o,pointBytes:c}=h(t),l=A(r.context,s,e),u=i.multiply(l).toBytes(),f=A(r.context,u,c,e),d=a.create(l+f*o);if(!a.isValid(d))throw new Error("sign failed: invalid s");return Zo(Go(u,a.toBytes(d)),g.signature,"result")},verify:function(t,r,s,a=d){const{context:o,zip215:c}=a,l=g.signature;t=rc("signature",t,l),r=rc("message",r),s=rc("publicKey",s,g.publicKey),void 0!==c&&qo(c,"zip215"),n&&(r=n(r));const u=l/2,h=t.subarray(0,u),f=$o(t.subarray(u,l));let p,y,m;try{p=e.fromBytes(s,c),y=e.fromBytes(h,c),m=i.multiplyUnsafe(f)}catch(e){return!1}if(!c&&p.isSmallOrder())return!1;const w=A(o,y.toBytes(),p.toBytes(),r);return y.add(p.multiplyUnsafe(w)).subtract(m).clearCofactor().is0()},utils:m,Point:e,lengths:g})}(Ku(t,r),n,i))}((()=>({...Fu,Fp:qu,Fn:Zu,nBitLength:Zu.BITS,hash:Ru,adjustScalarBytes:Ju,domain:Vu,uvRatio:_u}))());Ku(Mu);const Xu=(()=>{const e=Fu.p;return function(e){const t=(cc(r=e,{adjustScalarBytes:"function",powPminus2:"function"}),Object.freeze({...r}));var r;const{P:n,type:i,adjustScalarBytes:s,powPminus2:a,randomBytes:o}=t,c="x25519"===i;if(!c&&"x448"!==i)throw new Error("invalid type");const l=o||Yo,u=c?255:448,h=c?32:56,f=c?BigInt(9):BigInt(5),A=c?BigInt(121665):BigInt(39081),d=c?Tu**BigInt(254):Tu**BigInt(447),p=c?BigInt(8)*Tu**BigInt(251)-Uu:BigInt(4)*Tu**BigInt(445)-Uu,g=d+p+Uu,y=e=>bc(e,n),m=w(f);function w(e){return tc(y(e),h)}function b(e,t){const r=function(e,t){sc("u",e,Pu,n),sc("scalar",t,d,g);const r=t,i=e;let s=Uu,o=Pu,c=e,l=Uu,h=Pu;for(let e=BigInt(u-1);e>=Pu;e--){const t=r>>e&Uu;h^=t,({x_2:s,x_3:c}=v(h,s,c)),({x_2:o,x_3:l}=v(h,o,l)),h=t;const n=s+o,a=y(n*n),u=s-o,f=y(u*u),d=a-f,p=c+l,g=y((c-l)*n),m=y(p*u),w=g+m,b=g-m;c=y(w*w),l=y(i*y(b*b)),s=y(a*f),o=y(d*(a+y(A*d)))}({x_2:s,x_3:c}=v(h,s,c)),({x_2:o,x_3:l}=v(h,o,l));const f=a(o);return y(s*f)}(function(e){const t=rc("u coordinate",e,h);return c&&(t[31]&=127),y($o(t))}(t),function(e){return $o(s(rc("scalar",e,h)))}(e));if(r===Pu)throw new Error("invalid private or public key received");return w(r)}function E(e){return b(e,m)}function v(e,t,r){const n=y(e*(t-r));return{x_2:t=y(t-n),x_3:r=y(r+n)}}const k={secretKey:h,publicKey:h,seed:h},I=(e=l(h))=>(Bo(e,k.seed),e);return{keygen:function(e){const t=I(e);return{secretKey:t,publicKey:E(t)}},getSharedSecret:(e,t)=>b(e,t),getPublicKey:e=>E(e),scalarMult:b,scalarMultBase:E,utils:{randomSecretKey:I,randomPrivateKey:I},GuBytes:m.slice(),lengths:k}}({P:e,type:"x448",powPminus2:t=>bc(Ec(Yu(t),Nu,e)*t,e),adjustScalarBytes:Ju})})(),$u={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},eh={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},th=BigInt(2),rh=Pc($u.p,{sqrt:function(e){const t=$u.p,r=BigInt(3),n=BigInt(6),i=BigInt(11),s=BigInt(22),a=BigInt(23),o=BigInt(44),c=BigInt(88),l=e*e*e%t,u=l*l*e%t,h=Ec(u,r,t)*u%t,f=Ec(h,r,t)*u%t,A=Ec(f,th,t)*l%t,d=Ec(A,i,t)*A%t,p=Ec(d,s,t)*d%t,g=Ec(p,o,t)*p%t,y=Ec(g,c,t)*g%t,m=Ec(y,o,t)*p%t,w=Ec(m,r,t)*u%t,b=Ec(w,a,t)*d%t,E=Ec(b,n,t)*l%t,v=Ec(E,th,t);if(!rh.eql(rh.sqr(v),e))throw new Error("Cannot find square root");return v}}),nh=zl({...$u,Fp:rh,lowS:!0,endo:eh},pl),ih=pl,sh=gl,ah=Pc(BigInt("0xa9fb57dba1eea9bc3e660a909d838d726e3bf623d52620282013481d1f6e5377")),oh=zl({a:ah.create(BigInt("0x7d5a0975fc2c3057eef67530417affe7fb8055c126dc5c6ce94a4b44f330b5d9")),b:BigInt("0x26dc5c6ce94a4b44f330b5d9bbd77cbf958416295cf7e1ce6bccdc18ff8c07b6"),Fp:ah,n:BigInt("0xa9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e82974856a7"),Gx:BigInt("0x8bd2aeb9cb7e57cb2c4b482ffc81b7afb9de27e1e3bd23c23a4453bd9ace3262"),Gy:BigInt("0x547ef835c3dac4fd97f8461a14611dc9c27745132ded8e545c1d54c72f046997"),h:BigInt(1),lowS:!1},ih),ch=yl,lh=ml,uh=Pc(BigInt("0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b412b1da197fb71123acd3a729901d1a71874700133107ec53")),hh=zl({a:uh.create(BigInt("0x7bc382c63d8c150c3c72080ace05afa0c2bea28e4fb22787139165efba91f90f8aa5814a503ad4eb04a8c7dd22ce2826")),b:BigInt("0x04a8c7dd22ce28268b39b55416f0447c2fb77de107dcd2a62e880ea53eeb62d57cb4390295dbc9943ab78696fa504c11"),Fp:uh,n:BigInt("0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e9046565"),Gx:BigInt("0x1d1c64f068cf45ffa2a63a81b7c13f6b8847a3e77ef14fe3db7fcafe0cbd10e8e826e03436d646aaef87b2e247d4af1e"),Gy:BigInt("0x8abe1d7520f9c2a45cb1eb8e95cfd55262b70b29feec5864e19c054ff99129280e4646217791811142820341263c5315"),h:BigInt(1),lowS:!1},lh),fh=Pc(BigInt("0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca703308717d4d9b009bc66842aecda12ae6a380e62881ff2f2d82c68528aa6056583a48f3")),Ah=zl({a:fh.create(BigInt("0x7830a3318b603b89e2327145ac234cc594cbdd8d3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94ca")),b:BigInt("0x3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94cadc083e67984050b75ebae5dd2809bd638016f723"),Fp:fh,n:BigInt("0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90069"),Gx:BigInt("0x81aee4bdd82ed9645a21322e9c4c6a9385ed9f70b5d916c1b43b62eef4d0098eff3b1f78e2d0d48d50d1687b93b97d5f7c6d5047406a5e688b352209bcb9f822"),Gy:BigInt("0x7dde385d566332ecc0eabfa9cf7822fdf209f70024a57b1aa000c55b881f8111b2dcde494a5f485e5bca4bd88a2763aed1ca2b2fa8f0540678cd1e0f3ad80892"),h:BigInt(1),lowS:!1},ch),dh=new Map(Object.entries({nistP256:iu,nistP384:su,nistP521:au,brainpoolP256r1:oh,brainpoolP384r1:hh,brainpoolP512r1:Ah,secp256k1:nh,x448:Xu,ed448:zu}));var ph=Object.freeze({__proto__:null,nobleCurves:dh});const gh=Uint32Array.from([1732584193,4023233417,2562383102,271733878,3285377520]),yh=new Uint32Array(80);class mh extends Rc{constructor(){super(64,20,8,!1),this.A=0|gh[0],this.B=0|gh[1],this.C=0|gh[2],this.D=0|gh[3],this.E=0|gh[4]}get(){const{A:e,B:t,C:r,D:n,E:i}=this;return[e,t,r,n,i]}set(e,t,r,n,i){this.A=0|e,this.B=0|t,this.C=0|r,this.D=0|n,this.E=0|i}process(e,t){for(let r=0;r<16;r++,t+=4)yh[r]=e.getUint32(t,!1);for(let e=16;e<80;e++)yh[e]=Uo(yh[e-3]^yh[e-8]^yh[e-14]^yh[e-16],1);let{A:r,B:n,C:i,D:s,E:a}=this;for(let e=0;e<80;e++){let t,o;e<20?(t=Fc(n,i,s),o=1518500249):e<40?(t=n^i^s,o=1859775393):e<60?(t=Mc(n,i,s),o=2400959708):(t=n^i^s,o=3395469782);const c=Uo(r,5)+t+a+o+yh[e]|0;a=s,s=i,i=Uo(n,30),n=r,r=c}r=r+this.A|0,n=n+this.B|0,i=i+this.C|0,s=s+this.D|0,a=a+this.E|0,this.set(r,n,i,s,a)}roundClean(){xo(yh)}destroy(){this.set(0,0,0,0,0),xo(this.buffer)}}const wh=jo(()=>new mh),bh=Uint8Array.from([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),Eh=(()=>Uint8Array.from(new Array(16).fill(0).map((e,t)=>t)))(),vh=(()=>Eh.map(e=>(9*e+5)%16))(),kh=(()=>{const e=[[Eh],[vh]];for(let t=0;t<4;t++)for(let r of e)r.push(r[t].map(e=>bh[e]));return e})(),Ih=(()=>kh[0])(),Bh=(()=>kh[1])(),Ch=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map(e=>Uint8Array.from(e)),Sh=Ih.map((e,t)=>e.map(e=>Ch[t][e])),Dh=Bh.map((e,t)=>e.map(e=>Ch[t][e])),xh=Uint32Array.from([0,1518500249,1859775393,2400959708,2840853838]),Kh=Uint32Array.from([1352829926,1548603684,1836072691,2053994217,0]);function Ph(e,t,r,n){return 0===e?t^r^n:1===e?t&r|~t&n:2===e?(t|~r)^n:3===e?t&n|r&~n:t^(r|~n)}const Uh=new Uint32Array(16);class Th extends Rc{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){const{h0:e,h1:t,h2:r,h3:n,h4:i}=this;return[e,t,r,n,i]}set(e,t,r,n,i){this.h0=0|e,this.h1=0|t,this.h2=0|r,this.h3=0|n,this.h4=0|i}process(e,t){for(let r=0;r<16;r++,t+=4)Uh[r]=e.getUint32(t,!0);let r=0|this.h0,n=r,i=0|this.h1,s=i,a=0|this.h2,o=a,c=0|this.h3,l=c,u=0|this.h4,h=u;for(let e=0;e<5;e++){const t=4-e,f=xh[e],A=Kh[e],d=Ih[e],p=Bh[e],g=Sh[e],y=Dh[e];for(let t=0;t<16;t++){const n=Uo(r+Ph(e,i,a,c)+Uh[d[t]]+f,g[t])+u|0;r=u,u=c,c=0|Uo(a,10),a=i,i=n}for(let e=0;e<16;e++){const r=Uo(n+Ph(t,s,o,l)+Uh[p[e]]+A,y[e])+h|0;n=h,h=l,l=0|Uo(o,10),o=s,s=r}}this.set(this.h1+a+l|0,this.h2+c+h|0,this.h3+u+n|0,this.h4+r+s|0,this.h0+i+o|0)}roundClean(){xo(Uh)}destroy(){this.destroyed=!0,xo(this.buffer),this.set(0,0,0,0,0)}}const Fh=wh,Mh=jo(()=>new Th),Rh=Array.from({length:64},(e,t)=>Math.floor(2**32*Math.abs(Math.sin(t+1)))),Qh=(e,t,r)=>e&t^~e&r,Nh=new Uint32Array([1732584193,4023233417,2562383102,271733878]),Oh=new Uint32Array(16);class Lh extends Rc{constructor(){super(64,16,8,!0),this.A=0|Nh[0],this.B=0|Nh[1],this.C=0|Nh[2],this.D=0|Nh[3]}get(){const{A:e,B:t,C:r,D:n}=this;return[e,t,r,n]}set(e,t,r,n){this.A=0|e,this.B=0|t,this.C=0|r,this.D=0|n}process(e,t){for(let r=0;r<16;r++,t+=4)Oh[r]=e.getUint32(t,!0);let{A:r,B:n,C:i,D:s}=this;for(let e=0;e<64;e++){let t,a,o;e<16?(t=Qh(n,i,s),a=e,o=[7,12,17,22]):e<32?(t=Qh(s,n,i),a=(5*e+1)%16,o=[5,9,14,20]):e<48?(t=n^i^s,a=(3*e+5)%16,o=[4,11,16,23]):(t=i^(n|~s),a=7*e%16,o=[6,10,15,21]),t=t+r+Rh[e]+Oh[a],r=s,s=i,i=n,n+=Uo(t,o[e%4])}r=r+this.A|0,n=n+this.B|0,i=i+this.C|0,s=s+this.D|0,this.set(r,n,i,s)}roundClean(){Oh.fill(0)}destroy(){this.set(0,0,0,0),this.buffer.fill(0)}}const Gh=Wo(()=>new Lh),Hh=new Map(Object.entries({md5:Gh,sha1:Fh,sha224:sh,sha256:ih,sha384:lh,sha512:ch,sha3_256:ku,sha3_512:Iu,ripemd160:Mh}));var jh=Object.freeze({__proto__:null,nobleHashes:Hh});const Wh="object"==typeof n&&"crypto"in n?n.crypto:void 0,Yh={};var Jh=function(e){var t,r=new Float64Array(16);if(e)for(t=0;t>24&255,e[t+1]=r>>16&255,e[t+2]=r>>8&255,e[t+3]=255&r,e[t+4]=n>>24&255,e[t+5]=n>>16&255,e[t+6]=n>>8&255,e[t+7]=255&n}function sf(e,t,r,n){return function(e,t,r,n){var i,s=0;for(i=0;i<32;i++)s|=e[t+i]^r[n+i];return(1&s-1>>>8)-1}(e,t,r,n)}function af(e,t){var r;for(r=0;r<16;r++)e[r]=0|t[r]}function of(e){var t,r,n=1;for(t=0;t<16;t++)r=e[t]+n+65535,n=Math.floor(r/65536),e[t]=r-65536*n;e[0]+=n-1+37*(n-1)}function cf(e,t,r){for(var n,i=~(r-1),s=0;s<16;s++)n=i&(e[s]^t[s]),e[s]^=n,t[s]^=n}function lf(e,t){var r,n,i,s=Jh(),a=Jh();for(r=0;r<16;r++)a[r]=t[r];for(of(a),of(a),of(a),n=0;n<2;n++){for(s[0]=a[0]-65517,r=1;r<15;r++)s[r]=a[r]-65535-(s[r-1]>>16&1),s[r-1]&=65535;s[15]=a[15]-32767-(s[14]>>16&1),i=s[15]>>16&1,s[14]&=65535,cf(a,s,1-i)}for(r=0;r<16;r++)e[2*r]=255&a[r],e[2*r+1]=a[r]>>8}function uf(e,t){var r=new Uint8Array(32),n=new Uint8Array(32);return lf(r,e),lf(n,t),sf(r,0,n,0)}function hf(e){var t=new Uint8Array(32);return lf(t,e),1&t[0]}function ff(e,t){var r;for(r=0;r<16;r++)e[r]=t[2*r]+(t[2*r+1]<<8);e[15]&=32767}function Af(e,t,r){for(var n=0;n<16;n++)e[n]=t[n]+r[n]}function df(e,t,r){for(var n=0;n<16;n++)e[n]=t[n]-r[n]}function pf(e,t,r){var n,i,s=0,a=0,o=0,c=0,l=0,u=0,h=0,f=0,A=0,d=0,p=0,g=0,y=0,m=0,w=0,b=0,E=0,v=0,k=0,I=0,B=0,C=0,S=0,D=0,x=0,K=0,P=0,U=0,T=0,F=0,M=0,R=r[0],Q=r[1],N=r[2],O=r[3],L=r[4],G=r[5],H=r[6],j=r[7],W=r[8],Y=r[9],J=r[10],_=r[11],q=r[12],Z=r[13],V=r[14],z=r[15];s+=(n=t[0])*R,a+=n*Q,o+=n*N,c+=n*O,l+=n*L,u+=n*G,h+=n*H,f+=n*j,A+=n*W,d+=n*Y,p+=n*J,g+=n*_,y+=n*q,m+=n*Z,w+=n*V,b+=n*z,a+=(n=t[1])*R,o+=n*Q,c+=n*N,l+=n*O,u+=n*L,h+=n*G,f+=n*H,A+=n*j,d+=n*W,p+=n*Y,g+=n*J,y+=n*_,m+=n*q,w+=n*Z,b+=n*V,E+=n*z,o+=(n=t[2])*R,c+=n*Q,l+=n*N,u+=n*O,h+=n*L,f+=n*G,A+=n*H,d+=n*j,p+=n*W,g+=n*Y,y+=n*J,m+=n*_,w+=n*q,b+=n*Z,E+=n*V,v+=n*z,c+=(n=t[3])*R,l+=n*Q,u+=n*N,h+=n*O,f+=n*L,A+=n*G,d+=n*H,p+=n*j,g+=n*W,y+=n*Y,m+=n*J,w+=n*_,b+=n*q,E+=n*Z,v+=n*V,k+=n*z,l+=(n=t[4])*R,u+=n*Q,h+=n*N,f+=n*O,A+=n*L,d+=n*G,p+=n*H,g+=n*j,y+=n*W,m+=n*Y,w+=n*J,b+=n*_,E+=n*q,v+=n*Z,k+=n*V,I+=n*z,u+=(n=t[5])*R,h+=n*Q,f+=n*N,A+=n*O,d+=n*L,p+=n*G,g+=n*H,y+=n*j,m+=n*W,w+=n*Y,b+=n*J,E+=n*_,v+=n*q,k+=n*Z,I+=n*V,B+=n*z,h+=(n=t[6])*R,f+=n*Q,A+=n*N,d+=n*O,p+=n*L,g+=n*G,y+=n*H,m+=n*j,w+=n*W,b+=n*Y,E+=n*J,v+=n*_,k+=n*q,I+=n*Z,B+=n*V,C+=n*z,f+=(n=t[7])*R,A+=n*Q,d+=n*N,p+=n*O,g+=n*L,y+=n*G,m+=n*H,w+=n*j,b+=n*W,E+=n*Y,v+=n*J,k+=n*_,I+=n*q,B+=n*Z,C+=n*V,S+=n*z,A+=(n=t[8])*R,d+=n*Q,p+=n*N,g+=n*O,y+=n*L,m+=n*G,w+=n*H,b+=n*j,E+=n*W,v+=n*Y,k+=n*J,I+=n*_,B+=n*q,C+=n*Z,S+=n*V,D+=n*z,d+=(n=t[9])*R,p+=n*Q,g+=n*N,y+=n*O,m+=n*L,w+=n*G,b+=n*H,E+=n*j,v+=n*W,k+=n*Y,I+=n*J,B+=n*_,C+=n*q,S+=n*Z,D+=n*V,x+=n*z,p+=(n=t[10])*R,g+=n*Q,y+=n*N,m+=n*O,w+=n*L,b+=n*G,E+=n*H,v+=n*j,k+=n*W,I+=n*Y,B+=n*J,C+=n*_,S+=n*q,D+=n*Z,x+=n*V,K+=n*z,g+=(n=t[11])*R,y+=n*Q,m+=n*N,w+=n*O,b+=n*L,E+=n*G,v+=n*H,k+=n*j,I+=n*W,B+=n*Y,C+=n*J,S+=n*_,D+=n*q,x+=n*Z,K+=n*V,P+=n*z,y+=(n=t[12])*R,m+=n*Q,w+=n*N,b+=n*O,E+=n*L,v+=n*G,k+=n*H,I+=n*j,B+=n*W,C+=n*Y,S+=n*J,D+=n*_,x+=n*q,K+=n*Z,P+=n*V,U+=n*z,m+=(n=t[13])*R,w+=n*Q,b+=n*N,E+=n*O,v+=n*L,k+=n*G,I+=n*H,B+=n*j,C+=n*W,S+=n*Y,D+=n*J,x+=n*_,K+=n*q,P+=n*Z,U+=n*V,T+=n*z,w+=(n=t[14])*R,b+=n*Q,E+=n*N,v+=n*O,k+=n*L,I+=n*G,B+=n*H,C+=n*j,S+=n*W,D+=n*Y,x+=n*J,K+=n*_,P+=n*q,U+=n*Z,T+=n*V,F+=n*z,b+=(n=t[15])*R,a+=38*(v+=n*N),o+=38*(k+=n*O),c+=38*(I+=n*L),l+=38*(B+=n*G),u+=38*(C+=n*H),h+=38*(S+=n*j),f+=38*(D+=n*W),A+=38*(x+=n*Y),d+=38*(K+=n*J),p+=38*(P+=n*_),g+=38*(U+=n*q),y+=38*(T+=n*Z),m+=38*(F+=n*V),w+=38*(M+=n*z),s=(n=(s+=38*(E+=n*Q))+(i=1)+65535)-65536*(i=Math.floor(n/65536)),a=(n=a+i+65535)-65536*(i=Math.floor(n/65536)),o=(n=o+i+65535)-65536*(i=Math.floor(n/65536)),c=(n=c+i+65535)-65536*(i=Math.floor(n/65536)),l=(n=l+i+65535)-65536*(i=Math.floor(n/65536)),u=(n=u+i+65535)-65536*(i=Math.floor(n/65536)),h=(n=h+i+65535)-65536*(i=Math.floor(n/65536)),f=(n=f+i+65535)-65536*(i=Math.floor(n/65536)),A=(n=A+i+65535)-65536*(i=Math.floor(n/65536)),d=(n=d+i+65535)-65536*(i=Math.floor(n/65536)),p=(n=p+i+65535)-65536*(i=Math.floor(n/65536)),g=(n=g+i+65535)-65536*(i=Math.floor(n/65536)),y=(n=y+i+65535)-65536*(i=Math.floor(n/65536)),m=(n=m+i+65535)-65536*(i=Math.floor(n/65536)),w=(n=w+i+65535)-65536*(i=Math.floor(n/65536)),b=(n=b+i+65535)-65536*(i=Math.floor(n/65536)),s=(n=(s+=i-1+37*(i-1))+(i=1)+65535)-65536*(i=Math.floor(n/65536)),a=(n=a+i+65535)-65536*(i=Math.floor(n/65536)),o=(n=o+i+65535)-65536*(i=Math.floor(n/65536)),c=(n=c+i+65535)-65536*(i=Math.floor(n/65536)),l=(n=l+i+65535)-65536*(i=Math.floor(n/65536)),u=(n=u+i+65535)-65536*(i=Math.floor(n/65536)),h=(n=h+i+65535)-65536*(i=Math.floor(n/65536)),f=(n=f+i+65535)-65536*(i=Math.floor(n/65536)),A=(n=A+i+65535)-65536*(i=Math.floor(n/65536)),d=(n=d+i+65535)-65536*(i=Math.floor(n/65536)),p=(n=p+i+65535)-65536*(i=Math.floor(n/65536)),g=(n=g+i+65535)-65536*(i=Math.floor(n/65536)),y=(n=y+i+65535)-65536*(i=Math.floor(n/65536)),m=(n=m+i+65535)-65536*(i=Math.floor(n/65536)),w=(n=w+i+65535)-65536*(i=Math.floor(n/65536)),b=(n=b+i+65535)-65536*(i=Math.floor(n/65536)),s+=i-1+37*(i-1),e[0]=s,e[1]=a,e[2]=o,e[3]=c,e[4]=l,e[5]=u,e[6]=h,e[7]=f,e[8]=A,e[9]=d,e[10]=p,e[11]=g,e[12]=y,e[13]=m,e[14]=w,e[15]=b}function gf(e,t){pf(e,t,t)}function yf(e,t){var r,n=Jh();for(r=0;r<16;r++)n[r]=t[r];for(r=253;r>=0;r--)gf(n,n),2!==r&&4!==r&&pf(n,n,t);for(r=0;r<16;r++)e[r]=n[r]}function mf(e,t,r){var n,i,s=new Uint8Array(32),a=new Float64Array(80),o=Jh(),c=Jh(),l=Jh(),u=Jh(),h=Jh(),f=Jh();for(i=0;i<31;i++)s[i]=t[i];for(s[31]=127&t[31]|64,s[0]&=248,ff(a,r),i=0;i<16;i++)c[i]=a[i],u[i]=o[i]=l[i]=0;for(o[0]=u[0]=1,i=254;i>=0;--i)cf(o,c,n=s[i>>>3]>>>(7&i)&1),cf(l,u,n),Af(h,o,l),df(o,o,l),Af(l,c,u),df(c,c,u),gf(u,h),gf(f,o),pf(o,l,o),pf(l,c,h),Af(h,o,l),df(o,o,l),gf(c,o),df(l,u,f),pf(o,l,zh),Af(o,o,u),pf(l,l,o),pf(o,u,f),pf(u,c,a),gf(c,h),cf(o,c,n),cf(l,u,n);for(i=0;i<16;i++)a[i+16]=o[i],a[i+32]=l[i],a[i+48]=c[i],a[i+64]=u[i];var A=a.subarray(32),d=a.subarray(16);return yf(A,A),pf(d,d,A),lf(e,d),0}function wf(e,t){return mf(e,t,qh)}var bf=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function Ef(e,t,r,n){for(var i,s,a,o,c,l,u,h,f,A,d,p,g,y,m,w,b,E,v,k,I,B,C,S,D,x,K=new Int32Array(16),P=new Int32Array(16),U=e[0],T=e[1],F=e[2],M=e[3],R=e[4],Q=e[5],N=e[6],O=e[7],L=t[0],G=t[1],H=t[2],j=t[3],W=t[4],Y=t[5],J=t[6],_=t[7],q=0;n>=128;){for(v=0;v<16;v++)k=8*v+q,K[v]=r[k+0]<<24|r[k+1]<<16|r[k+2]<<8|r[k+3],P[v]=r[k+4]<<24|r[k+5]<<16|r[k+6]<<8|r[k+7];for(v=0;v<80;v++)if(i=U,s=T,a=F,o=M,c=R,l=Q,u=N,f=L,A=G,d=H,p=j,g=W,y=Y,m=J,C=65535&(B=_),S=B>>>16,D=65535&(I=O),x=I>>>16,C+=65535&(B=(W>>>14|R<<18)^(W>>>18|R<<14)^(R>>>9|W<<23)),S+=B>>>16,D+=65535&(I=(R>>>14|W<<18)^(R>>>18|W<<14)^(W>>>9|R<<23)),x+=I>>>16,C+=65535&(B=W&Y^~W&J),S+=B>>>16,D+=65535&(I=R&Q^~R&N),x+=I>>>16,C+=65535&(B=bf[2*v+1]),S+=B>>>16,D+=65535&(I=bf[2*v]),x+=I>>>16,I=K[v%16],S+=(B=P[v%16])>>>16,D+=65535&I,x+=I>>>16,D+=(S+=(C+=65535&B)>>>16)>>>16,C=65535&(B=E=65535&C|S<<16),S=B>>>16,D=65535&(I=b=65535&D|(x+=D>>>16)<<16),x=I>>>16,C+=65535&(B=(L>>>28|U<<4)^(U>>>2|L<<30)^(U>>>7|L<<25)),S+=B>>>16,D+=65535&(I=(U>>>28|L<<4)^(L>>>2|U<<30)^(L>>>7|U<<25)),x+=I>>>16,S+=(B=L&G^L&H^G&H)>>>16,D+=65535&(I=U&T^U&F^T&F),x+=I>>>16,h=65535&(D+=(S+=(C+=65535&B)>>>16)>>>16)|(x+=D>>>16)<<16,w=65535&C|S<<16,C=65535&(B=p),S=B>>>16,D=65535&(I=o),x=I>>>16,S+=(B=E)>>>16,D+=65535&(I=b),x+=I>>>16,T=i,F=s,M=a,R=o=65535&(D+=(S+=(C+=65535&B)>>>16)>>>16)|(x+=D>>>16)<<16,Q=c,N=l,O=u,U=h,G=f,H=A,j=d,W=p=65535&C|S<<16,Y=g,J=y,_=m,L=w,v%16==15)for(k=0;k<16;k++)I=K[k],C=65535&(B=P[k]),S=B>>>16,D=65535&I,x=I>>>16,I=K[(k+9)%16],C+=65535&(B=P[(k+9)%16]),S+=B>>>16,D+=65535&I,x+=I>>>16,b=K[(k+1)%16],C+=65535&(B=((E=P[(k+1)%16])>>>1|b<<31)^(E>>>8|b<<24)^(E>>>7|b<<25)),S+=B>>>16,D+=65535&(I=(b>>>1|E<<31)^(b>>>8|E<<24)^b>>>7),x+=I>>>16,b=K[(k+14)%16],S+=(B=((E=P[(k+14)%16])>>>19|b<<13)^(b>>>29|E<<3)^(E>>>6|b<<26))>>>16,D+=65535&(I=(b>>>19|E<<13)^(E>>>29|b<<3)^b>>>6),x+=I>>>16,x+=(D+=(S+=(C+=65535&B)>>>16)>>>16)>>>16,K[k]=65535&D|x<<16,P[k]=65535&C|S<<16;C=65535&(B=L),S=B>>>16,D=65535&(I=U),x=I>>>16,I=e[0],S+=(B=t[0])>>>16,D+=65535&I,x+=I>>>16,x+=(D+=(S+=(C+=65535&B)>>>16)>>>16)>>>16,e[0]=U=65535&D|x<<16,t[0]=L=65535&C|S<<16,C=65535&(B=G),S=B>>>16,D=65535&(I=T),x=I>>>16,I=e[1],S+=(B=t[1])>>>16,D+=65535&I,x+=I>>>16,x+=(D+=(S+=(C+=65535&B)>>>16)>>>16)>>>16,e[1]=T=65535&D|x<<16,t[1]=G=65535&C|S<<16,C=65535&(B=H),S=B>>>16,D=65535&(I=F),x=I>>>16,I=e[2],S+=(B=t[2])>>>16,D+=65535&I,x+=I>>>16,x+=(D+=(S+=(C+=65535&B)>>>16)>>>16)>>>16,e[2]=F=65535&D|x<<16,t[2]=H=65535&C|S<<16,C=65535&(B=j),S=B>>>16,D=65535&(I=M),x=I>>>16,I=e[3],S+=(B=t[3])>>>16,D+=65535&I,x+=I>>>16,x+=(D+=(S+=(C+=65535&B)>>>16)>>>16)>>>16,e[3]=M=65535&D|x<<16,t[3]=j=65535&C|S<<16,C=65535&(B=W),S=B>>>16,D=65535&(I=R),x=I>>>16,I=e[4],S+=(B=t[4])>>>16,D+=65535&I,x+=I>>>16,x+=(D+=(S+=(C+=65535&B)>>>16)>>>16)>>>16,e[4]=R=65535&D|x<<16,t[4]=W=65535&C|S<<16,C=65535&(B=Y),S=B>>>16,D=65535&(I=Q),x=I>>>16,I=e[5],S+=(B=t[5])>>>16,D+=65535&I,x+=I>>>16,x+=(D+=(S+=(C+=65535&B)>>>16)>>>16)>>>16,e[5]=Q=65535&D|x<<16,t[5]=Y=65535&C|S<<16,C=65535&(B=J),S=B>>>16,D=65535&(I=N),x=I>>>16,I=e[6],S+=(B=t[6])>>>16,D+=65535&I,x+=I>>>16,x+=(D+=(S+=(C+=65535&B)>>>16)>>>16)>>>16,e[6]=N=65535&D|x<<16,t[6]=J=65535&C|S<<16,C=65535&(B=_),S=B>>>16,D=65535&(I=O),x=I>>>16,I=e[7],S+=(B=t[7])>>>16,D+=65535&I,x+=I>>>16,x+=(D+=(S+=(C+=65535&B)>>>16)>>>16)>>>16,e[7]=O=65535&D|x<<16,t[7]=_=65535&C|S<<16,q+=128,n-=128}return n}function vf(e,t,r){var n,i=new Int32Array(8),s=new Int32Array(8),a=new Uint8Array(256),o=r;for(i[0]=1779033703,i[1]=3144134277,i[2]=1013904242,i[3]=2773480762,i[4]=1359893119,i[5]=2600822924,i[6]=528734635,i[7]=1541459225,s[0]=4089235720,s[1]=2227873595,s[2]=4271175723,s[3]=1595750129,s[4]=2917565137,s[5]=725511199,s[6]=4215389547,s[7]=327033209,Ef(i,s,t,r),r%=128,n=0;n=0;--i)If(e,t,n=r[i/8|0]>>(7&i)&1),kf(t,e),kf(e,e),If(e,t,n)}function Sf(e,t){var r=[Jh(),Jh(),Jh(),Jh()];af(r[0],ef),af(r[1],tf),af(r[2],Vh),pf(r[3],ef,tf),Cf(e,r,t)}function Df(e,t,r){var n,i=new Uint8Array(64),s=[Jh(),Jh(),Jh(),Jh()];for(r||_h(t,32),vf(i,t,32),i[0]&=248,i[31]&=127,i[31]|=64,Sf(s,i),Bf(e,s),n=0;n<32;n++)t[n+32]=e[n];return 0}var xf=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function Kf(e,t){var r,n,i,s;for(n=63;n>=32;--n){for(r=0,i=n-32,s=n-12;i>4)*xf[i],r=t[i]>>8,t[i]&=255;for(i=0;i<32;i++)t[i]-=r*xf[i];for(n=0;n<32;n++)t[n+1]+=t[n]>>8,e[n]=255&t[n]}function Pf(e){var t,r=new Float64Array(64);for(t=0;t<64;t++)r[t]=e[t];for(t=0;t<64;t++)e[t]=0;Kf(e,r)}var Uf=64;function Tf(){for(var e=0;e=0;r--)gf(n,n),1!==r&&pf(n,n,t);for(r=0;r<16;r++)e[r]=n[r]}(r,r),pf(r,r,i),pf(r,r,s),pf(r,r,s),pf(e[0],r,s),gf(n,e[0]),pf(n,n,s),uf(n,i)&&pf(e[0],e[0],rf),gf(n,e[0]),pf(n,n,s),uf(n,i)?-1:(hf(e[0])===t[31]>>7&&df(e[0],Zh,e[0]),pf(e[3],e[0],e[1]),0)}(c,n))return-1;for(i=0;i=0},Yh.sign.keyPair=function(){var e=new Uint8Array(32),t=new Uint8Array(64);return Df(e,t),{publicKey:e,secretKey:t}},Yh.sign.keyPair.fromSecretKey=function(e){if(Tf(e),64!==e.length)throw new Error("bad secret key size");for(var t=new Uint8Array(32),r=0;r>>4^b),b^=g,w^=g<<4,g=65535&(w>>>16^b),b^=g,w^=g<<16,g=858993459&(b>>>2^w),w^=g,b^=g<<2,g=16711935&(b>>>8^w),w^=g,b^=g<<8,g=1431655765&(w>>>1^b),b^=g,w^=g<<1,w=w<<1|w>>>31,b=b<<1|b>>>31,p=0;p>>4|b<<28)^e[d+1],g=w,w=b,b=g^(o[y>>>24&63]|l[y>>>16&63]|h[y>>>8&63]|A[63&y]|a[m>>>24&63]|c[m>>>16&63]|u[m>>>8&63]|f[63&m]);g=w,w=b,b=g}w=w>>>1|w<<31,b=b>>>1|b<<31,g=1431655765&(w>>>1^b),b^=g,w^=g<<1,g=16711935&(b>>>8^w),w^=g,b^=g<<8,g=858993459&(b>>>2^w),w^=g,b^=g<<2,g=65535&(w>>>16^b),b^=g,w^=g<<16,g=252645135&(w>>>4^b),b^=g,w^=g<<4,S[D++]=w>>>24,S[D++]=w>>>16&255,S[D++]=w>>>8&255,S[D++]=255&w,S[D++]=b>>>24,S[D++]=b>>>16&255,S[D++]=b>>>8&255,S[D++]=255&b}return r||(S=function(e){let t,r=null;if(t=0,!r){for(r=1;0===e[e.length-r];)r++;r--}return e.subarray(0,e.length-r)}(S)),S}function Rf(e){const t=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964],r=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697],n=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272],i=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144],s=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],a=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],o=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],c=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],l=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],u=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],h=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800],f=[0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744],A=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128],d=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],p=e.length>8?3:1,g=new Array(32*p),y=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0];let m,w,b,E=0,v=0;for(let k=0;k>>4^k),k^=b,p^=b<<4,b=65535&(k>>>-16^p),p^=b,k^=b<<-16,b=858993459&(p>>>2^k),k^=b,p^=b<<2,b=65535&(k>>>-16^p),p^=b,k^=b<<-16,b=1431655765&(p>>>1^k),k^=b,p^=b<<1,b=16711935&(k>>>8^p),p^=b,k^=b<<8,b=1431655765&(p>>>1^k),k^=b,p^=b<<1,b=p<<8|k>>>20&240,p=k<<24|k<<8&16711680|k>>>8&65280|k>>>24&240,k=b;for(let e=0;e>>26,k=k<<2|k>>>26):(p=p<<1|p>>>27,k=k<<1|k>>>27),p&=-15,k&=-15,m=t[p>>>28]|r[p>>>24&15]|n[p>>>20&15]|i[p>>>16&15]|s[p>>>12&15]|a[p>>>8&15]|o[p>>>4&15],w=c[k>>>28]|l[k>>>24&15]|u[k>>>20&15]|h[k>>>16&15]|f[k>>>12&15]|A[k>>>8&15]|d[k>>>4&15],b=65535&(w>>>16^m),g[v++]=m^b,g[v++]=w^b<<16}return g}function Qf(e){this.key=[];for(let t=0;t<3;t++)this.key.push(new Uint8Array(e.subarray(8*t,8*t+8)));this.encrypt=function(e){return Mf(Rf(this.key[2]),Mf(Rf(this.key[1]),Mf(Rf(this.key[0]),e,!0),!1),!0)}}function Nf(){this.BlockSize=8,this.KeySize=16,this.setKey=function(e){if(this.masking=new Array(16),this.rotate=new Array(16),this.reset(),e.length!==this.KeySize)throw new Error("CAST-128: keys must be 16 bytes");return this.keySchedule(e),!0},this.reset=function(){for(let e=0;e<16;e++)this.masking[e]=0,this.rotate[e]=0},this.getBlockSize=function(){return this.BlockSize},this.encrypt=function(e){const t=new Array(e.length);for(let s=0;s>>24&255,t[s+1]=c>>>16&255,t[s+2]=c>>>8&255,t[s+3]=255&c,t[s+4]=o>>>24&255,t[s+5]=o>>>16&255,t[s+6]=o>>>8&255,t[s+7]=255&o}return t},this.decrypt=function(e){const t=new Array(e.length);for(let s=0;s>>24&255,t[s+1]=c>>>16&255,t[s+2]=c>>>8&255,t[s+3]=255&c,t[s+4]=o>>>24&255,t[s+5]=o>>16&255,t[s+6]=o>>8&255,t[s+7]=255&o}return t};const e=new Array(4);e[0]=new Array(4),e[0][0]=[4,0,13,15,12,14,8],e[0][1]=[5,2,16,18,17,19,10],e[0][2]=[6,3,23,22,21,20,9],e[0][3]=[7,1,26,25,27,24,11],e[1]=new Array(4),e[1][0]=[0,6,21,23,20,22,16],e[1][1]=[1,4,0,2,1,3,18],e[1][2]=[2,5,7,6,5,4,17],e[1][3]=[3,7,10,9,11,8,19],e[2]=new Array(4),e[2][0]=[4,0,13,15,12,14,8],e[2][1]=[5,2,16,18,17,19,10],e[2][2]=[6,3,23,22,21,20,9],e[2][3]=[7,1,26,25,27,24,11],e[3]=new Array(4),e[3][0]=[0,6,21,23,20,22,16],e[3][1]=[1,4,0,2,1,3,18],e[3][2]=[2,5,7,6,5,4,17],e[3][3]=[3,7,10,9,11,8,19];const t=new Array(4);function r(e,t,r){const n=t+e,i=n<>>32-r;return(s[0][i>>>24]^s[1][i>>>16&255])-s[2][i>>>8&255]+s[3][255&i]}function n(e,t,r){const n=t^e,i=n<>>32-r;return s[0][i>>>24]-s[1][i>>>16&255]+s[2][i>>>8&255]^s[3][255&i]}function i(e,t,r){const n=t-e,i=n<>>32-r;return(s[0][i>>>24]+s[1][i>>>16&255]^s[2][i>>>8&255])-s[3][255&i]}t[0]=new Array(4),t[0][0]=[24,25,23,22,18],t[0][1]=[26,27,21,20,22],t[0][2]=[28,29,19,18,25],t[0][3]=[30,31,17,16,28],t[1]=new Array(4),t[1][0]=[3,2,12,13,8],t[1][1]=[1,0,14,15,13],t[1][2]=[7,6,8,9,3],t[1][3]=[5,4,10,11,7],t[2]=new Array(4),t[2][0]=[19,18,28,29,25],t[2][1]=[17,16,30,31,28],t[2][2]=[23,22,24,25,18],t[2][3]=[21,20,26,27,22],t[3]=new Array(4),t[3][0]=[8,9,7,6,3],t[3][1]=[10,11,5,4,7],t[3][2]=[12,13,3,2,8],t[3][3]=[14,15,1,0,13],this.keySchedule=function(r){const n=new Array(8),i=new Array(32);let a;for(let e=0;e<4;e++)a=4*e,n[e]=r[a]<<24|r[a+1]<<16|r[a+2]<<8|r[a+3];const o=[6,7,4,5];let c,l=0;for(let r=0;r<2;r++)for(let r=0;r<4;r++){for(a=0;a<4;a++){const t=e[r][a];c=n[t[1]],c^=s[4][n[t[2]>>>2]>>>24-8*(3&t[2])&255],c^=s[5][n[t[3]>>>2]>>>24-8*(3&t[3])&255],c^=s[6][n[t[4]>>>2]>>>24-8*(3&t[4])&255],c^=s[7][n[t[5]>>>2]>>>24-8*(3&t[5])&255],c^=s[o[a]][n[t[6]>>>2]>>>24-8*(3&t[6])&255],n[t[0]]=c}for(a=0;a<4;a++){const e=t[r][a];c=s[4][n[e[0]>>>2]>>>24-8*(3&e[0])&255],c^=s[5][n[e[1]>>>2]>>>24-8*(3&e[1])&255],c^=s[6][n[e[2]>>>2]>>>24-8*(3&e[2])&255],c^=s[7][n[e[3]>>>2]>>>24-8*(3&e[3])&255],c^=s[4+a][n[e[4]>>>2]>>>24-8*(3&e[4])&255],i[l]=c,l++}}for(let e=0;e<16;e++)this.masking[e]=i[e],this.rotate[e]=31&i[16+e]};const s=new Array(8);s[0]=[821772500,2678128395,1810681135,1059425402,505495343,2617265619,1610868032,3483355465,3218386727,2294005173,3791863952,2563806837,1852023008,365126098,3269944861,584384398,677919599,3229601881,4280515016,2002735330,1136869587,3744433750,2289869850,2731719981,2714362070,879511577,1639411079,575934255,717107937,2857637483,576097850,2731753936,1725645e3,2810460463,5111599,767152862,2543075244,1251459544,1383482551,3052681127,3089939183,3612463449,1878520045,1510570527,2189125840,2431448366,582008916,3163445557,1265446783,1354458274,3529918736,3202711853,3073581712,3912963487,3029263377,1275016285,4249207360,2905708351,3304509486,1442611557,3585198765,2712415662,2731849581,3248163920,2283946226,208555832,2766454743,1331405426,1447828783,3315356441,3108627284,2957404670,2981538698,3339933917,1669711173,286233437,1465092821,1782121619,3862771680,710211251,980974943,1651941557,430374111,2051154026,704238805,4128970897,3144820574,2857402727,948965521,3333752299,2227686284,718756367,2269778983,2731643755,718440111,2857816721,3616097120,1113355533,2478022182,410092745,1811985197,1944238868,2696854588,1415722873,1682284203,1060277122,1998114690,1503841958,82706478,2315155686,1068173648,845149890,2167947013,1768146376,1993038550,3566826697,3390574031,940016341,3355073782,2328040721,904371731,1205506512,4094660742,2816623006,825647681,85914773,2857843460,1249926541,1417871568,3287612,3211054559,3126306446,1975924523,1353700161,2814456437,2438597621,1800716203,722146342,2873936343,1151126914,4160483941,2877670899,458611604,2866078500,3483680063,770352098,2652916994,3367839148,3940505011,3585973912,3809620402,718646636,2504206814,2914927912,3631288169,2857486607,2860018678,575749918,2857478043,718488780,2069512688,3548183469,453416197,1106044049,3032691430,52586708,3378514636,3459808877,3211506028,1785789304,218356169,3571399134,3759170522,1194783844,1523787992,3007827094,1975193539,2555452411,1341901877,3045838698,3776907964,3217423946,2802510864,2889438986,1057244207,1636348243,3761863214,1462225785,2632663439,481089165,718503062,24497053,3332243209,3344655856,3655024856,3960371065,1195698900,2971415156,3710176158,2115785917,4027663609,3525578417,2524296189,2745972565,3564906415,1372086093,1452307862,2780501478,1476592880,3389271281,18495466,2378148571,901398090,891748256,3279637769,3157290713,2560960102,1447622437,4284372637,216884176,2086908623,1879786977,3588903153,2242455666,2938092967,3559082096,2810645491,758861177,1121993112,215018983,642190776,4169236812,1196255959,2081185372,3508738393,941322904,4124243163,2877523539,1848581667,2205260958,3180453958,2589345134,3694731276,550028657,2519456284,3789985535,2973870856,2093648313,443148163,46942275,2734146937,1117713533,1115362972,1523183689,3717140224,1551984063],s[1]=[522195092,4010518363,1776537470,960447360,4267822970,4005896314,1435016340,1929119313,2913464185,1310552629,3579470798,3724818106,2579771631,1594623892,417127293,2715217907,2696228731,1508390405,3994398868,3925858569,3695444102,4019471449,3129199795,3770928635,3520741761,990456497,4187484609,2783367035,21106139,3840405339,631373633,3783325702,532942976,396095098,3548038825,4267192484,2564721535,2011709262,2039648873,620404603,3776170075,2898526339,3612357925,4159332703,1645490516,223693667,1567101217,3362177881,1029951347,3470931136,3570957959,1550265121,119497089,972513919,907948164,3840628539,1613718692,3594177948,465323573,2659255085,654439692,2575596212,2699288441,3127702412,277098644,624404830,4100943870,2717858591,546110314,2403699828,3655377447,1321679412,4236791657,1045293279,4010672264,895050893,2319792268,494945126,1914543101,2777056443,3894764339,2219737618,311263384,4275257268,3458730721,669096869,3584475730,3835122877,3319158237,3949359204,2005142349,2713102337,2228954793,3769984788,569394103,3855636576,1425027204,108000370,2736431443,3671869269,3043122623,1750473702,2211081108,762237499,3972989403,2798899386,3061857628,2943854345,867476300,964413654,1591880597,1594774276,2179821409,552026980,3026064248,3726140315,2283577634,3110545105,2152310760,582474363,1582640421,1383256631,2043843868,3322775884,1217180674,463797851,2763038571,480777679,2718707717,2289164131,3118346187,214354409,200212307,3810608407,3025414197,2674075964,3997296425,1847405948,1342460550,510035443,4080271814,815934613,833030224,1620250387,1945732119,2703661145,3966000196,1388869545,3456054182,2687178561,2092620194,562037615,1356438536,3409922145,3261847397,1688467115,2150901366,631725691,3840332284,549916902,3455104640,394546491,837744717,2114462948,751520235,2221554606,2415360136,3999097078,2063029875,803036379,2702586305,821456707,3019566164,360699898,4018502092,3511869016,3677355358,2402471449,812317050,49299192,2570164949,3259169295,2816732080,3331213574,3101303564,2156015656,3705598920,3546263921,143268808,3200304480,1638124008,3165189453,3341807610,578956953,2193977524,3638120073,2333881532,807278310,658237817,2969561766,1641658566,11683945,3086995007,148645947,1138423386,4158756760,1981396783,2401016740,3699783584,380097457,2680394679,2803068651,3334260286,441530178,4016580796,1375954390,761952171,891809099,2183123478,157052462,3683840763,1592404427,341349109,2438483839,1417898363,644327628,2233032776,2353769706,2201510100,220455161,1815641738,182899273,2995019788,3627381533,3702638151,2890684138,1052606899,588164016,1681439879,4038439418,2405343923,4229449282,167996282,1336969661,1688053129,2739224926,1543734051,1046297529,1138201970,2121126012,115334942,1819067631,1902159161,1941945968,2206692869,1159982321],s[2]=[2381300288,637164959,3952098751,3893414151,1197506559,916448331,2350892612,2932787856,3199334847,4009478890,3905886544,1373570990,2450425862,4037870920,3778841987,2456817877,286293407,124026297,3001279700,1028597854,3115296800,4208886496,2691114635,2188540206,1430237888,1218109995,3572471700,308166588,570424558,2187009021,2455094765,307733056,1310360322,3135275007,1384269543,2388071438,863238079,2359263624,2801553128,3380786597,2831162807,1470087780,1728663345,4072488799,1090516929,532123132,2389430977,1132193179,2578464191,3051079243,1670234342,1434557849,2711078940,1241591150,3314043432,3435360113,3091448339,1812415473,2198440252,267246943,796911696,3619716990,38830015,1526438404,2806502096,374413614,2943401790,1489179520,1603809326,1920779204,168801282,260042626,2358705581,1563175598,2397674057,1356499128,2217211040,514611088,2037363785,2186468373,4022173083,2792511869,2913485016,1173701892,4200428547,3896427269,1334932762,2455136706,602925377,2835607854,1613172210,41346230,2499634548,2457437618,2188827595,41386358,4172255629,1313404830,2405527007,3801973774,2217704835,873260488,2528884354,2478092616,4012915883,2555359016,2006953883,2463913485,575479328,2218240648,2099895446,660001756,2341502190,3038761536,3888151779,3848713377,3286851934,1022894237,1620365795,3449594689,1551255054,15374395,3570825345,4249311020,4151111129,3181912732,310226346,1133119310,530038928,136043402,2476768958,3107506709,2544909567,1036173560,2367337196,1681395281,1758231547,3641649032,306774401,1575354324,3716085866,1990386196,3114533736,2455606671,1262092282,3124342505,2768229131,4210529083,1833535011,423410938,660763973,2187129978,1639812e3,3508421329,3467445492,310289298,272797111,2188552562,2456863912,310240523,677093832,1013118031,901835429,3892695601,1116285435,3036471170,1337354835,243122523,520626091,277223598,4244441197,4194248841,1766575121,594173102,316590669,742362309,3536858622,4176435350,3838792410,2501204839,1229605004,3115755532,1552908988,2312334149,979407927,3959474601,1148277331,176638793,3614686272,2083809052,40992502,1340822838,2731552767,3535757508,3560899520,1354035053,122129617,7215240,2732932949,3118912700,2718203926,2539075635,3609230695,3725561661,1928887091,2882293555,1988674909,2063640240,2491088897,1459647954,4189817080,2302804382,1113892351,2237858528,1927010603,4002880361,1856122846,1594404395,2944033133,3855189863,3474975698,1643104450,4054590833,3431086530,1730235576,2984608721,3084664418,2131803598,4178205752,267404349,1617849798,1616132681,1462223176,736725533,2327058232,551665188,2945899023,1749386277,2575514597,1611482493,674206544,2201269090,3642560800,728599968,1680547377,2620414464,1388111496,453204106,4156223445,1094905244,2754698257,2201108165,3757000246,2704524545,3922940700,3996465027],s[3]=[2645754912,532081118,2814278639,3530793624,1246723035,1689095255,2236679235,4194438865,2116582143,3859789411,157234593,2045505824,4245003587,1687664561,4083425123,605965023,672431967,1336064205,3376611392,214114848,4258466608,3232053071,489488601,605322005,3998028058,264917351,1912574028,756637694,436560991,202637054,135989450,85393697,2152923392,3896401662,2895836408,2145855233,3535335007,115294817,3147733898,1922296357,3464822751,4117858305,1037454084,2725193275,2127856640,1417604070,1148013728,1827919605,642362335,2929772533,909348033,1346338451,3547799649,297154785,1917849091,4161712827,2883604526,3968694238,1469521537,3780077382,3375584256,1763717519,136166297,4290970789,1295325189,2134727907,2798151366,1566297257,3672928234,2677174161,2672173615,965822077,2780786062,289653839,1133871874,3491843819,35685304,1068898316,418943774,672553190,642281022,2346158704,1954014401,3037126780,4079815205,2030668546,3840588673,672283427,1776201016,359975446,3750173538,555499703,2769985273,1324923,69110472,152125443,3176785106,3822147285,1340634837,798073664,1434183902,15393959,216384236,1303690150,3881221631,3711134124,3960975413,106373927,2578434224,1455997841,1801814300,1578393881,1854262133,3188178946,3258078583,2302670060,1539295533,3505142565,3078625975,2372746020,549938159,3278284284,2620926080,181285381,2865321098,3970029511,68876850,488006234,1728155692,2608167508,836007927,2435231793,919367643,3339422534,3655756360,1457871481,40520939,1380155135,797931188,234455205,2255801827,3990488299,397000196,739833055,3077865373,2871719860,4022553888,772369276,390177364,3853951029,557662966,740064294,1640166671,1699928825,3535942136,622006121,3625353122,68743880,1742502,219489963,1664179233,1577743084,1236991741,410585305,2366487942,823226535,1050371084,3426619607,3586839478,212779912,4147118561,1819446015,1911218849,530248558,3486241071,3252585495,2886188651,3410272728,2342195030,20547779,2982490058,3032363469,3631753222,312714466,1870521650,1493008054,3491686656,615382978,4103671749,2534517445,1932181,2196105170,278426614,6369430,3274544417,2913018367,697336853,2143000447,2946413531,701099306,1558357093,2805003052,3500818408,2321334417,3567135975,216290473,3591032198,23009561,1996984579,3735042806,2024298078,3739440863,569400510,2339758983,3016033873,3097871343,3639523026,3844324983,3256173865,795471839,2951117563,4101031090,4091603803,3603732598,971261452,534414648,428311343,3389027175,2844869880,694888862,1227866773,2456207019,3043454569,2614353370,3749578031,3676663836,459166190,4132644070,1794958188,51825668,2252611902,3084671440,2036672799,3436641603,1099053433,2469121526,3059204941,1323291266,2061838604,1018778475,2233344254,2553501054,334295216,3556750194,1065731521,183467730],s[4]=[2127105028,745436345,2601412319,2788391185,3093987327,500390133,1155374404,389092991,150729210,3891597772,3523549952,1935325696,716645080,946045387,2901812282,1774124410,3869435775,4039581901,3293136918,3438657920,948246080,363898952,3867875531,1286266623,1598556673,68334250,630723836,1104211938,1312863373,613332731,2377784574,1101634306,441780740,3129959883,1917973735,2510624549,3238456535,2544211978,3308894634,1299840618,4076074851,1756332096,3977027158,297047435,3790297736,2265573040,3621810518,1311375015,1667687725,47300608,3299642885,2474112369,201668394,1468347890,576830978,3594690761,3742605952,1958042578,1747032512,3558991340,1408974056,3366841779,682131401,1033214337,1545599232,4265137049,206503691,103024618,2855227313,1337551222,2428998917,2963842932,4015366655,3852247746,2796956967,3865723491,3747938335,247794022,3755824572,702416469,2434691994,397379957,851939612,2314769512,218229120,1380406772,62274761,214451378,3170103466,2276210409,3845813286,28563499,446592073,1693330814,3453727194,29968656,3093872512,220656637,2470637031,77972100,1667708854,1358280214,4064765667,2395616961,325977563,4277240721,4220025399,3605526484,3355147721,811859167,3069544926,3962126810,652502677,3075892249,4132761541,3498924215,1217549313,3250244479,3858715919,3053989961,1538642152,2279026266,2875879137,574252750,3324769229,2651358713,1758150215,141295887,2719868960,3515574750,4093007735,4194485238,1082055363,3417560400,395511885,2966884026,179534037,3646028556,3738688086,1092926436,2496269142,257381841,3772900718,1636087230,1477059743,2499234752,3811018894,2675660129,3285975680,90732309,1684827095,1150307763,1723134115,3237045386,1769919919,1240018934,815675215,750138730,2239792499,1234303040,1995484674,138143821,675421338,1145607174,1936608440,3238603024,2345230278,2105974004,323969391,779555213,3004902369,2861610098,1017501463,2098600890,2628620304,2940611490,2682542546,1171473753,3656571411,3687208071,4091869518,393037935,159126506,1662887367,1147106178,391545844,3452332695,1891500680,3016609650,1851642611,546529401,1167818917,3194020571,2848076033,3953471836,575554290,475796850,4134673196,450035699,2351251534,844027695,1080539133,86184846,1554234488,3692025454,1972511363,2018339607,1491841390,1141460869,1061690759,4244549243,2008416118,2351104703,2868147542,1598468138,722020353,1027143159,212344630,1387219594,1725294528,3745187956,2500153616,458938280,4129215917,1828119673,544571780,3503225445,2297937496,1241802790,267843827,2694610800,1397140384,1558801448,3782667683,1806446719,929573330,2234912681,400817706,616011623,4121520928,3603768725,1761550015,1968522284,4053731006,4192232858,4005120285,872482584,3140537016,3894607381,2287405443,1963876937,3663887957,1584857e3,2975024454,1833426440,4025083860],s[5]=[4143615901,749497569,1285769319,3795025788,2514159847,23610292,3974978748,844452780,3214870880,3751928557,2213566365,1676510905,448177848,3730751033,4086298418,2307502392,871450977,3222878141,4110862042,3831651966,2735270553,1310974780,2043402188,1218528103,2736035353,4274605013,2702448458,3936360550,2693061421,162023535,2827510090,687910808,23484817,3784910947,3371371616,779677500,3503626546,3473927188,4157212626,3500679282,4248902014,2466621104,3899384794,1958663117,925738300,1283408968,3669349440,1840910019,137959847,2679828185,1239142320,1315376211,1547541505,1690155329,739140458,3128809933,3933172616,3876308834,905091803,1548541325,4040461708,3095483362,144808038,451078856,676114313,2861728291,2469707347,993665471,373509091,2599041286,4025009006,4170239449,2149739950,3275793571,3749616649,2794760199,1534877388,572371878,2590613551,1753320020,3467782511,1405125690,4270405205,633333386,3026356924,3475123903,632057672,2846462855,1404951397,3882875879,3915906424,195638627,2385783745,3902872553,1233155085,3355999740,2380578713,2702246304,2144565621,3663341248,3894384975,2502479241,4248018925,3094885567,1594115437,572884632,3385116731,767645374,1331858858,1475698373,3793881790,3532746431,1321687957,619889600,1121017241,3440213920,2070816767,2833025776,1933951238,4095615791,890643334,3874130214,859025556,360630002,925594799,1764062180,3920222280,4078305929,979562269,2810700344,4087740022,1949714515,546639971,1165388173,3069891591,1495988560,922170659,1291546247,2107952832,1813327274,3406010024,3306028637,4241950635,153207855,2313154747,1608695416,1150242611,1967526857,721801357,1220138373,3691287617,3356069787,2112743302,3281662835,1111556101,1778980689,250857638,2298507990,673216130,2846488510,3207751581,3562756981,3008625920,3417367384,2198807050,529510932,3547516680,3426503187,2364944742,102533054,2294910856,1617093527,1204784762,3066581635,1019391227,1069574518,1317995090,1691889997,3661132003,510022745,3238594800,1362108837,1817929911,2184153760,805817662,1953603311,3699844737,120799444,2118332377,207536705,2282301548,4120041617,145305846,2508124933,3086745533,3261524335,1877257368,2977164480,3160454186,2503252186,4221677074,759945014,254147243,2767453419,3801518371,629083197,2471014217,907280572,3900796746,940896768,2751021123,2625262786,3161476951,3661752313,3260732218,1425318020,2977912069,1496677566,3988592072,2140652971,3126511541,3069632175,977771578,1392695845,1698528874,1411812681,1369733098,1343739227,3620887944,1142123638,67414216,3102056737,3088749194,1626167401,2546293654,3941374235,697522451,33404913,143560186,2595682037,994885535,1247667115,3859094837,2699155541,3547024625,4114935275,2968073508,3199963069,2732024527,1237921620,951448369,1898488916,1211705605,2790989240,2233243581,3598044975],s[6]=[2246066201,858518887,1714274303,3485882003,713916271,2879113490,3730835617,539548191,36158695,1298409750,419087104,1358007170,749914897,2989680476,1261868530,2995193822,2690628854,3443622377,3780124940,3796824509,2976433025,4259637129,1551479e3,512490819,1296650241,951993153,2436689437,2460458047,144139966,3136204276,310820559,3068840729,643875328,1969602020,1680088954,2185813161,3283332454,672358534,198762408,896343282,276269502,3014846926,84060815,197145886,376173866,3943890818,3813173521,3545068822,1316698879,1598252827,2633424951,1233235075,859989710,2358460855,3503838400,3409603720,1203513385,1193654839,2792018475,2060853022,207403770,1144516871,3068631394,1121114134,177607304,3785736302,326409831,1929119770,2983279095,4183308101,3474579288,3200513878,3228482096,119610148,1170376745,3378393471,3163473169,951863017,3337026068,3135789130,2907618374,1183797387,2015970143,4045674555,2182986399,2952138740,3928772205,384012900,2454997643,10178499,2879818989,2596892536,111523738,2995089006,451689641,3196290696,235406569,1441906262,3890558523,3013735005,4158569349,1644036924,376726067,1006849064,3664579700,2041234796,1021632941,1374734338,2566452058,371631263,4007144233,490221539,206551450,3140638584,1053219195,1853335209,3412429660,3562156231,735133835,1623211703,3104214392,2738312436,4096837757,3366392578,3110964274,3956598718,3196820781,2038037254,3877786376,2339753847,300912036,3766732888,2372630639,1516443558,4200396704,1574567987,4069441456,4122592016,2699739776,146372218,2748961456,2043888151,35287437,2596680554,655490400,1132482787,110692520,1031794116,2188192751,1324057718,1217253157,919197030,686247489,3261139658,1028237775,3135486431,3059715558,2460921700,986174950,2661811465,4062904701,2752986992,3709736643,367056889,1353824391,731860949,1650113154,1778481506,784341916,357075625,3608602432,1074092588,2480052770,3811426202,92751289,877911070,3600361838,1231880047,480201094,3756190983,3094495953,434011822,87971354,363687820,1717726236,1901380172,3926403882,2481662265,400339184,1490350766,2661455099,1389319756,2558787174,784598401,1983468483,30828846,3550527752,2716276238,3841122214,1765724805,1955612312,1277890269,1333098070,1564029816,2704417615,1026694237,3287671188,1260819201,3349086767,1016692350,1582273796,1073413053,1995943182,694588404,1025494639,3323872702,3551898420,4146854327,453260480,1316140391,1435673405,3038941953,3486689407,1622062951,403978347,817677117,950059133,4246079218,3278066075,1486738320,1417279718,481875527,2549965225,3933690356,760697757,1452955855,3897451437,1177426808,1702951038,4085348628,2447005172,1084371187,3516436277,3068336338,1073369276,1027665953,3284188590,1230553676,1368340146,2226246512,267243139,2274220762,4070734279,2497715176,2423353163,2504755875],s[7]=[3793104909,3151888380,2817252029,895778965,2005530807,3871412763,237245952,86829237,296341424,3851759377,3974600970,2475086196,709006108,1994621201,2972577594,937287164,3734691505,168608556,3189338153,2225080640,3139713551,3033610191,3025041904,77524477,185966941,1208824168,2344345178,1721625922,3354191921,1066374631,1927223579,1971335949,2483503697,1551748602,2881383779,2856329572,3003241482,48746954,1398218158,2050065058,313056748,4255789917,393167848,1912293076,940740642,3465845460,3091687853,2522601570,2197016661,1727764327,364383054,492521376,1291706479,3264136376,1474851438,1685747964,2575719748,1619776915,1814040067,970743798,1561002147,2925768690,2123093554,1880132620,3151188041,697884420,2550985770,2607674513,2659114323,110200136,1489731079,997519150,1378877361,3527870668,478029773,2766872923,1022481122,431258168,1112503832,897933369,2635587303,669726182,3383752315,918222264,163866573,3246985393,3776823163,114105080,1903216136,761148244,3571337562,1690750982,3166750252,1037045171,1888456500,2010454850,642736655,616092351,365016990,1185228132,4174898510,1043824992,2023083429,2241598885,3863320456,3279669087,3674716684,108438443,2132974366,830746235,606445527,4173263986,2204105912,1844756978,2532684181,4245352700,2969441100,3796921661,1335562986,4061524517,2720232303,2679424040,634407289,885462008,3294724487,3933892248,2094100220,339117932,4048830727,3202280980,1458155303,2689246273,1022871705,2464987878,3714515309,353796843,2822958815,4256850100,4052777845,551748367,618185374,3778635579,4020649912,1904685140,3069366075,2670879810,3407193292,2954511620,4058283405,2219449317,3135758300,1120655984,3447565834,1474845562,3577699062,550456716,3466908712,2043752612,881257467,869518812,2005220179,938474677,3305539448,3850417126,1315485940,3318264702,226533026,965733244,321539988,1136104718,804158748,573969341,3708209826,937399083,3290727049,2901666755,1461057207,4013193437,4066861423,3242773476,2421326174,1581322155,3028952165,786071460,3900391652,3918438532,1485433313,4023619836,3708277595,3678951060,953673138,1467089153,1930354364,1533292819,2492563023,1346121658,1685000834,1965281866,3765933717,4190206607,2052792609,3515332758,690371149,3125873887,2180283551,2903598061,3933952357,436236910,289419410,14314871,1242357089,2904507907,1616633776,2666382180,585885352,3471299210,2699507360,1432659641,277164553,3354103607,770115018,2303809295,3741942315,3177781868,2853364978,2269453327,3774259834,987383833,1290892879,225909803,1741533526,890078084,1496906255,1111072499,916028167,243534141,1252605537,2204162171,531204876,290011180,3916834213,102027703,237315147,209093447,1486785922,220223953,2758195998,4175039106,82940208,3127791296,2569425252,518464269,1353887104,3941492737,2377294467,3935040926]}function Of(e){this.cast5=new Nf,this.cast5.setKey(e),this.encrypt=function(e){return this.cast5.encrypt(e)}}Qf.keySize=Qf.prototype.keySize=24,Qf.blockSize=Qf.prototype.blockSize=8,Of.blockSize=Of.prototype.blockSize=8,Of.keySize=Of.prototype.keySize=16;const Lf=4294967295;function Gf(e,t){return(e<>>32-t)&Lf}function Hf(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24}function jf(e,t,r){e.splice(t,4,255&r,r>>>8&255,r>>>16&255,r>>>24&255)}function Wf(e,t){return e>>>8*t&255}function Yf(e){this.tf=function(){let e=null,t=null,r=-1,n=[],i=[[],[],[],[]];function s(e){return i[0][Wf(e,0)]^i[1][Wf(e,1)]^i[2][Wf(e,2)]^i[3][Wf(e,3)]}function a(e){return i[0][Wf(e,3)]^i[1][Wf(e,0)]^i[2][Wf(e,1)]^i[3][Wf(e,2)]}function o(e,t){let r=s(t[0]),i=a(t[1]);t[2]=Gf(t[2]^r+i+n[4*e+8]&Lf,31),t[3]=Gf(t[3],1)^r+2*i+n[4*e+9]&Lf,r=s(t[2]),i=a(t[3]),t[0]=Gf(t[0]^r+i+n[4*e+10]&Lf,31),t[1]=Gf(t[1],1)^r+2*i+n[4*e+11]&Lf}function c(e,t){let r=s(t[0]),i=a(t[1]);t[2]=Gf(t[2],1)^r+i+n[4*e+10]&Lf,t[3]=Gf(t[3]^r+2*i+n[4*e+11]&Lf,31),r=s(t[2]),i=a(t[3]),t[0]=Gf(t[0],1)^r+i+n[4*e+8]&Lf,t[1]=Gf(t[1]^r+2*i+n[4*e+9]&Lf,31)}return{name:"twofish",blocksize:16,open:function(t){let r,s,a,o,c;e=t;const l=[],u=[],h=[];let f;const A=[];let d,p,g;const y=[[8,1,7,13,6,15,3,2,0,11,5,9,14,12,10,4],[2,8,11,13,15,7,6,14,3,1,9,4,0,10,12,5]],m=[[14,12,11,8,1,2,3,5,15,4,10,6,7,0,9,13],[1,14,2,11,4,12,3,7,6,13,10,5,15,9,0,8]],w=[[11,10,5,14,6,13,9,0,12,8,15,3,2,4,7,1],[4,12,7,5,1,6,9,10,0,14,13,8,2,11,3,15]],b=[[13,7,15,4,1,2,6,14,9,11,3,0,8,5,12,10],[11,9,5,1,12,3,13,14,6,4,7,15,2,0,8,10]],E=[0,8,1,9,2,10,3,11,4,12,5,13,6,14,7,15],v=[0,9,2,11,4,13,6,15,8,1,10,3,12,5,14,7],k=[[],[]],I=[[],[],[],[]];function B(e){return e^e>>2^[0,90,180,238][3&e]}function C(e){return e^e>>1^e>>2^[0,238,180,90][3&e]}function S(e,t){let r,n,i;for(r=0;r<8;r++)n=t>>>24,t=t<<8&Lf|e>>>24,e=e<<8&Lf,i=n<<1,128&n&&(i^=333),t^=n^i<<16,i^=n>>>1,1&n&&(i^=166),t^=i<<24|i<<8;return t}function D(e,t){const r=t>>4,n=15&t,i=y[e][r^n],s=m[e][E[n]^v[r]];return b[e][E[s]^v[i]]<<4|w[e][i^s]}function x(e,t){let r=Wf(e,0),n=Wf(e,1),i=Wf(e,2),s=Wf(e,3);switch(f){case 4:r=k[1][r]^Wf(t[3],0),n=k[0][n]^Wf(t[3],1),i=k[0][i]^Wf(t[3],2),s=k[1][s]^Wf(t[3],3);case 3:r=k[1][r]^Wf(t[2],0),n=k[1][n]^Wf(t[2],1),i=k[0][i]^Wf(t[2],2),s=k[0][s]^Wf(t[2],3);case 2:r=k[0][k[0][r]^Wf(t[1],0)]^Wf(t[0],0),n=k[0][k[1][n]^Wf(t[1],1)]^Wf(t[0],1),i=k[1][k[0][i]^Wf(t[1],2)]^Wf(t[0],2),s=k[1][k[1][s]^Wf(t[1],3)]^Wf(t[0],3)}return I[0][r]^I[1][n]^I[2][i]^I[3][s]}for(e=e.slice(0,32),r=e.length;16!==r&&24!==r&&32!==r;)e[r++]=0;for(r=0;r>2]=Hf(e,r);for(r=0;r<256;r++)k[0][r]=D(0,r),k[1][r]=D(1,r);for(r=0;r<256;r++)d=k[1][r],p=B(d),g=C(d),I[0][r]=d+(p<<8)+(g<<16)+(g<<24),I[2][r]=p+(g<<8)+(d<<16)+(g<<24),d=k[0][r],p=B(d),g=C(d),I[1][r]=g+(g<<8)+(p<<16)+(d<<24),I[3][r]=p+(d<<8)+(g<<16)+(p<<24);for(f=h.length/2,r=0;r=0;e--)c(e,s);jf(t,r,s[2]^n[0]),jf(t,r+4,s[3]^n[1]),jf(t,r+8,s[0]^n[2]),jf(t,r+12,s[1]^n[3]),r+=16},finalize:function(){return t}}}(),this.tf.open(Array.from(e),0),this.encrypt=function(e){return this.tf.encrypt(Array.from(e),0)}}function Jf(){}function _f(e){this.bf=new Jf,this.bf.init(e),this.encrypt=function(e){return this.bf.encryptBlock(e)}}Yf.keySize=Yf.prototype.keySize=32,Yf.blockSize=Yf.prototype.blockSize=16,Jf.prototype.BLOCKSIZE=8,Jf.prototype.SBOXES=[[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946],[1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055],[3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504],[976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462]],Jf.prototype.PARRAY=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],Jf.prototype.NN=16,Jf.prototype._clean=function(e){return e<0&&(e=2147483648+(2147483647&e)),e},Jf.prototype._F=function(e){let t;const r=255&e,n=255&(e>>>=8),i=255&(e>>>=8),s=255&(e>>>=8);return t=this.sboxes[0][s]+this.sboxes[1][i],t^=this.sboxes[2][n],t+=this.sboxes[3][r],t},Jf.prototype._encryptBlock=function(e){let t,r=e[0],n=e[1];for(t=0;t>>24-8*t&255,i[t+n]=r[1]>>>24-8*t&255;return i},Jf.prototype._decryptBlock=function(e){let t,r=e[0],n=e[1];for(t=this.NN+1;t>1;--t){r^=this.parray[t],n=this._F(r)^n;const e=r;r=n,n=e}r^=this.parray[1],n^=this.parray[0],e[0]=this._clean(n),e[1]=this._clean(r)},Jf.prototype.init=function(e){let t,r=0;for(this.parray=[],t=0;t=e.length&&(r=0);this.parray[t]=this.PARRAY[t]^n}for(this.sboxes=[],t=0;t<4;++t)for(this.sboxes[t]=[],r=0;r<256;++r)this.sboxes[t][r]=this.SBOXES[t][r];const n=[0,0];for(t=0;t>>24^l<<8,e[n+1]=l>>>24^c<<8,Vf(e,r,e,n),Vf(e,r,t,o),c=e[s]^e[r],l=e[s+1]^e[r+1],e[s]=c>>>16^l<<16,e[s+1]=l>>>16^c<<16,Vf(e,i,e,s),c=e[n]^e[i],l=e[n+1]^e[i+1],e[n]=l>>>31^c<<1,e[n+1]=c>>>31^l<<1}const $f=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),eA=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3].map(e=>2*e));function tA(e,t){const r=new Uint32Array(32),n=new Uint32Array(e.b.buffer,e.b.byteOffset,32);for(let t=0;t<16;t++)r[t]=e.h[t],r[t+16]=$f[t];r[24]^=e.t0[0],r[25]^=e.t0[1];const i=t?4294967295:0;r[28]^=i,r[29]^=i;for(let e=0;e<12;e++){const t=e<<4;Xf(r,n,0,8,16,24,eA[t+0],eA[t+1]),Xf(r,n,2,10,18,26,eA[t+2],eA[t+3]),Xf(r,n,4,12,20,28,eA[t+4],eA[t+5]),Xf(r,n,6,14,22,30,eA[t+6],eA[t+7]),Xf(r,n,0,10,20,30,eA[t+8],eA[t+9]),Xf(r,n,2,12,22,24,eA[t+10],eA[t+11]),Xf(r,n,4,14,16,26,eA[t+12],eA[t+13]),Xf(r,n,6,8,18,28,eA[t+14],eA[t+15])}for(let t=0;t<16;t++)e.h[t]^=r[t]^r[t+16]}class rA{constructor(e,t,r,n){const i=new Uint8Array(64);this.S={b:new Uint8Array(sA),h:new Uint32Array(iA/4),t0:new Uint32Array(2),c:0,outlen:e},i[0]=e,t&&(i[1]=t.length),i[2]=1,i[3]=1,r&&i.set(r,32),n&&i.set(n,48);const s=new Uint32Array(i.buffer,i.byteOffset,i.length/Uint32Array.BYTES_PER_ELEMENT);for(let e=0;e<16;e++)this.S.h[e]=$f[e]^s[e];if(t){const e=new Uint8Array(sA);e.set(t),this.update(e)}}update(e){if(!(e instanceof Uint8Array))throw new Error("Input must be Uint8Array or Buffer");let t=0;for(;t>2]>>8*(3&e);return this.S.h=null,t.buffer}}function nA(e,t,r,n){if(e>iA)throw new Error(`outlen must be at most ${iA} (given: ${e})`);return new rA(e,t,r,n)}const iA=64,sA=128,aA=1024,oA=205===new Uint8Array(new Uint16Array([43981]).buffer)[0];function cA(e,t,r){return e[r+0]=t,e[r+1]=t>>8,e[r+2]=t>>16,e[r+3]=t>>24,e}function lA(e,t,r){if(t>Number.MAX_SAFE_INTEGER)throw new Error("LE64: large numbers unsupported");let n=t;for(let t=r;tfunction(e,{memory:t,instance:r}){if(!oA)throw new Error("BigEndian system not supported");const n=function({type:e,version:t,tagLength:r,password:n,salt:i,ad:s,secret:a,parallelism:o,memorySize:c,passes:l}){const u=(e,t,r,n)=>{if(tn)throw new Error(`${e} size should be between ${r} and ${n} bytes`)};if(2!==e||19!==t)throw new Error("Unsupported type or version");return u("password",n,8,4294967295),u("salt",i,8,4294967295),u("tag",r,4,4294967295),u("memory",c,8*o,4294967295),s&&u("associated data",s,0,4294967295),a&&u("secret",a,0,32),{type:e,version:t,tagLength:r,password:n,salt:i,ad:s,secret:a,lanes:o,memorySize:c,passes:l}}({type:2,version:19,...e}),{G:i,G2:s,xor:a,getLZ:o}=r.exports,c={},l={};l.G=i,l.G2=s,l.XOR=a;const u=4*n.lanes*Math.floor(n.memorySize/(4*n.lanes)),h=u*aA+10240;if(t.buffer.byteLength{r.set(e,n),n+=e.length}),r}(i));const s=t.digest();return new Uint8Array(s)}(n),w=u/n.lanes,b=new Array(n.lanes).fill(null).map(()=>new Array(w)),E=(e,t)=>(b[e][t]=g.subarray(e*w*1024+1024*t,e*w*1024+1024*t+aA),b[e][t]);for(let e=0;e0?b[i][c-1]:b[i][w-1],u=r?a.next().value:l;o(A.byteOffset,u.byteOffset,i,n.lanes,e,t,s,4,v);const h=A[0],f=A[1];0===e&&E(i,c),fA(d,l,b[h][f],e>0?p:b[i][c]),e>0&&hA(d,b[i][c],p,b[i][c])}}}const k=b[0][w-1];for(let e=1;egA(e=>yA(0,0,"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",e),e=>yA(0,0,"AGFzbQEAAAABPwhgBH9/f38AYAABf2AAAGADf39/AGARf39/f39/f39/f39/f39/f38AYAl/f39/f39/f38Bf2ABfwBgAX8BfwITAQNlbnYGbWVtb3J5AgGQCICABAMLCgIDBAAABQEGBwEEBQFwAQICBgkBfwFBkIjAAgsHfQoDeG9yAAEBRwADAkcyAAQFZ2V0TFoABRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALX2luaXRpYWxpemUAABBfX2Vycm5vX2xvY2F0aW9uAAkJc3RhY2tTYXZlAAYMc3RhY2tSZXN0b3JlAAcKc3RhY2tBbGxvYwAICQcBAEEBCwEACssaCgMAAQtQAQJ/A0AgACAEQQN0IgNqIAIgA2opAwAgASADaikDAIU3AwAgACADQQhyIgNqIAIgA2opAwAgASADaikDAIU3AwAgBEECaiIEQYABRw0ACwveDwICfgF/IAAgAUEDdGoiEyATKQMAIhEgACAFQQN0aiIBKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAAIA1BA3RqIgUgESAFKQMAhUIgiSIRNwMAIAAgCUEDdGoiCSARIAkpAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAEgESABKQMAhUIoiSIRNwMAIBMgESATKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAFIBEgBSkDAIVCMIkiETcDACAJIBEgCSkDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgASARIAEpAwCFQgGJNwMAIAAgAkEDdGoiDSANKQMAIhEgACAGQQN0aiICKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAAIA5BA3RqIgYgESAGKQMAhUIgiSIRNwMAIAAgCkEDdGoiCiARIAopAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAIgESACKQMAhUIoiSIRNwMAIA0gESANKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAGIBEgBikDAIVCMIkiETcDACAKIBEgCikDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgAiARIAIpAwCFQgGJNwMAIAAgA0EDdGoiDiAOKQMAIhEgACAHQQN0aiIDKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAAIA9BA3RqIgcgESAHKQMAhUIgiSIRNwMAIAAgC0EDdGoiCyARIAspAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAMgESADKQMAhUIoiSIRNwMAIA4gESAOKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAHIBEgBykDAIVCMIkiETcDACALIBEgCykDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgAyARIAMpAwCFQgGJNwMAIAAgBEEDdGoiDyAPKQMAIhEgACAIQQN0aiIEKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAAIBBBA3RqIgggESAIKQMAhUIgiSIRNwMAIAAgDEEDdGoiACARIAApAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAQgESAEKQMAhUIoiSIRNwMAIA8gESAPKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAIIBEgCCkDAIVCMIkiETcDACAAIBEgACkDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgBCARIAQpAwCFQgGJNwMAIBMgEykDACIRIAIpAwAiEnwgEUIBhkL+////H4MgEkL/////D4N+fCIRNwMAIAggESAIKQMAhUIgiSIRNwMAIAsgESALKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACACIBEgAikDAIVCKIkiETcDACATIBEgEykDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgCCARIAgpAwCFQjCJIhE3AwAgCyARIAspAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAIgESACKQMAhUIBiTcDACANIA0pAwAiESADKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAFIBEgBSkDAIVCIIkiETcDACAAIBEgACkDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgAyARIAMpAwCFQiiJIhE3AwAgDSARIA0pAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAUgESAFKQMAhUIwiSIRNwMAIAAgESAAKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACADIBEgAykDAIVCAYk3AwAgDiAOKQMAIhEgBCkDACISfCARQgGGQv7///8fgyASQv////8Pg358IhE3AwAgBiARIAYpAwCFQiCJIhE3AwAgCSARIAkpAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAQgESAEKQMAhUIoiSIRNwMAIA4gESAOKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAGIBEgBikDAIVCMIkiETcDACAJIBEgCSkDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgBCARIAQpAwCFQgGJNwMAIA8gDykDACIRIAEpAwAiEnwgEUIBhkL+////H4MgEkL/////D4N+fCIRNwMAIAcgESAHKQMAhUIgiSIRNwMAIAogESAKKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACABIBEgASkDAIVCKIkiETcDACAPIBEgDykDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgByARIAcpAwCFQjCJIhE3AwAgCiARIAopAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAEgESABKQMAhUIBiTcDAAvdCAEPfwNAIAIgBUEDdCIGaiABIAZqKQMAIAAgBmopAwCFNwMAIAIgBkEIciIGaiABIAZqKQMAIAAgBmopAwCFNwMAIAVBAmoiBUGAAUcNAAsDQCADIARBA3QiAGogACACaikDADcDACADIARBAXIiAEEDdCIBaiABIAJqKQMANwMAIAMgBEECciIBQQN0IgVqIAIgBWopAwA3AwAgAyAEQQNyIgVBA3QiBmogAiAGaikDADcDACADIARBBHIiBkEDdCIHaiACIAdqKQMANwMAIAMgBEEFciIHQQN0IghqIAIgCGopAwA3AwAgAyAEQQZyIghBA3QiCWogAiAJaikDADcDACADIARBB3IiCUEDdCIKaiACIApqKQMANwMAIAMgBEEIciIKQQN0IgtqIAIgC2opAwA3AwAgAyAEQQlyIgtBA3QiDGogAiAMaikDADcDACADIARBCnIiDEEDdCINaiACIA1qKQMANwMAIAMgBEELciINQQN0Ig5qIAIgDmopAwA3AwAgAyAEQQxyIg5BA3QiD2ogAiAPaikDADcDACADIARBDXIiD0EDdCIQaiACIBBqKQMANwMAIAMgBEEOciIQQQN0IhFqIAIgEWopAwA3AwAgAyAEQQ9yIhFBA3QiEmogAiASaikDADcDACADIARB//8DcSAAQf//A3EgAUH//wNxIAVB//8DcSAGQf//A3EgB0H//wNxIAhB//8DcSAJQf//A3EgCkH//wNxIAtB//8DcSAMQf//A3EgDUH//wNxIA5B//8DcSAPQf//A3EgEEH//wNxIBFB//8DcRACIARB8ABJIQAgBEEQaiEEIAANAAtBACEBIANBAEEBQRBBEUEgQSFBMEExQcAAQcEAQdAAQdEAQeAAQeEAQfAAQfEAEAIgA0ECQQNBEkETQSJBI0EyQTNBwgBBwwBB0gBB0wBB4gBB4wBB8gBB8wAQAiADQQRBBUEUQRVBJEElQTRBNUHEAEHFAEHUAEHVAEHkAEHlAEH0AEH1ABACIANBBkEHQRZBF0EmQSdBNkE3QcYAQccAQdYAQdcAQeYAQecAQfYAQfcAEAIgA0EIQQlBGEEZQShBKUE4QTlByABByQBB2ABB2QBB6ABB6QBB+ABB+QAQAiADQQpBC0EaQRtBKkErQTpBO0HKAEHLAEHaAEHbAEHqAEHrAEH6AEH7ABACIANBDEENQRxBHUEsQS1BPEE9QcwAQc0AQdwAQd0AQewAQe0AQfwAQf0AEAIgA0EOQQ9BHkEfQS5BL0E+QT9BzgBBzwBB3gBB3wBB7gBB7wBB/gBB/wAQAgNAIAIgAUEDdCIAaiIEIAAgA2opAwAgBCkDAIU3AwAgAiAAQQhyIgRqIgUgAyAEaikDACAFKQMAhTcDACACIABBEHIiBGoiBSADIARqKQMAIAUpAwCFNwMAIAIgAEEYciIAaiIEIAAgA2opAwAgBCkDAIU3AwAgAUEEaiIBQYABRw0ACwsWACAAIAEgAiADEAMgACACIAIgAxADC3sCAX8BfiACIQkgATUCACEKIAQgBXIEQCABKAIEIANwIQkLIAAgCTYCACAAIAdBAWsgBSAEGyAIbCAGQQFrQQBBfyAGGyACIAlGG2oiASAFQQFqIAhsQQAgBBtqIAGtIAogCn5CIIh+QiCIp0F/c2ogByAIbHA2AgQgAAsEACMACwYAIAAkAAsQACMAIABrQXBxIgAkACAACwUAQYAICw==",e))});function BA(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var CA=function(){if(kA)return vA;kA=1;const e=function(){if(wA)return mA;function e(e){this.name="Bzip2Error",this.message=e,this.stack=(new Error).stack}wA=1,e.prototype=new Error;var t=function(t){throw new e(t)},r={};return r.Bzip2Error=e,r.crcTable=[0,79764919,159529838,222504665,319059676,398814059,445009330,507990021,638119352,583659535,797628118,726387553,890018660,835552979,1015980042,944750013,1276238704,1221641927,1167319070,1095957929,1595256236,1540665371,1452775106,1381403509,1780037320,1859660671,1671105958,1733955601,2031960084,2111593891,1889500026,1952343757,2552477408,2632100695,2443283854,2506133561,2334638140,2414271883,2191915858,2254759653,3190512472,3135915759,3081330742,3009969537,2905550212,2850959411,2762807018,2691435357,3560074640,3505614887,3719321342,3648080713,3342211916,3287746299,3467911202,3396681109,4063920168,4143685023,4223187782,4286162673,3779000052,3858754371,3904687514,3967668269,881225847,809987520,1023691545,969234094,662832811,591600412,771767749,717299826,311336399,374308984,453813921,533576470,25881363,88864420,134795389,214552010,2023205639,2086057648,1897238633,1976864222,1804852699,1867694188,1645340341,1724971778,1587496639,1516133128,1461550545,1406951526,1302016099,1230646740,1142491917,1087903418,2896545431,2825181984,2770861561,2716262478,3215044683,3143675388,3055782693,3001194130,2326604591,2389456536,2200899649,2280525302,2578013683,2640855108,2418763421,2498394922,3769900519,3832873040,3912640137,3992402750,4088425275,4151408268,4197601365,4277358050,3334271071,3263032808,3476998961,3422541446,3585640067,3514407732,3694837229,3640369242,1762451694,1842216281,1619975040,1682949687,2047383090,2127137669,1938468188,2001449195,1325665622,1271206113,1183200824,1111960463,1543535498,1489069629,1434599652,1363369299,622672798,568075817,748617968,677256519,907627842,853037301,1067152940,995781531,51762726,131386257,177728840,240578815,269590778,349224269,429104020,491947555,4046411278,4126034873,4172115296,4234965207,3794477266,3874110821,3953728444,4016571915,3609705398,3555108353,3735388376,3664026991,3290680682,3236090077,3449943556,3378572211,3174993278,3120533705,3032266256,2961025959,2923101090,2868635157,2813903052,2742672763,2604032198,2683796849,2461293480,2524268063,2284983834,2364738477,2175806836,2238787779,1569362073,1498123566,1409854455,1355396672,1317987909,1246755826,1192025387,1137557660,2072149281,2135122070,1912620623,1992383480,1753615357,1816598090,1627664531,1707420964,295390185,358241886,404320391,483945776,43990325,106832002,186451547,266083308,932423249,861060070,1041341759,986742920,613929101,542559546,756411363,701822548,3316196985,3244833742,3425377559,3370778784,3601682597,3530312978,3744426955,3689838204,3819031489,3881883254,3928223919,4007849240,4037393693,4100235434,4180117107,4259748804,2310601993,2373574846,2151335527,2231098320,2596047829,2659030626,2470359227,2550115596,2947551409,2876312838,2788305887,2733848168,3165939309,3094707162,3040238851,2985771188],r.array=function(e){var t=0,r=0,n=[0,1,3,7,15,31,63,127,255];return function(i){for(var s=0;i>0;){var a=8-t;i>=a?(s<<=a,s|=n[a]&e[r++],t=0,i-=a):(s<<=i,s|=(e[r]&n[i]<<8-i-t)>>8-i-t,t+=i,i=0)}return s}},r.simple=function(e,t){var n=r.array(e),i=!1,s=1e5*r.header(n),a=new Int32Array(s);do{i=r.decompress(n,t,a,s)}while(!i)},r.header=function(e){this.byteCount=new Int32Array(256),this.symToByte=new Uint8Array(256),this.mtfSymbol=new Int32Array(256),this.selectors=new Uint8Array(32768),4348520!=e(24)&&t("No magic number found");var r=e(8)-48;return(r<1||r>9)&&t("Not a BZIP archive"),r},r.decompress=function(e,r,n,i,s){for(var a=-1,o="",c=0;c<6;c++)o+=e(8).toString(16);if("177245385090"==o)return(0|e(32))!==s&&t("Error in bzip2: crc32 do not match"),e(null),null;"314159265359"!=o&&t("Invalid bzip data");var l=0|e(32);e(1)&&t("unsupported obsolete version");var u=e(24);u>i&&t("Initial position larger than buffer size");var h=e(16),f=0;for(c=0;c<16;c++)if(h&1<<15-c){var A=e(16);for(g=0;g<16;g++)A&1<<15-g&&(this.symToByte[f++]=16*c+g)}var d=e(3);(d<2||d>6)&&t("Invalid bzip data");var p=e(15);for(0==p&&t("Invalid bzip data"),c=0;c=d&&t("Invalid bzip data");var y=this.mtfSymbol[g];for(A=g-1;A>=0;A--)this.mtfSymbol[A+1]=this.mtfSymbol[A];this.mtfSymbol[0]=y,this.selectors[c]=y}var m,w,b,E,v=f+2,k=[],I=new Uint8Array(258),B=new Uint16Array(21);for(g=0;g20)&&t("Invalid bzip data"),e(1);)e(1)?h--:h++;I[c]=h}var C,S;for(C=S=I[0],c=1;cS?S=I[c]:I[c]=p&&t("Invalid bzip data"),D=(m=k[this.selectors[E++]]).base,x=m.limit),g=e(c=m.minLen);c>m.maxLen&&t("Invalid bzip data"),!(g<=x[c]);)c++,g=g<<1|e(1);((g-=D[c])<0||g>=258)&&t("Invalid bzip data");var P=m.permute[g];if(0!=P&&1!=P){if(w)for(w=0,b+h>i&&t("Invalid bzip data"),y=this.symToByte[this.mtfSymbol[0]],this.byteCount[y]+=h;h--;)n[b++]=y;if(P>f)break;for(b>=i&&t("Invalid bzip data"),c=P-1,y=this.mtfSymbol[c],A=c-1;A>=0;A--)this.mtfSymbol[A+1]=this.mtfSymbol[A];this.mtfSymbol[0]=y,y=this.symToByte[y],this.byteCount[y]++,n[b++]=y}else w||(w=1,h=0),h+=0==P?w:2*w,w<<=1}for((u<0||u>=b)&&t("Invalid bzip data"),g=0,c=0;c<256;c++)A=g+this.byteCount[c],this.byteCount[c]=g,g=A;for(c=0;c>=8,Q=-1);b;){for(b--,T=R,R=255&(M=n[M]),M>>=8,3==Q++?(U=R,F=T,R=-1):(U=1,F=R);U--;)a=4294967295&(a<<8^this.crcTable[255&(a>>24^F)]),r(F);R!=T&&(Q=0)}return(0|(a=(-1^a)>>>0))!=(0|l)&&t("Error in bzip2: crc32 do not match"),4294967295&(a^(s<<1|s>>>31))},mA=r}(),t=function(){if(EA)return bA;EA=1;var e=[0,1,3,7,15,31,63,127,255];return bA=function(t){var r=0,n=0,i=t(),s=function(a){if(null===a&&0!=r)return r=0,void n++;for(var o=0;a>0;){n>=i.length&&(n=0,i=t());var c=8-r;0===r&&a>0&&s.bytesRead++,a>=c?(o<<=c,o|=e[c]&i[n++],r=0,a-=c):(o<<=a,o|=(i[n]&e[a]<<8-a-r)>>8-a-r,r+=a,a=0)}return o};return s.bytesRead=0,s}}();return vA=function(r){const n=[];let i,s=0,a=0,o=!1,c=!1,l=null,u=null,h=0;function f(t){if(!o)try{return function(){if(a){const n=1e5*a,i=new Int32Array(n),s=[],o=function(e){s.push(e)};return u=e.decompress(l,o,i,n,u),null===u?(a=0,!1):(r=new Uint8Array(s),t.enqueue(r),null!==r&&(h+=r.length),!0)}var r;return a=e.header(l),u=0,!1}()}catch(e){return t.error(e),o=!0,!0}}return new ReadableStream({start(){i=r.getReader()},async pull(e){try{for(;;){for(;!(c||l&&s-l.bytesRead+1>=25e3+1e5*(a||4));){const{value:e,done:r}=await i.read();r?c=!0:(n.push(e),s+=e.length,null===l&&(l=t(function(){return n.shift()})))}for(;c?l&&s>l.bytesRead:l&&s-l.bytesRead+1>=25e3+1e5*(a||4);)if(f(e))return;if(c&&!o&&(!l||s<=l.bytesRead))return void(null===u?e.close():e.error(new Error("input stream ended prematurely")))}}catch(t){e.error(t)}},async cancel(e){await i.abort(e)}},{highWaterMark:0})}}(),SA=BA(CA),DA=Object.freeze({__proto__:null,default:SA})},6171(e){"use strict";e.exports={rE:"2.2.0"}}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var s=t[n]={exports:{}};return e[n].call(s.exports,s,s.exports,r),s.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{"use strict";var e=n;Object.defineProperty(e,"__esModule",{value:!0});const t=r(9033),i=r(1592);r.g.handleRequestFromHost=async(e,r,n)=>{const s=new t.Endpoints;try{const t=s[e];return t?t(r,[n]).then(e=>e).catch(e=>(0,i.fmtErr)(e)):(0,i.fmtErr)(new Error(`Unknown endpoint: ${e}`))}catch(e){return(0,i.fmtErr)(e)}}})(),module.exports=n})();; +(()=>{var e={3207(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Att=void 0;const n=r(833),i=r(6471);class s{static attachmentsPattern=/^(((cryptup|flowcrypt)-backup-[a-z0-9]+\.(key|asc))|(.+\.pgp)|(.+\.gpg)|(.+\.asc)|(noname)|(message)|(PGPMIME version identification)|())$/gm;length=NaN;type;name;url;id;msgId;inline;cid;contentDescription;bytes;treatAsValue;constructor({data:e,type:t,name:r,length:n,url:i,inline:s,id:a,msgId:o,treatAs:c,cid:l,contentDescription:u}){if(void 0===e&&void 0===i&&void 0===a)throw new Error("Att: one of data|url|id has to be set");if(a&&!o)throw new Error("Att: if id is set, msgId must be set too");e?(this.bytes=e,this.length=e.length):this.length=Number(n),this.name=r||"",this.type=t||"application/octet-stream",this.url=i||void 0,this.inline=!!s,this.id=a||void 0,this.msgId=o||void 0,this.treatAsValue=c||void 0,this.cid=l||void 0,this.contentDescription=u||void 0}static keyinfoAsPubkeyAtt=e=>new s({data:n.Buf.fromUtfStr(e.public),type:"application/pgp-keys",name:`0x${e.longid}.asc`});hasData=()=>this.bytes instanceof Uint8Array;setData=e=>{if(this.hasData())throw new Error("Att bytes already set");this.bytes=e};getData=()=>{if(this.bytes instanceof n.Buf)return this.bytes;if(this.bytes instanceof Uint8Array)return new n.Buf(this.bytes);throw new Error("Att has no data set")};treatAs=(e,t=!1)=>{if(this.treatAsValue)return this.treatAsValue;if(["PGPexch.htm.pgp","PGPMIME version identification","Version.txt","PGPMIME Versions Identification"].includes(this.name))return"hidden";if("signature.asc"===this.name||"application/pgp-signature"===this.type){if(e.length>1){const t=i.Str.getFilenameWithoutExtension(this.name);if(e.some(e=>e!==this&&(e.name===t||i.Str.getFilenameWithoutExtension(e.name)===t)))return"hidden"}return"signature"}return this.name||this.type.startsWith("image/")?"msg.asc"===this.name&&this.length<100&&"application/pgp-encrypted"===this.type?"hidden":["message","msg.asc","message.asc","encrypted.asc","encrypted.eml.pgp","Message.pgp"].includes(this.name)||"message"===this.name&&t?"encryptedMsg":this.name.match(/(\.pgp$)|(\.gpg$)|(\.[a-zA-Z0-9]{3,4}\.asc$)/g)?"encryptedFile":this.name.match(/(cryptup|flowcrypt)-backup-[a-z0-9]+\.(key|asc)$/g)?"privateKey":this.name.match(/^(0|0x)?[A-F0-9]{8}([A-F0-9]{8})?.*\.asc$/g)||this.name.toLowerCase().includes("public")&&this.name.match(/[A-F0-9]{8}.*\.asc$/g)||this.name.match(/\.asc$/)&&this.hasData()&&n.Buf.with(this.getData().subarray(0,100)).toUtfStr().includes("-----BEGIN PGP PUBLIC KEY BLOCK-----")?"publicKey":this.name.match(/\.asc$/)&&this.length<1e5&&!this.inline?"encryptedMsg":"plainFile":this.length<100?"hidden":"encryptedMsg"}}t.Att=s},833(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Buf=void 0;const n=r(178);class i extends Uint8Array{static concat=e=>{const t=new Uint8Array(e.reduce((e,t)=>e+t.length,0));let r=0;for(const n of e)t.set(n,r),r+=n.length;return i.fromUint8(t)};static with=e=>e instanceof i?e:e instanceof Uint8Array?i.fromUint8(e):i.fromUtfStr(e);static fromUint8=e=>new i(e);static fromRawBytesStr=e=>{const t=e.length,r=new i(t);for(let n=0;n{let t;const r=e.length;let n;const s=[];for(let i=0;i55295&&t<57344){if(!n){if(t>56319){s.push(239,191,189);continue}if(i+1===r){s.push(239,191,189);continue}n=t;continue}if(t<56320){s.push(239,191,189),n=t;continue}t=65536+(n-55296<<10|t-56320)}else n&&s.push(239,191,189);if(n=void 0,t<128)s.push(t);else if(t<2048)s.push(t>>6|192,63&t|128);else if(t<65536)s.push(t>>12|224,t>>6&63|128,63&t|128);else{if(!(t<1114112))throw new Error("Invalid code point");s.push(t>>18|240,t>>12&63|128,t>>6&63|128,63&t|128)}}return new i(s)};static fromBase64Str=e=>i.fromRawBytesStr((0,n.base64decode)(e));static fromBase64UrlStr=e=>i.fromBase64Str(e.replace(/-/g,"+").replace(/_/g,"/"));toString=(e="inform")=>this.toUtfStr(e);toUtfStr=(e="inform")=>{const t=this.length;let r=0,n="";const i=new Array(t);for(let s=0;s{const e=this.length,t=[];for(let r=0;r(0,n.base64encode)(this.toRawBytesStr());toBase64UrlStr=()=>this.toBase64Str().replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}t.Buf=i},6471(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Value=t.Str=void 0;const n=r(178);class i{static extractErrorMessage=e=>{if("object"==typeof e&&void 0!==e.message)return"string"==typeof e.message?e.message:JSON.stringify(e)};static parseEmail=(e,t="VALIDATE")=>{let r,n;if(e.includes("<")&&e.includes(">")){const t=e.indexOf("<"),i=e.indexOf(">");r=e.substr(t+1,t-i-1).replace(/["']/g,"").trim().toLowerCase(),n=e.substr(0,e.indexOf("<")).replace(/["']/g,"").trim()}else r=e.replace(/["']/g,"").trim().toLowerCase();return"VALIDATE"!==t||i.isEmailValid(r)||(r=void 0),{email:r,name:n,full:e}};static prettyPrint=e=>"object"==typeof e?JSON.stringify(e,void 0,2).replace(/ /g," ").replace(/\n/g,"
"):String(e);static normalizeSpaces=e=>e.replace(RegExp(String.fromCharCode(160),"g"),String.fromCharCode(32));static normalizeDashes=e=>e.replace(/^—–|—–$/gm,"-----");static getFilenameWithoutExtension=e=>e.replace(/\.[^/.]+$/,"");static normalize=e=>i.normalizeSpaces(i.normalizeDashes(e));static isEmailValid=e=>-1===e.indexOf(" ")&&/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/i.test(e);static monthName=e=>["January","February","March","April","May","June","July","August","September","October","November","December"][e];static sloppyRandom=(e=5)=>{let t="";for(let r=0;re.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");static asEscapedHtml=e=>e.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">").replace(/\//g,"/").replace(/\n/g,"
");static htmlAttrDecode=e=>{try{return JSON.parse(i.base64urlUtfDecode(e))}catch(e){return}};static capitalize=e=>e.trim().split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ");static pluralize=(e,t,r="s")=>`${e} ${t}${e>1?r:""}`;static toUtcTimestamp=(e,t=!1)=>t?String(Date.parse(e)):Date.parse(e);static datetimeToDate=e=>e.substring(0,10).replace(/"/g,""").replace(/'/g,"'").replace(/e.toISOString().replace(/T/," ").replace(/:[^:]+$/,"");static base64urlUtfDecode=e=>void 0===e?e:decodeURIComponent(String(Array.prototype.map.call((0,n.base64decode)(e.replace(/-/g,"+").replace(/_/g,"/")),e=>"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)).join("")))}t.Str=i;class s{static arr={unique:e=>{const t=[];for(const r of e)t.includes(r)||t.push(r);return t},contains:(e,t)=>Boolean(e&&"function"==typeof e.indexOf&&-1!==e.indexOf(t)),sum:e=>e.reduce((e,t)=>e+t,0),average:e=>s.arr.sum(e)/e.length};static obj={keyByValue:(e,t)=>{for(const r of Object.keys(e))if(e[r]===t)return r}}}t.Value=s},9815(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GMAIL_RECOVERY_EMAIL_SUBJECTS=t.BACKEND_API_HOST=t.GOOGLE_CONTACTS_API_HOST=t.GOOGLE_OAUTH_SCREEN_HOST=t.GOOGLE_API_HOST=t.VERSION=void 0,t.VERSION=APP_VERSION,t.GOOGLE_API_HOST="[BUILD_REPLACEABLE_GOOGLE_API_HOST]",t.GOOGLE_OAUTH_SCREEN_HOST="[BUILD_REPLACEABLE_GOOGLE_OAUTH_SCREEN_HOST]",t.GOOGLE_CONTACTS_API_HOST="[BUILD_REPLACEABLE_GOOGLE_CONTACTS_API_HOST]",t.BACKEND_API_HOST="[BUILD_REPLACEABLE_BACKEND_API_HOST]",t.GMAIL_RECOVERY_EMAIL_SUBJECTS=["Your FlowCrypt Backup","Your CryptUp Backup","All you need to know about CryptUP (contains a backup)","CryptUP Account Backup"]},4010(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Mime=void 0;const n=r(6471),i=r(3955),s=r(3207),a=r(833),o=r(7659),c=r(2633),l=r(9545),u=r(1341),h=r(178),f=(0,i.requireMimeParser)(),A=(0,i.requireMimeBuilder)(),d=(0,i.requireIso88592)();class p{static processBody=e=>{const t=[];if(e.text){const r=l.MsgBlockParser.detectBlocks(n.Str.normalize(e.text),!0).blocks;r.find(e=>["pkcs7","encryptedMsg","signedMsg","publicKey","privateKey"].includes(e.type))?t.push(...r):e.html?t.push(c.MsgBlock.fromContent("plainHtml",e.html)):t.push(...r)}else e.html&&t.push(c.MsgBlock.fromContent("plainHtml",e.html));return t};static isBodyEmpty=({text:e,html:t})=>p.isBodyTextEmpty(e)&&p.isBodyTextEmpty(t);static isBodyTextEmpty=e=>!(e&&!/^(\r)?(\n)?$/.test(e));static processAttachments=(e,t)=>{const r=[],n=[];for(const e of t.atts){let i=e.treatAs(t.atts,p.isBodyEmpty(t));if(["needChunk","maybePgp"].includes(i)&&(i="encryptedMsg"),"encryptedMsg"===i){const t=u.PgpArmor.clip(e.getData().toUtfStr());t&&r.push(c.MsgBlock.fromContent("encryptedMsg",t))}else"signature"===i?n.push(e):"publicKey"===i||"privateKey"===i?r.push(...l.MsgBlockParser.detectBlocks(e.getData().toUtfStr(),!0).blocks):"encryptedFile"===i?r.push(c.MsgBlock.fromAtt("encryptedAtt","",{name:e.name,type:e.type,length:e.getData().length,data:e.getData(),treatAs:e.treatAs(t.atts)})):"plainFile"===i&&r.push(c.MsgBlock.fromAtt("plainAtt","",{name:e.name,type:e.type,length:e.getData().length,data:e.getData(),inline:e.inline,cid:e.cid}))}if(n.length){const t=n[0].getData().toUtfStr();[...e,...r].some(e=>["plainText","plainHtml","signedMsg"].includes(e.type))||r.push(new c.MsgBlock("signedMsg","",!0,t))}const i=[...e,...r];if(t.signature&&t.signature.includes(u.PgpArmor.ARMOR_HEADER_DICT.signature.begin)&&t.signature.includes(String(u.PgpArmor.ARMOR_HEADER_DICT.signature.end))){for(const e of i)"plainText"===e.type?(e.type="signedMsg",e.signature=t.signature):"plainHtml"===e.type&&(e.type="signedHtml",e.signature=t.signature);i.find(e=>"plainText"===e.type||"plainHtml"===e.type||"signedMsg"===e.type||"signedHtml"===e.type)||i.push(new c.MsgBlock("signedMsg","",!0,t.signature))}return{headers:t.headers,blocks:i,from:t.from,to:t.to,rawSignedContent:t.rawSignedContent}};static processDecoded=e=>{const t=p.processBody(e);return p.processAttachments(t,e)};static process=async e=>{const t=await p.decode(e);return p.processDecoded(t)};static isPlainImgAtt=e=>"plainAtt"===e.type&&e.attMeta&&e.attMeta.type&&["image/jpeg","image/jpg","image/bmp","image/png","image/svg+xml"].includes(e.attMeta.type);static replyHeaders=e=>{const t=String(e.headers["message-id"]||"");return{"in-reply-to":t,references:String(e.headers["in-reply-to"]||"")+" "+t}};static resemblesMsg=e=>{const t=new a.Buf(e.slice(0,1e3)).toUtfStr().toLowerCase(),r=t.match(/content-type: +[0-9a-z\-\/]+/);return!!r&&(!!(t.match(/content-transfer-encoding: +[0-9a-z\-\/]+/)||t.match(/content-disposition: +[0-9a-z\-\/]+/)||t.match(/; boundary=/)||t.match(/; charset=/))||Boolean(0===r.index&&t.match(/boundary=/)))};static decode=async e=>{const t={atts:[],headers:{},subject:void 0,text:void 0,html:void 0,signature:void 0,from:void 0,to:[],cc:[],bcc:[]},r=new f,n={};return r.onbody=e=>{const t=String(e.path.join("."));void 0===n[t]&&(n[t]=e)},await new Promise((i,s)=>{try{r.onend=()=>{try{for(const e of Object.keys(r.node.headers))t.headers[e]=r.node.headers[e][0].value;t.rawSignedContent=p.retrieveRawSignedContent([r.node]);for(const e of Object.values(n))"application/pgp-signature"===p.getNodeType(e)?t.signature=e.rawContent:"text/html"!==p.getNodeType(e)||p.getNodeFilename(e)?"text/plain"!==p.getNodeType(e)||p.getNodeFilename(e)&&!p.isNodeInline(e)?"text/rfc822-headers"===p.getNodeType(e)?e._parentNode&&e._parentNode.headers.subject&&(t.subject=e._parentNode.headers.subject[0].value):t.atts.push(p.getNodeAsAtt(e)):t.text=(t.text?`${t.text}\n\n`:"")+p.getNodeContentAsUtfStr(e):t.html=(t.html||"")+p.getNodeContentAsUtfStr(e);const e=p.headerGetAddress(t,["from","to","cc","bcc"]);t.subject=String(t.subject||t.headers.subject||""),Object.assign(t,e),i(t)}catch(e){s(e)}},r.write(e),r.end()}catch(e){o.Catch.reportErr(e),i(t)}})};static encode=async(e,t,r=[],n)=>{const i=new A("pgpMimeEncrypted"!==n?"multipart/mixed":'multipart/encrypted; protocol="application/pgp-encrypted";',{includeBccInHeader:!0});for(const e of Object.keys(t))i.addHeader(e,t[e]);if(Object.keys(e).length){let t;if(1===Object.keys(e).length)t=p.newContentNode(A,Object.keys(e)[0],e[Object.keys(e)[0]]||"");else{t=new A("multipart/alternative");for(const r of Object.keys(e))t.appendChild(p.newContentNode(A,r,e[r]??""))}i.appendChild(t)}for(const e of r)i.appendChild(p.createAttNode(e));return i.build()};static subjectWithoutPrefixes=e=>e.replace(/^((Re|Fwd): ?)+/g,"").trim();static encodePgpMimeSigned=async(e,t,r=[],i)=>{const o=`SIG_PLACEHOLDER_${n.Str.sloppyRandom(10)}`,c=new A('multipart/signed; protocol="application/pgp-signature";',{includeBccInHeader:!0});for(const e of Object.keys(t))c.addHeader(e,t[e]);const l=new A("multipart/alternative");for(const t of Object.keys(e))l.appendChild(p.newContentNode(A,t,e[t]??""));const u=new A("multipart/mixed");u.appendChild(l);for(const e of r)u.appendChild(p.createAttNode(e));const h=new s.Att({data:a.Buf.fromUtfStr(o),type:"application/pgp-signature",name:"signature.asc"}),f=p.createAttNode(h);c.appendChild(u),c.appendChild(f);const d=c.build(),{rawSignedContent:g}=await p.decode(a.Buf.fromUtfStr(d));if(!g)throw console.log(`mimeStrWithPlaceholderSig(placeholder:${o}):\n${d}`),new Error("Could not find raw signed content immediately after mime-encoding a signed message");const y=await i(g),m=d.replace(a.Buf.fromUtfStr(o).toBase64Str(),a.Buf.fromUtfStr(y).toBase64Str());if(m===d)throw console.log(`pgpMimeSigned(placeholder:${o}):\n${m}`),new Error("Replaced sigPlaceholder with realSignature but mime stayed the same");return m};static headerGetAddress=(e,t)=>{const r={to:[],cc:[],bcc:[]};let i;const s=e=>"string"==typeof e?[e].map(e=>n.Str.parseEmail(e).email).filter(e=>!!e):e.map(e=>e.address),a=e=>n.Str.parseEmail((Array.isArray(e)?(e[0]||{}).address:String(e||""))||"").email;for(const n of t){const t=e.headers[n];t&&("from"===n?i=a(t):r[n]=[...r[n],...s(t)])}return{...r,from:i}};static retrieveRawSignedContent=e=>{for(const t of e){if(!t._childNodes||!t._childNodes.length)continue;const e="signed"===t._isMultipart,r="mixed"===t._isMultipart&&2===t._childNodes.length&&"application/pgp-signature"===p.getNodeType(t._childNodes[1]);if(e||r){let e=t._childNodes[0].raw.replace(/\r?\n/g,"\r\n");return/--$/.test(e)&&(e+="\r\n"),e}return p.retrieveRawSignedContent(t._childNodes)}};static createAttNode=e=>{const t=`${e.type}; name="${e.name}"`,r=`f_${n.Str.sloppyRandom(30)}@flowcrypt`,i={};return e.contentDescription&&(i["Content-Description"]=e.contentDescription),i["Content-Disposition"]=e.inline?"inline":"attachment",i["X-Attachment-Id"]=r,i["Content-ID"]=`<${r}>`,i["Content-Transfer-Encoding"]="base64",new A(t,{filename:e.name}).setHeader(i).setContent(e.getData())};static getNodeType=(e,t="value")=>{if(e.headers["content-type"]&&e.headers["content-type"][0])return e.headers["content-type"][0][t]};static getNodeContentId=e=>{if(e.headers["content-id"]&&e.headers["content-id"][0])return e.headers["content-id"][0].value};static getNodeFilename=e=>{if(e.headers["content-disposition"]&&e.headers["content-disposition"][0]){const t=e.headers["content-disposition"][0];if(t.params&&t.params.filename)return String(t.params.filename)}if(e.headers["content-type"]&&e.headers["content-type"][0]){const t=e.headers["content-type"][0];if(t.params&&t.params.name)return String(t.params.name)}};static isNodeInline=e=>{const t=e.headers["content-disposition"];return t&&t[0]&&"inline"===t[0].value};static fromEqualSignNotationAsBuf=e=>a.Buf.fromRawBytesStr(e.replace(/(=[A-F0-9]{2})+/g,e=>{const t=e.replace(/^=/,"").split("=").map(e=>parseInt(e,16));return new a.Buf(t).toRawBytesStr()}));static getNodeAsAtt=e=>new s.Att({name:p.getNodeFilename(e),type:p.getNodeType(e),data:"quoted-printable"===e.contentTransferEncoding.value?p.fromEqualSignNotationAsBuf(e.rawContent??""):e.content,cid:p.getNodeContentId(e)});static getNodeContentAsUtfStr=e=>{if(e.charset&&d.labels.includes(e.charset))return d.decode(e.rawContent??"");let t;return t="utf-8"===e.charset&&"base64"===e.contentTransferEncoding.value?a.Buf.fromUint8(e.content):"utf-8"===e.charset&&"quoted-printable"===e.contentTransferEncoding.value?p.fromEqualSignNotationAsBuf(e.rawContent??""):a.Buf.fromRawBytesStr(e.rawContent??""),"ISO-2022-JP"===e.charset?.toUpperCase()||"utf-8"===e.charset&&p.getNodeType(e,"initial")?.includes("ISO-2022-JP")?(0,h.iso2022jpToUtf)(t):t.toUtfStr()};static newContentNode=(e,t,r)=>{const n=new e(t).setContent(r);return"text/plain"===t&&n.addHeader("Content-Transfer-Encoding","quoted-printable"),n}}t.Mime=p},102(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.mnemonic=void 0;const r=["abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse","access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act","action","actor","actress","actual","adapt","add","addict","address","adjust","admit","adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent","agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert","alien","all","alley","allow","almost","alone","alpha","already","also","alter","always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger","angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique","anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic","area","arena","argue","arm","armed","armor","army","around","arrange","arrest","arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset","assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction","audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake","aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge","bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain","barrel","base","basic","basket","battle","beach","bean","beauty","because","become","beef","before","begin","behave","behind","believe","below","belt","bench","benefit","best","betray","better","between","beyond","bicycle","bid","bike","bind","biology","bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless","blind","blood","blossom","blouse","blue","blur","blush","board","boat","body","boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss","bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread","breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze","broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb","bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy","butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call","calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas","canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry","cart","case","cash","casino","castle","casual","cat","catalog","catch","category","cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century","cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase","chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child","chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle","citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk","clever","click","client","cliff","climb","clinic","clip","clock","clog","close","cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut","code","coffee","coil","coin","collect","color","column","combine","come","comfort","comic","common","company","concert","conduct","confirm","congress","connect","consider","control","convince","cook","cool","copper","copy","coral","core","corn","correct","cost","cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle","craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek","crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial","cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup","cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad","damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal","debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense","define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny","depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk","despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond","diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur","direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance","divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain","donate","donkey","donor","door","dose","double","dove","draft","dragon","drama","drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop","drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf","dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo","ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow","elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody","embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless","endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough","enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip","era","erase","erode","erosion","error","erupt","escape","essay","essence","estate","eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange","excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit","exotic","expand","expect","expire","explain","expose","express","extend","extra","eye","eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame","family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father","fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female","fence","festival","fetch","fever","few","fiber","fiction","field","figure","file","film","filter","final","find","fine","finger","finish","fire","firm","first","fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor","flee","flight","flip","float","flock","floor","flower","fluid","flush","fly","foam","focus","fog","foil","fold","follow","food","foot","force","forest","forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile","frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen","fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy","gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp","gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture","ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance","glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue","goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown","grab","grace","grain","grant","grape","grass","gravity","great","green","grid","grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt","guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy","harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health","heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden","high","hill","hint","hip","hire","history","hobby","hockey","hold","hole","holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital","host","hotel","hour","hover","hub","huge","human","humble","humor","hundred","hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea","identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune","impact","impose","improve","impulse","inch","include","income","increase","index","indicate","indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury","inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install","intact","interest","into","invest","invite","involve","iron","island","isolate","issue","item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel","job","join","joke","journey","joy","judge","juice","jump","jungle","junior","junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney","kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife","knock","know","lab","label","labor","ladder","lady","lake","lamp","language","laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit","layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal","legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level","liar","liberty","library","license","life","lift","light","like","limb","limit","link","lion","liquid","list","little","live","lizard","load","loan","lobster","local","lock","logic","lonely","long","loop","lottery","loud","lounge","love","loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad","magic","magnet","maid","mail","main","major","make","mammal","man","manage","mandate","mango","mansion","manual","maple","marble","march","margin","marine","market","marriage","mask","mass","master","match","material","math","matrix","matter","maximum","maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt","member","memory","mention","menu","mercy","merge","merit","merry","mesh","message","metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor","minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile","model","modify","mom","moment","monitor","monkey","monster","month","moon","moral","more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie","much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual","myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature","near","neck","need","negative","neglect","neither","nephew","nerve","nest","net","network","neutral","never","news","next","nice","night","noble","noise","nominee","noodle","normal","north","nose","notable","note","nothing","notice","novel","now","nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe","obtain","obvious","occur","ocean","october","odor","off","offer","office","often","oil","okay","old","olive","olympic","omit","once","one","onion","online","only","open","opera","opinion","oppose","option","orange","orbit","orchard","order","ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output","outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact","paddle","page","pair","palace","palm","panda","panel","panic","panther","paper","parade","parent","park","parrot","party","pass","patch","path","patient","patrol","pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen","penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo","phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot","pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate","play","please","pledge","pluck","plug","plunge","poem","poet","point","polar","pole","police","pond","pony","pool","popular","portion","position","possible","post","potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare","present","pretty","prevent","price","pride","primary","print","priority","prison","private","prize","problem","process","produce","profit","program","project","promote","proof","property","prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin","punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle","pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit","raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp","ranch","random","range","rapid","rare","rate","rather","raven","raw","razor","ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle","reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release","relief","rely","remain","remember","remind","remove","render","renew","rent","reopen","repair","repeat","replace","report","require","rescue","resemble","resist","resource","response","result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib","ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot","ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket","romance","roof","rookie","room","rose","rotate","rough","round","route","royal","rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness","safe","sail","salad","salmon","salon","salt","salute","same","sample","sand","satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter","scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script","scrub","sea","search","season","seat","second","secret","section","security","seed","seek","segment","select","sell","seminar","senior","sense","sentence","series","service","session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell","sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop","short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side","siege","sight","sign","silent","silk","silly","silver","similar","simple","since","sing","siren","sister","situate","six","size","skate","sketch","ski","skill","skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight","slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth","snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda","soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry","sort","soul","sound","soup","source","south","space","spare","spatial","spawn","speak","special","speed","spell","spend","sphere","spice","spider","spike","spin","spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring","spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp","stand","start","state","stay","steak","steel","stem","step","stereo","stick","still","sting","stock","stomach","stone","stool","story","stove","strategy","street","strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway","success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny","sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey","suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim","swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag","tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi","teach","team","tell","ten","tenant","tennis","tent","term","test","text","thank","that","theme","then","theory","there","they","thing","this","thought","three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber","time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler","toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool","tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist","toward","tower","town","toy","track","trade","traffic","tragic","train","transfer","trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick","trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust","truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle","twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella","unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform","unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade","uphold","upon","upper","upset","urban","urge","usage","use","used","useful","useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van","vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue","verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory","video","view","village","vintage","violin","virtual","virus","visa","visit","visual","vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage","wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash","wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather","web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat","wheel","when","where","whip","whisper","wide","width","wife","wild","will","win","window","wine","wing","wink","winner","winter","wire","wisdom","wise","wish","witness","wolf","woman","wonder","wood","wool","word","work","world","worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year","yellow","you","young","youth","zebra","zero","zone","zoo"];t.mnemonic=e=>{if(!e)return;const t=e.split("").map(e=>(e=>{let t=e+"";for(;t.length<4;)t="0"+t;return t})(parseInt(e,16).toString(2))).join("").match(new RegExp(".{1,11}","g"));return(t?.map(e=>parseInt(e,2))??[]).map(e=>r[e].toUpperCase()).join(" ")}},9545(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MsgBlockParser=void 0;const n=r(2633),i=r(6622),s=r(833),a=r(7659),o=r(4010),c=r(1341),l=r(2365),u=r(9379),h=r(6471);class f{static ARMOR_HEADER_MAX_LENGTH=50;static detectBlocks=(e,t)=>{const r=[],n=h.Str.normalize(e);let i=0;for(;;){const e=f.detectBlockNext(n,i,t);if(e.found&&r.push(...e.found),void 0===e.continueAt)return{blocks:r,normalized:n};if(e.continueAt<=i)return a.Catch.report(`PgpArmordetect_blocks likely infinite loop: r.continue_at(${e.continueAt}) <= start_at(${i})`),{blocks:r,normalized:n};i=e.continueAt}};static fmtDecryptedAsSanitizedHtmlBlocks=async(e,t)=>{const r=[];let a=!1;if(!o.Mime.resemblesMsg(e)){let i=s.Buf.fromUint8(e).toUtfStr();i=u.PgpMsg.extractFcAtts(i,r),i=u.PgpMsg.stripFcTeplyToken(i);const o=[];i=u.PgpMsg.stripPublicKeys(i,o);const c=n.MsgBlock.fromContent("decryptedHtml",h.Str.asEscapedHtml(i));return c.verifyRes=t,r.push(c),await f.pushArmoredPubkeysToBlocks(o,r),{blocks:r,subject:void 0,isRichText:a}}const c=await o.Mime.decode(e);if(void 0!==c.html){const e=n.MsgBlock.fromContent("decryptedHtml",i.Xss.htmlSanitizeKeepBasicTags(c.html));e.verifyRes=t,r.push(e),a=!0}else if(void 0!==c.text){const e=n.MsgBlock.fromContent("decryptedHtml",h.Str.asEscapedHtml(c.text));e.verifyRes=t,r.push(e)}else n.MsgBlock.fromContent("decryptedHtml",h.Str.asEscapedHtml(s.Buf.with(e).toUtfStr())).verifyRes=t,r.push();for(const e of c.atts)if("publicKey"===e.treatAs(c.atts))await f.pushArmoredPubkeysToBlocks([e.getData().toUtfStr()],r);else{const i=n.MsgBlock.fromAtt("decryptedAtt","",{name:e.name,data:e.getData(),length:e.length,type:e.type});i.verifyRes=t,r.push(i)}return{blocks:r,subject:c.subject,isRichText:a}};static detectBlockNext=(e,t,r)=>{const i=Object.keys(c.PgpArmor.ARMOR_HEADER_DICT),s={found:[]},a=e.indexOf(c.PgpArmor.headers("null").begin,t);if(-1!==a){const o=e.substr(a,f.ARMOR_HEADER_MAX_LENGTH);for(const l of i){const i=c.PgpArmor.ARMOR_HEADER_DICT[l];if(i.replace&&0===o.indexOf(i.begin)){let o="";if(a>t&&(o=e.substring(t,a),!o.endsWith("\n")))continue;let c=-1,u=0;if("string"==typeof i.end)c=e.indexOf(i.end,a+i.begin.length),u=i.end.length;else{const t=e.substring(a).match(i.end);t&&(c=t.index?a+t.index:-1,u=t[0].length)}if(-1!==c||!r){o=o.trim(),o&&s.found.push(n.MsgBlock.fromContent("plainText",o)),-1!==c?(s.found.push(n.MsgBlock.fromContent(l,e.substring(a,c+u).trim())),s.continueAt=c+u):s.found.push(n.MsgBlock.fromContent(l,e.substr(a),!0));break}}}}if(e&&!s.found.length){const r=e.substr(t).trim();r&&s.found.push(n.MsgBlock.fromContent("plainText",r))}return s};static pushArmoredPubkeysToBlocks=async(e,t)=>{for(const r of e){const{keys:e}=await l.PgpKey.parse(r);for(const r of e)t.push(n.MsgBlock.fromKeyDetails("publicKey",r.public,r))}}}t.MsgBlockParser=f},2633(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MsgBlock=void 0;class r{type;content;complete;signature;keyDetails;attMeta;decryptErr;verifyRes;constructor(e,t,r,n,i,s,a,o){this.type=e,this.content=t,this.complete=r,this.signature=n,this.keyDetails=i,this.attMeta=s,this.decryptErr=a,this.verifyRes=o}static fromContent=(e,t,n=!1)=>new r(e,t,!n);static fromKeyDetails=(e,t,n)=>new r(e,t,!0,void 0,n);static fromAtt=(e,t,n)=>new r(e,t,!0,void 0,void 0,n)}t.MsgBlock=r},1341(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PgpArmor=void 0;const n=r(833),i=r(6471),s=r(6382);class a{static ARMOR_HEADER_DICT={null:{begin:"-----BEGIN",end:"-----END",replace:!1},publicKey:{begin:"-----BEGIN PGP PUBLIC KEY BLOCK-----",end:"-----END PGP PUBLIC KEY BLOCK-----",replace:!0},privateKey:{begin:"-----BEGIN PGP PRIVATE KEY BLOCK-----",end:"-----END PGP PRIVATE KEY BLOCK-----",replace:!0},signedMsg:{begin:"-----BEGIN PGP SIGNED MESSAGE-----",middle:"-----BEGIN PGP SIGNATURE-----",end:"-----END PGP SIGNATURE-----",replace:!0},signature:{begin:"-----BEGIN PGP SIGNATURE-----",end:"-----END PGP SIGNATURE-----",replace:!1},encryptedMsg:{begin:"-----BEGIN PGP MESSAGE-----",end:"-----END PGP MESSAGE-----",replace:!0},encryptedMsgLink:{begin:"This message is encrypted: Open Message",end:/https:(\/|/){2}(cryptup\.org|flowcrypt\.com)(\/|/)[a-zA-Z0-9]{10}(\n|$)/,replace:!0}};static clip=e=>{if(e?.includes(a.ARMOR_HEADER_DICT.null.begin)&&e.includes(String(a.ARMOR_HEADER_DICT.null.end))){const t=e.match(/(-----BEGIN PGP (MESSAGE|SIGNED MESSAGE|SIGNATURE|PUBLIC KEY BLOCK)-----[^]+-----END PGP (MESSAGE|SIGNATURE|PUBLIC KEY BLOCK)-----)/gm);return t&&t.length?t[0]:void 0}};static headers=(e,t="string")=>{const r=a.ARMOR_HEADER_DICT[e];return{begin:"string"==typeof r.begin&&"re"===t?r.begin.replace(/ /g,"\\s"):r.begin,end:"string"==typeof r.end&&"re"===t?r.end.replace(/ /g,"\\s"):r.end,replace:r.replace}};static normalize=(e,t)=>{if(e=i.Str.normalize(e).replace(/\n /g,"\n"),["encryptedMsg","publicKey","privateKey","key"].includes(t)){const t=(e=e.replace(/\r?\n/g,"\n").trim()).match(/\n\n/g),r=e.match(/\n\n\n/g),n=e.match(/\n\n\n\n/g),i=e.match(/\n\n\n\n\n\n/g);r&&i&&r.length>1&&1===i.length?e=e.replace(/\n\n\n/g,"\n"):t&&n&&t.length>1&&1===n.length&&(e=e.replace(/\n\n/g,"\n"))}const r=e.split("\n"),n=a.headers("key"===t?"null":t);if(r.length>5&&r[0].includes(n.begin)&&r[r.length-1].includes(String(n.end))&&!r.includes(""))for(let t=1;t<5;t++)if(!r[t].match(/^[a-zA-Z0-9\-_. ]+: .+$/)){if(r[t].match(/^[a-zA-Z0-9\/+]{32,77}$/)){e=`${r.slice(0,t).join("\n")}\n\n${r.slice(t).join("\n")}`;break}break}return e};static cryptoMsgPrepareForDecrypt=async e=>{if(!e.length)throw new Error("Encrypted message could not be parsed because no data was provided");const t=new n.Buf(e.slice(0,100)).toUtfStr("ignore"),r=t.includes(a.headers("encryptedMsg").begin),i=t.includes(a.headers("signedMsg").begin),o=r||i;if(i)return{isArmored:o,isCleartext:!0,message:await(0,s.readCleartextMessage)({cleartextMessage:new n.Buf(e).toUtfStr()})};if(r)return{isArmored:o,isCleartext:!1,message:await(0,s.readMessage)({armoredMessage:new n.Buf(e).toUtfStr()})};if(e instanceof Uint8Array)return{isArmored:o,isCleartext:!1,message:await(0,s.readMessage)({binaryMessage:e})};throw new Error("Message does not have armor headers")}}t.PgpArmor=a},2365(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PgpKey=void 0;const n=r(7659),i=r(1341),s=r(3313),a=r(102),o=r(178),c=r(6382),l=r(8659),u=r(3955),h=r(6471);class f{static create=async(e,t,r)=>{const n=await(0,c.generateKey)({userIDs:e,passphrase:r,format:"armored",curve:"curve25519"===t?"curve25519Legacy":void 0,rsaBits:"curve25519"===t?void 0:"rsa2048"===t?2048:4096});return{public:n.publicKey,private:n.privateKey,revCert:n.revocationCertificate}};static read=async e=>{const t=s.Store.armoredKeyCacheGet(e);if(t)return t;const r=await(0,c.readKey)({armoredKey:e});return r?.isPrivate()&&s.Store.armoredKeyCacheSet(e,r),r};static isPacketPrivate=e=>e instanceof c.SecretKeyPacket||e instanceof c.SecretSubkeyPacket;static validateAllDecryptedPackets=async e=>{for(const t of e.toPacketList().filter(f.isPacketPrivate))t.isDecrypted()&&await t.validate()};static decrypt=async(e,t,r,n)=>{if(!e.isPrivate())throw new Error("Nothing to decrypt in a public key");const i=e.getKeys(r).map(e=>e.keyPacket).filter(f.isPacketPrivate);if(!i.length)throw new Error(`No private key packets selected of${e.getKeys().map(e=>e.keyPacket).filter(f.isPacketPrivate).length} prv packets available`);for(const e of i){if(e.isDecrypted()){if("OK-IF-ALREADY-DECRYPTED"===n)continue;throw new Error("Decryption failed - key packet was already decrypted")}try{await e.decrypt(t),await e.validate()}catch(e){if(e instanceof Error&&e.message.toLowerCase().includes("passphrase"))return!1;throw e}}return!0};static encrypt=async(e,t)=>{if(!t||"undefined"===t||"null"===t)throw new Error(`Encryption passphrase should not be empty:${typeof t}:${t}`);const r=e.getKeys().map(e=>e.keyPacket).filter(f.isPacketPrivate),n=r.filter(e=>!e.isDecrypted()).length;if(!r.length)throw new Error("No private key packets in key to encrypt. Is this a private key?");if(n)throw new Error(`Cannot encrypt a key that has ${n} of ${r.length} private packets still encrypted`);await(0,c.encryptKey)({privateKey:e,passphrase:t})};static normalize=async e=>{try{let t=[];if(e=i.PgpArmor.normalize(e,"key"),RegExp(i.PgpArmor.headers("publicKey","re").begin).test(e))t=await(0,c.readKeys)({armoredKeys:e});else if(RegExp(i.PgpArmor.headers("privateKey","re").begin).test(e))t=await(0,c.readKeys)({armoredKeys:e});else if(RegExp(i.PgpArmor.headers("encryptedMsg","re").begin).test(e)){const r=await(0,c.readMessage)({armoredMessage:e});t=[new c.PublicKey(r.packets)]}for(const e of t)for(const t of e.users)await f.validateAllDecryptedPackets(e),t.otherCertifications=[];return{normalized:t.map(e=>e.armor()).join("\n"),keys:t}}catch(e){return n.Catch.reportErr(e),{normalized:"",keys:[],error:h.Str.extractErrorMessage(e)}}};static fingerprint=async e=>{if(e)if("string"==typeof e)try{return await f.fingerprint(await f.read(e))}catch(e){return e instanceof Error&&"openpgp is not defined"===e.message&&n.Catch.reportErr(e),void console.error(e)}else{if(!e.keyPacket.getFingerprintBytes())return;try{return e.keyPacket.getFingerprint().toUpperCase()}catch(e){return void console.error(e)}}};static longid=async e=>{if(e)return"string"==typeof e&&8===e.length?(0,o.strToHex)(e).toUpperCase():"string"==typeof e&&40===e.length?e.substr(-16):"string"==typeof e&&49===e.length?e.replace(/ /g,"").substr(-16):await f.longid(await f.fingerprint(e))};static longids=async e=>{const t=[];for(const r of e){const e=await f.longid(r.bytes);e&&t.push(e)}return t};static usable=async(e,t)=>{if(!await f.fingerprint(e))return!1;const r=await(0,c.readKey)({armoredKey:e});return!!r&&(!!await f.keyIsUsable(r,t)||await f.usableButExpired(r,t))};static expired=async e=>{if(!e)return!1;const t=await e.getExpirationTime();if(t===1/0||!t)return!1;if(t instanceof Date)return Date.now()>t.getTime();throw new Error(`Got unexpected value for expiration: ${t}`)};static usableButExpired=async(e,t)=>{if(!e)return!1;if(await f.keyIsUsable(e,t))return!1;const r=await f.dateBeforeExpiration(e);return void 0!==r&&f.keyIsUsable(e,t,r)};static dateBeforeExpiration=async e=>{const t="string"==typeof e?await f.read(e):e,r=await(0,o.getKeyExpirationTimeForCapabilities)(t,"encrypt");if(r instanceof Date&&r.getTime(){const{normalized:t,keys:r,error:n}=await f.normalize(e);return{original:e,normalized:t,keys:await Promise.all(r.map(f.details)),error:n}};static details=async e=>{const t=e.getKeys(),r=e.keyPacket.getAlgorithmInfo(),n={algorithm:r.algorithm,algorithmId:c.enums.publicKey[r.algorithm]};r.bits&&Object.assign(n,{bits:r.bits}),r.curve&&Object.assign(n,{curve:r.curve});const i=e.keyPacket.created.getTime()/1e3,s=await(0,o.getKeyExpirationTimeForCapabilities)(e,"encrypt"),u=s!==1/0&&s?s.getTime()/1e3:void 0,h=await f.lastSig(e)/1e3,A=[];for(const e of t){const t=e.getFingerprint().toUpperCase();if(t){const e=await f.longid(t);if(e){const r=e.substr(-8);A.push({fingerprint:t,longid:e,shortid:r,keywords:(0,a.mnemonic)(e)??""})}}}const d=e.toPublic().armor(),p={public:d,users:e.getUserIDs(),ids:A,algo:n,created:i,expiration:u,lastModified:h,revoked:e.revocationSignatures.length>0,usableForEncryption:await f.usable(d,"encrypt"),usableForSigning:await f.usable(d,"sign")};return e.isPrivate()&&Object.assign(p,{private:e.armor(),isFullyDecrypted:(0,l.isFullyDecrypted)(e),isFullyEncrypted:(0,l.isFullyEncrypted)(e)}),p};static lastSig=async e=>{const t=[];for(const r of e.users){const n={userID:r.userID,userAttribute:r.userAttribute,key:e};for(const i of r.selfCertifications)try{await i.verify(e.keyPacket,c.enums.signature.certGeneric,n),t.push(i)}catch(e){console.log(`PgpKey.lastSig: Skipping self-certification signature because it is invalid: ${String(e)}`)}}for(const r of e.subkeys)try{const e=await r.verify();t.push(e)}catch(e){console.log(`PgpKey.lastSig: Skipping subkey ${r.getKeyID().toHex()} because there is no valid binding signature: ${String(e)}`)}if(t.length>0)return Math.max(...t.map(e=>e.created?e.created.getTime():0));throw new Error("No valid signature found in key")};static revoke=async e=>{await e.isRevoked()||(e=(await(0,c.revokeKey)({key:e,format:"object"})).privateKey);const t=await e.getRevocationCertificate();if(t){if("string"==typeof t)return{key:e,revocationCertificate:t};{const r=await(0,u.requireStreamReadToEnd)();return{key:e,revocationCertificate:await r(t)}}}};static keyIsUsable=async(e,t,r)=>Boolean(await n.Catch.undefinedOnException("encrypt"===t?e.getEncryptionKey(void 0,r):e.getSigningKey(void 0,r)))}t.PgpKey=f},9379(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PgpMsg=t.FormatError=t.DecryptErrTypes=void 0;const n=r(2365),i=r(2633),s=r(6471),a=r(833),o=r(7659),c=r(9545),l=r(1341),u=r(3313),h=r(6382),f=r(8659),A=r(3955);var d;!function(e){e.keyMismatch="key_mismatch",e.usePassword="use_password",e.wrongPwd="wrong_password",e.noMdc="no_mdc",e.badMdc="bad_mdc",e.needPassphrase="need_passphrase",e.format="format",e.other="other"}(d||(t.DecryptErrTypes=d={}));class p extends Error{data;constructor(e,t){super(e),this.data=t}}t.FormatError=p;class g{static type=async({data:e})=>{if(!e||!e.length)return;const t=e[0];if(!(128&~t)){let e=0;if(e=192&~t?(60&t)/4:63&t,Object.values(h.enums.packet).includes(e)){const t=h.enums.packet;return{armored:!1,type:[t.symEncryptedIntegrityProtectedData,t.modificationDetectionCode,t.aeadEncryptedData,t.symmetricallyEncryptedData,t.compressedData].includes(e)?"encryptedMsg":"publicKey"}}}const{blocks:r}=c.MsgBlockParser.detectBlocks(new a.Buf(e.slice(0,50)).toUtfStr().trim());return 1===r.length&&!1===r[0].complete&&["encryptedMsg","privateKey","publicKey","signedMsg"].includes(r[0].type)?{armored:!0,type:r[0].type}:void 0};static sign=async(e,t,r=!1)=>{const n=await(0,h.createCleartextMessage)({text:t});return await(0,h.sign)({message:n,signingKeys:e,detached:r,format:"armored"})};static verify=async(e,t)=>{const r={match:null};try{const i=Array.isArray(e)?e:await e.verify(t);for(const e of i)r.signer||(r.signer=await n.PgpKey.longid(e.keyID.bytes)),r.match=(!0===r.match||null===r.match)&&await e.verified}catch(e){r.match=null,e instanceof Error&&"Can only verify message with one literal data packet."===e.message?r.error="FlowCrypt is not equipped to verify this message (err 101)":(r.error=e.message,o.Catch.reportErr(e))}return r};static verifyDetached=async({plaintext:e,sigText:t,verificationPubkeys:r})=>{const n=await(0,h.createMessage)({text:a.Buf.fromUint8(e).toUtfStr()});await n.appendSignature(a.Buf.fromUint8(t).toUtfStr());const i=await g.getSortedKeys([],n);if(r)for(const e of r){const t=await(0,h.readKeys)({armoredKeys:e});i.forVerification.push(...t)}return await g.verify(n,i.forVerification)};static decrypt=async({kisWithPp:e,encryptedData:t,msgPwd:r,verificationPubkeys:n})=>{let i;const s={message:[],matching:[],chosen:[],needPassphrase:[]};try{i=await l.PgpArmor.cryptoMsgPrepareForDecrypt(t)}catch(e){return{success:!1,error:{type:d.format,message:String(e)},longids:s}}const o=await g.getSortedKeys(e,i.message,n);s.message=o.encryptedFor,s.matching=o.prvForDecrypt.map(e=>e.longid),s.chosen=o.prvForDecryptDecrypted.map(e=>e.longid),s.needPassphrase=o.prvForDecryptWithoutPassphrases.map(e=>e.longid);const c=!i.isCleartext;if(!c){const e=await g.verify(i.message,o.forVerification),t=await(0,A.requireStreamReadToEnd)(),r=await t(i.message.getText()??"");return{success:!0,content:a.Buf.fromUtfStr(r),isEncrypted:c,signature:e}}if(!o.prvMatching.length&&!r)return{success:!1,error:{type:d.keyMismatch,message:"Missing appropriate key"},message:i.message,longids:s,isEncrypted:c};if(!o.prvForDecryptDecrypted.length&&!r)return{success:!1,error:{type:d.needPassphrase,message:"Missing pass phrase"},message:i.message,longids:s,isEncrypted:c};try{const e=i.message.packets,t=e.filterByTag(h.enums.packet.symEncryptedSessionKey).length>0,l=e.filterByTag(h.enums.packet.publicKeyEncryptedSessionKey).length>0;if(t&&!l&&!r)return{success:!1,error:{type:d.usePassword,message:"Use message password"},longids:s,isEncrypted:c};const u=r?[r]:void 0,f=o.prvForDecryptDecrypted.map(e=>e.decrypted),p=await i.message.decrypt(f,u);await g.cryptoMsgGetSignedBy(p,o),await g.populateKeysForVerification(o,n);const y=o.signedBy.length?await p.verify(o.forVerification):void 0,m=await(0,A.requireStreamReadToEnd)(),w=new a.Buf(await m(p.getLiteralData())),b=y?await g.verify(y,[]):void 0;if(!i.isCleartext&&i.message.packets.filterByTag(h.enums.packet.symmetricallyEncryptedData).length){const e="Security threat!\n\nMessage is missing integrity checks (MDC). The sender should update their outdated software and resend.";return{success:!1,content:w,error:{type:d.noMdc,message:e},message:i.message,longids:s,isEncrypted:c}}return{success:!0,content:w,isEncrypted:c,filename:p.getFilename()||void 0,signature:b}}catch(e){return{success:!1,error:g.cryptoMsgDecryptCategorizeErr(e,r),message:i.message,longids:s,isEncrypted:c}}};static encrypt=async({pubkeys:e,signingPrv:t,pwd:r,data:n,filename:i,armor:s,date:a})=>{if(!e&&!r)throw new Error("no-pubkeys-no-challenge");const o=await(0,h.createMessage)({binary:n,filename:i,date:a}),c=[];for(const t of e){const e=await(0,h.readKeys)({armoredKeys:t});c.push(...e)}const l={message:o,date:a,encryptionKeys:c,passwords:r?[r]:void 0,signingKeys:t&&t.isPrivate()?t:void 0};return s||Object.assign(l,{format:"binary"}),await(0,h.encrypt)(l)};static extractFcAtts=(e,t)=>(e.includes('class="cryptup_file"')&&(e=e.replace(/[^<]+<\/a>\n?/gm,(e,r,n)=>{const a=s.Str.htmlAttrDecode(String(n));return g.isFcAttLinkData(a)&&t.push(i.MsgBlock.fromAtt("encryptedAttLink","",{type:a.type,name:a.name,length:a.size,url:String(r)})),""})),e);static stripFcTeplyToken=e=>e.replace(/]+class="cryptup_reply"[^>]+><\/div>/,"");static stripPublicKeys=(e,t)=>{let{blocks:r,normalized:n}=c.MsgBlockParser.detectBlocks(e);for(const e of r)if("publicKey"===e.type){const r=e.content.toString();t.push(r),n=n.replace(r,"")}return n};static isFcAttLinkData=e=>e&&"object"==typeof e&&void 0!==e.name&&void 0!==e.size&&void 0!==e.type;static cryptoMsgGetSignedBy=async(e,t)=>{t.signedBy=s.Value.arr.unique(await n.PgpKey.longids(e.getSigningKeyIDs?e.getSigningKeyIDs():[]))};static populateKeysForVerification=async(e,t)=>{if(void 0!==t){e.forVerification=[];for(const r of t){const t=await(0,h.readKeys)({armoredKeys:r});e.forVerification.push(...t)}}};static getSortedKeys=async(e,t,r)=>{const i={forVerification:[],encryptedFor:[],signedBy:[],prvMatching:[],prvForDecrypt:[],prvForDecryptDecrypted:[],prvForDecryptWithoutPassphrases:[]},s=t instanceof h.Message?t.getEncryptionKeyIDs():[];if(i.encryptedFor=await n.PgpKey.longids(s),await g.cryptoMsgGetSignedBy(t,i),await g.populateKeysForVerification(i,r),i.encryptedFor.length){for(const t of e){t.parsed=await n.PgpKey.read(t.private);for(const e of await Promise.all(t.parsed.getKeyIDs().map(({bytes:e})=>n.PgpKey.longid(e))))if(i.encryptedFor.includes(e)){i.prvMatching.push(t);break}}i.prvForDecrypt=i.prvMatching}else i.prvForDecrypt=[];for(const e of i.prvForDecrypt){if(!e.parsed||!e.passphrase)continue;const t=g.matchingKeyids(e.parsed,s),r=u.Store.decryptedKeyCacheGet(e.longid);r&&g.isKeyDecryptedFor(r,t)?(e.decrypted=r,i.prvForDecryptDecrypted.push(e)):g.isKeyDecryptedFor(e.parsed,t)||!0===await g.decryptKeyFor(e.parsed,e.passphrase,t)?(u.Store.decryptedKeyCacheSet(e.parsed),e.decrypted=e.parsed,i.prvForDecryptDecrypted.push(e)):i.prvForDecryptWithoutPassphrases.push(e)}return i};static matchingKeyids=(e,t)=>{const r=(t||[]).map(e=>e.bytes);return e.getKeyIDs().filter(e=>r.includes(e.bytes))};static decryptKeyFor=async(e,t,r)=>{if(!r.length)return await n.PgpKey.decrypt(e,t,void 0,"OK-IF-ALREADY-DECRYPTED");for(const i of r)if(!await n.PgpKey.decrypt(e,t,i,"OK-IF-ALREADY-DECRYPTED"))return!1;return!0};static isKeyDecryptedFor=(e,t)=>!!(0,f.isFullyDecrypted)(e)||!(0,f.isFullyEncrypted)(e)&&!!t.length&&t.filter(t=>(0,f.isPacketDecrypted)(e,t)).length===t.length;static cryptoMsgDecryptCategorizeErr=(e,t)=>{const r=String(e).replace("Error: ","").replace("Error decrypting message: ","");return["Cannot read property 'isDecrypted' of null","privateKeyPacket is null","TypeprivateKeyPacket is null","Session key decryption failed.","Invalid session key for decryption."].includes(r)&&!t?{type:d.keyMismatch,message:r}:t&&["Invalid enum value.","CFB decrypt: invalid key","Session key decryption failed."].includes(r)?{type:d.wrongPwd,message:r}:"Decryption failed due to missing MDC in combination with modern cipher."===r||"Decryption failed due to missing MDC."===r?{type:d.noMdc,message:r}:"Decryption error"===r?{type:d.format,message:r}:"Modification detected."===r?{type:d.badMdc,message:"Security threat - opening this message is dangerous because it was modified in transit."}:{type:d.other,message:r}}}t.PgpMsg=g},5261(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PgpPwd=void 0;class r{static CRACK_GUESSES_PER_SECOND=8e7;static CRACK_TIME_WORDS_PWD=[{match:"millenni",word:"perfect",bar:100,color:"green",pass:!0},{match:"centu",word:"perfect",bar:95,color:"green",pass:!0},{match:"year",word:"great",bar:80,color:"orange",pass:!0},{match:"month",word:"good",bar:70,color:"darkorange",pass:!0},{match:"week",word:"good",bar:30,color:"darkred",pass:!0},{match:"day",word:"reasonable",bar:40,color:"darkorange",pass:!0},{match:"hour",word:"bare minimum",bar:20,color:"darkred",pass:!0},{match:"minute",word:"poor",bar:15,color:"red",pass:!1},{match:"",word:"weak",bar:10,color:"red",pass:!1}];static CRACK_TIME_WORDS_PASS_PHRASE=[{match:"millenni",word:"perfect",bar:100,color:"green",pass:!0},{match:"centu",word:"great",bar:80,color:"green",pass:!0},{match:"year",word:"good",bar:60,color:"orange",pass:!0},{match:"month",word:"reasonable",bar:40,color:"darkorange",pass:!0},{match:"week",word:"poor",bar:30,color:"darkred",pass:!1},{match:"day",word:"poor",bar:20,color:"darkred",pass:!1},{match:"",word:"weak",bar:10,color:"red",pass:!1}];static estimateStrength=(e,t="passphrase")=>{const n=e/r.CRACK_GUESSES_PER_SECOND;for(const e of"pwd"===t?r.CRACK_TIME_WORDS_PWD:r.CRACK_TIME_WORDS_PASS_PHRASE){const t=r.readableCrackTime(n);if(t.includes(e.match))return{word:e,seconds:Math.round(n),time:t}}throw Error("(thrown) estimate_strength: got to end without any result")};static weakWords=()=>["crypt","up","cryptup","flow","flowcrypt","encryption","pgp","email","set","backup","passphrase","best","pass","phrases","are","long","and","have","several","words","in","them","Best pass phrases are long","have several words","in them","bestpassphrasesarelong","haveseveralwords","inthem","Loss of this pass phrase","cannot be recovered","Note it down","on a paper","lossofthispassphrase","cannotberecovered","noteitdown","onapaper","setpassword","set password","set pass word","setpassphrase","set pass phrase","set passphrase"];static readableCrackTime=e=>{const t=e=>e>1?"s":"";e=Math.round(e);const r=Math.round(e/31104e8);if(r)return 1===r?"a millennium":"millennia";const n=Math.round(e/31104e5);if(n)return 1===n?"a century":"centuries";const i=Math.round(e/31104e3);if(i)return i+" year"+t(i);const s=Math.round(e/2592e3);if(s)return s+" month"+t(s);const a=Math.round(e/604800);if(a)return a+" week"+t(a);const o=Math.round(e/86400);if(o)return o+" day"+t(o);const c=Math.round(e/3600);if(c)return c+" hour"+t(c);const l=Math.round(e/60);if(l)return l+" minute"+t(l);const u=e%60;return u?u+" second"+t(u):"less than a second"}}t.PgpPwd=r},8659(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isPacketDecrypted=t.isFullyEncrypted=t.isFullyDecrypted=void 0;const n=r(2365),i=r(9815),s=r(6382);s.config.versionString=`FlowCrypt ${i.VERSION} Gmail Encryption`,s.config.commentString="Seamlessly send and receive encrypted email",s.config.allowUnauthenticatedMessages=!0,s.config.allowUnauthenticatedStream=!0;const a=e=>{if(!e.isPrivate())throw new Error("Cannot check encryption status of secret keys in a Public Key");const t=e.getKeys().map(e=>e.keyPacket).filter(n.PgpKey.isPacketPrivate);if(!t.length)throw new Error("This key has no private packets. Is it a Private Key?");const r=t.filter(e=>!e.isDummy());if(!r.length)throw new Error("This key only has a gnu-dummy private packet, with no actual secret keys.");return r};t.isFullyDecrypted=e=>a(e).every(e=>!0===e.isDecrypted()),t.isFullyEncrypted=e=>a(e).every(e=>!1===e.isDecrypted()),t.isPacketDecrypted=(e,t)=>{if(!e.isPrivate())throw new Error("Cannot check packet encryption status of secret key in a Public Key");if(!t)throw new Error("No KeyID provided to isPacketDecrypted");const[r]=e.getKeys(t);if(!r)throw new Error("KeyID not found in Private Key");return!0===r.keyPacket.isDecrypted()}},9033(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getSigningPrv=t.Endpoints=void 0;const n=r(1592),i=r(9379),s=r(2365),a=r(4010),o=r(3207),c=r(833),l=r(9545),u=r(5261),h=r(3313),f=r(6471),A=r(9815),d=r(6364),p=r(6622),g=r(6382);t.Endpoints=class{version=async()=>(0,n.fmtRes)({app_version:A.VERSION});setClientConfiguration=async e=>{const{shouldHideArmorMeta:t}=d.ValidateInput.setClientConfiguration(e);return g.config.showVersion=!t,g.config.showComment=!t,(0,n.fmtRes)({})};generateKey=async e=>{h.Store.keyCacheWipe();const{passphrase:t,userIds:r,variant:i}=d.ValidateInput.generateKey(e);if(t.length<12)throw new Error("Pass phrase length seems way too low! Pass phrase strength should be properly checked before encrypting a key.");const a=await s.PgpKey.create(r,i,t);return(0,n.fmtRes)({key:await s.PgpKey.details(await s.PgpKey.read(a.private))})};composeEmail=async e=>{const r=d.ValidateInput.composeEmail(e),s={to:r.to,from:r.from,subject:r.subject,cc:r.cc,bcc:r.bcc};if(r.replyToMsgId&&(s["in-reply-to"]=r.replyToMsgId,s.references=[r.inReplyTo,r.replyToMsgId].filter(e=>!!e).join(" ")),"plain"===r.format){const e=(r.atts||[]).map(({name:e,type:t,base64:r})=>new o.Att({name:e,type:t,data:c.Buf.fromBase64Str(r)})),t={"text/plain":r.text};return r.html&&(t["text/html"]=r.html),(0,n.fmtRes)({},c.Buf.fromUtfStr(await a.Mime.encode(t,s,e)))}if("encryptInline"===r.format){const e=[];for(const t of r.atts||[])if("application/pgp-keys"===t.type)e.push(new o.Att({name:t.name,type:t.type,data:c.Buf.fromBase64Str(t.base64)}));else{const n=await i.PgpMsg.encrypt({pubkeys:r.pubKeys,data:c.Buf.fromBase64Str(t.base64),filename:t.name,armor:!1});e.push(new o.Att({name:`${t.name}.pgp`,type:"application/pgp-encrypted",data:n}))}const l=await(0,t.getSigningPrv)(r),u=await i.PgpMsg.encrypt({pubkeys:r.pubKeys,signingPrv:l,data:c.Buf.fromUtfStr(r.text),armor:!0});return(0,n.fmtRes)({},c.Buf.fromUtfStr(await a.Mime.encode({"text/plain":u},s,e)))}throw new Error(`Unknown format: ${r.format}`)};encryptMsg=async(e,t)=>{const r=d.ValidateInput.encryptMsg(e),s=await i.PgpMsg.encrypt({pubkeys:r.pubKeys,pwd:r.msgPwd,data:c.Buf.concat(t),armor:!0});return(0,n.fmtRes)({},c.Buf.fromUtfStr(s))};encryptFile=async(e,t)=>{const r=d.ValidateInput.encryptFile(e),s=await i.PgpMsg.encrypt({pubkeys:r.pubKeys,data:c.Buf.concat(t),filename:r.name,armor:!1});return(0,n.fmtRes)({},s)};sanitizeHtml=async e=>{const{html:t}=d.ValidateInput.sanitizeHtml(e),r=p.Xss.htmlSanitizeKeepBasicTags(t);return(0,n.fmtRes)({sanitizedHtml:r})};parseDecryptMsg=async(e,t)=>{const{keys:r,msgPwd:o,isMime:u,verificationPubkeys:h}=d.ValidateInput.parseDecryptMsg(e),A=[];let g,y;if(u){const{blocks:e,rawSignedContent:r,headers:n}=await a.Mime.process(c.Buf.concat(t));y=String(n.subject),g=r,A.push(...e)}else{const{blocks:e}=l.MsgBlockParser.detectBlocks(c.Buf.concat(t).toString());A.push(...e)}const m=[];for(const e of A)if("signedMsg"!==e.type&&"signedHtml"!==e.type||!e.signature)if("encryptedMsg"===e.type||"signedMsg"===e.type){const t=await i.PgpMsg.decrypt({kisWithPp:r,msgPwd:o,encryptedData:c.Buf.with(e.content),verificationPubkeys:h});if(t.success)if(t.isEncrypted){const e=await l.MsgBlockParser.fmtDecryptedAsSanitizedHtmlBlocks(t.content,t.signature);m.push(...e.blocks),y=e.subject||y}else m.push({type:"verifiedMsg",content:f.Str.asEscapedHtml(t.content.toUtfStr()),complete:!0,verifyRes:t.signature});else delete t.message,m.push({type:"decryptErr",content:t.error.type===i.DecryptErrTypes.noMdc?t.content?.toUtfStr()??"":e.content.toString(),decryptErr:t,complete:!0})}else if("encryptedAtt"===e.type&&e.attMeta&&/^(0x)?[A-Fa-f0-9]{16,40}\.asc\.pgp$/.test(e.attMeta.name||"")){const t=await i.PgpMsg.decrypt({kisWithPp:r,msgPwd:o,encryptedData:c.Buf.with(e.attMeta.data||""),verificationPubkeys:h});t.content?m.push({type:"publicKey",content:t.content.toString(),complete:!0}):m.push(e)}else m.push(e);else{const t=await i.PgpMsg.verifyDetached({sigText:c.Buf.fromUtfStr(e.signature),plaintext:c.Buf.with(g||e.content),verificationPubkeys:h});"signedHtml"===e.type?m.push({type:"verifiedMsg",content:p.Xss.htmlSanitizeKeepBasicTags(e.content.toString()),verifyRes:t,complete:!0}):m.push({type:"verifiedMsg",content:f.Str.asEscapedHtml(e.content.toString()),verifyRes:t,complete:!0})}const w=[],b=[];let E="plain";for(const e of m)if(e.content instanceof c.Buf?e.content=(0,n.isContentBlock)(e.type)?e.content.toUtfStr():e.content.toRawBytesStr():e.attMeta&&e.attMeta.data instanceof Uint8Array&&(e.attMeta.data=c.Buf.fromUint8(e.attMeta.data).toBase64Str()),e.decryptErr?.content instanceof c.Buf&&(e.decryptErr.content=e.decryptErr.content.toUtfStr()),"decryptedHtml"!==e.type&&"decryptedText"!==e.type&&"decryptedAtt"!==e.type||(E="encrypted"),"publicKey"===e.type)if(e.keyDetails)b.push(e);else{const{keys:t}=await s.PgpKey.normalize(e.content);if(t.length)for(const e of t)b.push({type:"publicKey",content:e.armor(),complete:!0,keyDetails:await s.PgpKey.details(e)});else b.push({type:"decryptErr",content:e.content,complete:!0,decryptErr:{success:!1,error:{type:i.DecryptErrTypes.format,message:"Badly formatted public key"},longids:{message:[],matching:[],chosen:[],needPassphrase:[]}}})}else(0,n.isContentBlock)(e.type)||a.Mime.isPlainImgAtt(e)?w.push(e):b.push(e);const{contentBlock:v,text:k}=(0,n.fmtContentBlock)(w);b.unshift(v);const I=c.Buf.fromUtfStr(b.map(e=>JSON.stringify(e,(e,t)=>"content"===e&&t.length>1e5?"":t)).join("\n")),B={text:k,replyType:E};return y&&Object.assign(B,{subject:y}),(0,n.fmtRes)(B,I)};parseAttachmentType=async e=>{const{atts:t}=d.ValidateInput.parseAttachmentType(e),r=t.map(e=>{const t=new o.Att(e);return{id:t.id,treatAs:t.treatAs([t])}});return(0,n.fmtRes)({atts:r})};decryptFile=async(e,t,r)=>{const{keys:s,msgPwd:a}=d.ValidateInput.decryptFile(e),o=await i.PgpMsg.decrypt({kisWithPp:s,encryptedData:c.Buf.concat(t),msgPwd:a,verificationPubkeys:r});return o.success?(0,n.fmtRes)({decryptSuccess:{name:o.filename||""}},o.content):(delete o.message,delete o.content,(0,n.fmtRes)({decryptErr:o}))};zxcvbnStrengthBar=async e=>{const t=d.ValidateInput.zxcvbnStrengthBar(e);if("passphrase"===t.purpose){if("number"==typeof t.guesses)return(0,n.fmtRes)(u.PgpPwd.estimateStrength(t.guesses));if("string"==typeof t.value){if("function"!=typeof window.zxcvbn)throw new Error("window.zxcvbn missing in js");const e=window.zxcvbn(t.value,u.PgpPwd.weakWords()).guesses;return(0,n.fmtRes)(u.PgpPwd.estimateStrength(e))}throw new Error("Unexpected format: guesses is not a number, value is not a string")}throw new Error(`Unknown purpose: ${t.purpose}`)};parseKeys=async(e,t)=>{const r=[],a=c.Buf.concat(t),o=await i.PgpMsg.type({data:a});if(!o)return(0,n.fmtRes)({format:"unknown",keyDetails:r});if(o.armored){const{blocks:e}=l.MsgBlockParser.detectBlocks(a.toString());for(const t of e){const{keys:e}=await s.PgpKey.parse(t.content.toString());r.push(...e)}for(const e of r)(0,n.removeUndefinedValues)(e);return(0,n.fmtRes)({format:"armored",keyDetails:r})}const u=await(0,g.readKeys)({binaryKeys:a});for(const e of u)r.push(await s.PgpKey.details(e));for(const e of r)(0,n.removeUndefinedValues)(e);return(0,n.fmtRes)({format:"binary",keyDetails:r})};isEmailValid=async e=>{const{email:t}=d.ValidateInput.isEmailValid(e);return(0,n.fmtRes)({valid:f.Str.isEmailValid(t)})};decryptKey=async e=>{h.Store.keyCacheWipe();const{armored:t,passphrases:r}=d.ValidateInput.decryptKey(e);if(1!==r.length)throw new Error(`decryptKey: Can only accept exactly 1 pass phrase for decrypt, received: ${r.length}`);const i=await(0,d.readArmoredKeyOrThrow)(t);return await s.PgpKey.decrypt(i,r[0])?(0,n.fmtRes)({decryptedKey:i.armor()}):(0,n.fmtRes)({decryptedKey:void 0})};encryptKey=async e=>{h.Store.keyCacheWipe();const{armored:t,passphrase:r}=d.ValidateInput.encryptKey(e),i=await(0,d.readArmoredKeyOrThrow)(t);if(!r||r.length<12)throw new Error("Pass phrase length seems way too low! Pass phrase strength should be properly checked before encrypting a key.");const s=await(0,g.encryptKey)({privateKey:i,passphrase:r});return(0,n.fmtRes)({encryptedKey:s.armor()})};verifyKey=async e=>{const{armored:t}=d.ValidateInput.verifyKey(e),r=await(0,g.readKey)({armoredKey:t});return await r.verifyPrimaryKey(),(0,n.fmtRes)({})};keyCacheWipe=async()=>(h.Store.keyCacheWipe(),(0,n.fmtRes)({}))},t.getSigningPrv=async e=>{if(!e.signingPrv)return;const t=await(0,d.readArmoredKeyOrThrow)(e.signingPrv.private);if(await s.PgpKey.decrypt(t,e.signingPrv.passphrase||""))return t;throw new Error("Fail to decrypt signing key")}},1592(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.removeUndefinedValues=t.fmtErr=t.fmtRes=t.fmtContentBlock=t.stripHtmlRootTags=t.isContentBlock=void 0;const n=r(2633),i=r(4010),s=r(6471),a=r(6622);t.isContentBlock=e=>"plainText"===e||"decryptedText"===e||"plainHtml"===e||"decryptedHtml"===e||"signedMsg"===e||"verifiedMsg"===e;const o=(e,t)=>{let r;return r="green"===t?"border: 1px solid #f0f0f0;border-left: 8px solid #31A217;border-right: none;' +\n 'background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAABaCAMAAAAPdrEwAAAAh1BMVEXw8PD////w8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PD7MuHIAAAALXRSTlMAAAECBAcICw4QEhUZIyYqMTtGTV5kdn2Ii5mfoKOqrbG0uL6/xcnM0NTX2t1l7cN4AAAB0UlEQVR4Ae3Y3Y4SQRCG4bdHweFHRBTBH1FRFLXv//qsA8kmvbMdXhh2Q0KfknpSCQc130c67s22+e9+v/+d84fxkSPH0m/+5P9vN7vRV0vPfx7or1NB23e99KAHuoXOOc6moQsBwNN1Q9g4Wdh1uq3MA7Qn0+2ylAt7WbWpyT+Wo8roKH6v2QhZ2ghZ2ghZ2ghZ2ghZ2ghZ2ghZ2ghZ2ghZ2ghZ2ghZ2ghZ2ghZ2gjZ2AUNOLmwgQdogEJ2dnF3UJdU3WjqO/u96aYtVd/7jqvIyu76G5se6GaY7tNNcy5d7se7eWVnDz87fMkuVuS8epF6f9NPObPY5re9y4N1/vya9Gr3se2bfvl9M0mkyZdv077p+a/3z4Meby5Br4NWiV51BaiUqfLro9I3WiR61RVcffwfXI7u5zZ20EOA82Uu8x3SlrSwXQuBSvSqK0AletUVoBK96gpIwlZy0MJWctDCVnLQwlZy0MJWctDCVnLQwlZy0MJWctDCVnLQwlZy0MJWctDCVnLQwlZy0MJWckIletUVIJJxITN6wtZd2EI+0NquyIJOnUpFVvRpcwmV6FVXgEr0qitAJXrVFaASveoKUIledQWoRK+6AlSiV13BP+/VVbky7Xq1AAAAAElFTkSuQmCC);":"red"===t?"border: 1px solid #f0f0f0;border-left: 8px solid #d14836;border-right: none;":"plain"===t?"border: none;":"border: 1px solid #f0f0f0;border-left: 8px solid #989898;border-right: none;",`
${a.Xss.htmlSanitizeKeepBasicTags(e)}
\x3c!-- next MsgBlock --\x3e\n`};t.stripHtmlRootTags=e=>(e=(e=(e=e.replace(/<\/?html[^>]*>/g,"")).replace(/]*>.*<\/head>/g,"")).replace(/<\/?body[^>]*>/g,"")).trim();const c=(e,t)=>e.replace(/src="cid:([^"]+)"/g,(e,r)=>{const n=t[r];if(n){const e=`src="data:${n.attMeta?.type};base64,${n.attMeta?.data}"`;return delete t[r],e}return e});t.fmtContentBlock=e=>{const r=[],l=[],u=e.filter(e=>!i.Mime.isPlainImgAtt(e)),h=[],f={};for(const t of e.filter(e=>i.Mime.isPlainImgAtt(e)))t.attMeta?.cid?f[t.attMeta.cid.replace(/>$/,"").replace(/^0&&p!==u.length&&(A.partial=!0));for(const e of h.concat(Object.values(f))){const t=`${e.attMeta?.name||"(unnamed image)"} - ${e.attMeta?.length??0}kb`,n=`${a.Xss.escape(t)} `;r.push(o(n,"plain")),l.push(`[image: ${t}]\n`)}const g=n.MsgBlock.fromContent("plainHtml",`\n \n \n \n \n \n ${r.join("")}\n `);return g.verifyRes=A,{contentBlock:g,text:l.join("").trim()}},t.fmtRes=(e,t)=>({json:e,data:t||new Uint8Array(0)}),t.fmtErr=e=>(0,t.fmtRes)({error:{message:String(e),stack:e&&"object"==typeof e&&e.stack||""}}),t.removeUndefinedValues=e=>{for(const t in e)void 0===e[t]&&delete e[t]}},6364(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.readArmoredKeyOrThrow=t.ValidateInput=void 0;const n=r(6382);t.ValidateInput=class{static setClientConfiguration=e=>{if(i(e)&&s(e,"shouldHideArmorMeta","boolean?"))return e;throw new Error("Wrong request structure for NodeRequest.setClientConfiguration")};static generateKey=e=>{if(i(e)&&s(e,"userIds","Userid[]")&&e.userIds.length&&s(e,"passphrase","string")&&["rsa2048","rsa4096","curve25519"].includes(e.variant))return e;throw new Error("Wrong request structure for NodeRequest.generateKey")};static encryptMsg=e=>{if(i(e)&&s(e,"pubKeys","string[]")&&s(e,"msgPwd","string?"))return e;throw new Error("Wrong request structure for NodeRequest.encryptMsg")};static composeEmail=e=>{if(!(i(e)&&s(e,"text","string")&&s(e,"html","string?")&&s(e,"from","string")&&s(e,"subject","string")&&s(e,"to","string[]")&&s(e,"cc","string[]")&&s(e,"bcc","string[]")))throw new Error("Wrong request structure for NodeRequest.composeEmail, need: text,from,subject,to,cc,bcc,atts (can use empty arr for cc/bcc, and can skip atts)");if(!s(e,"atts","ComposeAttachment[]?"))throw new Error("Wrong atts structure for NodeRequest.composeEmail, need: {name, type, base64}");if(s(e,"pubKeys","string[]")&&s(e,"signingPrv","PrvKeyInfo?")&&e.pubKeys.length&&("encryptInline"===e.format||"encryptPgpmime"===e.format))return e;if(!e.pubKeys&&"plain"===e.format)return e;throw new Error("Wrong choice of pubKeys and format. Either pubKeys:[..]+format:encryptInline OR format:plain allowed")};static parseDecryptMsg=e=>{if(i(e)&&s(e,"keys","PrvKeyInfo[]")&&s(e,"msgPwd","string?")&&s(e,"isMime","boolean?")&&s(e,"verificationPubkeys","string[]?"))return e;throw new Error("Wrong request structure for NodeRequest.parseDecryptMsg")};static sanitizeHtml=e=>{if(i(e)&&s(e,"html","string"))return e;throw new Error("Wrong request structure for NodeRequest.sanitizeHtml")};static encryptFile=e=>{if(i(e)&&s(e,"pubKeys","string[]")&&s(e,"name","string"))return e;throw new Error("Wrong request structure for NodeRequest.encryptFile")};static parseAttachmentType=e=>{if(i(e)&&s(e,"atts","Attachment[]"))return e;throw new Error("Wrong request structure for NodeRequest.parseAttachmentType")};static decryptFile=e=>{if(i(e)&&s(e,"keys","PrvKeyInfo[]")&&s(e,"msgPwd","string?"))return e;throw new Error("Wrong request structure for NodeRequest.decryptFile")};static zxcvbnStrengthBar=e=>{if(i(e)&&s(e,"guesses","number")&&s(e,"purpose","string")&&"passphrase"===e.purpose)return e;if(i(e)&&s(e,"value","string")&&s(e,"purpose","string")&&"passphrase"===e.purpose)return e;throw new Error("Wrong request structure for NodeRequest.zxcvbnStrengthBar")};static isEmailValid=e=>{if(i(e)&&s(e,"email","string"))return e;throw new Error("Wrong request structure for NodeRequest.isEmailValid")};static decryptKey=e=>{if(i(e)&&s(e,"armored","string")&&s(e,"passphrases","string[]"))return e;throw new Error("Wrong request structure for NodeRequest.decryptKey")};static encryptKey=e=>{if(i(e)&&s(e,"armored","string")&&s(e,"passphrase","string"))return e;throw new Error("Wrong request structure for NodeRequest.encryptKey")};static verifyKey=e=>{if(i(e)&&s(e,"armored","string"))return e;throw new Error("Wrong request structure for NodeRequest.verifyKey")}};const i=e=>!!e&&"object"==typeof e,s=(e,t,r)=>{if(!i(e))return!1;const n=e[t];return"number"===r||"string"===r?typeof n===r:"boolean?"===r?"boolean"==typeof n||void 0===n:"string?"===r?null===n?(e[t]=void 0,!0):"string"==typeof n||void 0===n:"ComposeAttachment[]?"===r?void 0===n||Array.isArray(n)&&n.filter(e=>s(e,"name","string")&&s(e,"type","string")&&s(e,"base64","string")).length===n.length:"Attachment[]"===r?Array.isArray(n)&&n.filter(e=>s(e,"id","string")&&s(e,"msgId","string")&&s(e,"name","string")&&s(e,"type","string?")).length===n.length:"string[]"===r?Array.isArray(n)&&n.filter(e=>"string"==typeof e).length===n.length:"string[]?"===r?void 0===n||Array.isArray(n)&&n.filter(e=>"string"==typeof e).length===n.length:"PrvKeyInfo?"===r?null===n?(e[t]=void 0,!0):void 0===n||s(n,"private","string")&&s(n,"longid","string")&&s(n,"passphrase","string?"):"PrvKeyInfo[]"===r?Array.isArray(n)&&n.filter(e=>s(e,"private","string")&&s(e,"longid","string")&&s(e,"passphrase","string?")).length===n.length:"Userid[]"===r?Array.isArray(n)&&n.filter(e=>s(e,"name","string")&&s(e,"email","string")).length===n.length:"object"===r&&i(n)};t.readArmoredKeyOrThrow=async e=>{const t=await(0,n.readKey)({armoredKey:e});if(!t)throw new Error("No key found");return t}},7659(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Catch=void 0,t.Catch=class{static reportErr=e=>{console.error(e)};static report=(e,t)=>{console.error(e,t)};static undefinedOnException=async e=>{try{return await e}catch(e){return}}}},3955(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.requireIso88592=t.requireMimeBuilder=t.requireMimeParser=t.requireStreamReadToEnd=void 0,t.requireStreamReadToEnd=async()=>"not node"===(globalThis.process?.release?.name||"not node")?(await Promise.resolve().then(()=>r(9275))).readToEnd:r(1558).readToEnd,t.requireMimeParser=()=>r.g["emailjs-mime-parser"],t.requireMimeBuilder=()=>r.g["emailjs-mime-builder"],t.requireIso88592=()=>r.g.iso88592},3313(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Store=void 0;const n=r(178);let i,s={};class a{static decryptedKeyCacheSet=e=>{a.keyCacheRenewExpiry(),s[(e=>(0,n.strToHex)(e.getKeyID().bytes).toUpperCase())(e)]=e};static decryptedKeyCacheGet=e=>(a.keyCacheRenewExpiry(),s[e]);static armoredKeyCacheSet=(e,t)=>{a.keyCacheRenewExpiry(),s[e]=t};static armoredKeyCacheGet=e=>(a.keyCacheRenewExpiry(),s[e]);static keyCacheWipe=()=>{s={}};static keyCacheRenewExpiry=()=>{i&&clearTimeout(i),i=setTimeout(a.keyCacheWipe,12e4)}}t.Store=a},178(e,t,r){"use strict";var n=r(8969);Object.defineProperty(t,"__esModule",{value:!0}),t.getKeyExpirationTimeForCapabilities=t.strToHex=t.iso2022jpToUtf=t.base64decode=t.base64encode=void 0;const i=r(8287);t.base64encode=e=>i.Buffer.from(e,"binary").toString("base64"),t.base64decode=e=>i.Buffer.from(e,"base64").toString("binary"),t.iso2022jpToUtf=e=>n.convert(e,{to:"UTF8",from:"JIS",type:"string"}),t.strToHex=e=>{if(null===e)return"";const t=[],r=e.length;let n,i=0;for(;i{let t=null;for(const r of e)(null===t||null!==r&&r>t)&&(t=r);return t},a=e=>{const t=s(e.bindingSignatures.map(e=>e.created));return e.bindingSignatures.filter(e=>e.created===t)[0].getExpirationTime()};t.getKeyExpirationTimeForCapabilities=async(e,t,r,n)=>{const i=await e.getPrimaryUser(void 0,n,void 0);if(!i)throw new Error("Could not find primary user");const o=await e.getExpirationTime(n);if(!o)return null;const c=s(i.user.selfCertifications.map(e=>e.created)),l=i.user.selfCertifications.filter(e=>e.created===c)[0].getExpirationTime();let u=o{})||await e.getEncryptionKey(r,null,n).catch(()=>{});if(!t)return null;const i="bindingSignatures"in t?a(t):await t.getExpirationTime(n)??0;i{})||await e.getSigningKey(r,null,n).catch(()=>{});if(!t)return null;const i="bindingSignatures"in t?a(t):await t.getExpirationTime(n)??0;i{const t=`IMG_ICON_${i.Str.sloppyRandom()}`;let r=!1,a=n(e,{allowedTags:s.ALLOWED_BASIC_TAGS,allowedAttributes:s.ALLOWED_ATTRS,allowedSchemes:s.ALLOWED_SCHEMES,transformTags:{img:(e,n)=>{const i=(n.src||"").substring(0,10);return i.startsWith("data:")?{tagName:"img",attribs:{src:n.src,alt:n.alt||""}}:i.startsWith("http://")||i.startsWith("https://")?(r=!0,{tagName:"a",attribs:{href:String(n.src),target:"_blank"},text:t}):{tagName:"img",attribs:{alt:n.alt,title:n.title},text:"[img]"}},"*":(e,t)=>(t.width&&"1"!==t.width&&"img"!==e&&delete t.width,t.height&&"1"!==t.height&&"img"!==e&&delete t.width,{tagName:e,attribs:t})},exclusiveFilter:({tag:e,attribs:t})=>"1"===t.width||"1"===t.height&&"hr"!==e});return r&&(a=`[remote content blocked for your privacy]

${a}`,a=n(a,{allowedTags:s.ALLOWED_BASIC_TAGS,allowedAttributes:s.ALLOWED_ATTRS,allowedSchemes:s.ALLOWED_SCHEMES,allowedStyles:s.ALLOWED_STYLES})),a=a.replace(new RegExp(t,"g"),'[img]'),a};static htmlSanitizeAndStripAllTags=(e,t)=>{let r=s.htmlSanitizeKeepBasicTags(e);const a=i.Str.sloppyRandom(5),o=`CU_BR_${a}`,c=`CU_BS_${a}`,l=`CU_BE_${a}`;r=r.replace(/]*>/gi,o),r=r.replace(/\n/g,""),r=r.replace(/<\/(p|h1|h2|h3|h4|h5|h6|ol|ul|pre|address|blockquote|dl|div|fieldset|form|hr|table)[^>]*>/gi,l),r=r.replace(/<(p|h1|h2|h3|h4|h5|h6|ol|ul|pre|address|blockquote|dl|div|fieldset|form|hr|table)[^>]*>/gi,c),r=r.replace(RegExp(`(${c})+`,"g"),c).replace(RegExp(`(${l})+`,"g"),l),r=r.split(o+l+c).join(o).split(l+c).join(o).split(o+l).join(o);let u=r.split(o).join("\n").split(c).filter(e=>!!e).join("\n").split(l).filter(e=>!!e).join("\n");return u=u.replace(/\n{2,}/g,"\n\n"),u=n(u,{allowedTags:["img","span"],allowedAttributes:{img:["src"]},allowedSchemes:s.ALLOWED_SCHEMES,transformTags:{img:(e,t)=>({tagName:"span",attribs:{},text:`[image: ${t.alt||t.title||"no name"}]`})}}),u=n(u,{allowedTags:[]}),u=u.trim(),"\n"!==t&&(u=u.replace(/\n/g,t)),u};static escape=e=>e.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">").replace(/\//g,"/");static escapeTextAsRenderableHtml=e=>s.escape(e).replace(/\n/g,"
\n").replace(/^ +/gm,e=>e.replace(/ /g," ")).replace(/^\t+/gm,e=>e.replace(/\t/g," ")).replace(/\n/g,"");static htmlUnescape=e=>e.replace(///g,"/").replace(/"/g,'"').replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">").replace(/ /g," ").replace(/&/g,"&")}t.Xss=s},7526(e,t){"use strict";t.byteLength=function(e){var t=o(e),r=t[0],n=t[1];return 3*(r+n)/4-n},t.toByteArray=function(e){var t,r,s=o(e),a=s[0],c=s[1],l=new i(function(e,t,r){return 3*(t+r)/4-r}(0,a,c)),u=0,h=c>0?a-4:a;for(r=0;r>16&255,l[u++]=t>>8&255,l[u++]=255&t;return 2===c&&(t=n[e.charCodeAt(r)]<<2|n[e.charCodeAt(r+1)]>>4,l[u++]=255&t),1===c&&(t=n[e.charCodeAt(r)]<<10|n[e.charCodeAt(r+1)]<<4|n[e.charCodeAt(r+2)]>>2,l[u++]=t>>8&255,l[u++]=255&t),l},t.fromByteArray=function(e){for(var t,n=e.length,i=n%3,s=[],a=16383,o=0,c=n-i;oc?c:o+a));return 1===i?(t=e[n-1],s.push(r[t>>2]+r[t<<4&63]+"==")):2===i&&(t=(e[n-2]<<8)+e[n-1],s.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"=")),s.join("")};for(var r=[],n=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0;a<64;++a)r[a]=s[a],n[s.charCodeAt(a)]=a;function o(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function c(e){return r[e>>18&63]+r[e>>12&63]+r[e>>6&63]+r[63&e]}function l(e,t,r){for(var n,i=[],s=t;sa)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,c.prototype),t}function c(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return h(e)}return l(e,t,r)}function l(e,t,r){if("string"==typeof e)return function(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!c.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const r=0|p(e,t);let n=o(r);const i=n.write(e,t);return i!==r&&(n=n.slice(0,i)),n}(e,t);if(ArrayBuffer.isView(e))return function(e){if(Z(e,Uint8Array)){const t=new Uint8Array(e);return A(t.buffer,t.byteOffset,t.byteLength)}return f(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(Z(e,ArrayBuffer)||e&&Z(e.buffer,ArrayBuffer))return A(e,t,r);if("undefined"!=typeof SharedArrayBuffer&&(Z(e,SharedArrayBuffer)||e&&Z(e.buffer,SharedArrayBuffer)))return A(e,t,r);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const n=e.valueOf&&e.valueOf();if(null!=n&&n!==e)return c.from(n,t,r);const i=function(e){if(c.isBuffer(e)){const t=0|d(e.length),r=o(t);return 0===r.length||e.copy(r,0,0,t),r}return void 0!==e.length?"number"!=typeof e.length||V(e.length)?o(0):f(e):"Buffer"===e.type&&Array.isArray(e.data)?f(e.data):void 0}(e);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return c.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function u(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function h(e){return u(e),o(e<0?0:0|d(e))}function f(e){const t=e.length<0?0:0|d(e.length),r=o(t);for(let n=0;n=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return 0|e}function p(e,t){if(c.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||Z(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const r=e.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;let i=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return J(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return _(e).length;default:if(i)return n?-1:J(e).length;t=(""+t).toLowerCase(),i=!0}}function g(e,t,r){let n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return K(this,t,r);case"utf8":case"utf-8":return C(this,t,r);case"ascii":return D(this,t,r);case"latin1":case"binary":return x(this,t,r);case"base64":return B(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function y(e,t,r){const n=e[t];e[t]=e[r],e[r]=n}function m(e,t,r,n,i){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),V(r=+r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof t&&(t=c.from(t,n)),c.isBuffer(t))return 0===t.length?-1:w(e,t,r,n,i);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):w(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function w(e,t,r,n,i){let s,a=1,o=e.length,c=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;a=2,o/=2,c/=2,r/=2}function l(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(i){let n=-1;for(s=r;so&&(r=o-c),s=r;s>=0;s--){let r=!0;for(let n=0;ni&&(n=i):n=i;const s=t.length;let a;for(n>s/2&&(n=s/2),a=0;a>8,i=r%256,s.push(i),s.push(n);return s}(t,e.length-r),e,r,n)}function B(e,t,r){return 0===t&&r===e.length?n.fromByteArray(e):n.fromByteArray(e.slice(t,r))}function C(e,t,r){r=Math.min(e.length,r);const n=[];let i=t;for(;i239?4:t>223?3:t>191?2:1;if(i+a<=r){let r,n,o,c;switch(a){case 1:t<128&&(s=t);break;case 2:r=e[i+1],128==(192&r)&&(c=(31&t)<<6|63&r,c>127&&(s=c));break;case 3:r=e[i+1],n=e[i+2],128==(192&r)&&128==(192&n)&&(c=(15&t)<<12|(63&r)<<6|63&n,c>2047&&(c<55296||c>57343)&&(s=c));break;case 4:r=e[i+1],n=e[i+2],o=e[i+3],128==(192&r)&&128==(192&n)&&128==(192&o)&&(c=(15&t)<<18|(63&r)<<12|(63&n)<<6|63&o,c>65535&&c<1114112&&(s=c))}}null===s?(s=65533,a=1):s>65535&&(s-=65536,n.push(s>>>10&1023|55296),s=56320|1023&s),n.push(s),i+=a}return function(e){const t=e.length;if(t<=S)return String.fromCharCode.apply(String,e);let r="",n=0;for(;nn.length?(c.isBuffer(t)||(t=c.from(t)),t.copy(n,i)):Uint8Array.prototype.set.call(n,t,i);else{if(!c.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(n,i)}i+=t.length}return n},c.byteLength=p,c.prototype._isBuffer=!0,c.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tr&&(e+=" ... "),""},s&&(c.prototype[s]=c.prototype.inspect),c.prototype.compare=function(e,t,r,n,i){if(Z(e,Uint8Array)&&(e=c.from(e,e.offset,e.byteLength)),!c.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(this===e)return 0;let s=(i>>>=0)-(n>>>=0),a=(r>>>=0)-(t>>>=0);const o=Math.min(s,a),l=this.slice(n,i),u=e.slice(t,r);for(let e=0;e>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}const i=this.length-t;if((void 0===r||r>i)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let s=!1;for(;;)switch(n){case"hex":return b(this,e,t,r);case"utf8":case"utf-8":return E(this,e,t,r);case"ascii":case"latin1":case"binary":return v(this,e,t,r);case"base64":return k(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,t,r);default:if(s)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),s=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const S=4096;function D(e,t,r){let n="";r=Math.min(e.length,r);for(let i=t;in)&&(r=n);let i="";for(let n=t;nr)throw new RangeError("Trying to access beyond buffer length")}function T(e,t,r,n,i,s){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function F(e,t,r,n,i){H(t,n,i,e,r,7);let s=Number(t&BigInt(4294967295));e[r++]=s,s>>=8,e[r++]=s,s>>=8,e[r++]=s,s>>=8,e[r++]=s;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[r++]=a,a>>=8,e[r++]=a,a>>=8,e[r++]=a,a>>=8,e[r++]=a,r}function M(e,t,r,n,i){H(t,n,i,e,r,7);let s=Number(t&BigInt(4294967295));e[r+7]=s,s>>=8,e[r+6]=s,s>>=8,e[r+5]=s,s>>=8,e[r+4]=s;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[r+3]=a,a>>=8,e[r+2]=a,a>>=8,e[r+1]=a,a>>=8,e[r]=a,r+8}function R(e,t,r,n,i,s){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function Q(e,t,r,n,s){return t=+t,r>>>=0,s||R(e,0,r,4),i.write(e,t,r,n,23,4),r+4}function N(e,t,r,n,s){return t=+t,r>>>=0,s||R(e,0,r,8),i.write(e,t,r,n,52,8),r+8}c.prototype.slice=function(e,t){const r=this.length;(e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t>>=0,t>>>=0,r||U(e,t,this.length);let n=this[e],i=1,s=0;for(;++s>>=0,t>>>=0,r||U(e,t,this.length);let n=this[e+--t],i=1;for(;t>0&&(i*=256);)n+=this[e+--t]*i;return n},c.prototype.readUint8=c.prototype.readUInt8=function(e,t){return e>>>=0,t||U(e,1,this.length),this[e]},c.prototype.readUint16LE=c.prototype.readUInt16LE=function(e,t){return e>>>=0,t||U(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUint16BE=c.prototype.readUInt16BE=function(e,t){return e>>>=0,t||U(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUint32LE=c.prototype.readUInt32LE=function(e,t){return e>>>=0,t||U(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUint32BE=c.prototype.readUInt32BE=function(e,t){return e>>>=0,t||U(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readBigUInt64LE=X(function(e){j(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||W(e,this.length-8);const n=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,i=this[++e]+256*this[++e]+65536*this[++e]+r*2**24;return BigInt(n)+(BigInt(i)<>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||W(e,this.length-8);const n=t*2**24+65536*this[++e]+256*this[++e]+this[++e],i=this[++e]*2**24+65536*this[++e]+256*this[++e]+r;return(BigInt(n)<>>=0,t>>>=0,r||U(e,t,this.length);let n=this[e],i=1,s=0;for(;++s=i&&(n-=Math.pow(2,8*t)),n},c.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||U(e,t,this.length);let n=t,i=1,s=this[e+--n];for(;n>0&&(i*=256);)s+=this[e+--n]*i;return i*=128,s>=i&&(s-=Math.pow(2,8*t)),s},c.prototype.readInt8=function(e,t){return e>>>=0,t||U(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){e>>>=0,t||U(e,2,this.length);const r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},c.prototype.readInt16BE=function(e,t){e>>>=0,t||U(e,2,this.length);const r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},c.prototype.readInt32LE=function(e,t){return e>>>=0,t||U(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return e>>>=0,t||U(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readBigInt64LE=X(function(e){j(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||W(e,this.length-8);const n=this[e+4]+256*this[e+5]+65536*this[e+6]+(r<<24);return(BigInt(n)<>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||W(e,this.length-8);const n=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(n)<>>=0,t||U(e,4,this.length),i.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return e>>>=0,t||U(e,4,this.length),i.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return e>>>=0,t||U(e,8,this.length),i.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return e>>>=0,t||U(e,8,this.length),i.read(this,e,!1,52,8)},c.prototype.writeUintLE=c.prototype.writeUIntLE=function(e,t,r,n){e=+e,t>>>=0,r>>>=0,n||T(this,e,t,r,Math.pow(2,8*r)-1,0);let i=1,s=0;for(this[t]=255&e;++s>>=0,r>>>=0,n||T(this,e,t,r,Math.pow(2,8*r)-1,0);let i=r-1,s=1;for(this[t+i]=255&e;--i>=0&&(s*=256);)this[t+i]=e/s&255;return t+r},c.prototype.writeUint8=c.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||T(this,e,t,1,255,0),this[t]=255&e,t+1},c.prototype.writeUint16LE=c.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||T(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},c.prototype.writeUint16BE=c.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||T(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},c.prototype.writeUint32LE=c.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||T(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},c.prototype.writeUint32BE=c.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||T(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},c.prototype.writeBigUInt64LE=X(function(e,t=0){return F(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))}),c.prototype.writeBigUInt64BE=X(function(e,t=0){return M(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))}),c.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t>>>=0,!n){const n=Math.pow(2,8*r-1);T(this,e,t,r,n-1,-n)}let i=0,s=1,a=0;for(this[t]=255&e;++i>>=0,!n){const n=Math.pow(2,8*r-1);T(this,e,t,r,n-1,-n)}let i=r-1,s=1,a=0;for(this[t+i]=255&e;--i>=0&&(s*=256);)e<0&&0===a&&0!==this[t+i+1]&&(a=1),this[t+i]=(e/s|0)-a&255;return t+r},c.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||T(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||T(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},c.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||T(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},c.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||T(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},c.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||T(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},c.prototype.writeBigInt64LE=X(function(e,t=0){return F(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),c.prototype.writeBigInt64BE=X(function(e,t=0){return M(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),c.prototype.writeFloatLE=function(e,t,r){return Q(this,e,t,!0,r)},c.prototype.writeFloatBE=function(e,t,r){return Q(this,e,t,!1,r)},c.prototype.writeDoubleLE=function(e,t,r){return N(this,e,t,!0,r)},c.prototype.writeDoubleBE=function(e,t,r){return N(this,e,t,!1,r)},c.prototype.copy=function(e,t,r,n){if(!c.isBuffer(e))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(i=t;i=n+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function H(e,t,r,n,i,s){if(e>r||e3?0===t||t===BigInt(0)?`>= 0${n} and < 2${n} ** ${8*(s+1)}${n}`:`>= -(2${n} ** ${8*(s+1)-1}${n}) and < 2 ** ${8*(s+1)-1}${n}`:`>= ${t}${n} and <= ${r}${n}`,new O.ERR_OUT_OF_RANGE("value",i,e)}!function(e,t,r){j(t,"offset"),void 0!==e[t]&&void 0!==e[t+r]||W(t,e.length-(r+1))}(n,i,s)}function j(e,t){if("number"!=typeof e)throw new O.ERR_INVALID_ARG_TYPE(t,"number",e)}function W(e,t,r){if(Math.floor(e)!==e)throw j(e,r),new O.ERR_OUT_OF_RANGE(r||"offset","an integer",e);if(t<0)throw new O.ERR_BUFFER_OUT_OF_BOUNDS;throw new O.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${t}`,e)}L("ERR_BUFFER_OUT_OF_BOUNDS",function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),L("ERR_INVALID_ARG_TYPE",function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`},TypeError),L("ERR_OUT_OF_RANGE",function(e,t,r){let n=`The value of "${e}" is out of range.`,i=r;return Number.isInteger(r)&&Math.abs(r)>2**32?i=G(String(r)):"bigint"==typeof r&&(i=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(i=G(i)),i+="n"),n+=` It must be ${t}. Received ${i}`,n},RangeError);const Y=/[^+/0-9A-Za-z-_]/g;function J(e,t){let r;t=t||1/0;const n=e.length;let i=null;const s=[];for(let a=0;a55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(a+1===n){(t-=3)>-1&&s.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&s.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&s.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;s.push(r)}else if(r<2048){if((t-=2)<0)break;s.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;s.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;s.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return s}function _(e){return n.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(Y,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function q(e,t,r,n){let i;for(i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function Z(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function V(e){return e!=e}const z=function(){const e="0123456789abcdef",t=new Array(256);for(let r=0;r<16;++r){const n=16*r;for(let i=0;i<16;++i)t[n+i]=e[r]+e[i]}return t}();function X(e){return"undefined"==typeof BigInt?$:e}function $(){throw new Error("BigInt not supported")}},4744(e){"use strict";var t=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===r}(e)}(e)},r="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function n(e,t){return!1!==t.clone&&t.isMergeableObject(e)?o((r=e,Array.isArray(r)?[]:{}),e,t):e;var r}function i(e,t,r){return e.concat(t).map(function(e){return n(e,r)})}function s(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[]}(e))}function a(e,t){try{return t in e}catch(e){return!1}}function o(e,r,c){(c=c||{}).arrayMerge=c.arrayMerge||i,c.isMergeableObject=c.isMergeableObject||t,c.cloneUnlessOtherwiseSpecified=n;var l=Array.isArray(r);return l===Array.isArray(e)?l?c.arrayMerge(e,r,c):function(e,t,r){var i={};return r.isMergeableObject(e)&&s(e).forEach(function(t){i[t]=n(e[t],r)}),s(t).forEach(function(s){(function(e,t){return a(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))})(e,s)||(a(e,s)&&r.isMergeableObject(t[s])?i[s]=function(e,t){if(!t.customMerge)return o;var r=t.customMerge(e);return"function"==typeof r?r:o}(s,r)(e[s],t[s],r):i[s]=n(t[s],r))}),i}(e,r,c):n(r,c)}o.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce(function(e,r){return o(e,r,t)},{})};var c=o;e.exports=c},4460(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.attributeNames=t.elementNames=void 0,t.elementNames=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map(function(e){return[e.toLowerCase(),e]})),t.attributeNames=new Map(["definitionURL","attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map(function(e){return[e.toLowerCase(),e]}))},3806(e,t,r){"use strict";var n=this&&this.__assign||function(){return n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r");case o.Comment:return"\x3c!--".concat(e.data,"--\x3e");case o.CDATA:return function(e){return"")}(e);case o.Script:case o.Style:case o.Tag:return function(e,t){var r;"foreign"===t.xmlMode&&(e.name=null!==(r=l.elementNames.get(e.name))&&void 0!==r?r:e.name,e.parent&&p.has(e.parent.name)&&(t=n(n({},t),{xmlMode:!1}))),!t.xmlMode&&g.has(e.name)&&(t=n(n({},t),{xmlMode:"foreign"}));var i="<".concat(e.name),s=function(e,t){var r;if(e){var n=!1===(null!==(r=t.encodeEntities)&&void 0!==r?r:t.decodeEntities)?h:t.xmlMode||"utf8"!==t.encodeEntities?c.encodeXML:c.escapeAttribute;return Object.keys(e).map(function(r){var i,s,a=null!==(i=e[r])&&void 0!==i?i:"";return"foreign"===t.xmlMode&&(r=null!==(s=l.attributeNames.get(r))&&void 0!==s?s:r),t.emptyAttrs||t.xmlMode||""!==a?"".concat(r,'="').concat(n(a),'"'):r}).join(" ")}}(e.attribs,t);return s&&(i+=" ".concat(s)),0===e.children.length&&(t.xmlMode?!1!==t.selfClosingTags:t.selfClosingTags&&f.has(e.name))?(t.xmlMode||(i+=" "),i+="/>"):(i+=">",e.children.length>0&&(i+=A(e.children,t)),!t.xmlMode&&f.has(e.name)||(i+=""))),i}(e,t);case o.Text:return function(e,t){var r,n=e.data||"";return!1===(null!==(r=t.encodeEntities)&&void 0!==r?r:t.decodeEntities)||!t.xmlMode&&e.parent&&u.has(e.parent.name)||(n=t.xmlMode||"utf8"!==t.encodeEntities?(0,c.encodeXML)(n):(0,c.escapeText)(n)),n}(e,t)}}t.render=A,t.default=A;var p=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"]),g=new Set(["svg","math"])},6243(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.decodeXML=t.decodeHTMLStrict=t.decodeHTMLAttribute=t.decodeHTML=t.determineBranch=t.EntityDecoder=t.DecodingMode=t.BinTrieFlags=t.fromCodePoint=t.replaceCodePoint=t.decodeCodePoint=t.xmlDecodeTree=t.htmlDecodeTree=void 0;var o=a(r(2834));t.htmlDecodeTree=o.default;var c=a(r(1518));t.xmlDecodeTree=c.default;var l=s(r(8873));t.decodeCodePoint=l.default;var u,h,f,A,d=r(8873);function p(e){return e>=u.ZERO&&e<=u.NINE}function g(e){return e>=u.UPPER_A&&e<=u.UPPER_F||e>=u.LOWER_A&&e<=u.LOWER_F}function y(e){return e===u.EQUALS||function(e){return e>=u.UPPER_A&&e<=u.UPPER_Z||e>=u.LOWER_A&&e<=u.LOWER_Z||p(e)}(e)}Object.defineProperty(t,"replaceCodePoint",{enumerable:!0,get:function(){return d.replaceCodePoint}}),Object.defineProperty(t,"fromCodePoint",{enumerable:!0,get:function(){return d.fromCodePoint}}),function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.LOWER_Z=122]="LOWER_Z",e[e.UPPER_A=65]="UPPER_A",e[e.UPPER_F=70]="UPPER_F",e[e.UPPER_Z=90]="UPPER_Z"}(u||(u={})),function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.BRANCH_LENGTH=16256]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"}(h=t.BinTrieFlags||(t.BinTrieFlags={})),function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"}(f||(f={})),function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"}(A=t.DecodingMode||(t.DecodingMode={}));var m=function(){function e(e,t,r){this.decodeTree=e,this.emitCodePoint=t,this.errors=r,this.state=f.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=A.Strict}return e.prototype.startEntity=function(e){this.decodeMode=e,this.state=f.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1},e.prototype.write=function(e,t){switch(this.state){case f.EntityStart:return e.charCodeAt(t)===u.NUM?(this.state=f.NumericStart,this.consumed+=1,this.stateNumericStart(e,t+1)):(this.state=f.NamedEntity,this.stateNamedEntity(e,t));case f.NumericStart:return this.stateNumericStart(e,t);case f.NumericDecimal:return this.stateNumericDecimal(e,t);case f.NumericHex:return this.stateNumericHex(e,t);case f.NamedEntity:return this.stateNamedEntity(e,t)}},e.prototype.stateNumericStart=function(e,t){return t>=e.length?-1:(32|e.charCodeAt(t))===u.LOWER_X?(this.state=f.NumericHex,this.consumed+=1,this.stateNumericHex(e,t+1)):(this.state=f.NumericDecimal,this.stateNumericDecimal(e,t))},e.prototype.addToNumericResult=function(e,t,r,n){if(t!==r){var i=r-t;this.result=this.result*Math.pow(n,i)+parseInt(e.substr(t,i),n),this.consumed+=i}},e.prototype.stateNumericHex=function(e,t){for(var r=t;t>14;t>14)){if(s===u.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);this.decodeMode!==A.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1},e.prototype.emitNotTerminatedNamedEntity=function(){var e,t=this.result,r=(this.decodeTree[t]&h.VALUE_LENGTH)>>14;return this.emitNamedEntityData(t,r,this.consumed),null===(e=this.errors)||void 0===e||e.missingSemicolonAfterCharacterReference(),this.consumed},e.prototype.emitNamedEntityData=function(e,t,r){var n=this.decodeTree;return this.emitCodePoint(1===t?n[e]&~h.VALUE_LENGTH:n[e+1],r),3===t&&this.emitCodePoint(n[e+2],r),r},e.prototype.end=function(){var e;switch(this.state){case f.NamedEntity:return 0===this.result||this.decodeMode===A.Attribute&&this.result!==this.treeIndex?0:this.emitNotTerminatedNamedEntity();case f.NumericDecimal:return this.emitNumericEntity(0,2);case f.NumericHex:return this.emitNumericEntity(0,3);case f.NumericStart:return null===(e=this.errors)||void 0===e||e.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case f.EntityStart:return 0}},e}();function w(e){var t="",r=new m(e,function(e){return t+=(0,l.fromCodePoint)(e)});return function(e,n){for(var i=0,s=0;(s=e.indexOf("&",s))>=0;){t+=e.slice(i,s),r.startEntity(n);var a=r.write(e,s+1);if(a<0){i=s+r.end();break}i=s+a,s=0===a?i+1:i}var o=t+e.slice(i);return t="",o}}function b(e,t,r,n){var i=(t&h.BRANCH_LENGTH)>>7,s=t&h.JUMP_TABLE;if(0===i)return 0!==s&&n===s?r:-1;if(s){var a=n-s;return a<0||a>=i?-1:e[r+a]-1}for(var o=r,c=o+i-1;o<=c;){var l=o+c>>>1,u=e[l];if(un))return e[l+i];c=l-1}}return-1}t.EntityDecoder=m,t.determineBranch=b;var E=w(o.default),v=w(c.default);t.decodeHTML=function(e,t){return void 0===t&&(t=A.Legacy),E(e,t)},t.decodeHTMLAttribute=function(e){return E(e,A.Attribute)},t.decodeHTMLStrict=function(e){return E(e,A.Strict)},t.decodeXML=function(e){return v(e,A.Strict)}},8873(e,t){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.replaceCodePoint=t.fromCodePoint=void 0;var n=new Map([[0,65533],[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 i(e){var t;return e>=55296&&e<=57343||e>1114111?65533:null!==(t=n.get(e))&&void 0!==t?t:e}t.fromCodePoint=null!==(r=String.fromCodePoint)&&void 0!==r?r:function(e){var t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|1023&e),t+String.fromCharCode(e)},t.replaceCodePoint=i,t.default=function(e){return(0,t.fromCodePoint)(i(e))}},6095(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.encodeNonAsciiHTML=t.encodeHTML=void 0;var i=n(r(7195)),s=r(3590),a=/[\t\n!-,./:-@[-`\f{-}$\x80-\uFFFF]/g;function o(e,t){for(var r,n="",a=0;null!==(r=e.exec(t));){var o=r.index;n+=t.substring(a,o);var c=t.charCodeAt(o),l=i.default.get(c);if("object"==typeof l){if(o+1$\x80-\uFFFF]/g;var r=new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]);function n(e){for(var n,i="",s=0;null!==(n=t.xmlReplacer.exec(e));){var a=n.index,o=e.charCodeAt(a),c=r.get(o);void 0!==c?(i+=e.substring(s,a)+c,s=a+1):(i+="".concat(e.substring(s,a),"&#x").concat((0,t.getCodePoint)(e,a).toString(16),";"),s=t.xmlReplacer.lastIndex+=Number(55296==(64512&o)))}return i+e.substr(s)}function i(e,t){return function(r){for(var n,i=0,s="";n=e.exec(r);)i!==n.index&&(s+=r.substring(i,n.index)),s+=t.get(n[0].charCodeAt(0)),i=n.index+1;return s+r.substring(i)}}t.getCodePoint=null!=String.prototype.codePointAt?function(e,t){return e.codePointAt(t)}:function(e,t){return 55296==(64512&e.charCodeAt(t))?1024*(e.charCodeAt(t)-55296)+e.charCodeAt(t+1)-56320+65536:e.charCodeAt(t)},t.encodeXML=n,t.escape=n,t.escapeUTF8=i(/[&<>'"]/g,r),t.escapeAttribute=i(/["&\u00A0]/g,new Map([[34,"""],[38,"&"],[160," "]])),t.escapeText=i(/[&<>\u00A0]/g,new Map([[38,"&"],[60,"<"],[62,">"],[160," "]]))},2834(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms„‹•˜¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map(function(e){return e.charCodeAt(0)}))},1518(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=new Uint16Array("Ȁaglq\tɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map(function(e){return e.charCodeAt(0)}))},7195(e,t){"use strict";function r(e){for(var t=1;t0?this.children[this.children.length-1]:null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"childNodes",{get:function(){return this.children},set:function(e){this.children=e},enumerable:!1,configurable:!0}),t}(o);t.NodeWithChildren=f;var A=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=a.ElementType.CDATA,t}return i(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 4},enumerable:!1,configurable:!0}),t}(f);t.CDATA=A;var d=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=a.ElementType.Root,t}return i(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 9},enumerable:!1,configurable:!0}),t}(f);t.Document=d;var p=function(e){function t(t,r,n,i){void 0===n&&(n=[]),void 0===i&&(i="script"===t?a.ElementType.Script:"style"===t?a.ElementType.Style:a.ElementType.Tag);var s=e.call(this,n)||this;return s.name=t,s.attribs=r,s.type=i,s}return i(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"tagName",{get:function(){return this.name},set:function(e){this.name=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"attributes",{get:function(){var e=this;return Object.keys(this.attribs).map(function(t){var r,n;return{name:t,value:e.attribs[t],namespace:null===(r=e["x-attribsNamespace"])||void 0===r?void 0:r[t],prefix:null===(n=e["x-attribsPrefix"])||void 0===n?void 0:n[t]}})},enumerable:!1,configurable:!0}),t}(f);function g(e){return(0,a.isTag)(e)}function y(e){return e.type===a.ElementType.CDATA}function m(e){return e.type===a.ElementType.Text}function w(e){return e.type===a.ElementType.Comment}function b(e){return e.type===a.ElementType.Directive}function E(e){return e.type===a.ElementType.Root}function v(e,t){var r;if(void 0===t&&(t=!1),m(e))r=new l(e.data);else if(w(e))r=new u(e.data);else if(g(e)){var n=t?k(e.children):[],i=new p(e.name,s({},e.attribs),n);n.forEach(function(e){return e.parent=i}),null!=e.namespace&&(i.namespace=e.namespace),e["x-attribsNamespace"]&&(i["x-attribsNamespace"]=s({},e["x-attribsNamespace"])),e["x-attribsPrefix"]&&(i["x-attribsPrefix"]=s({},e["x-attribsPrefix"])),r=i}else if(y(e)){n=t?k(e.children):[];var a=new A(n);n.forEach(function(e){return e.parent=a}),r=a}else if(E(e)){n=t?k(e.children):[];var o=new d(n);n.forEach(function(e){return e.parent=o}),e["x-mode"]&&(o["x-mode"]=e["x-mode"]),r=o}else{if(!b(e))throw new Error("Not implemented yet: ".concat(e.type));var c=new h(e.name,e.data);null!=e["x-name"]&&(c["x-name"]=e["x-name"],c["x-publicId"]=e["x-publicId"],c["x-systemId"]=e["x-systemId"]),r=c}return r.startIndex=e.startIndex,r.endIndex=e.endIndex,null!=e.sourceCodeLocation&&(r.sourceCodeLocation=e.sourceCodeLocation),r}function k(e){for(var t=e.map(function(e){return v(e,!0)}),r=1;r=0;){var r=e[t];if(t>0&&e.lastIndexOf(r,t-1)>=0)e.splice(t,1);else for(var n=r.parent;n;n=n.parent)if(e.includes(n)){e.splice(t,1);break}}return e},t.compareDocumentPosition=s,t.uniqueSort=function(e){return(e=e.filter(function(e,t,r){return!r.includes(e,t+1)})).sort(function(e,t){var r=s(e,t);return r&n.PRECEDING?-1:r&n.FOLLOWING?1:0}),e};var n,i=r(1141);function s(e,t){var r=[],s=[];if(e===t)return 0;for(var a=(0,i.hasChildren)(e)?e:e.parent;a;)r.unshift(a),a=a.parent;for(a=(0,i.hasChildren)(t)?t:t.parent;a;)s.unshift(a),a=a.parent;for(var o=Math.min(r.length,s.length),c=0;cu.indexOf(f)?l===t?n.FOLLOWING|n.CONTAINED_BY:n.FOLLOWING:l===e?n.PRECEDING|n.CONTAINS:n.PRECEDING}!function(e){e[e.DISCONNECTED=1]="DISCONNECTED",e[e.PRECEDING=2]="PRECEDING",e[e.FOLLOWING=4]="FOLLOWING",e[e.CONTAINS=8]="CONTAINS",e[e.CONTAINED_BY=16]="CONTAINED_BY"}(n||(t.DocumentPosition=n={}))},8888(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.hasChildren=t.isDocument=t.isComment=t.isText=t.isCDATA=t.isTag=void 0,i(r(6037),t),i(r(8938),t),i(r(3403),t),i(r(718),t),i(r(3209),t),i(r(5397),t),i(r(4437),t);var s=r(1141);Object.defineProperty(t,"isTag",{enumerable:!0,get:function(){return s.isTag}}),Object.defineProperty(t,"isCDATA",{enumerable:!0,get:function(){return s.isCDATA}}),Object.defineProperty(t,"isText",{enumerable:!0,get:function(){return s.isText}}),Object.defineProperty(t,"isComment",{enumerable:!0,get:function(){return s.isComment}}),Object.defineProperty(t,"isDocument",{enumerable:!0,get:function(){return s.isDocument}}),Object.defineProperty(t,"hasChildren",{enumerable:!0,get:function(){return s.hasChildren}})},3209(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.testElement=function(e,t){var r=c(e);return!r||r(t)},t.getElements=function(e,t,r,n){void 0===n&&(n=1/0);var s=c(e);return s?(0,i.filter)(s,t,r,n):[]},t.getElementById=function(e,t,r){return void 0===r&&(r=!0),Array.isArray(t)||(t=[t]),(0,i.findOne)(a("id",e),t,r)},t.getElementsByTagName=function(e,t,r,n){return void 0===r&&(r=!0),void 0===n&&(n=1/0),(0,i.filter)(s.tag_name(e),t,r,n)},t.getElementsByClassName=function(e,t,r,n){return void 0===r&&(r=!0),void 0===n&&(n=1/0),(0,i.filter)(a("class",e),t,r,n)},t.getElementsByTagType=function(e,t,r,n){return void 0===r&&(r=!0),void 0===n&&(n=1/0),(0,i.filter)(s.tag_type(e),t,r,n)};var n=r(1141),i=r(718),s={tag_name:function(e){return"function"==typeof e?function(t){return(0,n.isTag)(t)&&e(t.name)}:"*"===e?n.isTag:function(t){return(0,n.isTag)(t)&&t.name===e}},tag_type:function(e){return"function"==typeof e?function(t){return e(t.type)}:function(t){return t.type===e}},tag_contains:function(e){return"function"==typeof e?function(t){return(0,n.isText)(t)&&e(t.data)}:function(t){return(0,n.isText)(t)&&t.data===e}}};function a(e,t){return"function"==typeof t?function(r){return(0,n.isTag)(r)&&t(r.attribs[e])}:function(r){return(0,n.isTag)(r)&&r.attribs[e]===t}}function o(e,t){return function(r){return e(r)||t(r)}}function c(e){var t=Object.keys(e).map(function(t){var r=e[t];return Object.prototype.hasOwnProperty.call(s,t)?s[t](r):a(t,r)});return 0===t.length?null:t.reduce(o)}},3403(e,t){"use strict";function r(e){if(e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),e.parent){var t=e.parent.children,r=t.lastIndexOf(e);r>=0&&t.splice(r,1)}e.next=null,e.prev=null,e.parent=null}Object.defineProperty(t,"__esModule",{value:!0}),t.removeElement=r,t.replaceElement=function(e,t){var r=t.prev=e.prev;r&&(r.next=t);var n=t.next=e.next;n&&(n.prev=t);var i=t.parent=e.parent;if(i){var s=i.children;s[s.lastIndexOf(e)]=t,e.parent=null}},t.appendChild=function(e,t){if(r(t),t.next=null,t.parent=e,e.children.push(t)>1){var n=e.children[e.children.length-2];n.next=t,t.prev=n}else t.prev=null},t.append=function(e,t){r(t);var n=e.parent,i=e.next;if(t.next=i,t.prev=e,e.next=t,t.parent=n,i){if(i.prev=t,n){var s=n.children;s.splice(s.lastIndexOf(i),0,t)}}else n&&n.children.push(t)},t.prependChild=function(e,t){if(r(t),t.parent=e,t.prev=null,1!==e.children.unshift(t)){var n=e.children[1];n.prev=t,t.next=n}else t.next=null},t.prepend=function(e,t){r(t);var n=e.parent;if(n){var i=n.children;i.splice(i.indexOf(e),0,t)}e.prev&&(e.prev.next=t),t.parent=n,t.prev=e.prev,t.next=e,e.prev=t}},718(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.filter=function(e,t,r,n){return void 0===r&&(r=!0),void 0===n&&(n=1/0),i(e,Array.isArray(t)?t:[t],r,n)},t.find=i,t.findOneChild=function(e,t){return t.find(e)},t.findOne=function e(t,r,i){void 0===i&&(i=!0);for(var s=Array.isArray(r)?r:[r],a=0;a0){var c=e(t,o.children,!0);if(c)return c}}return null},t.existsOne=function e(t,r){return(Array.isArray(r)?r:[r]).some(function(r){return(0,n.isTag)(r)&&t(r)||(0,n.hasChildren)(r)&&e(t,r.children)})},t.findAll=function(e,t){for(var r=[],i=[Array.isArray(t)?t:[t]],s=[0];;)if(s[0]>=i[0].length){if(1===i.length)return r;i.shift(),s.shift()}else{var a=i[0][s[0]++];(0,n.isTag)(a)&&e(a)&&r.push(a),(0,n.hasChildren)(a)&&a.children.length>0&&(s.unshift(0),i.unshift(a.children))}};var n=r(1141);function i(e,t,r,i){for(var s=[],a=[Array.isArray(t)?t:[t]],o=[0];;)if(o[0]>=a[0].length){if(1===o.length)return s;a.shift(),o.shift()}else{var c=a[0][o[0]++];if(e(c)&&(s.push(c),--i<=0))return s;r&&(0,n.hasChildren)(c)&&c.children.length>0&&(o.unshift(0),a.unshift(c.children))}}},6037(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getOuterHTML=o,t.getInnerHTML=function(e,t){return(0,i.hasChildren)(e)?e.children.map(function(e){return o(e,t)}).join(""):""},t.getText=function e(t){return Array.isArray(t)?t.map(e).join(""):(0,i.isTag)(t)?"br"===t.name?"\n":e(t.children):(0,i.isCDATA)(t)?e(t.children):(0,i.isText)(t)?t.data:""},t.textContent=function e(t){return Array.isArray(t)?t.map(e).join(""):(0,i.hasChildren)(t)&&!(0,i.isComment)(t)?e(t.children):(0,i.isText)(t)?t.data:""},t.innerText=function e(t){return Array.isArray(t)?t.map(e).join(""):(0,i.hasChildren)(t)&&(t.type===a.ElementType.Tag||(0,i.isCDATA)(t))?e(t.children):(0,i.isText)(t)?t.data:""};var i=r(1141),s=n(r(3806)),a=r(5413);function o(e,t){return(0,s.default)(e,t)}},8938(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getChildren=i,t.getParent=s,t.getSiblings=function(e){var t=s(e);if(null!=t)return i(t);for(var r=[e],n=e.prev,a=e.next;null!=n;)r.unshift(n),n=n.prev;for(;null!=a;)r.push(a),a=a.next;return r},t.getAttributeValue=function(e,t){var r;return null===(r=e.attribs)||void 0===r?void 0:r[t]},t.hasAttrib=function(e,t){return null!=e.attribs&&Object.prototype.hasOwnProperty.call(e.attribs,t)&&null!=e.attribs[t]},t.getName=function(e){return e.name},t.nextElementSibling=function(e){for(var t=e.next;null!==t&&!(0,n.isTag)(t);)t=t.next;return t},t.prevElementSibling=function(e){for(var t=e.prev;null!==t&&!(0,n.isTag)(t);)t=t.prev;return t};var n=r(1141);function i(e){return(0,n.hasChildren)(e)?e.children:[]}function s(e){return e.parent||null}},1371(e,t,r){var n=r(321),i=r(2801);t.FALLBACK_CHARACTER=63;var s=t.HAS_TYPED="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array,a=!1,o=!1;try{"a"===String.fromCharCode.apply(null,[97])&&(a=!0)}catch(e){}if(s)try{"a"===String.fromCharCode.apply(null,new Uint8Array([97]))&&(o=!0)}catch(e){}t.CAN_CHARCODE_APPLY=a,t.CAN_CHARCODE_APPLY_TYPED=o,t.APPLY_BUFFER_SIZE=65533,t.APPLY_BUFFER_SIZE_OK=null;var c=t.EncodingNames={UTF32:{order:0},UTF32BE:{alias:["UCS4"]},UTF32LE:null,UTF16:{order:1},UTF16BE:{alias:["UCS2"]},UTF16LE:null,BINARY:{order:2},ASCII:{order:3,alias:["ISO646","CP367"]},JIS:{order:4,alias:["ISO2022JP"]},UTF8:{order:5},EUCJP:{order:6},SJIS:{order:7,alias:["CP932","MSKANJI","WINDOWS31J"]},UNICODE:{order:8}},l={};t.EncodingAliases=l,t.EncodingOrders=function(){for(var e,t,r,i,s=l,a=n.objectKeys(c),o=[],u=0,h=a.length;u95&&(i.JIS_TO_UTF8_TABLE[t]=0|e);for(i.JISX0212_TO_UTF8_TABLE={},a=(r=n.objectKeys(i.UTF8_TO_JISX0212_TABLE)).length,s=0;s=161&&t<=223?(s=188|(i=t-64)>>6&3,o=128|63&i,u[u.length]=239,u[u.length]=255&s,u[u.length]=255&o):t>=128?(r=t<<1,(i=e[++h])<159?(r-=r<319?225:97,i-=i>126?32:31):(r-=r<319?224:96,i-=126),c=((r&=255)<<8)+i,void 0===(l=a.JIS_TO_UTF8_TABLE[c])?u[u.length]=n.FALLBACK_CHARACTER:l<65535?(u[u.length]=l>>8&255,u[u.length]=255&l):(u[u.length]=l>>16&255,u[u.length]=l>>8&255,u[u.length]=255&l)):u[u.length]=255&e[h];return u}function c(e){n.init_JIS_TO_UTF8_TABLE();for(var t,r,i,s,o,c,l=[],u=0,h=e&&e.length;u>6&3,s=128|63&r,l[l.length]=239,l[l.length]=255&i,l[l.length]=255&s):143===t?(o=(e[++u]-128<<8)+(e[++u]-128),void 0===(c=a.JISX0212_TO_UTF8_TABLE[o])?l[l.length]=n.FALLBACK_CHARACTER:c<65535?(l[l.length]=c>>8&255,l[l.length]=255&c):(l[l.length]=c>>16&255,l[l.length]=c>>8&255,l[l.length]=255&c)):t>=128?(o=(t-128<<8)+(e[++u]-128),void 0===(c=a.JIS_TO_UTF8_TABLE[o])?l[l.length]=n.FALLBACK_CHARACTER:c<65535?(l[l.length]=c>>8&255,l[l.length]=255&c):(l[l.length]=c>>16&255,l[l.length]=c>>8&255,l[l.length]=255&c)):l[l.length]=255&e[u];return l}function l(e){n.init_JIS_TO_UTF8_TABLE();for(var t,r,i,s,o,c=[],l=0,u=0,h=e&&e.length;u>8&255,c[c.length]=255&o):(c[c.length]=o>>16&255,c[c.length]=o>>8&255,c[c.length]=255&o)):2===l?(r=188|(t=e[u]+64)>>6&3,i=128|63&t,c[c.length]=239,c[c.length]=255&r,c[c.length]=255&i):3===l?(s=(e[u]<<8)+e[++u],void 0===(o=a.JISX0212_TO_UTF8_TABLE[s])?c[c.length]=n.FALLBACK_CHARACTER:o<65535?(c[c.length]=o>>8&255,c[c.length]=255&o):(c[c.length]=o>>16&255,c[c.length]=o>>8&255,c[c.length]=255&o)):c[c.length]=255&e[u]}return c}function u(e,t){for(var r,i,s,o,c,l,u=[],h=0,f=e&&e.length,A=t&&t.fallback;h=128?(r<=223?(o=[r,e[h+1]],c=(r<<8)+e[++h]):r<=239?(o=[r,e[h+1],e[h+2]],c=(r<<16)+(e[++h]<<8)+(255&e[++h])):(o=[r,e[h+1],e[h+2],e[h+3]],c=(r<<24)+(e[++h]<<16)+(e[++h]<<8)+(255&e[++h])),null==(l=a.UTF8_TO_JIS_TABLE[c])?A?D(u,o,A):u[u.length]=n.FALLBACK_CHARACTER:l<255?u[u.length]=l+128:(l>65536&&(l-=65536),s=255&l,1&(i=l>>8)?((i>>=1)<47?i+=113:i-=79,s+=s>95?32:31):((i>>=1)<=47?i+=112:i-=80,s+=126),u[u.length]=255&i,u[u.length]=255&s)):u[u.length]=255&e[h];return u}function h(e,t){for(var r,i,s,o,c=[],l=0,u=e&&e.length,h=t&&t.fallback;l=128?(r<=223?(i=[r,e[l+1]],s=(r<<8)+e[++l]):r<=239?(i=[r,e[l+1],e[l+2]],s=(r<<16)+(e[++l]<<8)+(255&e[++l])):(i=[r,e[l+1],e[l+2],e[l+3]],s=(r<<24)+(e[++l]<<16)+(e[++l]<<8)+(255&e[++l])),null==(o=a.UTF8_TO_JIS_TABLE[s])?null==(o=a.UTF8_TO_JISX0212_TABLE[s])?h?D(c,i,h):c[c.length]=n.FALLBACK_CHARACTER:(c[c.length]=143,c[c.length]=(o>>8)-128&255,c[c.length]=(255&o)-128&255):(o>65536&&(o-=65536),o<255?(c[c.length]=142,c[c.length]=o-128&255):(c[c.length]=(o>>8)-128&255,c[c.length]=(255&o)-128&255))):c[c.length]=255&e[l];return c}function f(e,t){for(var r,i,s,o,c=[],l=0,u=e&&e.length,h=0,f=t&&t.fallback,A=[27,40,66,27,36,66,27,40,73,27,36,40,68];h>8&255,c[c.length]=255&o):(o>65536&&(o-=65536),o<255?(2!==l&&(l=2,c[c.length]=A[6],c[c.length]=A[7],c[c.length]=A[8]),c[c.length]=255&o):(1!==l&&(l=1,c[c.length]=A[3],c[c.length]=A[4],c[c.length]=A[5]),c[c.length]=o>>8&255,c[c.length]=255&o)));return 0!==l&&(c[c.length]=A[0],c[c.length]=A[1],c[c.length]=A[2]),c}function A(e){for(var t,r,n=[],i=0,s=e&&e.length;i=55296&&t<=56319&&i+1=56320&&r<=57343&&(t=1024*(t-55296)+r-56320+65536,i++),t<128?n[n.length]=t:t<2048?(n[n.length]=192|t>>6&31,n[n.length]=128|63&t):t<65536?(n[n.length]=224|t>>12&15,n[n.length]=128|t>>6&63,n[n.length]=128|63&t):t<2097152&&(n[n.length]=240|t>>18&15,n[n.length]=128|t>>12&63,n[n.length]=128|t>>6&63,n[n.length]=128|63&t);return n}function d(e,t){for(var r,n,i,s=[],a=0,o=e&&e.length,c=t&&t.ignoreSurrogatePair;a>4)>=0&&r<=7?i=n:12===r||13===r?i=(31&n)<<6|63&e[a++]:14===r?i=(15&n)<<12|(63&e[a++])<<6|63&e[a++]:15===r&&(i=(7&n)<<18|(63&e[a++])<<12|(63&e[a++])<<6|63&e[a++]),i<=65535||c?s[s.length]=i:(i-=65536,s[s.length]=55296+(i>>10),s[s.length]=i%1024+56320);return s}function p(e,t){var r;if(t&&t.bom){var n,s,a=t.bom;i.isString(a)||(a="BE"),"B"===a.charAt(0).toUpperCase()?(n=[254,255],s=g(e)):(n=[255,254],s=y(e)),(r=[])[0]=n[0],r[1]=n[1];for(var o=0,c=s.length;o>8&255,r[r.length]=255&t);return r}function y(e){for(var t,r=[],n=0,i=e&&e.length;n>8&255);return r}function m(e){var t,r,n=[],i=0,s=e&&e.length;for(s>=2&&(254===e[0]&&255===e[1]||255===e[0]&&254===e[1])&&(i=2);i=2&&(254===e[0]&&255===e[1]||255===e[0]&&254===e[1])&&(i=2);i=2&&(254===e[0]&&255===e[1]||255===e[0]&&254===e[1])&&(i=2);i>=1)<47?t+=113:t-=79,r+=r>95?32:31):((t>>=1)<=47?t+=112:t-=80,r+=126),i[i.length]=255&t,i[i.length]=255&r):i[i.length]=2===s?e[a]+128&255:3===s?n.FALLBACK_CHARACTER:255&e[a]}return i},t.JISToEUCJP=function(e){for(var t=[],r=0,n=e&&e.length,i=0;i=161&&t<=223?(2!==i&&(i=2,n[n.length]=o[6],n[n.length]=o[7],n[n.length]=o[8]),n[n.length]=t-128&255):t>=128?(1!==i&&(i=1,n[n.length]=o[3],n[n.length]=o[4],n[n.length]=o[5]),t<<=1,(r=e[++a])<159?(t-=t<319?225:97,r-=r>126?32:31):(t-=t<319?224:96,r-=126),n[n.length]=255&t,n[n.length]=255&r):(0!==i&&(i=0,n[n.length]=o[0],n[n.length]=o[1],n[n.length]=o[2]),n[n.length]=255&t);return 0!==i&&(n[n.length]=o[0],n[n.length]=o[1],n[n.length]=o[2]),n},t.SJISToEUCJP=function(e){for(var t,r,n=[],i=e&&e.length,s=0;s=161&&t<=223?(n[n.length]=142,n[n.length]=t):t>=129?(t<<=1,(r=e[++s])<159?(t-=t<319?97:225,r+=r>126?96:97):(t-=t<319?96:224,r+=2),n[n.length]=255&t,n[n.length]=255&r):n[n.length]=255&t;return n},t.EUCJPToJIS=function(e){for(var t,r=[],n=0,i=e&&e.length,s=0,a=[27,40,66,27,36,66,27,40,73,27,36,40,68];s142?(1!==n&&(n=1,r[r.length]=a[3],r[r.length]=a[4],r[r.length]=a[5]),r[r.length]=t-128&255,r[r.length]=e[++s]-128&255):(0!==n&&(n=0,r[r.length]=a[0],r[r.length]=a[1],r[r.length]=a[2]),r[r.length]=255&t);return 0!==n&&(r[r.length]=a[0],r[r.length]=a[1],r[r.length]=a[2]),r},t.EUCJPToSJIS=function(e){for(var t,r,i=[],s=e&&e.length,a=0;a142?(r=e[++a],1&t?(t>>=1,t+=t<111?49:113,r-=r>223?96:97):(t>>=1,t+=t<=111?48:112,r-=2),i[i.length]=255&t,i[i.length]=255&r):i[i.length]=142===t?255&e[++a]:255&t;return i},t.SJISToUTF8=o,t.EUCJPToUTF8=c,t.JISToUTF8=l,t.UTF8ToSJIS=u,t.UTF8ToEUCJP=h,t.UTF8ToJIS=f,t.UNICODEToUTF8=A,t.UTF8ToUNICODE=d,t.UNICODEToUTF16=p,t.UNICODEToUTF16BE=g,t.UNICODEToUTF16LE=y,t.UTF16BEToUNICODE=m,t.UTF16LEToUNICODE=w,t.UTF16ToUNICODE=b,t.UTF16ToUTF16BE=function(e){for(var t,r,n=[],i=0,a=e&&e.length,o=!1,c=!0;i=2&&(254===e[0]&&255===e[1]||255===e[0]&&254===e[1])&&(u=2),r&&(c[0]=r[0],c[1]=r[1]);u=2&&(254===e[0]&&255===e[1]||255===e[0]&&254===e[1])&&(u=2),r&&(c[0]=r[0],c[1]=r[1]);u255)return!1;if(t>=0&&t<=7||255===t)return!0}return!1},t.isASCII=function(e){for(var t,r=0,n=e&&e.length;r255||t>=128&&t<=255||27===t)return!1;return!0},t.isJIS=function(e){for(var t,r,n,i=0,s=e&&e.length;i255||t>=128&&t<=255)return!1;if(27===t){if(i+2>=s)return!1;if(r=e[i+1],n=e[i+2],36===r){if(40===n||64===n||66===n)return!0}else{if(38===r&&64===n)return!0;if(40===r&&(66===n||73===n||74===n))return!0}}}return!1},t.isEUCJP=function(e){for(var t,r=0,n=e&&e.length;r255||t<142)return!1;if(142===t){if(r+1>=n)return!1;if((t=e[++r])<161||223=n)return!1;if((t=e[++r])<162||237=n)return!1;if((t=e[++r])<161||254128;)if(e[r++]>255)return!1;for(;r239||r+1>=n)return!1;if((t=e[++r])<64||127===t||t>252)return!1}return!0},t.isUTF8=function(e){for(var t,r=0,n=e&&e.length;r255)return!1;if(!(9===t||10===t||13===t||t>=32&&t<=126))if(t>=194&&t<=223){if(r+1>=n||e[r+1]<128||e[r+1]>191)return!1;r++}else if(224===t){if(r+2>=n||e[r+1]<160||e[r+1]>191||e[r+2]<128||e[r+2]>191)return!1;r+=2}else if(t>=225&&t<=236||238===t||239===t){if(r+2>=n||e[r+1]<128||e[r+1]>191||e[r+2]<128||e[r+2]>191)return!1;r+=2}else if(237===t){if(r+2>=n||e[r+1]<128||e[r+1]>159||e[r+2]<128||e[r+2]>191)return!1;r+=2}else if(240===t){if(r+3>=n||e[r+1]<144||e[r+1]>191||e[r+2]<128||e[r+2]>191||e[r+3]<128||e[r+3]>191)return!1;r+=3}else if(t>=241&&t<=243){if(r+3>=n||e[r+1]<128||e[r+1]>191||e[r+2]<128||e[r+2]>191||e[r+3]<128||e[r+3]>191)return!1;r+=3}else{if(244!==t)return!1;if(r+3>=n||e[r+1]<128||e[r+1]>143||e[r+2]<128||e[r+2]>191||e[r+3]<128||e[r+3]>191)return!1;r+=3}}return!0},t.isUTF16=function(e){var t,r,n,i,s=0,a=e&&e.length,o=null;if(a<2){if(e[0]>255)return!1}else{if(t=e[0],r=e[1],255===t&&254===r)return!0;if(254===t&&255===r)return!0;for(;s255)return!1}if(null===o)return!1;if(void 0!==(n=e[o+1])&&n>0&&n<128)return!0;if(void 0!==(i=e[o-1])&&i>0&&i<128)return!0}return!1},t.isUTF16BE=function(e){var t,r,n=0,i=e&&e.length,s=null;if(i<2){if(e[0]>255)return!1}else{if(t=e[0],r=e[1],254===t&&255===r)return!0;for(;n255)return!1}if(null===s)return!1;if(s%2==0)return!0}return!1},t.isUTF16LE=function(e){var t,r,n=0,i=e&&e.length,s=null;if(i<2){if(e[0]>255)return!1}else{if(t=e[0],r=e[1],255===t&&254===r)return!0;for(;n255)return!1}if(null===s)return!1;if(s%2!=0)return!0}return!1},t.isUTF32=function(e){var t,r,n,i,s,a,o=0,c=e&&e.length,l=null;if(c<4){for(;o255)return!1}else{if(t=e[0],r=e[1],n=e[2],i=e[3],0===t&&0===r&&254===n&&255===i)return!0;if(255===t&&254===r&&0===n&&0===i)return!0;for(;o255)return!1}if(null===l)return!1;if(void 0!==(s=e[l+3])&&s>0&&s<=127)return 0===e[l+2]&&0===e[l+1];if(void 0!==(a=e[l-1])&&a>0&&a<=127)return 0===e[l+1]&&0===e[l+2]}return!1},t.isUNICODE=function(e){for(var t,r=0,n=e&&e.length;r1114111)return!1;return!0}},2801(e,t,r){t.UTF8_TO_JIS_TABLE=r(4992),t.UTF8_TO_JISX0212_TABLE=r(909),t.JIS_TO_UTF8_TABLE=r(5748),t.JISX0212_TO_UTF8_TABLE=r(7921)},8969(e,t,r){var n=r(1371),i=r(321),s=r(1742),a=r(5210),o=r(3880),c=r(6171).rE,l=Object.prototype.hasOwnProperty,u={version:c,orders:n.EncodingOrders,detect:function(e,t){if(null==e||0===e.length)return!1;i.isObject(t)&&!i.isArray(t)&&(t=t.encoding),i.isString(e)&&(e=i.stringToBuffer(e)),null==t?t=u.orders:i.isString(t)&&(t="AUTO"===(t=t.toUpperCase())?u.orders:~t.indexOf(",")?t.split(/\s*,\s*/):[t]);for(var r,n,a,o=t.length,c=0;c255)return encodeURIComponent(i.codeToString_fast(e));t>=97&&t<=122||t>=65&&t<=90||t>=48&&t<=57||33===t||t>=39&&t<=42||45===t||46===t||95===t||126===t?n[n.length]=t:(n[n.length]=37,t<16?(n[n.length]=48,n[n.length]=r[t]):(n[n.length]=r[t>>4&15],n[n.length]=r[15&t]))}return i.codeToString_fast(n)},urlDecode:function(e){for(var t,r=[],n=0,i=e&&e.length;n=65281&&r<=65374&&(r-=65248),n[n.length]=r;return t?i.codeToString_fast(n):n},toZenkakuCase:function(e){var t=!1;i.isString(e)&&(t=!0,e=i.stringToBuffer(e));for(var r,n=[],s=e&&e.length,a=0;a=33&&r<=126&&(r+=65248),n[n.length]=r;return t?i.codeToString_fast(n):n},toHiraganaCase:function(e){var t=!1;i.isString(e)&&(t=!0,e=i.stringToBuffer(e));for(var r,n=[],s=e&&e.length,a=0;a=12449&&r<=12534?r-=96:12535===r?(n[n.length]=12431,r=12443):12538===r&&(n[n.length]=12434,r=12443),n[n.length]=r;return t?i.codeToString_fast(n):n},toKatakanaCase:function(e){var t=!1;i.isString(e)&&(t=!0,e=i.stringToBuffer(e));for(var r,n=[],s=e&&e.length,a=0;a=12353&&r<=12438&&((12431===r||12434===r)&&a=12289&&r<=12540&&void 0!==(s=o.HANKANA_TABLE[r])?a[a.length]=s:12532===r||12535===r||12538===r?(a[a.length]=o.HANKANA_SONANTS[r],a[a.length]=65438):r>=12459&&r<=12489?(a[a.length]=o.HANKANA_TABLE[r-1],a[a.length]=65438):r>=12495&&r<=12509?(n=r%3,a[a.length]=o.HANKANA_TABLE[r-n],a[a.length]=o.HANKANA_MARKS[n-1]):a[a.length]=r;return t?i.codeToString_fast(a):a},toZenkanaCase:function(e){var t=!1;i.isString(e)&&(t=!0,e=i.stringToBuffer(e));var r,n,s,a=[],c=e&&e.length,l=0;for(l=0;l65376&&r<65440&&(n=o.ZENKANA_TABLE[r-65377],l+165397&&r<65413||r>65417&&r<65423)?(n++,l++):65439===s&&r>65417&&r<65423&&(n+=2,l++)),r=n),a[a.length]=r;return t?i.codeToString_fast(a):a},toHankakuSpace:function(e){if(i.isString(e))return e.replace(/\u3000/g," ");for(var t,r=[],n=e&&e.length,s=0;sn.APPLY_BUFFER_SIZE&&(n.APPLY_BUFFER_SIZE_OK=!0),r}catch(e){n.APPLY_BUFFER_SIZE_OK=!1}}return d(e)}function d(e){for(var t,r="",s=e&&e.length,a=0;an.APPLY_BUFFER_SIZE&&(n.APPLY_BUFFER_SIZE_OK=!0);continue}catch(e){n.APPLY_BUFFER_SIZE_OK=!1}return p(e)}r+=i.apply(null,t)}return r}function p(e){for(var t="",r=e&&e.length,n=0;n>2],t[t.length]=g[(3&i)<<4],t[t.length]=m,t[t.length]=m;break}if(s=e[r++],r==n){t[t.length]=g[i>>2],t[t.length]=g[(3&i)<<4|(240&s)>>4],t[t.length]=g[(15&s)<<2],t[t.length]=m;break}a=e[r++],t[t.length]=g[i>>2],t[t.length]=g[(3&i)<<4|(240&s)>>4],t[t.length]=g[(15&s)<<2|(192&a)>>6],t[t.length]=g[63&a]}return A(t)},t.base64decode=function(e){var t,r,n,i,s,a,o;for(a=e&&e.length,s=0,o=[];s>4;do{if(61==(n=255&e.charCodeAt(s++)))return o;n=y[n]}while(s>2;do{if(61==(i=255&e.charCodeAt(s++)))return o;i=y[i]}while(s>1,u=-7,h=r?i-1:0,f=r?-1:1,A=e[t+h];for(h+=f,s=A&(1<<-u)-1,A>>=-u,u+=o;u>0;s=256*s+e[t+h],h+=f,u-=8);for(a=s&(1<<-u)-1,s>>=-u,u+=n;u>0;a=256*a+e[t+h],h+=f,u-=8);if(0===s)s=1-l;else{if(s===c)return a?NaN:1/0*(A?-1:1);a+=Math.pow(2,n),s-=l}return(A?-1:1)*a*Math.pow(2,s-n)},t.write=function(e,t,r,n,i,s){var a,o,c,l=8*s-i-1,u=(1<>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,A=n?0:s-1,d=n?1:-1,p=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(o=isNaN(t)?1:0,a=u):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+h>=1?f/c:f*Math.pow(2,1-h))*c>=2&&(a++,c/=2),a+h>=u?(o=0,a=u):a+h>=1?(o=(t*c-1)*Math.pow(2,i),a+=h):(o=t*Math.pow(2,h-1)*Math.pow(2,i),a=0));i>=8;e[r+A]=255&o,A+=d,o/=256,i-=8);for(a=a<0;e[r+A]=255&a,A+=d,a/=256,l-=8);e[r+A-d]|=128*p}},8682(e,t){"use strict";function r(e){return"[object Object]"===Object.prototype.toString.call(e)}t.isPlainObject=function(e){var t,n;return!1!==r(e)&&(void 0===(t=e.constructor)||!1!==r(n=t.prototype)&&!1!==n.hasOwnProperty("isPrototypeOf"))}},9466(e,t){var r,n;void 0===(n="function"==typeof(r=function(){return function(e){function t(e){return" "===e||"\t"===e||"\n"===e||"\f"===e||"\r"===e}function r(t){var r,n=t.exec(e.substring(p));if(n)return r=n[0],p+=r.length,r}for(var n,i,s,a,o,c=e.length,l=/^[ \t\n\r\u000c]+/,u=/^[, \t\n\r\u000c]+/,h=/^[^ \t\n\r\u000c]+/,f=/[,]+$/,A=/^\d+$/,d=/^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,p=0,g=[];;){if(r(u),p>=c)return g;n=r(h),i=[],","===n.slice(-1)?(n=n.replace(f,""),m()):y()}function y(){for(r(l),s="",a="in descriptor";;){if(o=e.charAt(p),"in descriptor"===a)if(t(o))s&&(i.push(s),s="",a="after descriptor");else{if(","===o)return p+=1,s&&i.push(s),void m();if("("===o)s+=o,a="in parens";else{if(""===o)return s&&i.push(s),void m();s+=o}}else if("in parens"===a)if(")"===o)s+=o,a="in descriptor";else{if(""===o)return i.push(s),void m();s+=o}else if("after descriptor"===a)if(t(o));else{if(""===o)return void m();a="in descriptor",p-=1}p+=1}}function m(){var t,r,s,a,o,c,l,u,h,f=!1,p={};for(a=0;a(e.nodes&&(e.nodes=f(e.nodes)),delete e.source,e))}function A(e){if(e[u]=!1,e.proxyOf.nodes)for(let t of e.proxyOf.nodes)A(t)}class d extends l{get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}append(...e){for(let t of e){let e=this.normalize(t,this.last);for(let t of e)this.proxyOf.nodes.push(t)}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let t of this.nodes)t.cleanRaws(e)}each(e){if(!this.proxyOf.nodes)return;let t,r,n=this.getIterator();for(;this.indexes[n]"proxyOf"===t?e:e[t]?"each"===t||"string"==typeof t&&t.startsWith("walk")?(...r)=>e[t](...r.map(e=>"function"==typeof e?(t,r)=>e(t.toProxy(),r):e)):"every"===t||"some"===t?r=>e[t]((e,...t)=>r(e.toProxy(),...t)):"root"===t?()=>e.root().toProxy():"nodes"===t?e.nodes.map(e=>e.toProxy()):"first"===t||"last"===t?e[t].toProxy():e[t]:e[t],set:(e,t,r)=>(e[t]===r||(e[t]=r,"name"!==t&&"params"!==t&&"selector"!==t||e.markDirty()),!0)}}index(e){return"number"==typeof e?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}insertAfter(e,t){let r,n=this.index(e),i=this.normalize(t,this.proxyOf.nodes[n]).reverse();n=this.index(e);for(let e of i)this.proxyOf.nodes.splice(n+1,0,e);for(let e in this.indexes)r=this.indexes[e],n(e[h]||d.rebuild(e),(e=e.proxyOf).parent&&e.parent.removeChild(e),e[u]&&A(e),e.raws||(e.raws={}),void 0===e.raws.before&&t&&void 0!==t.raws.before&&(e.raws.before=t.raws.before.replace(/\S/g,"")),e.parent=this.proxyOf,e))}prepend(...e){e=e.reverse();for(let t of e){let e=this.normalize(t,this.first,"prepend").reverse();for(let t of e)this.proxyOf.nodes.unshift(t);for(let t in this.indexes)this.indexes[t]=this.indexes[t]+e.length}return this.markDirty(),this}push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(e){let t;e=this.index(e),this.proxyOf.nodes[e].parent=void 0,this.proxyOf.nodes.splice(e,1);for(let r in this.indexes)t=this.indexes[r],t>=e&&(this.indexes[r]=t-1);return this.markDirty(),this}replaceValues(e,t,r){return r||(r=t,t={}),this.walkDecls(n=>{t.props&&!t.props.includes(n.prop)||t.fast&&!n.value.includes(t.fast)||(n.value=n.value.replace(e,r))}),this.markDirty(),this}some(e){return this.nodes.some(e)}walk(e){return this.each((t,r)=>{let n;try{n=e(t,r)}catch(e){throw t.addToError(e)}return!1!==n&&t.walk&&(n=t.walk(e)),n})}walkAtRules(e,t){return t?e instanceof RegExp?this.walk((r,n)=>{if("atrule"===r.type&&e.test(r.name))return t(r,n)}):this.walk((r,n)=>{if("atrule"===r.type&&r.name===e)return t(r,n)}):(t=e,this.walk((e,r)=>{if("atrule"===e.type)return t(e,r)}))}walkComments(e){return this.walk((t,r)=>{if("comment"===t.type)return e(t,r)})}walkDecls(e,t){return t?e instanceof RegExp?this.walk((r,n)=>{if("decl"===r.type&&e.test(r.prop))return t(r,n)}):this.walk((r,n)=>{if("decl"===r.type&&r.prop===e)return t(r,n)}):(t=e,this.walk((e,r)=>{if("decl"===e.type)return t(e,r)}))}walkRules(e,t){return t?e instanceof RegExp?this.walk((r,n)=>{if("rule"===r.type&&e.test(r.selector))return t(r,n)}):this.walk((r,n)=>{if("rule"===r.type&&r.selector===e)return t(r,n)}):(t=e,this.walk((e,r)=>{if("rule"===e.type)return t(e,r)}))}}d.registerParse=e=>{i=e},d.registerRule=e=>{a=e},d.registerAtRule=e=>{n=e},d.registerRoot=e=>{s=e},e.exports=d,d.default=d,d.rebuild=e=>{"atrule"===e.type?Object.setPrototypeOf(e,n.prototype):"rule"===e.type?Object.setPrototypeOf(e,a.prototype):"decl"===e.type?Object.setPrototypeOf(e,c.prototype):"comment"===e.type?Object.setPrototypeOf(e,o.prototype):"root"===e.type&&Object.setPrototypeOf(e,s.prototype),e[h]=!0,e.nodes&&e.nodes.forEach(e=>{d.rebuild(e)})}},3614(e,t,r){"use strict";let n=r(8633),i=r(9746);class s extends Error{constructor(e,t,r,n,i,a){super(e),this.name="CssSyntaxError",this.reason=e,i&&(this.file=i),n&&(this.source=n),a&&(this.plugin=a),void 0!==t&&void 0!==r&&("number"==typeof t?(this.line=t,this.column=r):(this.line=t.line,this.column=t.column,this.endLine=r.line,this.endColumn=r.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,s)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"",void 0!==this.line&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let t=this.source;null==e&&(e=n.isColorSupported);let r=e=>e,s=e=>e,a=e=>e;if(e){let{bold:e,gray:t,red:o}=n.createColors(!0);s=t=>e(o(t)),r=e=>t(e),i&&(a=e=>i(e))}let o=t.split(/\r?\n/),c=Math.max(this.line-3,0),l=Math.min(this.line+2,o.length),u=String(l).length;return o.slice(c,l).map((e,t)=>{let n=c+1+t,i=" "+(" "+n).slice(-u)+" | ";if(n===this.line){if(e.length>160){let t=20,n=Math.max(0,this.column-t),o=Math.max(this.column+t,this.endColumn+t),c=e.slice(n,o),l=r(i.replace(/\d/g," "))+e.slice(0,Math.min(this.column-1,t-1)).replace(/[^\t]/g," ");return s(">")+r(i)+a(c)+"\n "+l+s("^")}let t=r(i.replace(/\d/g," "))+e.slice(0,this.column-1).replace(/[^\t]/g," ");return s(">")+r(i)+a(e)+"\n "+t+s("^")}return" "+r(i)+a(e)}).join("\n")}toString(){let e=this.showSourceCode();return e&&(e="\n\n"+e+"\n"),this.name+": "+this.message+e}}e.exports=s,s.default=s},5238(e,t,r){"use strict";let n=r(3152);class i extends n{get variable(){return this.prop.startsWith("--")||"$"===this.prop[0]}constructor(e){e&&void 0!==e.value&&"string"!=typeof e.value&&(e={...e,value:String(e.value)}),super(e),this.type="decl"}}e.exports=i,i.default=i},145(e,t,r){"use strict";let n,i,s=r(7793);class a extends s{constructor(e){super({type:"document",...e}),this.nodes||(this.nodes=[])}toResult(e={}){return new n(new i,this,e).stringify()}}a.registerLazyResult=e=>{n=e},a.registerProcessor=e=>{i=e},e.exports=a,a.default=a},3438(e,t,r){"use strict";let n=r(396),i=r(9371),s=r(5238),a=r(1106),o=r(3878),c=r(5644),l=r(1534);function u(e,t){if(Array.isArray(e))return e.map(e=>u(e));let{inputs:r,...h}=e;if(r){t=[];for(let e of r){let r={...e,__proto__:a.prototype};r.map&&(r.map={...r.map,__proto__:o.prototype}),t.push(r)}}if(h.nodes&&(h.nodes=e.nodes.map(e=>u(e,t))),h.source){let{inputId:e,...r}=h.source;h.source=r,null!=e&&(h.source.input=t[e])}if("root"===h.type)return new c(h);if("decl"===h.type)return new s(h);if("rule"===h.type)return new l(h);if("comment"===h.type)return new i(h);if("atrule"===h.type)return new n(h);throw new Error("Unknown node type: "+e.type)}e.exports=u,u.default=u},1106(e,t,r){"use strict";let{nanoid:n}=r(5042),{isAbsolute:i,resolve:s}=r(197),{SourceMapConsumer:a,SourceMapGenerator:o}=r(1866),{fileURLToPath:c,pathToFileURL:l}=r(2739),u=r(3614),h=r(3878),f=r(9746),A=Symbol("lineToIndexCache"),d=Boolean(a&&o),p=Boolean(s&&i);function g(e){if(e[A])return e[A];let t=e.css.split("\n"),r=new Array(t.length),n=0;for(let e=0,i=t.length;e"),this.map&&(this.map.file=this.from)}error(e,t,r,n={}){let i,s,a,o,c;if(t&&"object"==typeof t){let e=t,n=r;if("number"==typeof e.offset){o=e.offset;let n=this.fromOffset(o);t=n.line,r=n.col}else t=e.line,r=e.column,o=this.fromLineAndColumn(t,r);if("number"==typeof n.offset){a=n.offset;let e=this.fromOffset(a);s=e.line,i=e.col}else s=n.line,i=n.column,a=this.fromLineAndColumn(n.line,n.column)}else if(r)o=this.fromLineAndColumn(t,r);else{o=t;let e=this.fromOffset(o);t=e.line,r=e.col}let h=this.origin(t,r,s,i);return c=h?new u(e,void 0===h.endLine?h.line:{column:h.column,line:h.line},void 0===h.endLine?h.column:{column:h.endColumn,line:h.endLine},h.source,h.file,n.plugin):new u(e,void 0===s?t:{column:r,line:t},void 0===s?r:{column:i,line:s},this.css,this.file,n.plugin),c.input={column:r,endColumn:i,endLine:s,endOffset:a,line:t,offset:o,source:this.css},this.file&&(l&&(c.input.url=l(this.file).toString()),c.input.file=this.file),c}fromLineAndColumn(e,t){return g(this)[e-1]+t-1}fromOffset(e){let t=g(this),r=0;if(e>=t[t.length-1])r=t.length-1;else{let n,i=t.length-2;for(;r>1),e=t[n+1])){r=n;break}r=n+1}}return{col:e-t[r]+1,line:r+1}}mapResolve(e){return/^\w+:\/\//.test(e)?e:s(this.map.consumer().sourceRoot||this.map.root||".",e)}origin(e,t,r,n){if(!this.map)return!1;let s,a,o=this.map.consumer(),u=o.originalPositionFor({column:t,line:e});if(!u.source)return!1;"number"==typeof r&&(s=o.originalPositionFor({column:n,line:r})),a=i(u.source)?l(u.source):new URL(u.source,this.map.consumer().sourceRoot||l(this.map.mapFile));let h={column:u.column,endColumn:s&&s.column,endLine:s&&s.line,line:u.line,url:a.toString()};if("file:"===a.protocol){if(!c)throw new Error("file: protocol is not available in this PostCSS build");h.file=c(a)}let f=o.sourceContentFor(u.source);return f&&(h.source=f),h}toJSON(){let e={};for(let t of["hasBOM","css","file","id"])null!=this[t]&&(e[t]=this[t]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}}e.exports=y,y.default=y,f&&f.registerInput&&f.registerInput(y)},6966(e,t,r){"use strict";let n=r(7793),i=r(145),s=r(3604),a=r(9577),o=r(3717),c=r(5644),l=r(3303),{isClean:u,my:h}=r(4151);r(6156);const f={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},A={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},d={Once:!0,postcssPlugin:!0,prepare:!0};function p(e){return"object"==typeof e&&"function"==typeof e.then}function g(e){let t=!1,r=f[e.type];return"decl"===e.type?t=e.prop.toLowerCase():"atrule"===e.type&&(t=e.name.toLowerCase()),t&&e.append?[r,r+"-"+t,0,r+"Exit",r+"Exit-"+t]:t?[r,r+"-"+t,r+"Exit",r+"Exit-"+t]:e.append?[r,0,r+"Exit"]:[r,r+"Exit"]}function y(e){let t;return t="document"===e.type?["Document",0,"DocumentExit"]:"root"===e.type?["Root",0,"RootExit"]:g(e),{eventIndex:0,events:t,iterator:0,node:e,visitorIndex:0,visitors:[]}}function m(e){return e[u]=!1,e.nodes&&e.nodes.forEach(e=>m(e)),e}let w={};class b{get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}constructor(e,t,r){let i;if(this.stringified=!1,this.processed=!1,"object"!=typeof t||null===t||"root"!==t.type&&"document"!==t.type)if(t instanceof b||t instanceof o)i=m(t.root),t.map&&(void 0===r.map&&(r.map={}),r.map.inline||(r.map.inline=!1),r.map.prev=t.map);else{let e=a;r.syntax&&(e=r.syntax.parse),r.parser&&(e=r.parser),e.parse&&(e=e.parse);try{i=e(t,r)}catch(e){this.processed=!0,this.error=e}i&&!i[h]&&n.rebuild(i)}else i=m(t);this.result=new o(e,i,r),this.helpers={...w,postcss:w,result:this.result},this.plugins=this.processor.plugins.map(e=>"object"==typeof e&&e.prepare?{...e,...e.prepare(this.result)}:e)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,t){let r=this.result.lastPlugin;try{t&&t.addToError(e),this.error=e,"CssSyntaxError"!==e.name||e.plugin?r.postcssVersion:(e.plugin=r.postcssPlugin,e.setMessage())}catch(e){console&&console.error&&console.error(e)}return e}prepareVisitors(){this.listeners={};let e=(e,t,r)=>{this.listeners[t]||(this.listeners[t]=[]),this.listeners[t].push([e,r])};for(let t of this.plugins)if("object"==typeof t)for(let r in t){if(!A[r]&&/^[A-Z]/.test(r))throw new Error(`Unknown event ${r} in ${t.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!d[r])if("object"==typeof t[r])for(let n in t[r])e(t,"*"===n?r:r+"-"+n.toLowerCase(),t[r][n]);else"function"==typeof t[r]&&e(t,r,t[r])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let e=0;e0;){let e=this.visitTick(t);if(p(e))try{await e}catch(e){let r=t[t.length-1].node;throw this.handleError(e,r)}}}if(this.listeners.OnceExit)for(let[t,r]of this.listeners.OnceExit){this.result.lastPlugin=t;try{if("document"===e.type){let t=e.nodes.map(e=>r(e,this.helpers));await Promise.all(t)}else await r(e,this.helpers)}catch(e){throw this.handleError(e)}}}return this.processed=!0,this.stringify()}runOnRoot(e){this.result.lastPlugin=e;try{if("object"==typeof e&&e.Once){if("document"===this.result.root.type){let t=this.result.root.nodes.map(t=>e.Once(t,this.helpers));return p(t[0])?Promise.all(t):t}return e.Once(this.result.root,this.helpers)}if("function"==typeof e)return e(this.result.root,this.result)}catch(e){throw this.handleError(e)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,t=l;e.syntax&&(t=e.syntax.stringify),e.stringifier&&(t=e.stringifier),t.stringify&&(t=t.stringify);let r=new s(t,this.result.root,this.result.opts).generate();return this.result.css=r[0],this.result.map=r[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins)if(p(this.runOnRoot(e)))throw this.getAsyncError();if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[u];)e[u]=!0,this.walkSync(e);if(this.listeners.OnceExit)if("document"===e.type)for(let t of e.nodes)this.visitSync(this.listeners.OnceExit,t);else this.visitSync(this.listeners.OnceExit,e)}return this.result}then(e,t){return this.async().then(e,t)}toString(){return this.css}visitSync(e,t){for(let[r,n]of e){let e;this.result.lastPlugin=r;try{e=n(t,this.helpers)}catch(e){throw this.handleError(e,t.proxyOf)}if("root"!==t.type&&"document"!==t.type&&!t.parent)return!0;if(p(e))throw this.getAsyncError()}}visitTick(e){let t=e[e.length-1],{node:r,visitors:n}=t;if("root"!==r.type&&"document"!==r.type&&!r.parent)return void e.pop();if(n.length>0&&t.visitorIndex{e[u]||this.walkSync(e)});else{let t=this.listeners[r];if(t&&this.visitSync(t,e.toProxy()))return}}warnings(){return this.sync().warnings()}}b.registerPostcss=e=>{w=e},e.exports=b,b.default=b,c.registerLazyResult(b),i.registerLazyResult(b)},1752(e){"use strict";let t={comma:e=>t.split(e,[","],!0),space:e=>t.split(e,[" ","\n","\t"]),split(e,t,r){let n=[],i="",s=!1,a=0,o=!1,c="",l=!1;for(let r of e)l?l=!1:"\\"===r?l=!0:o?r===c&&(o=!1):'"'===r||"'"===r?(o=!0,c=r):"("===r?a+=1:")"===r?a>0&&(a-=1):0===a&&t.includes(r)&&(s=!0),s?(""!==i&&n.push(i.trim()),i="",s=!1):i+=r;return(r||""!==i)&&n.push(i.trim()),n}};e.exports=t,t.default=t},3604(e,t,r){"use strict";let{dirname:n,relative:i,resolve:s,sep:a}=r(197),{SourceMapConsumer:o,SourceMapGenerator:c}=r(1866),{pathToFileURL:l}=r(2739),u=r(1106),h=Boolean(o&&c),f=Boolean(n&&s&&i&&a);e.exports=class{constructor(e,t,r,n){this.stringify=e,this.mapOpts=r.map||{},this.root=t,this.opts=r,this.css=n,this.originalCSS=n,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let e;e=this.isInline()?"data:application/json;base64,"+this.toBase64(this.map.toString()):"string"==typeof this.mapOpts.annotation?this.mapOpts.annotation:"function"==typeof this.mapOpts.annotation?this.mapOpts.annotation(this.opts.to,this.root):this.outputFile()+".map";let t="\n";this.css.includes("\r\n")&&(t="\r\n"),this.css+=t+"/*# sourceMappingURL="+e+" */"}applyPrevMaps(){for(let e of this.previous()){let t,r=this.toUrl(this.path(e.file)),i=e.root||n(e.file);!1===this.mapOpts.sourcesContent?(t=new o(e.text),t.sourcesContent&&(t.sourcesContent=null)):t=e.consumer(),this.map.applySourceMap(t,r,this.toUrl(this.path(i)))}}clearAnnotation(){if(!1!==this.mapOpts.annotation)if(this.root){let e;for(let t=this.root.nodes.length-1;t>=0;t--)e=this.root.nodes[t],"comment"===e.type&&e.text.startsWith("# sourceMappingURL=")&&this.root.removeChild(t)}else if(this.css){let e;for(;-1!==(e=this.css.lastIndexOf("/*#"));){let t=this.css.indexOf("*/",e+3);if(-1===t)break;for(;e>0&&"\n"===this.css[e-1];)e--;this.css=this.css.slice(0,e)+this.css.slice(t+2)}}}generate(){if(this.clearAnnotation(),f&&h&&this.isMap())return this.generateMap();{let e="";return this.stringify(this.root,t=>{e+=t}),[e]}}generateMap(){if(this.root)this.generateString();else if(1===this.previous().length){let e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=c.fromSourceMap(e,{ignoreInvalidMapping:!0})}else this.map=new c({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):""});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}generateString(){this.css="",this.map=new c({file:this.outputFile(),ignoreInvalidMapping:!0});let e,t,r=1,n=1,i="",s={generated:{column:0,line:0},original:{column:0,line:0},source:""};this.stringify(this.root,(a,o,c)=>{if(this.css+=a,o&&"end"!==c&&(s.generated.line=r,s.generated.column=n-1,o.source&&o.source.start?(s.source=this.sourcePath(o),s.original.line=o.source.start.line,s.original.column=o.source.start.column-1,this.map.addMapping(s)):(s.source=i,s.original.line=1,s.original.column=0,this.map.addMapping(s))),t=a.match(/\n/g),t?(r+=t.length,e=a.lastIndexOf("\n"),n=a.length-e):n+=a.length,o&&"start"!==c){let e=o.parent||{raws:{}};("decl"===o.type||"atrule"===o.type&&!o.nodes)&&o===e.last&&!e.raws.semicolon||(o.source&&o.source.end?(s.source=this.sourcePath(o),s.original.line=o.source.end.line,s.original.column=o.source.end.column-1,s.generated.line=r,s.generated.column=n-2,this.map.addMapping(s)):(s.source=i,s.original.line=1,s.original.column=0,s.generated.line=r,s.generated.column=n-1,this.map.addMapping(s)))}})}isAnnotation(){return!!this.isInline()||(void 0!==this.mapOpts.annotation?this.mapOpts.annotation:!this.previous().length||this.previous().some(e=>e.annotation))}isInline(){if(void 0!==this.mapOpts.inline)return this.mapOpts.inline;let e=this.mapOpts.annotation;return(void 0===e||!0===e)&&(!this.previous().length||this.previous().some(e=>e.inline))}isMap(){return void 0!==this.opts.map?!!this.opts.map:this.previous().length>0}isSourcesContent(){return void 0!==this.mapOpts.sourcesContent?this.mapOpts.sourcesContent:!this.previous().length||this.previous().some(e=>e.withContent())}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(e){if(this.mapOpts.absolute)return e;if(60===e.charCodeAt(0))return e;if(/^\w+:\/\//.test(e))return e;let t=this.memoizedPaths.get(e);if(t)return t;let r=this.opts.to?n(this.opts.to):".";"string"==typeof this.mapOpts.annotation&&(r=n(s(r,this.mapOpts.annotation)));let a=i(r,e);return this.memoizedPaths.set(e,a),a}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(e=>{if(e.source&&e.source.input.map){let t=e.source.input.map;this.previousMaps.includes(t)||this.previousMaps.push(t)}});else{let e=new u(this.originalCSS,this.opts);e.map&&this.previousMaps.push(e.map)}return this.previousMaps}setSourcesContent(){let e={};if(this.root)this.root.walk(t=>{if(t.source){let r=t.source.input.from;if(r&&!e[r]){e[r]=!0;let n=this.usesFileUrls?this.toFileUrl(r):this.toUrl(this.path(r));this.map.setSourceContent(n,t.source.input.css)}}});else if(this.css){let e=this.opts.from?this.toUrl(this.path(this.opts.from)):"";this.map.setSourceContent(e,this.css)}}sourcePath(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))}toBase64(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))}toFileUrl(e){let t=this.memoizedFileURLs.get(e);if(t)return t;if(l){let t=l(e).toString();return this.memoizedFileURLs.set(e,t),t}throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(e){let t=this.memoizedURLs.get(e);if(t)return t;"\\"===a&&(e=e.replace(/\\/g,"/"));let r=encodeURI(e).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(e,r),r}}},4211(e,t,r){"use strict";let n=r(3604),i=r(9577),s=r(3717),a=r(3303);r(6156);class o{get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let e,t=i;try{e=t(this._css,this._opts)}catch(e){this.error=e}if(this.error)throw this.error;return this._root=e,e}get[Symbol.toStringTag](){return"NoWorkResult"}constructor(e,t,r){t=t.toString(),this.stringified=!1,this._processor=e,this._css=t,this._opts=r,this._map=void 0;let i=a;this.result=new s(this._processor,void 0,this._opts),this.result.css=t;let o=this;Object.defineProperty(this.result,"root",{get:()=>o.root});let c=new n(i,void 0,this._opts,t);if(c.isMap()){let[e,t]=c.generate();e&&(this.result.css=e),t&&(this.result.map=t)}else c.clearAnnotation(),this.result.css=c.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}sync(){if(this.error)throw this.error;return this.result}then(e,t){return this.async().then(e,t)}toString(){return this._css}warnings(){return[]}}e.exports=o,o.default=o},3152(e,t,r){"use strict";let n=r(3614),i=r(7668),s=r(3303),{isClean:a,my:o}=r(4151);function c(e,t){let r=new e.constructor;for(let n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;if("proxyCache"===n)continue;let i=e[n],s=typeof i;"parent"===n&&"object"===s?t&&(r[n]=t):"source"===n?r[n]=i:Array.isArray(i)?r[n]=i.map(e=>c(e,r)):("object"===s&&null!==i&&(i=c(i)),r[n]=i)}return r}function l(e,t){if(t&&void 0!==t.offset)return t.offset;let r=1,n=1,i=0;for(let s=0;s"proxyOf"===t?e:"root"===t?()=>e.root().toProxy():e[t],set:(e,t,r)=>(e[t]===r||(e[t]=r,"prop"!==t&&"value"!==t&&"name"!==t&&"params"!==t&&"important"!==t&&"text"!==t||e.markDirty()),!0)}}markClean(){this[a]=!0}markDirty(){if(this[a]){this[a]=!1;let e=this;for(;e=e.parent;)e[a]=!1}}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}positionBy(e={}){let t=this.source.start;if(e.index)t=this.positionInside(e.index);else if(e.word){let r="document"in this.source.input?this.source.input.document:this.source.input.css,n=r.slice(l(r,this.source.start),l(r,this.source.end)).indexOf(e.word);-1!==n&&(t=this.positionInside(n))}return t}positionInside(e){let t=this.source.start.column,r=this.source.start.line,n="document"in this.source.input?this.source.input.document:this.source.input.css,i=l(n,this.source.start),s=i+e;for(let e=i;e"object"==typeof e&&e.toJSON?e.toJSON(null,t):e);else if("object"==typeof n&&n.toJSON)r[e]=n.toJSON(null,t);else if("source"===e){if(null==n)continue;let s=t.get(n.input);null==s&&(s=i,t.set(n.input,i),i++),r[e]={end:n.end,inputId:s,start:n.start}}else r[e]=n}return n&&(r.inputs=[...t.keys()].map(e=>e.toJSON())),r}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(e=s){e.stringify&&(e=e.stringify);let t="";return e(this,e=>{t+=e}),t}warn(e,t,r={}){let n={node:this};for(let e in r)n[e]=r[e];return e.warn(t,n)}}e.exports=u,u.default=u},9577(e,t,r){"use strict";let n=r(7793),i=r(1106),s=r(8339);function a(e,t){let r=new i(e,t),n=new s(r);try{n.parse()}catch(e){throw e}return n.root}e.exports=a,a.default=a,n.registerParse(a)},8339(e,t,r){"use strict";let n=r(396),i=r(9371),s=r(5238),a=r(5644),o=r(1534),c=r(5781);const l={empty:!0,space:!0};e.exports=class{constructor(e){this.input=e,this.root=new a,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}atrule(e){let t,r,i,s=new n;s.name=e[1].slice(1),""===s.name&&this.unnamedAtrule(s,e),this.init(s,e[2]);let a=!1,o=!1,c=[],l=[];for(;!this.tokenizer.endOfFile();){if(t=(e=this.tokenizer.nextToken())[0],"("===t||"["===t?l.push("("===t?")":"]"):"{"===t&&l.length>0?l.push("}"):t===l[l.length-1]&&l.pop(),0===l.length){if(";"===t){s.source.end=this.getPosition(e[2]),s.source.end.offset++,this.semicolon=!0;break}if("{"===t){o=!0;break}if("}"===t){if(c.length>0){for(i=c.length-1,r=c[i];r&&"space"===r[0];)r=c[--i];r&&(s.source.end=this.getPosition(r[3]||r[2]),s.source.end.offset++)}this.end(e);break}c.push(e)}else c.push(e);if(this.tokenizer.endOfFile()){a=!0;break}}s.raws.between=this.spacesAndCommentsFromEnd(c),c.length?(s.raws.afterName=this.spacesAndCommentsFromStart(c),this.raw(s,"params",c),a&&(e=c[c.length-1],s.source.end=this.getPosition(e[3]||e[2]),s.source.end.offset++,this.spaces=s.raws.between,s.raws.between="")):(s.raws.afterName="",s.params=""),o&&(s.nodes=[],this.current=s)}checkMissedSemicolon(e){let t=this.colon(e);if(!1===t)return;let r,n=0;for(let i=t-1;i>=0&&(r=e[i],"space"===r[0]||(n+=1,2!==n));i--);throw this.input.error("Missed semicolon","word"===r[0]?r[3]+1:r[2])}colon(e){let t,r,n,i=0;for(let[s,a]of e.entries()){if(r=a,n=r[0],"("===n&&(i+=1),")"===n&&(i-=1),0===i&&":"===n){if(t){if("word"===t[0]&&"progid"===t[1])continue;return s}this.doubleColon(r)}t=r}return!1}comment(e){let t=new i;this.init(t,e[2]),t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++;let r=e[1].slice(2,-2);if(r.trim()){let e=r.match(/^(\s*)([^]*\S)(\s*)$/);t.text=e[2],t.raws.left=e[1],t.raws.right=e[3]}else t.text="",t.raws.left=r,t.raws.right=""}createTokenizer(){this.tokenizer=c(this.input)}decl(e,t){let r=new s;this.init(r,e[0][2]);let n,i=e[e.length-1];for(";"===i[0]&&(this.semicolon=!0,e.pop()),r.source.end=this.getPosition(i[3]||i[2]||function(e){for(let t=e.length-1;t>=0;t--){let r=e[t],n=r[3]||r[2];if(n)return n}}(e)),r.source.end.offset++;"word"!==e[0][0];)1===e.length&&this.unknownWord(e),r.raws.before+=e.shift()[1];for(r.source.start=this.getPosition(e[0][2]),r.prop="";e.length;){let t=e[0][0];if(":"===t||"space"===t||"comment"===t)break;r.prop+=e.shift()[1]}for(r.raws.between="";e.length;){if(n=e.shift(),":"===n[0]){r.raws.between+=n[1];break}"word"===n[0]&&/\w/.test(n[1])&&this.unknownWord([n]),r.raws.between+=n[1]}"_"!==r.prop[0]&&"*"!==r.prop[0]||(r.raws.before+=r.prop[0],r.prop=r.prop.slice(1));let a,o=[];for(;e.length&&(a=e[0][0],"space"===a||"comment"===a);)o.push(e.shift());this.precheckMissedSemicolon(e);for(let t=e.length-1;t>=0;t--){if(n=e[t],"!important"===n[1].toLowerCase()){r.important=!0;let n=this.stringFrom(e,t);n=this.spacesFromEnd(e)+n," !important"!==n&&(r.raws.important=n);break}if("important"===n[1].toLowerCase()){let n=e.slice(0),i="";for(let e=t;e>0;e--){let t=n[e][0];if(i.trim().startsWith("!")&&"space"!==t)break;i=n.pop()[1]+i}i.trim().startsWith("!")&&(r.important=!0,r.raws.important=i,e=n)}if("space"!==n[0]&&"comment"!==n[0])break}e.some(e=>"space"!==e[0]&&"comment"!==e[0])&&(r.raws.between+=o.map(e=>e[1]).join(""),o=[]),this.raw(r,"value",o.concat(e),t),r.value.includes(":")&&!t&&this.checkMissedSemicolon(e)}doubleColon(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})}emptyRule(e){let t=new o;this.init(t,e[2]),t.selector="",t.raws.between="",this.current=t}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let t=this.current.nodes[this.current.nodes.length-1];t&&"rule"===t.type&&!t.raws.ownSemicolon&&(t.raws.ownSemicolon=this.spaces,this.spaces="",t.source.end=this.getPosition(e[2]),t.source.end.offset+=t.raws.ownSemicolon.length)}}getPosition(e){let t=this.input.fromOffset(e);return{column:t.col,line:t.line,offset:e}}init(e,t){this.current.push(e),e.source={input:this.input,start:this.getPosition(t)},e.raws.before=this.spaces,this.spaces="","comment"!==e.type&&(this.semicolon=!1)}other(e){let t=!1,r=null,n=!1,i=null,s=[],a=e[1].startsWith("--"),o=[],c=e;for(;c;){if(r=c[0],o.push(c),"("===r||"["===r)i||(i=c),s.push("("===r?")":"]");else if(a&&n&&"{"===r)i||(i=c),s.push("}");else if(0===s.length){if(";"===r){if(n)return void this.decl(o,a);break}if("{"===r)return void this.rule(o);if("}"===r){this.tokenizer.back(o.pop()),t=!0;break}":"===r&&(n=!0)}else r===s[s.length-1]&&(s.pop(),0===s.length&&(i=null));c=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(t=!0),s.length>0&&this.unclosedBracket(i),t&&n){if(!a)for(;o.length&&(c=o[o.length-1][0],"space"===c||"comment"===c);)this.tokenizer.back(o.pop());this.decl(o,a)}else this.unknownWord(o)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e)}this.endFile()}precheckMissedSemicolon(){}raw(e,t,r,n){let i,s,a,o,c=r.length,u="",h=!0;for(let e=0;ee+t[1],"");e.raws[t]={raw:n,value:u}}e[t]=u}rule(e){e.pop();let t=new o;this.init(t,e[0][2]),t.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(t,"selector",e),this.current=t}spacesAndCommentsFromEnd(e){let t,r="";for(;e.length&&(t=e[e.length-1][0],"space"===t||"comment"===t);)r=e.pop()[1]+r;return r}spacesAndCommentsFromStart(e){let t,r="";for(;e.length&&(t=e[0][0],"space"===t||"comment"===t);)r+=e.shift()[1];return r}spacesFromEnd(e){let t,r="";for(;e.length&&(t=e[e.length-1][0],"space"===t);)r=e.pop()[1]+r;return r}stringFrom(e,t){let r="";for(let n=t;n(r||(r=i()),r)}),i.process=function(e,t,r){return E([i(r)]).process(e,t)},i},E.stringify=w,E.parse=d,E.fromJSON=l,E.list=f,E.comment=e=>new i(e),E.atRule=e=>new n(e),E.decl=e=>new o(e),E.rule=e=>new m(e),E.root=e=>new y(e),E.document=e=>new c(e),E.CssSyntaxError=a,E.Declaration=o,E.Container=s,E.Processor=p,E.Document=c,E.Comment=i,E.Warning=b,E.AtRule=n,E.Result=g,E.Input=u,E.Rule=m,E.Root=y,E.Node=A,h.registerPostcss(E),e.exports=E,E.default=E},3878(e,t,r){"use strict";let{existsSync:n,readFileSync:i}=r(9977),{dirname:s,join:a}=r(197),{SourceMapConsumer:o,SourceMapGenerator:c}=r(1866);class l{constructor(e,t){if(!1===t.map)return;this.loadAnnotation(e),this.inline=this.startWith(this.annotation,"data:");let r=t.map?t.map.prev:void 0,n=this.loadMap(t.from,r);!this.mapFile&&t.from&&(this.mapFile=t.from),this.mapFile&&(this.root=s(this.mapFile)),n&&(this.text=n)}consumer(){return this.consumerCache||(this.consumerCache=new o(this.text)),this.consumerCache}decodeInline(e){let t=e.match(/^data:application\/json;charset=utf-?8,/)||e.match(/^data:application\/json,/);if(t)return decodeURIComponent(e.substr(t[0].length));let r=e.match(/^data:application\/json;charset=utf-?8;base64,/)||e.match(/^data:application\/json;base64,/);if(r)return n=e.substr(r[0].length),Buffer?Buffer.from(n,"base64").toString():window.atob(n);var n;let i=e.slice(22);throw i=i.slice(0,i.indexOf(",")),new Error("Unsupported source map encoding "+i)}getAnnotationURL(e){return e.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}isMap(e){return"object"==typeof e&&("string"==typeof e.mappings||"string"==typeof e._mappings||Array.isArray(e.sections))}loadAnnotation(e){let t=e.match(/\/\*\s*# sourceMappingURL=/g);if(!t)return;let r=e.lastIndexOf(t.pop()),n=e.indexOf("*/",r);r>-1&&n>-1&&(this.annotation=this.getAnnotationURL(e.substring(r,n)))}loadFile(e){if(this.root=s(e),n(e))return this.mapFile=e,i(e,"utf-8").toString().trim()}loadMap(e,t){if(!1===t)return!1;if(t){if("string"==typeof t)return t;if("function"!=typeof t){if(t instanceof o)return c.fromSourceMap(t).toString();if(t instanceof c)return t.toString();if(this.isMap(t))return JSON.stringify(t);throw new Error("Unsupported previous source map format: "+t.toString())}{let r=t(e);if(r){let e=this.loadFile(r);if(!e)throw new Error("Unable to load previous source map: "+r.toString());return e}}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let t=this.annotation;return e&&(t=a(s(e),t)),this.loadFile(t)}}}startWith(e,t){return!!e&&e.substr(0,t.length)===t}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}}e.exports=l,l.default=l},6846(e,t,r){"use strict";let n=r(145),i=r(6966),s=r(4211),a=r(5644);class o{constructor(e=[]){this.version="8.5.9",this.plugins=this.normalize(e)}normalize(e){let t=[];for(let r of e)if(!0===r.postcss?r=r():r.postcss&&(r=r.postcss),"object"==typeof r&&Array.isArray(r.plugins))t=t.concat(r.plugins);else if("object"==typeof r&&r.postcssPlugin)t.push(r);else if("function"==typeof r)t.push(r);else if("object"!=typeof r||!r.parse&&!r.stringify)throw new Error(r+" is not a PostCSS plugin");return t}process(e,t={}){return this.plugins.length||t.parser||t.stringifier||t.syntax?new i(this,e,t):new s(this,e,t)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}}e.exports=o,o.default=o,a.registerProcessor(o),n.registerProcessor(o)},3717(e,t,r){"use strict";let n=r(38);class i{get content(){return this.css}constructor(e,t,r){this.processor=e,this.messages=[],this.root=t,this.opts=r,this.css="",this.map=void 0}toString(){return this.css}warn(e,t={}){t.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(t.plugin=this.lastPlugin.postcssPlugin);let r=new n(e,t);return this.messages.push(r),r}warnings(){return this.messages.filter(e=>"warning"===e.type)}}e.exports=i,i.default=i},5644(e,t,r){"use strict";let n,i,s=r(7793);class a extends s{constructor(e){super(e),this.type="root",this.nodes||(this.nodes=[])}normalize(e,t,r){let n=super.normalize(e);if(t)if("prepend"===r)this.nodes.length>1?t.raws.before=this.nodes[1].raws.before:delete t.raws.before;else if(this.first!==t)for(let e of n)e.raws.before=t.raws.before;return n}removeChild(e,t){let r=this.index(e);return!t&&0===r&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[r].raws.before),super.removeChild(e)}toResult(e={}){return new n(new i,this,e).stringify()}}a.registerLazyResult=e=>{n=e},a.registerProcessor=e=>{i=e},e.exports=a,a.default=a,s.registerRoot(a)},1534(e,t,r){"use strict";let n=r(7793),i=r(1752);class s extends n{get selectors(){return i.comma(this.selector)}set selectors(e){let t=this.selector?this.selector.match(/,\s*/):null,r=t?t[0]:","+this.raw("between","beforeOpen");this.selector=e.join(r)}constructor(e){super(e),this.type="rule",this.nodes||(this.nodes=[])}}e.exports=s,s.default=s,n.registerRule(s)},7668(e){"use strict";const t={after:"\n",beforeClose:"\n",beforeComment:"\n",beforeDecl:"\n",beforeOpen:" ",beforeRule:"\n",colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};class r{constructor(e){this.builder=e}atrule(e,t){let r="@"+e.name,n=e.params?this.rawValue(e,"params"):"";if(void 0!==e.raws.afterName?r+=e.raws.afterName:n&&(r+=" "),e.nodes)this.block(e,r+n);else{let i=(e.raws.between||"")+(t?";":"");this.builder(r+n+i,e)}}beforeAfter(e,t){let r;r="decl"===e.type?this.raw(e,null,"beforeDecl"):"comment"===e.type?this.raw(e,null,"beforeComment"):"before"===t?this.raw(e,null,"beforeRule"):this.raw(e,null,"beforeClose");let n=e.parent,i=0;for(;n&&"root"!==n.type;)i+=1,n=n.parent;if(r.includes("\n")){let t=this.raw(e,null,"indent");if(t.length)for(let e=0;e0&&"comment"===e.nodes[t].type;)t-=1;let r=this.raw(e,"semicolon");for(let n=0;n{if(i=e.raws[r],void 0!==i)return!1})}var o;return void 0===i&&(i=t[n]),a.rawCache[n]=i,i}rawBeforeClose(e){let t;return e.walk(e=>{if(e.nodes&&e.nodes.length>0&&void 0!==e.raws.after)return t=e.raws.after,t.includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/\S/g,"")),t}rawBeforeComment(e,t){let r;return e.walkComments(e=>{if(void 0!==e.raws.before)return r=e.raws.before,r.includes("\n")&&(r=r.replace(/[^\n]+$/,"")),!1}),void 0===r?r=this.raw(t,null,"beforeDecl"):r&&(r=r.replace(/\S/g,"")),r}rawBeforeDecl(e,t){let r;return e.walkDecls(e=>{if(void 0!==e.raws.before)return r=e.raws.before,r.includes("\n")&&(r=r.replace(/[^\n]+$/,"")),!1}),void 0===r?r=this.raw(t,null,"beforeRule"):r&&(r=r.replace(/\S/g,"")),r}rawBeforeOpen(e){let t;return e.walk(e=>{if("decl"!==e.type&&(t=e.raws.between,void 0!==t))return!1}),t}rawBeforeRule(e){let t;return e.walk(r=>{if(r.nodes&&(r.parent!==e||e.first!==r)&&void 0!==r.raws.before)return t=r.raws.before,t.includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/\S/g,"")),t}rawColon(e){let t;return e.walkDecls(e=>{if(void 0!==e.raws.between)return t=e.raws.between.replace(/[^\s:]/g,""),!1}),t}rawEmptyBody(e){let t;return e.walk(e=>{if(e.nodes&&0===e.nodes.length&&(t=e.raws.after,void 0!==t))return!1}),t}rawIndent(e){if(e.raws.indent)return e.raws.indent;let t;return e.walk(r=>{let n=r.parent;if(n&&n!==e&&n.parent&&n.parent===e&&void 0!==r.raws.before){let e=r.raws.before.split("\n");return t=e[e.length-1],t=t.replace(/\S/g,""),!1}}),t}rawSemicolon(e){let t;return e.walk(e=>{if(e.nodes&&e.nodes.length&&"decl"===e.last.type&&(t=e.raws.semicolon,void 0!==t))return!1}),t}rawValue(e,t){let r=e[t],n=e.raws[t];return n&&n.value===r?n.raw:r}root(e){this.body(e),e.raws.after&&this.builder(e.raws.after)}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")}stringify(e,t){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,t)}}e.exports=r,r.default=r},3303(e,t,r){"use strict";let n=r(7668);function i(e,t){new n(t).stringify(e)}e.exports=i,i.default=i},4151(e){"use strict";e.exports.isClean=Symbol("isClean"),e.exports.my=Symbol("my")},5781(e){"use strict";const t="'".charCodeAt(0),r='"'.charCodeAt(0),n="\\".charCodeAt(0),i="/".charCodeAt(0),s="\n".charCodeAt(0),a=" ".charCodeAt(0),o="\f".charCodeAt(0),c="\t".charCodeAt(0),l="\r".charCodeAt(0),u="[".charCodeAt(0),h="]".charCodeAt(0),f="(".charCodeAt(0),A=")".charCodeAt(0),d="{".charCodeAt(0),p="}".charCodeAt(0),g=";".charCodeAt(0),y="*".charCodeAt(0),m=":".charCodeAt(0),w="@".charCodeAt(0),b=/[\t\n\f\r "#'()/;[\\\]{}]/g,E=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,v=/.[\r\n"'(/\\]/,k=/[\da-f]/i;e.exports=function(e,I={}){let B,C,S,D,x,K,P,U,T,F,M=e.css.valueOf(),R=I.ignoreErrors,Q=M.length,N=0,O=[],L=[];function G(t){throw e.error("Unclosed "+t,N)}return{back:function(e){L.push(e)},endOfFile:function(){return 0===L.length&&N>=Q},nextToken:function(e){if(L.length)return L.pop();if(N>=Q)return;let I=!!e&&e.ignoreUnclosed;switch(B=M.charCodeAt(N),B){case s:case a:case c:case l:case o:D=N;do{D+=1,B=M.charCodeAt(D)}while(B===a||B===s||B===c||B===l||B===o);K=["space",M.slice(N,D)],N=D-1;break;case u:case h:case d:case p:case m:case g:case A:{let e=String.fromCharCode(B);K=[e,e,N];break}case f:if(F=O.length?O.pop()[1]:"",T=M.charCodeAt(N+1),"url"===F&&T!==t&&T!==r&&T!==a&&T!==s&&T!==c&&T!==o&&T!==l){D=N;do{if(P=!1,D=M.indexOf(")",D+1),-1===D){if(R||I){D=N;break}G("bracket")}for(U=D;M.charCodeAt(U-1)===n;)U-=1,P=!P}while(P);K=["brackets",M.slice(N,D+1),N,D],N=D}else D=M.indexOf(")",N+1),C=M.slice(N,D+1),-1===D||v.test(C)?K=["(","(",N]:(K=["brackets",C,N,D],N=D);break;case t:case r:x=B===t?"'":'"',D=N;do{if(P=!1,D=M.indexOf(x,D+1),-1===D){if(R||I){D=N+1;break}G("string")}for(U=D;M.charCodeAt(U-1)===n;)U-=1,P=!P}while(P);K=["string",M.slice(N,D+1),N,D],N=D;break;case w:b.lastIndex=N+1,b.test(M),D=0===b.lastIndex?M.length-1:b.lastIndex-2,K=["at-word",M.slice(N,D+1),N,D],N=D;break;case n:for(D=N,S=!0;M.charCodeAt(D+1)===n;)D+=1,S=!S;if(B=M.charCodeAt(D+1),S&&B!==i&&B!==a&&B!==s&&B!==c&&B!==l&&B!==o&&(D+=1,k.test(M.charAt(D)))){for(;k.test(M.charAt(D+1));)D+=1;M.charCodeAt(D+1)===a&&(D+=1)}K=["word",M.slice(N,D+1),N,D],N=D;break;default:B===i&&M.charCodeAt(N+1)===y?(D=M.indexOf("*/",N+2)+1,0===D&&(R||I?D=M.length:G("comment")),K=["comment",M.slice(N,D+1),N,D],N=D):(E.lastIndex=N+1,E.test(M),D=0===E.lastIndex?M.length-1:E.lastIndex-2,K=["word",M.slice(N,D+1),N,D],O.push(K),N=D)}return N++,K},position:function(){return N}}}},6156(e){"use strict";let t={};e.exports=function(e){t[e]||(t[e]=!0,"undefined"!=typeof console&&console.warn&&console.warn(e))}},38(e){"use strict";class t{constructor(e,t={}){if(this.type="warning",this.text=e,t.node&&t.node.source){let e=t.node.rangeBy(t);this.line=e.start.line,this.column=e.start.column,this.endLine=e.end.line,this.endColumn=e.end.column}for(let e in t)this[e]=t[e]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}}e.exports=t,t.default=t},4728(e,t,r){const n=r(378),i=r(7151),{isPlainObject:s}=r(8682),a=r(4744),o=r(9466),{parse:c}=r(2895),l=["img","audio","video","picture","svg","object","map","iframe","embed"],u=["script","style"];function h(e,t){e&&Object.keys(e).forEach(function(r){t(e[r],r)})}function f(e,t){return{}.hasOwnProperty.call(e,t)}function A(e,t){const r=[];return h(e,function(e){t(e)&&r.push(e)}),r}e.exports=p;const d=/^[^\0\t\n\f\r /<=>]+$/;function p(e,t,r){if(null==e)return"";"number"==typeof e&&(e=e.toString());let y="",m="";function w(e,t){const r=this;this.tag=e,this.attribs=t||{},this.tagPosition=y.length,this.text="",this.openingTagLength=0,this.mediaChildren=[],this.updateParentNodeText=function(){K.length&&(K[K.length-1].text+=r.text)},this.updateParentNodeMediaChildren=function(){K.length&&l.includes(this.tag)&&K[K.length-1].mediaChildren.push(this.tag)}}(t=Object.assign({},p.defaults,t)).parser=Object.assign({},g,t.parser);const b=function(e){return!1===t.allowedTags||(t.allowedTags||[]).indexOf(e)>-1};u.forEach(function(e){b(e)&&!t.allowVulnerableTags&&console.warn(`\n\n⚠️ Your \`allowedTags\` option includes, \`${e}\`, which is inherently\nvulnerable to XSS attacks. Please remove it from \`allowedTags\`.\nOr, to disable this warning, add the \`allowVulnerableTags\` option\nand ensure you are accounting for this risk.\n\n`)});const E=t.nonTextTags||["script","style","textarea","option"];let v,k;t.allowedAttributes&&(v={},k={},h(t.allowedAttributes,function(e,t){v[t]=[];const r=[];e.forEach(function(e){"string"==typeof e&&e.indexOf("*")>=0?r.push(i(e).replace(/\\\*/g,".*")):v[t].push(e)}),r.length&&(k[t]=new RegExp("^("+r.join("|")+")$"))}));const I={},B={},C={};h(t.allowedClasses,function(e,t){if(v&&(f(v,t)||(v[t]=[]),v[t].push("class")),I[t]=e,Array.isArray(e)){const r=[];I[t]=[],C[t]=[],e.forEach(function(e){"string"==typeof e&&e.indexOf("*")>=0?r.push(i(e).replace(/\\\*/g,".*")):e instanceof RegExp?C[t].push(e):I[t].push(e)}),r.length&&(B[t]=new RegExp("^("+r.join("|")+")$"))}});const S={};let D,x,K,P,U,T,F;h(t.transformTags,function(e,t){let r;"function"==typeof e?r=e:"string"==typeof e&&(r=p.simpleTransform(e)),"*"===t?D=r:S[t]=r});let M=!1;Q();const R=new n.Parser({onopentag:function(e,r){if(t.onOpenTag&&t.onOpenTag(e,r),t.enforceHtmlBoundary&&"html"===e&&Q(),T)return void F++;const n=new w(e,r);K.push(n);let i=!1;const l=!!n.text;let u;if(f(S,e)&&(u=S[e](e,r),n.attribs=r=u.attribs,void 0!==u.text&&(n.innerText=u.text),e!==u.tagName&&(n.name=e=u.tagName,U[x]=u.tagName)),D&&(u=D(e,r),n.attribs=r=u.attribs,e!==u.tagName&&(n.name=e=u.tagName,U[x]=u.tagName)),(!b(e)||"recursiveEscape"===t.disallowedTagsMode&&!function(e){for(const t in e)if(f(e,t))return!1;return!0}(P)||null!=t.nestingLimit&&x>=t.nestingLimit)&&(i=!0,P[x]=!0,"discard"!==t.disallowedTagsMode&&"completelyDiscard"!==t.disallowedTagsMode||-1!==E.indexOf(e)&&(T=!0,F=1)),x++,i){if("discard"===t.disallowedTagsMode||"completelyDiscard"===t.disallowedTagsMode){if(n.innerText&&!l){const r=N(n.innerText);t.textFilter?y+=t.textFilter(r,e):y+=r,M=!0}return}m=y,y=""}y+="<"+e,"script"===e&&(t.allowedScriptHostnames||t.allowedScriptDomains)&&(n.innerText=""),i&&("escape"===t.disallowedTagsMode||"recursiveEscape"===t.disallowedTagsMode)&&t.preserveEscapedAttributes?h(r,function(e,t){y+=" "+t+'="'+N(e||"",!0)+'"'}):(!v||f(v,e)||v["*"])&&h(r,function(r,i){if(!d.test(i))return void delete n.attribs[i];if(""===r&&!t.allowedEmptyAttributes.includes(i)&&(t.nonBooleanAttributes.includes(i)||t.nonBooleanAttributes.includes("*")))return void delete n.attribs[i];let l=!1;if(!v||f(v,e)&&-1!==v[e].indexOf(i)||v["*"]&&-1!==v["*"].indexOf(i)||f(k,e)&&k[e].test(i)||k["*"]&&k["*"].test(i))l=!0;else if(v&&v[e])for(const t of v[e])if(s(t)&&t.name&&t.name===i){l=!0;let e="";if(!0===t.multiple){const n=r.split(" ");for(const r of n)-1!==t.values.indexOf(r)&&(""===e?e=r:e+=" "+r)}else t.values.indexOf(r)>=0&&(e=r);r=e}if(l){if(-1!==t.allowedSchemesAppliedToAttributes.indexOf(i)&&O(e,r))return void delete n.attribs[i];if("script"===e&&"src"===i){let e=!0;try{const n=L(r);if(t.allowedScriptHostnames||t.allowedScriptDomains){const r=(t.allowedScriptHostnames||[]).find(function(e){return e===n.url.hostname}),i=(t.allowedScriptDomains||[]).find(function(e){return n.url.hostname===e||n.url.hostname.endsWith(`.${e}`)});e=r||i}}catch(t){e=!1}if(!e)return void delete n.attribs[i]}if("iframe"===e&&"src"===i){let e=!0;try{const n=L(r);if(n.isRelativeUrl)e=f(t,"allowIframeRelativeUrls")?t.allowIframeRelativeUrls:!t.allowedIframeHostnames&&!t.allowedIframeDomains;else if(t.allowedIframeHostnames||t.allowedIframeDomains){const r=(t.allowedIframeHostnames||[]).find(function(e){return e===n.url.hostname}),i=(t.allowedIframeDomains||[]).find(function(e){return n.url.hostname===e||n.url.hostname.endsWith(`.${e}`)});e=r||i}}catch(t){e=!1}if(!e)return void delete n.attribs[i]}if("srcset"===i)try{let e=o(r);if(e.forEach(function(e){O("srcset",e.url)&&(e.evil=!0)}),e=A(e,function(e){return!e.evil}),!e.length)return void delete n.attribs[i];r=A(e,function(e){return!e.evil}).map(function(e){if(!e.url)throw new Error("URL missing");return e.url+(e.w?` ${e.w}w`:"")+(e.h?` ${e.h}h`:"")+(e.d?` ${e.d}x`:"")}).join(", "),n.attribs[i]=r}catch(e){return void delete n.attribs[i]}if("class"===i){const t=I[e],s=I["*"],o=B[e],c=C[e],l=C["*"],f=[o,B["*"]].concat(c,l).filter(function(e){return e});if(!(u=r,h=t&&s?a(t,s):t||s,p=f,r=h?(u=u.split(/\s+/)).filter(function(e){return-1!==h.indexOf(e)||p.some(function(t){return t.test(e)})}).join(" "):u).length)return void delete n.attribs[i]}if("style"===i)if(t.parseStyleAttributes)try{if(r=function(e){return e.nodes[0].nodes.reduce(function(e,t){return e.push(`${t.prop}:${t.value}${t.important?" !important":""}`),e},[]).join(";")}(function(e,t){if(!t)return e;const r=e.nodes[0];let n;return n=t[r.selector]&&t["*"]?a(t[r.selector],t["*"]):t[r.selector]||t["*"],n&&(e.nodes[0].nodes=r.nodes.reduce(function(e){return function(t,r){return f(e,r.prop)&&e[r.prop].some(function(e){return e.test(r.value)})&&t.push(r),t}}(n),[])),e}(c(e+" {"+r+"}",{map:!1}),t.allowedStyles)),0===r.length)return void delete n.attribs[i]}catch(t){return"undefined"!=typeof window&&console.warn('Failed to parse "'+e+" {"+r+"}\", If you're running this in a browser, we recommend to disable style parsing: options.parseStyleAttributes: false, since this only works in a node environment due to a postcss dependency, More info: https://github.com/apostrophecms/sanitize-html/issues/547"),void delete n.attribs[i]}else if(t.allowedStyles)throw new Error("allowedStyles option cannot be used together with parseStyleAttributes: false.");y+=" "+i,r&&r.length?y+='="'+N(r,!0)+'"':t.allowedEmptyAttributes.includes(i)&&(y+='=""')}else delete n.attribs[i];var u,h,p}),-1!==t.selfClosing.indexOf(e)?y+=" />":(y+=">",!n.innerText||l||t.textFilter||(y+=N(n.innerText),M=!0)),i&&(y=m+N(y),m=""),n.openingTagLength=y.length-n.tagPosition},ontext:function(e){if(T)return;const r=K[K.length-1];let n;if(r&&(n=r.tag,e=void 0!==r.innerText?r.innerText:e),"completelyDiscard"!==t.disallowedTagsMode||b(n))if("discard"!==t.disallowedTagsMode&&"completelyDiscard"!==t.disallowedTagsMode||"script"!==n&&"style"!==n)if("discard"!==t.disallowedTagsMode&&"completelyDiscard"!==t.disallowedTagsMode||"textarea"!==n&&"xmp"!==n){if(!M){const r=N(e,!1);t.textFilter?y+=t.textFilter(r,n):y+=r}}else y+=e;else y+=e;else e="";K.length&&(K[K.length-1].text+=e)},onclosetag:function(e,r){if(t.onCloseTag&&t.onCloseTag(e,r),T){if(F--,F)return;T=!1}const n=K.pop();if(!n)return;if(n.tag!==e)return void K.push(n);T=!!t.enforceHtmlBoundary&&"html"===e,x--;const i=P[x];if(i){if(delete P[x],"discard"===t.disallowedTagsMode||"completelyDiscard"===t.disallowedTagsMode)return void n.updateParentNodeText();m=y,y=""}if(U[x]&&(e=U[x],delete U[x]),t.exclusiveFilter){const e=t.exclusiveFilter(n);if("excludeTag"===e)return i&&(y=m,m=""),void(y=y.substring(0,n.tagPosition)+y.substring(n.tagPosition+n.openingTagLength));if(e)return void(y=y.substring(0,n.tagPosition))}n.updateParentNodeMediaChildren(),n.updateParentNodeText(),-1!==t.selfClosing.indexOf(e)||r&&!b(e)&&["escape","recursiveEscape"].indexOf(t.disallowedTagsMode)>=0?i&&(y=m,m=""):(y+="",i&&(y=m+N(y),m=""),M=!1)}},t.parser);if(R.write(e),R.end(),"escape"===t.disallowedTagsMode||"recursiveEscape"===t.disallowedTagsMode){const t=R.endIndex;if(null!=t&&t>=0&&t0&&""===y&&(y=N(e))}return y;function Q(){y="",x=0,K=[],P={},U={},T=!1,F=0}function N(e,r){return"string"!=typeof e&&(e+=""),t.parser.decodeEntities&&(e=e.replace(/&/g,"&").replace(//g,">"),r&&(e=e.replace(/"/g,"""))),e=e.replace(/&(?![a-zA-Z0-9#]{1,20};)/g,"&").replace(//g,">"),r&&(e=e.replace(/"/g,""")),e}function O(e,r){for(r=r.replace(/[\x00-\x20]+/g,"");;){const e=r.indexOf("\x3c!--");if(-1===e)break;const t=r.indexOf("--\x3e",e+4);if(-1===t)break;r=r.substring(0,e)+r.substring(t+3)}const n=r.match(/^([a-zA-Z][a-zA-Z0-9.\-+]*):/);if(!n)return!!r.match(/^[/\\]{2}/)&&!t.allowProtocolRelative;const i=n[1].toLowerCase();return f(t.allowedSchemesByTag,e)?-1===t.allowedSchemesByTag[e].indexOf(i):!t.allowedSchemes||-1===t.allowedSchemes.indexOf(i)}function L(e){if((e=e.replace(/^(\w+:)?\s*[\\/]\s*[\\/]/,"$1//")).startsWith("relative:"))throw new Error("relative: exploit attempt");let t="relative://relative-site";for(let e=0;e<100;e++)t+=`/${e}`;const r=new URL(e,t);return{isRelativeUrl:r&&"relative-site"===r.hostname&&"relative:"===r.protocol,url:r}}}const g={decodeEntities:!0};p.defaults={allowedTags:["address","article","aside","footer","header","h1","h2","h3","h4","h5","h6","hgroup","main","nav","section","blockquote","dd","div","dl","dt","figcaption","figure","hr","li","menu","ol","p","pre","ul","a","abbr","b","bdi","bdo","br","cite","code","data","dfn","em","i","kbd","mark","q","rb","rp","rt","rtc","ruby","s","samp","small","span","strong","sub","sup","time","u","var","wbr","caption","col","colgroup","table","tbody","td","tfoot","th","thead","tr"],nonBooleanAttributes:["abbr","accept","accept-charset","accesskey","action","allow","alt","as","autocapitalize","autocomplete","blocking","charset","cite","class","color","cols","colspan","content","contenteditable","coords","crossorigin","data","datetime","decoding","dir","dirname","download","draggable","enctype","enterkeyhint","fetchpriority","for","form","formaction","formenctype","formmethod","formtarget","headers","height","hidden","high","href","hreflang","http-equiv","id","imagesizes","imagesrcset","inputmode","integrity","is","itemid","itemprop","itemref","itemtype","kind","label","lang","list","loading","low","max","maxlength","media","method","min","minlength","name","nonce","optimum","pattern","ping","placeholder","popover","popovertarget","popovertargetaction","poster","preload","referrerpolicy","rel","rows","rowspan","sandbox","scope","shape","size","sizes","slot","span","spellcheck","src","srcdoc","srclang","srcset","start","step","style","tabindex","target","title","translate","type","usemap","value","width","wrap","onauxclick","onafterprint","onbeforematch","onbeforeprint","onbeforeunload","onbeforetoggle","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextlost","oncontextmenu","oncontextrestored","oncopy","oncuechange","oncut","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","onformdata","onhashchange","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onlanguagechange","onload","onloadeddata","onloadedmetadata","onloadstart","onmessage","onmessageerror","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onoffline","ononline","onpagehide","onpageshow","onpaste","onpause","onplay","onplaying","onpopstate","onprogress","onratechange","onreset","onresize","onrejectionhandled","onscroll","onscrollend","onsecuritypolicyviolation","onseeked","onseeking","onselect","onslotchange","onstalled","onstorage","onsubmit","onsuspend","ontimeupdate","ontoggle","onunhandledrejection","onunload","onvolumechange","onwaiting","onwheel"],disallowedTagsMode:"discard",allowedAttributes:{a:["href","name","target"],img:["src","srcset","alt","title","width","height","loading"]},allowedEmptyAttributes:["alt"],selfClosing:["img","br","hr","area","base","basefont","input","link","meta"],allowedSchemes:["http","https","ftp","mailto","tel"],allowedSchemesByTag:{},allowedSchemesAppliedToAttributes:["href","src","cite"],allowProtocolRelative:!0,enforceHtmlBoundary:!1,parseStyleAttributes:!0,preserveEscapedAttributes:!1},p.simpleTransform=function(e,t,r){return r=void 0===r||r,t=t||{},function(n,i){let s;if(r)for(s in t)i[s]=t[s];else i=t;return{tagName:e,attribs:i}}}},7151(e){"use strict";e.exports=e=>{if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}},1558(e){"use strict";e.exports=require("../../bundles/raw/web-stream-tools")},9746(){},9977(){},197(){},1866(){},2739(){},5979(e,t){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.fromCodePoint=void 0,t.replaceCodePoint=i,t.decodeCodePoint=function(e){return(0,t.fromCodePoint)(i(e))};const n=new Map([[0,65533],[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 i(e){var t;return e>=55296&&e<=57343||e>1114111?65533:null!==(t=n.get(e))&&void 0!==t?t:e}t.fromCodePoint=null!==(r=String.fromCodePoint)&&void 0!==r?r:e=>{let t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|1023&e),t+=String.fromCharCode(e),t}},9299(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.xmlDecodeTree=t.htmlDecodeTree=t.replaceCodePoint=t.fromCodePoint=t.decodeCodePoint=t.EntityDecoder=t.DecodingMode=void 0,t.determineBranch=p,t.decodeHTML=function(e,t=l.Legacy){return g(e,t)},t.decodeHTMLAttribute=function(e){return g(e,l.Attribute)},t.decodeHTMLStrict=function(e){return g(e,l.Strict)},t.decodeXML=function(e){return y(e,l.Strict)};const n=r(5979),i=r(642),s=r(1838),a=r(4865);var o,c,l;function u(e){return e>=o.ZERO&&e<=o.NINE}function h(e){return e>=o.UPPER_A&&e<=o.UPPER_F||e>=o.LOWER_A&&e<=o.LOWER_F}function f(e){return e===o.EQUALS||function(e){return e>=o.UPPER_A&&e<=o.UPPER_Z||e>=o.LOWER_A&&e<=o.LOWER_Z||u(e)}(e)}!function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.LOWER_Z=122]="LOWER_Z",e[e.UPPER_A=65]="UPPER_A",e[e.UPPER_F=70]="UPPER_F",e[e.UPPER_Z=90]="UPPER_Z"}(o||(o={})),function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"}(c||(c={})),function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"}(l||(t.DecodingMode=l={}));class A{constructor(e,t,r){this.decodeTree=e,this.emitCodePoint=t,this.errors=r,this.state=c.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=l.Strict,this.runConsumed=0}startEntity(e){this.decodeMode=e,this.state=c.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1,this.runConsumed=0}write(e,t){switch(this.state){case c.EntityStart:return e.charCodeAt(t)===o.NUM?(this.state=c.NumericStart,this.consumed+=1,this.stateNumericStart(e,t+1)):(this.state=c.NamedEntity,this.stateNamedEntity(e,t));case c.NumericStart:return this.stateNumericStart(e,t);case c.NumericDecimal:return this.stateNumericDecimal(e,t);case c.NumericHex:return this.stateNumericHex(e,t);case c.NamedEntity:return this.stateNamedEntity(e,t)}}stateNumericStart(e,t){return t>=e.length?-1:(32|e.charCodeAt(t))===o.LOWER_X?(this.state=c.NumericHex,this.consumed+=1,this.stateNumericHex(e,t+1)):(this.state=c.NumericDecimal,this.stateNumericDecimal(e,t))}stateNumericHex(e,t){for(;t>14;for(;t>7;if(0===this.runConsumed){const r=n&a.BinTrieFlags.JUMP_TABLE;if(e.charCodeAt(t)!==r)return 0===this.result?0:this.emitNotTerminatedNamedEntity();t++,this.excess++,this.runConsumed++}for(;this.runConsumed=e.length)return-1;const n=this.runConsumed-1,i=r[this.treeIndex+1+(n>>1)],s=n%2==0?255&i:i>>8&255;if(e.charCodeAt(t)!==s)return this.runConsumed=0,0===this.result?0:this.emitNotTerminatedNamedEntity();t++,this.excess++,this.runConsumed++}this.runConsumed=0,this.treeIndex+=1+(s>>1),n=r[this.treeIndex],i=(n&a.BinTrieFlags.VALUE_LENGTH)>>14}if(t>=e.length)break;const s=e.charCodeAt(t);if(s===o.SEMI&&0!==i&&0!==(n&a.BinTrieFlags.FLAG13))return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);if(this.treeIndex=p(r,n,this.treeIndex+Math.max(1,i),s),this.treeIndex<0)return 0===this.result||this.decodeMode===l.Attribute&&(0===i||f(s))?0:this.emitNotTerminatedNamedEntity();if(n=r[this.treeIndex],i=(n&a.BinTrieFlags.VALUE_LENGTH)>>14,0!==i){if(s===o.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);this.decodeMode!==l.Strict&&0===(n&a.BinTrieFlags.FLAG13)&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}t++,this.excess++}return-1}emitNotTerminatedNamedEntity(){var e;const{result:t,decodeTree:r}=this,n=(r[t]&a.BinTrieFlags.VALUE_LENGTH)>>14;return this.emitNamedEntityData(t,n,this.consumed),null===(e=this.errors)||void 0===e||e.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(e,t,r){const{decodeTree:n}=this;return this.emitCodePoint(1===t?n[e]&~(a.BinTrieFlags.VALUE_LENGTH|a.BinTrieFlags.FLAG13):n[e+1],r),3===t&&this.emitCodePoint(n[e+2],r),r}end(){var e;switch(this.state){case c.NamedEntity:return 0===this.result||this.decodeMode===l.Attribute&&this.result!==this.treeIndex?0:this.emitNotTerminatedNamedEntity();case c.NumericDecimal:return this.emitNumericEntity(0,2);case c.NumericHex:return this.emitNumericEntity(0,3);case c.NumericStart:return null===(e=this.errors)||void 0===e||e.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case c.EntityStart:return 0}}}function d(e){let t="";const r=new A(e,e=>t+=(0,n.fromCodePoint)(e));return function(e,n){let i=0,s=0;for(;(s=e.indexOf("&",s))>=0;){t+=e.slice(i,s),r.startEntity(n);const a=r.write(e,s+1);if(a<0){i=s+r.end();break}i=s+a,s=0===a?i+1:i}const a=t+e.slice(i);return t="",a}}function p(e,t,r,n){const i=(t&a.BinTrieFlags.BRANCH_LENGTH)>>7,s=t&a.BinTrieFlags.JUMP_TABLE;if(0===i)return 0!==s&&n===s?r:-1;if(s){const t=n-s;return t<0||t>=i?-1:e[r+t]-1}const o=i+1>>1;let c=0,l=i-1;for(;c<=l;){const t=c+l>>>1,i=e[r+(t>>1)]>>8*(1&t)&255;if(in))return e[r+o+t];l=t-1}}return-1}t.EntityDecoder=A;const g=d(i.htmlDecodeTree),y=d(s.xmlDecodeTree);var m=r(5979);Object.defineProperty(t,"decodeCodePoint",{enumerable:!0,get:function(){return m.decodeCodePoint}}),Object.defineProperty(t,"fromCodePoint",{enumerable:!0,get:function(){return m.fromCodePoint}}),Object.defineProperty(t,"replaceCodePoint",{enumerable:!0,get:function(){return m.replaceCodePoint}});var w=r(642);Object.defineProperty(t,"htmlDecodeTree",{enumerable:!0,get:function(){return w.htmlDecodeTree}});var b=r(1838);Object.defineProperty(t,"xmlDecodeTree",{enumerable:!0,get:function(){return b.xmlDecodeTree}})},642(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.htmlDecodeTree=void 0;const n=r(275);t.htmlDecodeTree=(0,n.decodeBase64)("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IAAOA12J/c8iFvaxBhAAhOVGFjZGZnbG1vcHFzdHV4owOlA6kDsAO/A8IDxgPNA9ID8gP9AwEEFAQeBCAEJQRHAEphSAA7gNAA0EBjAHUAdABlADuAyQDJQIABYWl5ALYDuQO+A/Ihb24aYXIAYwA7gMoAykAtZG8AdAAWYXIAAOA12AjdcgBhAHYAZQA7gMgAyEDlIm1lbnQAoAgiAAFhcNYD2QNjAHIAEmF0AHkAUwLhAwAAAADpA20lYWxsU3F1YXJlAACg+yVlJ3J5U21hbGxTcXVhcmUAAKCrJQABZ3D2A/kDbwBuABhhZgAA4DXYPN3zImlsb26VY3UAAAFhaQYEDgRsAFSgdSppImxkZQAAoEIi7CNpYnJpdW0AoMwhAAFjaRgEGwRyAACgMCFtAACgcyphAJdjbQBsADuAywDLQAABaXApBC0E8yF0cwCgAyLvJG5lbnRpYWxFAKBHIYACY2Zpb3MAPQQ/BEMEXQRyBHkAJGRyAADgNdgJ3WwibGVkAFMCTAQAAAAAVARtJWFsbFNxdWFyZQAAoPwlZSdyeVNtYWxsU3F1YXJlAACgqiVwA2UEAABpBAAAAABtBGYAAOA12D3dwSFsbACgACLyI2llcnRyZgCgMSFjAPIAcQQABkpUYWJjZGZnb3JzdIgEiwSOBJMElwSkBKcEqwStBLIE5QTqBGMAeQADZDuAPgA+QO0hbWFkoJMD3GNyImV2ZQAeYYABZWl5AJ0EoASjBOQhaWwiYXIAYwAcYRNkbwB0ACBhcgAA4DXYCt0AoNkicABmAADgNdg+3eUiYXRlcgADRUZHTFNUvwTIBM8E1QTZBOAEcSJ1YWwATKBlIuUhc3MAoNsidSRsbEVxdWFsAACgZyJyI2VhdGVyAACgoirlIXNzAKB3IuwkYW50RXF1YWwAoH4qaSJsZGUAAKBzImMAcgAA4DXYotwAoGsiAARBYWNmaW9zdfkE/QQFBQgFCwUTBSIFKwVSIkRjeQAqZAABY3QBBQQFZQBrAMdiXmDpIXJjJGFyAACgDCFsJWJlcnRTcGFjZQAAoAsh8AEYBQAAGwVmAACgDSHpJXpvbnRhbExpbmUAoAAlAAFjdCYFKAXyABIF8iFvayZhbQBwAEQBMQU5BW8AdwBuAEgAdQBtAPAAAAFxInVhbAAAoE8iAAdFSk9hY2RmZ21ub3N0dVMFVgVZBVwFYwVtBXAFcwV6BZAFtgXFBckFzQVjAHkAFWTsIWlnMmFjAHkAAWRjAHUAdABlADuAzQDNQAABaXlnBWwFcgBjADuAzgDOQBhkbwB0ADBhcgAAoBEhcgBhAHYAZQA7gMwAzEAAoREhYXB/BYsFAAFjZ4MFhQVyACphaSNuYXJ5SQAAoEghbABpAGUA8wD6AvQBlQUAAKUFZaAsIgABZ3KaBZ4F8iFhbACgKyLzI2VjdGlvbgCgwiJpI3NpYmxlAAABQ1SsBbEFbyJtbWEAAKBjIGkibWVzAACgYiCAAWdwdAC8Bb8FwwVvAG4ALmFmAADgNdhA3WEAmWNjAHIAAKAQIWkibGRlAChh6wHSBQAA1QVjAHkABmRsADuAzwDPQIACY2Zvc3UA4QXpBe0F8gX9BQABaXnlBegFcgBjADRhGWRyAADgNdgN3XAAZgAA4DXYQd3jAfcFAAD7BXIAAOA12KXc8iFjeQhk6yFjeQRkgANISmFjZm9zAAwGDwYSBhUGHQYhBiYGYwB5ACVkYwB5AAxk8CFwYZpjAAFleRkGHAbkIWlsNmEaZHIAAOA12A7dcABmAADgNdhC3WMAcgAA4DXYptyABUpUYWNlZmxtb3N0AD0GQAZDBl4GawZkB2gHcAd0B80H2gdjAHkACWQ7gDwAPECAAmNtbnByAEwGTwZSBlUGWwb1IXRlOWHiIWRhm2NnAACg6ifsI2FjZXRyZgCgEiFyAACgniGAAWFleQBkBmcGagbyIW9uPWHkIWlsO2EbZAABZnNvBjQHdAAABUFDREZSVFVWYXKABp4GpAbGBssG3AYDByEHwQIqBwABbnKEBowGZyVsZUJyYWNrZXQAAKDoJ/Ihb3cAoZAhQlKTBpcGYQByAACg5CHpJGdodEFycm93AKDGIWUjaWxpbmcAAKAII28A9QGqBgAAsgZiJWxlQnJhY2tldAAAoOYnbgDUAbcGAAC+BmUkZVZlY3RvcgAAoGEp5SJjdG9yQqDDIWEAcgAAoFkpbCJvb3IAAKAKI2kiZ2h0AAABQVbSBtcGciJyb3cAAKCUIeUiY3RvcgCgTikAAWVy4AbwBmUAAKGjIkFW5gbrBnIicm93AACgpCHlImN0b3IAoFopaSNhbmdsZQBCorIi+wYAAAAA/wZhAHIAAKDPKXEidWFsAACgtCJwAIABRFRWAAoHEQcYB+8kd25WZWN0b3IAoFEpZSRlVmVjdG9yAACgYCnlImN0b3JCoL8hYQByAACgWCnlImN0b3JCoLwhYQByAACgUilpAGcAaAB0AGEAcgByAG8A9wDMAnMAAANFRkdMU1Q/B0cHTgdUB1gHXwfxJXVhbEdyZWF0ZXIAoNoidSRsbEVxdWFsAACgZiJyI2VhdGVyAACgdiLlIXNzAKChKuwkYW50RXF1YWwAoH0qaSJsZGUAAKByInIAAOA12A/dZaDYIuYjdGFycm93AKDaIWkiZG90AD9hgAFucHcAege1B7kHZwAAAkxSbHKCB5QHmwerB+UhZnQAAUFSiAeNB3Iicm93AACg9SfpJGdodEFycm93AKD3J+kkZ2h0QXJyb3cAoPYn5SFmdAABYXLcAqEHaQBnAGgAdABhAHIAcgBvAPcA5wJpAGcAaAB0AGEAcgByAG8A9wDuAmYAAOA12EPdZQByAAABTFK/B8YHZSRmdEFycm93AACgmSHpJGdodEFycm93AKCYIYABY2h0ANMH1QfXB/IAWgYAoLAh8iFva0FhAKBqIgAEYWNlZmlvc3XpB+wH7gf/BwMICQgOCBEIcAAAoAUpeQAcZAABZGzyB/kHaSR1bVNwYWNlAACgXyBsI2ludHJmAACgMyFyAADgNdgQ3e4jdXNQbHVzAKATInAAZgAA4DXYRN1jAPIA/gecY4AESmFjZWZvc3R1ACEIJAgoCDUIgQiFCDsKQApHCmMAeQAKZGMidXRlAENhgAFhZXkALggxCDQI8iFvbkdh5CFpbEVhHWSAAWdzdwA7CGEIfQjhInRpdmWAAU1UVgBECEwIWQhlJWRpdW1TcGFjZQAAoAsgaABpAAABY25SCFMIawBTAHAAYQBjAOUASwhlAHIAeQBUAGgAaQDuAFQI9CFlZAABR0xnCHUIcgBlAGEAdABlAHIARwByAGUAYQB0AGUA8gDrBGUAcwBzAEwAZQBzAPMA2wdMImluZQAKYHIAAOA12BHdAAJCbnB0jAiRCJkInAhyImVhawAAoGAgwiZyZWFraW5nU3BhY2WgYGYAAKAVIUOq7CqzCMIIzQgAAOcIGwkAAAAAAAAtCQAAbwkAAIcJAACdCcAJGQoAADQKAAFvdbYIvAjuI2dydWVudACgYiJwIkNhcAAAoG0ibyh1YmxlVmVydGljYWxCYXIAAKAmIoABbHF4ANII1wjhCOUibWVudACgCSL1IWFsVKBgImkibGRlAADgQiI4A2kic3RzAACgBCJyI2VhdGVyAACjbyJFRkdMU1T1CPoIAgkJCQ0JFQlxInVhbAAAoHEidSRsbEVxdWFsAADgZyI4A3IjZWF0ZXIAAOBrIjgD5SFzcwCgeSLsJGFudEVxdWFsAOB+KjgDaSJsZGUAAKB1IvUhbXBEASAJJwnvI3duSHVtcADgTiI4A3EidWFsAADgTyI4A2UAAAFmczEJRgn0JFRyaWFuZ2xlQqLqIj0JAAAAAEIJYQByAADgzyk4A3EidWFsAACg7CJzAICibiJFR0xTVABRCVYJXAlhCWkJcSJ1YWwAAKBwInIjZWF0ZXIAAKB4IuUhc3MA4GoiOAPsJGFudEVxdWFsAOB9KjgDaSJsZGUAAKB0IuUic3RlZAABR0x1CX8J8iZlYXRlckdyZWF0ZXIA4KIqOAPlI3NzTGVzcwDgoSo4A/IjZWNlZGVzAKGAIkVTjwmVCXEidWFsAADgryo4A+wkYW50RXF1YWwAoOAiAAFlaaAJqQl2JmVyc2VFbGVtZW50AACgDCLnJWh0VHJpYW5nbGVCousitgkAAAAAuwlhAHIAAODQKTgDcSJ1YWwAAKDtIgABcXXDCeAJdSNhcmVTdQAAAWJwywnVCfMhZXRF4I8iOANxInVhbAAAoOIi5SJyc2V0ReCQIjgDcSJ1YWwAAKDjIoABYmNwAOYJ8AkNCvMhZXRF4IIi0iBxInVhbAAAoIgi4yJlZWRzgKGBIkVTVAD6CQAKBwpxInVhbAAA4LAqOAPsJGFudEVxdWFsAKDhImkibGRlAADgfyI4A+UicnNldEXggyLSIHEidWFsAACgiSJpImxkZQCAoUEiRUZUACIKJwouCnEidWFsAACgRCJ1JGxsRXF1YWwAAKBHImkibGRlAACgSSJlJXJ0aWNhbEJhcgAAoCQiYwByAADgNdip3GkAbABkAGUAO4DRANFAnWMAB0VhY2RmZ21vcHJzdHV2XgphCmgKcgp2CnoKgQqRCpYKqwqtCrsKyArNCuwhaWdSYWMAdQB0AGUAO4DTANNAAAFpeWwKcQpyAGMAO4DUANRAHmRiImxhYwBQYXIAAOA12BLdcgBhAHYAZQA7gNIA0kCAAWFlaQCHCooKjQpjAHIATGFnAGEAqWNjInJvbgCfY3AAZgAA4DXYRt3lI25DdXJseQABRFGeCqYKbyV1YmxlUXVvdGUAAKAcIHUib3RlAACgGCAAoFQqAAFjbLEKtQpyAADgNdiq3GEAcwBoADuA2ADYQGkAbAHACsUKZABlADuA1QDVQGUAcwAAoDcqbQBsADuA1gDWQGUAcgAAAUJQ0wrmCgABYXLXCtoKcgAAoD4gYQBjAAABZWvgCuIKAKDeI2UAdAAAoLQjYSVyZW50aGVzaXMAAKDcI4AEYWNmaGlsb3JzAP0KAwsFCwkLCwsMCxELIwtaC3IjdGlhbEQAAKACInkAH2RyAADgNdgT3WkApmOgY/Ujc01pbnVzsWAAAWlwFQsgC24AYwBhAHIAZQBwAGwAYQBuAOUACgVmAACgGSGAobsqZWlvACoLRQtJC+MiZWRlc4CheiJFU1QANAs5C0ALcSJ1YWwAAKCvKuwkYW50RXF1YWwAoHwiaSJsZGUAAKB+Im0AZQAAoDMgAAFkcE0LUQv1IWN0AKAPIm8jcnRpb24AYaA3ImwAAKAdIgABY2leC2ILcgAA4DXYq9yoYwACVWZvc2oLbwtzC3cLTwBUADuAIgAiQHIAAOA12BTdcABmAACgGiFjAHIAAOA12KzcAAZCRWFjZWZoaW9yc3WPC5MLlwupC7YL2AvbC90LhQyTDJoMowzhIXJyAKAQKUcAO4CuAK5AgAFjbnIAnQugC6ML9SF0ZVRhZwAAoOsncgB0oKAhbAAAoBYpgAFhZXkArwuyC7UL8iFvblhh5CFpbFZhIGR2oBwhZSJyc2UAAAFFVb8LzwsAAWxxwwvIC+UibWVudACgCyL1JGlsaWJyaXVtAKDLIXAmRXF1aWxpYnJpdW0AAKBvKXIAAKAcIW8AoWPnIWh0AARBQ0RGVFVWYewLCgwQDDIMNwxeDHwM9gIAAW5y8Av4C2clbGVCcmFja2V0AACg6SfyIW93AKGSIUJM/wsDDGEAcgAAoOUhZSRmdEFycm93AACgxCFlI2lsaW5nAACgCSNvAPUBFgwAAB4MYiVsZUJyYWNrZXQAAKDnJ24A1AEjDAAAKgxlJGVWZWN0b3IAAKBdKeUiY3RvckKgwiFhAHIAAKBVKWwib29yAACgCyMAAWVyOwxLDGUAAKGiIkFWQQxGDHIicm93AACgpiHlImN0b3IAoFspaSNhbmdsZQBCorMiVgwAAAAAWgxhAHIAAKDQKXEidWFsAACgtSJwAIABRFRWAGUMbAxzDO8kd25WZWN0b3IAoE8pZSRlVmVjdG9yAACgXCnlImN0b3JCoL4hYQByAACgVCnlImN0b3JCoMAhYQByAACgUykAAXB1iQyMDGYAAKAdIe4kZEltcGxpZXMAoHAp6SRnaHRhcnJvdwCg2yEAAWNongyhDHIAAKAbIQCgsSHsJGVEZWxheWVkAKD0KYAGSE9hY2ZoaW1vcXN0dQC/DMgMzAzQDOIM5gwKDQ0NFA0ZDU8NVA1YDQABQ2PDDMYMyCFjeSlkeQAoZEYiVGN5ACxkYyJ1dGUAWmEAorwqYWVpedgM2wzeDOEM8iFvbmBh5CFpbF5hcgBjAFxhIWRyAADgNdgW3e8hcnQAAkRMUlXvDPYM/QwEDW8kd25BcnJvdwAAoJMhZSRmdEFycm93AACgkCHpJGdodEFycm93AKCSIXAjQXJyb3cAAKCRIechbWGjY+EkbGxDaXJjbGUAoBgicABmAADgNdhK3XICHw0AAAAAIg10AACgGiLhIXJlgKGhJUlTVQAqDTINSg3uJXRlcnNlY3Rpb24AoJMidQAAAWJwNw1ADfMhZXRFoI8icSJ1YWwAAKCRIuUicnNldEWgkCJxInVhbAAAoJIibiJpb24AAKCUImMAcgAA4DXYrtxhAHIAAKDGIgACYmNtcF8Nag2ODZANc6DQImUAdABFoNAicSJ1YWwAAKCGIgABY2huDYkNZSJlZHMAgKF7IkVTVAB4DX0NhA1xInVhbAAAoLAq7CRhbnRFcXVhbACgfSJpImxkZQAAoH8iVABoAGEA9ADHCwCgESIAodEiZXOVDZ8NciJzZXQARaCDInEidWFsAACghyJlAHQAAKDRIoAFSFJTYWNmaGlvcnMAtQ27Db8NyA3ODdsN3w3+DRgOHQ4jDk8AUgBOADuA3gDeQMEhREUAoCIhAAFIY8MNxg1jAHkAC2R5ACZkAAFidcwNzQ0JYKRjgAFhZXkA1A3XDdoN8iFvbmRh5CFpbGJhImRyAADgNdgX3QABZWnjDe4N8gHoDQAA7Q3lImZvcmUAoDQiYQCYYwABY27yDfkNayNTcGFjZQAA4F8gCiDTInBhY2UAoAkg7CFkZYChPCJFRlQABw4MDhMOcSJ1YWwAAKBDInUkbGxFcXVhbAAAoEUiaSJsZGUAAKBIInAAZgAA4DXYS93pI3BsZURvdACg2yAAAWN0Jw4rDnIAAOA12K/c8iFva2Zh4QpFDlYOYA5qDgAAbg5yDgAAAAAAAAAAAAB5DnwOqA6zDgAADg8RDxYPGg8AAWNySA5ODnUAdABlADuA2gDaQHIAb6CfIeMhaXIAoEkpcgDjAVsOAABdDnkADmR2AGUAbGEAAWl5Yw5oDnIAYwA7gNsA20AjZGIibGFjAHBhcgAA4DXYGN1yAGEAdgBlADuA2QDZQOEhY3JqYQABZGl/Dp8OZQByAAABQlCFDpcOAAFhcokOiw5yAF9gYQBjAAABZWuRDpMOAKDfI2UAdAAAoLUjYSVyZW50aGVzaXMAAKDdI28AbgBQoMMi7CF1cwCgjiIAAWdwqw6uDm8AbgByYWYAAOA12EzdAARBREVUYWRwc78O0g7ZDuEOBQPqDvMOBw9yInJvdwDCoZEhyA4AAMwOYQByAACgEilvJHduQXJyb3cAAKDFIW8kd25BcnJvdwAAoJUhcSV1aWxpYnJpdW0AAKBuKWUAZQBBoKUiciJyb3cAAKClIW8AdwBuAGEAcgByAG8A9wAQA2UAcgAAAUxS+Q4AD2UkZnRBcnJvdwAAoJYh6SRnaHRBcnJvdwCglyFpAGyg0gNvAG4ApWPpIW5nbmFjAHIAAOA12LDcaSJsZGUAaGFtAGwAO4DcANxAgAREYmNkZWZvc3YALQ8xDzUPNw89D3IPdg97D4AP4SFzaACgqyJhAHIAAKDrKnkAEmThIXNobKCpIgCg5ioAAWVyQQ9DDwCgwSKAAWJ0eQBJD00Paw9hAHIAAKAWIGmgFiDjIWFsAAJCTFNUWA9cD18PZg9hAHIAAKAjIukhbmV8YGUkcGFyYXRvcgAAoFgnaSJsZGUAAKBAItQkaGluU3BhY2UAoAogcgAA4DXYGd1wAGYAAOA12E3dYwByAADgNdix3GQiYXNoAACgqiKAAmNlZm9zAI4PkQ+VD5kPng/pIXJjdGHkIWdlAKDAInIAAOA12BrdcABmAADgNdhO3WMAcgAA4DXYstwAAmZpb3OqD64Prw+0D3IAAOA12BvdnmNwAGYAAOA12E/dYwByAADgNdiz3IAEQUlVYWNmb3N1AMgPyw/OD9EP2A/gD+QP6Q/uD2MAeQAvZGMAeQAHZGMAeQAuZGMAdQB0AGUAO4DdAN1AAAFpedwP3w9yAGMAdmErZHIAAOA12BzdcABmAADgNdhQ3WMAcgAA4DXYtNxtAGwAeGEABEhhY2RlZm9z/g8BEAUQDRAQEB0QIBAkEGMAeQAWZGMidXRlAHlhAAFheQkQDBDyIW9ufWEXZG8AdAB7YfIBFRAAABwQbwBXAGkAZAB0AOgAVAhhAJZjcgAAoCghcABmAACgJCFjAHIAAOA12LXc4QtCEEkQTRAAAGcQbRByEAAAAAAAAAAAeRCKEJcQ8hD9EAAAGxEhETIROREAAD4RYwB1AHQAZQA7gOEA4UByImV2ZQADYYCiPiJFZGl1eQBWEFkQWxBgEGUQAOA+IjMDAKA/InIAYwA7gOIA4kB0AGUAO4C0ALRAMGRsAGkAZwA7gOYA5kByoGEgAOA12B7dcgBhAHYAZQA7gOAA4EAAAWVwfBCGEAABZnCAEIQQ8yF5bQCgNSHoAIMQaABhALFjAAFhcI0QWwAAAWNskRCTEHIAAWFnAACgPypkApwQAAAAALEQAKInImFkc3ajEKcQqRCuEG4AZAAAoFUqAKBcKmwib3BlAACgWCoAoFoqAKMgImVsbXJzersQvRDAEN0Q5RDtEACgpCllAACgICJzAGQAYaAhImEEzhDQENIQ1BDWENgQ2hDcEACgqCkAoKkpAKCqKQCgqykAoKwpAKCtKQCgrikAoK8pdAB2oB8iYgBkoL4iAKCdKQABcHTpEOwQaAAAoCIixWDhIXJyAKB8IwABZ3D1EPgQbwBuAAVhZgAA4DXYUt0Ao0giRWFlaW9wBxEJEQ0RDxESERQRAKBwKuMhaXIAoG8qAKBKImQAAKBLInMAJ2DyIW94ZaBIIvEADhFpAG4AZwA7gOUA5UCAAWN0eQAmESoRKxFyAADgNdi23CpgbQBwAGWgSCLxAPgBaQBsAGQAZQA7gOMA40BtAGwAO4DkAORAAAFjaUERRxFvAG4AaQBuAPQA6AFuAHQAAKARKgAITmFiY2RlZmlrbG5vcHJzdWQRaBGXEZ8RpxGrEdIR1hErEjASexKKEn0RThNbE3oTbwB0AACg7SoAAWNybBGJEWsAAAJjZXBzdBF4EX0RghHvIW5nAKBMInAjc2lsb24A9mNyImltZQAAoDUgaQBtAGWgPSJxAACgzSJ2AY0RkRFlAGUAAKC9ImUAZABnoAUjZQAAoAUjcgBrAHSgtSPiIXJrAKC2IwABb3mjEaYRbgDnAHcRMWTxIXVvAKAeIIACY21wcnQAtBG5Eb4RwRHFEeEhdXPloDUi5ABwInR5dgAAoLApcwDpAH0RbgBvAPUA6gCAAWFodwDLEcwRzhGyYwCgNiHlIWVuAKBsInIAAOA12B/dZwCAA2Nvc3R1dncA4xHyEQUSEhIhEiYSKRKAAWFpdQDpEesR7xHwAKMFcgBjAACg7yVwAACgwyKAAWRwdAD4EfwRABJvAHQAAKAAKuwhdXMAoAEqaSJtZXMAAKACKnECCxIAAAAADxLjIXVwAKAGKmEAcgAAoAUm8iNpYW5nbGUAAWR1GhIeEu8hd24AoL0lcAAAoLMlcCJsdXMAAKAEKmUA5QBCD+UAkg9hInJvdwAAoA0pgAFha28ANhJoEncSAAFjbjoSZRJrAIABbHN0AEESRxJNEm8jemVuZ2UAAKDrKXEAdQBhAHIA5QBcBPIjaWFuZ2xlgKG0JWRscgBYElwSYBLvIXduAKC+JeUhZnQAoMIlaSJnaHQAAKC4JWsAAKAjJLEBbRIAAHUSsgFxEgAAcxIAoJIlAKCRJTQAAKCTJWMAawAAoIglAAFlb38ShxJx4D0A5SD1IWl2AOBhIuUgdAAAoBAjAAJwdHd4kRKVEpsSnxJmAADgNdhT3XSgpSJvAG0AAKClIvQhaWUAoMgiAAZESFVWYmRobXB0dXayEsES0RLgEvcS+xIKExoTHxMjEygTNxMAAkxSbHK5ErsSvRK/EgCgVyUAoFQlAKBWJQCgUyUAolAlRFVkdckSyxLNEs8SAKBmJQCgaSUAoGQlAKBnJQACTFJsctgS2hLcEt4SAKBdJQCgWiUAoFwlAKBZJQCjUSVITFJobHLrEu0S7xLxEvMS9RIAoGwlAKBjJQCgYCUAoGslAKBiJQCgXyVvAHgAAKDJKQACTFJscgITBBMGEwgTAKBVJQCgUiUAoBAlAKAMJQCiACVEVWR1EhMUExYTGBMAoGUlAKBoJQCgLCUAoDQlaSJudXMAAKCfIuwhdXMAoJ4iaSJtZXMAAKCgIgACTFJsci8TMRMzEzUTAKBbJQCgWCUAoBglAKAUJQCjAiVITFJobHJCE0QTRhNIE0oTTBMAoGolAKBhJQCgXiUAoDwlAKAkJQCgHCUAAWV2UhNVE3YA5QD5AGIAYQByADuApgCmQAACY2Vpb2ITZhNqE24TcgAA4DXYt9xtAGkAAKBPIG0A5aA9IogRbAAAoVwAYmh0E3YTAKDFKfMhdWIAoMgnbAF+E4QTbABloCIgdAAAoCIgcAAAoU4iRWWJE4sTAKCuKvGgTyI8BeEMqRMAAN8TABQDFB8UAAAjFDQUAAAAAIUUAAAAAI0UAAAAANcU4xT3FPsUAACIFQAAlhWAAWNwcgCuE7ET1RP1IXRlB2GAoikiYWJjZHMAuxO/E8QTzhPSE24AZAAAoEQqciJjdXAAAKBJKgABYXXIE8sTcAAAoEsqcAAAoEcqbwB0AACgQCoA4CkiAP4AAWVv2RPcE3QAAKBBIO4ABAUAAmFlaXXlE+8T9RP4E/AB6hMAAO0TcwAAoE0qbwBuAA1hZABpAGwAO4DnAOdAcgBjAAlhcABzAHOgTCptAACgUCpvAHQAC2GAAWRtbgAIFA0UEhRpAGwAO4C4ALhAcCJ0eXYAAKCyKXQAAIGiADtlGBQZFKJAcgBkAG8A9ABiAXIAAOA12CDdgAFjZWkAKBQqFDIUeQBHZGMAawBtoBMn4SFyawCgEyfHY3IAAKPLJUVjZWZtcz8UQRRHFHcUfBSAFACgwykAocYCZWxGFEkUcQAAoFciZQBhAlAUAAAAAGAUciJyb3cAAAFsclYUWhTlIWZ0AKC6IWkiZ2h0AACguyGAAlJTYWNkAGgUaRRrFG8UcxSuYACgyCRzAHQAAKCbIukhcmMAoJoi4SFzaACgnSJuImludAAAoBAqaQBkAACg7yrjIWlyAKDCKfUhYnN1oGMmaQB0AACgYybsApMUmhS2FAAAwxRvAG4AZaA6APGgVCKrAG0CnxQAAAAAoxRhAHSgLABAYAChASJmbKcUqRTuABMNZQAAAW14rhSyFOUhbnQAoAEiZQDzANIB5wG6FAAAwBRkoEUibwB0AACgbSpuAPQAzAGAAWZyeQDIFMsUzhQA4DXYVN1vAOQA1wEAgakAO3MeAdMUcgAAoBchAAFhb9oU3hRyAHIAAKC1IXMAcwAAoBcnAAFjdeYU6hRyAADgNdi43AABYnDuFPIUZaDPKgCg0SploNAqAKDSKuQhb3QAoO8igANkZWxwcnZ3AAYVEBUbFSEVRBVlFYQV4SFycgABbHIMFQ4VAKA4KQCgNSlwAhYVAAAAABkVcgAAoN4iYwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWls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ZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg")},1838(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.xmlDecodeTree=void 0;const n=r(275);t.xmlDecodeTree=(0,n.decodeBase64)("AAJhZ2xxBwARABMAFQBtAg0AAAAAAA8AcAAmYG8AcwAnYHQAPmB0ADxg9SFvdCJg")},4865(e,t){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.BinTrieFlags=void 0,function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.FLAG13=8192]="FLAG13",e[e.BRANCH_LENGTH=8064]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"}(r||(t.BinTrieFlags=r={}))},275(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decodeBase64=function(e){const t="function"==typeof atob?atob(e):"function"==typeof Buffer.from?Buffer.from(e,"base64").toString("binary"):new Buffer(e,"base64").toString("binary"),r=-2&t.length,n=new Uint16Array(r/2);for(let e=0,i=0;e0&&s.has(this.stack[0]);){const e=this.stack.shift();null===(r=(t=this.cbs).onclosetag)||void 0===r||r.call(t,e,!0)}this.isVoidElement(e)||(this.stack.unshift(e),this.htmlMode&&(g.has(e)?this.foreignContext.unshift(!0):y.has(e)&&this.foreignContext.unshift(!1))),null===(i=(n=this.cbs).onopentagname)||void 0===i||i.call(n,e),this.cbs.onopentag&&(this.attribs={})}endOpenTag(e){var t,r;this.startIndex=this.openTagStart,this.attribs&&(null===(r=(t=this.cbs).onopentag)||void 0===r||r.call(t,this.tagname,this.attribs,e),this.attribs=null),this.cbs.onclosetag&&this.isVoidElement(this.tagname)&&this.cbs.onclosetag(this.tagname,!0),this.tagname=""}onopentagend(e){this.endIndex=e,this.endOpenTag(!1),this.startIndex=e+1}onclosetag(e,t){var r,n,i,s,a,o,c,l;this.endIndex=t;let u=this.getSlice(e,t);if(this.lowerCaseTagNames&&(u=u.toLowerCase()),this.htmlMode&&(g.has(u)||y.has(u))&&this.foreignContext.shift(),this.isVoidElement(u))this.htmlMode&&"br"===u&&(null===(s=(i=this.cbs).onopentagname)||void 0===s||s.call(i,"br"),null===(o=(a=this.cbs).onopentag)||void 0===o||o.call(a,"br",{},!0),null===(l=(c=this.cbs).onclosetag)||void 0===l||l.call(c,"br",!1));else{const e=this.stack.indexOf(u);if(-1!==e)for(let t=0;t<=e;t++){const i=this.stack.shift();null===(n=(r=this.cbs).onclosetag)||void 0===n||n.call(r,i,t!==e)}else this.htmlMode&&"p"===u&&(this.emitOpenTag("p"),this.closeCurrentTag(!0))}this.startIndex=t+1}onselfclosingtag(e){this.endIndex=e,this.recognizeSelfClosing||this.foreignContext[0]?(this.closeCurrentTag(!1),this.startIndex=e+1):this.onopentagend(e)}closeCurrentTag(e){var t,r;const n=this.tagname;this.endOpenTag(e),this.stack[0]===n&&(null===(r=(t=this.cbs).onclosetag)||void 0===r||r.call(t,n,!e),this.stack.shift())}onattribname(e,t){this.startIndex=e;const r=this.getSlice(e,t);this.attribname=this.lowerCaseAttributeNames?r.toLowerCase():r}onattribdata(e,t){this.attribvalue+=this.getSlice(e,t)}onattribentity(e){this.attribvalue+=(0,c.fromCodePoint)(e)}onattribend(e,t){var r,n;this.endIndex=t,null===(n=(r=this.cbs).onattribute)||void 0===n||n.call(r,this.attribname,this.attribvalue,e===o.QuoteType.Double?'"':e===o.QuoteType.Single?"'":e===o.QuoteType.NoValue?void 0:null),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribvalue=""}getInstructionName(e){const t=e.search(m);let r=t<0?e:e.substr(0,t);return this.lowerCaseTagNames&&(r=r.toLowerCase()),r}ondeclaration(e,t){this.endIndex=t;const r=this.getSlice(e,t);if(this.cbs.onprocessinginstruction){const e=this.getInstructionName(r);this.cbs.onprocessinginstruction(`!${e}`,`!${r}`)}this.startIndex=t+1}onprocessinginstruction(e,t){this.endIndex=t;const r=this.getSlice(e,t);if(this.cbs.onprocessinginstruction){const e=this.getInstructionName(r);this.cbs.onprocessinginstruction(`?${e}`,`?${r}`)}this.startIndex=t+1}oncomment(e,t,r){var n,i,s,a;this.endIndex=t,null===(i=(n=this.cbs).oncomment)||void 0===i||i.call(n,this.getSlice(e,t-r)),null===(a=(s=this.cbs).oncommentend)||void 0===a||a.call(s),this.startIndex=t+1}oncdata(e,t,r){var n,i,s,a,o,c,l,u,h,f;this.endIndex=t;const A=this.getSlice(e,t-r);!this.htmlMode||this.options.recognizeCDATA?(null===(i=(n=this.cbs).oncdatastart)||void 0===i||i.call(n),null===(a=(s=this.cbs).ontext)||void 0===a||a.call(s,A),null===(c=(o=this.cbs).oncdataend)||void 0===c||c.call(o)):(null===(u=(l=this.cbs).oncomment)||void 0===u||u.call(l,`[CDATA[${A}]]`),null===(f=(h=this.cbs).oncommentend)||void 0===f||f.call(h)),this.startIndex=t+1}onend(){var e,t;if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(let e=0;e=this.buffers[0].length;)this.shiftBuffer();let r=this.buffers[0].slice(e-this.bufferOffset,t-this.bufferOffset);for(;t-this.bufferOffset>this.buffers[0].length;)this.shiftBuffer(),r+=this.buffers[0].slice(0,t-this.bufferOffset);return r}shiftBuffer(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()}write(e){var t,r;this.ended?null===(r=(t=this.cbs).onerror)||void 0===r||r.call(t,new Error(".write() after done!")):(this.buffers.push(e),this.tokenizer.running&&(this.tokenizer.write(e),this.writeIndex++))}end(e){var t,r;this.ended?null===(r=(t=this.cbs).onerror)||void 0===r||r.call(t,new Error(".end() after done!")):(e&&this.write(e),this.ended=!0,this.tokenizer.end())}pause(){this.tokenizer.pause()}resume(){for(this.tokenizer.resume();this.tokenizer.running&&this.writeIndexthis.emitCodePoint(e,t))}reset(){this.state=s.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=s.Text,this.currentSequence=void 0,this.running=!0,this.offset=0}write(e){this.offset+=this.buffer.length,this.buffer=e,this.parse()}end(){this.running&&this.finish()}pause(){this.running=!1}resume(){this.running=!0,this.indexthis.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=s.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&e===i.Amp&&this.startEntity()}stateSpecialStartSequence(e){const t=this.sequenceIndex===this.currentSequence.length;if(t?c(e):(32|e)===this.currentSequence[this.sequenceIndex]){if(!t)return void this.sequenceIndex++}else this.isSpecial=!1;this.sequenceIndex=0,this.state=s.InTagName,this.stateInTagName(e)}stateInSpecialTag(e){if(this.sequenceIndex===this.currentSequence.length){if(e===i.Gt||o(e)){const t=this.index-this.currentSequence.length;if(this.sectionStart=i.LowerA&&e<=i.LowerZ||e>=i.UpperA&&e<=i.UpperZ}(e)}startSpecial(e,t){this.isSpecial=!0,this.currentSequence=e,this.sequenceIndex=t,this.state=s.SpecialStartSequence}stateBeforeTagName(e){if(e===i.ExclamationMark)this.state=s.BeforeDeclaration,this.sectionStart=this.index+1;else if(e===i.Questionmark)this.state=s.InProcessingInstruction,this.sectionStart=this.index+1;else if(this.isTagStartChar(e)){const t=32|e;this.sectionStart=this.index,this.xmlMode?this.state=s.InTagName:t===l.ScriptEnd[2]?this.state=s.BeforeSpecialS:t===l.TitleEnd[2]||t===l.XmpEnd[2]?this.state=s.BeforeSpecialT:this.state=s.InTagName}else e===i.Slash?this.state=s.BeforeClosingTagName:(this.state=s.Text,this.stateText(e))}stateInTagName(e){c(e)&&(this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=s.BeforeAttributeName,this.stateBeforeAttributeName(e))}stateBeforeClosingTagName(e){o(e)||(e===i.Gt?this.state=s.Text:(this.state=this.isTagStartChar(e)?s.InClosingTagName:s.InSpecialComment,this.sectionStart=this.index))}stateInClosingTagName(e){(e===i.Gt||o(e))&&(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=s.AfterClosingTagName,this.stateAfterClosingTagName(e))}stateAfterClosingTagName(e){(e===i.Gt||this.fastForwardTo(i.Gt))&&(this.state=s.Text,this.sectionStart=this.index+1)}stateBeforeAttributeName(e){e===i.Gt?(this.cbs.onopentagend(this.index),this.isSpecial?(this.state=s.InSpecialTag,this.sequenceIndex=0):this.state=s.Text,this.sectionStart=this.index+1):e===i.Slash?this.state=s.InSelfClosingTag:o(e)||(this.state=s.InAttributeName,this.sectionStart=this.index)}stateInSelfClosingTag(e){e===i.Gt?(this.cbs.onselfclosingtag(this.index),this.state=s.Text,this.sectionStart=this.index+1,this.isSpecial=!1):o(e)||(this.state=s.BeforeAttributeName,this.stateBeforeAttributeName(e))}stateInAttributeName(e){(e===i.Eq||c(e))&&(this.cbs.onattribname(this.sectionStart,this.index),this.sectionStart=this.index,this.state=s.AfterAttributeName,this.stateAfterAttributeName(e))}stateAfterAttributeName(e){e===i.Eq?this.state=s.BeforeAttributeValue:e===i.Slash||e===i.Gt?(this.cbs.onattribend(a.NoValue,this.sectionStart),this.sectionStart=-1,this.state=s.BeforeAttributeName,this.stateBeforeAttributeName(e)):o(e)||(this.cbs.onattribend(a.NoValue,this.sectionStart),this.state=s.InAttributeName,this.sectionStart=this.index)}stateBeforeAttributeValue(e){e===i.DoubleQuote?(this.state=s.InAttributeValueDq,this.sectionStart=this.index+1):e===i.SingleQuote?(this.state=s.InAttributeValueSq,this.sectionStart=this.index+1):o(e)||(this.sectionStart=this.index,this.state=s.InAttributeValueNq,this.stateInAttributeValueNoQuotes(e))}handleInAttributeValue(e,t){e===t||!this.decodeEntities&&this.fastForwardTo(t)?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(t===i.DoubleQuote?a.Double:a.Single,this.index+1),this.state=s.BeforeAttributeName):this.decodeEntities&&e===i.Amp&&this.startEntity()}stateInAttributeValueDoubleQuotes(e){this.handleInAttributeValue(e,i.DoubleQuote)}stateInAttributeValueSingleQuotes(e){this.handleInAttributeValue(e,i.SingleQuote)}stateInAttributeValueNoQuotes(e){o(e)||e===i.Gt?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(a.Unquoted,this.index),this.state=s.BeforeAttributeName,this.stateBeforeAttributeName(e)):this.decodeEntities&&e===i.Amp&&this.startEntity()}stateBeforeDeclaration(e){e===i.OpeningSquareBracket?(this.state=s.CDATASequence,this.sequenceIndex=0):this.state=e===i.Dash?s.BeforeComment:s.InDeclaration}stateInDeclaration(e){(e===i.Gt||this.fastForwardTo(i.Gt))&&(this.cbs.ondeclaration(this.sectionStart,this.index),this.state=s.Text,this.sectionStart=this.index+1)}stateInProcessingInstruction(e){(e===i.Gt||this.fastForwardTo(i.Gt))&&(this.cbs.onprocessinginstruction(this.sectionStart,this.index),this.state=s.Text,this.sectionStart=this.index+1)}stateBeforeComment(e){e===i.Dash?(this.state=s.InCommentLike,this.currentSequence=l.CommentEnd,this.sequenceIndex=2,this.sectionStart=this.index+1):this.state=s.InDeclaration}stateInSpecialComment(e){(e===i.Gt||this.fastForwardTo(i.Gt))&&(this.cbs.oncomment(this.sectionStart,this.index,0),this.state=s.Text,this.sectionStart=this.index+1)}stateBeforeSpecialS(e){const t=32|e;t===l.ScriptEnd[3]?this.startSpecial(l.ScriptEnd,4):t===l.StyleEnd[3]?this.startSpecial(l.StyleEnd,4):(this.state=s.InTagName,this.stateInTagName(e))}stateBeforeSpecialT(e){switch(32|e){case l.TitleEnd[3]:this.startSpecial(l.TitleEnd,4);break;case l.TextareaEnd[3]:this.startSpecial(l.TextareaEnd,4);break;case l.XmpEnd[3]:this.startSpecial(l.XmpEnd,4);break;default:this.state=s.InTagName,this.stateInTagName(e)}}startEntity(){this.baseState=this.state,this.state=s.InEntity,this.entityStart=this.index,this.entityDecoder.startEntity(this.xmlMode?n.DecodingMode.Strict:this.baseState===s.Text||this.baseState===s.InSpecialTag?n.DecodingMode.Legacy:n.DecodingMode.Attribute)}stateInEntity(){const e=this.index-this.offset,t=this.entityDecoder.write(this.buffer,e);if(t>=0)this.state=this.baseState,0===t&&(this.index-=1);else{if(e=e||(this.state===s.InCommentLike?this.currentSequence===l.CdataEnd?this.cbs.oncdata(this.sectionStart,e,0):this.cbs.oncomment(this.sectionStart,e,0):this.state===s.InTagName||this.state===s.BeforeAttributeName||this.state===s.BeforeAttributeValue||this.state===s.AfterAttributeName||this.state===s.InAttributeName||this.state===s.InAttributeValueSq||this.state===s.InAttributeValueDq||this.state===s.InAttributeValueNq||this.state===s.InClosingTagName||this.cbs.ontext(this.sectionStart,e))}emitCodePoint(e,t){this.baseState!==s.Text&&this.baseState!==s.InSpecialTag?(this.sectionStarte(t,n.root),t,r);return new c.Parser(n,t)},t.createDomStream=function(e,t,r){const n=new u.DomHandler(e,t,r);return new c.Parser(n,t)},t.parseFeed=function(e,t=y){return(0,p.getFeed)(A(e,t))};const c=r(2067);var l=r(2067);Object.defineProperty(t,"Parser",{enumerable:!0,get:function(){return l.Parser}});const u=r(1141);var h=r(1141);function f(e,t){const r=new u.DomHandler(void 0,t);return new c.Parser(r,t).end(e),r.root}function A(e,t){return f(e,t).children}Object.defineProperty(t,"DomHandler",{enumerable:!0,get:function(){return h.DomHandler}}),Object.defineProperty(t,"DefaultHandler",{enumerable:!0,get:function(){return h.DomHandler}});var d=r(8391);Object.defineProperty(t,"Tokenizer",{enumerable:!0,get:function(){return o(d).default}}),Object.defineProperty(t,"QuoteType",{enumerable:!0,get:function(){return d.QuoteType}}),t.ElementType=a(r(5413));const p=r(8888);var g=r(8888);Object.defineProperty(t,"getFeed",{enumerable:!0,get:function(){return g.getFeed}});const y={xmlMode:!0};t.DomUtils=a(r(8888))},5042(e){e.exports={nanoid:(e=21)=>{let t="",r=0|e;for(;r--;)t+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[64*Math.random()|0];return t},customAlphabet:(e,t=21)=>(r=t)=>{let n="",i=0|r;for(;i--;)n+=e[Math.random()*e.length|0];return n}}},9275(e,t,r){"use strict";r.r(t),r.d(t,{ArrayStream:()=>n.ArrayStream,cancel:()=>n.cancel,clone:()=>n.clone,concat:()=>n.concat,concatStream:()=>n.concatStream,concatUint8Array:()=>i.Cs,fromAsync:()=>n.fromAsync,getReader:()=>n.getReader,getWriter:()=>n.getWriter,isArrayStream:()=>i.AS,isStream:()=>i.rL,isUint8Array:()=>i.mg,parse:()=>n.parse,passiveClone:()=>n.passiveClone,pipe:()=>n.pipe,readToEnd:()=>n.readToEnd,slice:()=>n.slice,toStream:()=>n.toStream,transform:()=>n.transform,transformPair:()=>n.transformPair,transformRaw:()=>n.transformRaw});var n=r(8877),i=r(7971)},8877(e,t,r){"use strict";r.d(t,{ArrayStream:()=>o.S5,cancel:()=>k,clone:()=>m,concat:()=>u,concatStream:()=>h,fromAsync:()=>I,getReader:()=>B,getWriter:()=>C,parse:()=>y,passiveClone:()=>w,pipe:()=>f,readToEnd:()=>v,slice:()=>E,toStream:()=>c,transform:()=>p,transformPair:()=>g,transformRaw:()=>A});var n=r(7971);const i=new WeakSet,s=Symbol("externalBuffer");function a(e){if(this.stream=e,e[s]&&(this[s]=e[s].slice()),(0,n.AS)(e)){const t=e.getReader();return this._read=t.read.bind(t),this._releaseLock=()=>{},void(this._cancel=()=>{})}if((0,n.rL)(e)){const t=e.getReader();return this._read=t.read.bind(t),this._releaseLock=()=>{t.closed.catch(function(){}),t.releaseLock()},void(this._cancel=t.cancel.bind(t))}let t=!1;this._read=async()=>t||i.has(e)?{value:void 0,done:!0}:(t=!0,{value:e,done:!1}),this._releaseLock=()=>{if(t)try{i.add(e)}catch(e){}}}a.prototype.read=async function(){return this[s]&&this[s].length?{done:!1,value:this[s].shift()}:this._read()},a.prototype.releaseLock=function(){this[s]&&(this.stream[s]=this[s]),this._releaseLock()},a.prototype.cancel=function(e){return this._cancel(e)},a.prototype.readLine=async function(){let e,t=[];for(;!e;){let{done:r,value:n}=await this.read();if(n+="",r)return t.length?u(t):void 0;const i=n.indexOf("\n")+1;i&&(e=u(t.concat(n.substr(0,i))),t=[]),i!==n.length&&t.push(n.substr(i))}return this.unshift(...t),e},a.prototype.readByte=async function(){const{done:e,value:t}=await this.read();if(e)return;const r=t[0];return this.unshift(E(t,1)),r},a.prototype.readBytes=async function(e){const t=[];let r=0;for(;;){const{done:n,value:i}=await this.read();if(n)return t.length?u(t):void 0;if(t.push(i),r+=i.length,r>=e){const r=u(t);return this.unshift(E(r,e)),E(r,0,e)}}},a.prototype.peekBytes=async function(e){const t=await this.readBytes(e);return this.unshift(t),t},a.prototype.unshift=function(...e){this[s]||(this[s]=[]),1===e.length&&(0,n.mg)(e[0])&&this[s].length&&e[0].length&&this[s][0].byteOffset>=e[0].length?this[s][0]=new Uint8Array(this[s][0].buffer,this[s][0].byteOffset-e[0].length,this[s][0].byteLength+e[0].length):this[s].unshift(...e.filter(e=>e&&e.length))},a.prototype.readToEnd=async function(e=u){const t=[];for(;;){const{done:e,value:r}=await this.read();if(e)break;t.push(r)}return e(t)};var o=r(9844);function c(e){return(0,n.rL)(e)?e:new ReadableStream({start(t){t.enqueue(e),t.close()}})}function l(e){if((0,n.rL)(e))return e;const t=new o.S5;return(async()=>{const r=C(t);await r.write(e),await r.close()})(),t}function u(e){return e.some(e=>(0,n.rL)(e)&&!(0,n.AS)(e))?h(e):e.some(e=>(0,n.AS)(e))?function(e){const t=new o.S5;let r=Promise.resolve();return e.forEach((n,i)=>(r=r.then(()=>f(n,t,{preventClose:i!==e.length-1})),r)),t}(e):"string"==typeof e[0]?e.join(""):(0,n.Cs)(e)}function h(e){e=e.map(c);const t=d(async function(e){await Promise.all(n.map(t=>k(t,e)))});let r=Promise.resolve();const n=e.map((n,i)=>g(n,(n,s)=>(r=r.then(()=>f(n,t.writable,{preventClose:i!==e.length-1})),r)));return t.readable}async function f(e,t,{preventClose:r=!1,preventAbort:i=!1,preventCancel:a=!1}={}){if((0,n.rL)(e)&&!(0,n.AS)(e)){e=c(e);try{if(e[s]){const r=C(t);for(let t=0;t{t=e,r=n}),t=null,r=null)},close:n.close.bind(n),abort:n.error.bind(n)})}}function p(e,t=()=>{},r=()=>{}){if((0,n.AS)(e)){const n=new o.S5;return(async()=>{const i=C(n);try{const n=await v(e),s=t(n),a=r();let o;o=void 0!==s&&void 0!==a?u([s,a]):void 0!==s?s:a,await i.write(o),await i.close()}catch(e){await i.abort(e)}})(),n}if((0,n.rL)(e))return A(e,{async transform(e,r){try{const n=await t(e);void 0!==n&&r.enqueue(n)}catch(e){r.error(e)}},async flush(e){try{const t=await r();void 0!==t&&e.enqueue(t)}catch(t){e.error(t)}}});const i=t(e),s=r();return void 0!==i&&void 0!==s?u([i,s]):void 0!==i?i:s}function g(e,t){if((0,n.rL)(e)&&!(0,n.AS)(e)){let r;const n=new TransformStream({start(e){r=e}}),i=f(e,n.writable),s=d(async function(e){r.error(e),await i,await new Promise(setTimeout)});return t(n.readable,s.writable),s.readable}e=l(e);const r=new o.S5;return t(e,r),r}function y(e,t){let r;const n=g(e,(e,i)=>{const s=B(e);s.remainder=()=>(s.releaseLock(),f(e,i),n),r=t(s)});return r}function m(e){if((0,n.AS)(e))return e.clone();if((0,n.rL)(e)){const t=function(e){if((0,n.AS)(e))throw new Error("ArrayStream cannot be tee()d, use clone() instead");if((0,n.rL)(e)){const t=c(e).tee();return t[0][s]=t[1][s]=e[s],t}return[E(e),E(e)]}(e);return b(e,t[0]),t[1]}return E(e)}function w(e){return(0,n.AS)(e)?m(e):(0,n.rL)(e)?new ReadableStream({start(t){const r=g(e,async(e,r)=>{const n=B(e),i=C(r);try{for(;;){await i.ready;const{done:e,value:r}=await n.read();if(e){try{t.close()}catch(e){}return void await i.close()}try{t.enqueue(r)}catch(e){}await i.write(r)}}catch(e){t.error(e),await i.abort(e)}});b(e,r)}}):E(e)}function b(e,t){Object.entries(Object.getOwnPropertyDescriptors(e.constructor.prototype)).forEach(([r,n])=>{"constructor"!==r&&(n.value?n.value=n.value.bind(t):n.get=n.get.bind(t),Object.defineProperty(e,r,n))})}function E(e,t=0,r=1/0){if((0,n.AS)(e))throw new Error("Not implemented");if((0,n.rL)(e)){if(t>=0&&r>=0){let n=0;return A(e,{transform(e,i){n=t&&i.enqueue(E(e,Math.max(t-n,0),r-n)),n+=e.length):i.terminate()}})}if(t<0&&(r<0||r===1/0)){let n=[];return p(e,e=>{e.length>=-t?n=[e]:n.push(e)},()=>E(u(n),t,r))}if(0===t&&r<0){let n;return p(e,e=>{const i=n?u([n,e]):e;if(i.length>=-r)return n=E(i,r),E(i,t,r);n=i})}return console.warn(`stream.slice(input, ${t}, ${r}) not implemented efficiently.`),I(async()=>E(await v(e),t,r))}return e[s]&&(e=u(e[s].concat([e]))),(0,n.mg)(e)?e.subarray(t,r===1/0?e.length:r):e.slice(t,r)}async function v(e,t=u){return(0,n.AS)(e)?e.readToEnd(t):(0,n.rL)(e)?B(e).readToEnd(t):e}async function k(e,t){if((0,n.rL)(e)){if(e.cancel){const r=await e.cancel(t);return await new Promise(setTimeout),r}if(e.destroy)return e.destroy(t),await new Promise(setTimeout),t}}function I(e){const t=new o.S5;return(async()=>{const r=C(t);try{await r.write(await e()),await r.close()}catch(e){await r.abort(e)}})(),t}function B(e){return new a(e)}function C(e){return new o.AU(e)}},7971(e,t,r){"use strict";r.d(t,{AS:()=>n.AS,Cs:()=>a,mg:()=>s,rL:()=>i});var n=r(9844);function i(e){if((0,n.AS)(e))return"array";if(globalThis.ReadableStream&&globalThis.ReadableStream.prototype.isPrototypeOf(e))return"web";if(e&&!(globalThis.ReadableStream&&e instanceof globalThis.ReadableStream)&&"function"==typeof e._read&&"object"==typeof e._readableState)throw new Error("Native Node streams are no longer supported: please manually convert the stream to a WebStream, using e.g. `stream.Readable.toWeb`");return!(!e||!e.getReader)&&"web-like"}function s(e){return Uint8Array.prototype.isPrototypeOf(e)}function a(e){if(1===e.length)return e[0];let t=0;for(let r=0;rc,AU:()=>l,S5:()=>o});const n=Symbol("doneWritingPromise"),i=Symbol("doneWritingResolve"),s=Symbol("doneWritingReject"),a=Symbol("readingIndex");class o extends Array{constructor(){super(),Object.setPrototypeOf(this,o.prototype),this[n]=new Promise((e,t)=>{this[i]=e,this[s]=t}),this[n].catch(()=>{})}}function c(e){return e&&e.getReader&&Array.isArray(e)}function l(e){if(!c(e)){const t=e.getWriter(),r=t.releaseLock;return t.releaseLock=()=>{t.closed.catch(function(){}),r.call(t)},t}this.stream=e}o.prototype.getReader=function(){return void 0===this[a]&&(this[a]=0),{read:async()=>(await this[n],this[a]===this.length?{value:void 0,done:!0}:{value:this[this[a]++],done:!1})}},o.prototype.readToEnd=async function(e){await this[n];const t=e(this.slice(this[a]));return this.length=0,t},o.prototype.clone=function(){const e=new o;return e[n]=this[n].then(()=>{e.push(...this)}),e},l.prototype.write=async function(e){this.stream.push(e)},l.prototype.close=async function(){this.stream[i]()},l.prototype.abort=async function(e){return this.stream[s](e),e},l.prototype.releaseLock=function(){}},6382(e,t,r){"use strict";r.r(t),r.d(t,{AEADEncryptedDataPacket:()=>qs,CleartextMessage:()=>za,CompressedDataPacket:()=>Ns,GrammarError:()=>Fs,LiteralDataPacket:()=>ks,MarkerPacket:()=>ta,Message:()=>Ya,OnePassSignaturePacket:()=>Ps,PacketList:()=>Ts,PaddingPacket:()=>la,PrivateKey:()=>Fa,PublicKey:()=>Ta,PublicKeyEncryptedSessionKeyPacket:()=>Zs,PublicKeyPacket:()=>Xs,PublicSubkeyPacket:()=>ra,SecretKeyPacket:()=>ia,SecretSubkeyPacket:()=>oa,Signature:()=>ha,SignaturePacket:()=>Ds,Subkey:()=>Da,SymEncryptedIntegrityProtectedDataPacket:()=>Ys,SymEncryptedSessionKeyPacket:()=>zs,SymmetricallyEncryptedDataPacket:()=>ea,TrustPacket:()=>ca,UnparseablePacket:()=>lt,UserAttributePacket:()=>na,UserIDPacket:()=>aa,armor:()=>re,config:()=>N,createCleartextMessage:()=>$a,createMessage:()=>Za,decrypt:()=>ao,decryptKey:()=>no,decryptSessionKeys:()=>ho,encrypt:()=>so,encryptKey:()=>io,encryptSessionKey:()=>uo,enums:()=>Q,generateKey:()=>eo,generateSessionKey:()=>lo,readCleartextMessage:()=>Xa,readKey:()=>Na,readKeys:()=>La,readMessage:()=>qa,readPrivateKey:()=>Oa,readPrivateKeys:()=>Ga,readSignature:()=>fa,reformatKey:()=>to,revokeKey:()=>ro,sign:()=>oo,unarmor:()=>te,verify:()=>co});const n="undefined"!=typeof window?window:void 0!==r.g?r.g:"undefined"!=typeof self?self:{},i=Symbol("doneWritingPromise"),s=Symbol("doneWritingResolve"),a=Symbol("doneWritingReject"),o=Symbol("readingIndex");class c extends Array{constructor(){super(),Object.setPrototypeOf(this,c.prototype),this[i]=new Promise((e,t)=>{this[s]=e,this[a]=t}),this[i].catch(()=>{})}}function l(e){return e&&e.getReader&&Array.isArray(e)}function u(e){if(!l(e)){const t=e.getWriter(),r=t.releaseLock;return t.releaseLock=()=>{t.closed.catch(function(){}),r.call(t)},t}this.stream=e}function h(e){if(l(e))return"array";if(n.ReadableStream&&n.ReadableStream.prototype.isPrototypeOf(e))return"web";if(e&&!(n.ReadableStream&&e instanceof n.ReadableStream)&&"function"==typeof e._read&&"object"==typeof e._readableState)throw new Error("Native Node streams are no longer supported: please manually convert the stream to a WebStream, using e.g. `stream.Readable.toWeb`");return!(!e||!e.getReader)&&"web-like"}function f(e){return Uint8Array.prototype.isPrototypeOf(e)}function A(e){if(1===e.length)return e[0];let t=0;for(let r=0;r(await this[i],this[o]===this.length?{value:void 0,done:!0}:{value:this[this[o]++],done:!1})}},c.prototype.readToEnd=async function(e){await this[i];const t=e(this.slice(this[o]));return this.length=0,t},c.prototype.clone=function(){const e=new c;return e[i]=this[i].then(()=>{e.push(...this)}),e},u.prototype.write=async function(e){this.stream.push(e)},u.prototype.close=async function(){this.stream[s]()},u.prototype.abort=async function(e){return this.stream[a](e),e},u.prototype.releaseLock=function(){},"object"==typeof n.process&&n.process.versions;const d=new WeakSet,p=Symbol("externalBuffer");function g(e){if(this.stream=e,e[p]&&(this[p]=e[p].slice()),l(e)){const t=e.getReader();return this._read=t.read.bind(t),this._releaseLock=()=>{},void(this._cancel=()=>{})}if(h(e)){const t=e.getReader();return this._read=t.read.bind(t),this._releaseLock=()=>{t.closed.catch(function(){}),t.releaseLock()},void(this._cancel=t.cancel.bind(t))}let t=!1;this._read=async()=>t||d.has(e)?{value:void 0,done:!0}:(t=!0,{value:e,done:!1}),this._releaseLock=()=>{if(t)try{d.add(e)}catch(e){}}}function y(e){return h(e)?e:new ReadableStream({start(t){t.enqueue(e),t.close()}})}function m(e){const t=h(e);if(t){if("array"!==t)throw new Error("Can't convert Stream to ArrayStream here, call `readToEnd` first");return e}const r=new c;return(async()=>{const t=M(r);await t.write(e),await t.close()})(),r}function w(e){return e.some(e=>h(e)&&!l(e))?function(e){e=e.map(y);const t=E(async function(e){await Promise.all(n.map(t=>U(t,e)))});let r=Promise.resolve();const n=e.map((n,i)=>B(n,(n,s)=>(r=r.then(()=>b(n,t.writable,{preventClose:i!==e.length-1})),r)));return t.readable}(e):e.some(e=>l(e))?function(e){const t=new c;let r=Promise.resolve();return e.forEach((n,i)=>(r=r.then(()=>b(n,t,{preventClose:i!==e.length-1})),r)),t}(e):"string"==typeof e[0]?e.join(""):A(e)}async function b(e,t,{preventClose:r=!1,preventAbort:n=!1,preventCancel:i=!1}={}){if(h(e)&&!l(e)&&!l(t)){e=y(e);try{if(e[p]){const r=M(t);for(let t=0;t{t=e,r=n}),t=null,r=null)},close:n.close.bind(n),abort:n.error.bind(n)})}}function v(e,t=()=>{},r=()=>{},n={highWaterMark:0}){if(h(e))return I(e,t,r,n);const i=t(e),s=r();return void 0!==i&&void 0!==s?w([i,s]):void 0!==i?i:s}async function k(e,t=async()=>{},r=async()=>{},n={highWaterMark:1}){if(h(e))return I(e,t,r,n);const i=await t(e),s=await r();return void 0!==i&&void 0!==s?w([i,s]):void 0!==i?i:s}function I(e,t,r,n){if(l(e)){const n=new c;return(async()=>{const i=M(n);try{const n=await P(e),s=await t(n),a=await r();let o;o=void 0!==s&&void 0!==a?w([s,a]):void 0!==s?s:a,await i.write(o),await i.close()}catch(e){await i.abort(e)}})(),n}if(h(e)){let i,s=!1;return new ReadableStream({start(){i=e.getReader()},async pull(n){if(s)return n.close(),void e.releaseLock();try{for(;;){const{value:a,done:o}=await i.read();s=o;const c=await(o?r:t)(a);if(void 0!==c)return void n.enqueue(c);if(o)return n.close(),void e.releaseLock()}}catch(e){n.error(e)}},async cancel(e){await i.cancel(e)}},n)}throw new Error("Unreachable")}function B(e,t){if(h(e)&&!l(e)){let r;const n=new TransformStream({start(e){r=e}}),i=b(e,n.writable),s=E(async function(e){r.error(e),await i,await new Promise(e=>setTimeout(e))});return t(n.readable,s.writable),s.readable}e=m(e);const r=new c;return t(e,r),r}function C(e,t){let r;const n=B(e,(e,i)=>{const s=F(e);s.remainder=()=>(s.releaseLock(),b(e,i),n),r=t(s)});return r}function S(e){if(l(e))return e.clone();if(h(e)){const t=function(e){if(l(e))throw new Error("ArrayStream cannot be tee()d, use clone() instead");if(h(e)){const t=y(e).tee();return t[0][p]=t[1][p]=e[p],t}return[K(e),K(e)]}(e);return x(e,t[0]),t[1]}return K(e)}function D(e){return l(e)?S(e):h(e)?new ReadableStream({start(t){const r=B(e,async(e,r)=>{const n=F(e),i=M(r);try{for(;;){await i.ready;const{done:e,value:r}=await n.read();if(e){try{t.close()}catch(e){}return void await i.close()}try{t.enqueue(r)}catch(e){}await i.write(r)}}catch(e){t.error(e),await i.abort(e)}});x(e,r)}}):K(e)}function x(e,t){Object.entries(Object.getOwnPropertyDescriptors(e.constructor.prototype)).forEach(([r,n])=>{"constructor"!==r&&(n.value?n.value=n.value.bind(t):n.get=n.get.bind(t),Object.defineProperty(e,r,n))})}function K(e,t=0,r=1/0){if(l(e))throw new Error("Not implemented");if(h(e)){if(t>=0&&r>=0){let n,i=0;return new ReadableStream({start(){n=e.getReader()},async pull(s){try{for(;;){if(!(i=t&&(c=K(a,Math.max(t-i,0),r-i)),i+=a.length,c)return void s.enqueue(c)}}}catch(e){s.error(e)}},async cancel(e){await n.cancel(e)}},{highWaterMark:0})}if(t<0&&(r<0||r===1/0)){let n=[];return v(e,e=>{e.length>=-t?n=[e]:n.push(e)},()=>K(w(n),t,r))}if(0===t&&r<0){let n;return v(e,e=>{const i=n?w([n,e]):e;if(i.length>=-r)return n=K(i,r),K(i,t,r);n=i})}return console.warn(`stream.slice(input, ${t}, ${r}) not implemented efficiently.`),T(async()=>K(await P(e),t,r))}return e[p]&&(e=w(e[p].concat([e]))),f(e)?e.subarray(t,r===1/0?e.length:r):e.slice(t,r)}async function P(e,t=w){return l(e)?e.readToEnd(t):h(e)?F(e).readToEnd(t):e}async function U(e,t){if(h(e)){if(e.cancel){const r=await e.cancel(t);return await new Promise(e=>setTimeout(e)),r}if(e.destroy)return e.destroy(t),await new Promise(e=>setTimeout(e)),t}}function T(e){const t=new c;return(async()=>{const r=M(t);try{await r.write(await e()),await r.close()}catch(e){await r.abort(e)}})(),t}function F(e){return new g(e)}function M(e){return new u(e)}g.prototype.read=async function(){return this[p]&&this[p].length?{done:!1,value:this[p].shift()}:this._read()},g.prototype.releaseLock=function(){this[p]&&(this.stream[p]=this[p]),this._releaseLock()},g.prototype.cancel=function(e){return this._cancel(e)},g.prototype.readLine=async function(){let e,t=[];for(;!e;){let{done:r,value:n}=await this.read();if(n+="",r)return t.length?w(t):void 0;const i=n.indexOf("\n")+1;i&&(e=w(t.concat(n.substr(0,i))),t=[]),i!==n.length&&t.push(n.substr(i))}return this.unshift(...t),e},g.prototype.readByte=async function(){const{done:e,value:t}=await this.read();if(e)return;const r=t[0];return this.unshift(K(t,1)),r},g.prototype.readBytes=async function(e){const t=[];let r=0;for(;;){const{done:n,value:i}=await this.read();if(n)return t.length?w(t):void 0;if(t.push(i),r+=i.length,r>=e){const r=w(t);return this.unshift(K(r,e)),K(r,0,e)}}},g.prototype.peekBytes=async function(e){const t=await this.readBytes(e);return this.unshift(t),t},g.prototype.unshift=function(...e){this[p]||(this[p]=[]),1===e.length&&f(e[0])&&this[p].length&&e[0].length&&this[p][0].byteOffset>=e[0].length?this[p][0]=new Uint8Array(this[p][0].buffer,this[p][0].byteOffset-e[0].length,this[p][0].byteLength+e[0].length):this[p].unshift(...e.filter(e=>e&&e.length))},g.prototype.readToEnd=async function(e=w){const t=[];for(;;){const{done:e,value:r}=await this.read();if(e)break;t.push(r)}return e(t)};const R=Symbol("byValue");var Q={curve:{nistP256:"nistP256",p256:"nistP256",nistP384:"nistP384",p384:"nistP384",nistP521:"nistP521",p521:"nistP521",secp256k1:"secp256k1",ed25519Legacy:"ed25519Legacy",ed25519:"ed25519Legacy",curve25519Legacy:"curve25519Legacy",curve25519:"curve25519Legacy",brainpoolP256r1:"brainpoolP256r1",brainpoolP384r1:"brainpoolP384r1",brainpoolP512r1:"brainpoolP512r1"},s2k:{simple:0,salted:1,iterated:3,argon2:4,gnu:101},publicKey:{rsaEncryptSign:1,rsaEncrypt:2,rsaSign:3,elgamal:16,dsa:17,ecdh:18,ecdsa:19,eddsaLegacy:22,aedh:23,aedsa:24,x25519:25,x448:26,ed25519:27,ed448:28},symmetric:{idea:1,tripledes:2,cast5:3,blowfish:4,aes128:7,aes192:8,aes256:9,twofish:10},compression:{uncompressed:0,zip:1,zlib:2,bzip2:3},hash:{md5:1,sha1:2,ripemd:3,sha256:8,sha384:9,sha512:10,sha224:11,sha3_256:12,sha3_512:14},webHash:{"SHA-1":2,"SHA-256":8,"SHA-384":9,"SHA-512":10},aead:{eax:1,ocb:2,gcm:3,experimentalGCM:100},packet:{publicKeyEncryptedSessionKey:1,signature:2,symEncryptedSessionKey:3,onePassSignature:4,secretKey:5,publicKey:6,secretSubkey:7,compressedData:8,symmetricallyEncryptedData:9,marker:10,literalData:11,trust:12,userID:13,publicSubkey:14,userAttribute:17,symEncryptedIntegrityProtectedData:18,modificationDetectionCode:19,aeadEncryptedData:20,padding:21},literal:{binary:"b".charCodeAt(),text:"t".charCodeAt(),utf8:"u".charCodeAt(),mime:"m".charCodeAt()},signature:{binary:0,text:1,standalone:2,certGeneric:16,certPersona:17,certCasual:18,certPositive:19,certRevocation:48,subkeyBinding:24,keyBinding:25,key:31,keyRevocation:32,subkeyRevocation:40,timestamp:64,thirdParty:80},signatureSubpacket:{signatureCreationTime:2,signatureExpirationTime:3,exportableCertification:4,trustSignature:5,regularExpression:6,revocable:7,keyExpirationTime:9,placeholderBackwardsCompatibility:10,preferredSymmetricAlgorithms:11,revocationKey:12,issuerKeyID:16,notationData:20,preferredHashAlgorithms:21,preferredCompressionAlgorithms:22,keyServerPreferences:23,preferredKeyServer:24,primaryUserID:25,policyURI:26,keyFlags:27,signersUserID:28,reasonForRevocation:29,features:30,signatureTarget:31,embeddedSignature:32,issuerFingerprint:33,preferredAEADAlgorithms:34,preferredCipherSuites:39},keyFlags:{certifyKeys:1,signData:2,encryptCommunication:4,encryptStorage:8,splitPrivateKey:16,authentication:32,sharedPrivateKey:128},armor:{multipartSection:0,multipartLast:1,signed:2,message:3,publicKey:4,privateKey:5,signature:6},reasonForRevocation:{noReason:0,keySuperseded:1,keyCompromised:2,keyRetired:3,userIDInvalid:32},features:{modificationDetection:1,aead:2,v5Keys:4,seipdv2:8},write:function(e,t){if("number"==typeof t&&(t=this.read(e,t)),void 0!==e[t])return e[t];throw new Error("Invalid enum value.")},read:function(e,t){if(e[R]||(e[R]=[],Object.entries(e).forEach(([t,r])=>{e[R][r]=t})),void 0!==e[R][t])return e[R][t];throw new Error("Invalid enum value.")}},N={preferredHashAlgorithm:Q.hash.sha512,preferredSymmetricAlgorithm:Q.symmetric.aes256,preferredCompressionAlgorithm:Q.compression.uncompressed,aeadProtect:!1,parseAEADEncryptedV4KeysAsLegacy:!1,preferredAEADAlgorithm:Q.aead.gcm,aeadChunkSizeByte:12,v6Keys:!1,enableParsingV5Entities:!1,s2kType:Q.s2k.iterated,s2kIterationCountByte:224,s2kArgon2Params:{passes:3,parallelism:4,memoryExponent:16},allowUnauthenticatedMessages:!1,allowUnauthenticatedStream:!1,minRSABits:2047,passwordCollisionCheck:!1,allowInsecureDecryptionWithSigningKeys:!1,allowInsecureVerificationWithReformattedKeys:!1,allowMissingKeyFlags:!1,constantTimePKCS1Decryption:!1,constantTimePKCS1DecryptionSupportedSymmetricAlgorithms:new Set([Q.symmetric.aes128,Q.symmetric.aes192,Q.symmetric.aes256]),ignoreUnsupportedPackets:!0,ignoreMalformedPackets:!1,enforceGrammar:!0,additionalAllowedPackets:[],showVersion:!1,showComment:!1,versionString:"OpenPGP.js 6.3.0",commentString:"https://openpgpjs.org",maxUserIDLength:5120,maxDecompressedMessageSize:1/0,knownNotations:[],nonDeterministicSignaturesViaNotation:!0,useEllipticFallback:!0,rejectHashAlgorithms:new Set([Q.hash.md5,Q.hash.ripemd]),rejectMessageHashAlgorithms:new Set([Q.hash.md5,Q.hash.ripemd,Q.hash.sha1]),rejectPublicKeyAlgorithms:new Set([Q.publicKey.elgamal,Q.publicKey.dsa]),rejectCurves:new Set([Q.curve.secp256k1])};const O=(()=>{try{return!1}catch{}return!1})(),L={isString:function(e){return"string"==typeof e||e instanceof String},nodeRequire:()=>{},isArray:function(e){return e instanceof Array},isUint8Array:f,isStream:h,getNobleCurve:async(e,t)=>{if(!N.useEllipticFallback)throw new Error("This curve is only supported in the full build of OpenPGP.js");const{nobleCurves:r}=await Promise.resolve().then(function(){return ph});switch(e){case Q.publicKey.ecdh:case Q.publicKey.ecdsa:{const e=r.get(t);if(!e)throw new Error("Unsupported curve");return e}case Q.publicKey.x448:return r.get("x448");case Q.publicKey.ed448:return r.get("ed448");default:throw new Error("Unsupported curve")}},readNumber:function(e){let t=0;for(let r=0;r>8*(t-n-1)&255;return r},readDate:function(e){const t=L.readNumber(e);return new Date(1e3*t)},writeDate:function(e){const t=Math.floor(e.getTime()/1e3);return L.writeNumber(t,4)},normalizeDate:function(e=Date.now()){return null===e||e===1/0?e:new Date(1e3*Math.floor(+e/1e3))},readMPI:function(e){const t=7+(e[0]<<8|e[1])>>>3;return L.readExactSubarray(e,2,2+t)},readExactSubarray:function(e,t,r){if(e.lengtht)throw new Error("Input array too long");const r=new Uint8Array(t),n=t-e.length;return r.set(e,n),r},uint8ArrayToMPI:function(e){const t=L.uint8ArrayBitLength(e);if(0===t)throw new Error("Zero MPI");const r=e.subarray(e.length-Math.ceil(t/8)),n=new Uint8Array([(65280&t)>>8,255&t]);return L.concatUint8Array([n,r])},uint8ArrayBitLength:function(e){let t;for(t=0;t>1);for(let r=0;r>1;r++)t[r]=parseInt(e.substr(r<<1,2),16);return t},uint8ArrayToHex:function(e){const t="0123456789abcdef";let r="";return e.forEach(e=>{r+=t[e>>4]+t[15&e]}),r},stringToUint8Array:function(e){return v(e,e=>{if(!L.isString(e))throw new Error("stringToUint8Array: Data must be in the form of a string");const t=new Uint8Array(e.length);for(let r=0;rr("",!0))},decodeUTF8:function(e){const t=new TextDecoder("utf-8");function r(e,r=!1){return t.decode(e,{stream:!r})}return v(e,r,()=>r(new Uint8Array,!0))},concat:w,concatUint8Array:A,equalsUint8Array:function(e,t){if(!L.isUint8Array(e)||!L.isUint8Array(t))throw new Error("Data must be in the form of a Uint8Array");if(e.length!==t.length)return!1;for(let r=0;r=0;r--)if(t(e[r],r,e))return r;return-1},writeChecksum:function(e){let t=0;for(let r=0;r>>16;return 0!==r&&(e=r,t+=16),r=e>>8,0!==r&&(e=r,t+=8),r=e>>4,0!==r&&(e=r,t+=4),r=e>>2,0!==r&&(e=r,t+=2),r=e>>1,0!==r&&(e=r,t+=1),t},double:function(e){const t=new Uint8Array(e.length),r=e.length-1;for(let n=0;n>7;return t[r]=e[r]<<1^135*(e[0]>>7),t},shiftRight:function(e,t){if(t)for(let r=e.length-1;r>=0;r--)e[r]>>=t,r>0&&(e[r]|=e[r-1]<<8-t);return e},getWebCrypto:function(){const e=void 0!==n&&n.crypto&&n.crypto.subtle||this.getNodeCrypto()?.webcrypto.subtle;if(!e)throw new Error("The WebCrypto API is not available");return e},getNodeCrypto:function(){return this.nodeRequire("crypto")},getNodeZlib:function(){return this.nodeRequire("zlib")},getNodeBuffer:function(){return(this.nodeRequire("buffer")||{}).Buffer},getHardwareConcurrency:function(){return"undefined"!=typeof navigator?navigator.hardwareConcurrency||1:this.nodeRequire("os").cpus().length},isEmailAddress:function(e){return!!L.isString(e)&&/^[^\p{C}\p{Z}@<>\\]+@[^\p{C}\p{Z}@<>\\]+[^\p{C}\p{Z}\p{P}]$/u.test(e)},canonicalizeEOL:function(e){let t=!1;return v(e,e=>{let r;t&&(e=L.concatUint8Array([new Uint8Array([13]),e])),13===e[e.length-1]?(t=!0,e=e.subarray(0,-1)):t=!1;const n=[];for(let t=0;r=e.indexOf(10,t)+1,r;t=r)13!==e[r-2]&&n.push(r);if(!n.length)return e;const i=new Uint8Array(e.length+n.length);let s=0;for(let t=0;tt?new Uint8Array([13]):void 0)},nativeEOL:function(e){let t=!1;return v(e,e=>{let r;13===(e=t&&10!==e[0]?L.concatUint8Array([new Uint8Array([13]),e]):new Uint8Array(e))[e.length-1]?(t=!0,e=e.subarray(0,-1)):t=!1;let n=0;for(let t=0;t!==e.length;t=r){r=e.indexOf(13,t)+1,r||(r=e.length);const i=r-(10===e[r]?1:0);t&&e.copyWithin(n,t,i),n+=i-t}return e.subarray(0,n)},()=>t?new Uint8Array([13]):void 0)},removeTrailingSpaces:function(e){return e.split("\n").map(e=>{let t=e.length-1;for(;t>=0&&(" "===e[t]||"\t"===e[t]||"\r"===e[t]);t--);return e.substr(0,t+1)}).join("\n")},wrapError:function(e,t){if(!t)return e instanceof Error?e:new Error(e);if(e instanceof Error){try{e.message+=": "+t.message,e.cause=t}catch{}return e}return new Error(e+": "+t.message,{cause:t})},constructAllowedPackets:function(e){const t={};return e.forEach(e=>{if(!e.tag)throw new Error("Invalid input: expected a packet class");t[e.tag]=e}),t},anyPromise:function(e){return new Promise((t,r)=>{let n;Promise.all(e.map(async e=>{try{t(await e)}catch(e){n=e}})).then(()=>{r(n)})})},selectUint8Array:function(e,t,r){const n=Math.max(t.length,r.length),i=new Uint8Array(n);let s=0;for(let n=0;n{t=L.concatUint8Array([t,e]);const r=[],n=Math.floor(t.length/45),i=45*n,s=H(t.subarray(0,i));for(let e=0;et.length?H(t)+"\n":"")}function Y(e){let t="";return v(e,e=>{t+=e;let r=0;const n=[" ","\t","\r","\n"];for(let e=0;e0&&(i-r)%4!=0;i--)n.includes(t[i])&&r--;const s=j(t.substr(0,i));return t=t.substr(i),s},()=>j(t))}function J(e){return Y(e.replace(/-/g,"+").replace(/_/g,"/"))}function _(e,t){let r=W(e).replace(/[\r\n]/g,"");return r=r.replace(/[+]/g,"-").replace(/[/]/g,"_").replace(/[=]/g,""),r}function q(e){const t=e.match(/^-----BEGIN PGP (MESSAGE, PART \d+\/\d+|MESSAGE, PART \d+|SIGNED MESSAGE|MESSAGE|PUBLIC KEY BLOCK|PRIVATE KEY BLOCK|SIGNATURE)-----$/m);if(!t)throw new Error("Unknown ASCII armor type");return/MESSAGE, PART \d+\/\d+/.test(t[1])?Q.armor.multipartSection:/MESSAGE, PART \d+/.test(t[1])?Q.armor.multipartLast:/SIGNED MESSAGE/.test(t[1])?Q.armor.signed:/MESSAGE/.test(t[1])?Q.armor.message:/PUBLIC KEY BLOCK/.test(t[1])?Q.armor.publicKey:/PRIVATE KEY BLOCK/.test(t[1])?Q.armor.privateKey:/SIGNATURE/.test(t[1])?Q.armor.signature:void 0}function Z(e,t){let r="";return t.showVersion&&(r+="Version: "+t.versionString+"\n"),t.showComment&&(r+="Comment: "+t.commentString+"\n"),e&&(r+="Comment: "+e+"\n"),r+="\n",r}function V(e){const t=function(e){let t=13501623;return v(e,e=>{const r=X?Math.floor(e.length/4):0,n=new Uint32Array(e.buffer,e.byteOffset,r);for(let e=0;e>24&255]^z[1][t>>16&255]^z[2][t>>8&255]^z[3][255&t];for(let n=4*r;n>8^z[0][255&t^e[n]]},()=>new Uint8Array([t,t>>8,t>>16]))}(e);return W(t)}G?(H=e=>G.from(e).toString("base64"),j=e=>{const t=G.from(e,"base64");return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}):(H=e=>btoa(L.uint8ArrayToString(e)),j=e=>L.stringToUint8Array(atob(e)));const z=[new Array(255),new Array(255),new Array(255),new Array(255)];for(let e=0;e<=255;e++){let t=e<<16;for(let e=0;e<8;e++)t=t<<1^(8388608&t?8801531:0);z[0][e]=(16711680&t)>>16|65280&t|(255&t)<<16}for(let e=0;e<=255;e++)z[1][e]=z[0][e]>>8^z[0][255&z[0][e]];for(let e=0;e<=255;e++)z[2][e]=z[1][e]>>8^z[0][255&z[1][e]];for(let e=0;e<=255;e++)z[3][e]=z[2][e]>>8^z[0][255&z[2][e]];const X=function(){const e=new ArrayBuffer(2);return new DataView(e).setInt16(0,255,!0),255===new Int16Array(e)[0]}();function $(e){for(let t=0;t=0&&r!==e.length-1&&(t=e.slice(0,r)),t}function te(e){return new Promise((t,r)=>{try{const n=/^-----[^-]+-----$/m,i=/^[ \f\r\t\u00a0\u2000-\u200a\u202f\u205f\u3000]*$/;let s;const a=[];let o,c,l=a,u=[];const h=Y(B(e,async(e,f)=>{const A=F(e);try{for(;;){let e=await A.readLine();if(void 0===e)throw new Error("Misformed armored text");if(e=L.removeTrailingSpaces(e.replace(/[\r\n]/g,"")),s)if(o)c||s!==Q.armor.signed||(n.test(e)?(u=u.join("\r\n"),c=!0,$(l),l=[],o=!1):u.push(e.replace(/^- /,"")));else if(n.test(e)&&r(new Error("Mandatory blank line missing between armor headers and armor data")),i.test(e)){if($(l),o=!0,c||s!==Q.armor.signed){t({text:u,data:h,headers:a,type:s});break}}else l.push(e);else n.test(e)&&(s=q(e))}}catch(e){return void r(e)}const d=M(f);try{for(;;){await d.ready;const{done:e,value:t}=await A.read();if(e)throw new Error("Misformed armored text");const r=t+"";if(-1!==r.indexOf("=")||-1!==r.indexOf("-")){let e=await A.readToEnd();e.length||(e=""),e=r+e,e=L.removeTrailingSpaces(e.replace(/\r/g,""));const t=e.split(n);if(1===t.length)throw new Error("Misformed armored text");const i=ee(t[0].slice(0,-1));await d.write(i);break}await d.write(r)}await d.ready,await d.close()}catch(e){await d.abort(e)}}))}catch(e){r(e)}}).then(async e=>(l(e.data)&&(e.data=await P(e.data)),e))}function re(e,t,r,n,i,s=!1,a=N){let o,c;e===Q.armor.signed&&(o=t.text,c=t.hash,t=t.data);const l=s&&D(t),u=[];switch(e){case Q.armor.multipartSection:u.push("-----BEGIN PGP MESSAGE, PART "+r+"/"+n+"-----\n"),u.push(Z(i,a)),u.push(W(t)),l&&u.push("=",V(l)),u.push("-----END PGP MESSAGE, PART "+r+"/"+n+"-----\n");break;case Q.armor.multipartLast:u.push("-----BEGIN PGP MESSAGE, PART "+r+"-----\n"),u.push(Z(i,a)),u.push(W(t)),l&&u.push("=",V(l)),u.push("-----END PGP MESSAGE, PART "+r+"-----\n");break;case Q.armor.signed:u.push("-----BEGIN PGP SIGNED MESSAGE-----\n"),u.push(c?`Hash: ${c}\n\n`:"\n"),u.push(o.replace(/^-/gm,"- -")),u.push("\n-----BEGIN PGP SIGNATURE-----\n"),u.push(Z(i,a)),u.push(W(t)),l&&u.push("=",V(l)),u.push("-----END PGP SIGNATURE-----\n");break;case Q.armor.message:u.push("-----BEGIN PGP MESSAGE-----\n"),u.push(Z(i,a)),u.push(W(t)),l&&u.push("=",V(l)),u.push("-----END PGP MESSAGE-----\n");break;case Q.armor.publicKey:u.push("-----BEGIN PGP PUBLIC KEY BLOCK-----\n"),u.push(Z(i,a)),u.push(W(t)),l&&u.push("=",V(l)),u.push("-----END PGP PUBLIC KEY BLOCK-----\n");break;case Q.armor.privateKey:u.push("-----BEGIN PGP PRIVATE KEY BLOCK-----\n"),u.push(Z(i,a)),u.push(W(t)),l&&u.push("=",V(l)),u.push("-----END PGP PRIVATE KEY BLOCK-----\n");break;case Q.armor.signature:u.push("-----BEGIN PGP SIGNATURE-----\n"),u.push(Z(i,a)),u.push(W(t)),l&&u.push("=",V(l)),u.push("-----END PGP SIGNATURE-----\n")}return L.concat(u)}const ne=BigInt(0),ie=BigInt(1);function se(e){const t="0123456789ABCDEF";let r="";return e.forEach(e=>{r+=t[e>>4]+t[15&e]}),BigInt("0x0"+r)}function ae(e,t){const r=e%t;return rne;){const e=n&ie;n>>=ie,s=e?s*i%r:s,i=i*i%r}return s}function ce(e){return e>=ne?e:-e}function le(e,t){const{gcd:r,x:n}=function(e,t){let r=BigInt(0),n=BigInt(1),i=BigInt(1),s=BigInt(0),a=ce(e),o=ce(t);const c=eNumber.MAX_SAFE_INTEGER)throw new Error("Number can only safely store up to 53 bits");return t}function he(e,t){return(e>>BigInt(t)&ie)===ne?0:1}function fe(e){const t=e>=ie)!==t;)r++;return r}function Ae(e){const t=e>=r)!==t;)n++;return n}function de(e,t="be",r){let n=e.toString(16);n.length%2==1&&(n="0"+n);const i=n.length/2,s=new Uint8Array(r||i),a=r?r-i:0;let o=0;for(;oe&&(a=ae(a,i<ae(e,r)!==t)}(e)||!function(e,t=BigInt(2)){return oe(t,e-me,e)===me}(e)||!function(e,t){const r=fe(e);t||(t=Math.max(1,r/48|0));const n=e-me;let i=0;for(;!he(n,i);)i++;const s=e>>BigInt(i);for(;t>0;t--){let t,r=oe(ye(BigInt(2),n),s,e);if(r!==me&&r!==n){for(t=1;tBigInt(e)),ve=L.getWebCrypto(),ke=L.getNodeCrypto(),Ie=ke&&ke.getHashes();function Be(e){if(ke&&Ie.includes(e))return async function(t){const r=ke.createHash(e);return v(t,e=>{r.update(e)},()=>new Uint8Array(r.digest()))}}function Ce(e,t){const r=async()=>{const{nobleHashes:t}=await Promise.resolve().then(function(){return jh}),r=t.get(e);if(!r)throw new Error("Unsupported hash");return r};return async function(e){if(l(e)&&(e=await P(e)),L.isStream(e)){const t=(await r()).create();return v(e,e=>{t.update(e)},()=>t.digest())}return ve&&t?new Uint8Array(await ve.digest(t,e)):(await r())(e)}}const Se=Be("md5")||Ce("md5"),De=Be("sha1")||Ce("sha1","SHA-1"),xe=Be("sha224")||Ce("sha224"),Ke=Be("sha256")||Ce("sha256","SHA-256"),Pe=Be("sha384")||Ce("sha384","SHA-384"),Ue=Be("sha512")||Ce("sha512","SHA-512"),Te=Be("ripemd160")||Ce("ripemd160"),Fe=Be("sha3-256")||Ce("sha3_256"),Me=Be("sha3-512")||Ce("sha3_512");function Re(e,t){switch(e){case Q.hash.md5:return Se(t);case Q.hash.sha1:return De(t);case Q.hash.ripemd:return Te(t);case Q.hash.sha256:return Ke(t);case Q.hash.sha384:return Pe(t);case Q.hash.sha512:return Ue(t);case Q.hash.sha224:return xe(t);case Q.hash.sha3_256:return Fe(t);case Q.hash.sha3_512:return Me(t);default:throw new Error("Unsupported hash function")}}function Qe(e){switch(e){case Q.hash.md5:return 16;case Q.hash.sha1:case Q.hash.ripemd:return 20;case Q.hash.sha256:return 32;case Q.hash.sha384:return 48;case Q.hash.sha512:return 64;case Q.hash.sha224:return 28;case Q.hash.sha3_256:return 32;case Q.hash.sha3_512:return 64;default:throw new Error("Invalid hash algorithm.")}}const Ne=[];function Oe(e,t){const r=e.length;if(r>t-11)throw new Error("Message too long");const n=function(e){const t=new Uint8Array(e);let r=0;for(;r=8&!n;if(t)return L.selectUint8Array(a,s,t);if(a)return s;throw new Error("Decryption error")}function Ge(e,t,r){let n;if(t.length!==Qe(e))throw new Error("Invalid hash length");const i=new Uint8Array(Ne[e].length);for(n=0;n=r.length)throw new Error("Digest size cannot exceed key modulus size");if(t&&!L.isStream(t))if(L.getWebCrypto())try{return await async function(e,t,r,n,i,s,a,o){const c=_e(r,n,i,s,a,o),l={name:"RSASSA-PKCS1-v1_5",hash:{name:e}},u=await He.importKey("jwk",c,l,!1,["sign"]);return new Uint8Array(await He.sign("RSASSA-PKCS1-v1_5",u,t))}(Q.read(Q.webHash,e),t,r,n,i,s,a,o)}catch(e){L.printDebugError(e)}else if(L.getNodeCrypto())return function(e,t,r,n,i,s,a,o){const c=je.createSign(Q.read(Q.hash,e));c.write(t),c.end();const l=_e(r,n,i,s,a,o);return new Uint8Array(c.sign({key:l,format:"jwk",type:"pkcs1"}))}(e,t,r,n,i,s,a,o);return function(e,t,r,n){t=se(t);return de(oe(se(Ge(e,n,Ae(t))),r=se(r),t),"be",Ae(t))}(e,r,i,c)}async function Je(e,t,r){return L.getNodeCrypto()?function(e,t,r){const n={key:qe(t,r),format:"jwk",type:"pkcs1",padding:je.constants.RSA_PKCS1_PADDING};return new Uint8Array(je.publicEncrypt(n,e))}(e,t,r):function(e,t,r){if(t=se(t),e=se(Oe(e,Ae(t))),r=se(r),e>=t)throw new Error("Message size cannot exceed modulus size");return de(oe(e,r,t),"be",Ae(t))}(e,t,r)}function _e(e,t,r,n,i,s){const a=se(n),o=se(i),c=se(r);let l=ae(c,o-We),u=ae(c,a-We);return u=de(u),l=de(l),{kty:"RSA",n:_(e),e:_(t),d:_(r),p:_(i),q:_(n),dp:_(l),dq:_(u),qi:_(s),ext:!0}}function qe(e,t){return{kty:"RSA",n:_(e),e:_(t),ext:!0}}function Ze(e,t){return{n:J(e.n),e:de(t),d:J(e.d),p:J(e.q),q:J(e.p),u:J(e.qi)}}const Ve=BigInt(1),ze={"2a8648ce3d030107":Q.curve.nistP256,"2b81040022":Q.curve.nistP384,"2b81040023":Q.curve.nistP521,"2b8104000a":Q.curve.secp256k1,"2b06010401da470f01":Q.curve.ed25519Legacy,"2b060104019755010501":Q.curve.curve25519Legacy,"2b2403030208010107":Q.curve.brainpoolP256r1,"2b240303020801010b":Q.curve.brainpoolP384r1,"2b240303020801010d":Q.curve.brainpoolP512r1};class Xe{constructor(e){if(e instanceof Xe)this.oid=e.oid;else if(L.isArray(e)||L.isUint8Array(e)){if(6===(e=new Uint8Array(e))[0]){if(e[1]!==e.length-2)throw new Error("Length mismatch in DER encoded oid");e=e.subarray(2)}this.oid=e}else this.oid=""}read(e){if(e.length>=1){const t=e[0];if(e.length>=1+t)return this.oid=e.subarray(1,1+t),1+this.oid.length}throw new Error("Invalid oid")}write(){return L.concatUint8Array([new Uint8Array([this.oid.length]),this.oid])}toHex(){return L.uint8ArrayToHex(this.oid)}getName(){const e=ze[this.toHex()];if(!e)throw new Error("Unknown curve object identifier.");return e}}function $e(e){let t,r=0;const n=e[0];return n<192?([r]=e,t=1):n<255?(r=(e[0]-192<<8)+e[1]+192,t=2):255===n&&(r=L.readNumber(e.subarray(1,5)),t=5),{len:r,offset:t}}function et(e){return e<192?new Uint8Array([e]):e>191&&e<8384?new Uint8Array([192+(e-192>>8),e-192&255]):L.concatUint8Array([new Uint8Array([255]),L.writeNumber(e,4)])}function tt(e){if(e<0||e>30)throw new Error("Partial Length power must be between 1 and 30");return new Uint8Array([224+e])}function rt(e){return new Uint8Array([192|e])}function nt(e,t){return L.concatUint8Array([rt(e),et(t)])}function it(e){return[Q.packet.literalData,Q.packet.compressedData,Q.packet.symmetricallyEncryptedData,Q.packet.symEncryptedIntegrityProtectedData,Q.packet.aeadEncryptedData].includes(e)}async function st(e,t,r){let n,i;try{const s=await e.peekBytes(2);if(!s||s.length<2||!(128&s[0]))throw new Error("Error during parsing. This message / key probably does not conform to a valid OpenPGP format.");const a=await e.readByte();let o,l,u=-1,h=-1;h=0,64&a&&(h=1),h?u=63&a:(u=(63&a)>>2,l=3&a);const f=it(u);let A,d=null;if(t&&f){if("array"===t){const e=new c;n=M(e),d=e}else{const e=new TransformStream;n=M(e.writable),d=e.readable}i=r({tag:u,packet:d})}else d=[];do{if(h){const t=await e.readByte();if(A=!1,t<192)o=t;else if(t>=192&&t<224)o=(t-192<<8)+await e.readByte()+192;else if(t>223&&t<255){if(o=1<<(31&t),A=!0,!f)throw new TypeError("This packet type does not support partial lengths.")}else o=await e.readByte()<<24|await e.readByte()<<16|await e.readByte()<<8|await e.readByte()}else switch(l){case 0:o=await e.readByte();break;case 1:o=await e.readByte()<<8|await e.readByte();break;case 2:o=await e.readByte()<<24|await e.readByte()<<16|await e.readByte()<<8|await e.readByte();break;default:o=1/0}if(o>0){let t=0;for(;;){n&&await n.ready;const{done:r,value:i}=await e.read();if(r){if(o===1/0)break;throw new Error("Unexpected end of packet")}const s=o===1/0?i:i.subarray(0,o-t);if(n?await n.write(s):d.push(s),t+=i.length,t>=o){e.unshift(i.subarray(o-t+i.length));break}}}}while(A);n?(await n.ready,await n.close()):(d=L.concatUint8Array(d),await r({tag:u,packet:d}))}catch(e){if(n)return await n.abort(e),!0;throw e}finally{n&&await i}}class at extends Error{constructor(...e){super(...e),Error.captureStackTrace&&Error.captureStackTrace(this,at),this.name="UnsupportedError"}}class ot extends at{constructor(...e){super(...e),Error.captureStackTrace&&Error.captureStackTrace(this,at),this.name="UnknownPacketError"}}class ct extends at{constructor(...e){super(...e),Error.captureStackTrace&&Error.captureStackTrace(this,at),this.name="MalformedPacketError"}}class lt{constructor(e,t){this.tag=e,this.rawContent=t}write(){return this.rawContent}}async function ut(e){switch(e){case Q.publicKey.ed25519:try{const e=L.getWebCrypto(),t=await e.generateKey("Ed25519",!0,["sign","verify"]).catch(e=>{if("OperationError"===e.name){const e=new Error("Unexpected key generation issue");throw e.name="NotSupportedError",e}throw e}),r=await e.exportKey("jwk",t.privateKey),n=await e.exportKey("jwk",t.publicKey);return{A:new Uint8Array(J(n.x)),seed:J(r.d)}}catch(t){if("NotSupportedError"!==t.name)throw t;const{default:r}=await Promise.resolve().then(function(){return Ff}),n=ge(dt(e)),{publicKey:i}=r.sign.keyPair.fromSeed(n);return{A:i,seed:n}}case Q.publicKey.ed448:{const e=await L.getNobleCurve(Q.publicKey.ed448),{secretKey:t,publicKey:r}=e.keygen();return{A:r,seed:t}}default:throw new Error("Unsupported EdDSA algorithm")}}async function ht(e,t,r,n,i,s){if(Qe(t){if(e===Q.publicKey.ed25519)return{kty:"OKP",crv:"Ed25519",x:_(t),ext:!0};throw new Error("Unsupported EdDSA algorithm")},yt=(e,t,r)=>{if(e===Q.publicKey.ed25519){const n=gt(e,t);return n.d=_(r),n}throw new Error("Unsupported EdDSA algorithm")};var mt=Object.freeze({__proto__:null,generate:ut,getPayloadSize:dt,getPreferredHashAlgo:pt,sign:ht,validateParams:At,verify:ft});function wt(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function bt(e,...t){if(!wt(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function Et(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function vt(e,t){bt(e);const r=t.outputLen;if(e.length68===new Uint8Array(new Uint32Array([287454020]).buffer)[0])();function Dt(e){if("string"==typeof e)e=function(e){if("string"!=typeof e)throw new Error("string expected");return new Uint8Array((new TextEncoder).encode(e))}(e);else{if(!wt(e))throw new Error("Uint8Array expected, got "+typeof e);e=Rt(e)}return e}function xt(e,t){return e.buffer===t.buffer&&e.byteOffset{function r(r,...n){if(bt(r),!St)throw new Error("Non little-endian hardware is not yet supported");if(void 0!==e.nonceLength){const t=n[0];if(!t)throw new Error("nonce / iv required");e.varSizeNonce?bt(t):bt(t,e.nonceLength)}const i=e.tagLength;i&&void 0!==n[1]&&bt(n[1]);const s=t(r,...n),a=(e,t)=>{if(void 0!==t){if(2!==e)throw new Error("cipher output not supported");bt(t)}};let o=!1;return{encrypt(e,t){if(o)throw new Error("cannot encrypt() twice with same key + nonce");return o=!0,bt(e),a(s.encrypt.length,t),s.encrypt(e,t)},decrypt(e,t){if(bt(e),i&&e.length>i&s),o=Number(r&s);e.setUint32(t+0,a,n),e.setUint32(t+4,o,n)}function Mt(e){return e.byteOffset%4==0}function Rt(e){return Uint8Array.from(e)}const Qt=16,Nt=new Uint8Array(16),Ot=It(Nt),Lt=(e,t,r,n)=>({s3:r<<31|n>>>1,s2:t<<31|r>>>1,s1:e<<31|t>>>1,s0:e>>>1^225<<24&-(1&n)}),Gt=e=>(e>>>0&255)<<24|(e>>>8&255)<<16|(e>>>16&255)<<8|e>>>24&255;class Ht{constructor(e,t){this.blockLen=Qt,this.outputLen=Qt,this.s0=0,this.s1=0,this.s2=0,this.s3=0,this.finished=!1,bt(e=Dt(e),16);const r=Ct(e);let n=r.getUint32(0,!1),i=r.getUint32(4,!1),s=r.getUint32(8,!1),a=r.getUint32(12,!1);const o=[];for(let e=0;e<128;e++)o.push({s0:Gt(n),s1:Gt(i),s2:Gt(s),s3:Gt(a)}),({s0:n,s1:i,s2:s,s3:a}=Lt(n,i,s,a));const c=(l=t||1024)>65536?8:l>1024?4:2;var l;if(![1,2,4,8].includes(c))throw new Error("ghash: invalid window size, expected 2, 4 or 8");this.W=c;const u=128/c,h=this.windowSize=2**c,f=[];for(let e=0;e>>c-a-1&1))continue;const{s0:l,s1:u,s2:h,s3:f}=o[c*e+a];r^=l,n^=u,i^=h,s^=f}f.push({s0:r,s1:n,s2:i,s3:s})}this.t=f}_updateBlock(e,t,r,n){e^=this.s0,t^=this.s1,r^=this.s2,n^=this.s3;const{W:i,t:s,windowSize:a}=this;let o=0,c=0,l=0,u=0;const h=(1<>>8*e&255;for(let e=8/i-1;e>=0;e--){const r=t>>>i*e&h,{s0:n,s1:A,s2:d,s3:p}=s[f*a+r];o^=n,c^=A,l^=d,u^=p,f+=1}}this.s0=o,this.s1=c,this.s2=l,this.s3=u}update(e){Et(this),bt(e=Dt(e));const t=It(e),r=Math.floor(e.length/Qt),n=e.length%Qt;for(let e=0;e>>1|r,r=(1&n)<<7}return e[0]^=225&-t,e}(Rt(e));super(r,t),Bt(r)}update(e){e=Dt(e),Et(this);const t=It(e),r=e.length%Qt,n=Math.floor(e.length/Qt);for(let e=0;ee(r,t.length).update(Dt(t)).digest(),r=e(new Uint8Array(16),0);return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=(t,r)=>e(t,r),t}const Yt=Wt((e,t)=>new Ht(e,t));Wt((e,t)=>new jt(e,t));const Jt=16,_t=new Uint8Array(Jt);function qt(e){return e<<1^283&-(e>>7)}function Zt(e,t){let r=0;for(;t>0;t>>=1)r^=e&-(1&t),e=qt(e);return r}const Vt=(()=>{const e=new Uint8Array(256);for(let t=0,r=1;t<256;t++,r^=qt(r))e[t]=r;const t=new Uint8Array(256);t[0]=99;for(let r=0;r<255;r++){let n=e[255-r];n|=n<<8,t[e[r]]=255&(n^n>>4^n>>5^n>>6^n>>7^99)}return Bt(e),t})(),zt=Vt.map((e,t)=>Vt.indexOf(t)),Xt=e=>e<<24|e>>>8,$t=e=>e<<8|e>>>24,er=e=>e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255;function tr(e,t){if(256!==e.length)throw new Error("Wrong sbox length");const r=new Uint32Array(256).map((r,n)=>t(e[n])),n=r.map($t),i=n.map($t),s=i.map($t),a=new Uint32Array(65536),o=new Uint32Array(65536),c=new Uint16Array(65536);for(let t=0;t<256;t++)for(let l=0;l<256;l++){const u=256*t+l;a[u]=r[t]^n[l],o[u]=i[t]^s[l],c[u]=e[t]<<8|e[l]}return{sbox:e,sbox2:c,T0:r,T1:n,T2:i,T3:s,T01:a,T23:o}}const rr=tr(Vt,e=>Zt(e,3)<<24|e<<16|e<<8|Zt(e,2)),nr=tr(zt,e=>Zt(e,11)<<24|Zt(e,13)<<16|Zt(e,9)<<8|Zt(e,14)),ir=(()=>{const e=new Uint8Array(16);for(let t=0,r=1;t<16;t++,r=qt(r))e[t]=r;return e})();function sr(e){bt(e);const t=e.length;if(![16,24,32].includes(t))throw new Error("aes: invalid key size, should be 16, 24 or 32, got "+t);const{sbox2:r}=rr,n=[];Mt(e)||n.push(e=Rt(e));const i=It(e),s=i.length,a=e=>cr(r,e,e,e,e),o=new Uint32Array(t+28);o.set(i);for(let e=s;e6&&e%s===4&&(t=a(t)),o[e]=o[e-s]^t}return Bt(...n),o}function ar(e){const t=sr(e),r=t.slice(),n=t.length,{sbox2:i}=rr,{T0:s,T1:a,T2:o,T3:c}=nr;for(let e=0;e>>8&255]^o[n>>>16&255]^c[n>>>24]}return r}function or(e,t,r,n,i,s){return e[r<<8&65280|n>>>8&255]^t[i>>>8&65280|s>>>24&255]}function cr(e,t,r,n,i){return e[255&t|65280&r]|e[n>>>16&255|i>>>16&65280]<<16}function lr(e,t,r,n,i){const{sbox2:s,T01:a,T23:o}=rr;let c=0;t^=e[c++],r^=e[c++],n^=e[c++],i^=e[c++];const l=e.length/4-2;for(let s=0;s=0;e--)r=r+(255&s[e])|0,s[e]=255&r,r>>>=8;({s0:o,s1:c,s2:l,s3:u}=lr(e,a[0],a[1],a[2],a[3]))}const A=Jt*Math.floor(h.length/4);if(A>>0,o.setUint32(u,f,t),({s0:A,s1:d,s2:p,s3:g}=lr(e,a[0],a[1],a[2],a[3]));const y=Jt*Math.floor(c.length/4);if(yr(e,t),decrypt:(e,t)=>r(e,t)}}),dr=Ut({blockSize:16,nonceLength:16},function(e,t,r={}){const n=!r.disablePadding;return{encrypt(r,i){const s=sr(e),{b:a,o,out:c}=function(e,t,r){bt(e);let n=e.length;const i=n%Jt;if(!t&&0!==i)throw new Error("aec/(cbc-ecb): unpadded plaintext with disabled padding");Mt(e)||(e=Rt(e));const s=It(e);if(t){let e=Jt-i;e||(e=Jt),n+=e}return Kt(e,r=Tt(n,r)),{b:s,o:It(r),out:r}}(r,n,i);let l=t;const u=[s];Mt(l)||u.push(l=Rt(l));const h=It(l);let f=h[0],A=h[1],d=h[2],p=h[3],g=0;for(;g+4<=a.length;)f^=a[g+0],A^=a[g+1],d^=a[g+2],p^=a[g+3],({s0:f,s1:A,s2:d,s3:p}=lr(s,f,A,d,p)),o[g++]=f,o[g++]=A,o[g++]=d,o[g++]=p;if(n){const e=function(e){const t=new Uint8Array(16),r=It(t);t.set(e);const n=Jt-e.length;for(let e=Jt-n;e16)throw new Error("aes/pcks5: wrong padding");const i=e.subarray(0,-n);for(let t=0;tr(e,!0,t),decrypt:(e,t)=>r(e,!1,t)}});const gr=Ut({blockSize:16,nonceLength:12,tagLength:16,varSizeNonce:!0},function(e,t,r){if(t.length<8)throw new Error("aes/gcm: invalid nonce length");function n(e,t,n){const i=function(e,t,r,n,i){const s=i?i.length:0,a=e.create(r,n.length+s);i&&a.update(i);const o=function(e,t,r){const n=new Uint8Array(16),i=Ct(n);return Ft(i,0,BigInt(t),r),Ft(i,8,BigInt(e),r),n}(8*n.length,8*s,t);a.update(n),a.update(o);const c=a.digest();return Bt(o),c}(Yt,!1,e,n,r);for(let e=0;e=2**32)throw new Error("plaintext should be less than 4gb");const r=sr(e);if(16===t.length)mr(r,t);else{const e=It(t);let n=e[0],i=e[1];for(let t=0,s=1;t<6;t++)for(let t=2;t=2**32)throw new Error("ciphertext should be less than 4gb");const r=ar(e),n=t.length/8-1;if(1===n)wr(r,t);else{const e=It(t);let i=e[0],s=e[1];for(let t=0,a=6*n;t<6;t++)for(let t=2*n;t>=1;t-=2,a--){s^=er(a);const{s0:n,s1:o,s2:c,s3:l}=ur(r,i,s,e[t],e[t+1]);i=n,s=o,e[t]=c,e[t+1]=l}e[0]=i,e[1]=s}r.fill(0)}},Er=new Uint8Array(8).fill(166),vr=Ut({blockSize:8},e=>({encrypt(t){if(!t.length||t.length%8!=0)throw new Error("invalid plaintext length");if(8===t.length)throw new Error("8-byte keys not allowed in AESKW, use AESKWP instead");const r=function(...e){let t=0;for(let r=0;r{if("OperationError"===e.name){const e=new Error("Unexpected key generation issue");throw e.name="NotSupportedError",e}throw e}),r=await e.exportKey("jwk",t.privateKey),n=await e.exportKey("jwk",t.publicKey);if(r.x!==n.x){const e=new Error("Unexpected mismatching public point");throw e.name="NotSupportedError",e}return{A:new Uint8Array(J(n.x)),k:J(r.d)}}catch(e){if("NotSupportedError"!==e.name)throw e;const{default:t}=await Promise.resolve().then(function(){return Ff}),{secretKey:r,publicKey:n}=t.box.keyPair();return{A:n,k:r}}case Q.publicKey.x448:{const e=await L.getNobleCurve(Q.publicKey.x448),{secretKey:t,publicKey:r}=e.keygen();return{A:r,k:t}}default:throw new Error("Unsupported ECDH algorithm")}}async function Fr(e,t,r){switch(e){case Q.publicKey.x25519:try{const{ephemeralPublicKey:n,sharedSecret:i}=await Nr(e,t),s=await Or(e,n,t,r);return L.equalsUint8Array(i,s)}catch{return!1}case Q.publicKey.x448:{const e=(await L.getNobleCurve(Q.publicKey.x448)).getPublicKey(r);return L.equalsUint8Array(t,e)}default:return!1}}async function Mr(e,t,r){const{ephemeralPublicKey:n,sharedSecret:i}=await Nr(e,r),s=L.concatUint8Array([n,r,i]);switch(e){case Q.publicKey.x25519:{const e=Q.symmetric.aes128,{keySize:r}=Sr(e),i=await Pr(Q.hash.sha256,s,new Uint8Array,Ur.x25519,r);return{ephemeralPublicKey:n,wrappedKey:await xr(e,i,t)}}case Q.publicKey.x448:{const e=Q.symmetric.aes256,{keySize:r}=Sr(Q.symmetric.aes256),i=await Pr(Q.hash.sha512,s,new Uint8Array,Ur.x448,r);return{ephemeralPublicKey:n,wrappedKey:await xr(e,i,t)}}default:throw new Error("Unsupported ECDH algorithm")}}async function Rr(e,t,r,n,i){const s=await Or(e,t,n,i),a=L.concatUint8Array([t,n,s]);switch(e){case Q.publicKey.x25519:{const e=Q.symmetric.aes128,{keySize:t}=Sr(e);return Kr(e,await Pr(Q.hash.sha256,a,new Uint8Array,Ur.x25519,t),r)}case Q.publicKey.x448:{const e=Q.symmetric.aes256,{keySize:t}=Sr(Q.symmetric.aes256);return Kr(e,await Pr(Q.hash.sha512,a,new Uint8Array,Ur.x448,t),r)}default:throw new Error("Unsupported ECDH algorithm")}}function Qr(e){switch(e){case Q.publicKey.x25519:return 32;case Q.publicKey.x448:return 56;default:throw new Error("Unsupported ECDH algorithm")}}async function Nr(e,t){switch(e){case Q.publicKey.x25519:try{const r=L.getWebCrypto(),n=await r.generateKey("X25519",!0,["deriveKey","deriveBits"]).catch(e=>{if("OperationError"===e.name){const e=new Error("Unexpected key generation issue");throw e.name="NotSupportedError",e}throw e}),i=await r.exportKey("jwk",n.publicKey);if((await r.exportKey("jwk",n.privateKey)).x!==i.x){const e=new Error("Unexpected mismatching public point");throw e.name="NotSupportedError",e}const s=Gr(e,t),a=await r.importKey("jwk",s,"X25519",!1,[]),o=await r.deriveBits({name:"X25519",public:a},n.privateKey,8*Qr(e));return{sharedSecret:new Uint8Array(o),ephemeralPublicKey:new Uint8Array(J(i.x))}}catch(e){if("NotSupportedError"!==e.name)throw e;const{default:r}=await Promise.resolve().then(function(){return Ff}),{secretKey:n,publicKey:i}=r.box.keyPair(),s=r.scalarMult(n,t);return Lr(s),{ephemeralPublicKey:i,sharedSecret:s}}case Q.publicKey.x448:{const e=await L.getNobleCurve(Q.publicKey.x448),{secretKey:r,publicKey:n}=e.keygen(),i=e.getSharedSecret(r,t);return Lr(i),{ephemeralPublicKey:n,sharedSecret:i}}default:throw new Error("Unsupported ECDH algorithm")}}async function Or(e,t,r,n){switch(e){case Q.publicKey.x25519:try{const i=L.getWebCrypto(),s=function(e,t,r){if(e===Q.publicKey.x25519){const n=Gr(e,t);return n.d=_(r),n}throw new Error("Unsupported ECDH algorithm")}(e,r,n),a=Gr(e,t),o=await i.importKey("jwk",s,"X25519",!1,["deriveKey","deriveBits"]),c=await i.importKey("jwk",a,"X25519",!1,[]),l=await i.deriveBits({name:"X25519",public:c},o,8*Qr(e));return new Uint8Array(l)}catch(e){if("NotSupportedError"!==e.name)throw e;const{default:r}=await Promise.resolve().then(function(){return Ff}),i=r.scalarMult(n,t);return Lr(i),i}case Q.publicKey.x448:{const e=(await L.getNobleCurve(Q.publicKey.x448)).getSharedSecret(n,t);return Lr(e),e}default:throw new Error("Unsupported ECDH algorithm")}}function Lr(e){let t=0;for(let r=0;r0===s[0]&&ln(a,r,s.subarray(1),i);if(n&&!L.isStream(n))switch(a.type){case"web":try{const e=await async function(e,t,{r,s:n},i,s){const a=rn(e.payloadSize,Yr[e.name],s),o=await sn.importKey("jwk",a,{name:"ECDSA",namedCurve:Yr[e.name],hash:{name:Q.read(Q.webHash,e.hash)}},!1,["verify"]),c=L.concatUint8Array([r,n]).buffer;return sn.verify({name:"ECDSA",namedCurve:Yr[e.name],hash:{name:Q.read(Q.webHash,t)}},o,c,i)}(a,t,r,n,i);return e||o()}catch(e){if("nistP521"!==a.name&&("DataError"===e.name||"OperationError"===e.name))throw e;L.printDebugError("Browser did not support verifying: "+e.message)}break;case"node":{const e=function(e,t,{r,s:n},i,s){const a=L.nodeRequire("eckey-utils"),o=L.getNodeBuffer(),{publicKey:c}=a.generateDer({curveName:_r[e.name],publicKey:o.from(s)}),l=an.createVerify(Q.read(Q.hash,t));l.write(i),l.end();const u=L.concatUint8Array([r,n]);try{return l.verify({key:c,format:"der",type:"spki",dsaEncoding:"ieee-p1363"},u)}catch{return!1}}(a,t,r,n,i);return e||o()}}return await ln(a,r,s,i)||o()}async function ln(e,t,r,n){return(await L.getNobleCurve(Q.publicKey.ecdsa,e.name)).verify(L.concatUint8Array([t.r,t.s]),r,n,{lowS:!1})}var un=Object.freeze({__proto__:null,sign:on,validateParams:async function(e,t,r){const n=new Zr(e);if(n.keyType!==Q.publicKey.ecdsa)return!1;switch(n.type){case"web":case"node":{const n=ge(8),i=Q.hash.sha256,s=await Re(i,n);try{const a=await on(e,i,n,t,r,s);return await cn(e,i,a,n,t,s)}catch{return!1}}default:return Xr(Q.publicKey.ecdsa,e,t,r)}},verify:cn});async function hn(e,t,r,n,i,s){if($r(new Zr(e),n),Qe(t)0){const r=e[t-1];if(r>=1){const n=e.subarray(t-r),i=new Uint8Array(r).fill(r);if(L.equalsUint8Array(n,i))return e.subarray(0,t-r)}}throw new Error("Invalid padding")}function gn(e,t,r,n){return L.concatUint8Array([t.write(),new Uint8Array([e]),r.write(),L.stringToUint8Array("Anonymous Sender "),n])}async function yn(e,t,r,n,i=!1,s=!1){let a;if(i){for(a=0;a=0&&0===t[a];a--);t=t.subarray(0,a+1)}return(await Re(e,L.concatUint8Array([new Uint8Array([0,0,0,1]),t,n]))).subarray(0,r)}async function mn(e,t,r,n,i){const s=function(e){const t=8-e.length%8,r=new Uint8Array(e.length+t).fill(t);return r.set(e),r}(r),a=new Zr(e);$r(a,n);const{publicKey:o,sharedKey:c}=await async function(e,t){switch(e.type){case"curve25519Legacy":{const{sharedSecret:r,ephemeralPublicKey:n}=await Nr(Q.publicKey.x25519,t.subarray(1));return{publicKey:L.concatUint8Array([new Uint8Array([e.wireFormatLeadingByte]),n]),sharedKey:r}}case"web":if(e.web&&L.getWebCrypto())try{return await async function(e,t){const r=L.getWebCrypto(),n=rn(e.payloadSize,e.web,t);let i=r.generateKey({name:"ECDH",namedCurve:e.web},!0,["deriveKey","deriveBits"]),s=r.importKey("jwk",n,{name:"ECDH",namedCurve:e.web},!1,[]);[i,s]=await Promise.all([i,s]);let a=r.deriveBits({name:"ECDH",namedCurve:e.web,public:s},i.privateKey,e.sharedSize),o=r.exportKey("jwk",i.publicKey);[a,o]=await Promise.all([a,o]);const c=new Uint8Array(a);return{publicKey:new Uint8Array(tn(o,e.wireFormatLeadingByte)),sharedKey:c}}(e,t)}catch(r){return L.printDebugError(r),En(e,t)}break;case"node":return function(e,t){const r=L.getNodeCrypto().createECDH(e.node);r.generateKeys();const n=new Uint8Array(r.computeSecret(t));return{publicKey:new Uint8Array(r.getPublicKey()),sharedKey:n}}(e,t);default:return En(e,t)}}(a,n),l=gn(Q.publicKey.ecdh,e,t,i),{keySize:u}=Sr(t.cipher),h=await yn(t.hash,c,u,l);return{publicKey:o,wrappedKey:await xr(t.cipher,h,s)}}async function wn(e,t,r,n,i,s,a){const o=new Zr(e);$r(o,i),$r(o,r);const{sharedKey:c}=await async function(e,t,r,n){if(n.length!==e.payloadSize){const t=new Uint8Array(e.payloadSize);t.set(n,e.payloadSize-n.length),n=t}switch(e.type){case"curve25519Legacy":{const e=n.slice().reverse();return{secretKey:e,sharedKey:await Or(Q.publicKey.x25519,t.subarray(1),r.subarray(1),e)}}case"web":if(e.web&&L.getWebCrypto())try{return await async function(e,t,r,n){const i=L.getWebCrypto(),s=nn(e.payloadSize,e.web,r,n);let a=i.importKey("jwk",s,{name:"ECDH",namedCurve:e.web},!0,["deriveKey","deriveBits"]);const o=rn(e.payloadSize,e.web,t);let c=i.importKey("jwk",o,{name:"ECDH",namedCurve:e.web},!0,[]);[a,c]=await Promise.all([a,c]);let l=i.deriveBits({name:"ECDH",namedCurve:e.web,public:c},a,e.sharedSize),u=i.exportKey("jwk",a);[l,u]=await Promise.all([l,u]);const h=new Uint8Array(l);return{secretKey:J(u.d),sharedKey:h}}(e,t,r,n)}catch(r){return L.printDebugError(r),bn(e,t,n)}break;case"node":return function(e,t,r){const n=L.getNodeCrypto().createECDH(e.node);n.setPrivateKey(r);const i=new Uint8Array(n.computeSecret(t));return{secretKey:new Uint8Array(n.getPrivateKey()),sharedKey:i}}(e,t,n);default:return bn(e,t,n)}}(o,r,i,s),l=gn(Q.publicKey.ecdh,e,t,a),{keySize:u}=Sr(t.cipher);let h;for(let e=0;e<3;e++)try{const r=await yn(t.hash,c,u,l,1===e,2===e);return pn(await Kr(t.cipher,r,n))}catch(e){h=e}throw h}async function bn(e,t,r){return{secretKey:r,sharedKey:(await L.getNobleCurve(Q.publicKey.ecdh,e.name)).getSharedSecret(r,t).subarray(1)}}async function En(e,t){const r=await L.getNobleCurve(Q.publicKey.ecdh,e.name),{publicKey:n,privateKey:i}=await e.genKeyPair();return{publicKey:n,sharedKey:r.getSharedSecret(i,t).subarray(1)}}var vn=Object.freeze({__proto__:null,decrypt:wn,encrypt:mn,validateParams:async function(e,t,r){return Xr(Q.publicKey.ecdh,e,t,r)}}),kn=Object.freeze({__proto__:null,CurveWithOID:Zr,ecdh:vn,ecdhX:Hr,ecdsa:un,eddsa:mt,eddsaLegacy:dn,generate:Vr,getPreferredHashAlgo:zr});const In=BigInt(0),Bn=BigInt(1);class Cn{constructor(e){e&&(this.data=e)}read(e){if(e.length>=1){const t=e[0];if(e.length>=1+t)return this.data=e.subarray(1,1+t),1+this.data.length}throw new Error("Invalid symmetric key")}write(){return L.concatUint8Array([new Uint8Array([this.data.length]),this.data])}}class Sn{constructor(e){if(e){const{hash:t,cipher:r}=e;this.hash=t,this.cipher=r}else this.hash=null,this.cipher=null}read(e){if(e.length<4||3!==e[0]||1!==e[1])throw new at("Cannot read KDFParams");return this.hash=e[2],this.cipher=e[3],4}write(){return new Uint8Array([3,1,this.hash,this.cipher])}}class Dn{static fromObject({wrappedKey:e,algorithm:t}){const r=new Dn;return r.wrappedKey=e,r.algorithm=t,r}read(e){let t=0,r=e[t++];this.algorithm=r%2?e[t++]:null,r-=r%2,this.wrappedKey=L.readExactSubarray(e,t,t+r),t+=r}write(){return L.concatUint8Array([this.algorithm?new Uint8Array([this.wrappedKey.length+1,this.algorithm]):new Uint8Array([this.wrappedKey.length]),this.wrappedKey])}}async function xn(e,t,r,n,i,s){switch(e){case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaEncrypt:{const{c:e}=n,{n:i,e:a}=t,{d:o,p:c,q:l,u}=r;return async function(e,t,r,n,i,s,a,o){if(L.getNodeCrypto()&&!o)try{return function(e,t,r,n,i,s,a){const o={key:_e(t,r,n,i,s,a),format:"jwk",type:"pkcs1",padding:je.constants.RSA_PKCS1_PADDING};try{return new Uint8Array(je.privateDecrypt(o,e))}catch{throw new Error("Decryption error")}}(e,t,r,n,i,s,a)}catch(e){L.printDebugError(e)}return function(e,t,r,n,i,s,a,o){if(e=se(e),t=se(t),r=se(r),n=se(n),i=se(i),s=se(s),a=se(a),e>=t)throw new Error("Data too large.");const c=ae(n,s-We),l=ae(n,i-We),u=ye(BigInt(2),t),h=oe(le(u,t),r,t),f=oe(e=ae(e*h,t),l,i);let A=ae(a*(oe(e,c,s)-f),s)*i+f;return A=ae(A*u,t),Le(de(A,"be",Ae(t)),o)}(e,t,r,n,i,s,a,o)}(e,i,a,o,c,l,u,s)}case Q.publicKey.elgamal:{const{c1:e,c2:i}=n;return async function(e,t,r,n,i){return e=se(e),t=se(t),r=se(r),Le(de(ae(le(oe(e,n=se(n),r),r)*t,r),"be",Ae(r)),i)}(e,i,t.p,r.x,s)}case Q.publicKey.ecdh:{const{oid:e,Q:s,kdfParams:a}=t,{d:o}=r,{V:c,C:l}=n;return wn(e,a,c,l.data,s,o,i)}case Q.publicKey.x25519:case Q.publicKey.x448:{const{A:i}=t,{k:s}=r,{ephemeralPublicKey:a,C:o}=n;if(null!==o.algorithm&&!L.isAES(o.algorithm))throw new Error("AES session key expected");return Rr(e,a,o.wrappedKey,i,s)}default:throw new Error("Unknown public key encryption algorithm.")}}function Kn(e,t,r){let n=0;switch(e){case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaSign:{const e=L.readMPI(t.subarray(n));n+=e.length+2;const r=L.readMPI(t.subarray(n));n+=r.length+2;const i=L.readMPI(t.subarray(n));n+=i.length+2;const s=L.readMPI(t.subarray(n));return n+=s.length+2,{read:n,privateParams:{d:e,p:r,q:i,u:s}}}case Q.publicKey.dsa:case Q.publicKey.elgamal:{const e=L.readMPI(t.subarray(n));return n+=e.length+2,{read:n,privateParams:{x:e}}}case Q.publicKey.ecdsa:case Q.publicKey.ecdh:{const i=Fn(e,r.oid);let s=L.readMPI(t.subarray(n));return n+=s.length+2,s=L.leftPad(s,i),{read:n,privateParams:{d:s}}}case Q.publicKey.eddsaLegacy:{const i=Fn(e,r.oid);if(r.oid.getName()!==Q.curve.ed25519Legacy)throw new Error("Unexpected OID for eddsaLegacy");let s=L.readMPI(t.subarray(n));return n+=s.length+2,s=L.leftPad(s,i),{read:n,privateParams:{seed:s}}}case Q.publicKey.ed25519:case Q.publicKey.ed448:{const r=Fn(e),i=L.readExactSubarray(t,n,n+r);return n+=i.length,{read:n,privateParams:{seed:i}}}case Q.publicKey.x25519:case Q.publicKey.x448:{const r=Fn(e),i=L.readExactSubarray(t,n,n+r);return n+=i.length,{read:n,privateParams:{k:i}}}default:throw new at("Unknown public key encryption algorithm.")}}function Pn(e,t){const r=new Set([Q.publicKey.ed25519,Q.publicKey.x25519,Q.publicKey.ed448,Q.publicKey.x448]),n=Object.keys(t).map(n=>{const i=t[n];return L.isUint8Array(i)?r.has(e)?i:L.uint8ArrayToMPI(i):i.write()});return L.concatUint8Array(n)}function Un(e){const{keySize:t}=Sr(e);return ge(t)}function Tn(e){try{e.getName()}catch{throw new at("Unknown curve OID")}}function Fn(e,t){switch(e){case Q.publicKey.ecdsa:case Q.publicKey.ecdh:case Q.publicKey.eddsaLegacy:return new Zr(t).payloadSize;case Q.publicKey.ed25519:case Q.publicKey.ed448:return dt(e);case Q.publicKey.x25519:case Q.publicKey.x448:return Qr(e);default:throw new Error("Unknown elliptic algo")}}const Mn=L.getWebCrypto(),Rn=L.getNodeCrypto(),Qn=Rn?Rn.getCiphers():[],Nn={idea:Qn.includes("idea-cfb")?"idea-cfb":void 0,tripledes:Qn.includes("des-ede3-cfb")?"des-ede3-cfb":void 0,cast5:Qn.includes("cast5-cfb")?"cast5-cfb":void 0,blowfish:Qn.includes("bf-cfb")?"bf-cfb":void 0,aes128:Qn.includes("aes-128-cfb")?"aes-128-cfb":void 0,aes192:Qn.includes("aes-192-cfb")?"aes-192-cfb":void 0,aes256:Qn.includes("aes-256-cfb")?"aes-256-cfb":void 0};function On(e){const{blockSize:t}=Sr(e),r=ge(t),n=new Uint8Array([r[r.length-2],r[r.length-1]]);return L.concat([r,n])}async function Ln(e,t,r,n,i){const s=Q.read(Q.symmetric,e);if(L.getNodeCrypto()&&Nn[s])return function(e,t,r,n){const i=Q.read(Q.symmetric,e),s=new Rn.createCipheriv(Nn[i],t,n);return v(r,e=>new Uint8Array(s.update(e)))}(e,t,r,n);if(L.isAES(e))return async function(e,t,r,n){if(Mn&&await Hn.isSupported(e)){const i=new Hn(e,t,n);return L.isStream(r)?k(r,e=>i.encryptChunk(e),()=>i.finish()):i.encrypt(r)}if(L.isStream(r)){const i=new jn(!0,e,t,n);return k(r,e=>i.processChunk(e),()=>i.finish())}return pr(t,n).encrypt(r)}(e,t,r,n);const a=new(await Ir(e))(t),o=a.blockSize,c=n.slice();let l=new Uint8Array;const u=e=>{e&&(l=L.concatUint8Array([l,e]));const t=new Uint8Array(l.length);let r,n=0;for(;e?l.length>=o:l.length;){const e=a.encrypt(c);for(r=0;rnew Uint8Array(s.update(e)))}(e,t,r,n);if(L.isAES(e))return function(e,t,r,n){if(L.isStream(r)){const i=new jn(!1,e,t,n);return k(r,e=>i.processChunk(e),()=>i.finish())}return pr(t,n).decrypt(r)}(e,t,r,n);const s=new(await Ir(e))(t),a=s.blockSize;let o=n,c=new Uint8Array;const l=e=>{e&&(c=L.concatUint8Array([c,e]));const t=new Uint8Array(c.length);let r,n=0;for(;e?c.length>=a:c.length;){const e=s.encrypt(o);for(o=c.subarray(0,a),r=0;r!0,()=>!1)}async _runCBC(e,t){const r="AES-CBC";this.keyRef=this.keyRef||await Mn.importKey("raw",this.key,r,!1,["encrypt"]);const n=await Mn.encrypt({name:r,iv:t||this.zeroBlock},this.keyRef,e);return new Uint8Array(n).subarray(0,e.length)}async encryptChunk(e){const t=this.nextBlock.length-this.i,r=e.subarray(0,t);if(this.nextBlock.set(r,this.i),this.i+e.length>=2*this.blockSize){const r=(e.length-t)%this.blockSize,n=L.concatUint8Array([this.nextBlock,e.subarray(t,e.length-r)]),i=L.concatUint8Array([this.prevBlock,n.subarray(0,n.length-this.blockSize)]),s=await this._runCBC(i);return Wn(s,n),this.prevBlock=s.slice(-this.blockSize),r>0&&this.nextBlock.set(e.subarray(-r)),this.i=r,s}let n;if(this.i+=r.length,this.i===this.nextBlock.length){const t=this.nextBlock;n=await this._runCBC(this.prevBlock),Wn(n,t),this.prevBlock=n.slice(),this.i=0;const i=e.subarray(r.length);this.nextBlock.set(i,this.i),this.i+=i.length}else n=new Uint8Array;return n}async finish(){let e;if(0===this.i)e=new Uint8Array;else{this.nextBlock=this.nextBlock.subarray(0,this.i);const t=this.nextBlock,r=await this._runCBC(this.prevBlock);Wn(r,t),e=r.subarray(0,t.length)}return this.clearSensitiveData(),e}clearSensitiveData(){this.nextBlock.fill(0),this.prevBlock.fill(0),this.keyRef=null,this.key=null}async encrypt(e){const t=(await this._runCBC(L.concatUint8Array([new Uint8Array(this.blockSize),e]),this.iv)).subarray(0,e.length);return Wn(t,e),this.clearSensitiveData(),t}}class jn{constructor(e,t,r,n){this.forEncryption=e;const{blockSize:i}=Sr(t);this.key=kr.expandKeyLE(r),n.byteOffset%4!=0&&(n=n.slice()),this.prevBlock=Yn(n),this.nextBlock=new Uint8Array(i),this.i=0,this.blockSize=i}_runCFB(e){const t=Yn(e),r=new Uint8Array(e.length),n=Yn(r);for(let e=0;e+4<=n.length;e+=4){const{s0:r,s1:i,s2:s,s3:a}=kr.encrypt(this.key,this.prevBlock[0],this.prevBlock[1],this.prevBlock[2],this.prevBlock[3]);n[e+0]=t[e+0]^r,n[e+1]=t[e+1]^i,n[e+2]=t[e+2]^s,n[e+3]=t[e+3]^a,this.prevBlock=(this.forEncryption?n:t).slice(e,e+4)}return r}async processChunk(e){const t=this.nextBlock.length-this.i,r=e.subarray(0,t);if(this.nextBlock.set(r,this.i),this.i+e.length>=2*this.blockSize){const r=(e.length-t)%this.blockSize,n=L.concatUint8Array([this.nextBlock,e.subarray(t,e.length-r)]),i=this._runCFB(n);return r>0&&this.nextBlock.set(e.subarray(-r)),this.i=r,i}let n;if(this.i+=r.length,this.i===this.nextBlock.length){n=this._runCFB(this.nextBlock),this.i=0;const t=e.subarray(r.length);this.nextBlock.set(t,this.i),this.i+=t.length}else n=new Uint8Array;return n}async finish(){let e;return e=0===this.i?new Uint8Array:this._runCFB(this.nextBlock).subarray(0,this.i),this.clearSensitiveData(),e}clearSensitiveData(){this.nextBlock.fill(0),this.prevBlock.fill(0),this.key.fill(0)}}function Wn(e,t){const r=Math.min(e.length,t.length);for(let n=0;nnew Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4)),Jn=L.getWebCrypto(),_n=L.getNodeCrypto(),qn=16;function Zn(e,t){const r=e.length-qn;for(let n=0;ndr(t,hi,{disablePadding:!0}).encrypt(e),s=e=>dr(t,hi,{disablePadding:!0}).decrypt(e);let a;function o(e,t,r,s){const o=t.length/oi|0;!function(e,t){const r=L.nbits(Math.max(e.length,t.length)/oi|0)-1;for(let e=n+1;e<=r;e++)a[e]=L.double(a[e-1]);n=r}(t,s);const c=L.concatUint8Array([hi.subarray(0,15-r.length),fi,r]),l=63&c[15];c[15]&=192;const u=i(c),h=L.concatUint8Array([u,ui(u.subarray(0,8),u.subarray(1,9))]),f=L.shiftRight(h.subarray(0+(l>>3),17+(l>>3)),8-(7&l)).subarray(1),A=new Uint8Array(oi),d=new Uint8Array(t.length+16);let p,g=0;for(p=0;p=r)throw new Error("Signature size cannot exceed modulus size");const s=de(oe(t,n,r),"be",Ae(r)),a=Ge(e,i,Ae(r));return L.equalsUint8Array(s,a)}(e,r,n,i,s)}(t,i,L.leftPad(r.s,e.length),e,a,s)}case Q.publicKey.dsa:{const{g:e,p:t,q:i,y:a}=n,{r:o,s:c}=r;return async function(e,t,r,n,i,s,a,o){if(t=se(t),r=se(r),s=se(s),a=se(a),i=se(i),o=se(o),t<=In||t>=a||r<=In||r>=a)return L.printDebug("invalid DSA Signature"),!1;const c=ae(se(n.subarray(0,Ae(a))),a),l=le(r,a);if(l===In)return L.printDebug("invalid DSA Signature"),!1;i=ae(i,s),o=ae(o,s);const u=ae(c*l,a),h=ae(t*l,a);return ae(ae(oe(i,u,s)*oe(o,h,s),s),a)===t}(0,o,c,s,e,t,i,a)}case Q.publicKey.ecdsa:{const{oid:e,Q:a}=n,o=new Zr(e).payloadSize;return cn(e,t,{r:L.leftPad(r.r,o),s:L.leftPad(r.s,o)},i,a,s)}case Q.publicKey.eddsaLegacy:{const{oid:e,Q:i}=n,a=new Zr(e).payloadSize;return fn(e,t,{r:L.leftPad(r.r,a),s:L.leftPad(r.s,a)},0,i,s)}case Q.publicKey.ed25519:case Q.publicKey.ed448:{const{A:i}=n;return ft(e,t,r,0,i,s)}default:throw new Error("Unknown signature algorithm.")}}mi.getNonce=function(e,t){const r=e.slice();for(let e=0;e1048576&&(ki=vi(),ki.catch(()=>{})),n}catch(e){throw e.message&&(e.message.includes("Unable to grow instance memory")||e.message.includes("failed to grow memory")||e.message.includes("WebAssembly.Memory.grow")||e.message.includes("Out of memory"))?new Ei("Could not allocate required memory for Argon2"):e}}}class Bi{constructor(e,t=N){this.algorithm=Q.hash.sha256,this.type=Q.read(Q.s2k,e),this.c=t.s2kIterationCountByte,this.salt=null}generateSalt(){switch(this.type){case"salted":case"iterated":this.salt=ge(8)}}getCount(){return 16+(15&this.c)<<6+(this.c>>4)}read(e){let t=0;switch(this.algorithm=e[t++],this.type){case"simple":break;case"salted":this.salt=e.subarray(t,t+8),t+=8;break;case"iterated":this.salt=e.subarray(t,t+8),t+=8,this.c=e[t++];break;case"gnu":if("GNU"!==L.uint8ArrayToString(e.subarray(t,t+3)))throw new at("Unknown s2k type.");if(t+=3,1001!==1e3+e[t++])throw new at("Unknown s2k gnu protection mode.");this.type="gnu-dummy";break;default:throw new at("Unknown s2k type.")}return t}write(){if("gnu-dummy"===this.type)return new Uint8Array([101,0,...L.stringToUint8Array("GNU"),1]);const e=[new Uint8Array([Q.write(Q.s2k,this.type),this.algorithm])];switch(this.type){case"simple":break;case"salted":e.push(this.salt);break;case"iterated":e.push(this.salt),e.push(new Uint8Array([this.c]));break;case"gnu":throw new Error("GNU s2k type not supported.");default:throw new Error("Unknown s2k type.")}return L.concatUint8Array(e)}async produceKey(e,t){e=L.encodeUTF8(e);const r=[];let n=0,i=0;for(;n>1|(21845&ji)<<1;Wi=(61680&(Wi=(52428&Wi)>>2|(13107&Wi)<<2))>>4|(3855&Wi)<<4,Hi[ji]=((65280&Wi)>>8|(255&Wi)<<8)>>1}var Yi=function(e,t,r){for(var n=e.length,i=0,s=new Ki(t);i>c]=l}else for(a=new Ki(n),i=0;i>15-e[i]);return a},Ji=new xi(288);for(ji=0;ji<144;++ji)Ji[ji]=8;for(ji=144;ji<256;++ji)Ji[ji]=9;for(ji=256;ji<280;++ji)Ji[ji]=7;for(ji=280;ji<288;++ji)Ji[ji]=8;var _i=new xi(32);for(ji=0;ji<32;++ji)_i[ji]=5;var qi=Yi(Ji,9,0),Zi=Yi(Ji,9,1),Vi=Yi(_i,5,0),zi=Yi(_i,5,1),Xi=function(e){for(var t=e[0],r=1;rt&&(t=e[r]);return t},$i=function(e,t,r){var n=t/8|0;return(e[n]|e[n+1]<<8)>>(7&t)&r},es=function(e,t){var r=t/8|0;return(e[r]|e[r+1]<<8|e[r+2]<<16)>>(7&t)},ts=function(e){return(e+7)/8|0},rs=function(e,t,r){return(null==t||t<0)&&(t=0),(null==r||r>e.length)&&(r=e.length),new xi(e.subarray(t,r))},ns=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],is=function(e,t,r){var n=new Error(t||ns[e]);if(n.code=e,Error.captureStackTrace&&Error.captureStackTrace(n,is),!r)throw n;return n},ss=function(e,t,r){r<<=7&t;var n=t/8|0;e[n]|=r,e[n+1]|=r>>8},as=function(e,t,r){r<<=7&t;var n=t/8|0;e[n]|=r,e[n+1]|=r>>8,e[n+2]|=r>>16},os=function(e,t){for(var r=[],n=0;nf&&(f=s[n].s);var A=new Ki(f+1),d=cs(r[u-1],A,0);if(d>t){n=0;var p=0,g=d-t,y=1<t))break;p+=y-(1<>=g;p>0;){var w=s[n].s;A[w]=0&&p;--n){var b=s[n].s;A[b]==t&&(--A[b],++p)}d=t}return{t:new xi(A),l:d}},cs=function(e,t,r){return-1==e.s?Math.max(cs(e.l,t,r+1),cs(e.r,t,r+1)):t[e.s]=r},ls=function(e){for(var t=e.length;t&&!e[--t];);for(var r=new Ki(++t),n=0,i=e[0],s=1,a=function(e){r[n++]=e},o=1;o<=t;++o)if(e[o]==i&&o!=t)++s;else{if(!i&&s>2){for(;s>138;s-=138)a(32754);s>2&&(a(s>10?s-11<<5|28690:s-3<<5|12305),s=0)}else if(s>3){for(a(i),--s;s>6;s-=6)a(8304);s>2&&(a(s-3<<5|8208),s=0)}for(;s--;)a(i);s=1,i=e[o]}return{c:r.subarray(0,n),n:t}},us=function(e,t){for(var r=0,n=0;n>8,e[i+2]=255^e[i],e[i+3]=255^e[i+1];for(var s=0;s4&&!C[Fi[D-1]];--D);var x,K,P,U,T=l+5<<3,F=us(i,Ji)+us(s,_i)+a,M=us(i,f)+us(s,p)+a+14+3*D+us(k,C)+2*k[16]+3*k[17]+7*k[18];if(c>=0&&T<=F&&T<=M)return hs(t,u,e.subarray(c,c+l));if(ss(t,u,1+(M15&&(ss(t,u,O[I]>>5&127),u+=O[I]>>12)}}}else x=qi,K=Ji,P=Vi,U=_i;for(I=0;I255){as(t,u,x[257+(L=G>>18&31)]),u+=K[L+257],L>7&&(ss(t,u,G>>23&31),u+=Ui[L]);var H=31&G;as(t,u,P[H]),u+=U[H],H>3&&(as(t,u,G>>5&8191),u+=Ti[H])}else as(t,u,x[G]),u+=K[G]}return as(t,u,x[256]),u+K[256]},As=new Pi([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),ds=new xi(0),ps=function(){var e=1,t=0;return{p:function(r){for(var n=e,i=t,s=0|r.length,a=0;a!=s;){for(var o=Math.min(a+2655,s);a>16),i=(65535&i)+15*(i>>16)}e=n,t=i},d:function(){return(255&(e%=65521))<<24|(65280&e)<<8|(255&(t%=65521))<<8|t>>8}}},gs=function(e,t,r,n,i){if(!i&&(i={l:1},t.dictionary)){var s=t.dictionary.subarray(-32768),a=new xi(s.length+e.length);a.set(s),a.set(e,s.length),e=a,i.w=s.length}return function(e,t,r,n,i,s){var a=s.z||e.length,o=new xi(n+a+5*(1+Math.ceil(a/7e3))+i),c=o.subarray(n,o.length-i),l=s.l,u=7&(s.r||0);if(t){u&&(c[0]=s.r>>3);for(var h=As[t-1],f=h>>13,A=8191&h,d=(1<7e3||C>24576)&&(U>423||!l)){u=fs(e,c,0,b,E,v,I,C,D,B-D,u),C=k=I=0,D=B;for(var T=0;T<286;++T)E[T]=0;for(T=0;T<30;++T)v[T]=0}var F=2,M=0,R=A,Q=K-P&32767;if(U>2&&x==w(B-Q))for(var N=Math.min(f,U)-1,O=Math.min(32767,B),L=Math.min(258,U);Q<=O&&--R&&K!=P;){if(e[B+F]==e[B+F-Q]){for(var G=0;GF){if(F=G,M=Q,G>N)break;var H=Math.min(Q,G-2),j=0;for(T=0;Tj&&(j=Y,P=W)}}}Q+=(K=P)-(P=p[K])&32767}if(M){b[C++]=268435456|Ni[F]<<18|Gi[M];var J=31&Ni[F],_=31&Gi[M];I+=Ui[J]+Ti[_],++E[257+J],++v[_],S=B+F,++k}else b[C++]=e[B],++E[e[B]]}}for(B=Math.max(B,S);B=a&&(c[u/8|0]=l,q=a),u=hs(c,u+1,e.subarray(B,q))}s.i=a}return rs(o,0,n+ts(u)+i)}(e,null==t.level?6:t.level,null==t.mem?i.l?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(e.length)))):20:12+t.mem,r,n,i)},ys=function(e,t,r){for(;r;++t)e[t]=r,r>>>=8},ms=function(){function e(e,t){if("function"==typeof e&&(t=e,e={}),this.ondata=t,this.o=e||{},this.s={l:0,i:32768,w:32768,z:32768},this.b=new xi(98304),this.o.dictionary){var r=this.o.dictionary.subarray(-32768);this.b.set(r,32768-r.length),this.s.i=32768-r.length}}return e.prototype.p=function(e,t){this.ondata(gs(e,this.o,0,0,this.s),t)},e.prototype.push=function(e,t){this.ondata||is(5),this.s.l&&is(4);var r=e.length+this.s.z;if(r>this.b.length){if(r>2*this.b.length-32768){var n=new xi(-32768&r);n.set(this.b.subarray(0,this.s.z)),this.b=n}var i=this.b.length-this.s.z;this.b.set(e.subarray(0,i),this.s.z),this.s.z=this.b.length,this.p(this.b,!1),this.b.set(this.b.subarray(-32768)),this.b.set(e.subarray(i),32768),this.s.z=e.length-i+32768,this.s.i=32766,this.s.w=32768}else this.b.set(e,this.s.z),this.s.z+=e.length;this.s.l=1&t,(this.s.z>this.s.w+8191||t)&&(this.p(this.b,t||!1),this.s.w=this.s.i,this.s.i-=2)},e.prototype.flush=function(){this.ondata||is(5),this.s.l&&is(4),this.p(this.b,!1),this.s.w=this.s.i,this.s.i-=2},e}(),ws=function(){function e(e,t){"function"==typeof e&&(t=e,e={}),this.ondata=t;var r=e&&e.dictionary&&e.dictionary.subarray(-32768);this.s={i:0,b:r?r.length:0},this.o=new xi(32768),this.p=new xi(0),r&&this.o.set(r)}return e.prototype.e=function(e){if(this.ondata||is(5),this.d&&is(4),this.p.length){if(e.length){var t=new xi(this.p.length+e.length);t.set(this.p),t.set(e,this.p.length),this.p=t}}else this.p=e},e.prototype.c=function(e){this.s.i=+(this.d=e||!1);var t=this.s.b,r=function(e,t,r){var n=e.length;if(!n||t.f&&!t.l)return r||new xi(0);var i=!r,s=i||2!=t.i,a=t.i;i&&(r=new xi(3*n));var o=function(e){var t=r.length;if(e>t){var n=new xi(Math.max(2*t,e));n.set(r),r=n}},c=t.f||0,l=t.p||0,u=t.b||0,h=t.l,f=t.d,A=t.m,d=t.n,p=8*n;do{if(!h){c=$i(e,l,1);var g=$i(e,l+1,3);if(l+=3,!g){var y=e[(D=ts(l)+4)-4]|e[D-3]<<8,m=D+y;if(m>n){a&&is(0);break}s&&o(u+y),r.set(e.subarray(D,m),u),t.b=u+=y,t.p=l=8*m,t.f=c;continue}if(1==g)h=Zi,f=zi,A=9,d=5;else if(2==g){var w=$i(e,l,31)+257,b=$i(e,l+10,15)+4,E=w+$i(e,l+5,31)+1;l+=14;for(var v=new xi(E),k=new xi(19),I=0;I>4)<16)v[I++]=D;else{var K=0,P=0;for(16==D?(P=3+$i(e,l,3),l+=2,K=v[I-1]):17==D?(P=3+$i(e,l,7),l+=3):18==D&&(P=11+$i(e,l,127),l+=7);P--;)v[I++]=K}}var U=v.subarray(0,w),T=v.subarray(w);A=Xi(U),d=Xi(T),h=Yi(U,A,1),f=Yi(T,d,1)}else is(1);if(l>p){a&&is(0);break}}s&&o(u+131072);for(var F=(1<>4;if((l+=15&K)>p){a&&is(0);break}if(K||is(2),Q<256)r[u++]=Q;else{if(256==Q){R=l,h=null;break}var N=Q-254;if(Q>264){var O=Ui[I=Q-257];N=$i(e,l,(1<>4;if(L||is(3),l+=15&L,T=Li[G],G>3&&(O=Ti[G],T+=es(e,l)&(1<p){a&&is(0);break}s&&o(u+131072);var H=u+N;if(u>4>7||(r[0]<<8|r[1])%31)&&is(6,"invalid zlib data"),(r[1]>>5&1)==+!n&&is(6,"invalid zlib data: "+(32&r[1]?"need":"unexpected")+" dictionary"),2+(r[1]>>3&4))),this.v=0}var r,n;t&&(this.p.length<4&&is(6,"invalid zlib data"),this.p=this.p.subarray(0,-4)),ws.prototype.c.call(this,t)},e}(),vs="undefined"!=typeof TextDecoder&&new TextDecoder;try{vs.decode(ds,{stream:!0})}catch(e){}class ks{static get tag(){return Q.packet.literalData}constructor(e=new Date){this.format=Q.literal.utf8,this.date=L.normalizeDate(e),this.text=null,this.data=null,this.filename=""}setText(e,t=Q.literal.utf8){this.format=t,this.text=e,this.data=null}getText(e=!1){return(null===this.text||L.isStream(this.text))&&(this.text=L.decodeUTF8(L.nativeEOL(this.getBytes(e)))),this.text}setBytes(e,t){this.format=t,this.data=e,this.text=null}getBytes(e=!1){return null===this.data&&(this.data=L.canonicalizeEOL(L.encodeUTF8(this.text))),e?D(this.data):this.data}setFilename(e){this.filename=e}getFilename(){return this.filename}async read(e){await C(e,async e=>{const t=await e.readByte(),r=await e.readByte();this.filename=L.decodeUTF8(await e.readBytes(r)),this.date=L.readDate(await e.readBytes(4));let n=e.remainder();l(n)&&(n=await P(n)),this.setBytes(n,t)})}writeHeader(){const e=L.encodeUTF8(this.filename),t=new Uint8Array([e.length]),r=new Uint8Array([this.format]),n=L.writeDate(this.date);return L.concatUint8Array([r,t,e,n])}write(){const e=this.writeHeader(),t=this.getBytes();return L.concat([e,t])}}class Is{constructor(){this.bytes=""}read(e){return this.bytes=L.uint8ArrayToString(e.subarray(0,8)),this.bytes.length}write(){return L.stringToUint8Array(this.bytes)}toHex(){return L.uint8ArrayToHex(L.stringToUint8Array(this.bytes))}equals(e,t=!1){return t&&(e.isWildcard()||this.isWildcard())||this.bytes===e.bytes}isNull(){return""===this.bytes}isWildcard(){return/^0+$/.test(this.toHex())}static mapToHex(e){return e.toHex()}static fromID(e){const t=new Is;return t.read(L.hexToUint8Array(e)),t}static wildcard(){const e=new Is;return e.read(new Uint8Array(8)),e}}const Bs=Symbol("verified"),Cs="salt@notations.openpgpjs.org",Ss=new Set([Q.signatureSubpacket.issuerKeyID,Q.signatureSubpacket.issuerFingerprint,Q.signatureSubpacket.embeddedSignature]);class Ds{static get tag(){return Q.packet.signature}constructor(){this.version=null,this.signatureType=null,this.hashAlgorithm=null,this.publicKeyAlgorithm=null,this.signatureData=null,this.unhashedSubpackets=[],this.unknownSubpackets=[],this.signedHashValue=null,this.salt=null,this.created=null,this.signatureExpirationTime=null,this.signatureNeverExpires=!0,this.exportable=null,this.trustLevel=null,this.trustAmount=null,this.regularExpression=null,this.revocable=null,this.keyExpirationTime=null,this.keyNeverExpires=null,this.preferredSymmetricAlgorithms=null,this.revocationKeyClass=null,this.revocationKeyAlgorithm=null,this.revocationKeyFingerprint=null,this.issuerKeyID=new Is,this.rawNotations=[],this.notations={},this.preferredHashAlgorithms=null,this.preferredCompressionAlgorithms=null,this.keyServerPreferences=null,this.preferredKeyServer=null,this.isPrimaryUserID=null,this.policyURI=null,this.keyFlags=null,this.signersUserID=null,this.reasonForRevocationFlag=null,this.reasonForRevocationString=null,this.features=null,this.signatureTargetPublicKeyAlgorithm=null,this.signatureTargetHashAlgorithm=null,this.signatureTargetHash=null,this.embeddedSignature=null,this.issuerKeyVersion=null,this.issuerFingerprint=null,this.preferredAEADAlgorithms=null,this.preferredCipherSuites=null,this.revoked=null,this[Bs]=null}read(e,t=N){let r=0;if(this.version=e[r++],5===this.version&&!t.enableParsingV5Entities)throw new at("Support for v5 entities is disabled; turn on `config.enableParsingV5Entities` if needed");if(4!==this.version&&5!==this.version&&6!==this.version)throw new at(`Version ${this.version} of the signature packet is unsupported.`);if(this.signatureType=e[r++],this.publicKeyAlgorithm=e[r++],this.hashAlgorithm=e[r++],r+=this.readSubPackets(e.subarray(r,e.length),!0),!this.created)throw new Error("Missing signature creation time subpacket.");if(this.signatureData=e.subarray(0,r),r+=this.readSubPackets(e.subarray(r,e.length),!1),this.signedHashValue=e.subarray(r,r+2),r+=2,6===this.version){const t=e[r++];this.salt=e.subarray(r,r+t),r+=t}const n=e.subarray(r,e.length),{read:i,signatureParams:s}=function(e,t){let r=0;switch(e){case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaSign:{const e=L.readMPI(t.subarray(r));return r+=e.length+2,{read:r,signatureParams:{s:e}}}case Q.publicKey.dsa:case Q.publicKey.ecdsa:{const e=L.readMPI(t.subarray(r));r+=e.length+2;const n=L.readMPI(t.subarray(r));return r+=n.length+2,{read:r,signatureParams:{r:e,s:n}}}case Q.publicKey.eddsaLegacy:{const e=L.readMPI(t.subarray(r));r+=e.length+2;const n=L.readMPI(t.subarray(r));return r+=n.length+2,{read:r,signatureParams:{r:e,s:n}}}case Q.publicKey.ed25519:case Q.publicKey.ed448:{const n=2*dt(e),i=L.readExactSubarray(t,r,r+n);return r+=i.length,{read:r,signatureParams:{RS:i}}}default:throw new at("Unknown signature algorithm.")}}(this.publicKeyAlgorithm,n);if(iPn(this.publicKeyAlgorithm,await this.params)):Pn(this.publicKeyAlgorithm,this.params)}write(){const e=[];return e.push(this.signatureData),e.push(this.writeUnhashedSubPackets()),e.push(this.signedHashValue),6===this.version&&(e.push(new Uint8Array([this.salt.length])),e.push(this.salt)),e.push(this.writeParams()),L.concat(e)}async sign(e,t,r=new Date,n=!1,i){this.version=e.version,this.created=L.normalizeDate(r),this.issuerKeyVersion=e.version,this.issuerFingerprint=e.getFingerprintBytes(),this.issuerKeyID=e.getKeyID();const s=[new Uint8Array([this.version,this.signatureType,this.publicKeyAlgorithm,this.hashAlgorithm])];if(6===this.version){const e=Ks(this.hashAlgorithm);if(null===this.salt)this.salt=ge(e);else if(e!==this.salt.length)throw new Error("Provided salt does not have the required length")}else if(i.nonDeterministicSignaturesViaNotation){if(0!==this.rawNotations.filter(({name:e})=>e===Cs).length)throw new Error("Unexpected existing salt notation");{const e=ge(Ks(this.hashAlgorithm));this.rawNotations.push({name:Cs,value:e,humanReadable:!1,critical:!1})}}s.push(this.writeHashedSubPackets()),this.unhashedSubpackets=[],this.signatureData=L.concat(s);const a=this.toHash(this.signatureType,t,n),o=await this.hash(this.signatureType,t,a,n);this.signedHashValue=K(S(o),0,2);const c=async()=>async function(e,t,r,n,i,s){if(!r||!n)throw new Error("Missing key parameters");switch(e){case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaSign:{const{n:e,e:a}=r,{d:o,p:c,q:l,u}=n;return{s:await Ye(t,i,e,a,o,c,l,u,s)}}case Q.publicKey.dsa:{const{g:e,p:t,q:i}=r,{x:a}=n;return async function(e,t,r,n,i,s){const a=BigInt(0);let o,c,l,u;n=se(n),i=se(i),r=se(r),s=se(s),r=ae(r,n),s=ae(s,i);const h=ae(se(t.subarray(0,Ae(i))),i);for(;;){if(o=ye(Bn,i),c=ae(oe(r,o,n),i),c===a)continue;const e=ae(s*c,i);if(u=ae(h+e,i),l=ae(le(o,i)*u,i),l!==a)break}return{r:de(c,"be",Ae(n)),s:de(l,"be",Ae(n))}}(0,s,e,t,i,a)}case Q.publicKey.elgamal:throw new Error("Signing with Elgamal is not defined in the OpenPGP standard.");case Q.publicKey.ecdsa:{const{oid:e,Q:a}=r,{d:o}=n;return on(e,t,i,a,o,s)}case Q.publicKey.eddsaLegacy:{const{oid:e,Q:i}=r,{seed:a}=n;return hn(e,t,0,i,a,s)}case Q.publicKey.ed25519:case Q.publicKey.ed448:{const{A:i}=r,{seed:a}=n;return ht(e,t,0,i,a,s)}default:throw new Error("Unknown signature algorithm.")}}(this.publicKeyAlgorithm,this.hashAlgorithm,e.publicParams,e.privateParams,a,await P(o));L.isStream(o)?this.params=c():(this.params=await c(),this[Bs]=!0)}writeHashedSubPackets(){const e=Q.signatureSubpacket,t=[];let r;if(null===this.created)throw new Error("Missing signature creation time");t.push(xs(e.signatureCreationTime,!0,L.writeDate(this.created))),null!==this.signatureExpirationTime&&t.push(xs(e.signatureExpirationTime,!0,L.writeNumber(this.signatureExpirationTime,4))),null!==this.exportable&&t.push(xs(e.exportableCertification,!0,new Uint8Array([this.exportable?1:0]))),null!==this.trustLevel&&(r=new Uint8Array([this.trustLevel,this.trustAmount]),t.push(xs(e.trustSignature,!0,r))),null!==this.regularExpression&&t.push(xs(e.regularExpression,!0,this.regularExpression)),null!==this.revocable&&t.push(xs(e.revocable,!0,new Uint8Array([this.revocable?1:0]))),null!==this.keyExpirationTime&&t.push(xs(e.keyExpirationTime,!0,L.writeNumber(this.keyExpirationTime,4))),null!==this.preferredSymmetricAlgorithms&&(r=L.stringToUint8Array(L.uint8ArrayToString(this.preferredSymmetricAlgorithms)),t.push(xs(e.preferredSymmetricAlgorithms,!1,r))),null!==this.revocationKeyClass&&(r=new Uint8Array([this.revocationKeyClass,this.revocationKeyAlgorithm]),r=L.concat([r,this.revocationKeyFingerprint]),t.push(xs(e.revocationKey,!1,r))),!this.issuerKeyID.isNull()&&this.issuerKeyVersion<5&&t.push(xs(e.issuerKeyID,!1,this.issuerKeyID.write())),this.rawNotations.forEach(({name:n,value:i,humanReadable:s,critical:a})=>{r=[new Uint8Array([s?128:0,0,0,0])];const o=L.encodeUTF8(n);r.push(L.writeNumber(o.length,2)),r.push(L.writeNumber(i.length,2)),r.push(o),r.push(i),r=L.concat(r),t.push(xs(e.notationData,a,r))}),null!==this.preferredHashAlgorithms&&(r=L.stringToUint8Array(L.uint8ArrayToString(this.preferredHashAlgorithms)),t.push(xs(e.preferredHashAlgorithms,!1,r))),null!==this.preferredCompressionAlgorithms&&(r=L.stringToUint8Array(L.uint8ArrayToString(this.preferredCompressionAlgorithms)),t.push(xs(e.preferredCompressionAlgorithms,!1,r))),null!==this.keyServerPreferences&&(r=L.stringToUint8Array(L.uint8ArrayToString(this.keyServerPreferences)),t.push(xs(e.keyServerPreferences,!1,r))),null!==this.preferredKeyServer&&t.push(xs(e.preferredKeyServer,!1,L.encodeUTF8(this.preferredKeyServer))),null!==this.isPrimaryUserID&&t.push(xs(e.primaryUserID,!1,new Uint8Array([this.isPrimaryUserID?1:0]))),null!==this.policyURI&&t.push(xs(e.policyURI,!1,L.encodeUTF8(this.policyURI))),null!==this.keyFlags&&(r=L.stringToUint8Array(L.uint8ArrayToString(this.keyFlags)),t.push(xs(e.keyFlags,!0,r))),null!==this.signersUserID&&t.push(xs(e.signersUserID,!1,L.encodeUTF8(this.signersUserID))),null!==this.reasonForRevocationFlag&&(r=L.stringToUint8Array(String.fromCharCode(this.reasonForRevocationFlag)+this.reasonForRevocationString),t.push(xs(e.reasonForRevocation,!0,r))),null!==this.features&&(r=L.stringToUint8Array(L.uint8ArrayToString(this.features)),t.push(xs(e.features,!1,r))),null!==this.signatureTargetPublicKeyAlgorithm&&(r=[new Uint8Array([this.signatureTargetPublicKeyAlgorithm,this.signatureTargetHashAlgorithm])],r.push(L.stringToUint8Array(this.signatureTargetHash)),r=L.concat(r),t.push(xs(e.signatureTarget,!0,r))),null!==this.embeddedSignature&&t.push(xs(e.embeddedSignature,!0,this.embeddedSignature.write())),null!==this.issuerFingerprint&&(r=[new Uint8Array([this.issuerKeyVersion]),this.issuerFingerprint],r=L.concat(r),t.push(xs(e.issuerFingerprint,this.version>=5,r))),null!==this.preferredAEADAlgorithms&&(r=L.stringToUint8Array(L.uint8ArrayToString(this.preferredAEADAlgorithms)),t.push(xs(e.preferredAEADAlgorithms,!1,r))),null!==this.preferredCipherSuites&&(r=new Uint8Array([].concat(...this.preferredCipherSuites)),t.push(xs(e.preferredCipherSuites,!1,r)));const n=L.concat(t),i=L.writeNumber(n.length,6===this.version?4:2);return L.concat([i,n])}writeUnhashedSubPackets(){const e=this.unhashedSubpackets.map(({type:e,critical:t,body:r})=>xs(e,t,r)),t=L.concat(e),r=L.writeNumber(t.length,6===this.version?4:2);return L.concat([r,t])}readSubPacket(e,t=!0){let r=0;const n=!!(128&e[r]),i=127&e[r];if(r++,t||(this.unhashedSubpackets.push({type:i,critical:n,body:e.subarray(r,e.length)}),Ss.has(i)))switch(i){case Q.signatureSubpacket.signatureCreationTime:this.created=L.readDate(e.subarray(r,e.length));break;case Q.signatureSubpacket.signatureExpirationTime:{const t=L.readNumber(e.subarray(r,e.length));this.signatureNeverExpires=0===t,this.signatureExpirationTime=t;break}case Q.signatureSubpacket.exportableCertification:this.exportable=1===e[r++];break;case Q.signatureSubpacket.trustSignature:this.trustLevel=e[r++],this.trustAmount=e[r++];break;case Q.signatureSubpacket.regularExpression:this.regularExpression=e[r];break;case Q.signatureSubpacket.revocable:this.revocable=1===e[r++];break;case Q.signatureSubpacket.keyExpirationTime:{const t=L.readNumber(e.subarray(r,e.length));this.keyExpirationTime=t,this.keyNeverExpires=0===t;break}case Q.signatureSubpacket.preferredSymmetricAlgorithms:this.preferredSymmetricAlgorithms=[...e.subarray(r,e.length)];break;case Q.signatureSubpacket.revocationKey:this.revocationKeyClass=e[r++],this.revocationKeyAlgorithm=e[r++],this.revocationKeyFingerprint=e.subarray(r,r+20);break;case Q.signatureSubpacket.issuerKeyID:if(4===this.version)this.issuerKeyID.read(e.subarray(r,e.length));else if(t)throw new Error("Unexpected Issuer Key ID subpacket");break;case Q.signatureSubpacket.notationData:{const t=!!(128&e[r]);r+=4;const i=L.readNumber(e.subarray(r,r+2));r+=2;const s=L.readNumber(e.subarray(r,r+2));r+=2;const a=L.decodeUTF8(e.subarray(r,r+i)),o=e.subarray(r+i,r+i+s);this.rawNotations.push({name:a,humanReadable:t,value:o,critical:n}),t&&(this.notations[a]=L.decodeUTF8(o));break}case Q.signatureSubpacket.preferredHashAlgorithms:this.preferredHashAlgorithms=[...e.subarray(r,e.length)];break;case Q.signatureSubpacket.preferredCompressionAlgorithms:this.preferredCompressionAlgorithms=[...e.subarray(r,e.length)];break;case Q.signatureSubpacket.keyServerPreferences:this.keyServerPreferences=[...e.subarray(r,e.length)];break;case Q.signatureSubpacket.preferredKeyServer:this.preferredKeyServer=L.decodeUTF8(e.subarray(r,e.length));break;case Q.signatureSubpacket.primaryUserID:this.isPrimaryUserID=0!==e[r++];break;case Q.signatureSubpacket.policyURI:this.policyURI=L.decodeUTF8(e.subarray(r,e.length));break;case Q.signatureSubpacket.keyFlags:this.keyFlags=[...e.subarray(r,e.length)];break;case Q.signatureSubpacket.signersUserID:this.signersUserID=L.decodeUTF8(e.subarray(r,e.length));break;case Q.signatureSubpacket.reasonForRevocation:this.reasonForRevocationFlag=e[r++],this.reasonForRevocationString=L.decodeUTF8(e.subarray(r,e.length));break;case Q.signatureSubpacket.features:this.features=[...e.subarray(r,e.length)];break;case Q.signatureSubpacket.signatureTarget:{this.signatureTargetPublicKeyAlgorithm=e[r++],this.signatureTargetHashAlgorithm=e[r++];const t=Qe(this.signatureTargetHashAlgorithm);this.signatureTargetHash=L.uint8ArrayToString(e.subarray(r,r+t));break}case Q.signatureSubpacket.embeddedSignature:this.embeddedSignature=new Ds,this.embeddedSignature.read(e.subarray(r,e.length));break;case Q.signatureSubpacket.issuerFingerprint:this.issuerKeyVersion=e[r++],this.issuerFingerprint=e.subarray(r,e.length),this.issuerKeyVersion>=5?this.issuerKeyID.read(this.issuerFingerprint):this.issuerKeyID.read(this.issuerFingerprint.subarray(-8));break;case Q.signatureSubpacket.preferredAEADAlgorithms:this.preferredAEADAlgorithms=[...e.subarray(r,e.length)];break;case Q.signatureSubpacket.preferredCipherSuites:this.preferredCipherSuites=[];for(let t=r;t{r+=e.length},()=>{const n=[];return 5!==this.version||this.signatureType!==Q.signature.binary&&this.signatureType!==Q.signature.text||(t?n.push(new Uint8Array(6)):n.push(e.writeHeader())),n.push(new Uint8Array([this.version,255])),5===this.version&&n.push(new Uint8Array(4)),n.push(L.writeNumber(r,4)),L.concat(n)})}toHash(e,t,r=!1){const n=this.toSign(e,t);return L.concat([this.salt||new Uint8Array,n,this.signatureData,this.calculateTrailer(t,r)])}async hash(e,t,r,n=!1){if(6===this.version&&this.salt.length!==Ks(this.hashAlgorithm))throw new Error("Signature salt does not have the expected length");return r||(r=this.toHash(e,t,n)),Re(this.hashAlgorithm,r)}async verify(e,t,r,n=new Date,i=!1,s=N){if(!this.issuerKeyID.equals(e.getKeyID()))throw new Error("Signature was not issued by the given public key");if(this.publicKeyAlgorithm!==e.algorithm)throw new Error("Public key algorithm used to sign signature does not match issuer key algorithm.");const a=t===Q.signature.binary||t===Q.signature.text;if(!this[Bs]||a){let n,s;if(this.hashed?s=await this.hashed:(n=this.toHash(t,r,i),s=await this.hash(t,r,n)),s=await P(s),this.signedHashValue[0]!==s[0]||this.signedHashValue[1]!==s[1])throw new Error("Signed digest did not match");if(this.params=await this.params,this[Bs]=await bi(this.publicKeyAlgorithm,this.hashAlgorithm,this.params,e.publicParams,n,s),!this[Bs])throw new Error("Signature verification failed")}const o=L.normalizeDate(n);if(o&&this.created>o)throw new Error("Signature creation time is in the future");if(o&&o>=this.getExpirationTime())throw new Error("Signature is expired");if(s.rejectHashAlgorithms.has(this.hashAlgorithm))throw new Error("Insecure hash algorithm: "+Q.read(Q.hash,this.hashAlgorithm).toUpperCase());if(s.rejectMessageHashAlgorithms.has(this.hashAlgorithm)&&[Q.signature.binary,Q.signature.text].includes(this.signatureType))throw new Error("Insecure message hash algorithm: "+Q.read(Q.hash,this.hashAlgorithm).toUpperCase());if(this.unknownSubpackets.forEach(({type:e,critical:t})=>{if(t)throw new Error(`Unknown critical signature subpacket type ${e}`)}),this.rawNotations.forEach(({name:e,critical:t})=>{if(t&&s.knownNotations.indexOf(e)<0)throw new Error(`Unknown critical notation: ${e}`)}),null!==this.revocationKeyClass)throw new Error("This key is intended to be revoked with an authorized key, which OpenPGP.js does not support.")}isExpired(e=new Date){const t=L.normalizeDate(e);return null!==t&&!(this.created<=t&&tDs.prototype.calculateTrailer.apply(await this.correspondingSig,e))}async verify(){const e=await this.correspondingSig;if(!e||e.constructor.tag!==Q.packet.signature)throw new Error("Corresponding signature packet missing");if(e.signatureType!==this.signatureType||e.hashAlgorithm!==this.hashAlgorithm||e.publicKeyAlgorithm!==this.publicKeyAlgorithm||!e.issuerKeyID.equals(this.issuerKeyID)||3===this.version&&6===e.version||6===this.version&&6!==e.version||6===this.version&&!L.equalsUint8Array(e.issuerFingerprint,this.issuerFingerprint)||6===this.version&&!L.equalsUint8Array(e.salt,this.salt))throw new Error("Corresponding signature packet does not match one-pass signature packet");return e.hashed=this.hashed,e.verify.apply(e,arguments)}}function Us(e,t){if(!t[e]){let t;try{t=Q.read(Q.packet,e)}catch{throw new ot(`Unknown packet type with tag: ${e}`)}throw new Error(`Packet not allowed in this context: ${t}`)}return new t[e]}Ps.prototype.hash=Ds.prototype.hash,Ps.prototype.toHash=Ds.prototype.toHash,Ps.prototype.toSign=Ds.prototype.toSign;class Ts extends Array{static async fromBinary(e,t,r=N,n=null,i=!1){const s=new Ts;return await s.read(e,t,r,n,i),s}async read(e,t,r=N,n=null,i=!1){let s;r.additionalAllowedPackets.length&&(s=L.constructAllowedPackets(r.additionalAllowedPackets),t={...t,...s}),this.stream=B(e,async(e,a)=>{const o=F(e),c=M(a);try{let a=L.isStream(e);for(;;){let e,l;if(await c.ready,await st(o,a,async a=>{try{if(a.tag===Q.packet.marker||a.tag===Q.packet.trust||a.tag===Q.packet.padding)return;const e=Us(a.tag,t);try{n?.recordPacket(a.tag,s)}catch(e){if(r.enforceGrammar)throw e;L.printDebugError(e)}e.packets=new Ts,e.fromStream=L.isStream(a.packet),l=e.fromStream;try{await e.read(a.packet,r)}catch(t){if(!(t instanceof at))throw L.wrapError(new ct(`Parsing ${e.constructor.name} failed`),t);throw t}await c.write(e)}catch(t){const n=t instanceof ot&&a.tag<=39,s=t instanceof at&&!(t instanceof ot)&&!r.ignoreUnsupportedPackets,o=t instanceof ct&&!r.ignoreMalformedPackets,l=it(a.tag);if(n||s||o||l||!(t instanceof ot||t instanceof at||t instanceof ct))i?e=t:await c.abort(t);else{const e=new lt(a.tag,a.packet);await c.write(e)}L.printDebugError(t)}}),l&&(a=null),e)throw await o.readToEnd(),e;const u=await o.peekBytes(2);if(!u||!u.length){try{n?.recordEnd()}catch(e){if(r.enforceGrammar)throw e;L.printDebugError(e)}return await c.ready,void await c.close()}}}catch(e){await c.abort(e)}});const a=F(this.stream);for(;;){const{done:e,value:t}=await a.read();if(e?this.stream=null:this.push(t),e||it(t.constructor.tag))break}a.releaseLock()}write(){const e=[];for(let t=0;t{if(t.push(e),i+=e.length,i>=s){const e=Math.min(Math.log(i)/Math.LN2|0,30),r=2**e,n=L.concat([tt(e)].concat(t));return t=[n.subarray(1+r)],i=t[0].length,n.subarray(0,1+r)}},()=>L.concat([et(i)].concat(t))))}else{if(L.isStream(n)){let t=0;e.push(v(S(n),e=>{t+=e.length},()=>nt(r,t)))}else e.push(nt(r,n.length));e.push(n)}}return L.concat(e)}filterByTag(...e){const t=new Ts,r=e=>t=>e===t;for(let n=0;nt.constructor.tag===e)}indexOfTag(...e){const t=[],r=this,n=e=>t=>e===t;for(let i=0;i0)throw new Fs("Missing trailing signature packets")}}}const Qs=L.constructAllowedPackets([ks,Ps,Ds]);class Ns{static get tag(){return Q.packet.compressedData}constructor(e=N){this.packets=null,this.algorithm=e.preferredCompressionAlgorithm,this.compressed=null}async read(e,t=N){await C(e,async e=>{this.algorithm=await e.readByte(),this.compressed=e.remainder(),await this.decompress(t)})}write(){return null===this.compressed&&this.compress(),L.concat([new Uint8Array([this.algorithm]),this.compressed])}async decompress(e=N){const t=Q.read(Q.compression,this.algorithm),r=js[t];if(!r)throw new Error(`${t} decompression not supported`);let n=await r(this.compressed);if(e.maxDecompressedMessageSize!==1/0){let t=0;n=v(n,r=>{if(t+=r.length,t>e.maxDecompressedMessageSize)throw new Error("Maximum decompressed message size exceeded");return r})}h(this.compressed)&&!l(this.compressed)||(n=await P(n)),this.packets=await Ts.fromBinary(n,Qs,e,new Rs)}compress(){const e=Q.read(Q.compression,this.algorithm),t=Hs[e];if(!t)throw new Error(`${e} compression not supported`);const r=this.packets.write();let n=t(r);h(r)&&!l(r)||(n=T(()=>P(n))),this.compressed=n}}function Os(e,t){return r=>{let n;if(n=l(r)?new ReadableStream({async start(e){try{e.enqueue(await P(r)),e.close()}catch(t){e.error(t)}}}):h(r)?r:y(r),n=function(e){const t=F(e);return new ReadableStream({async pull(e){try{const{value:r,done:n}=await t.read();if(n)return void e.close();for(let t=0;t<=r.length;t+=65536)(!t||t{e.enqueue(t),a=!0,r&&(e.close(),o=!0)}},async pull(){for(a=!1;!a&&!o;){const{done:e,value:t}=await i.read();if(e)return void s.push(new Uint8Array,!0);t.length&&s.push(t)}}},{highWaterMark:0})}}function Ls(){return async function(e){const{default:t}=await Promise.resolve().then(function(){return DA});return t(y(e))}}const Gs=e=>({compressor:"undefined"!=typeof CompressionStream&&(()=>new CompressionStream(e)),decompressor:"undefined"!=typeof DecompressionStream&&(()=>new DecompressionStream(e))}),Hs={zip:Os(Gs("deflate-raw").compressor,ms),zlib:Os(Gs("deflate").compressor,bs)},js={uncompressed:e=>e,zip:Os(Gs("deflate-raw").decompressor,ws),zlib:Os(Gs("deflate").decompressor,Es),bzip2:Ls()},Ws=L.constructAllowedPackets([ks,Ns,Ps,Ds]);class Ys{static get tag(){return Q.packet.symEncryptedIntegrityProtectedData}static fromObject({version:e,aeadAlgorithm:t}){if(1!==e&&2!==e)throw new Error("Unsupported SEIPD version");const r=new Ys;return r.version=e,2===e&&(r.aeadAlgorithm=t),r}constructor(){this.version=null,this.cipherAlgorithm=null,this.aeadAlgorithm=null,this.chunkSizeByte=null,this.salt=null,this.encrypted=null,this.packets=null}async read(e){await C(e,async e=>{if(this.version=await e.readByte(),1!==this.version&&2!==this.version)throw new at(`Version ${this.version} of the SEIP packet is unsupported.`);2===this.version&&(this.cipherAlgorithm=await e.readByte(),this.aeadAlgorithm=await e.readByte(),this.chunkSizeByte=await e.readByte(),this.salt=await e.readBytes(32)),this.encrypted=e.remainder()})}write(){return 2===this.version?L.concat([new Uint8Array([this.version,this.cipherAlgorithm,this.aeadAlgorithm,this.chunkSizeByte]),this.salt,this.encrypted]):L.concat([new Uint8Array([this.version]),this.encrypted])}async encrypt(e,t,r=N){const{blockSize:n,keySize:i}=Sr(e);if(t.length!==i)throw new Error("Unexpected session key size");let s=this.packets.write();if(l(s)&&(s=await P(s)),2===this.version)this.cipherAlgorithm=e,this.salt=ge(32),this.chunkSizeByte=r.aeadChunkSizeByte,this.encrypted=await Js(this,"encrypt",t,s);else{const r=await On(e),i=new Uint8Array([211,20]),a=L.concat([r,s,i]),o=await Re(Q.hash.sha1,D(a)),c=L.concat([a,o]);this.encrypted=await Ln(e,t,c,new Uint8Array(n))}return!0}async decrypt(e,t,r=N){if(t.length!==Sr(e).keySize)throw new Error("Unexpected session key size");let n,i=S(this.encrypted);l(i)&&(i=await P(i));let s=!1;if(2===this.version){if(this.cipherAlgorithm!==e)throw new Error("Unexpected session key algorithm");n=await Js(this,"decrypt",t,i)}else{const{blockSize:a}=Sr(e),o=await Gn(e,t,i,new Uint8Array(a)),c=K(D(o),-20),l=K(o,0,-20),u=Promise.all([P(await Re(Q.hash.sha1,D(l))),P(c)]).then(([e,t])=>{if(!L.equalsUint8Array(e,t))throw new Error("Modification detected.");return new Uint8Array}),h=K(l,a+2);n=K(h,0,-2),n=w([n,T(()=>u)]),L.isStream(i)&&r.allowUnauthenticatedStream?s=!0:n=await P(n)}return this.packets=await Ts.fromBinary(n,Ws,r,new Rs,s),!0}}async function Js(e,t,r,n){const i=e instanceof Ys&&2===e.version,s=!i&&e.constructor.tag===Q.packet.aeadEncryptedData;if(!i&&!s)throw new Error("Unexpected packet type");const a=wi(e.aeadAlgorithm,s),o="decrypt"===t?a.tagLength:0,c="encrypt"===t?a.tagLength:0,l=2**(e.chunkSizeByte+6)+o,u=s?8:0,h=new ArrayBuffer(13+u),f=new Uint8Array(h,0,5+u),A=new Uint8Array(h),d=new DataView(h),p=new Uint8Array(h,5,8);f.set([192|e.constructor.tag,e.version,e.cipherAlgorithm,e.aeadAlgorithm,e.chunkSizeByte],0);let g,y,m=0,w=Promise.resolve(),E=0,v=0;if(i){const{keySize:t}=Sr(e.cipherAlgorithm),{ivLength:n}=a,i=new Uint8Array(h,0,5),s=await Pr(Q.hash.sha256,r,e.salt,i,t+n);r=s.subarray(0,t),g=s.subarray(t),g.fill(0,g.length-8),y=new DataView(g.buffer,g.byteOffset,g.byteLength)}else g=e.iv;const k=await a(e.cipherAlgorithm,r);return B(n,async(r,n)=>{if("array"!==L.isStream(r)){const t=new TransformStream({},{highWaterMark:L.getHardwareConcurrency()*2**(e.chunkSizeByte+6),size:e=>e.length});b(t.readable,n),n=t.writable}const s=F(r),a=M(n);try{for(;;){let e=await s.readBytes(l+o)||new Uint8Array;const r=e.subarray(e.length-o);let n,h,b;if(e=e.subarray(0,e.length-o),i)b=g;else{b=g.slice();for(let e=0;e<8;e++)b[g.length-8+e]^=p[e]}if(!m||e.length?(s.unshift(r),n=k[t](e,b,f),n.catch(()=>{}),v+=e.length-o+c):(d.setInt32(5+u+4,E),n=k[t](r,b,A),n.catch(()=>{}),v+=c,h=!0),E+=e.length-o,w=w.then(()=>n).then(async e=>{await a.ready,await a.write(e),v-=e.length}).catch(e=>a.abort(e)),(h||v>a.desiredSize)&&await w,h){await a.close();break}i?y.setInt32(g.length-4,++m):d.setInt32(9,++m)}}catch(e){await a.ready.catch(()=>{}),await a.abort(e)}})}const _s=L.constructAllowedPackets([ks,Ns,Ps,Ds]);class qs{static get tag(){return Q.packet.aeadEncryptedData}constructor(){this.version=1,this.cipherAlgorithm=null,this.aeadAlgorithm=Q.aead.eax,this.chunkSizeByte=null,this.iv=null,this.encrypted=null,this.packets=null}async read(e){await C(e,async e=>{const t=await e.readByte();if(1!==t)throw new at(`Version ${t} of the AEAD-encrypted data packet is not supported.`);this.cipherAlgorithm=await e.readByte(),this.aeadAlgorithm=await e.readByte(),this.chunkSizeByte=await e.readByte();const r=wi(this.aeadAlgorithm,!0);this.iv=await e.readBytes(r.ivLength),this.encrypted=e.remainder()})}write(){return L.concat([new Uint8Array([this.version,this.cipherAlgorithm,this.aeadAlgorithm,this.chunkSizeByte]),this.iv,this.encrypted])}async decrypt(e,t,r=N){this.packets=await Ts.fromBinary(await Js(this,"decrypt",t,S(this.encrypted)),_s,r,new Rs)}async encrypt(e,t,r=N){this.cipherAlgorithm=e;const{ivLength:n}=wi(this.aeadAlgorithm,!0);this.iv=ge(n),this.chunkSizeByte=r.aeadChunkSizeByte;const i=this.packets.write();this.encrypted=await Js(this,"encrypt",t,i)}}class Zs{static get tag(){return Q.packet.publicKeyEncryptedSessionKey}constructor(){this.version=null,this.publicKeyID=new Is,this.publicKeyVersion=null,this.publicKeyFingerprint=null,this.publicKeyAlgorithm=null,this.sessionKey=null,this.sessionKeyAlgorithm=null,this.encrypted={}}static fromObject({version:e,encryptionKeyPacket:t,anonymousRecipient:r,sessionKey:n,sessionKeyAlgorithm:i}){const s=new Zs;if(3!==e&&6!==e)throw new Error("Unsupported PKESK version");return s.version=e,6===e&&(s.publicKeyVersion=r?null:t.version,s.publicKeyFingerprint=r?null:t.getFingerprintBytes()),s.publicKeyID=r?Is.wildcard():t.getKeyID(),s.publicKeyAlgorithm=t.algorithm,s.sessionKey=n,s.sessionKeyAlgorithm=i,s}read(e){let t=0;if(this.version=e[t++],3!==this.version&&6!==this.version)throw new at(`Version ${this.version} of the PKESK packet is unsupported.`);if(6===this.version){const r=e[t++];if(r){this.publicKeyVersion=e[t++];const n=r-1;this.publicKeyFingerprint=e.subarray(t,t+n),t+=n,this.publicKeyVersion>=5?this.publicKeyID.read(this.publicKeyFingerprint):this.publicKeyID.read(this.publicKeyFingerprint.subarray(-8))}else this.publicKeyID=Is.wildcard()}else t+=this.publicKeyID.read(e.subarray(t,t+8));if(this.publicKeyAlgorithm=e[t++],this.encrypted=function(e,t){let r=0;switch(e){case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaEncryptSign:return{c:L.readMPI(t.subarray(r))};case Q.publicKey.elgamal:{const e=L.readMPI(t.subarray(r));return r+=e.length+2,{c1:e,c2:L.readMPI(t.subarray(r))}}case Q.publicKey.ecdh:{const e=L.readMPI(t.subarray(r));r+=e.length+2;const n=new Cn;return n.read(t.subarray(r)),{V:e,C:n}}case Q.publicKey.x25519:case Q.publicKey.x448:{const n=Fn(e),i=L.readExactSubarray(t,r,r+n);r+=i.length;const s=new Dn;return s.read(t.subarray(r)),{ephemeralPublicKey:i,C:s}}default:throw new at("Unknown public key encryption algorithm.")}}(this.publicKeyAlgorithm,e.subarray(t)),this.publicKeyAlgorithm===Q.publicKey.x25519||this.publicKeyAlgorithm===Q.publicKey.x448)if(3===this.version)this.sessionKeyAlgorithm=Q.write(Q.symmetric,this.encrypted.C.algorithm);else if(null!==this.encrypted.C.algorithm)throw new Error("Unexpected cleartext symmetric algorithm")}write(){const e=[new Uint8Array([this.version])];return 6===this.version?null!==this.publicKeyFingerprint?(e.push(new Uint8Array([this.publicKeyFingerprint.length+1,this.publicKeyVersion])),e.push(this.publicKeyFingerprint)):e.push(new Uint8Array([0])):e.push(this.publicKeyID.write()),e.push(new Uint8Array([this.publicKeyAlgorithm]),Pn(this.publicKeyAlgorithm,this.encrypted)),L.concatUint8Array(e)}async encrypt(e){const t=Q.write(Q.publicKey,this.publicKeyAlgorithm),r=3===this.version?this.sessionKeyAlgorithm:null,n=5===e.version?e.getFingerprintBytes().subarray(0,20):e.getFingerprintBytes(),i=Vs(this.version,t,r,this.sessionKey);this.encrypted=await async function(e,t,r,n,i){switch(e){case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaEncryptSign:{const{n:e,e:t}=r;return{c:await Je(n,e,t)}}case Q.publicKey.elgamal:{const{p:e,g:t,y:i}=r;return async function(e,t,r,n){t=se(t),r=se(r),n=se(n);const i=se(Oe(e,Ae(t))),s=ye(Ve,t-Ve);return{c1:de(oe(r,s,t)),c2:de(ae(oe(n,s,t)*i,t))}}(n,e,t,i)}case Q.publicKey.ecdh:{const{oid:e,Q:t,kdfParams:s}=r,{publicKey:a,wrappedKey:o}=await mn(e,s,n,t,i);return{V:a,C:new Cn(o)}}case Q.publicKey.x25519:case Q.publicKey.x448:{if(t&&!L.isAES(t))throw new Error("X25519 and X448 keys can only encrypt AES session keys");const{A:i}=r,{ephemeralPublicKey:s,wrappedKey:a}=await Mr(e,n,i);return{ephemeralPublicKey:s,C:Dn.fromObject({algorithm:t,wrappedKey:a})}}default:return[]}}(t,r,e.publicParams,i,n)}async decrypt(e,t){if(this.publicKeyAlgorithm!==e.algorithm)throw new Error("Decryption error");const r=t?Vs(this.version,this.publicKeyAlgorithm,t.sessionKeyAlgorithm,t.sessionKey):null,n=5===e.version?e.getFingerprintBytes().subarray(0,20):e.getFingerprintBytes(),i=await xn(this.publicKeyAlgorithm,e.publicParams,e.privateParams,this.encrypted,n,r),{sessionKey:s,sessionKeyAlgorithm:a}=function(e,t,r,n){switch(t){case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaEncryptSign:case Q.publicKey.elgamal:case Q.publicKey.ecdh:{const t=r.subarray(0,r.length-2),i=r.subarray(r.length-2),s=L.writeChecksum(t.subarray(t.length%8)),a=s[0]===i[0]&s[1]===i[1],o=6===e?{sessionKeyAlgorithm:null,sessionKey:t}:{sessionKeyAlgorithm:t[0],sessionKey:t.subarray(1)};if(n){const t=a&o.sessionKeyAlgorithm===n.sessionKeyAlgorithm&o.sessionKey.length===n.sessionKey.length;return{sessionKey:L.selectUint8Array(t,o.sessionKey,n.sessionKey),sessionKeyAlgorithm:6===e?null:L.selectUint8(t,o.sessionKeyAlgorithm,n.sessionKeyAlgorithm)}}if(a&&(6===e||Q.read(Q.symmetric,o.sessionKeyAlgorithm)))return o;throw new Error("Decryption error")}case Q.publicKey.x25519:case Q.publicKey.x448:return{sessionKeyAlgorithm:null,sessionKey:r};default:throw new Error("Unsupported public key algorithm")}}(this.version,this.publicKeyAlgorithm,i,t);if(3===this.version){const e=this.publicKeyAlgorithm!==Q.publicKey.x25519&&this.publicKeyAlgorithm!==Q.publicKey.x448;if(this.sessionKeyAlgorithm=e?a:this.sessionKeyAlgorithm,s.length!==Sr(this.sessionKeyAlgorithm).keySize)throw new Error("Unexpected session key size")}this.sessionKey=s}}function Vs(e,t,r,n){switch(t){case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaEncryptSign:case Q.publicKey.elgamal:case Q.publicKey.ecdh:return L.concatUint8Array([new Uint8Array(6===e?[]:[r]),n,L.writeChecksum(n.subarray(n.length%8))]);case Q.publicKey.x25519:case Q.publicKey.x448:return n;default:throw new Error("Unsupported public key algorithm")}}class zs{static get tag(){return Q.packet.symEncryptedSessionKey}constructor(e=N){this.version=e.aeadProtect?6:4,this.sessionKey=null,this.sessionKeyEncryptionAlgorithm=null,this.sessionKeyAlgorithm=null,this.aeadAlgorithm=Q.write(Q.aead,e.preferredAEADAlgorithm),this.encrypted=null,this.s2k=null,this.iv=null}read(e){let t=0;if(this.version=e[t++],4!==this.version&&5!==this.version&&6!==this.version)throw new at(`Version ${this.version} of the SKESK packet is unsupported.`);6===this.version&&t++;const r=e[t++];this.version>=5&&(this.aeadAlgorithm=e[t++],6===this.version&&t++);const n=e[t++];if(this.s2k=Si(n),t+=this.s2k.read(e.subarray(t,e.length)),this.version>=5){const r=wi(this.aeadAlgorithm,!0);this.iv=e.subarray(t,t+=r.ivLength)}this.version>=5||t=5){const e=wi(this.aeadAlgorithm,!0),r=new Uint8Array([192|zs.tag,this.version,this.sessionKeyEncryptionAlgorithm,this.aeadAlgorithm]),s=6===this.version?await Pr(Q.hash.sha256,i,new Uint8Array,r,n):i,a=await e(t,s);this.sessionKey=await a.decrypt(this.encrypted,this.iv,r)}else if(null!==this.encrypted){const e=await Gn(t,i,this.encrypted,new Uint8Array(r));if(this.sessionKeyAlgorithm=Q.write(Q.symmetric,e[0]),this.sessionKey=e.subarray(1,e.length),this.sessionKey.length!==Sr(this.sessionKeyAlgorithm).keySize)throw new Error("Unexpected session key size")}else this.sessionKey=i}async encrypt(e,t=N){const r=null!==this.sessionKeyEncryptionAlgorithm?this.sessionKeyEncryptionAlgorithm:this.sessionKeyAlgorithm;this.sessionKeyEncryptionAlgorithm=r,this.s2k=Di(t),this.s2k.generateSalt();const{blockSize:n,keySize:i}=Sr(r),s=await this.s2k.produceKey(e,i);if(null===this.sessionKey&&(this.sessionKey=Un(this.sessionKeyAlgorithm)),this.version>=5){const e=wi(this.aeadAlgorithm);this.iv=ge(e.ivLength);const t=new Uint8Array([192|zs.tag,this.version,this.sessionKeyEncryptionAlgorithm,this.aeadAlgorithm]),n=6===this.version?await Pr(Q.hash.sha256,s,new Uint8Array,t,i):s,a=await e(r,n);this.encrypted=await a.encrypt(this.sessionKey,this.iv,t)}else{const e=L.concatUint8Array([new Uint8Array([this.sessionKeyAlgorithm]),this.sessionKey]);this.encrypted=await Ln(r,s,e,new Uint8Array(n))}}}class Xs{static get tag(){return Q.packet.publicKey}constructor(e=new Date,t=N){this.version=t.v6Keys?6:4,this.created=L.normalizeDate(e),this.algorithm=null,this.publicParams=null,this.expirationTimeV3=0,this.fingerprint=null,this.keyID=null}static fromSecretKeyPacket(e){const t=new Xs,{version:r,created:n,algorithm:i,publicParams:s,keyID:a,fingerprint:o}=e;return t.version=r,t.created=n,t.algorithm=i,t.publicParams=s,t.keyID=a,t.fingerprint=o,t}async read(e,t=N){let r=0;if(this.version=e[r++],5===this.version&&!t.enableParsingV5Entities)throw new at("Support for parsing v5 entities is disabled; turn on `config.enableParsingV5Entities` if needed");if(4===this.version||5===this.version||6===this.version){this.created=L.readDate(e.subarray(r,r+4)),r+=4,this.algorithm=e[r++],this.version>=5&&(r+=4);const{read:t,publicParams:n}=function(e,t){let r=0;switch(e){case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaSign:{const e=L.readMPI(t.subarray(r));r+=e.length+2;const n=L.readMPI(t.subarray(r));return r+=n.length+2,{read:r,publicParams:{n:e,e:n}}}case Q.publicKey.dsa:{const e=L.readMPI(t.subarray(r));r+=e.length+2;const n=L.readMPI(t.subarray(r));r+=n.length+2;const i=L.readMPI(t.subarray(r));r+=i.length+2;const s=L.readMPI(t.subarray(r));return r+=s.length+2,{read:r,publicParams:{p:e,q:n,g:i,y:s}}}case Q.publicKey.elgamal:{const e=L.readMPI(t.subarray(r));r+=e.length+2;const n=L.readMPI(t.subarray(r));r+=n.length+2;const i=L.readMPI(t.subarray(r));return r+=i.length+2,{read:r,publicParams:{p:e,g:n,y:i}}}case Q.publicKey.ecdsa:{const e=new Xe;r+=e.read(t),Tn(e);const n=L.readMPI(t.subarray(r));return r+=n.length+2,{read:r,publicParams:{oid:e,Q:n}}}case Q.publicKey.eddsaLegacy:{const e=new Xe;if(r+=e.read(t),Tn(e),e.getName()!==Q.curve.ed25519Legacy)throw new Error("Unexpected OID for eddsaLegacy");let n=L.readMPI(t.subarray(r));return r+=n.length+2,n=L.leftPad(n,33),{read:r,publicParams:{oid:e,Q:n}}}case Q.publicKey.ecdh:{const e=new Xe;r+=e.read(t),Tn(e);const n=L.readMPI(t.subarray(r));r+=n.length+2;const i=new Sn;return r+=i.read(t.subarray(r)),{read:r,publicParams:{oid:e,Q:n,kdfParams:i}}}case Q.publicKey.ed25519:case Q.publicKey.ed448:case Q.publicKey.x25519:case Q.publicKey.x448:{const n=L.readExactSubarray(t,r,r+Fn(e));return r+=n.length,{read:r,publicParams:{A:n}}}default:throw new at("Unknown public key encryption algorithm.")}}(this.algorithm,e.subarray(r));if(6===this.version&&n.oid&&(n.oid.getName()===Q.curve.curve25519Legacy||n.oid.getName()===Q.curve.ed25519Legacy))throw new Error("Legacy curve25519 cannot be used with v6 keys");return this.publicParams=n,r+=t,await this.computeFingerprintAndKeyID(),r}throw new at(`Version ${this.version} of the key packet is unsupported.`)}write(){const e=[];e.push(new Uint8Array([this.version])),e.push(L.writeDate(this.created)),e.push(new Uint8Array([this.algorithm]));const t=Pn(this.algorithm,this.publicParams);return this.version>=5&&e.push(L.writeNumber(t.length,4)),e.push(t),L.concatUint8Array(e)}writeForHash(e){const t=this.writePublicKey(),r=149+e,n=e>=5?4:2;return L.concatUint8Array([new Uint8Array([r]),L.writeNumber(t.length,n),t])}isDecrypted(){return null}getCreationTime(){return this.created}getKeyID(){return this.keyID}async computeFingerprintAndKeyID(){if(await this.computeFingerprint(),this.keyID=new Is,this.version>=5)this.keyID.read(this.fingerprint.subarray(0,8));else{if(4!==this.version)throw new Error("Unsupported key version");this.keyID.read(this.fingerprint.subarray(12,20))}}async computeFingerprint(){const e=this.writeForHash(this.version);if(this.version>=5)this.fingerprint=await Re(Q.hash.sha256,e);else{if(4!==this.version)throw new Error("Unsupported key version");this.fingerprint=await Re(Q.hash.sha1,e)}}getFingerprintBytes(){return this.fingerprint}getFingerprint(){return L.uint8ArrayToHex(this.getFingerprintBytes())}hasSameFingerprintAs(e){return this.version===e.version&&L.equalsUint8Array(this.writePublicKey(),e.writePublicKey())}getAlgorithmInfo(){const e={};e.algorithm=Q.read(Q.publicKey,this.algorithm);const t=this.publicParams.n||this.publicParams.p;return t?e.bits=L.uint8ArrayBitLength(t):this.publicParams.oid&&(e.curve=this.publicParams.oid.getName()),e}}Xs.prototype.readPublicKey=Xs.prototype.read,Xs.prototype.writePublicKey=Xs.prototype.write;const $s=L.constructAllowedPackets([ks,Ns,Ps,Ds]);class ea{static get tag(){return Q.packet.symmetricallyEncryptedData}constructor(){this.encrypted=null,this.packets=null}read(e){this.encrypted=e}write(){return this.encrypted}async decrypt(e,t,r=N){if(!r.allowUnauthenticatedMessages)throw new Error("Message is not authenticated.");const{blockSize:n}=Sr(e),i=await P(S(this.encrypted)),s=await Gn(e,t,i.subarray(n+2),i.subarray(2,n+2));this.packets=await Ts.fromBinary(s,$s,r)}async encrypt(e,t,r=N){const n=this.packets.write(),{blockSize:i}=Sr(e),s=await On(e),a=await Ln(e,t,s,new Uint8Array(i)),o=await Ln(e,t,n,a.subarray(2));this.encrypted=L.concat([a,o])}}class ta{static get tag(){return Q.packet.marker}read(e){return 80===e[0]&&71===e[1]&&80===e[2]}write(){return new Uint8Array([80,71,80])}}class ra extends Xs{static get tag(){return Q.packet.publicSubkey}constructor(e,t){super(e,t)}static fromSecretSubkeyPacket(e){const t=new ra,{version:r,created:n,algorithm:i,publicParams:s,keyID:a,fingerprint:o}=e;return t.version=r,t.created=n,t.algorithm=i,t.publicParams=s,t.keyID=a,t.fingerprint=o,t}}class na{static get tag(){return Q.packet.userAttribute}constructor(){this.attributes=[]}read(e){let t=0;for(;t=s)return!1;if(ae(s-Bn,a)!==In)return!1;if(oe(o,a,s)!==Bn)return!1;const l=BigInt(fe(a));if(l=i)return!1;const o=BigInt(fe(i));if(o{je.generateKeyPair("rsa",r,(r,n,i)=>{r?t(r):e(i)})});return Ze(n,t)}let r,n,i;do{n=we(e-(e>>1),t,40),r=we(e>>1,t,40),i=r*n}while(fe(i)!==e);const s=(r-We)*(n-We);return n({privateParams:{d:r,p:n,q:i,u:s},publicParams:{n:e,e:t}}));case Q.publicKey.ecdsa:return Vr(r).then(({oid:e,Q:t,secret:r})=>({privateParams:{d:r},publicParams:{oid:new Xe(e),Q:t}}));case Q.publicKey.eddsaLegacy:return Vr(r).then(({oid:e,Q:t,secret:r})=>({privateParams:{seed:r},publicParams:{oid:new Xe(e),Q:t}}));case Q.publicKey.ecdh:return Vr(r).then(({oid:e,Q:t,secret:r,hash:n,cipher:i})=>({privateParams:{d:r},publicParams:{oid:new Xe(e),Q:t,kdfParams:new Sn({hash:n,cipher:i})}}));case Q.publicKey.ed25519:case Q.publicKey.ed448:return ut(e).then(({A:e,seed:t})=>({privateParams:{seed:t},publicParams:{A:e}}));case Q.publicKey.x25519:case Q.publicKey.x448:return Tr(e).then(({A:e,k:t})=>({privateParams:{k:t},publicParams:{A:e}}));case Q.publicKey.dsa:case Q.publicKey.elgamal:throw new Error("Unsupported algorithm for key generation.");default:throw new Error("Unknown public key algorithm.")}}(this.algorithm,e,t);this.privateParams=r,this.publicParams=n,this.isEncrypted=!1}clearPrivateParams(){this.isMissingSecretKeyMaterial()||(Object.keys(this.privateParams).forEach(e=>{this.privateParams[e].fill(0),delete this.privateParams[e]}),this.privateParams=null,this.isEncrypted=!0)}}async function sa(e,t,r,n,i,s,a){if("argon2"===t.type&&!i)throw new Error("Using Argon2 S2K without AEAD is not allowed");if("simple"===t.type&&6===e)throw new Error("Using Simple S2K with version 6 keys is not allowed");const{keySize:o}=Sr(n),c=await t.produceKey(r,o);if(!i||5===e||a)return c;const l=L.concatUint8Array([s,new Uint8Array([e,n,i])]);return Pr(Q.hash.sha256,c,new Uint8Array,l,o)}class aa{static get tag(){return Q.packet.userID}constructor(){this.userID="",this.name="",this.email="",this.comment=""}static fromObject(e){if(L.isString(e)||e.name&&!L.isString(e.name)||e.email&&!L.isEmailAddress(e.email)||e.comment&&!L.isString(e.comment))throw new Error("Invalid user ID format");const t=new aa;Object.assign(t,e);const r=[];return t.name&&r.push(t.name),t.comment&&r.push(`(${t.comment})`),t.email&&r.push(`<${t.email}>`),t.userID=r.join(" "),t}read(e,t=N){const r=L.decodeUTF8(e);if(r.length>t.maxUserIDLength)throw new Error("User ID string is too long");const n=e=>/^[^\s@]+@[^\s@]+$/.test(e),i=r.indexOf("<"),s=r.lastIndexOf(">");if(-1!==i&&-1!==s&&s>i){const e=r.substring(i+1,s);if(n(e)){this.email=e;const t=r.substring(0,i).trim(),n=t.indexOf("("),s=t.lastIndexOf(")");-1!==n&&-1!==s&&s>n?(this.comment=t.substring(n+1,s).trim(),this.name=t.substring(0,n).trim()):(this.name=t,this.comment="")}}else n(r.trim())&&(this.email=r.trim(),this.name="",this.comment="");this.userID=r}write(){return L.encodeUTF8(this.userID)}equals(e){return e&&e.userID===this.userID}}class oa extends ia{static get tag(){return Q.packet.secretSubkey}constructor(e=new Date,t=N){super(e,t)}}class ca{static get tag(){return Q.packet.trust}read(){throw new at("Trust packets are not supported")}write(){throw new at("Trust packets are not supported")}}class la{static get tag(){return Q.packet.padding}constructor(){this.padding=null}read(e){}write(){return this.padding}async createPadding(e){this.padding=ge(e)}}const ua=L.constructAllowedPackets([Ds]);class ha{constructor(e){this.packets=e||new Ts}write(){return this.packets.write()}armor(e=N){const t=this.packets.some(e=>e.constructor.tag===Ds.tag&&6!==e.version);return re(Q.armor.signature,this.write(),void 0,void 0,void 0,t,e)}getSigningKeyIDs(){return this.packets.map(e=>e.issuerKeyID)}}async function fa({armoredSignature:e,binarySignature:t,config:r,...n}){r={...N,...r};let i=e||t;if(!i)throw new Error("readSignature: must pass options object containing `armoredSignature` or `binarySignature`");if(e&&!L.isString(e))throw new Error("readSignature: options.armoredSignature must be a string");if(t&&!L.isUint8Array(t))throw new Error("readSignature: options.binarySignature must be a Uint8Array");const s=Object.keys(n);if(s.length>0)throw new Error(`Unknown option: ${s.join(", ")}`);if(e){const{type:e,data:t}=await te(i);if(e!==Q.armor.signature)throw new Error("Armored text not of type signature");i=t}const a=await Ts.fromBinary(i,ua,r);return new ha(a)}async function Aa(e,t){const r=new oa(e.date,t);return r.packets=null,r.algorithm=Q.write(Q.publicKey,e.algorithm),await r.generate(e.rsaBits,e.curve),await r.computeFingerprintAndKeyID(),r}async function da(e,t){const r=new ia(e.date,t);return r.packets=null,r.algorithm=Q.write(Q.publicKey,e.algorithm),await r.generate(e.rsaBits,e.curve,e.config),await r.computeFingerprintAndKeyID(),r}async function pa(e,t,r,n,i=new Date,s){let a,o;for(let c=e.length-1;c>=0;c--)try{(!a||e[c].created>=a.created)&&(await e[c].verify(t,r,n,i,void 0,s),a=e[c])}catch(e){o=e}if(!a)throw L.wrapError(`Could not find valid ${Q.read(Q.signature,r)} signature in key ${t.getKeyID().toHex()}`.replace("certGeneric ","self-").replace(/([a-z])([A-Z])/g,(e,t,r)=>t+" "+r.toLowerCase()),o);return a}function ga(e,t,r=new Date){const n=L.normalizeDate(r);if(null!==n){const r=Ea(e,t);return!(e.created<=n&&n0&&(s.keyExpirationTime=r.keyExpirationTime,s.keyNeverExpires=!1),await ma(i,[],t,s,r.date,void 0,void 0,void 0,n)}async function ma(e,t,r,n,i,s,a=[],o=!1,c){if(r.isDummy())throw new Error("Cannot sign with a gnu-dummy key.");if(!r.isDecrypted())throw new Error("Signing key is not decrypted.");const l=new Ds;return Object.assign(l,n),l.publicKeyAlgorithm=r.algorithm,l.hashAlgorithm=await async function(e,t,r=new Date,n=[],i){const s=Q.hash.sha256,a=i.preferredHashAlgorithm,o=await Promise.all(e.map(async(e,t)=>(await e.getPrimarySelfSignature(r,n[t],i)).preferredHashAlgorithms||[])),c=new Map;for(const e of o)for(const t of e)try{const e=Q.write(Q.hash,t);c.set(e,c.has(e)?c.get(e)+1:1)}catch{}const l=t=>0===e.length||c.get(t)===e.length||t===s,u=()=>{if(0===c.size)return s;const e=Array.from(c.keys()).filter(e=>l(e)).sort((e,t)=>Qe(e)-Qe(t))[0];return Qe(e)>=Qe(s)?e:s};if(new Set([Q.publicKey.ecdsa,Q.publicKey.eddsaLegacy,Q.publicKey.ed25519,Q.publicKey.ed448]).has(t.algorithm)){const e=function(e,t){switch(e){case Q.publicKey.ecdsa:case Q.publicKey.eddsaLegacy:return zr(t);case Q.publicKey.ed25519:case Q.publicKey.ed448:return pt(e);default:throw new Error("Unknown elliptic signing algo")}}(t.algorithm,t.publicParams.oid),r=l(a),n=Qe(a)>=Qe(e);if(r&&n)return a;{const t=u();return Qe(t)>=Qe(e)?t:e}}return l(a)?a:u()}(t,r,i,s,c),l.rawNotations=[...a],await l.sign(r,e,i,o,c),l}async function wa(e,t,r,n=new Date,i){(e=e[r])&&(t[r].length?await Promise.all(e.map(async function(e){e.isExpired(n)||i&&!await i(e)||t[r].some(function(t){return L.equalsUint8Array(t.writeParams(),e.writeParams())})||t[r].push(e)})):t[r]=e)}async function ba(e,t,r,n,i,s,a=new Date,o){s=s||e;const c=[];return await Promise.all(n.map(async function(e){try{if(!i||e.issuerKeyID.equals(i.issuerKeyID)){const n=![Q.reasonForRevocation.keyRetired,Q.reasonForRevocation.keySuperseded,Q.reasonForRevocation.userIDInvalid].includes(e.reasonForRevocationFlag);await e.verify(s,t,r,n?null:a,!1,o),c.push(e.issuerKeyID)}}catch{}})),i?(i.revoked=!!c.some(e=>e.equals(i.issuerKeyID))||i.revoked||!1,i.revoked):c.length>0}function Ea(e,t){let r;return!1===t.keyNeverExpires&&(r=e.created.getTime()+1e3*t.keyExpirationTime),r?new Date(r):1/0}function va(e,t={}){switch(e.type=e.type||t.type,e.curve=e.curve||t.curve,e.rsaBits=e.rsaBits||t.rsaBits,e.keyExpirationTime=void 0!==e.keyExpirationTime?e.keyExpirationTime:t.keyExpirationTime,e.passphrase=L.isString(e.passphrase)?e.passphrase:t.passphrase,e.date=e.date||t.date,e.sign=e.sign||!1,e.type){case"ecc":try{e.curve=Q.write(Q.curve,e.curve)}catch{throw new Error("Unknown curve")}e.curve!==Q.curve.ed25519Legacy&&e.curve!==Q.curve.curve25519Legacy&&"ed25519"!==e.curve&&"curve25519"!==e.curve||(e.curve=e.sign?Q.curve.ed25519Legacy:Q.curve.curve25519Legacy),e.sign?e.algorithm=e.curve===Q.curve.ed25519Legacy?Q.publicKey.eddsaLegacy:Q.publicKey.ecdsa:e.algorithm=Q.publicKey.ecdh;break;case"curve25519":e.algorithm=e.sign?Q.publicKey.ed25519:Q.publicKey.x25519;break;case"curve448":e.algorithm=e.sign?Q.publicKey.ed448:Q.publicKey.x448;break;case"rsa":e.algorithm=Q.publicKey.rsaEncryptSign;break;default:throw new Error(`Unsupported key type ${e.type}`)}return e}function ka(e,t,r){switch(e.algorithm){case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaSign:case Q.publicKey.dsa:case Q.publicKey.ecdsa:case Q.publicKey.eddsaLegacy:case Q.publicKey.ed25519:case Q.publicKey.ed448:if(!t.keyFlags&&!r.allowMissingKeyFlags)throw new Error("None of the key flags is set: consider passing `config.allowMissingKeyFlags`");return!t.keyFlags||0!==(t.keyFlags[0]&Q.keyFlags.signData);default:return!1}}function Ia(e,t,r){switch(e.algorithm){case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaEncrypt:case Q.publicKey.elgamal:case Q.publicKey.ecdh:case Q.publicKey.x25519:case Q.publicKey.x448:if(!t.keyFlags&&!r.allowMissingKeyFlags)throw new Error("None of the key flags is set: consider passing `config.allowMissingKeyFlags`");return!t.keyFlags||0!==(t.keyFlags[0]&Q.keyFlags.encryptCommunication)||0!==(t.keyFlags[0]&Q.keyFlags.encryptStorage);default:return!1}}function Ba(e,t,r){if(!t.keyFlags&&!r.allowMissingKeyFlags)throw new Error("None of the key flags is set: consider passing `config.allowMissingKeyFlags`");switch(e.algorithm){case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaEncrypt:case Q.publicKey.elgamal:case Q.publicKey.ecdh:case Q.publicKey.x25519:case Q.publicKey.x448:return!(t.keyFlags&&0===(t.keyFlags[0]&Q.keyFlags.signData)||!r.allowInsecureDecryptionWithSigningKeys)||!t.keyFlags||0!==(t.keyFlags[0]&Q.keyFlags.encryptCommunication)||0!==(t.keyFlags[0]&Q.keyFlags.encryptStorage);default:return!1}}function Ca(e,t){const r=Q.write(Q.publicKey,e.algorithm),n=e.getAlgorithmInfo();if(t.rejectPublicKeyAlgorithms.has(r))throw new Error(`${n.algorithm} keys are considered too weak.`);switch(r){case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaSign:case Q.publicKey.rsaEncrypt:if(n.bitse.getKeys(o).length>0);return 0===c.length?null:(await Promise.all(c.map(async t=>{const s=await t.getSigningKey(o,e.created,void 0,n);if(e.revoked||await i.isRevoked(e,s.keyPacket,r,n))throw new Error("User certificate is revoked");try{await e.verify(s.keyPacket,Q.signature.certGeneric,a,r,void 0,n)}catch(e){throw L.wrapError("User certificate is invalid",e)}})),!0)}async verifyAllCertifications(e,t=new Date,r){const n=this,i=this.selfCertifications.concat(this.otherCertifications);return Promise.all(i.map(async i=>({keyID:i.issuerKeyID,valid:await n.verifyCertificate(i,e,t,r).catch(()=>!1)})))}async verify(e=new Date,t){if(!this.selfCertifications.length)throw new Error("No self-certifications found");const r=this,n=this.mainKey.keyPacket,i={userID:this.userID,userAttribute:this.userAttribute,key:n};let s;for(let a=this.selfCertifications.length-1;a>=0;a--)try{const s=this.selfCertifications[a];if(s.revoked||await r.isRevoked(s,void 0,e,t))throw new Error("Self-certification is revoked");try{await s.verify(n,Q.signature.certGeneric,i,e,void 0,t)}catch(e){throw L.wrapError("Self-certification is invalid",e)}return!0}catch(e){s=e}throw s}async update(e,t,r){const n=this.mainKey.keyPacket,i={userID:this.userID,userAttribute:this.userAttribute,key:n};await wa(e,this,"selfCertifications",t,async function(e){try{return await e.verify(n,Q.signature.certGeneric,i,t,!1,r),!0}catch{return!1}}),await wa(e,this,"otherCertifications",t),await wa(e,this,"revocationSignatures",t,function(e){return ba(n,Q.signature.certRevocation,i,[e],void 0,void 0,t,r)})}async revoke(e,{flag:t=Q.reasonForRevocation.noReason,string:r=""}={},n=new Date,i=N){const s={userID:this.userID,userAttribute:this.userAttribute,key:e},a=new Sa(s.userID||s.userAttribute,this.mainKey);return a.revocationSignatures.push(await ma(s,[],e,{signatureType:Q.signature.certRevocation,reasonForRevocationFlag:Q.write(Q.reasonForRevocation,t),reasonForRevocationString:r},n,void 0,void 0,!1,i)),await a.update(this),a}}class Da{constructor(e,t){this.keyPacket=e,this.bindingSignatures=[],this.revocationSignatures=[],this.mainKey=t}toPacketList(){const e=new Ts;return e.push(this.keyPacket),e.push(...this.revocationSignatures),e.push(...this.bindingSignatures),e}clone(){const e=new Da(this.keyPacket,this.mainKey);return e.bindingSignatures=[...this.bindingSignatures],e.revocationSignatures=[...this.revocationSignatures],e}async isRevoked(e,t,r=new Date,n=N){const i=this.mainKey.keyPacket;return ba(i,Q.signature.subkeyRevocation,{key:i,bind:this.keyPacket},this.revocationSignatures,e,t,r,n)}async verify(e=new Date,t=N){const r=this.mainKey.keyPacket,n={key:r,bind:this.keyPacket},i=await pa(this.bindingSignatures,r,Q.signature.subkeyBinding,n,e,t);if(i.revoked||await this.isRevoked(i,null,e,t))throw new Error("Subkey is revoked");if(ga(this.keyPacket,i,e))throw new Error("Subkey is expired");return i}async getExpirationTime(e=new Date,t=N){const r=this.mainKey.keyPacket,n={key:r,bind:this.keyPacket};let i;try{i=await pa(this.bindingSignatures,r,Q.signature.subkeyBinding,n,e,t)}catch{return null}const s=Ea(this.keyPacket,i),a=i.getExpirationTime();return si.bindingSignatures[t].created&&(i.bindingSignatures[t]=e),!1;try{return await e.verify(n,Q.signature.subkeyBinding,s,t,void 0,r),!0}catch{return!1}}),await wa(e,this,"revocationSignatures",t,function(e){return ba(n,Q.signature.subkeyRevocation,s,[e],void 0,void 0,t,r)})}async revoke(e,{flag:t=Q.reasonForRevocation.noReason,string:r=""}={},n=new Date,i=N){const s={key:e,bind:this.keyPacket},a=new Da(this.keyPacket,this.mainKey);return a.revocationSignatures.push(await ma(s,[],e,{signatureType:Q.signature.subkeyRevocation,reasonForRevocationFlag:Q.write(Q.reasonForRevocation,t),reasonForRevocationString:r},n,void 0,void 0,!1,i)),await a.update(this),a}hasSameFingerprintAs(e){return this.keyPacket.hasSameFingerprintAs(e.keyPacket||e)}}["getKeyID","getFingerprint","getAlgorithmInfo","getCreationTime","isDecrypted"].forEach(e=>{Da.prototype[e]=function(){return this.keyPacket[e]()}});const xa=L.constructAllowedPackets([Ds]),Ka=new Set([Q.packet.publicKey,Q.packet.privateKey]),Pa=new Set([Q.packet.publicKey,Q.packet.privateKey,Q.packet.publicSubkey,Q.packet.privateSubkey]);class Ua{packetListToStructure(e,t=new Set){let r,n,i,s;for(const a of e){if(a instanceof lt){Pa.has(a.tag)&&!s&&(s=Ka.has(a.tag)?Ka:Pa);continue}const e=a.constructor.tag;if(s){if(!s.has(e))continue;s=null}if(t.has(e))throw new Error(`Unexpected packet type: ${e}`);switch(e){case Q.packet.publicKey:case Q.packet.secretKey:if(this.keyPacket)throw new Error("Key block contains multiple keys");if(this.keyPacket=a,n=this.getKeyID(),!n)throw new Error("Missing Key ID");break;case Q.packet.userID:case Q.packet.userAttribute:r=new Sa(a,this),this.users.push(r);break;case Q.packet.publicSubkey:case Q.packet.secretSubkey:r=null,i=new Da(a,this),this.subkeys.push(i);break;case Q.packet.signature:switch(a.signatureType){case Q.signature.certGeneric:case Q.signature.certPersona:case Q.signature.certCasual:case Q.signature.certPositive:if(!r){L.printDebug("Dropping certification signatures without preceding user packet");continue}a.issuerKeyID.equals(n)?r.selfCertifications.push(a):r.otherCertifications.push(a);break;case Q.signature.certRevocation:r?r.revocationSignatures.push(a):this.directSignatures.push(a);break;case Q.signature.key:this.directSignatures.push(a);break;case Q.signature.subkeyBinding:if(!i){L.printDebug("Dropping subkey binding signature without preceding subkey packet");continue}i.bindingSignatures.push(a);break;case Q.signature.keyRevocation:this.revocationSignatures.push(a);break;case Q.signature.subkeyRevocation:if(!i){L.printDebug("Dropping subkey revocation signature without preceding subkey packet");continue}i.revocationSignatures.push(a)}}}}toPacketList(){const e=new Ts;return e.push(this.keyPacket),e.push(...this.revocationSignatures),e.push(...this.directSignatures),this.users.map(t=>e.push(...t.toPacketList())),this.subkeys.map(t=>e.push(...t.toPacketList())),e}clone(e=!1){const t=new this.constructor(this.toPacketList());return e&&t.getKeys().forEach(e=>{if(e.keyPacket=Object.create(Object.getPrototypeOf(e.keyPacket),Object.getOwnPropertyDescriptors(e.keyPacket)),!e.keyPacket.isDecrypted())return;const t={};Object.keys(e.keyPacket.privateParams).forEach(r=>{t[r]=new Uint8Array(e.keyPacket.privateParams[r])}),e.keyPacket.privateParams=t}),t}getSubkeys(e=null){return this.subkeys.filter(t=>!e||t.getKeyID().equals(e,!0))}getKeys(e=null){const t=[];return e&&!this.getKeyID().equals(e,!0)||t.push(this),t.concat(this.getSubkeys(e))}getKeyIDs(){return this.getKeys().map(e=>e.getKeyID())}getUserIDs(){return this.users.map(e=>e.userID?e.userID.userID:null).filter(e=>null!==e)}write(){return this.toPacketList().write()}async getSigningKey(e=null,t=new Date,r={},n=N){await this.verifyPrimaryKey(t,r,n);const i=this.keyPacket;try{Ca(i,n)}catch(e){throw L.wrapError("Could not verify primary key",e)}const s=this.subkeys.slice().sort((e,t)=>t.keyPacket.created-e.keyPacket.created||t.keyPacket.algorithm-e.keyPacket.algorithm);let a;for(const r of s)if(!e||r.getKeyID().equals(e))try{await r.verify(t,n);const e={key:i,bind:r.keyPacket},s=await pa(r.bindingSignatures,i,Q.signature.subkeyBinding,e,t,n);if(!ka(r.keyPacket,s,n))continue;if(!s.embeddedSignature)throw new Error("Missing embedded signature");return await pa([s.embeddedSignature],r.keyPacket,Q.signature.keyBinding,e,t,n),Ca(r.keyPacket,n),r}catch(e){a=e}try{const s=await this.getPrimarySelfSignature(t,r,n);if((!e||i.getKeyID().equals(e))&&ka(i,s,n))return Ca(i,n),this}catch(e){a=e}throw L.wrapError("Could not find valid signing key packet in key "+this.getKeyID().toHex(),a)}async getEncryptionKey(e,t=new Date,r={},n=N){await this.verifyPrimaryKey(t,r,n);const i=this.keyPacket;try{Ca(i,n)}catch(e){throw L.wrapError("Could not verify primary key",e)}const s=this.subkeys.slice().sort((e,t)=>t.keyPacket.created-e.keyPacket.created||t.keyPacket.algorithm-e.keyPacket.algorithm);let a;for(const r of s)if(!e||r.getKeyID().equals(e))try{await r.verify(t,n);const e={key:i,bind:r.keyPacket},s=await pa(r.bindingSignatures,i,Q.signature.subkeyBinding,e,t,n);if(Ia(r.keyPacket,s,n))return Ca(r.keyPacket,n),r}catch(e){a=e}try{const s=await this.getPrimarySelfSignature(t,r,n);if((!e||i.getKeyID().equals(e))&&Ia(i,s,n))return Ca(i,n),this}catch(e){a=e}throw L.wrapError("Could not find valid encryption key packet in key "+this.getKeyID().toHex(),a)}async isRevoked(e,t,r=new Date,n=N){return ba(this.keyPacket,Q.signature.keyRevocation,{key:this.keyPacket},this.revocationSignatures,e,t,r,n)}async verifyPrimaryKey(e=new Date,t={},r=N){const n=this.keyPacket;if(await this.isRevoked(null,null,e,r))throw new Error("Primary key is revoked");if(ga(n,await this.getPrimarySelfSignature(e,t,r),e))throw new Error("Primary key is expired");if(6!==n.version){const t=await pa(this.directSignatures,n,Q.signature.key,{key:n},e,r).catch(()=>{});if(t&&ga(n,t,e))throw new Error("Primary key is expired")}}async getExpirationTime(e,t=N){let r;try{const n=await this.getPrimarySelfSignature(null,e,t),i=Ea(this.keyPacket,n),s=n.getExpirationTime(),a=6!==this.keyPacket.version&&await pa(this.directSignatures,this.keyPacket,Q.signature.key,{key:this.keyPacket},null,t).catch(()=>{});if(a){const e=Ea(this.keyPacket,a);r=Math.min(i,s,e)}else r=i{t.selfCertification.revoked||await t.user.isRevoked(t.selfCertification,null,e,r)}));const a=i.sort(function(e,t){const r=e.selfCertification,n=t.selfCertification;return n.revoked-r.revoked||r.isPrimaryUserID-n.isPrimaryUserID||r.created-n.created}).pop(),{user:o,selfCertification:c}=a;if(c.revoked||await o.isRevoked(c,null,e,r))throw new Error("Primary user is revoked");return a}async update(e,t=new Date,r=N){if(!this.hasSameFingerprintAs(e))throw new Error("Primary key fingerprints must be equal to update the key");if(!this.isPrivate()&&e.isPrivate()){if(this.subkeys.length!==e.subkeys.length||!this.subkeys.every(t=>e.subkeys.some(e=>t.hasSameFingerprintAs(e))))throw new Error("Cannot update public key with private key if subkeys mismatch");return e.update(this,r)}const n=this.clone();return await wa(e,n,"revocationSignatures",t,i=>ba(n.keyPacket,Q.signature.keyRevocation,n,[i],null,e.keyPacket,t,r)),await wa(e,n,"directSignatures",t),await Promise.all(e.users.map(async e=>{const i=n.users.filter(t=>e.userID&&e.userID.equals(t.userID)||e.userAttribute&&e.userAttribute.equals(t.userAttribute));if(i.length>0)await Promise.all(i.map(n=>n.update(e,t,r)));else{const t=e.clone();t.mainKey=n,n.users.push(t)}})),await Promise.all(e.subkeys.map(async e=>{const i=n.subkeys.filter(t=>t.hasSameFingerprintAs(e));if(i.length>0)await Promise.all(i.map(n=>n.update(e,t,r)));else{const t=e.clone();t.mainKey=n,n.subkeys.push(t)}})),n}async getRevocationCertificate(e=new Date,t=N){const r={key:this.keyPacket},n=await pa(this.revocationSignatures,this.keyPacket,Q.signature.keyRevocation,r,e,t),i=new Ts;i.push(n);const s=6!==this.keyPacket.version;return re(Q.armor.publicKey,i.write(),null,null,"This is a revocation certificate",s,t)}async applyRevocationCertificate(e,t=new Date,r=N){const n=await te(e),i=(await Ts.fromBinary(n.data,xa,r)).findPacket(Q.packet.signature);if(!i||i.signatureType!==Q.signature.keyRevocation)throw new Error("Could not find revocation signature packet");if(!i.issuerKeyID.equals(this.getKeyID()))throw new Error("Revocation signature does not match key");try{await i.verify(this.keyPacket,Q.signature.keyRevocation,{key:this.keyPacket},t,void 0,r)}catch(e){throw L.wrapError("Could not verify revocation signature",e)}const s=this.clone();return s.revocationSignatures.push(i),s}async signPrimaryUser(e,t,r,n=N){const{index:i,user:s}=await this.getPrimaryUser(t,r,n),a=await s.certify(e,t,n),o=this.clone();return o.users[i]=a,o}async signAllUsers(e,t=new Date,r=N){const n=this.clone();return n.users=await Promise.all(this.users.map(function(n){return n.certify(e,t,r)})),n}async verifyPrimaryUser(e,t=new Date,r,n=N){const i=this.keyPacket,{user:s}=await this.getPrimaryUser(t,r,n);return e?await s.verifyAllCertifications(e,t,n):[{keyID:i.getKeyID(),valid:await s.verify(t,n).catch(()=>!1)}]}async verifyAllUsers(e,t=new Date,r=N){const n=this.keyPacket,i=[];return await Promise.all(this.users.map(async s=>{const a=e?await s.verifyAllCertifications(e,t,r):[{keyID:n.getKeyID(),valid:await s.verify(t,r).catch(()=>!1)}];i.push(...a.map(e=>({userID:s.userID?s.userID.userID:null,userAttribute:s.userAttribute,keyID:e.keyID,valid:e.valid})))})),i}}["getKeyID","getFingerprint","getAlgorithmInfo","getCreationTime","hasSameFingerprintAs"].forEach(e=>{Ua.prototype[e]=Da.prototype[e]});class Ta extends Ua{constructor(e){if(super(),this.keyPacket=null,this.revocationSignatures=[],this.directSignatures=[],this.users=[],this.subkeys=[],e&&(this.packetListToStructure(e,new Set([Q.packet.secretKey,Q.packet.secretSubkey])),!this.keyPacket))throw new Error("Invalid key: missing public-key packet")}isPrivate(){return!1}toPublic(){return this}armor(e=N){const t=6!==this.keyPacket.version;return re(Q.armor.publicKey,this.toPacketList().write(),void 0,void 0,void 0,t,e)}}class Fa extends Ta{constructor(e){if(super(),this.packetListToStructure(e,new Set([Q.packet.publicKey,Q.packet.publicSubkey])),!this.keyPacket)throw new Error("Invalid key: missing private-key packet")}isPrivate(){return!0}toPublic(){const e=new Ts,t=this.toPacketList();for(const r of t)switch(r.constructor.tag){case Q.packet.secretKey:{const t=Xs.fromSecretKeyPacket(r);e.push(t);break}case Q.packet.secretSubkey:{const t=ra.fromSecretSubkeyPacket(r);e.push(t);break}default:e.push(r)}return new Ta(e)}armor(e=N){const t=6!==this.keyPacket.version;return re(Q.armor.privateKey,this.toPacketList().write(),void 0,void 0,void 0,t,e)}async getDecryptionKeys(e,t=new Date,r={},n=N){const i=this.keyPacket,s=[];let a=null;for(let r=0;re.isDecrypted())}async validate(e=N){if(!this.isPrivate())throw new Error("Cannot validate a public key");let t;if(this.keyPacket.isDummy()){const r=await this.getSigningKey(null,null,void 0,{...e,rejectPublicKeyAlgorithms:new Set,minRSABits:0});r&&!r.keyPacket.isDummy()&&(t=r.keyPacket)}else t=this.keyPacket;if(t)return t.validate();{const e=this.getKeys();if(e.map(e=>e.keyPacket.isDummy()).every(Boolean))throw new Error("Cannot validate an all-gnu-dummy key");return Promise.all(e.map(e=>e.keyPacket.validate()))}}clearPrivateParams(){this.getKeys().forEach(({keyPacket:e})=>{e.isDecrypted()&&e.clearPrivateParams()})}async revoke({flag:e=Q.reasonForRevocation.noReason,string:t=""}={},r=new Date,n=N){if(!this.isPrivate())throw new Error("Need private key for revoking");const i={key:this.keyPacket},s=this.clone();return s.revocationSignatures.push(await ma(i,[],this.keyPacket,{signatureType:Q.signature.keyRevocation,reasonForRevocationFlag:Q.write(Q.reasonForRevocation,e),reasonForRevocationString:t},r,void 0,void 0,void 0,n)),s}async addSubkey(e={}){const t={...N,...e.config};if(e.passphrase)throw new Error("Subkey could not be encrypted here, please encrypt whole key");if(e.rsaBitse!==t)]}function a(){const e={};e.keyFlags=[Q.keyFlags.certifyKeys|Q.keyFlags.signData];const t=s([Q.symmetric.aes256,Q.symmetric.aes128],n.preferredSymmetricAlgorithm);if(e.preferredSymmetricAlgorithms=t,n.aeadProtect){const r=s([Q.aead.gcm,Q.aead.eax,Q.aead.ocb],n.preferredAEADAlgorithm);e.preferredCipherSuites=r.flatMap(e=>t.map(t=>[t,e]))}return e.preferredHashAlgorithms=s([Q.hash.sha512,Q.hash.sha256,Q.hash.sha3_512,Q.hash.sha3_256],n.preferredHashAlgorithm),e.preferredCompressionAlgorithms=s([Q.compression.uncompressed,Q.compression.zlib,Q.compression.zip],n.preferredCompressionAlgorithm),e.features=[0],e.features[0]|=Q.features.modificationDetection,n.aeadProtect&&(e.features[0]|=Q.features.seipdv2),r.keyExpirationTime>0&&(e.keyExpirationTime=r.keyExpirationTime,e.keyNeverExpires=!1),e}if(i.push(e),6===e.version){const t={key:e},s=a();s.signatureType=Q.signature.key;const o=await ma(t,[],e,s,r.date,void 0,void 0,void 0,n);i.push(o)}await Promise.all(r.userIDs.map(async function(t,i){const s=aa.fromObject(t),o={userID:s,key:e},c=6!==e.version?a():{};return c.signatureType=Q.signature.certPositive,0===i&&(c.isPrimaryUserID=!0),{userIDPacket:s,signaturePacket:await ma(o,[],e,c,r.date,void 0,void 0,void 0,n)}})).then(e=>{e.forEach(({userIDPacket:e,signaturePacket:t})=>{i.push(e),i.push(t)})}),await Promise.all(t.map(async function(t,i){const s=r.subkeys[i];return{secretSubkeyPacket:t,subkeySignaturePacket:await ya(t,e,s,n)}})).then(e=>{e.forEach(({secretSubkeyPacket:e,subkeySignaturePacket:t})=>{i.push(e),i.push(t)})});const o={key:e};return i.push(await ma(o,[],e,{signatureType:Q.signature.keyRevocation,reasonForRevocationFlag:Q.reasonForRevocation.noReason,reasonForRevocationString:""},r.date,void 0,void 0,void 0,n)),r.passphrase&&e.clearPrivateParams(),t.map(function(e,t){r.subkeys[t].passphrase&&e.clearPrivateParams()}),new Fa(i)}async function Na({armoredKey:e,binaryKey:t,config:r,...n}){if(r={...N,...r},!e&&!t)throw new Error("readKey: must pass options object containing `armoredKey` or `binaryKey`");if(e&&!L.isString(e))throw new Error("readKey: options.armoredKey must be a string");if(t&&!L.isUint8Array(t))throw new Error("readKey: options.binaryKey must be a Uint8Array");const i=Object.keys(n);if(i.length>0)throw new Error(`Unknown option: ${i.join(", ")}`);let s;if(e){const{type:t,data:r}=await te(e);if(t!==Q.armor.publicKey&&t!==Q.armor.privateKey)throw new Error("Armored text not of type key");s=r}else s=t;const a=await Ts.fromBinary(s,Ma,r),o=a.indexOfTag(Q.packet.publicKey,Q.packet.secretKey);if(0===o.length)throw new Error("No key packet found");return Ra(a.slice(o[0],o[1]))}async function Oa({armoredKey:e,binaryKey:t,config:r,...n}){if(r={...N,...r},!e&&!t)throw new Error("readPrivateKey: must pass options object containing `armoredKey` or `binaryKey`");if(e&&!L.isString(e))throw new Error("readPrivateKey: options.armoredKey must be a string");if(t&&!L.isUint8Array(t))throw new Error("readPrivateKey: options.binaryKey must be a Uint8Array");const i=Object.keys(n);if(i.length>0)throw new Error(`Unknown option: ${i.join(", ")}`);let s;if(e){const{type:t,data:r}=await te(e);if(t!==Q.armor.privateKey)throw new Error("Armored text not of type private key");s=r}else s=t;const a=await Ts.fromBinary(s,Ma,r),o=a.indexOfTag(Q.packet.publicKey,Q.packet.secretKey);for(let e=0;e0)throw new Error(`Unknown option: ${s.join(", ")}`);if(e){const{type:t,data:r}=await te(e);if(t!==Q.armor.publicKey&&t!==Q.armor.privateKey)throw new Error("Armored text not of type key");i=r}const a=[],o=await Ts.fromBinary(i,Ma,r),c=o.indexOfTag(Q.packet.publicKey,Q.packet.secretKey);if(0===c.length)throw new Error("No key packet found");for(let e=0;e0?t.map(e=>e.issuerKeyID):e.packets.filterByTag(Q.packet.signature).map(e=>e.issuerKeyID)}async decrypt(e,t,r,n=new Date,i=N){const s=this.packets.filterByTag(Q.packet.symmetricallyEncryptedData,Q.packet.symEncryptedIntegrityProtectedData,Q.packet.aeadEncryptedData);if(0===s.length)throw new Error("No encrypted data found");const a=s[0],o=a.cipherAlgorithm,c=r||await this.decryptSessionKeys(e,t,o,n,i);let l=null;const u=Promise.all(c.map(async({algorithm:e,data:t})=>{if(!L.isUint8Array(t)||!a.cipherAlgorithm&&!L.isString(e))throw new Error("Invalid session key for decryption.");try{const r=a.cipherAlgorithm||Q.write(Q.symmetric,e);await a.decrypt(r,t,i)}catch(e){L.printDebugError(e),l=e}}));if(U(a.encrypted),a.encrypted=null,await u,!a.packets||!a.packets.length)throw l||new Error("Decryption failed.");const h=new Ya(a.packets);return a.packets=new Ts,h}async decryptSessionKeys(e,t,r,n=new Date,i=N){let s,a=[];if(t){const e=this.packets.filterByTag(Q.packet.symEncryptedSessionKey);if(0===e.length)throw new Error("No symmetrically encrypted session key packet found.");await Promise.all(t.map(async function(t,r){let n;n=r?await Ts.fromBinary(e.write(),ja,i):e,await Promise.all(n.map(async function(e){try{await e.decrypt(t),a.push(e)}catch(e){L.printDebugError(e),e instanceof Ei&&(s=e)}}))}))}else{if(!e)throw new Error("No key or password specified.");{const t=this.packets.filterByTag(Q.packet.publicKeyEncryptedSessionKey);if(0===t.length)throw new Error("No public key encrypted session key packet found.");await Promise.all(t.map(async function(t){await Promise.all(e.map(async function(e){let o;try{o=(await e.getDecryptionKeys(t.publicKeyID,null,void 0,i)).map(e=>e.keyPacket)}catch(e){return void(s=e)}let c=[Q.symmetric.aes256,Q.symmetric.aes128,Q.symmetric.tripledes,Q.symmetric.cast5];try{const t=await e.getPrimarySelfSignature(n,void 0,i);t.preferredSymmetricAlgorithms&&(c=c.concat(t.preferredSymmetricAlgorithms))}catch{}await Promise.all(o.map(async function(e){if(!e.isDecrypted())throw new Error("Decryption key is not decrypted.");if(!i.constantTimePKCS1Decryption||t.publicKeyAlgorithm!==Q.publicKey.rsaEncrypt&&t.publicKeyAlgorithm!==Q.publicKey.rsaEncryptSign&&t.publicKeyAlgorithm!==Q.publicKey.rsaSign&&t.publicKeyAlgorithm!==Q.publicKey.elgamal)try{await t.decrypt(e);const n=r||t.sessionKeyAlgorithm;if(n&&!c.includes(Q.write(Q.symmetric,n)))throw new Error("A non-preferred symmetric algorithm was used.");a.push(t)}catch(e){L.printDebugError(e),s=e}else{const n=t.write();await Promise.all((r?[r]:Array.from(i.constantTimePKCS1DecryptionSupportedSymmetricAlgorithms)).map(async t=>{const r=new Zs;r.read(n);const i={sessionKeyAlgorithm:t,sessionKey:Un(t)};try{await r.decrypt(e,i),a.push(r)}catch(e){L.printDebugError(e),s=e}}))}}))})),U(t.encrypted),t.encrypted=null}))}}if(a.length>0){if(a.length>1){const e=new Set;a=a.filter(t=>{const r=t.sessionKeyAlgorithm+L.uint8ArrayToString(t.sessionKey);return!e.has(r)&&(e.add(r),!0)})}return a.map(e=>({data:e.sessionKey,algorithm:e.sessionKeyAlgorithm&&Q.read(Q.symmetric,e.sessionKeyAlgorithm)}))}throw s||new Error("Session key decryption failed.")}getLiteralData(){const e=this.unwrapCompressed().packets.findPacket(Q.packet.literalData);return e&&e.getBytes()||null}getFilename(){const e=this.unwrapCompressed().packets.findPacket(Q.packet.literalData);return e&&e.getFilename()||null}getText(){const e=this.unwrapCompressed().packets.findPacket(Q.packet.literalData);return e?e.getText():null}static async generateSessionKey(e=[],t=new Date,r=[],n=N){const{symmetricAlgo:i,aeadAlgo:s}=await async function(e=[],t=new Date,r=[],n=N){const i=await Promise.all(e.map((e,i)=>e.getPrimarySelfSignature(t,r[i],n)));if(e.length?i.every(e=>e.features&&e.features[0]&Q.features.seipdv2):n.aeadProtect){const e={symmetricAlgo:Q.symmetric.aes128,aeadAlgo:Q.aead.ocb},t=[{symmetricAlgo:n.preferredSymmetricAlgorithm,aeadAlgo:n.preferredAEADAlgorithm},{symmetricAlgo:n.preferredSymmetricAlgorithm,aeadAlgo:Q.aead.ocb},{symmetricAlgo:Q.symmetric.aes128,aeadAlgo:n.preferredAEADAlgorithm}];for(const e of t)if(i.every(t=>t.preferredCipherSuites&&t.preferredCipherSuites.some(t=>t[0]===e.symmetricAlgo&&t[1]===e.aeadAlgo)))return e;return e}const s=Q.symmetric.aes128,a=n.preferredSymmetricAlgorithm;return{symmetricAlgo:i.every(e=>e.preferredSymmetricAlgorithms&&e.preferredSymmetricAlgorithms.includes(a))?a:s,aeadAlgo:void 0}}(e,t,r,n),a=Q.read(Q.symmetric,i),o=s?Q.read(Q.aead,s):void 0;return await Promise.all(e.map(e=>e.getEncryptionKey().catch(()=>null).then(e=>{if(e&&(e.keyPacket.algorithm===Q.publicKey.x25519||e.keyPacket.algorithm===Q.publicKey.x448)&&!o&&!L.isAES(i))throw new Error("Could not generate a session key compatible with the given `encryptionKeys`: X22519 and X448 keys can only be used to encrypt AES session keys; change `config.preferredSymmetricAlgorithm` accordingly.")}))),{data:Un(i),algorithm:a,aeadAlgorithm:o}}async encrypt(e,t,r,n=!1,i=[],s=new Date,a=[],o=N){if(r){if(!L.isUint8Array(r.data)||!L.isString(r.algorithm))throw new Error("Invalid session key for encryption.")}else if(e&&e.length)r=await Ya.generateSessionKey(e,s,a,o);else{if(!t||!t.length)throw new Error("No keys, passwords, or session key provided.");r=await Ya.generateSessionKey(void 0,void 0,void 0,o)}const{data:c,algorithm:l,aeadAlgorithm:u}=r,h=await Ya.encryptSessionKey(c,l,u,e,t,n,i,s,a,o),f=Ys.fromObject({version:u?2:1,aeadAlgorithm:u?Q.write(Q.aead,u):null});f.packets=this.packets;const A=Q.write(Q.symmetric,l);return await f.encrypt(A,c,o),h.packets.push(f),f.packets=new Ts,h}static async encryptSessionKey(e,t,r,n,i,s=!1,a=[],o=new Date,c=[],l=N){const u=new Ts,h=Q.write(Q.symmetric,t),f=r&&Q.write(Q.aead,r);if(n){const t=await Promise.all(n.map(async function(t,r){const n=await t.getEncryptionKey(a[r],o,c,l),i=Zs.fromObject({version:f?6:3,encryptionKeyPacket:n.keyPacket,anonymousRecipient:s,sessionKey:e,sessionKeyAlgorithm:h});return await i.encrypt(n.keyPacket),delete i.sessionKey,i}));u.push(...t)}if(i){const t=async function(e,t){try{return await e.decrypt(t),1}catch{return 0}},r=(e,t)=>e+t,n=async function(e,s,a,o){const c=new zs(l);return c.sessionKey=e,c.sessionKeyAlgorithm=s,a&&(c.aeadAlgorithm=a),await c.encrypt(o,l),l.passwordCollisionCheck&&1!==(await Promise.all(i.map(e=>t(c,e)))).reduce(r)?n(e,s,o):(delete c.sessionKey,c)},s=await Promise.all(i.map(t=>n(e,h,f,t)));u.push(...s)}return new Ya(u)}async sign(e=[],t=[],r=null,n=[],i=new Date,s=[],a=[],o=[],c=N){const l=new Ts,u=this.packets.findPacket(Q.packet.literalData);if(!u)throw new Error("No literal data packet to sign.");const h=await Ja(u,e,t,r,n,i,s,a,o,!1,c),f=h.map((e,t)=>Ps.fromSignaturePacket(e,0===t)).reverse();return l.push(...f),l.push(u),l.push(...h),new Ya(l)}compress(e,t=N){if(e===Q.compression.uncompressed)return this;const r=new Ns(t);r.algorithm=e,r.packets=this.packets;const n=new Ts;return n.push(r),new Ya(n)}async signDetached(e=[],t=[],r=null,n=[],i=[],s=new Date,a=[],o=[],c=N){const l=this.packets.findPacket(Q.packet.literalData);if(!l)throw new Error("No literal data packet to sign.");return new ha(await Ja(l,e,t,r,n,i,s,a,o,!0,c))}async verify(e,t=new Date,r=N){const n=this.unwrapCompressed(),i=n.packets.filterByTag(Q.packet.literalData);if(1!==i.length)throw new Error("Can only verify message with one literal data packet.");let s=n.packets;l(s.stream)&&(s=s.concat(await P(s.stream,e=>e||[])));const a=s.filterByTag(Q.packet.onePassSignature).reverse(),o=s.filterByTag(Q.packet.signature);return a.length&&!o.length&&L.isStream(s.stream)&&!l(s.stream)?(await Promise.all(a.map(async e=>{e.correspondingSig=new Promise((t,r)=>{e.correspondingSigResolve=t,e.correspondingSigReject=r}),e.signatureData=T(async()=>(await e.correspondingSig).signatureData),e.hashed=P(await e.hash(e.signatureType,i[0],void 0,!1)),e.hashed.catch(()=>{})})),s.stream=B(s.stream,async(e,t)=>{const r=F(e),n=M(t);try{for(let e=0;e{t.correspondingSigReject(e)}),await n.abort(e)}}),_a(a,i,e,t,!1,r)):_a(o,i,e,t,!1,r)}async verifyDetached(e,t,r=new Date,n=N){const i=this.unwrapCompressed().packets.filterByTag(Q.packet.literalData);if(1!==i.length)throw new Error("Can only verify message with one literal data packet.");return _a(e.packets.filterByTag(Q.packet.signature),i,t,r,!0,n)}unwrapCompressed(){const e=this.packets.filterByTag(Q.packet.compressedData);return e.length?new Ya(e[0].packets):this}async appendSignature(e,t=N){await this.packets.read(L.isUint8Array(e)?e:(await te(e)).data,Wa,t)}write(){return this.packets.write()}armor(e=N){const t=this.packets[this.packets.length-1],r=t.constructor.tag===Ys.tag?2!==t.version:this.packets.some(e=>e.constructor.tag===Ds.tag&&6!==e.version);return re(Q.armor.message,this.write(),null,null,null,r,e)}}async function Ja(e,t,r=[],n=null,i=[],s=new Date,a=[],o=[],c=[],l=!1,u=N){const h=new Ts,f=null===e.text?Q.signature.binary:Q.signature.text;if(await Promise.all(t.map(async(t,n)=>{const h=a[n];if(!t.isPrivate())throw new Error("Need private key for signing");const A=await t.getSigningKey(i[n],s,h,u);return ma(e,r.length?r:[t],A.keyPacket,{signatureType:f},s,o,c,l,u)})).then(e=>{h.push(...e)}),n){const e=n.packets.filterByTag(Q.packet.signature);h.push(...e)}return h}function _a(e,t,r,n=new Date,i=!1,s=N){return e.filter(e=>["text","binary"].includes(Q.read(Q.signature,e.signatureType))).map(e=>function(e,t,r,n=new Date,i=!1,s=N){let a,o;for(const t of r){const r=t.getKeys(e.issuerKeyID);if(r.length>0){a=t,o=r[0];break}}const c=e instanceof Ps?e.correspondingSig:e,l={keyID:e.issuerKeyID,verified:(async()=>{if(!o)throw new Error(`Could not find signing key with key ID ${e.issuerKeyID.toHex()}`);await e.verify(o.keyPacket,e.signatureType,t[0],n,i,s);const r=await c;if(o.getCreationTime()>r.created)throw new Error("Key is newer than the signature");try{await a.getSigningKey(o.getKeyID(),r.created,void 0,s)}catch(e){if(!s.allowInsecureVerificationWithReformattedKeys||!e.message.match(/Signature creation time is in the future/))throw e;await a.getSigningKey(o.getKeyID(),n,void 0,s)}return!0})(),signature:(async()=>{const e=await c,t=new Ts;return e&&t.push(e),new ha(t)})()};return l.signature.catch(()=>{}),l.verified.catch(()=>{}),l}(e,t,r,n,i,s))}async function qa({armoredMessage:e,binaryMessage:t,config:r,...n}){r={...N,...r};let i=e||t;if(!i)throw new Error("readMessage: must pass options object containing `armoredMessage` or `binaryMessage`");if(e&&!L.isString(e)&&!L.isStream(e))throw new Error("readMessage: options.armoredMessage must be a string or stream");if(t&&!L.isUint8Array(t)&&!L.isStream(t))throw new Error("readMessage: options.binaryMessage must be a Uint8Array or stream");const s=Object.keys(n);if(s.length>0)throw new Error(`Unknown option: ${s.join(", ")}`);const a=L.isStream(i);if(e){const{type:e,data:t}=await te(i);if(e!==Q.armor.message)throw new Error("Armored text not of type message");i=t}const o=await Ts.fromBinary(i,Ha,r,new Rs),c=new Ya(o);return c.fromStream=a,c}async function Za({text:e,binary:t,filename:r,date:n=new Date,format:i=(void 0!==e?"utf8":"binary"),...s}){const a=void 0!==e?e:t;if(void 0===a)throw new Error("createMessage: must pass options object containing `text` or `binary`");if(e&&!L.isString(e)&&!L.isStream(e))throw new Error("createMessage: options.text must be a string or stream");if(t&&!L.isUint8Array(t)&&!L.isStream(t))throw new Error("createMessage: options.binary must be a Uint8Array or stream");const o=Object.keys(s);if(o.length>0)throw new Error(`Unknown option: ${o.join(", ")}`);const c=L.isStream(a),l=new ks(n);void 0!==e?l.setText(a,Q.write(Q.literal,i)):l.setBytes(a,Q.write(Q.literal,i)),void 0!==r&&l.setFilename(r);const u=new Ts;u.push(l);const h=new Ya(u);return h.fromStream=c,h}const Va=L.constructAllowedPackets([Ds]);class za{constructor(e,t){if(this.text=L.removeTrailingSpaces(e).replace(/\r?\n/g,"\r\n"),t&&!(t instanceof ha))throw new Error("Invalid signature input");this.signature=t||new ha(new Ts)}getSigningKeyIDs(){const e=[];return this.signature.packets.forEach(function(t){e.push(t.issuerKeyID)}),e}async sign(e,t=[],r=null,n=[],i=new Date,s=[],a=[],o=[],c=N){const l=new ks;l.setText(this.text);const u=new ha(await Ja(l,e,t,r,n,i,s,a,o,!0,c));return new za(this.text,u)}verify(e,t=new Date,r=N){const n=this.signature.packets.filterByTag(Q.packet.signature),i=new ks;return i.setText(this.text),_a(n,[i],e,t,!0,r)}getText(){return this.text.replace(/\r\n/g,"\n")}armor(e=N){const t=this.signature.packets.some(e=>6!==e.version),r={hash:t?Array.from(new Set(this.signature.packets.map(e=>Q.read(Q.hash,e.hashAlgorithm).toUpperCase()))).join():null,text:this.text,data:this.signature.packets.write()};return re(Q.armor.signed,r,void 0,void 0,void 0,t,e)}}async function Xa({cleartextMessage:e,config:t,...r}){if(t={...N,...t},!e)throw new Error("readCleartextMessage: must pass options object containing `cleartextMessage`");if(!L.isString(e))throw new Error("readCleartextMessage: options.cleartextMessage must be a string");const n=Object.keys(r);if(n.length>0)throw new Error(`Unknown option: ${n.join(", ")}`);const i=await te(e);if(i.type!==Q.armor.signed)throw new Error("No cleartext signed message.");const s=await Ts.fromBinary(i.data,Va,t);!function(e,t){const r=[];if(e.forEach(e=>{const t=e.match(/^Hash: (.+)$/);if(!t)throw new Error('Only "Hash" header allowed in cleartext signed message');{const e=t[1].replace(/\s/g,"").split(",").map(e=>{try{return Q.write(Q.hash,e.toLowerCase())}catch{throw new Error("Unknown hash algorithm in armor header: "+e.toLowerCase())}});r.push(...e)}}),r.length&&!function(e){const r=e=>t=>e.hashAlgorithm===t;for(let n=0;n0)throw new Error(`Unknown option: ${r.join(", ")}`);return new za(e)}async function eo({userIDs:e=[],passphrase:t,type:r,curve:n,rsaBits:i=4096,keyExpirationTime:s=0,date:a=new Date,subkeys:o=[{}],format:c="armored",config:l,...u}){yo(l={...N,...l}),r||n?(r=r||"ecc",n=n||"curve25519Legacy"):(r=l.v6Keys?"curve25519":"ecc",n="curve25519Legacy"),e=mo(e);const h=Object.keys(u);if(h.length>0)throw new Error(`Unknown option: ${h.join(", ")}`);if(0===e.length&&!l.v6Keys)throw new Error("UserIDs are required for V4 keys");if("rsa"===r&&iva(e.subkeys[r],e));let r=[da(e,t)];r=r.concat(e.subkeys.map(e=>Aa(e,t)));const n=await Promise.all(r),i=await Qa(n[0],n.slice(1),e,t),s=await i.getRevocationCertificate(e.date,t);return i.revocationSignatures=[],{key:i,revocationCertificate:s}}(f,l);return e.getKeys().forEach(({keyPacket:e})=>Ca(e,l)),{privateKey:Eo(e,c,l),publicKey:Eo(e.toPublic(),c,l),revocationCertificate:t}}catch(e){throw L.wrapError("Error generating keypair",e)}}async function to({privateKey:e,userIDs:t=[],passphrase:r,keyExpirationTime:n=0,date:i,format:s="armored",config:a,...o}){yo(a={...N,...a}),t=mo(t);const c=Object.keys(o);if(c.length>0)throw new Error(`Unknown option: ${c.join(", ")}`);if(0===t.length&&6!==e.keyPacket.version)throw new Error("UserIDs are required for V4 keys");const l={privateKey:e,userIDs:t,passphrase:r,keyExpirationTime:n,date:i};try{const{key:e,revocationCertificate:t}=await async function(e,t){e=o(e);const{privateKey:r}=e;if(!r.isPrivate())throw new Error("Cannot reformat a public key");if(r.keyPacket.isDummy())throw new Error("Cannot reformat a gnu-dummy primary key");if(!r.getKeys().every(({keyPacket:e})=>e.isDecrypted()))throw new Error("Key is not decrypted");const n=r.keyPacket;e.subkeys||(e.subkeys=await Promise.all(r.subkeys.map(async e=>{const r=e.keyPacket,i={key:n,bind:r},s=await pa(e.bindingSignatures,n,Q.signature.subkeyBinding,i,null,t).catch(()=>({}));return{sign:s.keyFlags&&s.keyFlags[0]&Q.keyFlags.signData}})));const i=r.subkeys.map(e=>e.keyPacket);if(e.subkeys.length!==i.length)throw new Error("Number of subkey options does not match number of subkeys");e.subkeys=e.subkeys.map(t=>o(t,e));const s=await Qa(n,i,e,t),a=await s.getRevocationCertificate(e.date,t);return s.revocationSignatures=[],{key:s,revocationCertificate:a};function o(e,t={}){return e.keyExpirationTime=e.keyExpirationTime||t.keyExpirationTime,e.passphrase=L.isString(e.passphrase)?e.passphrase:t.passphrase,e.date=e.date||t.date,e}}(l,a);return{privateKey:Eo(e,s,a),publicKey:Eo(e.toPublic(),s,a),revocationCertificate:t}}catch(e){throw L.wrapError("Error reformatting keypair",e)}}async function ro({key:e,revocationCertificate:t,reasonForRevocation:r,date:n=new Date,format:i="armored",config:s,...a}){yo(s={...N,...s});const o=Object.keys(a);if(o.length>0)throw new Error(`Unknown option: ${o.join(", ")}`);try{const a=t?await e.applyRevocationCertificate(t,n,s):await e.revoke(r,n,s);return a.isPrivate()?{privateKey:Eo(a,i,s),publicKey:Eo(a.toPublic(),i,s)}:{privateKey:null,publicKey:Eo(a,i,s)}}catch(e){throw L.wrapError("Error revoking key",e)}}async function no({privateKey:e,passphrase:t,config:r,...n}){yo(r={...N,...r});const i=Object.keys(n);if(i.length>0)throw new Error(`Unknown option: ${i.join(", ")}`);if(!e.isPrivate())throw new Error("Cannot decrypt a public key");const s=e.clone(!0),a=L.isArray(t)?t:[t];try{return await Promise.all(s.getKeys().map(e=>L.anyPromise(a.map(t=>e.keyPacket.decrypt(t))))),await s.validate(r),s}catch(e){throw s.clearPrivateParams(),L.wrapError("Error decrypting private key",e)}}async function io({privateKey:e,passphrase:t,config:r,...n}){yo(r={...N,...r});const i=Object.keys(n);if(i.length>0)throw new Error(`Unknown option: ${i.join(", ")}`);if(!e.isPrivate())throw new Error("Cannot encrypt a public key");const s=e.clone(!0),a=s.getKeys(),o=L.isArray(t)?t:new Array(a.length).fill(t);if(o.length!==a.length)throw new Error("Invalid number of passphrases given for key encryption");try{return await Promise.all(a.map(async(e,t)=>{const{keyPacket:n}=e;await n.encrypt(o[t],r),n.clearPrivateParams()})),s}catch(e){throw s.clearPrivateParams(),L.wrapError("Error encrypting private key",e)}}async function so({message:e,encryptionKeys:t,signingKeys:r,passwords:n,sessionKey:i,format:s="armored",signature:a=null,wildcard:o=!1,signingKeyIDs:c=[],encryptionKeyIDs:l=[],date:u=new Date,signingUserIDs:h=[],encryptionUserIDs:f=[],signatureNotations:A=[],config:d,...p}){if(yo(d={...N,...d}),fo(e),po(s),t=mo(t),r=mo(r),n=mo(n),c=mo(c),l=mo(l),h=mo(h),f=mo(f),A=mo(A),p.detached)throw new Error("The `detached` option has been removed from openpgp.encrypt, separately call openpgp.sign instead. Don't forget to remove the `privateKeys` option as well.");if(p.publicKeys)throw new Error("The `publicKeys` option has been removed from openpgp.encrypt, pass `encryptionKeys` instead");if(p.privateKeys)throw new Error("The `privateKeys` option has been removed from openpgp.encrypt, pass `signingKeys` instead");if(void 0!==p.armor)throw new Error("The `armor` option has been removed from openpgp.encrypt, pass `format` instead.");const g=Object.keys(p);if(g.length>0)throw new Error(`Unknown option: ${g.join(", ")}`);r||(r=[]);try{if((r.length||a)&&(e=await e.sign(r,t,a,c,u,h,l,A,d)),e=e.compress(await async function(e=[],t=new Date,r=[],n=N){const i=Q.compression.uncompressed,s=n.preferredCompressionAlgorithm,a=await Promise.all(e.map(async function(e,i){const a=(await e.getPrimarySelfSignature(t,r[i],n)).preferredCompressionAlgorithms;return!!a&&a.indexOf(s)>=0}));return a.every(Boolean)?s:i}(t,u,f,d),d),e=await e.encrypt(t,n,i,o,l,u,f,d),"object"===s)return e;const p="armored"===s?e.armor(d):e.write();return await wo(p)}catch(e){throw L.wrapError("Error encrypting message",e)}}async function ao({message:e,decryptionKeys:t,passwords:r,sessionKeys:n,verificationKeys:i,expectSigned:s=!1,format:a="utf8",signature:o=null,date:c=new Date,config:l,...u}){if(yo(l={...N,...l}),fo(e),i=mo(i),t=mo(t),r=mo(r),n=mo(n),u.privateKeys)throw new Error("The `privateKeys` option has been removed from openpgp.decrypt, pass `decryptionKeys` instead");if(u.publicKeys)throw new Error("The `publicKeys` option has been removed from openpgp.decrypt, pass `verificationKeys` instead");const h=Object.keys(u);if(h.length>0)throw new Error(`Unknown option: ${h.join(", ")}`);try{const u=await e.decrypt(t,r,n,c,l);i||(i=[]);const h={};if(h.signatures=o?await u.verifyDetached(o,i,c,l):await u.verify(i,c,l),h.data="binary"===a?u.getLiteralData():u.getText(),h.filename=u.getFilename(),bo(h,e,...new Set([u,u.unwrapCompressed()])),s){if(0===i.length)throw new Error("Verification keys are required to verify message signatures");if(0===h.signatures.length)throw new Error("Message is not signed");h.data=w([h.data,T(async()=>(await L.anyPromise(h.signatures.map(e=>e.verified)),"binary"===a?new Uint8Array:""))])}return h.data=await wo(h.data),h}catch(e){throw L.wrapError("Error decrypting message",e)}}async function oo({message:e,signingKeys:t,recipientKeys:r=[],format:n="armored",detached:i=!1,signingKeyIDs:s=[],date:a=new Date,signingUserIDs:o=[],recipientUserIDs:c=[],signatureNotations:l=[],config:u,...h}){if(yo(u={...N,...u}),Ao(e),po(n),t=mo(t),s=mo(s),o=mo(o),r=mo(r),c=mo(c),l=mo(l),h.privateKeys)throw new Error("The `privateKeys` option has been removed from openpgp.sign, pass `signingKeys` instead");if(void 0!==h.armor)throw new Error("The `armor` option has been removed from openpgp.sign, pass `format` instead.");const f=Object.keys(h);if(f.length>0)throw new Error(`Unknown option: ${f.join(", ")}`);if(e instanceof za&&"binary"===n)throw new Error("Cannot return signed cleartext message in binary format");if(e instanceof za&&i)throw new Error("Cannot detach-sign a cleartext message");if(!t||0===t.length)throw new Error("No signing keys provided");try{let h;return h=i?await e.signDetached(t,r,void 0,s,a,o,c,l,u):await e.sign(t,r,void 0,s,a,o,c,l,u),"object"===n?h:(h="armored"===n?h.armor(u):h.write(),i&&(h=B(e.packets.write(),async(e,t)=>{await Promise.all([b(h,t),P(e).catch(()=>{})])})),await wo(h))}catch(e){throw L.wrapError("Error signing message",e)}}async function co({message:e,verificationKeys:t,expectSigned:r=!1,format:n="utf8",signature:i=null,date:s=new Date,config:a,...o}){if(yo(a={...N,...a}),Ao(e),t=mo(t),o.publicKeys)throw new Error("The `publicKeys` option has been removed from openpgp.verify, pass `verificationKeys` instead");const c=Object.keys(o);if(c.length>0)throw new Error(`Unknown option: ${c.join(", ")}`);if(e instanceof za&&"binary"===n)throw new Error("Can't return cleartext message data as binary");if(e instanceof za&&i)throw new Error("Can't verify detached cleartext signature");try{const o={};if(o.signatures=i?await e.verifyDetached(i,t,s,a):await e.verify(t,s,a),o.data="binary"===n?e.getLiteralData():e.getText(),e.fromStream&&!i&&bo(o,...new Set([e,e.unwrapCompressed()])),r){if(0===o.signatures.length)throw new Error("Message is not signed");o.data=w([o.data,T(async()=>(await L.anyPromise(o.signatures.map(e=>e.verified)),"binary"===n?new Uint8Array:""))])}return o.data=await wo(o.data),o}catch(e){throw L.wrapError("Error verifying signed message",e)}}async function lo({encryptionKeys:e,date:t=new Date,encryptionUserIDs:r=[],config:n,...i}){if(yo(n={...N,...n}),e=mo(e),r=mo(r),i.publicKeys)throw new Error("The `publicKeys` option has been removed from openpgp.generateSessionKey, pass `encryptionKeys` instead");const s=Object.keys(i);if(s.length>0)throw new Error(`Unknown option: ${s.join(", ")}`);try{return await Ya.generateSessionKey(e,t,r,n)}catch(e){throw L.wrapError("Error generating session key",e)}}async function uo({data:e,algorithm:t,aeadAlgorithm:r,encryptionKeys:n,passwords:i,format:s="armored",wildcard:a=!1,encryptionKeyIDs:o=[],date:c=new Date,encryptionUserIDs:l=[],config:u,...h}){if(yo(u={...N,...u}),function(e){if(!L.isUint8Array(e))throw new Error("Parameter [data] must be of type Uint8Array")}(e),function(e){if(!L.isString(e))throw new Error("Parameter [algorithm] must be of type String")}(t),po(s),n=mo(n),i=mo(i),o=mo(o),l=mo(l),h.publicKeys)throw new Error("The `publicKeys` option has been removed from openpgp.encryptSessionKey, pass `encryptionKeys` instead");const f=Object.keys(h);if(f.length>0)throw new Error(`Unknown option: ${f.join(", ")}`);if(!(n&&0!==n.length||i&&0!==i.length))throw new Error("No encryption keys or passwords provided.");try{return Eo(await Ya.encryptSessionKey(e,t,r,n,i,a,o,c,l,u),s,u)}catch(e){throw L.wrapError("Error encrypting session key",e)}}async function ho({message:e,decryptionKeys:t,passwords:r,date:n=new Date,config:i,...s}){if(yo(i={...N,...i}),fo(e),t=mo(t),r=mo(r),s.privateKeys)throw new Error("The `privateKeys` option has been removed from openpgp.decryptSessionKeys, pass `decryptionKeys` instead");const a=Object.keys(s);if(a.length>0)throw new Error(`Unknown option: ${a.join(", ")}`);try{return await e.decryptSessionKeys(t,r,void 0,n,i)}catch(e){throw L.wrapError("Error decrypting session keys",e)}}function fo(e){if(!(e instanceof Ya))throw new Error("Parameter [message] needs to be of type Message")}function Ao(e){if(!(e instanceof za||e instanceof Ya))throw new Error("Parameter [message] needs to be of type Message or CleartextMessage")}function po(e){if("armored"!==e&&"binary"!==e&&"object"!==e)throw new Error(`Unsupported format ${e}`)}const go=Object.keys(N).length;function yo(e){const t=Object.keys(e);if(t.length!==go)for(const e of t)if(void 0===N[e])throw new Error(`Unknown config property: ${e}`)}function mo(e){return e&&!L.isArray(e)&&(e=[e]),e}async function wo(e){return"array"===L.isStream(e)?P(e):e}function bo(e,t,...r){e.data=B(t.packets.stream,async(t,n)=>{await b(e.data,n,{preventClose:!0});const i=M(n);try{await P(t,e=>e),await Promise.all(r.map(e=>P(e.packets.stream,e=>e))),await i.close()}catch(e){await i.abort(e)}})}function Eo(e,t,r){switch(t){case"object":return e;case"armored":return e.armor(r);case"binary":return e.write();default:throw new Error(`Unsupported format ${t}`)}}const vo="object"==typeof n&&"crypto"in n?n.crypto:void 0;function ko(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function Io(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function Bo(e,...t){if(!ko(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function Co(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.createHasher");Io(e.outputLen),Io(e.blockLen)}function So(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Do(e,t){Bo(e);const r=t.outputLen;if(e.length>>t}function Uo(e,t){return e<>>32-t>>>0}function To(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}const Fo=(()=>68===new Uint8Array(new Uint32Array([287454020]).buffer)[0])()?e=>e:function(e){for(let t=0;t"function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex)(),Ro=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Qo(e){if(Bo(e),Mo)return e.toHex();let t="";for(let r=0;r=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:void 0}function Oo(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);if(Mo)return Uint8Array.fromHex(e);const t=e.length,r=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);const n=new Uint8Array(r);for(let t=0,i=0;te().update(Lo(t)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}const Wo=jo;function Yo(e=32){if(vo&&"function"==typeof vo.getRandomValues)return vo.getRandomValues(new Uint8Array(e));if(vo&&"function"==typeof vo.randomBytes)return Uint8Array.from(vo.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}const Jo=BigInt(0),_o=BigInt(1);function qo(e,t=""){if("boolean"!=typeof e)throw new Error((t&&`"${t}"`)+"expected boolean, got type="+typeof e);return e}function Zo(e,t,r=""){const n=ko(e),i=e?.length,s=void 0!==t;if(!n||s&&i!==t)throw new Error((r&&`"${r}" `)+"expected Uint8Array"+(s?` of length ${t}`:"")+", got "+(n?`length=${i}`:"type="+typeof e));return e}function Vo(e){const t=e.toString(16);return 1&t.length?"0"+t:t}function zo(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);return""===e?Jo:BigInt("0x"+e)}function Xo(e){return zo(Qo(e))}function $o(e){return Bo(e),zo(Qo(Uint8Array.from(e).reverse()))}function ec(e,t){return Oo(e.toString(16).padStart(2*t,"0"))}function tc(e,t){return ec(e,t).reverse()}function rc(e,t,r){let n;if("string"==typeof t)try{n=Oo(t)}catch(t){throw new Error(e+" must be hex string or Uint8Array, cause: "+t)}else{if(!ko(t))throw new Error(e+" must be hex string or Uint8Array");n=Uint8Array.from(t)}const i=n.length;if("number"==typeof r&&i!==r)throw new Error(e+" of length "+r+" expected, got "+i);return n}function nc(e){return Uint8Array.from(e)}const ic=e=>"bigint"==typeof e&&Jo<=e;function sc(e,t,r,n){if(!function(e,t,r){return ic(e)&&ic(t)&&ic(r)&&t<=e&&eJo;e>>=_o,t+=1);return t}const oc=e=>(_o<n(e,t,!1)),Object.entries(r).forEach(([e,t])=>n(e,t,!0))}function lc(e){const t=new WeakMap;return(r,...n)=>{const i=t.get(r);if(void 0!==i)return i;const s=e(r,...n);return t.set(r,s),s}}const uc=BigInt(0),hc=BigInt(1),fc=BigInt(2),Ac=BigInt(3),dc=BigInt(4),pc=BigInt(5),gc=BigInt(7),yc=BigInt(8),mc=BigInt(9),wc=BigInt(16);function bc(e,t){const r=e%t;return r>=uc?r:t+r}function Ec(e,t,r){let n=e;for(;t-- >uc;)n*=n,n%=r;return n}function vc(e,t){if(e===uc)throw new Error("invert: expected non-zero number");if(t<=uc)throw new Error("invert: expected positive modulus, got "+t);let r=bc(e,t),n=t,i=uc,s=hc;for(;r!==uc;){const e=n%r,t=i-s*(n/r);n=r,r=e,i=s,s=t}if(n!==hc)throw new Error("invert: does not exist");return bc(i,t)}function kc(e,t,r){if(!e.eql(e.sqr(t),r))throw new Error("Cannot find square root")}function Ic(e,t){const r=(e.ORDER+hc)/dc,n=e.pow(t,r);return kc(e,n,t),n}function Bc(e,t){const r=(e.ORDER-pc)/yc,n=e.mul(t,fc),i=e.pow(n,r),s=e.mul(t,i),a=e.mul(e.mul(s,fc),i),o=e.mul(s,e.sub(a,e.ONE));return kc(e,o,t),o}function Cc(e){if(e1e3)throw new Error("Cannot find square root: probably non-prime P");if(1===r)return Ic;let s=i.pow(n,t);const a=(t+hc)/fc;return function(e,n){if(e.is0(n))return n;if(1!==xc(e,n))throw new Error("Cannot find square root");let i=r,o=e.mul(e.ONE,s),c=e.pow(n,t),l=e.pow(n,a);for(;!e.eql(c,e.ONE);){if(e.is0(c))return e.ZERO;let t=1,r=e.sqr(c);for(;!e.eql(r,e.ONE);)if(t++,r=e.sqr(r),t===i)throw new Error("Cannot find square root");const n=hc<e.is0(r)?t:(n[i]=t,e.mul(t,r)),e.ONE),s=e.inv(i);return t.reduceRight((t,r,i)=>e.is0(r)?t:(n[i]=e.mul(t,n[i]),e.mul(t,r)),s),n}function xc(e,t){const r=(e.ORDER-hc)/fc,n=e.pow(t,r),i=e.eql(n,e.ONE),s=e.eql(n,e.ZERO),a=e.eql(n,e.neg(e.ONE));if(!i&&!s&&!a)throw new Error("invalid Legendre symbol result");return i?1:s?0:-1}function Kc(e,t){void 0!==t&&Io(t);const r=void 0!==t?t:e.toString(2).length;return{nBitLength:r,nByteLength:Math.ceil(r/8)}}function Pc(e,t,r=!1,n={}){if(e<=uc)throw new Error("invalid field: expected ORDER > 0, got "+e);let i,s,a,o=!1;if("object"==typeof t&&null!=t){if(n.sqrt||r)throw new Error("cannot specify opts in two arguments");const e=t;e.BITS&&(i=e.BITS),e.sqrt&&(s=e.sqrt),"boolean"==typeof e.isLE&&(r=e.isLE),"boolean"==typeof e.modFromBytes&&(o=e.modFromBytes),a=e.allowedLengths}else"number"==typeof t&&(i=t),n.sqrt&&(s=n.sqrt);const{nBitLength:c,nByteLength:l}=Kc(e,i);if(l>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let u;const h=Object.freeze({ORDER:e,isLE:r,BITS:c,BYTES:l,MASK:oc(c),ZERO:uc,ONE:hc,allowedLengths:a,create:t=>bc(t,e),isValid:t=>{if("bigint"!=typeof t)throw new Error("invalid field element: expected bigint, got "+typeof t);return uc<=t&&te===uc,isValidNot0:e=>!h.is0(e)&&h.isValid(e),isOdd:e=>(e&hc)===hc,neg:t=>bc(-t,e),eql:(e,t)=>e===t,sqr:t=>bc(t*t,e),add:(t,r)=>bc(t+r,e),sub:(t,r)=>bc(t-r,e),mul:(t,r)=>bc(t*r,e),pow:(e,t)=>function(e,t,r){if(ruc;)r&hc&&(n=e.mul(n,i)),i=e.sqr(i),r>>=hc;return n}(h,e,t),div:(t,r)=>bc(t*vc(r,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>vc(t,e),sqrt:s||(t=>{return u||(u=(r=e)%dc===Ac?Ic:r%yc===pc?Bc:r%wc===mc?function(e){const t=Pc(e),r=Cc(e),n=r(t,t.neg(t.ONE)),i=r(t,n),s=r(t,t.neg(n)),a=(e+gc)/wc;return(e,t)=>{let r=e.pow(t,a),o=e.mul(r,n);const c=e.mul(r,i),l=e.mul(r,s),u=e.eql(e.sqr(o),t),h=e.eql(e.sqr(c),t);r=e.cmov(r,o,u),o=e.cmov(l,c,h);const f=e.eql(e.sqr(o),t),A=e.cmov(r,o,f);return kc(e,A,t),A}}(r):Cc(r)),u(h,t);var r}),toBytes:e=>r?tc(e,l):ec(e,l),fromBytes:(t,n=!0)=>{if(a){if(!a.includes(t.length)||t.length>l)throw new Error("Field.fromBytes: expected "+a+" bytes, got "+t.length);const e=new Uint8Array(l);e.set(t,r?0:e.length-t.length),t=e}if(t.length!==l)throw new Error("Field.fromBytes: expected "+l+" bytes, got "+t.length);let i=r?$o(t):Xo(t);if(o&&(i=bc(i,e)),!n&&!h.isValid(i))throw new Error("invalid field element: outside of range 0..ORDER");return i},invertBatch:e=>Dc(h,e),cmov:(e,t,r)=>r?t:e});return Object.freeze(h)}function Uc(e){if("bigint"!=typeof e)throw new Error("field order must be bigint");const t=e.toString(2).length;return Math.ceil(t/8)}function Tc(e){const t=Uc(e);return t+Math.ceil(t/2)}function Fc(e,t,r){return e&t^~e&r}function Mc(e,t,r){return e&t^e&r^t&r}class Rc extends Ho{constructor(e,t,r,n){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=t,this.padOffset=r,this.isLE=n,this.buffer=new Uint8Array(e),this.view=Ko(this.buffer)}update(e){So(this),Bo(e=Lo(e));const{view:t,buffer:r,blockLen:n}=this,i=e.length;for(let s=0;sn-s&&(this.process(r,0),s=0);for(let e=s;e>i&s),o=Number(r&s),c=n?4:0,l=n?0:4;e.setUint32(t+c,a,n),e.setUint32(t+l,o,n)}(r,n-8,BigInt(8*this.length),i),this.process(r,0);const a=Ko(e),o=this.outputLen;if(o%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const c=o/4,l=this.get();if(c>l.length)throw new Error("_sha2: outputLen bigger than state");for(let e=0;e>Hc&Gc)}:{h:0|Number(e>>Hc&Gc),l:0|Number(e&Gc)}}function Wc(e,t=!1){const r=e.length;let n=new Uint32Array(r),i=new Uint32Array(r);for(let s=0;se>>>r,Jc=(e,t,r)=>e<<32-r|t>>>r,_c=(e,t,r)=>e>>>r|t<<32-r,qc=(e,t,r)=>e<<32-r|t>>>r,Zc=(e,t,r)=>e<<64-r|t>>>r-32,Vc=(e,t,r)=>e>>>r-32|t<<64-r;function zc(e,t,r,n){const i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:0|i}}const Xc=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),$c=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,el=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),tl=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,rl=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),nl=(e,t,r,n,i,s)=>t+r+n+i+s+(e/2**32|0)|0,il=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),sl=new Uint32Array(64);class al extends Rc{constructor(e=32){super(64,e,8,!1),this.A=0|Qc[0],this.B=0|Qc[1],this.C=0|Qc[2],this.D=0|Qc[3],this.E=0|Qc[4],this.F=0|Qc[5],this.G=0|Qc[6],this.H=0|Qc[7]}get(){const{A:e,B:t,C:r,D:n,E:i,F:s,G:a,H:o}=this;return[e,t,r,n,i,s,a,o]}set(e,t,r,n,i,s,a,o){this.A=0|e,this.B=0|t,this.C=0|r,this.D=0|n,this.E=0|i,this.F=0|s,this.G=0|a,this.H=0|o}process(e,t){for(let r=0;r<16;r++,t+=4)sl[r]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=sl[e-15],r=sl[e-2],n=Po(t,7)^Po(t,18)^t>>>3,i=Po(r,17)^Po(r,19)^r>>>10;sl[e]=i+sl[e-7]+n+sl[e-16]|0}let{A:r,B:n,C:i,D:s,E:a,F:o,G:c,H:l}=this;for(let e=0;e<64;e++){const t=l+(Po(a,6)^Po(a,11)^Po(a,25))+Fc(a,o,c)+il[e]+sl[e]|0,u=(Po(r,2)^Po(r,13)^Po(r,22))+Mc(r,n,i)|0;l=c,c=o,o=a,a=s+t|0,s=i,i=n,n=r,r=t+u|0}r=r+this.A|0,n=n+this.B|0,i=i+this.C|0,s=s+this.D|0,a=a+this.E|0,o=o+this.F|0,c=c+this.G|0,l=l+this.H|0,this.set(r,n,i,s,a,o,c,l)}roundClean(){xo(sl)}destroy(){this.set(0,0,0,0,0,0,0,0),xo(this.buffer)}}class ol extends al{constructor(){super(28),this.A=0|Nc[0],this.B=0|Nc[1],this.C=0|Nc[2],this.D=0|Nc[3],this.E=0|Nc[4],this.F=0|Nc[5],this.G=0|Nc[6],this.H=0|Nc[7]}}const cl=(()=>Wc(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))))(),ll=(()=>cl[0])(),ul=(()=>cl[1])(),hl=new Uint32Array(80),fl=new Uint32Array(80);class Al extends Rc{constructor(e=64){super(128,e,16,!1),this.Ah=0|Lc[0],this.Al=0|Lc[1],this.Bh=0|Lc[2],this.Bl=0|Lc[3],this.Ch=0|Lc[4],this.Cl=0|Lc[5],this.Dh=0|Lc[6],this.Dl=0|Lc[7],this.Eh=0|Lc[8],this.El=0|Lc[9],this.Fh=0|Lc[10],this.Fl=0|Lc[11],this.Gh=0|Lc[12],this.Gl=0|Lc[13],this.Hh=0|Lc[14],this.Hl=0|Lc[15]}get(){const{Ah:e,Al:t,Bh:r,Bl:n,Ch:i,Cl:s,Dh:a,Dl:o,Eh:c,El:l,Fh:u,Fl:h,Gh:f,Gl:A,Hh:d,Hl:p}=this;return[e,t,r,n,i,s,a,o,c,l,u,h,f,A,d,p]}set(e,t,r,n,i,s,a,o,c,l,u,h,f,A,d,p){this.Ah=0|e,this.Al=0|t,this.Bh=0|r,this.Bl=0|n,this.Ch=0|i,this.Cl=0|s,this.Dh=0|a,this.Dl=0|o,this.Eh=0|c,this.El=0|l,this.Fh=0|u,this.Fl=0|h,this.Gh=0|f,this.Gl=0|A,this.Hh=0|d,this.Hl=0|p}process(e,t){for(let r=0;r<16;r++,t+=4)hl[r]=e.getUint32(t),fl[r]=e.getUint32(t+=4);for(let e=16;e<80;e++){const t=0|hl[e-15],r=0|fl[e-15],n=_c(t,r,1)^_c(t,r,8)^Yc(t,0,7),i=qc(t,r,1)^qc(t,r,8)^Jc(t,r,7),s=0|hl[e-2],a=0|fl[e-2],o=_c(s,a,19)^Zc(s,a,61)^Yc(s,0,6),c=qc(s,a,19)^Vc(s,a,61)^Jc(s,a,6),l=el(i,c,fl[e-7],fl[e-16]),u=tl(l,n,o,hl[e-7],hl[e-16]);hl[e]=0|u,fl[e]=0|l}let{Ah:r,Al:n,Bh:i,Bl:s,Ch:a,Cl:o,Dh:c,Dl:l,Eh:u,El:h,Fh:f,Fl:A,Gh:d,Gl:p,Hh:g,Hl:y}=this;for(let e=0;e<80;e++){const t=_c(u,h,14)^_c(u,h,18)^Zc(u,h,41),m=qc(u,h,14)^qc(u,h,18)^Vc(u,h,41),w=u&f^~u&d,b=rl(y,m,h&A^~h&p,ul[e],fl[e]),E=nl(b,g,t,w,ll[e],hl[e]),v=0|b,k=_c(r,n,28)^Zc(r,n,34)^Zc(r,n,39),I=qc(r,n,28)^Vc(r,n,34)^Vc(r,n,39),B=r&i^r&a^i&a,C=n&s^n&o^s&o;g=0|d,y=0|p,d=0|f,p=0|A,f=0|u,A=0|h,({h:u,l:h}=zc(0|c,0|l,0|E,0|v)),c=0|a,l=0|o,a=0|i,o=0|s,i=0|r,s=0|n;const S=Xc(v,I,C);r=$c(S,E,k,B),n=0|S}({h:r,l:n}=zc(0|this.Ah,0|this.Al,0|r,0|n)),({h:i,l:s}=zc(0|this.Bh,0|this.Bl,0|i,0|s)),({h:a,l:o}=zc(0|this.Ch,0|this.Cl,0|a,0|o)),({h:c,l}=zc(0|this.Dh,0|this.Dl,0|c,0|l)),({h:u,l:h}=zc(0|this.Eh,0|this.El,0|u,0|h)),({h:f,l:A}=zc(0|this.Fh,0|this.Fl,0|f,0|A)),({h:d,l:p}=zc(0|this.Gh,0|this.Gl,0|d,0|p)),({h:g,l:y}=zc(0|this.Hh,0|this.Hl,0|g,0|y)),this.set(r,n,i,s,a,o,c,l,u,h,f,A,d,p,g,y)}roundClean(){xo(hl,fl)}destroy(){xo(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class dl extends Al{constructor(){super(48),this.Ah=0|Oc[0],this.Al=0|Oc[1],this.Bh=0|Oc[2],this.Bl=0|Oc[3],this.Ch=0|Oc[4],this.Cl=0|Oc[5],this.Dh=0|Oc[6],this.Dl=0|Oc[7],this.Eh=0|Oc[8],this.El=0|Oc[9],this.Fh=0|Oc[10],this.Fl=0|Oc[11],this.Gh=0|Oc[12],this.Gl=0|Oc[13],this.Hh=0|Oc[14],this.Hl=0|Oc[15]}}const pl=jo(()=>new al),gl=jo(()=>new ol),yl=jo(()=>new Al),ml=jo(()=>new dl);class wl extends Ho{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,Co(e);const r=Lo(t);if(this.iHash=e.create(),"function"!=typeof this.iHash.update)throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const n=this.blockLen,i=new Uint8Array(n);i.set(r.length>n?e.create().update(r).digest():r);for(let e=0;enew wl(e,t).update(r).digest();bl.create=(e,t)=>new wl(e,t);const El=BigInt(0),vl=BigInt(1);function kl(e,t){const r=t.negate();return e?r:t}function Il(e,t){const r=Dc(e.Fp,t.map(e=>e.Z));return t.map((t,n)=>e.fromAffine(t.toAffine(r[n])))}function Bl(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function Cl(e,t){Bl(e,t);const r=2**e;return{windows:Math.ceil(t/e)+1,windowSize:2**(e-1),mask:oc(e),maxNumber:r,shiftBy:BigInt(e)}}function Sl(e,t,r){const{windowSize:n,mask:i,maxNumber:s,shiftBy:a}=r;let o=Number(e&i),c=e>>a;o>n&&(o-=s,c+=vl);const l=t*n;return{nextN:c,offset:l+Math.abs(o)-1,isZero:0===o,isNeg:o<0,isNegF:t%2!=0,offsetF:l}}const Dl=new WeakMap,xl=new WeakMap;function Kl(e){return xl.get(e)||1}function Pl(e){if(e!==El)throw new Error("invalid wNAF")}class Ul{constructor(e,t){this.BASE=e.BASE,this.ZERO=e.ZERO,this.Fn=e.Fn,this.bits=t}_unsafeLadder(e,t,r=this.ZERO){let n=e;for(;t>El;)t&vl&&(r=r.add(n)),n=n.double(),t>>=vl;return r}precomputeWindow(e,t){const{windows:r,windowSize:n}=Cl(t,this.bits),i=[];let s=e,a=s;for(let e=0;e{if(!(e instanceof t))throw new Error("invalid point at index "+r)})}(r,e),function(e,t){if(!Array.isArray(e))throw new Error("array of scalars expected");e.forEach((e,r)=>{if(!t.isValid(e))throw new Error("invalid scalar at index "+r)})}(n,t);const i=r.length,s=n.length;if(i!==s)throw new Error("arrays of points and scalars must have equal length");const a=e.ZERO,o=ac(BigInt(i));let c=1;o>12?c=o-3:o>4?c=o-2:o>0&&(c=2);const l=oc(c),u=new Array(Number(l)+1).fill(a);let h=a;for(let e=Math.floor((t.BITS-1)/c)*c;e>=0;e-=c){u.fill(a);for(let t=0;t>BigInt(e)&l);u[s]=u[s].add(r[t])}let t=a;for(let e=u.length-1,r=a;e>0;e--)r=r.add(u[e]),t=t.add(r);if(h=h.add(t),0!==e)for(let e=0;e(e[t]="function",e),{ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"}))}(t),t}return Pc(e,{isLE:r})}function Ml(e,t,r={},n){if(void 0===n&&(n="edwards"===e),!t||"object"!=typeof t)throw new Error(`expected valid ${e} CURVE object`);for(const e of["p","n","h"]){const r=t[e];if(!("bigint"==typeof r&&r>El))throw new Error(`CURVE.${e} must be positive bigint`)}const i=Fl(t.p,r.Fp,n),s=Fl(t.n,r.Fn,n),a=["Gx","Gy","a","weierstrass"===e?"b":"d"];for(const e of a)if(!i.isValid(t[e]))throw new Error(`CURVE.${e} must be valid field element of CURVE.Fp`);return{CURVE:t=Object.freeze(Object.assign({},t)),Fp:i,Fn:s}}const Rl=(e,t)=>(e+(e>=0?t:-t)/jl)/t;function Ql(e){if(!["compact","recovered","der"].includes(e))throw new Error('Signature format must be "compact", "recovered", or "der"');return e}function Nl(e,t){const r={};for(let n of Object.keys(t))r[n]=void 0===e[n]?t[n]:e[n];return qo(r.lowS,"lowS"),qo(r.prehash,"prehash"),void 0!==r.format&&Ql(r.format),r}class Ol extends Error{constructor(e=""){super(e)}}const Ll={Err:Ol,_tlv:{encode:(e,t)=>{const{Err:r}=Ll;if(e<0||e>256)throw new r("tlv.encode: wrong tag");if(1&t.length)throw new r("tlv.encode: unpadded data");const n=t.length/2,i=Vo(n);if(i.length/2&128)throw new r("tlv.encode: long form length too big");const s=n>127?Vo(i.length/2|128):"";return Vo(e)+s+i+t},decode(e,t){const{Err:r}=Ll;let n=0;if(e<0||e>256)throw new r("tlv.encode: wrong tag");if(t.length<2||t[n++]!==e)throw new r("tlv.decode: wrong tlv");const i=t[n++];let s=0;if(128&i){const e=127&i;if(!e)throw new r("tlv.decode(long): indefinite length not supported");if(e>4)throw new r("tlv.decode(long): byte length is too big");const a=t.subarray(n,n+e);if(a.length!==e)throw new r("tlv.decode: length bytes not complete");if(0===a[0])throw new r("tlv.decode(long): zero leftmost byte");for(const e of a)s=s<<8|e;if(n+=e,s<128)throw new r("tlv.decode(long): not minimal encoding")}else s=i;const a=t.subarray(n,n+s);if(a.length!==s)throw new r("tlv.decode: wrong value length");return{v:a,l:t.subarray(n+s)}}},_int:{encode(e){const{Err:t}=Ll;if(ebl(t,e,Go(...r))),{Fp:s,Fn:a}=e,{ORDER:o,BITS:c}=a,{keygen:l,getPublicKey:u,getSharedSecret:h,utils:f,lengths:A}=function(e,t={}){const{Fn:r}=e,n=t.randomBytes||Yo,i=Object.assign(ql(e.Fp,r),{seed:Tc(r.ORDER)});function s(e){try{return!!Jl(r,e)}catch(e){return!1}}function a(e=n(i.seed)){return function(e,t,r=!1){const n=e.length,i=Uc(t),s=Tc(t);if(n<16||n1024)throw new Error("expected "+s+"-1024 bytes of input, got "+n);const a=bc(r?$o(e):Xo(e),t-hc)+hc;return r?tc(a,i):ec(a,i)}(Zo(e,i.seed,"seed"),r.ORDER)}function o(t,n=!0){return e.BASE.multiply(Jl(r,t)).toBytes(n)}function c(t){if("bigint"==typeof t)return!1;if(t instanceof e)return!0;const{secretKey:n,publicKey:s,publicKeyUncompressed:a}=i;if(r.allowedLengths||n===s)return;const o=rc("key",t).length;return o===s||o===a}const l={isValidSecretKey:s,isValidPublicKey:function(t,r){const{publicKey:n,publicKeyUncompressed:s}=i;try{const i=t.length;return!(!0===r&&i!==n||!1===r&&i!==s||!e.fromBytes(t))}catch(e){return!1}},randomSecretKey:a,isValidPrivateKey:s,randomPrivateKey:a,normPrivateKeyToScalar:e=>Jl(r,e),precompute:(t=8,r=e.BASE)=>r.precompute(t,!1)};return Object.freeze({getPublicKey:o,getSharedSecret:function(t,n,i=!0){if(!0===c(t))throw new Error("first arg must be private key");if(!1===c(n))throw new Error("second arg must be public key");const s=Jl(r,t);return e.fromHex(n).multiply(s).toBytes(i)},keygen:function(e){const t=a(e);return{secretKey:t,publicKey:o(t)}},Point:e,utils:l,lengths:i})}(e,r),d={prehash:!1,lowS:"boolean"==typeof r.lowS&&r.lowS,format:void 0,extraEntropy:!1},p="compact";function g(e){return e>o>>Hl}function y(e,t){if(!a.isValidNot0(t))throw new Error(`invalid signature ${e}: out of range 1..Point.Fn.ORDER`);return t}class m{constructor(e,t,r){this.r=y("r",e),this.s=y("s",t),null!=r&&(this.recovery=r),Object.freeze(this)}static fromBytes(e,t=p){let r;if(function(e,t){Ql(t);const r=A.signature;Zo(e,"compact"===t?r:"recovered"===t?r+1:void 0,`${t} signature`)}(e,t),"der"===t){const{r:t,s:r}=Ll.toSig(Zo(e));return new m(t,r)}"recovered"===t&&(r=e[0],t="compact",e=e.subarray(1));const n=a.BYTES,i=e.subarray(0,n),s=e.subarray(n,2*n);return new m(a.fromBytes(i),a.fromBytes(s),r)}static fromHex(e,t){return this.fromBytes(Oo(e),t)}addRecoveryBit(e){return new m(this.r,this.s,e)}recoverPublicKey(t){const r=s.ORDER,{r:n,s:i,recovery:c}=this;if(null==c||![0,1,2,3].includes(c))throw new Error("recovery id invalid");if(o*jl1)throw new Error("recovery id is ambiguous for h>1 curve");const l=2===c||3===c?n+o:n;if(!s.isValid(l))throw new Error("recovery id 2 or 3 invalid");const u=s.toBytes(l),h=e.fromBytes(Go(_l(!(1&c)),u)),f=a.inv(l),A=b(rc("msgHash",t)),d=a.create(-A*f),p=a.create(i*f),g=e.BASE.multiplyUnsafe(d).add(h.multiplyUnsafe(p));if(g.is0())throw new Error("point at infinify");return g.assertValidity(),g}hasHighS(){return g(this.s)}toBytes(e=p){if(Ql(e),"der"===e)return Oo(Ll.hexFromSig(this));const t=a.toBytes(this.r),r=a.toBytes(this.s);if("recovered"===e){if(null==this.recovery)throw new Error("recovery bit must be present");return Go(Uint8Array.of(this.recovery),t,r)}return Go(t,r)}toHex(e){return Qo(this.toBytes(e))}assertValidity(){}static fromCompact(e){return m.fromBytes(rc("sig",e),"compact")}static fromDER(e){return m.fromBytes(rc("sig",e),"der")}normalizeS(){return this.hasHighS()?new m(this.r,a.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return Qo(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return Qo(this.toBytes("compact"))}}const w=r.bits2int||function(e){if(e.length>8192)throw new Error("input is too large");const t=Xo(e),r=8*e.length-c;return r>0?t>>BigInt(r):t},b=r.bits2int_modN||function(e){return a.create(w(e))},E=oc(c);function v(e){return sc("num < 2^"+c,e,Gl,E),a.toBytes(e)}function k(e,r){return Zo(e,void 0,"message"),r?Zo(t(e),void 0,"prehashed message"):e}return Object.freeze({keygen:l,getPublicKey:u,getSharedSecret:h,utils:f,lengths:A,Point:e,sign:function(r,s,o={}){r=rc("message",r);const{seed:c,k2sig:l}=function(t,r,i){if(["recovered","canonical"].some(e=>e in i))throw new Error("sign() legacy options not supported");const{lowS:s,prehash:o,extraEntropy:c}=Nl(i,d);t=k(t,o);const l=b(t),u=Jl(a,r),h=[v(u),v(l)];if(null!=c&&!1!==c){const e=!0===c?n(A.secretKey):c;h.push(rc("extraEntropy",e))}const f=Go(...h),p=l;return{seed:f,k2sig:function(t){const r=w(t);if(!a.isValidNot0(r))return;const n=a.inv(r),i=e.BASE.multiply(r).toAffine(),o=a.create(i.x);if(o===Gl)return;const c=a.create(n*a.create(p+o*u));if(c===Gl)return;let l=(i.x===o?0:2)|Number(i.y&Hl),h=c;return s&&g(c)&&(h=a.neg(c),l^=1),new m(o,h,l)}}}(r,s,o),u=function(e,t,r){if("number"!=typeof e||e<2)throw new Error("hashLen must be a number");if("number"!=typeof t||t<2)throw new Error("qByteLen must be a number");if("function"!=typeof r)throw new Error("hmacFn must be a function");const n=e=>new Uint8Array(e),i=e=>Uint8Array.of(e);let s=n(e),a=n(e),o=0;const c=()=>{s.fill(1),a.fill(0),o=0},l=(...e)=>r(a,s,...e),u=(e=n(0))=>{a=l(i(0),e),s=l(),0!==e.length&&(a=l(i(1),e),s=l())},h=()=>{if(o++>=1e3)throw new Error("drbg: tried 1000 values");let e=0;const r=[];for(;e{let r;for(c(),u(e);!(r=t(h()));)u();return c(),r}}(t.outputLen,a.BYTES,i);return u(c,l)},verify:function(t,r,n,i={}){const{lowS:s,prehash:o,format:c}=Nl(i,d);if(n=rc("publicKey",n),r=k(rc("message",r),o),"strict"in i)throw new Error("options.strict was renamed to lowS");const l=void 0===c?function(e){let t;const r="string"==typeof e||ko(e),n=!r&&null!==e&&"object"==typeof e&&"bigint"==typeof e.r&&"bigint"==typeof e.s;if(!r&&!n)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(n)t=new m(e.r,e.s);else if(r){try{t=m.fromBytes(rc("sig",e),"der")}catch(e){if(!(e instanceof Ll.Err))throw e}if(!t)try{t=m.fromBytes(rc("sig",e),"compact")}catch(e){return!1}}return t||!1}(t):m.fromBytes(rc("sig",t),c);if(!1===l)return!1;try{const t=e.fromBytes(n);if(s&&l.hasHighS())return!1;const{r:i,s:o}=l,c=b(r),u=a.inv(o),h=a.create(c*u),f=a.create(i*u),A=e.BASE.multiplyUnsafe(h).add(t.multiplyUnsafe(f));return!A.is0()&&a.create(A.x)===i}catch(e){return!1}},recoverPublicKey:function(e,t,r={}){const{prehash:n}=Nl(r,d);return t=k(t,n),m.fromBytes(e,"recovered").recoverPublicKey(t).toBytes()},Signature:m,hash:t})}function Vl(e){const{CURVE:t,curveOpts:r,hash:n,ecdsaOpts:i}=function(e){const{CURVE:t,curveOpts:r}=function(e){const t={a:e.a,b:e.b,p:e.Fp.ORDER,n:e.n,h:e.h,Gx:e.Gx,Gy:e.Gy},r=e.Fp;let n=e.allowedPrivateKeyLengths?Array.from(new Set(e.allowedPrivateKeyLengths.map(e=>Math.ceil(e/2)))):void 0;return{CURVE:t,curveOpts:{Fp:r,Fn:Pc(t.n,{BITS:e.nBitLength,allowedLengths:n,modFromBytes:e.wrapPrivateKey}),allowInfinityPoint:e.allowInfinityPoint,endo:e.endo,isTorsionFree:e.isTorsionFree,clearCofactor:e.clearCofactor,fromBytes:e.fromBytes,toBytes:e.toBytes}}}(e),n={hmac:e.hmac,randomBytes:e.randomBytes,lowS:e.lowS,bits2int:e.bits2int,bits2int_modN:e.bits2int_modN};return{CURVE:t,curveOpts:r,hash:e.hash,ecdsaOpts:n}}(e);return function(e,t){const r=t.Point;return Object.assign({},t,{ProjectivePoint:r,CURVE:Object.assign({},e,Kc(r.Fn.ORDER,r.Fn.BITS))})}(e,Zl(function(e,t={}){const r=Ml("weierstrass",e,t),{Fp:n,Fn:i}=r;let s=r.CURVE;const{h:a,n:o}=s;cc(t,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});const{endo:c}=t;if(c&&(!n.is0(s.a)||"bigint"!=typeof c.beta||!Array.isArray(c.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');const l=ql(n,i);function u(){if(!n.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}const h=t.toBytes||function(e,t,r){const{x:i,y:s}=t.toAffine(),a=n.toBytes(i);return qo(r,"isCompressed"),r?(u(),Go(_l(!n.isOdd(s)),a)):Go(Uint8Array.of(4),a,n.toBytes(s))},f=t.fromBytes||function(e){Zo(e,void 0,"Point");const{publicKey:t,publicKeyUncompressed:r}=l,i=e.length,s=e[0],a=e.subarray(1);if(i!==t||2!==s&&3!==s){if(i===r&&4===s){const e=n.BYTES,t=n.fromBytes(a.subarray(0,e)),r=n.fromBytes(a.subarray(e,2*e));if(!d(t,r))throw new Error("bad point: is not on curve");return{x:t,y:r}}throw new Error(`bad point: got length ${i}, expected compressed=${t} or uncompressed=${r}`)}{const e=n.fromBytes(a);if(!n.isValid(e))throw new Error("bad point: is not on curve, wrong x");const t=A(e);let r;try{r=n.sqrt(t)}catch(e){const t=e instanceof Error?": "+e.message:"";throw new Error("bad point: is not on curve, sqrt error"+t)}return u(),!(1&~s)!==n.isOdd(r)&&(r=n.neg(r)),{x:e,y:r}}};function A(e){const t=n.sqr(e),r=n.mul(t,e);return n.add(n.add(r,n.mul(e,s.a)),s.b)}function d(e,t){const r=n.sqr(t),i=A(e);return n.eql(r,i)}if(!d(s.Gx,s.Gy))throw new Error("bad curve params: generator point");const p=n.mul(n.pow(s.a,Wl),Yl),g=n.mul(n.sqr(s.b),BigInt(27));if(n.is0(n.add(p,g)))throw new Error("bad curve params: a or b");function y(e,t,r=!1){if(!n.isValid(t)||r&&n.is0(t))throw new Error(`bad point coordinate ${e}`);return t}function m(e){if(!(e instanceof k))throw new Error("ProjectivePoint expected")}function w(e){if(!c||!c.basises)throw new Error("no endo");return function(e,t,r){const[[n,i],[s,a]]=t,o=Rl(a*e,r),c=Rl(-i*e,r);let l=e-o*n-c*s,u=-o*i-c*a;const h=l=A||u=A)throw new Error("splitScalar (endomorphism): failed, k="+e);return{k1neg:h,k1:l,k2neg:f,k2:u}}(e,c.basises,i.ORDER)}const b=lc((e,t)=>{const{X:r,Y:i,Z:s}=e;if(n.eql(s,n.ONE))return{x:r,y:i};const a=e.is0();null==t&&(t=a?n.ONE:n.inv(s));const o=n.mul(r,t),c=n.mul(i,t),l=n.mul(s,t);if(a)return{x:n.ZERO,y:n.ZERO};if(!n.eql(l,n.ONE))throw new Error("invZ was invalid");return{x:o,y:c}}),E=lc(e=>{if(e.is0()){if(t.allowInfinityPoint&&!n.is0(e.Y))return;throw new Error("bad point: ZERO")}const{x:r,y:i}=e.toAffine();if(!n.isValid(r)||!n.isValid(i))throw new Error("bad point: x or y not field elements");if(!d(r,i))throw new Error("bad point: equation left != right");if(!e.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function v(e,t,r,i,s){return r=new k(n.mul(r.X,e),r.Y,r.Z),t=kl(i,t),r=kl(s,r),t.add(r)}class k{constructor(e,t,r){this.X=y("x",e),this.Y=y("y",t,!0),this.Z=y("z",r),Object.freeze(this)}static CURVE(){return s}static fromAffine(e){const{x:t,y:r}=e||{};if(!e||!n.isValid(t)||!n.isValid(r))throw new Error("invalid affine point");if(e instanceof k)throw new Error("projective point not allowed");return n.is0(t)&&n.is0(r)?k.ZERO:new k(t,r,n.ONE)}static fromBytes(e){const t=k.fromAffine(f(Zo(e,void 0,"point")));return t.assertValidity(),t}static fromHex(e){return k.fromBytes(rc("pointHex",e))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(e=8,t=!0){return B.createCache(this,e),t||this.multiply(Wl),this}assertValidity(){E(this)}hasEvenY(){const{y:e}=this.toAffine();if(!n.isOdd)throw new Error("Field doesn't support isOdd");return!n.isOdd(e)}equals(e){m(e);const{X:t,Y:r,Z:i}=this,{X:s,Y:a,Z:o}=e,c=n.eql(n.mul(t,o),n.mul(s,i)),l=n.eql(n.mul(r,o),n.mul(a,i));return c&&l}negate(){return new k(this.X,n.neg(this.Y),this.Z)}double(){const{a:e,b:t}=s,r=n.mul(t,Wl),{X:i,Y:a,Z:o}=this;let c=n.ZERO,l=n.ZERO,u=n.ZERO,h=n.mul(i,i),f=n.mul(a,a),A=n.mul(o,o),d=n.mul(i,a);return d=n.add(d,d),u=n.mul(i,o),u=n.add(u,u),c=n.mul(e,u),l=n.mul(r,A),l=n.add(c,l),c=n.sub(f,l),l=n.add(f,l),l=n.mul(c,l),c=n.mul(d,c),u=n.mul(r,u),A=n.mul(e,A),d=n.sub(h,A),d=n.mul(e,d),d=n.add(d,u),u=n.add(h,h),h=n.add(u,h),h=n.add(h,A),h=n.mul(h,d),l=n.add(l,h),A=n.mul(a,o),A=n.add(A,A),h=n.mul(A,d),c=n.sub(c,h),u=n.mul(A,f),u=n.add(u,u),u=n.add(u,u),new k(c,l,u)}add(e){m(e);const{X:t,Y:r,Z:i}=this,{X:a,Y:o,Z:c}=e;let l=n.ZERO,u=n.ZERO,h=n.ZERO;const f=s.a,A=n.mul(s.b,Wl);let d=n.mul(t,a),p=n.mul(r,o),g=n.mul(i,c),y=n.add(t,r),w=n.add(a,o);y=n.mul(y,w),w=n.add(d,p),y=n.sub(y,w),w=n.add(t,i);let b=n.add(a,c);return w=n.mul(w,b),b=n.add(d,g),w=n.sub(w,b),b=n.add(r,i),l=n.add(o,c),b=n.mul(b,l),l=n.add(p,g),b=n.sub(b,l),h=n.mul(f,w),l=n.mul(A,g),h=n.add(l,h),l=n.sub(p,h),h=n.add(p,h),u=n.mul(l,h),p=n.add(d,d),p=n.add(p,d),g=n.mul(f,g),w=n.mul(A,w),p=n.add(p,g),g=n.sub(d,g),g=n.mul(f,g),w=n.add(w,g),d=n.mul(p,w),u=n.add(u,d),d=n.mul(b,w),l=n.mul(y,l),l=n.sub(l,d),d=n.mul(y,p),h=n.mul(b,h),h=n.add(h,d),new k(l,u,h)}subtract(e){return this.add(e.negate())}is0(){return this.equals(k.ZERO)}multiply(e){const{endo:r}=t;if(!i.isValidNot0(e))throw new Error("invalid scalar: out of range");let n,s;const a=e=>B.cached(this,e,e=>Il(k,e));if(r){const{k1neg:t,k1:i,k2neg:o,k2:c}=w(e),{p:l,f:u}=a(i),{p:h,f}=a(c);s=u.add(f),n=v(r.beta,l,h,t,o)}else{const{p:t,f:r}=a(e);n=t,s=r}return Il(k,[n,s])[0]}multiplyUnsafe(e){const{endo:r}=t,n=this;if(!i.isValid(e))throw new Error("invalid scalar: out of range");if(e===Gl||n.is0())return k.ZERO;if(e===Hl)return n;if(B.hasCache(this))return this.multiply(e);if(r){const{k1neg:t,k1:i,k2neg:s,k2:a}=w(e),{p1:o,p2:c}=function(e,t,r,n){let i=t,s=e.ZERO,a=e.ZERO;for(;r>El||n>El;)r&vl&&(s=s.add(i)),n&vl&&(a=a.add(i)),i=i.double(),r>>=vl,n>>=vl;return{p1:s,p2:a}}(k,n,i,a);return v(r.beta,o,c,t,s)}return B.unsafe(n,e)}multiplyAndAddUnsafe(e,t,r){const n=this.multiplyUnsafe(t).add(e.multiplyUnsafe(r));return n.is0()?void 0:n}toAffine(e){return b(this,e)}isTorsionFree(){const{isTorsionFree:e}=t;return a===Hl||(e?e(k,this):B.unsafe(this,o).is0())}clearCofactor(){const{clearCofactor:e}=t;return a===Hl?this:e?e(k,this):this.multiplyUnsafe(a)}isSmallOrder(){return this.multiplyUnsafe(a).is0()}toBytes(e=!0){return qo(e,"isCompressed"),this.assertValidity(),h(k,this,e)}toHex(e=!0){return Qo(this.toBytes(e))}toString(){return``}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(e=!0){return this.toBytes(e)}_setWindowSize(e){this.precompute(e)}static normalizeZ(e){return Il(k,e)}static msm(e,t){return Tl(k,i,e,t)}static fromPrivateKey(e){return k.BASE.multiply(Jl(i,e))}}k.BASE=new k(s.Gx,s.Gy,n.ONE),k.ZERO=new k(n.ZERO,n.ONE,n.ZERO),k.Fp=n,k.Fn=i;const I=i.BITS,B=new Ul(k,t.endo?Math.ceil(I/2):I);return k.BASE.precompute(8),k}(t,r),n,i))}function zl(e,t){const r=t=>Vl({...e,hash:t});return{...r(t),create:r}}const Xl={p:BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff"),n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),h:BigInt(1),a:BigInt("0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc"),b:BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5")},$l={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff"),n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),h:BigInt(1),a:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc"),b:BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f")},eu={p:BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),h:BigInt(1),a:BigInt("0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"),b:BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650")},tu=Pc(Xl.p),ru=Pc($l.p),nu=Pc(eu.p),iu=zl({...Xl,Fp:tu,lowS:!1},pl),su=zl({...$l,Fp:ru,lowS:!1},ml),au=zl({...eu,Fp:nu,lowS:!1,allowedPrivateKeyLengths:[130,131,132]},yl),ou=BigInt(0),cu=BigInt(1),lu=BigInt(2),uu=BigInt(7),hu=BigInt(256),fu=BigInt(113),Au=[],du=[],pu=[];for(let e=0,t=cu,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],Au.push(2*(5*n+r)),du.push((e+1)*(e+2)/2%64);let i=ou;for(let e=0;e<7;e++)t=(t<>uu)*fu)%hu,t&lu&&(i^=cu<<(cu<r>32?((e,t,r)=>t<>>64-r)(e,t,r):((e,t,r)=>e<>>32-r)(e,t,r),bu=(e,t,r)=>r>32?((e,t,r)=>e<>>64-r)(e,t,r):((e,t,r)=>t<>>32-r)(e,t,r);class Eu extends Ho{constructor(e,t,r,n=!1,i=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=e,this.suffix=t,this.outputLen=r,this.enableXOF=n,this.rounds=i,Io(r),!(0=r&&this.keccak();const s=Math.min(r-this.posOut,i-n);e.set(t.subarray(this.posOut,this.posOut+s),n),this.posOut+=s,n+=s}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return Io(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(Do(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,xo(this.state)}_cloneInto(e){const{blockLen:t,suffix:r,outputLen:n,rounds:i,enableXOF:s}=this;return e||(e=new Eu(t,r,n,s,i)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=i,e.suffix=r,e.outputLen=n,e.enableXOF=s,e.destroyed=this.destroyed,e}}const vu=(e,t,r)=>jo(()=>new Eu(t,e,r)),ku=(()=>vu(6,136,32))(),Iu=(()=>vu(6,72,64))(),Bu=(()=>{return e=31,t=136,r=32,function(e){const t=(t,r)=>e(r).update(Lo(t)).digest(),r=e({});return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=t=>e(t),t}((n={})=>new Eu(t,e,void 0===n.dkLen?r:n.dkLen,!0));var e,t,r})(),Cu=BigInt(0),Su=BigInt(1),Du=BigInt(2),xu=BigInt(8);function Ku(e,t={}){const r=Ml("edwards",e,t,t.FpFnLE),{Fp:n,Fn:i}=r;let s=r.CURVE;const{h:a}=s;cc(t,{},{uvRatio:"function"});const o=Du<n.create(e),l=t.uvRatio||((e,t)=>{try{return{isValid:!0,value:n.sqrt(n.div(e,t))}}catch(e){return{isValid:!1,value:Cu}}});if(!function(e,t,r,n){const i=e.sqr(r),s=e.sqr(n),a=e.add(e.mul(t.a,i),s),o=e.add(e.ONE,e.mul(t.d,e.mul(i,s)));return e.eql(a,o)}(n,s,s.Gx,s.Gy))throw new Error("bad curve params: generator point");function u(e,t,r=!1){return sc("coordinate "+e,t,r?Su:Cu,o),t}function h(e){if(!(e instanceof d))throw new Error("ExtendedPoint expected")}const f=lc((e,t)=>{const{X:r,Y:i,Z:s}=e,a=e.is0();null==t&&(t=a?xu:n.inv(s));const o=c(r*t),l=c(i*t),u=n.mul(s,t);if(a)return{x:Cu,y:Su};if(u!==Su)throw new Error("invZ was invalid");return{x:o,y:l}}),A=lc(e=>{const{a:t,d:r}=s;if(e.is0())throw new Error("bad point: ZERO");const{X:n,Y:i,Z:a,T:o}=e,l=c(n*n),u=c(i*i),h=c(a*a),f=c(h*h),A=c(l*t);if(c(h*c(A+u))!==c(f+c(r*c(l*u))))throw new Error("bad point: equation left != right (1)");if(c(n*i)!==c(a*o))throw new Error("bad point: equation left != right (2)");return!0});class d{constructor(e,t,r,n){this.X=u("x",e),this.Y=u("y",t),this.Z=u("z",r,!0),this.T=u("t",n),Object.freeze(this)}static CURVE(){return s}static fromAffine(e){if(e instanceof d)throw new Error("extended point not allowed");const{x:t,y:r}=e||{};return u("x",t),u("y",r),new d(t,r,Su,c(t*r))}static fromBytes(e,t=!1){const r=n.BYTES,{a:i,d:a}=s;e=nc(Zo(e,r,"point")),qo(t,"zip215");const u=nc(e),h=e[r-1];u[r-1]=-129&h;const f=$o(u),A=t?o:n.ORDER;sc("point.y",f,Cu,A);const p=c(f*f),g=c(p-Su),y=c(a*p-i);let{isValid:m,value:w}=l(g,y);if(!m)throw new Error("bad point: invalid y coordinate");const b=(w&Su)===Su,E=!!(128&h);if(!t&&w===Cu&&E)throw new Error("bad point: x=0 and x_0=1");return E!==b&&(w=c(-w)),d.fromAffine({x:w,y:f})}static fromHex(e,t=!1){return d.fromBytes(rc("point",e),t)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(e=8,t=!0){return p.createCache(this,e),t||this.multiply(Du),this}assertValidity(){A(this)}equals(e){h(e);const{X:t,Y:r,Z:n}=this,{X:i,Y:s,Z:a}=e,o=c(t*a),l=c(i*n),u=c(r*a),f=c(s*n);return o===l&&u===f}is0(){return this.equals(d.ZERO)}negate(){return new d(c(-this.X),this.Y,this.Z,c(-this.T))}double(){const{a:e}=s,{X:t,Y:r,Z:n}=this,i=c(t*t),a=c(r*r),o=c(Du*c(n*n)),l=c(e*i),u=t+r,h=c(c(u*u)-i-a),f=l+a,A=f-o,p=l-a,g=c(h*A),y=c(f*p),m=c(h*p),w=c(A*f);return new d(g,y,w,m)}add(e){h(e);const{a:t,d:r}=s,{X:n,Y:i,Z:a,T:o}=this,{X:l,Y:u,Z:f,T:A}=e,p=c(n*l),g=c(i*u),y=c(o*r*A),m=c(a*f),w=c((n+i)*(l+u)-p-g),b=m-y,E=m+y,v=c(g-t*p),k=c(w*b),I=c(E*v),B=c(w*v),C=c(b*E);return new d(k,I,C,B)}subtract(e){return this.add(e.negate())}multiply(e){if(!i.isValidNot0(e))throw new Error("invalid scalar: expected 1 <= sc < curve.n");const{p:t,f:r}=p.cached(this,e,e=>Il(d,e));return Il(d,[t,r])[0]}multiplyUnsafe(e,t=d.ZERO){if(!i.isValid(e))throw new Error("invalid scalar: expected 0 <= sc < curve.n");return e===Cu?d.ZERO:this.is0()||e===Su?this:p.unsafe(this,e,e=>Il(d,e),t)}isSmallOrder(){return this.multiplyUnsafe(a).is0()}isTorsionFree(){return p.unsafe(this,s.n).is0()}toAffine(e){return f(this,e)}clearCofactor(){return a===Su?this:this.multiplyUnsafe(a)}toBytes(){const{x:e,y:t}=this.toAffine(),r=n.toBytes(t);return r[r.length-1]|=e&Su?128:0,r}toHex(){return Qo(this.toBytes())}toString(){return``}get ex(){return this.X}get ey(){return this.Y}get ez(){return this.Z}get et(){return this.T}static normalizeZ(e){return Il(d,e)}static msm(e,t){return Tl(d,i,e,t)}_setWindowSize(e){this.precompute(e)}toRawBytes(){return this.toBytes()}}d.BASE=new d(s.Gx,s.Gy,Su,c(s.Gx*s.Gy)),d.ZERO=new d(Cu,Su,Su,Cu),d.Fp=n,d.Fn=i;const p=new Ul(d,i.BITS);return d.BASE.precompute(8),d}const Pu=BigInt(0),Uu=BigInt(1),Tu=BigInt(2);const Fu={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n:BigInt("0x3fffffffffffffffffffffffffffffffffffffffffffffffffffffff7cca23e9c44edb49aed63690216cc2728dc58f552378c292ab5844f3"),h:BigInt(4),a:BigInt(1),d:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffff6756"),Gx:BigInt("0x4f1970c66bed0ded221d15a622bf36da9e146570470f1767ea6de324a3d3a46412ae1af72ab66511433b80e18b00938e2626a82bc70cc05e"),Gy:BigInt("0x693f46716eb6bc248876203756c9c7624bea73736ca3984087789c1e05a0c2d73ad3ff1ce67c39c4fdbd132c4ed7c8ad9808795bf230fa14")},Mu=Object.assign({},Fu,{d:BigInt("0xd78b4bdc7f0daf19f24f38c29373a2ccad46157242a50f37809b1da3412a12e79ccc9c81264cfe9ad080997058fb61c4243cc32dbaa156b9"),Gx:BigInt("0x79a70b2b70400553ae7c9df416c792c61128751ac92969240c25a07d728bdc93e21f7787ed6972249de732f38496cd11698713093e9c04fc"),Gy:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffff80000000000000000000000000000000000000000000000000000001")}),Ru=jo(()=>Bu.create({dkLen:114})),Qu=BigInt(1),Nu=BigInt(2),Ou=BigInt(3);BigInt(4);const Lu=BigInt(11),Gu=BigInt(22),Hu=BigInt(44),ju=BigInt(88),Wu=BigInt(223);function Yu(e){const t=Fu.p,r=e*e*e%t,n=r*r*e%t,i=Ec(n,Ou,t)*n%t,s=Ec(i,Ou,t)*n%t,a=Ec(s,Nu,t)*r%t,o=Ec(a,Lu,t)*a%t,c=Ec(o,Gu,t)*o%t,l=Ec(c,Hu,t)*c%t,u=Ec(l,ju,t)*l%t,h=Ec(u,Hu,t)*c%t,f=Ec(h,Nu,t)*r%t,A=Ec(f,Qu,t)*e%t;return Ec(A,Wu,t)*f%t}function Ju(e){return e[0]&=252,e[55]|=128,e[56]=0,e}function _u(e,t){const r=Fu.p,n=bc(e*e*t,r),i=bc(n*e,r),s=bc(i*n*t,r),a=bc(i*Yu(s),r),o=bc(a*a,r);return{isValid:bc(o*t,r)===e,value:a}}const qu=(()=>Pc(Fu.p,{BITS:456,isLE:!0}))(),Zu=(()=>Pc(Fu.n,{BITS:456,isLE:!0}))();function Vu(e,t,r){if(t.length>255)throw new Error("context must be smaller than 255, got: "+t.length);return Go((n="SigEd448",Uint8Array.from(n,(e,t)=>{const r=e.charCodeAt(0);if(1!==e.length||r>127)throw new Error(`string contains non-ASCII character "${n[t]}" with code ${r} at position ${t}`);return r})),new Uint8Array([r?1:0,t.length]),t,e);var n}const zu=function(e){const{CURVE:t,curveOpts:r,hash:n,eddsaOpts:i}=function(e){const t={a:e.a,d:e.d,p:e.Fp.ORDER,n:e.n,h:e.h,Gx:e.Gx,Gy:e.Gy},r={Fp:e.Fp,Fn:Pc(t.n,e.nBitLength,!0),uvRatio:e.uvRatio},n={randomBytes:e.randomBytes,adjustScalarBytes:e.adjustScalarBytes,domain:e.domain,prehash:e.prehash,mapToCurve:e.mapToCurve};return{CURVE:t,curveOpts:r,hash:e.hash,eddsaOpts:n}}(e);return function(e,t){const r=t.Point;return Object.assign({},t,{ExtendedPoint:r,CURVE:e,nBitLength:r.Fn.BITS,nByteLength:r.Fn.BYTES})}(e,function(e,t,r={}){if("function"!=typeof t)throw new Error('"hash" function param is required');cc(r,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",mapToCurve:"function"});const{prehash:n}=r,{BASE:i,Fp:s,Fn:a}=e,o=r.randomBytes||Yo,c=r.adjustScalarBytes||(e=>e),l=r.domain||((e,t,r)=>{if(qo(r,"phflag"),t.length||r)throw new Error("Contexts/pre-hash are not supported");return e});function u(e){return a.create($o(e))}function h(e){const{head:r,prefix:n,scalar:s}=function(e){const r=g.secretKey;e=rc("private key",e,r);const n=rc("hashed private key",t(e),2*r),i=c(n.slice(0,r));return{head:i,prefix:n.slice(r,2*r),scalar:u(i)}}(e),a=i.multiply(s),o=a.toBytes();return{head:r,prefix:n,scalar:s,point:a,pointBytes:o}}function f(e){return h(e).pointBytes}function A(e=Uint8Array.of(),...r){const i=Go(...r);return u(t(l(i,rc("context",e),!!n)))}const d={zip215:!0},p=s.BYTES,g={secretKey:p,publicKey:p,signature:2*p,seed:p};function y(e=o(g.seed)){return Zo(e,g.seed,"seed")}const m={getExtendedPublicKey:h,randomSecretKey:y,isValidSecretKey:function(e){return ko(e)&&e.length===a.BYTES},isValidPublicKey:function(t,r){try{return!!e.fromBytes(t,r)}catch(e){return!1}},toMontgomery(t){const{y:r}=e.fromBytes(t),n=g.publicKey,i=32===n;if(!i&&57!==n)throw new Error("only defined for 25519 and 448");const a=i?s.div(Su+r,Su-r):s.div(r-Su,r+Su);return s.toBytes(a)},toMontgomerySecret(e){const r=g.secretKey;Zo(e,r);const n=t(e.subarray(0,r));return c(n).subarray(0,r)},randomPrivateKey:y,precompute:(t=8,r=e.BASE)=>r.precompute(t,!1)};return Object.freeze({keygen:function(e){const t=m.randomSecretKey(e);return{secretKey:t,publicKey:f(t)}},getPublicKey:f,sign:function(e,t,r={}){e=rc("message",e),n&&(e=n(e));const{prefix:s,scalar:o,pointBytes:c}=h(t),l=A(r.context,s,e),u=i.multiply(l).toBytes(),f=A(r.context,u,c,e),d=a.create(l+f*o);if(!a.isValid(d))throw new Error("sign failed: invalid s");return Zo(Go(u,a.toBytes(d)),g.signature,"result")},verify:function(t,r,s,a=d){const{context:o,zip215:c}=a,l=g.signature;t=rc("signature",t,l),r=rc("message",r),s=rc("publicKey",s,g.publicKey),void 0!==c&&qo(c,"zip215"),n&&(r=n(r));const u=l/2,h=t.subarray(0,u),f=$o(t.subarray(u,l));let p,y,m;try{p=e.fromBytes(s,c),y=e.fromBytes(h,c),m=i.multiplyUnsafe(f)}catch(e){return!1}if(!c&&p.isSmallOrder())return!1;const w=A(o,y.toBytes(),p.toBytes(),r);return y.add(p.multiplyUnsafe(w)).subtract(m).clearCofactor().is0()},utils:m,Point:e,lengths:g})}(Ku(t,r),n,i))}((()=>({...Fu,Fp:qu,Fn:Zu,nBitLength:Zu.BITS,hash:Ru,adjustScalarBytes:Ju,domain:Vu,uvRatio:_u}))());Ku(Mu);const Xu=(()=>{const e=Fu.p;return function(e){const t=(cc(r=e,{adjustScalarBytes:"function",powPminus2:"function"}),Object.freeze({...r}));var r;const{P:n,type:i,adjustScalarBytes:s,powPminus2:a,randomBytes:o}=t,c="x25519"===i;if(!c&&"x448"!==i)throw new Error("invalid type");const l=o||Yo,u=c?255:448,h=c?32:56,f=c?BigInt(9):BigInt(5),A=c?BigInt(121665):BigInt(39081),d=c?Tu**BigInt(254):Tu**BigInt(447),p=c?BigInt(8)*Tu**BigInt(251)-Uu:BigInt(4)*Tu**BigInt(445)-Uu,g=d+p+Uu,y=e=>bc(e,n),m=w(f);function w(e){return tc(y(e),h)}function b(e,t){const r=function(e,t){sc("u",e,Pu,n),sc("scalar",t,d,g);const r=t,i=e;let s=Uu,o=Pu,c=e,l=Uu,h=Pu;for(let e=BigInt(u-1);e>=Pu;e--){const t=r>>e&Uu;h^=t,({x_2:s,x_3:c}=v(h,s,c)),({x_2:o,x_3:l}=v(h,o,l)),h=t;const n=s+o,a=y(n*n),u=s-o,f=y(u*u),d=a-f,p=c+l,g=y((c-l)*n),m=y(p*u),w=g+m,b=g-m;c=y(w*w),l=y(i*y(b*b)),s=y(a*f),o=y(d*(a+y(A*d)))}({x_2:s,x_3:c}=v(h,s,c)),({x_2:o,x_3:l}=v(h,o,l));const f=a(o);return y(s*f)}(function(e){const t=rc("u coordinate",e,h);return c&&(t[31]&=127),y($o(t))}(t),function(e){return $o(s(rc("scalar",e,h)))}(e));if(r===Pu)throw new Error("invalid private or public key received");return w(r)}function E(e){return b(e,m)}function v(e,t,r){const n=y(e*(t-r));return{x_2:t=y(t-n),x_3:r=y(r+n)}}const k={secretKey:h,publicKey:h,seed:h},I=(e=l(h))=>(Bo(e,k.seed),e);return{keygen:function(e){const t=I(e);return{secretKey:t,publicKey:E(t)}},getSharedSecret:(e,t)=>b(e,t),getPublicKey:e=>E(e),scalarMult:b,scalarMultBase:E,utils:{randomSecretKey:I,randomPrivateKey:I},GuBytes:m.slice(),lengths:k}}({P:e,type:"x448",powPminus2:t=>bc(Ec(Yu(t),Nu,e)*t,e),adjustScalarBytes:Ju})})(),$u={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},eh={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},th=BigInt(2),rh=Pc($u.p,{sqrt:function(e){const t=$u.p,r=BigInt(3),n=BigInt(6),i=BigInt(11),s=BigInt(22),a=BigInt(23),o=BigInt(44),c=BigInt(88),l=e*e*e%t,u=l*l*e%t,h=Ec(u,r,t)*u%t,f=Ec(h,r,t)*u%t,A=Ec(f,th,t)*l%t,d=Ec(A,i,t)*A%t,p=Ec(d,s,t)*d%t,g=Ec(p,o,t)*p%t,y=Ec(g,c,t)*g%t,m=Ec(y,o,t)*p%t,w=Ec(m,r,t)*u%t,b=Ec(w,a,t)*d%t,E=Ec(b,n,t)*l%t,v=Ec(E,th,t);if(!rh.eql(rh.sqr(v),e))throw new Error("Cannot find square root");return v}}),nh=zl({...$u,Fp:rh,lowS:!0,endo:eh},pl),ih=pl,sh=gl,ah=Pc(BigInt("0xa9fb57dba1eea9bc3e660a909d838d726e3bf623d52620282013481d1f6e5377")),oh=zl({a:ah.create(BigInt("0x7d5a0975fc2c3057eef67530417affe7fb8055c126dc5c6ce94a4b44f330b5d9")),b:BigInt("0x26dc5c6ce94a4b44f330b5d9bbd77cbf958416295cf7e1ce6bccdc18ff8c07b6"),Fp:ah,n:BigInt("0xa9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e82974856a7"),Gx:BigInt("0x8bd2aeb9cb7e57cb2c4b482ffc81b7afb9de27e1e3bd23c23a4453bd9ace3262"),Gy:BigInt("0x547ef835c3dac4fd97f8461a14611dc9c27745132ded8e545c1d54c72f046997"),h:BigInt(1),lowS:!1},ih),ch=yl,lh=ml,uh=Pc(BigInt("0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b412b1da197fb71123acd3a729901d1a71874700133107ec53")),hh=zl({a:uh.create(BigInt("0x7bc382c63d8c150c3c72080ace05afa0c2bea28e4fb22787139165efba91f90f8aa5814a503ad4eb04a8c7dd22ce2826")),b:BigInt("0x04a8c7dd22ce28268b39b55416f0447c2fb77de107dcd2a62e880ea53eeb62d57cb4390295dbc9943ab78696fa504c11"),Fp:uh,n:BigInt("0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e9046565"),Gx:BigInt("0x1d1c64f068cf45ffa2a63a81b7c13f6b8847a3e77ef14fe3db7fcafe0cbd10e8e826e03436d646aaef87b2e247d4af1e"),Gy:BigInt("0x8abe1d7520f9c2a45cb1eb8e95cfd55262b70b29feec5864e19c054ff99129280e4646217791811142820341263c5315"),h:BigInt(1),lowS:!1},lh),fh=Pc(BigInt("0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca703308717d4d9b009bc66842aecda12ae6a380e62881ff2f2d82c68528aa6056583a48f3")),Ah=zl({a:fh.create(BigInt("0x7830a3318b603b89e2327145ac234cc594cbdd8d3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94ca")),b:BigInt("0x3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94cadc083e67984050b75ebae5dd2809bd638016f723"),Fp:fh,n:BigInt("0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90069"),Gx:BigInt("0x81aee4bdd82ed9645a21322e9c4c6a9385ed9f70b5d916c1b43b62eef4d0098eff3b1f78e2d0d48d50d1687b93b97d5f7c6d5047406a5e688b352209bcb9f822"),Gy:BigInt("0x7dde385d566332ecc0eabfa9cf7822fdf209f70024a57b1aa000c55b881f8111b2dcde494a5f485e5bca4bd88a2763aed1ca2b2fa8f0540678cd1e0f3ad80892"),h:BigInt(1),lowS:!1},ch),dh=new Map(Object.entries({nistP256:iu,nistP384:su,nistP521:au,brainpoolP256r1:oh,brainpoolP384r1:hh,brainpoolP512r1:Ah,secp256k1:nh,x448:Xu,ed448:zu}));var ph=Object.freeze({__proto__:null,nobleCurves:dh});const gh=Uint32Array.from([1732584193,4023233417,2562383102,271733878,3285377520]),yh=new Uint32Array(80);class mh extends Rc{constructor(){super(64,20,8,!1),this.A=0|gh[0],this.B=0|gh[1],this.C=0|gh[2],this.D=0|gh[3],this.E=0|gh[4]}get(){const{A:e,B:t,C:r,D:n,E:i}=this;return[e,t,r,n,i]}set(e,t,r,n,i){this.A=0|e,this.B=0|t,this.C=0|r,this.D=0|n,this.E=0|i}process(e,t){for(let r=0;r<16;r++,t+=4)yh[r]=e.getUint32(t,!1);for(let e=16;e<80;e++)yh[e]=Uo(yh[e-3]^yh[e-8]^yh[e-14]^yh[e-16],1);let{A:r,B:n,C:i,D:s,E:a}=this;for(let e=0;e<80;e++){let t,o;e<20?(t=Fc(n,i,s),o=1518500249):e<40?(t=n^i^s,o=1859775393):e<60?(t=Mc(n,i,s),o=2400959708):(t=n^i^s,o=3395469782);const c=Uo(r,5)+t+a+o+yh[e]|0;a=s,s=i,i=Uo(n,30),n=r,r=c}r=r+this.A|0,n=n+this.B|0,i=i+this.C|0,s=s+this.D|0,a=a+this.E|0,this.set(r,n,i,s,a)}roundClean(){xo(yh)}destroy(){this.set(0,0,0,0,0),xo(this.buffer)}}const wh=jo(()=>new mh),bh=Uint8Array.from([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),Eh=(()=>Uint8Array.from(new Array(16).fill(0).map((e,t)=>t)))(),vh=(()=>Eh.map(e=>(9*e+5)%16))(),kh=(()=>{const e=[[Eh],[vh]];for(let t=0;t<4;t++)for(let r of e)r.push(r[t].map(e=>bh[e]));return e})(),Ih=(()=>kh[0])(),Bh=(()=>kh[1])(),Ch=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map(e=>Uint8Array.from(e)),Sh=Ih.map((e,t)=>e.map(e=>Ch[t][e])),Dh=Bh.map((e,t)=>e.map(e=>Ch[t][e])),xh=Uint32Array.from([0,1518500249,1859775393,2400959708,2840853838]),Kh=Uint32Array.from([1352829926,1548603684,1836072691,2053994217,0]);function Ph(e,t,r,n){return 0===e?t^r^n:1===e?t&r|~t&n:2===e?(t|~r)^n:3===e?t&n|r&~n:t^(r|~n)}const Uh=new Uint32Array(16);class Th extends Rc{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){const{h0:e,h1:t,h2:r,h3:n,h4:i}=this;return[e,t,r,n,i]}set(e,t,r,n,i){this.h0=0|e,this.h1=0|t,this.h2=0|r,this.h3=0|n,this.h4=0|i}process(e,t){for(let r=0;r<16;r++,t+=4)Uh[r]=e.getUint32(t,!0);let r=0|this.h0,n=r,i=0|this.h1,s=i,a=0|this.h2,o=a,c=0|this.h3,l=c,u=0|this.h4,h=u;for(let e=0;e<5;e++){const t=4-e,f=xh[e],A=Kh[e],d=Ih[e],p=Bh[e],g=Sh[e],y=Dh[e];for(let t=0;t<16;t++){const n=Uo(r+Ph(e,i,a,c)+Uh[d[t]]+f,g[t])+u|0;r=u,u=c,c=0|Uo(a,10),a=i,i=n}for(let e=0;e<16;e++){const r=Uo(n+Ph(t,s,o,l)+Uh[p[e]]+A,y[e])+h|0;n=h,h=l,l=0|Uo(o,10),o=s,s=r}}this.set(this.h1+a+l|0,this.h2+c+h|0,this.h3+u+n|0,this.h4+r+s|0,this.h0+i+o|0)}roundClean(){xo(Uh)}destroy(){this.destroyed=!0,xo(this.buffer),this.set(0,0,0,0,0)}}const Fh=wh,Mh=jo(()=>new Th),Rh=Array.from({length:64},(e,t)=>Math.floor(2**32*Math.abs(Math.sin(t+1)))),Qh=(e,t,r)=>e&t^~e&r,Nh=new Uint32Array([1732584193,4023233417,2562383102,271733878]),Oh=new Uint32Array(16);class Lh extends Rc{constructor(){super(64,16,8,!0),this.A=0|Nh[0],this.B=0|Nh[1],this.C=0|Nh[2],this.D=0|Nh[3]}get(){const{A:e,B:t,C:r,D:n}=this;return[e,t,r,n]}set(e,t,r,n){this.A=0|e,this.B=0|t,this.C=0|r,this.D=0|n}process(e,t){for(let r=0;r<16;r++,t+=4)Oh[r]=e.getUint32(t,!0);let{A:r,B:n,C:i,D:s}=this;for(let e=0;e<64;e++){let t,a,o;e<16?(t=Qh(n,i,s),a=e,o=[7,12,17,22]):e<32?(t=Qh(s,n,i),a=(5*e+1)%16,o=[5,9,14,20]):e<48?(t=n^i^s,a=(3*e+5)%16,o=[4,11,16,23]):(t=i^(n|~s),a=7*e%16,o=[6,10,15,21]),t=t+r+Rh[e]+Oh[a],r=s,s=i,i=n,n+=Uo(t,o[e%4])}r=r+this.A|0,n=n+this.B|0,i=i+this.C|0,s=s+this.D|0,this.set(r,n,i,s)}roundClean(){Oh.fill(0)}destroy(){this.set(0,0,0,0),this.buffer.fill(0)}}const Gh=Wo(()=>new Lh),Hh=new Map(Object.entries({md5:Gh,sha1:Fh,sha224:sh,sha256:ih,sha384:lh,sha512:ch,sha3_256:ku,sha3_512:Iu,ripemd160:Mh}));var jh=Object.freeze({__proto__:null,nobleHashes:Hh});const Wh="object"==typeof n&&"crypto"in n?n.crypto:void 0,Yh={};var Jh=function(e){var t,r=new Float64Array(16);if(e)for(t=0;t>24&255,e[t+1]=r>>16&255,e[t+2]=r>>8&255,e[t+3]=255&r,e[t+4]=n>>24&255,e[t+5]=n>>16&255,e[t+6]=n>>8&255,e[t+7]=255&n}function sf(e,t,r,n){return function(e,t,r,n){var i,s=0;for(i=0;i<32;i++)s|=e[t+i]^r[n+i];return(1&s-1>>>8)-1}(e,t,r,n)}function af(e,t){var r;for(r=0;r<16;r++)e[r]=0|t[r]}function of(e){var t,r,n=1;for(t=0;t<16;t++)r=e[t]+n+65535,n=Math.floor(r/65536),e[t]=r-65536*n;e[0]+=n-1+37*(n-1)}function cf(e,t,r){for(var n,i=~(r-1),s=0;s<16;s++)n=i&(e[s]^t[s]),e[s]^=n,t[s]^=n}function lf(e,t){var r,n,i,s=Jh(),a=Jh();for(r=0;r<16;r++)a[r]=t[r];for(of(a),of(a),of(a),n=0;n<2;n++){for(s[0]=a[0]-65517,r=1;r<15;r++)s[r]=a[r]-65535-(s[r-1]>>16&1),s[r-1]&=65535;s[15]=a[15]-32767-(s[14]>>16&1),i=s[15]>>16&1,s[14]&=65535,cf(a,s,1-i)}for(r=0;r<16;r++)e[2*r]=255&a[r],e[2*r+1]=a[r]>>8}function uf(e,t){var r=new Uint8Array(32),n=new Uint8Array(32);return lf(r,e),lf(n,t),sf(r,0,n,0)}function hf(e){var t=new Uint8Array(32);return lf(t,e),1&t[0]}function ff(e,t){var r;for(r=0;r<16;r++)e[r]=t[2*r]+(t[2*r+1]<<8);e[15]&=32767}function Af(e,t,r){for(var n=0;n<16;n++)e[n]=t[n]+r[n]}function df(e,t,r){for(var n=0;n<16;n++)e[n]=t[n]-r[n]}function pf(e,t,r){var n,i,s=0,a=0,o=0,c=0,l=0,u=0,h=0,f=0,A=0,d=0,p=0,g=0,y=0,m=0,w=0,b=0,E=0,v=0,k=0,I=0,B=0,C=0,S=0,D=0,x=0,K=0,P=0,U=0,T=0,F=0,M=0,R=r[0],Q=r[1],N=r[2],O=r[3],L=r[4],G=r[5],H=r[6],j=r[7],W=r[8],Y=r[9],J=r[10],_=r[11],q=r[12],Z=r[13],V=r[14],z=r[15];s+=(n=t[0])*R,a+=n*Q,o+=n*N,c+=n*O,l+=n*L,u+=n*G,h+=n*H,f+=n*j,A+=n*W,d+=n*Y,p+=n*J,g+=n*_,y+=n*q,m+=n*Z,w+=n*V,b+=n*z,a+=(n=t[1])*R,o+=n*Q,c+=n*N,l+=n*O,u+=n*L,h+=n*G,f+=n*H,A+=n*j,d+=n*W,p+=n*Y,g+=n*J,y+=n*_,m+=n*q,w+=n*Z,b+=n*V,E+=n*z,o+=(n=t[2])*R,c+=n*Q,l+=n*N,u+=n*O,h+=n*L,f+=n*G,A+=n*H,d+=n*j,p+=n*W,g+=n*Y,y+=n*J,m+=n*_,w+=n*q,b+=n*Z,E+=n*V,v+=n*z,c+=(n=t[3])*R,l+=n*Q,u+=n*N,h+=n*O,f+=n*L,A+=n*G,d+=n*H,p+=n*j,g+=n*W,y+=n*Y,m+=n*J,w+=n*_,b+=n*q,E+=n*Z,v+=n*V,k+=n*z,l+=(n=t[4])*R,u+=n*Q,h+=n*N,f+=n*O,A+=n*L,d+=n*G,p+=n*H,g+=n*j,y+=n*W,m+=n*Y,w+=n*J,b+=n*_,E+=n*q,v+=n*Z,k+=n*V,I+=n*z,u+=(n=t[5])*R,h+=n*Q,f+=n*N,A+=n*O,d+=n*L,p+=n*G,g+=n*H,y+=n*j,m+=n*W,w+=n*Y,b+=n*J,E+=n*_,v+=n*q,k+=n*Z,I+=n*V,B+=n*z,h+=(n=t[6])*R,f+=n*Q,A+=n*N,d+=n*O,p+=n*L,g+=n*G,y+=n*H,m+=n*j,w+=n*W,b+=n*Y,E+=n*J,v+=n*_,k+=n*q,I+=n*Z,B+=n*V,C+=n*z,f+=(n=t[7])*R,A+=n*Q,d+=n*N,p+=n*O,g+=n*L,y+=n*G,m+=n*H,w+=n*j,b+=n*W,E+=n*Y,v+=n*J,k+=n*_,I+=n*q,B+=n*Z,C+=n*V,S+=n*z,A+=(n=t[8])*R,d+=n*Q,p+=n*N,g+=n*O,y+=n*L,m+=n*G,w+=n*H,b+=n*j,E+=n*W,v+=n*Y,k+=n*J,I+=n*_,B+=n*q,C+=n*Z,S+=n*V,D+=n*z,d+=(n=t[9])*R,p+=n*Q,g+=n*N,y+=n*O,m+=n*L,w+=n*G,b+=n*H,E+=n*j,v+=n*W,k+=n*Y,I+=n*J,B+=n*_,C+=n*q,S+=n*Z,D+=n*V,x+=n*z,p+=(n=t[10])*R,g+=n*Q,y+=n*N,m+=n*O,w+=n*L,b+=n*G,E+=n*H,v+=n*j,k+=n*W,I+=n*Y,B+=n*J,C+=n*_,S+=n*q,D+=n*Z,x+=n*V,K+=n*z,g+=(n=t[11])*R,y+=n*Q,m+=n*N,w+=n*O,b+=n*L,E+=n*G,v+=n*H,k+=n*j,I+=n*W,B+=n*Y,C+=n*J,S+=n*_,D+=n*q,x+=n*Z,K+=n*V,P+=n*z,y+=(n=t[12])*R,m+=n*Q,w+=n*N,b+=n*O,E+=n*L,v+=n*G,k+=n*H,I+=n*j,B+=n*W,C+=n*Y,S+=n*J,D+=n*_,x+=n*q,K+=n*Z,P+=n*V,U+=n*z,m+=(n=t[13])*R,w+=n*Q,b+=n*N,E+=n*O,v+=n*L,k+=n*G,I+=n*H,B+=n*j,C+=n*W,S+=n*Y,D+=n*J,x+=n*_,K+=n*q,P+=n*Z,U+=n*V,T+=n*z,w+=(n=t[14])*R,b+=n*Q,E+=n*N,v+=n*O,k+=n*L,I+=n*G,B+=n*H,C+=n*j,S+=n*W,D+=n*Y,x+=n*J,K+=n*_,P+=n*q,U+=n*Z,T+=n*V,F+=n*z,b+=(n=t[15])*R,a+=38*(v+=n*N),o+=38*(k+=n*O),c+=38*(I+=n*L),l+=38*(B+=n*G),u+=38*(C+=n*H),h+=38*(S+=n*j),f+=38*(D+=n*W),A+=38*(x+=n*Y),d+=38*(K+=n*J),p+=38*(P+=n*_),g+=38*(U+=n*q),y+=38*(T+=n*Z),m+=38*(F+=n*V),w+=38*(M+=n*z),s=(n=(s+=38*(E+=n*Q))+(i=1)+65535)-65536*(i=Math.floor(n/65536)),a=(n=a+i+65535)-65536*(i=Math.floor(n/65536)),o=(n=o+i+65535)-65536*(i=Math.floor(n/65536)),c=(n=c+i+65535)-65536*(i=Math.floor(n/65536)),l=(n=l+i+65535)-65536*(i=Math.floor(n/65536)),u=(n=u+i+65535)-65536*(i=Math.floor(n/65536)),h=(n=h+i+65535)-65536*(i=Math.floor(n/65536)),f=(n=f+i+65535)-65536*(i=Math.floor(n/65536)),A=(n=A+i+65535)-65536*(i=Math.floor(n/65536)),d=(n=d+i+65535)-65536*(i=Math.floor(n/65536)),p=(n=p+i+65535)-65536*(i=Math.floor(n/65536)),g=(n=g+i+65535)-65536*(i=Math.floor(n/65536)),y=(n=y+i+65535)-65536*(i=Math.floor(n/65536)),m=(n=m+i+65535)-65536*(i=Math.floor(n/65536)),w=(n=w+i+65535)-65536*(i=Math.floor(n/65536)),b=(n=b+i+65535)-65536*(i=Math.floor(n/65536)),s=(n=(s+=i-1+37*(i-1))+(i=1)+65535)-65536*(i=Math.floor(n/65536)),a=(n=a+i+65535)-65536*(i=Math.floor(n/65536)),o=(n=o+i+65535)-65536*(i=Math.floor(n/65536)),c=(n=c+i+65535)-65536*(i=Math.floor(n/65536)),l=(n=l+i+65535)-65536*(i=Math.floor(n/65536)),u=(n=u+i+65535)-65536*(i=Math.floor(n/65536)),h=(n=h+i+65535)-65536*(i=Math.floor(n/65536)),f=(n=f+i+65535)-65536*(i=Math.floor(n/65536)),A=(n=A+i+65535)-65536*(i=Math.floor(n/65536)),d=(n=d+i+65535)-65536*(i=Math.floor(n/65536)),p=(n=p+i+65535)-65536*(i=Math.floor(n/65536)),g=(n=g+i+65535)-65536*(i=Math.floor(n/65536)),y=(n=y+i+65535)-65536*(i=Math.floor(n/65536)),m=(n=m+i+65535)-65536*(i=Math.floor(n/65536)),w=(n=w+i+65535)-65536*(i=Math.floor(n/65536)),b=(n=b+i+65535)-65536*(i=Math.floor(n/65536)),s+=i-1+37*(i-1),e[0]=s,e[1]=a,e[2]=o,e[3]=c,e[4]=l,e[5]=u,e[6]=h,e[7]=f,e[8]=A,e[9]=d,e[10]=p,e[11]=g,e[12]=y,e[13]=m,e[14]=w,e[15]=b}function gf(e,t){pf(e,t,t)}function yf(e,t){var r,n=Jh();for(r=0;r<16;r++)n[r]=t[r];for(r=253;r>=0;r--)gf(n,n),2!==r&&4!==r&&pf(n,n,t);for(r=0;r<16;r++)e[r]=n[r]}function mf(e,t,r){var n,i,s=new Uint8Array(32),a=new Float64Array(80),o=Jh(),c=Jh(),l=Jh(),u=Jh(),h=Jh(),f=Jh();for(i=0;i<31;i++)s[i]=t[i];for(s[31]=127&t[31]|64,s[0]&=248,ff(a,r),i=0;i<16;i++)c[i]=a[i],u[i]=o[i]=l[i]=0;for(o[0]=u[0]=1,i=254;i>=0;--i)cf(o,c,n=s[i>>>3]>>>(7&i)&1),cf(l,u,n),Af(h,o,l),df(o,o,l),Af(l,c,u),df(c,c,u),gf(u,h),gf(f,o),pf(o,l,o),pf(l,c,h),Af(h,o,l),df(o,o,l),gf(c,o),df(l,u,f),pf(o,l,zh),Af(o,o,u),pf(l,l,o),pf(o,u,f),pf(u,c,a),gf(c,h),cf(o,c,n),cf(l,u,n);for(i=0;i<16;i++)a[i+16]=o[i],a[i+32]=l[i],a[i+48]=c[i],a[i+64]=u[i];var A=a.subarray(32),d=a.subarray(16);return yf(A,A),pf(d,d,A),lf(e,d),0}function wf(e,t){return mf(e,t,qh)}var bf=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function Ef(e,t,r,n){for(var i,s,a,o,c,l,u,h,f,A,d,p,g,y,m,w,b,E,v,k,I,B,C,S,D,x,K=new Int32Array(16),P=new Int32Array(16),U=e[0],T=e[1],F=e[2],M=e[3],R=e[4],Q=e[5],N=e[6],O=e[7],L=t[0],G=t[1],H=t[2],j=t[3],W=t[4],Y=t[5],J=t[6],_=t[7],q=0;n>=128;){for(v=0;v<16;v++)k=8*v+q,K[v]=r[k+0]<<24|r[k+1]<<16|r[k+2]<<8|r[k+3],P[v]=r[k+4]<<24|r[k+5]<<16|r[k+6]<<8|r[k+7];for(v=0;v<80;v++)if(i=U,s=T,a=F,o=M,c=R,l=Q,u=N,f=L,A=G,d=H,p=j,g=W,y=Y,m=J,C=65535&(B=_),S=B>>>16,D=65535&(I=O),x=I>>>16,C+=65535&(B=(W>>>14|R<<18)^(W>>>18|R<<14)^(R>>>9|W<<23)),S+=B>>>16,D+=65535&(I=(R>>>14|W<<18)^(R>>>18|W<<14)^(W>>>9|R<<23)),x+=I>>>16,C+=65535&(B=W&Y^~W&J),S+=B>>>16,D+=65535&(I=R&Q^~R&N),x+=I>>>16,C+=65535&(B=bf[2*v+1]),S+=B>>>16,D+=65535&(I=bf[2*v]),x+=I>>>16,I=K[v%16],S+=(B=P[v%16])>>>16,D+=65535&I,x+=I>>>16,D+=(S+=(C+=65535&B)>>>16)>>>16,C=65535&(B=E=65535&C|S<<16),S=B>>>16,D=65535&(I=b=65535&D|(x+=D>>>16)<<16),x=I>>>16,C+=65535&(B=(L>>>28|U<<4)^(U>>>2|L<<30)^(U>>>7|L<<25)),S+=B>>>16,D+=65535&(I=(U>>>28|L<<4)^(L>>>2|U<<30)^(L>>>7|U<<25)),x+=I>>>16,S+=(B=L&G^L&H^G&H)>>>16,D+=65535&(I=U&T^U&F^T&F),x+=I>>>16,h=65535&(D+=(S+=(C+=65535&B)>>>16)>>>16)|(x+=D>>>16)<<16,w=65535&C|S<<16,C=65535&(B=p),S=B>>>16,D=65535&(I=o),x=I>>>16,S+=(B=E)>>>16,D+=65535&(I=b),x+=I>>>16,T=i,F=s,M=a,R=o=65535&(D+=(S+=(C+=65535&B)>>>16)>>>16)|(x+=D>>>16)<<16,Q=c,N=l,O=u,U=h,G=f,H=A,j=d,W=p=65535&C|S<<16,Y=g,J=y,_=m,L=w,v%16==15)for(k=0;k<16;k++)I=K[k],C=65535&(B=P[k]),S=B>>>16,D=65535&I,x=I>>>16,I=K[(k+9)%16],C+=65535&(B=P[(k+9)%16]),S+=B>>>16,D+=65535&I,x+=I>>>16,b=K[(k+1)%16],C+=65535&(B=((E=P[(k+1)%16])>>>1|b<<31)^(E>>>8|b<<24)^(E>>>7|b<<25)),S+=B>>>16,D+=65535&(I=(b>>>1|E<<31)^(b>>>8|E<<24)^b>>>7),x+=I>>>16,b=K[(k+14)%16],S+=(B=((E=P[(k+14)%16])>>>19|b<<13)^(b>>>29|E<<3)^(E>>>6|b<<26))>>>16,D+=65535&(I=(b>>>19|E<<13)^(E>>>29|b<<3)^b>>>6),x+=I>>>16,x+=(D+=(S+=(C+=65535&B)>>>16)>>>16)>>>16,K[k]=65535&D|x<<16,P[k]=65535&C|S<<16;C=65535&(B=L),S=B>>>16,D=65535&(I=U),x=I>>>16,I=e[0],S+=(B=t[0])>>>16,D+=65535&I,x+=I>>>16,x+=(D+=(S+=(C+=65535&B)>>>16)>>>16)>>>16,e[0]=U=65535&D|x<<16,t[0]=L=65535&C|S<<16,C=65535&(B=G),S=B>>>16,D=65535&(I=T),x=I>>>16,I=e[1],S+=(B=t[1])>>>16,D+=65535&I,x+=I>>>16,x+=(D+=(S+=(C+=65535&B)>>>16)>>>16)>>>16,e[1]=T=65535&D|x<<16,t[1]=G=65535&C|S<<16,C=65535&(B=H),S=B>>>16,D=65535&(I=F),x=I>>>16,I=e[2],S+=(B=t[2])>>>16,D+=65535&I,x+=I>>>16,x+=(D+=(S+=(C+=65535&B)>>>16)>>>16)>>>16,e[2]=F=65535&D|x<<16,t[2]=H=65535&C|S<<16,C=65535&(B=j),S=B>>>16,D=65535&(I=M),x=I>>>16,I=e[3],S+=(B=t[3])>>>16,D+=65535&I,x+=I>>>16,x+=(D+=(S+=(C+=65535&B)>>>16)>>>16)>>>16,e[3]=M=65535&D|x<<16,t[3]=j=65535&C|S<<16,C=65535&(B=W),S=B>>>16,D=65535&(I=R),x=I>>>16,I=e[4],S+=(B=t[4])>>>16,D+=65535&I,x+=I>>>16,x+=(D+=(S+=(C+=65535&B)>>>16)>>>16)>>>16,e[4]=R=65535&D|x<<16,t[4]=W=65535&C|S<<16,C=65535&(B=Y),S=B>>>16,D=65535&(I=Q),x=I>>>16,I=e[5],S+=(B=t[5])>>>16,D+=65535&I,x+=I>>>16,x+=(D+=(S+=(C+=65535&B)>>>16)>>>16)>>>16,e[5]=Q=65535&D|x<<16,t[5]=Y=65535&C|S<<16,C=65535&(B=J),S=B>>>16,D=65535&(I=N),x=I>>>16,I=e[6],S+=(B=t[6])>>>16,D+=65535&I,x+=I>>>16,x+=(D+=(S+=(C+=65535&B)>>>16)>>>16)>>>16,e[6]=N=65535&D|x<<16,t[6]=J=65535&C|S<<16,C=65535&(B=_),S=B>>>16,D=65535&(I=O),x=I>>>16,I=e[7],S+=(B=t[7])>>>16,D+=65535&I,x+=I>>>16,x+=(D+=(S+=(C+=65535&B)>>>16)>>>16)>>>16,e[7]=O=65535&D|x<<16,t[7]=_=65535&C|S<<16,q+=128,n-=128}return n}function vf(e,t,r){var n,i=new Int32Array(8),s=new Int32Array(8),a=new Uint8Array(256),o=r;for(i[0]=1779033703,i[1]=3144134277,i[2]=1013904242,i[3]=2773480762,i[4]=1359893119,i[5]=2600822924,i[6]=528734635,i[7]=1541459225,s[0]=4089235720,s[1]=2227873595,s[2]=4271175723,s[3]=1595750129,s[4]=2917565137,s[5]=725511199,s[6]=4215389547,s[7]=327033209,Ef(i,s,t,r),r%=128,n=0;n=0;--i)If(e,t,n=r[i/8|0]>>(7&i)&1),kf(t,e),kf(e,e),If(e,t,n)}function Sf(e,t){var r=[Jh(),Jh(),Jh(),Jh()];af(r[0],ef),af(r[1],tf),af(r[2],Vh),pf(r[3],ef,tf),Cf(e,r,t)}function Df(e,t,r){var n,i=new Uint8Array(64),s=[Jh(),Jh(),Jh(),Jh()];for(r||_h(t,32),vf(i,t,32),i[0]&=248,i[31]&=127,i[31]|=64,Sf(s,i),Bf(e,s),n=0;n<32;n++)t[n+32]=e[n];return 0}var xf=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function Kf(e,t){var r,n,i,s;for(n=63;n>=32;--n){for(r=0,i=n-32,s=n-12;i>4)*xf[i],r=t[i]>>8,t[i]&=255;for(i=0;i<32;i++)t[i]-=r*xf[i];for(n=0;n<32;n++)t[n+1]+=t[n]>>8,e[n]=255&t[n]}function Pf(e){var t,r=new Float64Array(64);for(t=0;t<64;t++)r[t]=e[t];for(t=0;t<64;t++)e[t]=0;Kf(e,r)}var Uf=64;function Tf(){for(var e=0;e=0;r--)gf(n,n),1!==r&&pf(n,n,t);for(r=0;r<16;r++)e[r]=n[r]}(r,r),pf(r,r,i),pf(r,r,s),pf(r,r,s),pf(e[0],r,s),gf(n,e[0]),pf(n,n,s),uf(n,i)&&pf(e[0],e[0],rf),gf(n,e[0]),pf(n,n,s),uf(n,i)?-1:(hf(e[0])===t[31]>>7&&df(e[0],Zh,e[0]),pf(e[3],e[0],e[1]),0)}(c,n))return-1;for(i=0;i=0},Yh.sign.keyPair=function(){var e=new Uint8Array(32),t=new Uint8Array(64);return Df(e,t),{publicKey:e,secretKey:t}},Yh.sign.keyPair.fromSecretKey=function(e){if(Tf(e),64!==e.length)throw new Error("bad secret key size");for(var t=new Uint8Array(32),r=0;r>>4^b),b^=g,w^=g<<4,g=65535&(w>>>16^b),b^=g,w^=g<<16,g=858993459&(b>>>2^w),w^=g,b^=g<<2,g=16711935&(b>>>8^w),w^=g,b^=g<<8,g=1431655765&(w>>>1^b),b^=g,w^=g<<1,w=w<<1|w>>>31,b=b<<1|b>>>31,p=0;p>>4|b<<28)^e[d+1],g=w,w=b,b=g^(o[y>>>24&63]|l[y>>>16&63]|h[y>>>8&63]|A[63&y]|a[m>>>24&63]|c[m>>>16&63]|u[m>>>8&63]|f[63&m]);g=w,w=b,b=g}w=w>>>1|w<<31,b=b>>>1|b<<31,g=1431655765&(w>>>1^b),b^=g,w^=g<<1,g=16711935&(b>>>8^w),w^=g,b^=g<<8,g=858993459&(b>>>2^w),w^=g,b^=g<<2,g=65535&(w>>>16^b),b^=g,w^=g<<16,g=252645135&(w>>>4^b),b^=g,w^=g<<4,S[D++]=w>>>24,S[D++]=w>>>16&255,S[D++]=w>>>8&255,S[D++]=255&w,S[D++]=b>>>24,S[D++]=b>>>16&255,S[D++]=b>>>8&255,S[D++]=255&b}return r||(S=function(e){let t,r=null;if(t=0,!r){for(r=1;0===e[e.length-r];)r++;r--}return e.subarray(0,e.length-r)}(S)),S}function Rf(e){const t=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964],r=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697],n=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272],i=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144],s=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],a=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],o=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],c=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],l=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],u=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],h=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800],f=[0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744],A=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128],d=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],p=e.length>8?3:1,g=new Array(32*p),y=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0];let m,w,b,E=0,v=0;for(let k=0;k>>4^k),k^=b,p^=b<<4,b=65535&(k>>>-16^p),p^=b,k^=b<<-16,b=858993459&(p>>>2^k),k^=b,p^=b<<2,b=65535&(k>>>-16^p),p^=b,k^=b<<-16,b=1431655765&(p>>>1^k),k^=b,p^=b<<1,b=16711935&(k>>>8^p),p^=b,k^=b<<8,b=1431655765&(p>>>1^k),k^=b,p^=b<<1,b=p<<8|k>>>20&240,p=k<<24|k<<8&16711680|k>>>8&65280|k>>>24&240,k=b;for(let e=0;e>>26,k=k<<2|k>>>26):(p=p<<1|p>>>27,k=k<<1|k>>>27),p&=-15,k&=-15,m=t[p>>>28]|r[p>>>24&15]|n[p>>>20&15]|i[p>>>16&15]|s[p>>>12&15]|a[p>>>8&15]|o[p>>>4&15],w=c[k>>>28]|l[k>>>24&15]|u[k>>>20&15]|h[k>>>16&15]|f[k>>>12&15]|A[k>>>8&15]|d[k>>>4&15],b=65535&(w>>>16^m),g[v++]=m^b,g[v++]=w^b<<16}return g}function Qf(e){this.key=[];for(let t=0;t<3;t++)this.key.push(new Uint8Array(e.subarray(8*t,8*t+8)));this.encrypt=function(e){return Mf(Rf(this.key[2]),Mf(Rf(this.key[1]),Mf(Rf(this.key[0]),e,!0),!1),!0)}}function Nf(){this.BlockSize=8,this.KeySize=16,this.setKey=function(e){if(this.masking=new Array(16),this.rotate=new Array(16),this.reset(),e.length!==this.KeySize)throw new Error("CAST-128: keys must be 16 bytes");return this.keySchedule(e),!0},this.reset=function(){for(let e=0;e<16;e++)this.masking[e]=0,this.rotate[e]=0},this.getBlockSize=function(){return this.BlockSize},this.encrypt=function(e){const t=new Array(e.length);for(let s=0;s>>24&255,t[s+1]=c>>>16&255,t[s+2]=c>>>8&255,t[s+3]=255&c,t[s+4]=o>>>24&255,t[s+5]=o>>>16&255,t[s+6]=o>>>8&255,t[s+7]=255&o}return t},this.decrypt=function(e){const t=new Array(e.length);for(let s=0;s>>24&255,t[s+1]=c>>>16&255,t[s+2]=c>>>8&255,t[s+3]=255&c,t[s+4]=o>>>24&255,t[s+5]=o>>16&255,t[s+6]=o>>8&255,t[s+7]=255&o}return t};const e=new Array(4);e[0]=new Array(4),e[0][0]=[4,0,13,15,12,14,8],e[0][1]=[5,2,16,18,17,19,10],e[0][2]=[6,3,23,22,21,20,9],e[0][3]=[7,1,26,25,27,24,11],e[1]=new Array(4),e[1][0]=[0,6,21,23,20,22,16],e[1][1]=[1,4,0,2,1,3,18],e[1][2]=[2,5,7,6,5,4,17],e[1][3]=[3,7,10,9,11,8,19],e[2]=new Array(4),e[2][0]=[4,0,13,15,12,14,8],e[2][1]=[5,2,16,18,17,19,10],e[2][2]=[6,3,23,22,21,20,9],e[2][3]=[7,1,26,25,27,24,11],e[3]=new Array(4),e[3][0]=[0,6,21,23,20,22,16],e[3][1]=[1,4,0,2,1,3,18],e[3][2]=[2,5,7,6,5,4,17],e[3][3]=[3,7,10,9,11,8,19];const t=new Array(4);function r(e,t,r){const n=t+e,i=n<>>32-r;return(s[0][i>>>24]^s[1][i>>>16&255])-s[2][i>>>8&255]+s[3][255&i]}function n(e,t,r){const n=t^e,i=n<>>32-r;return s[0][i>>>24]-s[1][i>>>16&255]+s[2][i>>>8&255]^s[3][255&i]}function i(e,t,r){const n=t-e,i=n<>>32-r;return(s[0][i>>>24]+s[1][i>>>16&255]^s[2][i>>>8&255])-s[3][255&i]}t[0]=new Array(4),t[0][0]=[24,25,23,22,18],t[0][1]=[26,27,21,20,22],t[0][2]=[28,29,19,18,25],t[0][3]=[30,31,17,16,28],t[1]=new Array(4),t[1][0]=[3,2,12,13,8],t[1][1]=[1,0,14,15,13],t[1][2]=[7,6,8,9,3],t[1][3]=[5,4,10,11,7],t[2]=new Array(4),t[2][0]=[19,18,28,29,25],t[2][1]=[17,16,30,31,28],t[2][2]=[23,22,24,25,18],t[2][3]=[21,20,26,27,22],t[3]=new Array(4),t[3][0]=[8,9,7,6,3],t[3][1]=[10,11,5,4,7],t[3][2]=[12,13,3,2,8],t[3][3]=[14,15,1,0,13],this.keySchedule=function(r){const n=new Array(8),i=new Array(32);let a;for(let e=0;e<4;e++)a=4*e,n[e]=r[a]<<24|r[a+1]<<16|r[a+2]<<8|r[a+3];const o=[6,7,4,5];let c,l=0;for(let r=0;r<2;r++)for(let r=0;r<4;r++){for(a=0;a<4;a++){const t=e[r][a];c=n[t[1]],c^=s[4][n[t[2]>>>2]>>>24-8*(3&t[2])&255],c^=s[5][n[t[3]>>>2]>>>24-8*(3&t[3])&255],c^=s[6][n[t[4]>>>2]>>>24-8*(3&t[4])&255],c^=s[7][n[t[5]>>>2]>>>24-8*(3&t[5])&255],c^=s[o[a]][n[t[6]>>>2]>>>24-8*(3&t[6])&255],n[t[0]]=c}for(a=0;a<4;a++){const e=t[r][a];c=s[4][n[e[0]>>>2]>>>24-8*(3&e[0])&255],c^=s[5][n[e[1]>>>2]>>>24-8*(3&e[1])&255],c^=s[6][n[e[2]>>>2]>>>24-8*(3&e[2])&255],c^=s[7][n[e[3]>>>2]>>>24-8*(3&e[3])&255],c^=s[4+a][n[e[4]>>>2]>>>24-8*(3&e[4])&255],i[l]=c,l++}}for(let e=0;e<16;e++)this.masking[e]=i[e],this.rotate[e]=31&i[16+e]};const s=new Array(8);s[0]=[821772500,2678128395,1810681135,1059425402,505495343,2617265619,1610868032,3483355465,3218386727,2294005173,3791863952,2563806837,1852023008,365126098,3269944861,584384398,677919599,3229601881,4280515016,2002735330,1136869587,3744433750,2289869850,2731719981,2714362070,879511577,1639411079,575934255,717107937,2857637483,576097850,2731753936,1725645e3,2810460463,5111599,767152862,2543075244,1251459544,1383482551,3052681127,3089939183,3612463449,1878520045,1510570527,2189125840,2431448366,582008916,3163445557,1265446783,1354458274,3529918736,3202711853,3073581712,3912963487,3029263377,1275016285,4249207360,2905708351,3304509486,1442611557,3585198765,2712415662,2731849581,3248163920,2283946226,208555832,2766454743,1331405426,1447828783,3315356441,3108627284,2957404670,2981538698,3339933917,1669711173,286233437,1465092821,1782121619,3862771680,710211251,980974943,1651941557,430374111,2051154026,704238805,4128970897,3144820574,2857402727,948965521,3333752299,2227686284,718756367,2269778983,2731643755,718440111,2857816721,3616097120,1113355533,2478022182,410092745,1811985197,1944238868,2696854588,1415722873,1682284203,1060277122,1998114690,1503841958,82706478,2315155686,1068173648,845149890,2167947013,1768146376,1993038550,3566826697,3390574031,940016341,3355073782,2328040721,904371731,1205506512,4094660742,2816623006,825647681,85914773,2857843460,1249926541,1417871568,3287612,3211054559,3126306446,1975924523,1353700161,2814456437,2438597621,1800716203,722146342,2873936343,1151126914,4160483941,2877670899,458611604,2866078500,3483680063,770352098,2652916994,3367839148,3940505011,3585973912,3809620402,718646636,2504206814,2914927912,3631288169,2857486607,2860018678,575749918,2857478043,718488780,2069512688,3548183469,453416197,1106044049,3032691430,52586708,3378514636,3459808877,3211506028,1785789304,218356169,3571399134,3759170522,1194783844,1523787992,3007827094,1975193539,2555452411,1341901877,3045838698,3776907964,3217423946,2802510864,2889438986,1057244207,1636348243,3761863214,1462225785,2632663439,481089165,718503062,24497053,3332243209,3344655856,3655024856,3960371065,1195698900,2971415156,3710176158,2115785917,4027663609,3525578417,2524296189,2745972565,3564906415,1372086093,1452307862,2780501478,1476592880,3389271281,18495466,2378148571,901398090,891748256,3279637769,3157290713,2560960102,1447622437,4284372637,216884176,2086908623,1879786977,3588903153,2242455666,2938092967,3559082096,2810645491,758861177,1121993112,215018983,642190776,4169236812,1196255959,2081185372,3508738393,941322904,4124243163,2877523539,1848581667,2205260958,3180453958,2589345134,3694731276,550028657,2519456284,3789985535,2973870856,2093648313,443148163,46942275,2734146937,1117713533,1115362972,1523183689,3717140224,1551984063],s[1]=[522195092,4010518363,1776537470,960447360,4267822970,4005896314,1435016340,1929119313,2913464185,1310552629,3579470798,3724818106,2579771631,1594623892,417127293,2715217907,2696228731,1508390405,3994398868,3925858569,3695444102,4019471449,3129199795,3770928635,3520741761,990456497,4187484609,2783367035,21106139,3840405339,631373633,3783325702,532942976,396095098,3548038825,4267192484,2564721535,2011709262,2039648873,620404603,3776170075,2898526339,3612357925,4159332703,1645490516,223693667,1567101217,3362177881,1029951347,3470931136,3570957959,1550265121,119497089,972513919,907948164,3840628539,1613718692,3594177948,465323573,2659255085,654439692,2575596212,2699288441,3127702412,277098644,624404830,4100943870,2717858591,546110314,2403699828,3655377447,1321679412,4236791657,1045293279,4010672264,895050893,2319792268,494945126,1914543101,2777056443,3894764339,2219737618,311263384,4275257268,3458730721,669096869,3584475730,3835122877,3319158237,3949359204,2005142349,2713102337,2228954793,3769984788,569394103,3855636576,1425027204,108000370,2736431443,3671869269,3043122623,1750473702,2211081108,762237499,3972989403,2798899386,3061857628,2943854345,867476300,964413654,1591880597,1594774276,2179821409,552026980,3026064248,3726140315,2283577634,3110545105,2152310760,582474363,1582640421,1383256631,2043843868,3322775884,1217180674,463797851,2763038571,480777679,2718707717,2289164131,3118346187,214354409,200212307,3810608407,3025414197,2674075964,3997296425,1847405948,1342460550,510035443,4080271814,815934613,833030224,1620250387,1945732119,2703661145,3966000196,1388869545,3456054182,2687178561,2092620194,562037615,1356438536,3409922145,3261847397,1688467115,2150901366,631725691,3840332284,549916902,3455104640,394546491,837744717,2114462948,751520235,2221554606,2415360136,3999097078,2063029875,803036379,2702586305,821456707,3019566164,360699898,4018502092,3511869016,3677355358,2402471449,812317050,49299192,2570164949,3259169295,2816732080,3331213574,3101303564,2156015656,3705598920,3546263921,143268808,3200304480,1638124008,3165189453,3341807610,578956953,2193977524,3638120073,2333881532,807278310,658237817,2969561766,1641658566,11683945,3086995007,148645947,1138423386,4158756760,1981396783,2401016740,3699783584,380097457,2680394679,2803068651,3334260286,441530178,4016580796,1375954390,761952171,891809099,2183123478,157052462,3683840763,1592404427,341349109,2438483839,1417898363,644327628,2233032776,2353769706,2201510100,220455161,1815641738,182899273,2995019788,3627381533,3702638151,2890684138,1052606899,588164016,1681439879,4038439418,2405343923,4229449282,167996282,1336969661,1688053129,2739224926,1543734051,1046297529,1138201970,2121126012,115334942,1819067631,1902159161,1941945968,2206692869,1159982321],s[2]=[2381300288,637164959,3952098751,3893414151,1197506559,916448331,2350892612,2932787856,3199334847,4009478890,3905886544,1373570990,2450425862,4037870920,3778841987,2456817877,286293407,124026297,3001279700,1028597854,3115296800,4208886496,2691114635,2188540206,1430237888,1218109995,3572471700,308166588,570424558,2187009021,2455094765,307733056,1310360322,3135275007,1384269543,2388071438,863238079,2359263624,2801553128,3380786597,2831162807,1470087780,1728663345,4072488799,1090516929,532123132,2389430977,1132193179,2578464191,3051079243,1670234342,1434557849,2711078940,1241591150,3314043432,3435360113,3091448339,1812415473,2198440252,267246943,796911696,3619716990,38830015,1526438404,2806502096,374413614,2943401790,1489179520,1603809326,1920779204,168801282,260042626,2358705581,1563175598,2397674057,1356499128,2217211040,514611088,2037363785,2186468373,4022173083,2792511869,2913485016,1173701892,4200428547,3896427269,1334932762,2455136706,602925377,2835607854,1613172210,41346230,2499634548,2457437618,2188827595,41386358,4172255629,1313404830,2405527007,3801973774,2217704835,873260488,2528884354,2478092616,4012915883,2555359016,2006953883,2463913485,575479328,2218240648,2099895446,660001756,2341502190,3038761536,3888151779,3848713377,3286851934,1022894237,1620365795,3449594689,1551255054,15374395,3570825345,4249311020,4151111129,3181912732,310226346,1133119310,530038928,136043402,2476768958,3107506709,2544909567,1036173560,2367337196,1681395281,1758231547,3641649032,306774401,1575354324,3716085866,1990386196,3114533736,2455606671,1262092282,3124342505,2768229131,4210529083,1833535011,423410938,660763973,2187129978,1639812e3,3508421329,3467445492,310289298,272797111,2188552562,2456863912,310240523,677093832,1013118031,901835429,3892695601,1116285435,3036471170,1337354835,243122523,520626091,277223598,4244441197,4194248841,1766575121,594173102,316590669,742362309,3536858622,4176435350,3838792410,2501204839,1229605004,3115755532,1552908988,2312334149,979407927,3959474601,1148277331,176638793,3614686272,2083809052,40992502,1340822838,2731552767,3535757508,3560899520,1354035053,122129617,7215240,2732932949,3118912700,2718203926,2539075635,3609230695,3725561661,1928887091,2882293555,1988674909,2063640240,2491088897,1459647954,4189817080,2302804382,1113892351,2237858528,1927010603,4002880361,1856122846,1594404395,2944033133,3855189863,3474975698,1643104450,4054590833,3431086530,1730235576,2984608721,3084664418,2131803598,4178205752,267404349,1617849798,1616132681,1462223176,736725533,2327058232,551665188,2945899023,1749386277,2575514597,1611482493,674206544,2201269090,3642560800,728599968,1680547377,2620414464,1388111496,453204106,4156223445,1094905244,2754698257,2201108165,3757000246,2704524545,3922940700,3996465027],s[3]=[2645754912,532081118,2814278639,3530793624,1246723035,1689095255,2236679235,4194438865,2116582143,3859789411,157234593,2045505824,4245003587,1687664561,4083425123,605965023,672431967,1336064205,3376611392,214114848,4258466608,3232053071,489488601,605322005,3998028058,264917351,1912574028,756637694,436560991,202637054,135989450,85393697,2152923392,3896401662,2895836408,2145855233,3535335007,115294817,3147733898,1922296357,3464822751,4117858305,1037454084,2725193275,2127856640,1417604070,1148013728,1827919605,642362335,2929772533,909348033,1346338451,3547799649,297154785,1917849091,4161712827,2883604526,3968694238,1469521537,3780077382,3375584256,1763717519,136166297,4290970789,1295325189,2134727907,2798151366,1566297257,3672928234,2677174161,2672173615,965822077,2780786062,289653839,1133871874,3491843819,35685304,1068898316,418943774,672553190,642281022,2346158704,1954014401,3037126780,4079815205,2030668546,3840588673,672283427,1776201016,359975446,3750173538,555499703,2769985273,1324923,69110472,152125443,3176785106,3822147285,1340634837,798073664,1434183902,15393959,216384236,1303690150,3881221631,3711134124,3960975413,106373927,2578434224,1455997841,1801814300,1578393881,1854262133,3188178946,3258078583,2302670060,1539295533,3505142565,3078625975,2372746020,549938159,3278284284,2620926080,181285381,2865321098,3970029511,68876850,488006234,1728155692,2608167508,836007927,2435231793,919367643,3339422534,3655756360,1457871481,40520939,1380155135,797931188,234455205,2255801827,3990488299,397000196,739833055,3077865373,2871719860,4022553888,772369276,390177364,3853951029,557662966,740064294,1640166671,1699928825,3535942136,622006121,3625353122,68743880,1742502,219489963,1664179233,1577743084,1236991741,410585305,2366487942,823226535,1050371084,3426619607,3586839478,212779912,4147118561,1819446015,1911218849,530248558,3486241071,3252585495,2886188651,3410272728,2342195030,20547779,2982490058,3032363469,3631753222,312714466,1870521650,1493008054,3491686656,615382978,4103671749,2534517445,1932181,2196105170,278426614,6369430,3274544417,2913018367,697336853,2143000447,2946413531,701099306,1558357093,2805003052,3500818408,2321334417,3567135975,216290473,3591032198,23009561,1996984579,3735042806,2024298078,3739440863,569400510,2339758983,3016033873,3097871343,3639523026,3844324983,3256173865,795471839,2951117563,4101031090,4091603803,3603732598,971261452,534414648,428311343,3389027175,2844869880,694888862,1227866773,2456207019,3043454569,2614353370,3749578031,3676663836,459166190,4132644070,1794958188,51825668,2252611902,3084671440,2036672799,3436641603,1099053433,2469121526,3059204941,1323291266,2061838604,1018778475,2233344254,2553501054,334295216,3556750194,1065731521,183467730],s[4]=[2127105028,745436345,2601412319,2788391185,3093987327,500390133,1155374404,389092991,150729210,3891597772,3523549952,1935325696,716645080,946045387,2901812282,1774124410,3869435775,4039581901,3293136918,3438657920,948246080,363898952,3867875531,1286266623,1598556673,68334250,630723836,1104211938,1312863373,613332731,2377784574,1101634306,441780740,3129959883,1917973735,2510624549,3238456535,2544211978,3308894634,1299840618,4076074851,1756332096,3977027158,297047435,3790297736,2265573040,3621810518,1311375015,1667687725,47300608,3299642885,2474112369,201668394,1468347890,576830978,3594690761,3742605952,1958042578,1747032512,3558991340,1408974056,3366841779,682131401,1033214337,1545599232,4265137049,206503691,103024618,2855227313,1337551222,2428998917,2963842932,4015366655,3852247746,2796956967,3865723491,3747938335,247794022,3755824572,702416469,2434691994,397379957,851939612,2314769512,218229120,1380406772,62274761,214451378,3170103466,2276210409,3845813286,28563499,446592073,1693330814,3453727194,29968656,3093872512,220656637,2470637031,77972100,1667708854,1358280214,4064765667,2395616961,325977563,4277240721,4220025399,3605526484,3355147721,811859167,3069544926,3962126810,652502677,3075892249,4132761541,3498924215,1217549313,3250244479,3858715919,3053989961,1538642152,2279026266,2875879137,574252750,3324769229,2651358713,1758150215,141295887,2719868960,3515574750,4093007735,4194485238,1082055363,3417560400,395511885,2966884026,179534037,3646028556,3738688086,1092926436,2496269142,257381841,3772900718,1636087230,1477059743,2499234752,3811018894,2675660129,3285975680,90732309,1684827095,1150307763,1723134115,3237045386,1769919919,1240018934,815675215,750138730,2239792499,1234303040,1995484674,138143821,675421338,1145607174,1936608440,3238603024,2345230278,2105974004,323969391,779555213,3004902369,2861610098,1017501463,2098600890,2628620304,2940611490,2682542546,1171473753,3656571411,3687208071,4091869518,393037935,159126506,1662887367,1147106178,391545844,3452332695,1891500680,3016609650,1851642611,546529401,1167818917,3194020571,2848076033,3953471836,575554290,475796850,4134673196,450035699,2351251534,844027695,1080539133,86184846,1554234488,3692025454,1972511363,2018339607,1491841390,1141460869,1061690759,4244549243,2008416118,2351104703,2868147542,1598468138,722020353,1027143159,212344630,1387219594,1725294528,3745187956,2500153616,458938280,4129215917,1828119673,544571780,3503225445,2297937496,1241802790,267843827,2694610800,1397140384,1558801448,3782667683,1806446719,929573330,2234912681,400817706,616011623,4121520928,3603768725,1761550015,1968522284,4053731006,4192232858,4005120285,872482584,3140537016,3894607381,2287405443,1963876937,3663887957,1584857e3,2975024454,1833426440,4025083860],s[5]=[4143615901,749497569,1285769319,3795025788,2514159847,23610292,3974978748,844452780,3214870880,3751928557,2213566365,1676510905,448177848,3730751033,4086298418,2307502392,871450977,3222878141,4110862042,3831651966,2735270553,1310974780,2043402188,1218528103,2736035353,4274605013,2702448458,3936360550,2693061421,162023535,2827510090,687910808,23484817,3784910947,3371371616,779677500,3503626546,3473927188,4157212626,3500679282,4248902014,2466621104,3899384794,1958663117,925738300,1283408968,3669349440,1840910019,137959847,2679828185,1239142320,1315376211,1547541505,1690155329,739140458,3128809933,3933172616,3876308834,905091803,1548541325,4040461708,3095483362,144808038,451078856,676114313,2861728291,2469707347,993665471,373509091,2599041286,4025009006,4170239449,2149739950,3275793571,3749616649,2794760199,1534877388,572371878,2590613551,1753320020,3467782511,1405125690,4270405205,633333386,3026356924,3475123903,632057672,2846462855,1404951397,3882875879,3915906424,195638627,2385783745,3902872553,1233155085,3355999740,2380578713,2702246304,2144565621,3663341248,3894384975,2502479241,4248018925,3094885567,1594115437,572884632,3385116731,767645374,1331858858,1475698373,3793881790,3532746431,1321687957,619889600,1121017241,3440213920,2070816767,2833025776,1933951238,4095615791,890643334,3874130214,859025556,360630002,925594799,1764062180,3920222280,4078305929,979562269,2810700344,4087740022,1949714515,546639971,1165388173,3069891591,1495988560,922170659,1291546247,2107952832,1813327274,3406010024,3306028637,4241950635,153207855,2313154747,1608695416,1150242611,1967526857,721801357,1220138373,3691287617,3356069787,2112743302,3281662835,1111556101,1778980689,250857638,2298507990,673216130,2846488510,3207751581,3562756981,3008625920,3417367384,2198807050,529510932,3547516680,3426503187,2364944742,102533054,2294910856,1617093527,1204784762,3066581635,1019391227,1069574518,1317995090,1691889997,3661132003,510022745,3238594800,1362108837,1817929911,2184153760,805817662,1953603311,3699844737,120799444,2118332377,207536705,2282301548,4120041617,145305846,2508124933,3086745533,3261524335,1877257368,2977164480,3160454186,2503252186,4221677074,759945014,254147243,2767453419,3801518371,629083197,2471014217,907280572,3900796746,940896768,2751021123,2625262786,3161476951,3661752313,3260732218,1425318020,2977912069,1496677566,3988592072,2140652971,3126511541,3069632175,977771578,1392695845,1698528874,1411812681,1369733098,1343739227,3620887944,1142123638,67414216,3102056737,3088749194,1626167401,2546293654,3941374235,697522451,33404913,143560186,2595682037,994885535,1247667115,3859094837,2699155541,3547024625,4114935275,2968073508,3199963069,2732024527,1237921620,951448369,1898488916,1211705605,2790989240,2233243581,3598044975],s[6]=[2246066201,858518887,1714274303,3485882003,713916271,2879113490,3730835617,539548191,36158695,1298409750,419087104,1358007170,749914897,2989680476,1261868530,2995193822,2690628854,3443622377,3780124940,3796824509,2976433025,4259637129,1551479e3,512490819,1296650241,951993153,2436689437,2460458047,144139966,3136204276,310820559,3068840729,643875328,1969602020,1680088954,2185813161,3283332454,672358534,198762408,896343282,276269502,3014846926,84060815,197145886,376173866,3943890818,3813173521,3545068822,1316698879,1598252827,2633424951,1233235075,859989710,2358460855,3503838400,3409603720,1203513385,1193654839,2792018475,2060853022,207403770,1144516871,3068631394,1121114134,177607304,3785736302,326409831,1929119770,2983279095,4183308101,3474579288,3200513878,3228482096,119610148,1170376745,3378393471,3163473169,951863017,3337026068,3135789130,2907618374,1183797387,2015970143,4045674555,2182986399,2952138740,3928772205,384012900,2454997643,10178499,2879818989,2596892536,111523738,2995089006,451689641,3196290696,235406569,1441906262,3890558523,3013735005,4158569349,1644036924,376726067,1006849064,3664579700,2041234796,1021632941,1374734338,2566452058,371631263,4007144233,490221539,206551450,3140638584,1053219195,1853335209,3412429660,3562156231,735133835,1623211703,3104214392,2738312436,4096837757,3366392578,3110964274,3956598718,3196820781,2038037254,3877786376,2339753847,300912036,3766732888,2372630639,1516443558,4200396704,1574567987,4069441456,4122592016,2699739776,146372218,2748961456,2043888151,35287437,2596680554,655490400,1132482787,110692520,1031794116,2188192751,1324057718,1217253157,919197030,686247489,3261139658,1028237775,3135486431,3059715558,2460921700,986174950,2661811465,4062904701,2752986992,3709736643,367056889,1353824391,731860949,1650113154,1778481506,784341916,357075625,3608602432,1074092588,2480052770,3811426202,92751289,877911070,3600361838,1231880047,480201094,3756190983,3094495953,434011822,87971354,363687820,1717726236,1901380172,3926403882,2481662265,400339184,1490350766,2661455099,1389319756,2558787174,784598401,1983468483,30828846,3550527752,2716276238,3841122214,1765724805,1955612312,1277890269,1333098070,1564029816,2704417615,1026694237,3287671188,1260819201,3349086767,1016692350,1582273796,1073413053,1995943182,694588404,1025494639,3323872702,3551898420,4146854327,453260480,1316140391,1435673405,3038941953,3486689407,1622062951,403978347,817677117,950059133,4246079218,3278066075,1486738320,1417279718,481875527,2549965225,3933690356,760697757,1452955855,3897451437,1177426808,1702951038,4085348628,2447005172,1084371187,3516436277,3068336338,1073369276,1027665953,3284188590,1230553676,1368340146,2226246512,267243139,2274220762,4070734279,2497715176,2423353163,2504755875],s[7]=[3793104909,3151888380,2817252029,895778965,2005530807,3871412763,237245952,86829237,296341424,3851759377,3974600970,2475086196,709006108,1994621201,2972577594,937287164,3734691505,168608556,3189338153,2225080640,3139713551,3033610191,3025041904,77524477,185966941,1208824168,2344345178,1721625922,3354191921,1066374631,1927223579,1971335949,2483503697,1551748602,2881383779,2856329572,3003241482,48746954,1398218158,2050065058,313056748,4255789917,393167848,1912293076,940740642,3465845460,3091687853,2522601570,2197016661,1727764327,364383054,492521376,1291706479,3264136376,1474851438,1685747964,2575719748,1619776915,1814040067,970743798,1561002147,2925768690,2123093554,1880132620,3151188041,697884420,2550985770,2607674513,2659114323,110200136,1489731079,997519150,1378877361,3527870668,478029773,2766872923,1022481122,431258168,1112503832,897933369,2635587303,669726182,3383752315,918222264,163866573,3246985393,3776823163,114105080,1903216136,761148244,3571337562,1690750982,3166750252,1037045171,1888456500,2010454850,642736655,616092351,365016990,1185228132,4174898510,1043824992,2023083429,2241598885,3863320456,3279669087,3674716684,108438443,2132974366,830746235,606445527,4173263986,2204105912,1844756978,2532684181,4245352700,2969441100,3796921661,1335562986,4061524517,2720232303,2679424040,634407289,885462008,3294724487,3933892248,2094100220,339117932,4048830727,3202280980,1458155303,2689246273,1022871705,2464987878,3714515309,353796843,2822958815,4256850100,4052777845,551748367,618185374,3778635579,4020649912,1904685140,3069366075,2670879810,3407193292,2954511620,4058283405,2219449317,3135758300,1120655984,3447565834,1474845562,3577699062,550456716,3466908712,2043752612,881257467,869518812,2005220179,938474677,3305539448,3850417126,1315485940,3318264702,226533026,965733244,321539988,1136104718,804158748,573969341,3708209826,937399083,3290727049,2901666755,1461057207,4013193437,4066861423,3242773476,2421326174,1581322155,3028952165,786071460,3900391652,3918438532,1485433313,4023619836,3708277595,3678951060,953673138,1467089153,1930354364,1533292819,2492563023,1346121658,1685000834,1965281866,3765933717,4190206607,2052792609,3515332758,690371149,3125873887,2180283551,2903598061,3933952357,436236910,289419410,14314871,1242357089,2904507907,1616633776,2666382180,585885352,3471299210,2699507360,1432659641,277164553,3354103607,770115018,2303809295,3741942315,3177781868,2853364978,2269453327,3774259834,987383833,1290892879,225909803,1741533526,890078084,1496906255,1111072499,916028167,243534141,1252605537,2204162171,531204876,290011180,3916834213,102027703,237315147,209093447,1486785922,220223953,2758195998,4175039106,82940208,3127791296,2569425252,518464269,1353887104,3941492737,2377294467,3935040926]}function Of(e){this.cast5=new Nf,this.cast5.setKey(e),this.encrypt=function(e){return this.cast5.encrypt(e)}}Qf.keySize=Qf.prototype.keySize=24,Qf.blockSize=Qf.prototype.blockSize=8,Of.blockSize=Of.prototype.blockSize=8,Of.keySize=Of.prototype.keySize=16;const Lf=4294967295;function Gf(e,t){return(e<>>32-t)&Lf}function Hf(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24}function jf(e,t,r){e.splice(t,4,255&r,r>>>8&255,r>>>16&255,r>>>24&255)}function Wf(e,t){return e>>>8*t&255}function Yf(e){this.tf=function(){let e=null,t=null,r=-1,n=[],i=[[],[],[],[]];function s(e){return i[0][Wf(e,0)]^i[1][Wf(e,1)]^i[2][Wf(e,2)]^i[3][Wf(e,3)]}function a(e){return i[0][Wf(e,3)]^i[1][Wf(e,0)]^i[2][Wf(e,1)]^i[3][Wf(e,2)]}function o(e,t){let r=s(t[0]),i=a(t[1]);t[2]=Gf(t[2]^r+i+n[4*e+8]&Lf,31),t[3]=Gf(t[3],1)^r+2*i+n[4*e+9]&Lf,r=s(t[2]),i=a(t[3]),t[0]=Gf(t[0]^r+i+n[4*e+10]&Lf,31),t[1]=Gf(t[1],1)^r+2*i+n[4*e+11]&Lf}function c(e,t){let r=s(t[0]),i=a(t[1]);t[2]=Gf(t[2],1)^r+i+n[4*e+10]&Lf,t[3]=Gf(t[3]^r+2*i+n[4*e+11]&Lf,31),r=s(t[2]),i=a(t[3]),t[0]=Gf(t[0],1)^r+i+n[4*e+8]&Lf,t[1]=Gf(t[1]^r+2*i+n[4*e+9]&Lf,31)}return{name:"twofish",blocksize:16,open:function(t){let r,s,a,o,c;e=t;const l=[],u=[],h=[];let f;const A=[];let d,p,g;const y=[[8,1,7,13,6,15,3,2,0,11,5,9,14,12,10,4],[2,8,11,13,15,7,6,14,3,1,9,4,0,10,12,5]],m=[[14,12,11,8,1,2,3,5,15,4,10,6,7,0,9,13],[1,14,2,11,4,12,3,7,6,13,10,5,15,9,0,8]],w=[[11,10,5,14,6,13,9,0,12,8,15,3,2,4,7,1],[4,12,7,5,1,6,9,10,0,14,13,8,2,11,3,15]],b=[[13,7,15,4,1,2,6,14,9,11,3,0,8,5,12,10],[11,9,5,1,12,3,13,14,6,4,7,15,2,0,8,10]],E=[0,8,1,9,2,10,3,11,4,12,5,13,6,14,7,15],v=[0,9,2,11,4,13,6,15,8,1,10,3,12,5,14,7],k=[[],[]],I=[[],[],[],[]];function B(e){return e^e>>2^[0,90,180,238][3&e]}function C(e){return e^e>>1^e>>2^[0,238,180,90][3&e]}function S(e,t){let r,n,i;for(r=0;r<8;r++)n=t>>>24,t=t<<8&Lf|e>>>24,e=e<<8&Lf,i=n<<1,128&n&&(i^=333),t^=n^i<<16,i^=n>>>1,1&n&&(i^=166),t^=i<<24|i<<8;return t}function D(e,t){const r=t>>4,n=15&t,i=y[e][r^n],s=m[e][E[n]^v[r]];return b[e][E[s]^v[i]]<<4|w[e][i^s]}function x(e,t){let r=Wf(e,0),n=Wf(e,1),i=Wf(e,2),s=Wf(e,3);switch(f){case 4:r=k[1][r]^Wf(t[3],0),n=k[0][n]^Wf(t[3],1),i=k[0][i]^Wf(t[3],2),s=k[1][s]^Wf(t[3],3);case 3:r=k[1][r]^Wf(t[2],0),n=k[1][n]^Wf(t[2],1),i=k[0][i]^Wf(t[2],2),s=k[0][s]^Wf(t[2],3);case 2:r=k[0][k[0][r]^Wf(t[1],0)]^Wf(t[0],0),n=k[0][k[1][n]^Wf(t[1],1)]^Wf(t[0],1),i=k[1][k[0][i]^Wf(t[1],2)]^Wf(t[0],2),s=k[1][k[1][s]^Wf(t[1],3)]^Wf(t[0],3)}return I[0][r]^I[1][n]^I[2][i]^I[3][s]}for(e=e.slice(0,32),r=e.length;16!==r&&24!==r&&32!==r;)e[r++]=0;for(r=0;r>2]=Hf(e,r);for(r=0;r<256;r++)k[0][r]=D(0,r),k[1][r]=D(1,r);for(r=0;r<256;r++)d=k[1][r],p=B(d),g=C(d),I[0][r]=d+(p<<8)+(g<<16)+(g<<24),I[2][r]=p+(g<<8)+(d<<16)+(g<<24),d=k[0][r],p=B(d),g=C(d),I[1][r]=g+(g<<8)+(p<<16)+(d<<24),I[3][r]=p+(d<<8)+(g<<16)+(p<<24);for(f=h.length/2,r=0;r=0;e--)c(e,s);jf(t,r,s[2]^n[0]),jf(t,r+4,s[3]^n[1]),jf(t,r+8,s[0]^n[2]),jf(t,r+12,s[1]^n[3]),r+=16},finalize:function(){return t}}}(),this.tf.open(Array.from(e),0),this.encrypt=function(e){return this.tf.encrypt(Array.from(e),0)}}function Jf(){}function _f(e){this.bf=new Jf,this.bf.init(e),this.encrypt=function(e){return this.bf.encryptBlock(e)}}Yf.keySize=Yf.prototype.keySize=32,Yf.blockSize=Yf.prototype.blockSize=16,Jf.prototype.BLOCKSIZE=8,Jf.prototype.SBOXES=[[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946],[1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055],[3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504],[976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462]],Jf.prototype.PARRAY=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],Jf.prototype.NN=16,Jf.prototype._clean=function(e){return e<0&&(e=2147483648+(2147483647&e)),e},Jf.prototype._F=function(e){let t;const r=255&e,n=255&(e>>>=8),i=255&(e>>>=8),s=255&(e>>>=8);return t=this.sboxes[0][s]+this.sboxes[1][i],t^=this.sboxes[2][n],t+=this.sboxes[3][r],t},Jf.prototype._encryptBlock=function(e){let t,r=e[0],n=e[1];for(t=0;t>>24-8*t&255,i[t+n]=r[1]>>>24-8*t&255;return i},Jf.prototype._decryptBlock=function(e){let t,r=e[0],n=e[1];for(t=this.NN+1;t>1;--t){r^=this.parray[t],n=this._F(r)^n;const e=r;r=n,n=e}r^=this.parray[1],n^=this.parray[0],e[0]=this._clean(n),e[1]=this._clean(r)},Jf.prototype.init=function(e){let t,r=0;for(this.parray=[],t=0;t=e.length&&(r=0);this.parray[t]=this.PARRAY[t]^n}for(this.sboxes=[],t=0;t<4;++t)for(this.sboxes[t]=[],r=0;r<256;++r)this.sboxes[t][r]=this.SBOXES[t][r];const n=[0,0];for(t=0;t>>24^l<<8,e[n+1]=l>>>24^c<<8,Vf(e,r,e,n),Vf(e,r,t,o),c=e[s]^e[r],l=e[s+1]^e[r+1],e[s]=c>>>16^l<<16,e[s+1]=l>>>16^c<<16,Vf(e,i,e,s),c=e[n]^e[i],l=e[n+1]^e[i+1],e[n]=l>>>31^c<<1,e[n+1]=c>>>31^l<<1}const $f=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),eA=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3].map(e=>2*e));function tA(e,t){const r=new Uint32Array(32),n=new Uint32Array(e.b.buffer,e.b.byteOffset,32);for(let t=0;t<16;t++)r[t]=e.h[t],r[t+16]=$f[t];r[24]^=e.t0[0],r[25]^=e.t0[1];const i=t?4294967295:0;r[28]^=i,r[29]^=i;for(let e=0;e<12;e++){const t=e<<4;Xf(r,n,0,8,16,24,eA[t+0],eA[t+1]),Xf(r,n,2,10,18,26,eA[t+2],eA[t+3]),Xf(r,n,4,12,20,28,eA[t+4],eA[t+5]),Xf(r,n,6,14,22,30,eA[t+6],eA[t+7]),Xf(r,n,0,10,20,30,eA[t+8],eA[t+9]),Xf(r,n,2,12,22,24,eA[t+10],eA[t+11]),Xf(r,n,4,14,16,26,eA[t+12],eA[t+13]),Xf(r,n,6,8,18,28,eA[t+14],eA[t+15])}for(let t=0;t<16;t++)e.h[t]^=r[t]^r[t+16]}class rA{constructor(e,t,r,n){const i=new Uint8Array(64);this.S={b:new Uint8Array(sA),h:new Uint32Array(iA/4),t0:new Uint32Array(2),c:0,outlen:e},i[0]=e,t&&(i[1]=t.length),i[2]=1,i[3]=1,r&&i.set(r,32),n&&i.set(n,48);const s=new Uint32Array(i.buffer,i.byteOffset,i.length/Uint32Array.BYTES_PER_ELEMENT);for(let e=0;e<16;e++)this.S.h[e]=$f[e]^s[e];if(t){const e=new Uint8Array(sA);e.set(t),this.update(e)}}update(e){if(!(e instanceof Uint8Array))throw new Error("Input must be Uint8Array or Buffer");let t=0;for(;t>2]>>8*(3&e);return this.S.h=null,t.buffer}}function nA(e,t,r,n){if(e>iA)throw new Error(`outlen must be at most ${iA} (given: ${e})`);return new rA(e,t,r,n)}const iA=64,sA=128,aA=1024,oA=205===new Uint8Array(new Uint16Array([43981]).buffer)[0];function cA(e,t,r){return e[r+0]=t,e[r+1]=t>>8,e[r+2]=t>>16,e[r+3]=t>>24,e}function lA(e,t,r){if(t>Number.MAX_SAFE_INTEGER)throw new Error("LE64: large numbers unsupported");let n=t;for(let t=r;tfunction(e,{memory:t,instance:r}){if(!oA)throw new Error("BigEndian system not supported");const n=function({type:e,version:t,tagLength:r,password:n,salt:i,ad:s,secret:a,parallelism:o,memorySize:c,passes:l}){const u=(e,t,r,n)=>{if(tn)throw new Error(`${e} size should be between ${r} and ${n} bytes`)};if(2!==e||19!==t)throw new Error("Unsupported type or version");return u("password",n,8,4294967295),u("salt",i,8,4294967295),u("tag",r,4,4294967295),u("memory",c,8*o,4294967295),s&&u("associated data",s,0,4294967295),a&&u("secret",a,0,32),{type:e,version:t,tagLength:r,password:n,salt:i,ad:s,secret:a,lanes:o,memorySize:c,passes:l}}({type:2,version:19,...e}),{G:i,G2:s,xor:a,getLZ:o}=r.exports,c={},l={};l.G=i,l.G2=s,l.XOR=a;const u=4*n.lanes*Math.floor(n.memorySize/(4*n.lanes)),h=u*aA+10240;if(t.buffer.byteLength{r.set(e,n),n+=e.length}),r}(i));const s=t.digest();return new Uint8Array(s)}(n),w=u/n.lanes,b=new Array(n.lanes).fill(null).map(()=>new Array(w)),E=(e,t)=>(b[e][t]=g.subarray(e*w*1024+1024*t,e*w*1024+1024*t+aA),b[e][t]);for(let e=0;e0?b[i][c-1]:b[i][w-1],u=r?a.next().value:l;o(A.byteOffset,u.byteOffset,i,n.lanes,e,t,s,4,v);const h=A[0],f=A[1];0===e&&E(i,c),fA(d,l,b[h][f],e>0?p:b[i][c]),e>0&&hA(d,b[i][c],p,b[i][c])}}}const k=b[0][w-1];for(let e=1;egA(e=>yA(0,0,"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",e),e=>yA(0,0,"AGFzbQEAAAABPwhgBH9/f38AYAABf2AAAGADf39/AGARf39/f39/f39/f39/f39/f38AYAl/f39/f39/f38Bf2ABfwBgAX8BfwITAQNlbnYGbWVtb3J5AgGQCICABAMLCgIDBAAABQEGBwEEBQFwAQICBgkBfwFBkIjAAgsHfQoDeG9yAAEBRwADAkcyAAQFZ2V0TFoABRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALX2luaXRpYWxpemUAABBfX2Vycm5vX2xvY2F0aW9uAAkJc3RhY2tTYXZlAAYMc3RhY2tSZXN0b3JlAAcKc3RhY2tBbGxvYwAICQcBAEEBCwEACssaCgMAAQtQAQJ/A0AgACAEQQN0IgNqIAIgA2opAwAgASADaikDAIU3AwAgACADQQhyIgNqIAIgA2opAwAgASADaikDAIU3AwAgBEECaiIEQYABRw0ACwveDwICfgF/IAAgAUEDdGoiEyATKQMAIhEgACAFQQN0aiIBKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAAIA1BA3RqIgUgESAFKQMAhUIgiSIRNwMAIAAgCUEDdGoiCSARIAkpAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAEgESABKQMAhUIoiSIRNwMAIBMgESATKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAFIBEgBSkDAIVCMIkiETcDACAJIBEgCSkDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgASARIAEpAwCFQgGJNwMAIAAgAkEDdGoiDSANKQMAIhEgACAGQQN0aiICKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAAIA5BA3RqIgYgESAGKQMAhUIgiSIRNwMAIAAgCkEDdGoiCiARIAopAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAIgESACKQMAhUIoiSIRNwMAIA0gESANKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAGIBEgBikDAIVCMIkiETcDACAKIBEgCikDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgAiARIAIpAwCFQgGJNwMAIAAgA0EDdGoiDiAOKQMAIhEgACAHQQN0aiIDKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAAIA9BA3RqIgcgESAHKQMAhUIgiSIRNwMAIAAgC0EDdGoiCyARIAspAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAMgESADKQMAhUIoiSIRNwMAIA4gESAOKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAHIBEgBykDAIVCMIkiETcDACALIBEgCykDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgAyARIAMpAwCFQgGJNwMAIAAgBEEDdGoiDyAPKQMAIhEgACAIQQN0aiIEKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAAIBBBA3RqIgggESAIKQMAhUIgiSIRNwMAIAAgDEEDdGoiACARIAApAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAQgESAEKQMAhUIoiSIRNwMAIA8gESAPKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAIIBEgCCkDAIVCMIkiETcDACAAIBEgACkDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgBCARIAQpAwCFQgGJNwMAIBMgEykDACIRIAIpAwAiEnwgEUIBhkL+////H4MgEkL/////D4N+fCIRNwMAIAggESAIKQMAhUIgiSIRNwMAIAsgESALKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACACIBEgAikDAIVCKIkiETcDACATIBEgEykDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgCCARIAgpAwCFQjCJIhE3AwAgCyARIAspAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAIgESACKQMAhUIBiTcDACANIA0pAwAiESADKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAFIBEgBSkDAIVCIIkiETcDACAAIBEgACkDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgAyARIAMpAwCFQiiJIhE3AwAgDSARIA0pAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAUgESAFKQMAhUIwiSIRNwMAIAAgESAAKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACADIBEgAykDAIVCAYk3AwAgDiAOKQMAIhEgBCkDACISfCARQgGGQv7///8fgyASQv////8Pg358IhE3AwAgBiARIAYpAwCFQiCJIhE3AwAgCSARIAkpAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAQgESAEKQMAhUIoiSIRNwMAIA4gESAOKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAGIBEgBikDAIVCMIkiETcDACAJIBEgCSkDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgBCARIAQpAwCFQgGJNwMAIA8gDykDACIRIAEpAwAiEnwgEUIBhkL+////H4MgEkL/////D4N+fCIRNwMAIAcgESAHKQMAhUIgiSIRNwMAIAogESAKKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACABIBEgASkDAIVCKIkiETcDACAPIBEgDykDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgByARIAcpAwCFQjCJIhE3AwAgCiARIAopAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAEgESABKQMAhUIBiTcDAAvdCAEPfwNAIAIgBUEDdCIGaiABIAZqKQMAIAAgBmopAwCFNwMAIAIgBkEIciIGaiABIAZqKQMAIAAgBmopAwCFNwMAIAVBAmoiBUGAAUcNAAsDQCADIARBA3QiAGogACACaikDADcDACADIARBAXIiAEEDdCIBaiABIAJqKQMANwMAIAMgBEECciIBQQN0IgVqIAIgBWopAwA3AwAgAyAEQQNyIgVBA3QiBmogAiAGaikDADcDACADIARBBHIiBkEDdCIHaiACIAdqKQMANwMAIAMgBEEFciIHQQN0IghqIAIgCGopAwA3AwAgAyAEQQZyIghBA3QiCWogAiAJaikDADcDACADIARBB3IiCUEDdCIKaiACIApqKQMANwMAIAMgBEEIciIKQQN0IgtqIAIgC2opAwA3AwAgAyAEQQlyIgtBA3QiDGogAiAMaikDADcDACADIARBCnIiDEEDdCINaiACIA1qKQMANwMAIAMgBEELciINQQN0Ig5qIAIgDmopAwA3AwAgAyAEQQxyIg5BA3QiD2ogAiAPaikDADcDACADIARBDXIiD0EDdCIQaiACIBBqKQMANwMAIAMgBEEOciIQQQN0IhFqIAIgEWopAwA3AwAgAyAEQQ9yIhFBA3QiEmogAiASaikDADcDACADIARB//8DcSAAQf//A3EgAUH//wNxIAVB//8DcSAGQf//A3EgB0H//wNxIAhB//8DcSAJQf//A3EgCkH//wNxIAtB//8DcSAMQf//A3EgDUH//wNxIA5B//8DcSAPQf//A3EgEEH//wNxIBFB//8DcRACIARB8ABJIQAgBEEQaiEEIAANAAtBACEBIANBAEEBQRBBEUEgQSFBMEExQcAAQcEAQdAAQdEAQeAAQeEAQfAAQfEAEAIgA0ECQQNBEkETQSJBI0EyQTNBwgBBwwBB0gBB0wBB4gBB4wBB8gBB8wAQAiADQQRBBUEUQRVBJEElQTRBNUHEAEHFAEHUAEHVAEHkAEHlAEH0AEH1ABACIANBBkEHQRZBF0EmQSdBNkE3QcYAQccAQdYAQdcAQeYAQecAQfYAQfcAEAIgA0EIQQlBGEEZQShBKUE4QTlByABByQBB2ABB2QBB6ABB6QBB+ABB+QAQAiADQQpBC0EaQRtBKkErQTpBO0HKAEHLAEHaAEHbAEHqAEHrAEH6AEH7ABACIANBDEENQRxBHUEsQS1BPEE9QcwAQc0AQdwAQd0AQewAQe0AQfwAQf0AEAIgA0EOQQ9BHkEfQS5BL0E+QT9BzgBBzwBB3gBB3wBB7gBB7wBB/gBB/wAQAgNAIAIgAUEDdCIAaiIEIAAgA2opAwAgBCkDAIU3AwAgAiAAQQhyIgRqIgUgAyAEaikDACAFKQMAhTcDACACIABBEHIiBGoiBSADIARqKQMAIAUpAwCFNwMAIAIgAEEYciIAaiIEIAAgA2opAwAgBCkDAIU3AwAgAUEEaiIBQYABRw0ACwsWACAAIAEgAiADEAMgACACIAIgAxADC3sCAX8BfiACIQkgATUCACEKIAQgBXIEQCABKAIEIANwIQkLIAAgCTYCACAAIAdBAWsgBSAEGyAIbCAGQQFrQQBBfyAGGyACIAlGG2oiASAFQQFqIAhsQQAgBBtqIAGtIAogCn5CIIh+QiCIp0F/c2ogByAIbHA2AgQgAAsEACMACwYAIAAkAAsQACMAIABrQXBxIgAkACAACwUAQYAICw==",e))});function BA(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var CA=function(){if(kA)return vA;kA=1;const e=function(){if(wA)return mA;function e(e){this.name="Bzip2Error",this.message=e,this.stack=(new Error).stack}wA=1,e.prototype=new Error;var t=function(t){throw new e(t)},r={};return r.Bzip2Error=e,r.crcTable=[0,79764919,159529838,222504665,319059676,398814059,445009330,507990021,638119352,583659535,797628118,726387553,890018660,835552979,1015980042,944750013,1276238704,1221641927,1167319070,1095957929,1595256236,1540665371,1452775106,1381403509,1780037320,1859660671,1671105958,1733955601,2031960084,2111593891,1889500026,1952343757,2552477408,2632100695,2443283854,2506133561,2334638140,2414271883,2191915858,2254759653,3190512472,3135915759,3081330742,3009969537,2905550212,2850959411,2762807018,2691435357,3560074640,3505614887,3719321342,3648080713,3342211916,3287746299,3467911202,3396681109,4063920168,4143685023,4223187782,4286162673,3779000052,3858754371,3904687514,3967668269,881225847,809987520,1023691545,969234094,662832811,591600412,771767749,717299826,311336399,374308984,453813921,533576470,25881363,88864420,134795389,214552010,2023205639,2086057648,1897238633,1976864222,1804852699,1867694188,1645340341,1724971778,1587496639,1516133128,1461550545,1406951526,1302016099,1230646740,1142491917,1087903418,2896545431,2825181984,2770861561,2716262478,3215044683,3143675388,3055782693,3001194130,2326604591,2389456536,2200899649,2280525302,2578013683,2640855108,2418763421,2498394922,3769900519,3832873040,3912640137,3992402750,4088425275,4151408268,4197601365,4277358050,3334271071,3263032808,3476998961,3422541446,3585640067,3514407732,3694837229,3640369242,1762451694,1842216281,1619975040,1682949687,2047383090,2127137669,1938468188,2001449195,1325665622,1271206113,1183200824,1111960463,1543535498,1489069629,1434599652,1363369299,622672798,568075817,748617968,677256519,907627842,853037301,1067152940,995781531,51762726,131386257,177728840,240578815,269590778,349224269,429104020,491947555,4046411278,4126034873,4172115296,4234965207,3794477266,3874110821,3953728444,4016571915,3609705398,3555108353,3735388376,3664026991,3290680682,3236090077,3449943556,3378572211,3174993278,3120533705,3032266256,2961025959,2923101090,2868635157,2813903052,2742672763,2604032198,2683796849,2461293480,2524268063,2284983834,2364738477,2175806836,2238787779,1569362073,1498123566,1409854455,1355396672,1317987909,1246755826,1192025387,1137557660,2072149281,2135122070,1912620623,1992383480,1753615357,1816598090,1627664531,1707420964,295390185,358241886,404320391,483945776,43990325,106832002,186451547,266083308,932423249,861060070,1041341759,986742920,613929101,542559546,756411363,701822548,3316196985,3244833742,3425377559,3370778784,3601682597,3530312978,3744426955,3689838204,3819031489,3881883254,3928223919,4007849240,4037393693,4100235434,4180117107,4259748804,2310601993,2373574846,2151335527,2231098320,2596047829,2659030626,2470359227,2550115596,2947551409,2876312838,2788305887,2733848168,3165939309,3094707162,3040238851,2985771188],r.array=function(e){var t=0,r=0,n=[0,1,3,7,15,31,63,127,255];return function(i){for(var s=0;i>0;){var a=8-t;i>=a?(s<<=a,s|=n[a]&e[r++],t=0,i-=a):(s<<=i,s|=(e[r]&n[i]<<8-i-t)>>8-i-t,t+=i,i=0)}return s}},r.simple=function(e,t){var n=r.array(e),i=!1,s=1e5*r.header(n),a=new Int32Array(s);do{i=r.decompress(n,t,a,s)}while(!i)},r.header=function(e){this.byteCount=new Int32Array(256),this.symToByte=new Uint8Array(256),this.mtfSymbol=new Int32Array(256),this.selectors=new Uint8Array(32768),4348520!=e(24)&&t("No magic number found");var r=e(8)-48;return(r<1||r>9)&&t("Not a BZIP archive"),r},r.decompress=function(e,r,n,i,s){for(var a=-1,o="",c=0;c<6;c++)o+=e(8).toString(16);if("177245385090"==o)return(0|e(32))!==s&&t("Error in bzip2: crc32 do not match"),e(null),null;"314159265359"!=o&&t("Invalid bzip data");var l=0|e(32);e(1)&&t("unsupported obsolete version");var u=e(24);u>i&&t("Initial position larger than buffer size");var h=e(16),f=0;for(c=0;c<16;c++)if(h&1<<15-c){var A=e(16);for(g=0;g<16;g++)A&1<<15-g&&(this.symToByte[f++]=16*c+g)}var d=e(3);(d<2||d>6)&&t("Invalid bzip data");var p=e(15);for(0==p&&t("Invalid bzip data"),c=0;c=d&&t("Invalid bzip data");var y=this.mtfSymbol[g];for(A=g-1;A>=0;A--)this.mtfSymbol[A+1]=this.mtfSymbol[A];this.mtfSymbol[0]=y,this.selectors[c]=y}var m,w,b,E,v=f+2,k=[],I=new Uint8Array(258),B=new Uint16Array(21);for(g=0;g20)&&t("Invalid bzip data"),e(1);)e(1)?h--:h++;I[c]=h}var C,S;for(C=S=I[0],c=1;cS?S=I[c]:I[c]=p&&t("Invalid bzip data"),D=(m=k[this.selectors[E++]]).base,x=m.limit),g=e(c=m.minLen);c>m.maxLen&&t("Invalid bzip data"),!(g<=x[c]);)c++,g=g<<1|e(1);((g-=D[c])<0||g>=258)&&t("Invalid bzip data");var P=m.permute[g];if(0!=P&&1!=P){if(w)for(w=0,b+h>i&&t("Invalid bzip data"),y=this.symToByte[this.mtfSymbol[0]],this.byteCount[y]+=h;h--;)n[b++]=y;if(P>f)break;for(b>=i&&t("Invalid bzip data"),c=P-1,y=this.mtfSymbol[c],A=c-1;A>=0;A--)this.mtfSymbol[A+1]=this.mtfSymbol[A];this.mtfSymbol[0]=y,y=this.symToByte[y],this.byteCount[y]++,n[b++]=y}else w||(w=1,h=0),h+=0==P?w:2*w,w<<=1}for((u<0||u>=b)&&t("Invalid bzip data"),g=0,c=0;c<256;c++)A=g+this.byteCount[c],this.byteCount[c]=g,g=A;for(c=0;c>=8,Q=-1);b;){for(b--,T=R,R=255&(M=n[M]),M>>=8,3==Q++?(U=R,F=T,R=-1):(U=1,F=R);U--;)a=4294967295&(a<<8^this.crcTable[255&(a>>24^F)]),r(F);R!=T&&(Q=0)}return(0|(a=(-1^a)>>>0))!=(0|l)&&t("Error in bzip2: crc32 do not match"),4294967295&(a^(s<<1|s>>>31))},mA=r}(),t=function(){if(EA)return bA;EA=1;var e=[0,1,3,7,15,31,63,127,255];return bA=function(t){var r=0,n=0,i=t(),s=function(a){if(null===a&&0!=r)return r=0,void n++;for(var o=0;a>0;){n>=i.length&&(n=0,i=t());var c=8-r;0===r&&a>0&&s.bytesRead++,a>=c?(o<<=c,o|=e[c]&i[n++],r=0,a-=c):(o<<=a,o|=(i[n]&e[a]<<8-a-r)>>8-a-r,r+=a,a=0)}return o};return s.bytesRead=0,s}}();return vA=function(r){const n=[];let i,s=0,a=0,o=!1,c=!1,l=null,u=null,h=0;function f(t){if(!o)try{return function(){if(a){const n=1e5*a,i=new Int32Array(n),s=[],o=function(e){s.push(e)};return u=e.decompress(l,o,i,n,u),null===u?(a=0,!1):(r=new Uint8Array(s),t.enqueue(r),null!==r&&(h+=r.length),!0)}var r;return a=e.header(l),u=0,!1}()}catch(e){return t.error(e),o=!0,!0}}return new ReadableStream({start(){i=r.getReader()},async pull(e){try{for(;;){for(;!(c||l&&s-l.bytesRead+1>=25e3+1e5*(a||4));){const{value:e,done:r}=await i.read();r?c=!0:(n.push(e),s+=e.length,null===l&&(l=t(function(){return n.shift()})))}for(;c?l&&s>l.bytesRead:l&&s-l.bytesRead+1>=25e3+1e5*(a||4);)if(f(e))return;if(c&&!o&&(!l||s<=l.bytesRead))return void(null===u?e.close():e.error(new Error("input stream ended prematurely")))}}catch(t){e.error(t)}},async cancel(e){await i.abort(e)}},{highWaterMark:0})}}(),SA=BA(CA),DA=Object.freeze({__proto__:null,default:SA})},6171(e){"use strict";e.exports={rE:"2.2.0"}}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var s=t[n]={exports:{}};return e[n].call(s.exports,s,s.exports,r),s.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{"use strict";var e=n;Object.defineProperty(e,"__esModule",{value:!0});const t=r(9033),i=r(1592);r.g.handleRequestFromHost=async(e,r,n)=>{const s=new t.Endpoints;try{const t=s[e];return t?t(r,[n]).then(e=>e).catch(e=>(0,i.fmtErr)(e)):(0,i.fmtErr)(new Error(`Unknown endpoint: ${e}`))}catch(e){return(0,i.fmtErr)(e)}}})(),module.exports=n})();; /* entrypoint-bare ends here */ } catch(e) { diff --git a/FlowCryptAppTests/Core/FlowCryptCoreTests.swift b/FlowCryptAppTests/Core/FlowCryptCoreTests.swift index 94c42e3fc..ca375d245 100644 --- a/FlowCryptAppTests/Core/FlowCryptCoreTests.swift +++ b/FlowCryptAppTests/Core/FlowCryptCoreTests.swift @@ -301,6 +301,63 @@ final class FlowCryptCoreTests: XCTestCase { XCTAssertNotNil(b.content.range(of: text)) // original text contained within the formatted html block } + // Regression test for https://github.com/FlowCrypt/flowcrypt-ios/issues/630 + // Verifies that emoji / non-BMP Unicode scalars survive the full + // compose -> encrypt -> parseDecryptMsg round-trip through the JS core + // (WKWebView bridge). If this passes, any user-visible emoji rendering + // issue is located above the Core layer (i.e. in ThreadDetailWebNode / + // WKWebView HTML rendering). + func testEndToEndWithEmoji() async throws { + let passphrase = "some pass phrase test" + let email = "e2e-emoji@domain.com" + // Mix BMP emoji, supplementary-plane emoji (surrogate pair in UTF-16), + // ZWJ sequence, combining mark, and Chinese character. + let text = "Hello 😀 🙂 🔐 👩‍💻 é 汉" + let generateKeyRes = try await core.generateKey( + passphrase: passphrase, + variant: KeyVariant.curve25519, + userIds: [UserId(email: email, name: "End to end emoji")] + ) + let msg = SendableMsg( + text: text, + html: text, + to: [email], + cc: [], + bcc: [], + from: email, + subject: "emoji subj 😀", + replyToMsgId: nil, + inReplyTo: nil, + atts: [], + pubKeys: [generateKeyRes.key.public], + signingPrv: nil, + password: nil + ) + let mime = try await core.composeEmail(msg: msg, fmt: .encryptInline) + let keys = try [Keypair(generateKeyRes.key, passPhrase: passphrase, source: "test")] + let decrypted = try await core.parseDecryptMsg( + encrypted: mime.mimeEncoded, + keys: keys, + msgPwd: nil, + isMime: true, + verificationPubKeys: [] + ) + XCTAssertEqual(decrypted.replyType, ReplyType.encrypted) + // The plain text field must match byte-for-byte after round-trip. + XCTAssertEqual(decrypted.text, text) + XCTAssertEqual(decrypted.blocks.count, 1) + let b = decrypted.blocks[0] + XCTAssertEqual(b.type, MsgBlock.BlockType.plainHtml) + XCTAssertNil(b.decryptErr) + // Each emoji/unicode scalar must appear intact inside the rendered html block. + for scalar in ["😀", "🙂", "🔐", "👩‍💻", "é", "汉"] { + XCTAssertNotNil( + b.content.range(of: scalar), + "expected \(scalar) to survive round-trip inside rendered html block" + ) + } + } + func testDecryptErrMismatch() async throws { let key = TestData.k0 let r = try await core.parseDecryptMsg(encrypted: TestData.mismatchEncryptedMsg.data(using: .utf8)!, keys: [key], msgPwd: nil, isMime: false, verificationPubKeys: [])