UNPKG

openpgp

Version:

OpenPGP.js is a Javascript implementation of the OpenPGP protocol. This is defined in RFC 4880.

16 lines • 395 kB
/*! OpenPGP.js v6.3.2 - 2026-09-24 - this is LGPL licensed code, see LICENSE/our website https://openpgpjs.org/ for more information. */
var openpgp=function(e){"use strict";const t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function r(e,t){return t.forEach((function(t){t&&"string"!=typeof t&&!Array.isArray(t)&&Object.keys(t).forEach((function(r){if("default"!==r&&!(r in e)){var n=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,n.get?n:{enumerable:!0,get:function(){return t[r]}})}}))})),Object.freeze(e)}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 u(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}function h(e){if(c(e))return"array";if(t.ReadableStream&&t.ReadableStream.prototype.isPrototypeOf(e))return"web";if(e&&!(t.ReadableStream&&e instanceof t.ReadableStream)&&"function"==typeof e._read&&"object"==typeof e._readableState)throw 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 l(e){if(1===e.length)return e[0];let t=0;for(let r=0;r<e.length;r++){if(!f(e[r]))throw Error("concatUint8Array: Data must be in the form of a Uint8Array");t+=e[r].length}const r=new Uint8Array(t);let n=0;return e.forEach((function(e){r.set(e,n),n+=e.length})),r}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},u.prototype.write=async function(e){this.stream.push(e)},u.prototype.close=async function(){this.stream[i]()},u.prototype.abort=async function(e){return this.stream[s](e),e},u.prototype.releaseLock=function(){},"object"==typeof t.process&&t.process.versions;const y=new WeakSet,g=Symbol("externalBuffer");function p(e){if(this.stream=e,e[g]&&(this[g]=e[g].slice()),c(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||y.has(e)?{value:void 0,done:!0}:(t=!0,{value:e,done:!1}),this._releaseLock=()=>{if(t)try{y.add(e)}catch{}}}function d(e){return h(e)?e:new ReadableStream({start(t){t.enqueue(e),t.close()}})}function A(e){const t=h(e);if(t){if("array"!==t)throw Error("Can't convert Stream to ArrayStream here, call `readToEnd` first");return e}const r=new o;return(async()=>{const t=M(r);await t.write(e),await t.close()})(),r}function w(e){return e.some((e=>h(e)&&!c(e)))?function(e){const t=e.map(d),r=b((async function(e){await Promise.all(i.map((t=>P(t,e))))}));let n=Promise.resolve();const i=t.map(((e,i)=>I(e,((e,s)=>(n=n.then((()=>m(e,r.writable,{preventClose:i!==t.length-1}))),n)))));return r.readable}(e):e.some((e=>c(e)))?function(e){const t=new o;let r=Promise.resolve();return e.forEach(((n,i)=>(r=r.then((()=>m(n,t,{preventClose:i!==e.length-1}))),r))),t}(e):"string"==typeof e[0]?e.join(""):l(e)}async function m(e,t,{preventClose:r=!1,preventAbort:n=!1,preventCancel:i=!1}={}){if(h(e)&&!c(e)&&!c(t)){e=d(e);try{if(e[g]){const r=M(t);for(let t=0;t<e[g].length;t++)await r.ready,await r.write(e[g][t]);r.releaseLock()}await e.pipeTo(t,{preventClose:r,preventAbort:n,preventCancel:i})}catch{}return}h(e)||(e=A(e));const s=Q(e),a=M(t);try{for(;;){await a.ready;const{done:e,value:t}=await s.read();if(e){r||await a.close();break}await a.write(t)}}catch(e){n||await a.abort(e)}finally{s.releaseLock(),a.releaseLock()}}function b(e){let t,r,n,i=!1,s=!1;return{readable:new ReadableStream({start(e){n=e},pull(){t?t():i=!0},async cancel(t){s=!0,e&&await e(t),r&&r(t)}},{highWaterMark:0}),writable:new WritableStream({write:async function(e){if(s)throw Error("Stream is cancelled");n.enqueue(e),i?i=!1:(await new Promise(((e,n)=>{t=e,r=n})),t=null,r=null)},close:n.close.bind(n),abort:n.error.bind(n)})}}function k(e,t=()=>{},r=()=>{},n={highWaterMark:0}){if(h(e))return v(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 E(e,t=async()=>{},r=async()=>{},n={highWaterMark:1}){if(h(e))return v(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 v(e,t,r,n){if(c(e)){const n=new o;return(async()=>{const i=M(n);try{const n=await U(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 Error("Unreachable")}function I(e,t){if(h(e)&&!c(e)){let r;const n=new TransformStream({start(e){r=e}}),i=m(e,n.writable),s=b((async function(e){r.error(e),await i,await new Promise((e=>setTimeout(e)))}));return t(n.readable,s.writable),s.readable}e=A(e);const r=new o;return t(e,r),r}function B(e,t){let r;const n=I(e,((e,i)=>{const s=Q(e);s.remainder=()=>(s.releaseLock(),m(e,i),n),r=t(s)}));return r}function S(e){if(c(e))return e.clone();if(h(e)){const t=function(e){if(c(e))throw Error("ArrayStream cannot be tee()d, use clone() instead");if(h(e)){const t=d(e).tee();return t[0][g]=t[1][g]=e[g],t}return[D(e),D(e)]}(e);return C(e,t[0]),t[1]}return D(e)}function K(e){return c(e)?S(e):h(e)?new ReadableStream({start(t){const r=I(e,(async(e,r)=>{const n=Q(e),i=M(r);try{for(;;){await i.ready;const{done:e,value:r}=await n.read();if(e){try{t.close()}catch{}return void await i.close()}try{t.enqueue(r)}catch{}await i.write(r)}}catch(e){t.error(e),await i.abort(e)}}));C(e,r)}}):D(e)}function C(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 D(e,t=0,r=1/0){if(c(e))throw 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<r))return s.close(),void e.releaseLock();{const{value:a,done:o}=await n.read();if(o)return s.close(),void e.releaseLock();let c;if(i+a.length>=t&&(c=D(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 k(e,(e=>{e.length>=-t?n=[e]:n.push(e)}),(()=>D(w(n),t,r)))}if(0===t&&r<0){let n;return k(e,(e=>{const i=n?w([n,e]):e;if(i.length>=-r)return n=D(i,r),D(i,t,r);n=i}))}return console.warn(`stream.slice(input, ${t}, ${r}) not implemented efficiently.`),x((async()=>D(await U(e),t,r)))}return e[g]&&(e=w(e[g].concat([e]))),f(e)?e.subarray(t,r===1/0?e.length:r):e.slice(t,r)}async function U(e,t=w){return c(e)?e.readToEnd(t):h(e)?Q(e).readToEnd(t):e}async function P(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 x(e){const t=new o;return(async()=>{const r=M(t);try{await r.write(await e()),await r.close()}catch(e){await r.abort(e)}})(),t}function Q(e){return new p(e)}function M(e){return new u(e)}p.prototype.read=async function(){if(this[g]&&this[g].length){return{done:!1,value:this[g].shift()}}return this._read()},p.prototype.releaseLock=function(){this[g]&&(this.stream[g]=this[g]),this._releaseLock()},p.prototype.cancel=function(e){return this._cancel(e)},p.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},p.prototype.readByte=async function(){const{done:e,value:t}=await this.read();if(e)return;const r=t[0];return this.unshift(D(t,1)),r},p.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(D(r,e)),D(r,0,e)}}},p.prototype.peekBytes=async function(e){const t=await this.readBytes(e);return this.unshift(t),t},p.prototype.unshift=function(...e){this[g]||(this[g]=[]),1===e.length&&f(e[0])&&this[g].length&&e[0].length&&this[g][0].byteOffset>=e[0].length?this[g][0]=new Uint8Array(this[g][0].buffer,this[g][0].byteOffset-e[0].length,this[g][0].byteLength+e[0].length):this[g].unshift(...e.filter((e=>e&&e.length)))},p.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 T={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:98,text:116,utf8:117,mime:109},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 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 Error("Invalid enum value.")}};const F={preferredHashAlgorithm:T.hash.sha512,preferredSymmetricAlgorithm:T.symmetric.aes256,preferredCompressionAlgorithm:T.compression.uncompressed,aeadProtect:!1,parseAEADEncryptedV4KeysAsLegacy:!1,preferredAEADAlgorithm:T.aead.gcm,aeadChunkSizeByte:12,v6Keys:!1,enableParsingV5Entities:!1,s2kType:T.s2k.iterated,s2kIterationCountByte:224,s2kArgon2Params:{passes:3,parallelism:4,memoryExponent:16},maxArgon2MemoryExponent:30,allowUnauthenticatedMessages:!1,allowUnauthenticatedStream:!1,minRSABits:2047,passwordCollisionCheck:!1,allowInsecureDecryptionWithSigningKeys:!1,allowInsecureVerificationWithReformattedKeys:!1,allowMissingKeyFlags:!1,constantTimePKCS1Decryption:!1,constantTimePKCS1DecryptionSupportedSymmetricAlgorithms:new Set([T.symmetric.aes128,T.symmetric.aes192,T.symmetric.aes256]),ignoreUnsupportedPackets:!0,ignoreMalformedPackets:!1,enforceGrammar:!0,additionalAllowedPackets:[],showVersion:!1,showComment:!1,versionString:"OpenPGP.js 6.3.2",commentString:"https://openpgpjs.org",maxUserIDLength:5120,maxDecompressedMessageSize:1/0,knownNotations:[],nonDeterministicSignaturesViaNotation:!0,useEllipticFallback:!0,rejectHashAlgorithms:new Set([T.hash.md5,T.hash.ripemd]),rejectMessageHashAlgorithms:new Set([T.hash.md5,T.hash.ripemd,T.hash.sha1]),rejectPublicKeyAlgorithms:new Set([T.publicKey.elgamal,T.publicKey.dsa]),rejectCurves:new Set([T.curve.secp256k1])},L=(()=>{try{return"development"===process.env.NODE_ENV}catch{}return!1})(),N={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(!F.useEllipticFallback)throw Error("This curve is only supported in the full build of OpenPGP.js");const{nobleCurves:r}=await Promise.resolve().then((function(){return df}));switch(e){case T.publicKey.ecdh:case T.publicKey.ecdsa:{const e=r.get(t);if(!e)throw Error("Unsupported curve");return e}case T.publicKey.x448:return r.get("x448");case T.publicKey.ed448:return r.get("ed448");default:throw Error("Unsupported curve")}},readNumber:function(e){let t=0;for(let r=0;r<e.length;r++)t+=256**r*e[e.length-1-r];return t},writeNumber:function(e,t){const r=new Uint8Array(t);for(let n=0;n<t;n++)r[n]=e>>8*(t-n-1)&255;return r},readDate:function(e){const t=N.readNumber(e);return new Date(1e3*t)},writeDate:function(e){const t=Math.floor(e.getTime()/1e3);return N.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=(e[0]<<8|e[1])+7>>>3;return N.readExactSubarray(e,2,2+t)},readExactSubarray:function(e,t,r){if(e.length<r)throw Error("Input array too short");return e.subarray(t,r)},leftPad(e,t){if(e.length>t)throw 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=N.uint8ArrayBitLength(e);if(0===t)throw Error("Zero MPI");const r=e.subarray(e.length-Math.ceil(t/8)),n=new Uint8Array([(65280&t)>>8,255&t]);return N.concatUint8Array([n,r])},uint8ArrayBitLength:function(e){let t;for(t=0;t<e.length&&0===e[t];t++);if(t===e.length)return 0;const r=e.subarray(t);return 8*(r.length-1)+N.nbits(r[0])},hexToUint8Array:function(e){const t=new Uint8Array(e.length>>1);for(let r=0;r<e.length>>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 k(e,(e=>{if(!N.isString(e))throw Error("stringToUint8Array: Data must be in the form of a string");const t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}))},uint8ArrayToString:function(e){const t=[],r=16384,n=(e=new Uint8Array(e)).length;for(let i=0;i<n;i+=r)t.push(String.fromCharCode.apply(String,e.subarray(i,i+r<n?i+r:n)));return t.join("")},encodeUTF8:function(e){const t=new TextEncoder("utf-8");function r(e,r=!1){return t.encode(e,{stream:!r})}return k(e,r,(()=>r("",!0)))},decodeUTF8:function(e){const t=new TextDecoder("utf-8");function r(e,r=!1){return t.decode(e,{stream:!r})}return k(e,r,(()=>r(new Uint8Array,!0)))},concat:w,concatUint8Array:l,equalsUint8Array:function(e,t){if(!N.isUint8Array(e)||!N.isUint8Array(t))throw Error("Data must be in the form of a Uint8Array");if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0},findLastIndex:function(e,t){for(let r=e.length;r>=0;r--)if(t(e[r],r,e))return r;return-1},timingSafeEqualsUint8Array:function(e,t){if(e.length!==t.length)throw Error("Equal input arrays expected");let r=1;for(let n=0;n<e.length;n++)r&=e[n]===t[n];return!!r},writeChecksum:function(e){let t=0;for(let r=0;r<e.length;r++)t=t+e[r]&65535;return N.writeNumber(t,2)},printDebug:function(e){L&&console.log("[OpenPGP.js debug]",e)},printDebugError:function(e){L&&console.error("[OpenPGP.js debug]",e)},nbits:function(e){let t=1,r=e>>>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<r;n++)t[n]=e[n]<<1^e[n+1]>>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!==t&&t.crypto&&t.crypto.subtle||this.getNodeCrypto()?.webcrypto.subtle;if(!e)throw 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(){if("undefined"!=typeof navigator)return navigator.hardwareConcurrency||1;return this.nodeRequire("os").cpus().length},isEmailAddress:function(e){if(!N.isString(e))return!1;return/^[^\p{C}\p{Z}@<>\\]+@[^\p{C}\p{Z}@<>\\]+[^\p{C}\p{Z}\p{P}]$/u.test(e)},canonicalizeEOL:function(e){let t=!1;return k(e,(e=>{let r;t&&(e=N.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;t<n.length;t++){const r=e.subarray(n[t-1]||0,n[t]);i.set(r,s),s+=r.length,i[s-1]=13,i[s]=10,s++}return i.set(e.subarray(n[n.length-1]||0),s),i}),(()=>t?new Uint8Array([13]):void 0))},nativeEOL:function(e){let t=!1;return k(e,(e=>{let r;13===(e=t&&10!==e[0]?N.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:Error(e);if(e instanceof Error){try{e.message+=": "+t.message,e.cause=t}catch{}return e}return Error(e+": "+t.message,{cause:t})},constructAllowedPackets:function(e){const t={};return e.forEach((e=>{if(!e.tag)throw 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<i.length;n++)i[n]=t[n]&256-e|r[n]&255+e,s+=e&n<t.length|1-e&n<r.length;return i.subarray(0,s)},selectUint8:function(e,t,r){return t&256-e|r&255+e},isAES:function(e){return e===T.symmetric.aes128||e===T.symmetric.aes192||e===T.symmetric.aes256}},O=N.getNodeBuffer();let H,z;function G(e){let t=new Uint8Array;return k(e,(e=>{t=N.concatUint8Array([t,e]);const r=[],n=Math.floor(t.length/45),i=45*n,s=H(t.subarray(0,i));for(let e=0;e<n;e++)r.push(s.substr(60*e,60)),r.push("\n");return t=t.subarray(i),r.join("")}),(()=>t.length?H(t)+"\n":""))}function j(e){let t="";return k(e,(e=>{t+=e;let r=0;const n=[" ","\t","\r","\n"];for(let e=0;e<n.length;e++){const i=n[e];for(let e=t.indexOf(i);-1!==e;e=t.indexOf(i,e+1))r++}let i=t.length;for(;i>0&&(i-r)%4!=0;i--)n.includes(t[i])&&r--;const s=z(t.substr(0,i));return t=t.substr(i),s}),(()=>z(t)))}function V(e){return j(e.replace(/-/g,"+").replace(/_/g,"/"))}function q(e,t){let r=G(e).replace(/[\r\n]/g,"");return r=r.replace(/[+]/g,"-").replace(/[/]/g,"_").replace(/[=]/g,""),r}function _(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 Error("Unknown ASCII armor type");return/MESSAGE, PART \d+\/\d+/.test(t[1])?T.armor.multipartSection:/MESSAGE, PART \d+/.test(t[1])?T.armor.multipartLast:/SIGNED MESSAGE/.test(t[1])?T.armor.signed:/MESSAGE/.test(t[1])?T.armor.message:/PUBLIC KEY BLOCK/.test(t[1])?T.armor.publicKey:/PRIVATE KEY BLOCK/.test(t[1])?T.armor.privateKey:/SIGNATURE/.test(t[1])?T.armor.signature:void 0}function Y(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 Z(e){const t=function(e){let t=13501623;return k(e,(e=>{const r=W?Math.floor(e.length/4):0,n=new Uint32Array(e.buffer,e.byteOffset,r);for(let e=0;e<r;e++)t^=n[e],t=J[0][t>>24&255]^J[1][t>>16&255]^J[2][t>>8&255]^J[3][255&t];for(let n=4*r;n<e.length;n++)t=t>>8^J[0][255&t^e[n]]}),(()=>new Uint8Array([t,t>>8,t>>16])))}(e);return G(t)}O?(H=e=>O.from(e).toString("base64"),z=e=>{const t=O.from(e,"base64");return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}):(H=e=>btoa(N.uint8ArrayToString(e)),z=e=>N.stringToUint8Array(atob(e)));const J=[Array(255),Array(255),Array(255),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);J[0][e]=(16711680&t)>>16|65280&t|(255&t)<<16}for(let e=0;e<=255;e++)J[1][e]=J[0][e]>>8^J[0][255&J[0][e]];for(let e=0;e<=255;e++)J[2][e]=J[1][e]>>8^J[0][255&J[1][e]];for(let e=0;e<=255;e++)J[3][e]=J[2][e]>>8^J[0][255&J[2][e]];const W=function(){const e=new ArrayBuffer(2);return new DataView(e).setInt16(0,255,!0),255===new Int16Array(e)[0]}();function X(e){for(let t=0;t<e.length;t++)/^([^\s:]|[^\s:][^:]*[^\s:]): .+$/.test(e[t])||N.printDebugError(Error("Improperly formatted armor header: "+e[t])),/^(Version|Comment|MessageID|Hash|Charset): .+$/.test(e[t])||N.printDebugError(Error("Unknown header: "+e[t]))}function $(e){let t=e;const r=e.lastIndexOf("=");return r>=0&&r!==e.length-1&&(t=e.slice(0,r)),t}function ee(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,u=a,h=[];const f=j(I(e,(async(e,l)=>{const y=Q(e);try{for(;;){let e=await y.readLine();if(void 0===e)throw Error("Misformed armored text");if(e=N.removeTrailingSpaces(e.replace(/[\r\n]/g,"")),s)if(o)c||s!==T.armor.signed||(n.test(e)?(h=h.join("\r\n"),c=!0,X(u),u=[],o=!1):h.push(e.replace(/^- /,"")));else if(n.test(e)&&r(Error("Mandatory blank line missing between armor headers and armor data")),i.test(e)){if(X(u),o=!0,c||s!==T.armor.signed){t({text:h,data:f,headers:a,type:s});break}}else u.push(e);else n.test(e)&&(s=_(e))}}catch(e){return void r(e)}const g=M(l);try{for(;;){await g.ready;const{done:e,value:t}=await y.read();if(e)throw Error("Misformed armored text");const r=t+"";if(-1!==r.indexOf("=")||-1!==r.indexOf("-")){let e=await y.readToEnd();e.length||(e=""),e=r+e,e=N.removeTrailingSpaces(e.replace(/\r/g,""));const t=e.split(n);if(1===t.length)throw Error("Misformed armored text");const i=$(t[0].slice(0,-1));await g.write(i);break}await g.write(r)}await g.ready,await g.close()}catch(e){await g.abort(e)}})))}catch(e){r(e)}})).then((async e=>(c(e.data)&&(e.data=await U(e.data)),e)))}function te(e,t,r,n,i,s=!1,a=F){let o,c;e===T.armor.signed&&(o=t.text,c=t.hash,t=t.data);const u=s&&K(t),h=[];switch(e){case T.armor.multipartSection:h.push("-----BEGIN PGP MESSAGE, PART "+r+"/"+n+"-----\n"),h.push(Y(i,a)),h.push(G(t)),u&&h.push("=",Z(u)),h.push("-----END PGP MESSAGE, PART "+r+"/"+n+"-----\n");break;case T.armor.multipartLast:h.push("-----BEGIN PGP MESSAGE, PART "+r+"-----\n"),h.push(Y(i,a)),h.push(G(t)),u&&h.push("=",Z(u)),h.push("-----END PGP MESSAGE, PART "+r+"-----\n");break;case T.armor.signed:h.push("-----BEGIN PGP SIGNED MESSAGE-----\n"),h.push(c?`Hash: ${c}\n\n`:"\n"),h.push(o.replace(/^-/gm,"- -")),h.push("\n-----BEGIN PGP SIGNATURE-----\n"),h.push(Y(i,a)),h.push(G(t)),u&&h.push("=",Z(u)),h.push("-----END PGP SIGNATURE-----\n");break;case T.armor.message:h.push("-----BEGIN PGP MESSAGE-----\n"),h.push(Y(i,a)),h.push(G(t)),u&&h.push("=",Z(u)),h.push("-----END PGP MESSAGE-----\n");break;case T.armor.publicKey:h.push("-----BEGIN PGP PUBLIC KEY BLOCK-----\n"),h.push(Y(i,a)),h.push(G(t)),u&&h.push("=",Z(u)),h.push("-----END PGP PUBLIC KEY BLOCK-----\n");break;case T.armor.privateKey:h.push("-----BEGIN PGP PRIVATE KEY BLOCK-----\n"),h.push(Y(i,a)),h.push(G(t)),u&&h.push("=",Z(u)),h.push("-----END PGP PRIVATE KEY BLOCK-----\n");break;case T.armor.signature:h.push("-----BEGIN PGP SIGNATURE-----\n"),h.push(Y(i,a)),h.push(G(t)),u&&h.push("=",Z(u)),h.push("-----END PGP SIGNATURE-----\n")}return N.concat(h)}const re=BigInt(0),ne=BigInt(1);function ie(e){const t="0123456789ABCDEF";let r="";return e.forEach((e=>{r+=t[e>>4]+t[15&e]})),BigInt("0x0"+r)}function se(e,t){const r=e%t;return r<re?r+t:r}function ae(e,t,r){const n=-e;return t&n|r&~n}function oe(e,t,r){if(r===re)throw Error("Modulo cannot be zero");if(r===ne)return BigInt(0);if(t<re)throw Error("Unsopported negative exponent");let n=t,i=e;i%=r;let s=BigInt(1);for(;n>re;){const e=n&ne;n>>=ne;s=ae(e,s*i%r,s),i=i*i%r}return s}function ce(e){return e>=re?e:-e}function ue(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=e<re,u=t<re;for(;o!==re;){const e=a/o;let t=r;r=i-e*r,i=t,t=n,n=s-e*n,s=t,t=o,o=a%o,a=t}return{x:c?-i:i,y:u?-s:s,gcd:a}}(e,t);if(r!==ne)throw Error("Inverse does not exist");return se(n+t,t)}function he(e){const t=Number(e);if(t>Number.MAX_SAFE_INTEGER)throw Error("Number can only safely store up to 53 bits");return t}function fe(e,t){return(e>>BigInt(t)&ne)===re?0:1}function le(e){const t=e<re?BigInt(-1):re;let r=1,n=e;for(;(n>>=ne)!==t;)r++;return r}function ye(e){const t=e<re?BigInt(-1):re,r=BigInt(8);let n=1,i=e;for(;(i>>=r)!==t;)n++;return n}function ge(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(;o<i;)s[o+a]=parseInt(n.slice(2*o,2*o+2),16),o++;return"be"!==t&&s.reverse(),s}const pe=N.getNodeCrypto();function de(e){const t="undefined"!=typeof crypto?crypto:pe?.webcrypto;if(t?.getRandomValues){const r=new Uint8Array(e);return t.getRandomValues(r)}throw Error("No secure random number generator available.")}function Ae(e,t){if(t<e)throw Error("Illegal parameter value: max <= min");const r=t-e;return se(ie(de(ye(r)+8)),r)+e}const we=BigInt(1);function me(e,t,r){const n=BigInt(30),i=we<<BigInt(e-1),s=[1,6,5,4,3,2,1,4,3,2,1,2,1,4,3,2,1,2,1,4,3,2,1,6,5,4,3,2,1,2];let a=Ae(i,i<<we),o=he(se(a,n));do{a+=BigInt(s[o]),o=(o+s[o])%s.length,le(a)>e&&(a=se(a,i<<we),a+=i,o=he(se(a,n)))}while(!be(a,t,r));return a}function be(e,t,r){return(!t||function(e,t){let r=e,n=t;for(;n!==re;){const e=n;n=r%n,r=e}return r}(e-we,t)===we)&&(!!function(e){const t=BigInt(0);return ke.every((r=>se(e,r)!==t))}(e)&&(!!function(e,t=BigInt(2)){return oe(t,e-we,e)===we}(e)&&!!function(e,t){const r=le(e);t||(t=Math.max(1,r/48|0));const n=e-we;let i=0;for(;!fe(n,i);)i++;const s=e>>BigInt(i);for(;t>0;t--){let t,r=oe(Ae(BigInt(2),n),s,e);if(r!==we&&r!==n){for(t=1;t<i;t++){if(r=se(r*r,e),r===we)return!1;if(r===n)break}if(t===i)return!1}}return!0}(e,r)))}const ke=[7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999,3001,3011,3019,3023,3037,3041,3049,3061,3067,3079,3083,3089,3109,3119,3121,3137,3163,3167,3169,3181,3187,3191,3203,3209,3217,3221,3229,3251,3253,3257,3259,3271,3299,3301,3307,3313,3319,3323,3329,3331,3343,3347,3359,3361,3371,3373,3389,3391,3407,3413,3433,3449,3457,3461,3463,3467,3469,3491,3499,3511,3517,3527,3529,3533,3539,3541,3547,3557,3559,3571,3581,3583,3593,3607,3613,3617,3623,3631,3637,3643,3659,3671,3673,3677,3691,3697,3701,3709,3719,3727,3733,3739,3761,3767,3769,3779,3793,3797,3803,3821,3823,3833,3847,3851,3853,3863,3877,3881,3889,3907,3911,3917,3919,3923,3929,3931,3943,3947,3967,3989,4001,4003,4007,4013,4019,4021,4027,4049,4051,4057,4073,4079,4091,4093,4099,4111,4127,4129,4133,4139,4153,4157,4159,4177,4201,4211,4217,4219,4229,4231,4241,4243,4253,4259,4261,4271,4273,4283,4289,4297,4327,4337,4339,4349,4357,4363,4373,4391,4397,4409,4421,4423,4441,4447,4451,4457,4463,4481,4483,4493,4507,4513,4517,4519,4523,4547,4549,4561,4567,4583,4591,4597,4603,4621,4637,4639,4643,4649,4651,4657,4663,4673,4679,4691,4703,4721,4723,4729,4733,4751,4759,4783,4787,4789,4793,4799,4801,4813,4817,4831,4861,4871,4877,4889,4903,4909,4919,4931,4933,4937,4943,4951,4957,4967,4969,4973,4987,4993,4999].map((e=>BigInt(e)));const Ee=N.getWebCrypto(),ve=N.getNodeCrypto(),Ie=ve&&ve.getHashes();function Be(e){if(ve&&Ie.includes(e))return async function(t){const r=ve.createHash(e);return k(t,(e=>{r.update(e)}),(()=>new Uint8Array(r.digest())))}}function Se(e,t){const r=async()=>{const{nobleHashes:t}=await Promise.resolve().then((function(){return Gf})),r=t.get(e);if(!r)throw Error("Unsupported hash");return r};return async function(e){if(c(e)&&(e=await U(e)),N.isStream(e)){const t=(await r()).create();return k(e,(e=>{t.update(e)}),(()=>t.digest()))}if(Ee&&t)return new Uint8Array(await Ee.digest(t,e));return(await r())(e)}}const Ke=Be("md5")||Se("md5"),Ce=Be("sha1")||Se("sha1","SHA-1"),De=Be("sha224")||Se("sha224"),Ue=Be("sha256")||Se("sha256","SHA-256"),Pe=Be("sha384")||Se("sha384","SHA-384"),xe=Be("sha512")||Se("sha512","SHA-512"),Qe=Be("ripemd160")||Se("ripemd160"),Me=Be("sha3-256")||Se("sha3_256"),Re=Be("sha3-512")||Se("sha3_512");function Te(e,t){switch(e){case T.hash.md5:return Ke(t);case T.hash.sha1:return Ce(t);case T.hash.ripemd:return Qe(t);case T.hash.sha256:return Ue(t);case T.hash.sha384:return Pe(t);case T.hash.sha512:return xe(t);case T.hash.sha224:return De(t);case T.hash.sha3_256:return Me(t);case T.hash.sha3_512:return Re(t);default:throw Error("Unsupported hash function")}}function Fe(e){switch(e){case T.hash.md5:return 16;case T.hash.sha1:case T.hash.ripemd:return 20;case T.hash.sha256:return 32;case T.hash.sha384:return 48;case T.hash.sha512:return 64;case T.hash.sha224:return 28;case T.hash.sha3_256:return 32;case T.hash.sha3_512:return 64;default:throw Error("Invalid hash algorithm.")}}const Le=[];function Ne(e,t){const r=e.length;if(r>t-11)throw Error("Message too long");const n=function(e){const t=new Uint8Array(e);let r=0;for(;r<e;){const n=de(e-r);for(let e=0;e<n.length;e++)0!==n[e]&&(t[r++]=n[e])}return t}(t-r-3),i=new Uint8Array(t);return i[1]=2,i.set(n,2),i.set(e,t-r),i}function Oe(e,t){let r=2,n=1;for(let t=r;t<e.length;t++)n&=0!==e[t],r+=n;const i=r-2,s=e.subarray(r+1),a=0===e[0]&2===e[1]&i>=8&!n;if(t)return N.selectUint8Array(a,s,t);if(a)return s;throw Error("Decryption error")}function He(e,t,r){let n;if(t.length!==Fe(e))throw Error("Invalid hash length");const i=new Uint8Array(Le[e].length);for(n=0;n<Le[e].length;n++)i[n]=Le[e][n];const s=i.length+t.length;if(r<s+11)throw Error("Intended encoded message length too short");const a=new Uint8Array(r-s-3).fill(255),o=new Uint8Array(r);return o[1]=1,o.set(a,2),o.set(i,r-s),o.set(t,r-t.length),o}Le[1]=[48,32,48,12,6,8,42,134,72,134,247,13,2,5,5,0,4,16],Le[2]=[48,33,48,9,6,5,43,14,3,2,26,5,0,4,20],Le[3]=[48,33,48,9,6,5,43,36,3,2,1,5,0,4,20],Le[8]=[48,49,48,13,6,9,96,134,72,1,101,3,4,2,1,5,0,4,32],Le[9]=[48,65,48,13,6,9,96,134,72,1,101,3,4,2,2,5,0,4,48],Le[10]=[48,81,48,13,6,9,96,134,72,1,101,3,4,2,3,5,0,4,64],Le[11]=[48,45,48,13,6,9,96,134,72,1,101,3,4,2,4,5,0,4,28],Le[12]=[48,49,48,13,6,9,96,134,72,1,101,3,4,2,8,5,0,4,32],Le[14]=[48,81,48,13,6,9,96,134,72,1,101,3,4,2,10,5,0,4,64];const ze=N.getWebCrypto(),Ge=N.getNodeCrypto(),je=BigInt(1);async function Ve(e,t,r,n,i,s,a,o,c){if(Fe(e)>=r.length)throw Error("Digest size cannot exceed key modulus size");if(t&&!N.isStream(t))if(N.getWebCrypto())try{return await async function(e,t,r,n,i,s,a,o){const c=Ze(r,n,i,s,a,o),u={name:"RSASSA-PKCS1-v1_5",hash:{name:e}},h=await ze.importKey("jwk",c,u,!1,["sign"]);return new Uint8Array(await ze.sign("RSASSA-PKCS1-v1_5",h,t))}(T.read(T.webHash,e),t,r,n,i,s,a,o)}catch(e){N.printDebugError(e)}else if(N.getNodeCrypto())return function(e,t,r,n,i,s,a,o){const c=Ge.createSign(T.read(T.hash,e));c.write(t),c.end();const u=Ze(r,n,i,s,a,o);return new Uint8Array(c.sign({key:u,format:"jwk",type:"pkcs1"}))}(e,t,r,n,i,s,a,o);return function(e,t,r,n){t=ie(t);const i=ie(He(e,n,ye(t)));return r=ie(r),ge(oe(i,r,t),"be",ye(t))}(e,r,i,c)}async function qe(e,t,r,n,i,s){if(t&&!N.isStream(t))if(N.getWebCrypto())try{return await async function(e,t,r,n,i){const s=Je(n,i),a=await ze.importKey("jwk",s,{name:"RSASSA-PKCS1-v1_5",hash:{name:e}},!1,["verify"]);return ze.verify("RSASSA-PKCS1-v1_5",a,r,t)}(T.read(T.webHash,e),t,r,n,i)}catch(e){N.printDebugError(e)}else if(N.getNodeCrypto())return function(e,t,r,n,i){const s=Je(n,i),a={key:s,format:"jwk",type:"pkcs1"},o=Ge.createVerify(T.read(T.hash,e));o.write(t),o.end();try{return o.verify(a,r)}catch{return!1}}(e,t,r,n,i);return function(e,t,r,n,i){if(r=ie(r),t=ie(t),n=ie(n),t>=r)throw Error("Signature size cannot exceed modulus size");const s=ge(oe(t,n,r),"be",ye(r)),a=He(e,i,ye(r));return N.equalsUint8Array(s,a)}(e,r,n,i,s)}async function _e(e,t,r){return N.getNodeCrypto()?function(e,t,r){const n=Je(t,r),i={key:n,format:"jwk",type:"pkcs1",padding:Ge.constants.RSA_PKCS1_PADDING};return new Uint8Array(Ge.publicEncrypt(i,e))}(e,t,r):function(e,t,r){if(t=ie(t),e=ie(Ne(e,ye(t))),r=ie(r),e>=t)throw Error("Message size cannot exceed modulus size");return ge(oe(e,r,t),"be",ye(t))}(e,t,r)}async function Ye(e,t,r,n,i,s,a,o){if(N.getNodeCrypto()&&!o)try{return function(e,t,r,n,i,s,a){const o=Ze(t,r,n,i,s,a),c={key:o,format:"jwk",type:"pkcs1",padding:Ge.constants.RSA_PKCS1_PADDING};try{return new Uint8Array(Ge.privateDecrypt(c,e))}catch{throw Error("Decryption error")}}(e,t,r,n,i,s,a)}catch(e){N.printDebugError(e)}return function(e,t,r,n,i,s,a,o){if(e=ie(e),t=ie(t),r=ie(r),n=ie(n),i=ie(i),s=ie(s),a=ie(a),e>=t)throw Error("Data too large.");const c=se(n,s-je),u=se(n,i-je),h=Ae(BigInt(2),t),f=oe(ue(h,t),r,t);e=se(e*f,t);const l=oe(e,u,i),y=oe(e,c,s),g=se(a*(y-l),s);let p=g*i+l;return p=se(p*h,t),Oe(ge(p,"be",ye(t)),o)}(e,t,r,n,i,s,a,o)}function Ze(e,t,r,n,i,s){const a=ie(n),o=ie(i),c=ie(r);let u=se(c,o-je),h=se(c,a-je);return h=ge(h),u=ge(u),{kty:"RSA",n:q(e),e:q(t),d:q(r),p:q(i),q:q(n),dp:q(u),dq:q(h),qi:q(s),ext:!0}}function Je(e,t){return{kty:"RSA",n:q(e),e:q(t),ext:!0}}function We(e,t){return{n:V(e.n),e:ge(t),d:V(e.d),p:V(e.q),q:V(e.p),u:V(e.qi)}}const Xe=BigInt(1);const $e={"2a8648ce3d030107":T.curve.nistP256,"2b81040022":T.curve.nistP384,"2b81040023":T.curve.nistP521,"2b8104000a":T.curve.secp256k1,"2b06010401da470f01":T.curve.ed25519Legacy,"2b060104019755010501":T.curve.curve25519Legacy,"2b2403030208010107":T.curve.brainpoolP256r1,"2b240303020801010b":T.curve.brainpoolP384r1,"2b240303020801010d":T.curve.brainpoolP512r1};class et{constructor(e){if(e instanceof et)this.oid=e.oid;else if(N.isArray(e)||N.isUint8Array(e)){if(6===(e=new Uint8Array(e))[0]){if(e[1]!==e.length-2)throw 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 Error("Invalid oid")}write(){return N.concatUint8Array([new Uint8Array([this.oid.length]),this.oid])}toHex(){return N.uint8ArrayToHex(this.oid)}getName(){const e=$e[this.toHex()];if(!e)throw Error("Unknown curve object identifier.");return e}}function tt(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=N.readNumber(e.subarray(1,5)),t=5),{len:r,offset:t}}function rt(e){return e<192?new Uint8Array([e]):e>191&&e<8384?new Uint8Array([192+(e-192>>8),e-192&255]):N.concatUint8Array([new Uint8Array([255]),N.writeNumber(e,4)])}function nt(e){if(e<0||e>30)throw Error("Partial Length power must be between 1 and 30");return new Uint8Array([224+e])}function it(e){return new Uint8Array([192|e])}function st(e,t){return N.concatUint8Array([it(e),rt(t)])}function at(e){return[T.packet.literalData,T.packet.compressedData,T.packet.symmetricallyEncryptedData,T.packet.symEncryptedIntegrityProtectedData,T.packet.aeadEncryptedData].includes(e)}async function ot(e,t,r){let n,i;try{const s=await e.peekBytes(2);if(!s||s.length<2||!(128&s[0]))throw Error("Error during parsing. This message / key probably does not conform to a valid OpenPGP format.");const a=await e.readByte();let c,u,h=-1,f=-1;f=0,64&a&&(f=1),f?h=63&a:(h=(63&a)>>2,u=3&a);const l=at(h);let y,g=null;if(t&&l){if("array"===t){const e=new o;n=M(e),g=e}else{const e=new TransformStream;n=M(e.writable),g=e.readable}i=r({tag:h,packet:g})}else g=[];do{if(f){const t=await e.readByte();if(y=!1,t<192)c=t;else if(t>=192&&t<224)c=(t-192<<8)+await e.readByte()+192;else if(t>223&&t<255){if(c=1<<(31&t),y=!0,!l)throw new TypeError("This packet type does not support partial lengths.")}else c=(await e.readByte()<<24|await e.readByte()<<16|await e.readByte()<<8|await e.readByte())>>>0}else switch(u){case 0:c=await e.readByte();break;case 1:c=await e.readByte()<<8|await e.readByte();break;case 2:c=(await e.readByte()<<24|await e.readByte()<<16|await e.readByte()<<8|await e.readByte())>>>0;break;default:c=1/0}if(c>0){let t=0;for(;;){n&&await n.ready;const{done:r,value:i}=await e.read();if(r){if(c===1/0)break;throw Error("Unexpected end of packet")}const s=c===1/0?i:i.subarray(0,c-t);if(n?await n.write(s):g.push(s),t+=i.length,t>=c){e.unshift(i.subarray(c-t+i.length));break}}}}while(y);n?(await n.ready,await n.close()):(g=N.concatUint8Array(g),await r({tag:h,packet:g}))}catch(e){if(n)return await n.abort(e),!0;throw e}finally{n&&await i}}class ct extends Error{constructor(...e){super(...e),Error.captureStackTrace&&Error.captureStackTrace(this,ct),this.name="UnsupportedError"}}class ut extends ct{constructor(...e){super(...e),Error.captureStackTrace&&Error.captureStackTrace(this,ct),this.name="UnknownPacketError"}}class ht extends ct{constructor(...e){super(...e),Error.captureStackTrace&&Error.captureStackTrace(this,ct),this.name="MalformedPacketError"}}class ft{constructor(e,t){this.tag=e,this.rawContent=t}write(){return this.rawContent}}async function lt(e){switch(e){case T.publicKey.ed25519:try{const e=N.getWebCrypto(),t=await e.generateKey("Ed25519",!0,["sign","verify"]).catch((e=>{if("OperationError"===e.name){const e=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(V(n.x)),seed:V(r.d)}}catch(t){if("NotSupportedError"!==t.name)throw t;const{default:r}=await Promise.resolve().then((function(){return Ml})),n=de(dt(e)),{publicKey:i}=r.sign.keyPair.fromSeed(n);return{A:i,seed:n}}case T.publicKey.ed448:{const e=await N.getNobleCurve(T.publicKey.ed448),{secretKey:t,publicKey:r}=e.keygen();return{A:r,seed:t}}default:throw Error("Unsupported EdDSA algorithm")}}async function yt(e,t,r,n,i,s){if(Fe(t)<Fe(At(e)))throw Error("Hash algorithm too weak for EdDSA.");switch(e){case T.publicKey.ed25519:try{const t=N.getWebCrypto(),r=mt(e,n,i),a=await t.importKey("jwk",r,"Ed25519",!1,["sign"]);return{RS:new Uint8Array(await t.sign("Ed25519",a,s))}}catch(e){if("NotSupportedError"!==e.name)throw e;const{default:t}=await Promise.resolve().then((function(){return Ml})),r=N.concatUint8Array([i,n]);return{RS:t.sign.detached(s,r)}}case T.publicKey.ed448:return{RS:(await N.getNobleCurve(T.publicKey.ed448)).sign(s,i)};default:throw Error("Unsupported EdDSA algorithm")}}async function gt(e,t,{RS:r},n,i,s){if(Fe(t)<Fe(At(e)))throw Error("Hash algorithm too weak for EdDSA.");switch(e){case T.publicKey.ed25519:try{const t=N.getWebCrypto(),n=wt(e,i),a=await t.importKey("jwk",n,"Ed25519",!1,["verify"]);return await t.verify("Ed25519",a,r,s)}catch(e){if("NotSupportedError"!==e.name)throw e;const{default:t}=await Promise.resolve().then((function(){return Ml}));return t.sign.detached.verify(s,r,i)}case T.publicKey.ed448:return(await N.getNobleCurve(T.publicKey.ed448)).verify(r,s,i);default:throw Error("Unsupported EdDSA algorithm")}}async function pt(e,t,r){switch(e){case T.publicKey.ed25519:try{const n=N.getWebCrypto(),i=mt(e,t,r),s=wt(e,t),a=await n.importKey("jwk",i,"Ed25519",!1,["sign"]),o=await n.importKey("jwk",s,"Ed25519",!1,["verify"]),c=de(8),u=new Uint8Array(await n.sign("Ed25519",a,c));return await n.verify("Ed25519",o,u,c)}catch(e){if("NotSupportedError"!==e.name)return!1;const{default:n}=await Promise.resolve().then((function(){return Ml})),{publicKey:i}=n.sign.keyPair.fromSeed(r);return N.equalsUint8Array(t,i)}case T.publicKey.ed448:{const e=(await N.getNobleCurve(T.publicKey.ed448)).getPublicKey(r);return N.equalsUint8Array(t,e)}default:return!1}}function dt(e){switch(e){case T.publicKey.ed25519:return 32;case T.publicKey.ed448:return 57;default:throw Error("Unsupported EdDSA algorithm")}}function At(e){switch(e){case T.publicKey.ed25519:return T.hash.sha256;case T.publicKey.ed448:return T.hash.sha512;default:throw Error("Unknown EdDSA algo")}}const wt=(e,t)=>{if(e===T.publicKey.ed25519){return{kty:"OKP",crv:"Ed25519",x:q(t),ext:!0}}throw Error("Unsupported EdDSA algorithm")},mt=(e,t,r)=>{if(e===T.publicKey.ed25519){const n=wt(e,t);return n.d=q(r),n}throw Error("Unsupported EdDSA algorithm")};var bt=/*#__PURE__*/Object.freeze({__proto__:null,generate:lt,getPayloadSize:dt,getPreferredHashAlgo:At,sign:yt,validateParams:pt,verify:gt});
/*! noble-ciphers - MIT License (c) 2023 Paul Miller (paulmillr.com) */function kt(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function Et(e,...t){if(!kt(e))throw Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw Error("Uint8Array expected of length "+t+", got length="+e.length)}function vt(e,t=!0){if(e.destroyed)throw Error("Hash instance has been destroyed");if(t&&e.finished)throw Error("Hash#digest() has already been called")}function It(e,t){Et(e);const r=t.outputLen;if(e.length<r)throw Error("digestInto() expects output buffer of length at least "+r)}function Bt(e){return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function St(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function Kt(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function Ct(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}const Dt=/* @__PURE__ */(()=>68===new Uint8Array(new Uint32Array([287454020]).buffer)[0])();function Ut(e){if("string"==typeof e)e=function(e){if("string"!=typeof e)throw Error("string expected");return new Uint8Array((new TextEncoder).encode(e))}(e);else{if(!kt(e))throw Error("Uint8Array expected, got "+typeof e);e=Lt(e)}return e}function Pt(e,t){return e.buffer===t.buffer&&e.byteOffset<t.byteOffset+t.byteLength&&t.byteOffset<e.byteOffset+e.byteLength}function xt(e,t){if(Pt(e,t)&&e.byteOffset<t.byteOffset)throw Error("complex overlap of input and output is not supported")}function Qt(e,t){if(e.length!==t.length)return!1;let r=0;for(let n=0;n<e.length;n++)r|=e[n]^t[n];return 0===r}const Mt=(e,t)=>{function r(r,...n){if(Et(r),!Dt)throw Error("Non little-endian hardware is not yet supported");if(void 0!==e.nonceLength){const t=n[0];if(!t)throw Error("nonce / iv required");e.varSizeNonce?Et(t):Et(t,e.nonceLength)}const i=e.tagLength;i&&void 0!==n[1]&&Et(n[1]);const s=t(r,...n),a=(e,t)=>{if(void 0!==t){if(2!==e)throw Error("cipher output not supported");Et(t)}};let o=!1;return{encrypt(e,t){if(o)throw Error("cannot encrypt() twice with same key + nonce");return o=!0,Et(e),a(s.encrypt.length,t),s.encrypt(e,t)},decrypt(e,t){if(Et(e),i&&e.length<i)throw Error("invalid ciphertext length: smaller than tagLength="+i);return a(s.decrypt.length,t),s.decrypt(e,t)}}}return Object.assign(r,e),r};function Rt(e,t,r=!0){if(void 0===t)return new Uint8Array(e);if(t.length!==e)throw Error("invalid output length, expected "+e+", got: "+t.length);if(r&&!Ft(t))throw Error("invalid output, must be aligned");return t}function Tt(e,t,r,n){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,r,n);const i=BigInt(32),s=BigInt(4294967295),a=Number(r>>i&s),o=Number(r&s);e.setUint32(t+0,a,n),e.setUint32(t+4,o,n)}function Ft(e){return e.byteOffset%4==0}function Lt(e){return Uint8Array.from(e)}const Nt=16,Ot=/* @__PURE__ */new Uint8Array(16),Ht=St(Ot),zt=e=>(e>>>0&255)<<24|(e>>>8&255)<<16|(e>>>16&255)<<8|e>>>24&255;class Gt{constructor(e,t){this.blockLen=Nt,this.outputLen=Nt,this.s0=0,this.s1=0,this.s2=0,this.s3=0,this.finished=!1,Et(e=Ut(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:zt(n),s1:zt(i),s2:zt(s),s3:zt(a)}),({s0:n,s1:i,s2:s,s3:a}={s3:(h=s)<<31|(f=a)>>>1,s2:(u=i)<<31|h>>>1,s1:(c=n)<<31|u>>>1,s0:c>>>1^225<<24&-(1&f)});var c,u,h,f;const l=(y=t||1024)>65536?8:y>1024?4:2;var y;if(![1,2,4,8].includes(l))throw Error("ghash: invalid window size, expected 2, 4 or 8");this.W=l;const g=128/l,p=this.windowSize=2**l,d=[];for(let e=0;e<g;e++)for(let t=0;t<p;t++){let r=0,n=0,i=0,s=0;for(let a=0;a<l;a++){if(!(t>>>l-a-1&1))continue;const{s0:c,s1:u,s2:h,s3:f}=o[l*e+a];r^=c,n^=u,i^=h,s^=f}d.push({s0:r,s1:n,s2:i,s3:s})}this.t=d}_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,u=0,h=0;const f=(1<<i)-1;let l=0;for(const y of[e,t,r,n])for(let e=0;e<4;e++){const t=y>>>8*e&255;for(let e=8/i-1;e>=0;e--){const r=t>>>i*e&f,{s0:n,s1:y,s2:g,s3:p}=s[l*a+r];o^=n,c^=y,u^=g,h^=p,l+=1}}this.s0=o,this.s1=c,this.s2=u,this.s3=h}update(e){vt(this),Et(e=Ut(e));const t=St(e),r=Math.floor(e.length/Nt),n=e.length%Nt;for(let e=0;e<r;e++)this._updateBlock(t[4*e+0],t[4*e+1],t[4*e+2],t[4*e+3]);return n&&(Ot.set(e.subarray(r*Nt)),this._updateBlock(Ht[0],Ht[1],Ht[2],Ht[3]),Kt(Ht)),this}destroy(){const{t:e}=this;for(const t of e)t.s0=0,t.s1=0,t.s2=0,t.s3=0}digestInto(e){vt(this),It(e,this),this.finished=!0;const{s0:t,s1:r,s2:n,s3:i}=this,s=St(e);return s[0]=t,s[1]=r,s[2]=n,s[3]=i,e}digest(){const e=new Uint8Array(Nt);return this.digestInto(e),this.destroy(),e}}class jt extends Gt{constructor(e,t){Et(e=Ut(e));const r=function(e){e.reverse();const t=1&e[15];let r=0;for(let t=0;t<e.length;t++){const n=e[t];e[t]=n>>>1|r,r=(1&n)<<7}return e[0]^=225&-t,e}(Lt(e));super(r,t),Kt(r)}update(e){e=Ut(e),vt(this);const t=St(e),r=e.length%Nt,n=Math.floor(e.length/Nt);for(let e=0;e<n;e++)this._updateBlock(zt(t[4*e+3]),zt(t[4*e+2]),zt(t[4*e+1]),zt(t[4*e+0]));return r&&(Ot.set(e.subarray(n*Nt)),this._updateBlock(zt(Ht[3]),zt(Ht[2]),zt(Ht[1]),zt(Ht[0])),Kt(Ht)),this}digestInto(e){vt(this),It(e,this),this.finished=!0;const{s0:t,s1:r,s2:n,s3:i}=this,s=St(e);return s[0]=t,s[1]=r,s[2]=n,s[3]=i,e.reverse()}}function Vt(e){const t=(t,r)=>e(r,t.length).update(Ut(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 qt=Vt(((e,t)=>new Gt(e,t)));Vt(((e,t)=>new jt(e,t)));const _t=16,Yt=/* @__PURE__ */new Uint8Array(_t);function Zt(e){return e<<1^283&-(e>>7)}function Jt(e,t){let r=0;for(;t>0;t>>=1)r^=e&-(1&t),e=Zt(e);return r}const Wt=/* @__PURE__ */(()=>{const e=new Uint8Array(256);for(let t=0,r=1;t<256;t++,r^=Zt(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 Kt(e),t})(),Xt=/* @__PURE__ */Wt.map(((e,t)=>Wt.indexOf(t))),$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 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 u=0;u<256;u++){const h=256*t+u;a[h]=r[t]^n[u],o[h]=i[t]^s[u],c[h]=e[t]<<8|e[u]}return{sbox:e,sbox2:c,T0:r,T1:n,T2:i,T3:s,T01:a,T23:o}}const rr=/* @__PURE__ */tr(Wt,(e=>Jt(e,3)<<24|e<<16|e<<8|Jt(e,2))),nr=/* @__PURE__ */tr(Xt,(e=>Jt(e,11)<<24|Jt(e,13)<<16|Jt(e,9)<<8|Jt(e,14))),ir=/* @__PURE__ */(()=>{const e=new Uint8Array(16);for(let t=0,r=1;t<16;t++,r=Zt(r))e[t]=r;return e})();function sr(e){Et(e);const t=e.length;if(![16,24,32].includes(t))throw Error("aes: invalid key size, should be 16, 24 or 32, got "+t);const{sbox2:r}=rr,n=[];Ft(e)||n.push(e=Lt(e));const i=St(e),s=i.length,a=e=>cr(r,e,e,e,e),o=new Uint32Array(t+28);o.set(i);for(let e=s;e<o.length;e++){let t=o[e-1];e%s==0?t=a((c=t)<<24|c>>>8)^ir[e/s-1]:s>6&&e%s==4&&(t=a(t)),o[e]=o[e-s]^t}var c;return Kt(...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<n;e+=4)for(let i=0;i<4;i++)r[e+i]=t[n-e-4+i];Kt(t);for(let e=4;e<n-4;e++){const t=r[e],n=cr(i,t,t,t,t);r[e]=s[255&n]^a[n>>>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 ur(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 u=e.length/4-2;for(let s=0;s<u;s++){const s=e[c++]^or(a,o,t,r,n,i),u=e[c++]^or(a,o,r,n,i,t),h=e[c++]^or(a,o,n,i,t,r),f=e[c++]^or(a,o,i,t,r,n);t=s,r=u,n=h,i=f}return{s0:e[c++]^cr(s,t,r,n,i),s1:e[c++]^cr(s,r,n,i,t),s2:e[c++]^cr(s,n,i,t,r),s3:e[c++]^cr(s,i,t,r,n)}}function hr(e,t,r,n,i){const{sbox2:s,T01:a,T23:o}=nr;let c=0;t^=e[c++],r^=e[c++],n^=e[c++],i^=e[c++];const u=e.length/4-2;for(let s=0;s<u;s++){const s=e[c++]^or(a,o,t,i,n,r),u=e[c++]^or(a,o,r,t,i,n),h=e[c++]^or(a,o,n,r,t,i),f=e[c++]^or(a,o,i,n,r,t);t=s,r=u,n=h,i=f}return{s0:e[c++]^cr(s,t,i,n,r),s1:e[c++]^cr(s,r,t,i,n),s2:e[c++]^cr(s,n,r,t,i),s3:e[c++]^cr(s,i,n,r,t)}}function fr(e,t,r,n){Et(t,_t),Et(r);const i=r.length;xt(r,n=Rt(i,n));const s=t,a=St(s);let{s0:o,s1:c,s2:u,s3:h}=ur(e,a[0],a[1],a[2],a[3]);const f=St(r),l=St(n);for(let t=0;t+4<=f.length;t+=4){l[t+0]=f[t+0]^o,l[t+1]=f[t+1]^c,l[t+2]=f[t+2]^u,l[t+3]=f[t+3]^h;let r=1;for(let e=s.length-1;e>=0;e--)r=r+(255&s[e])|0,s[e]=255&r,r>>>=8;({s0:o,s1:c,s2:u,s3:h}=ur(e,a[0],a[1],a[2],a[3]))}const y=_t*Math.floor(f.length/4);if(y<i){const e=new Uint32Array([o,c,u,h]),t=Bt(e);for(let e=y,s=0;e<i;e++,s++)n[e]=r[e]^t[s];Kt(e)}return n}function lr(e,t,r,n,i){Et(r,_t),Et(n),i=Rt(n.length,i);const s=r,a=St(s),o=Ct(s),c=St(n),u=St(i),h=t?0:12,f=n.length;let l=o.getUint32(h,t),{s0:y,s1:g,s2:p,s3:d}=ur(e,a[0],a[1],a[2],a[3]);for(let r=0;r+4<=c.length;r+=4)u[r+0]=c[r+0]^y,u[r+1]=c[r+1]^g,u[r+2]=c[r+2]^p,u[r+3]=c[r+3]^d,l=l+1>>>0,o.setUint32(h,l,t),({s0:y,s1:g,s2:p,s3:d}=ur(e,a[0],a[1],a[2],a[3]));const A=_t*Math.floor(c.length/4);if(A<f){const e=new Uint32Array([y,g,p,d]),t=Bt(e);for(let e=A,r=0;e<f;e++,r++)i[e]=n[e]^t[r];Kt(e)}return i}const yr=/* @__PURE__ */Mt({blockSize:16,nonceLength:16},(function(e,t){function r(r,n){if(Et(r),void 0!==n&&(Et(n),!Ft(n)))throw Error("unaligned destination");const i=sr(e),s=Lt(t),a=[i,s];Ft(r)||a.push(r=Lt(r));const o=fr(i,s,r,n);return Kt(...a),o}return{encrypt:(e,t)=>r(e,t),decrypt:(e,t)=>r(e,t)}}));const gr=/* @__PURE__ */Mt({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){Et(e);let n=e.length;const i=n%_t;if(!t&&0!==i)throw Error("aec/(cbc-ecb): unpadded plaintext with disabled padding");Ft(e)||(e=Lt(e));const s=St(e);if(t){let e=_t-i;e||(e=_t),n+=e}return xt(e,r=Rt(n,r)),{b:s,o:St(r),out:r}}(r,n,i);let u=t;const h=[s];Ft(u)||h.push(u=Lt(u));const f=St(u);let l=f[0],y=f[1],g=f[2],p=f[3],d=0;for(;d+4<=a.length;)l^=a[d+0],y^=a[d+1],g^=a[d+2],p^=a[d+3],({s0:l,s1:y,s2:g,s3:p}=ur(s,l,y,g,p)),o[d++]=l,o[d++]=y,o[d++]=g,o[d++]=p;if(n){const e=function(e){const t=new Uint8Array(16),r=St(t);t.set(e);const n=_t-e.length;for(let e=_t-n;e<_t;e++)t[e]=n;return r}(r.subarray(4*d));l^=e[0],y^=e[1],g^=e[2],p^=e[3],({s0:l,s1:y,s2:g,s3:p}=ur(s,l,y,g,p)),o[d++]=l,o[d++]=y,o[d++]=g,o[d++]=p}return Kt(...h),c},decrypt(r,i){!function(e){if(Et(e),e.length%_t!=0)throw Error("aes-(cbc/ecb).decrypt ciphertext should consist of blocks with size 16")}(r);const s=ar(e);let a=t;const o=[s];Ft(a)||o.push(a=Lt(a));const c=St(a);i=Rt(r.length,i),Ft(r)||o.push(r=Lt(r)),xt(r,i);const u=St(r),h=St(i);let f=c[0],l=c[1],y=c[2],g=c[3];for(let e=0;e+4<=u.length;){const t=f,r=l,n=y,i=g;f=u[e+0],l=u[e+1],y=u[e+2],g=u[e+3];const{s0:a,s1:o,s2:c,s3:p}=hr(s,f,l,y,g);h[e++]=a^t,h[e++]=o^r,h[e++]=c^n,h[e++]=p^i}return Kt(...o),function(e,t){if(!t)return e;const r=e.length;if(!r)throw Error("aes/pcks5: empty ciphertext not allowed");const n=e[r-1];if(n<=0||n>16)throw Error("aes/pcks5: wrong padding");const i=e.subarray(0,-n);for(let t=0;t<n;t++)if(e[r-t-1]!==n)throw Error("aes/pcks5: wrong padding");return i}(i,n)}}})),pr=/* @__PURE__ */Mt({blockSize:16,nonceLength:16},(function(e,t){function r(r,n,i){Et(r);const s=r.length;if(Pt(r,i=Rt(s,i)))throw Error("overlapping src and dst not supported.");const a=sr(e);let o=t;const c=[a];Ft(o)||c.push(o=Lt(o)),Ft(r)||c.push(r=Lt(r));const u=St(r),h=St(i),f=n?h:u,l=St(o);let y=l[0],g=l[1],p=l[2],d=l[3];for(let e=0;e+4<=u.length;){const{s0:t,s1:r,s2:n,s3:i}=ur(a,y,g,p,d);h[e+0]=u[e+0]^t,h[e+1]=u[e+1]^r,h[e+2]=u[e+2]^n,h[e+3]=u[e+3]^i,y=f[e++],g=f[e++],p=f[e++],d=f[e++]}const A=_t*Math.floor(u.length/4);if(A<s){({s0:y,s1:g,s2:p,s3:d}=ur(a,y,g,p,d));const e=Bt(new Uint32Array([y,g,p,d]));for(let t=A,n=0;t<s;t++,n++)i[t]=r[t]^e[n];Kt(e)}return Kt(...c),i}return{encrypt:(e,t)=>r(e,!0,t),decrypt:(e,t)=>r(e,!1,t)}}));function dr(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 Tt(i,0,BigInt(t),r),Tt(i,8,BigInt(e),r),n}(8*n.length,8*s,t);a.update(n),a.update(o);const c=a.digest();return Kt(o),c}const Ar=/* @__PURE__ */Mt({blockSize:16,nonceLength:12,tagLength:16,varSizeNonce:!0},(function(e,t,r){if(t.length<8)throw Error("aes/gcm: invalid nonce length");function n(e,t,n){const i=dr(qt,!1,e,n,r);for(let e=0;e<t.length;e++)i[e]^=t[e];return i}function i(){const r=sr(e),n=Yt.slice(),i=Yt.slice();if(lr(r,!1,i,i,n),12===t.length)i.set(t);else{const e=Yt.slice();Tt(Ct(e),8,BigInt(8*t.length),!1);const r=qt.create(n).update(t).update(e);r.digestInto(i),r.destroy()}return{xk:r,authKey:n,counter:i,tagMask:lr(r,!1,i,Yt)}}return{encrypt(e){const{xk:t,authKey:r,counter:s,tagMask:a}=i(),o=new Uint8Array(e.length+16),c=[t,r,s,a];Ft(e)||c.push(e=Lt(e)),lr(t,!1,s,e,o.subarray(0,e.length));const u=n(r,a,o.subarray(0,o.length-16));return c.push(u),o.set(u,e.length),Kt(...c),o},decrypt(e){const{xk:t,authKey:r,counter:s,tagMask:a}=i(),o=[t,r,a,s];Ft(e)||o.push(e=Lt(e));const c=e.subarray(0,-16),u=e.subarray(-16),h=n(r,a,c);if(o.push(h),!Qt(h,u))throw Error("aes/gcm: invalid ghash tag");const f=lr(t,!1,s,c);return Kt(...o),f}}}));function wr(e){return e instanceof Uint32Array||ArrayBuffer.isView(e)&&"Uint32Array"===e.constructor.name}function mr(e,t){if(Et(t,16),!wr(e))throw Error("_encryptBlock accepts result of expandKeyLE");const r=St(t);let{s0:n,s1:i,s2:s,s3:a}=ur(e,r[0],r[1],r[2],r[3]);return r[0]=n,r[1]=i,r[2]=s,r[3]=a,t}function br(e,t){if(Et(t,16),!wr(e))throw Error("_decryptBlock accepts result of expandKeyLE");const r=St(t);let{s0:n,s1:i,s2:s,s3:a}=hr(e,r[0],r[1],r[2],r[3]);return r[0]=n,r[1]=i,r[2]=s,r[3]=a,t}const kr={encrypt(e,t){if(t.length>=2**32)throw Error("plaintext should be less than 4gb");const r=sr(e);if(16===t.length)mr(r,t);else{const e=St(t);let n=e[0],i=e[1];for(let t=0,s=1;t<6;t++)for(let t=2;t<e.length;t+=2,s++){const{s0:a,s1:o,s2:c,s3:u}=ur(r,n,i,e[t],e[t+1]);n=a,i=o^er(s),e[t]=c,e[t+1]=u}e[0]=n,e[1]=i}r.fill(0)},decrypt(e,t){if(t.length-8>=2**32)throw Error("ciphertext should be less than 4gb");const r=ar(e),n=t.length/8-1;if(1===n)br(r,t);else{const e=St(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:u}=hr(r,i,s,e[t],e[t+1]);i=n,s=o,e[t]=c,e[t+1]=u}e[0]=i,e[1]=s}r.fill(0)}},Er=/* @__PURE__ */new Uint8Array(8).fill(166),vr=/* @__PURE__ */Mt({blockSize:8},(e=>({encrypt(t){if(!t.length||t.length%8!=0)throw Error("invalid plaintext length");if(8===t.length)throw Error("8-byte keys not allowed in AESKW, use AESKWP instead");const r=function(...e){let t=0;for(let r=0;r<e.length;r++){const n=e[r];Et(n),t+=n.length}const r=new Uint8Array(t);for(let t=0,n=0;t<e.length;t++){const i=e[t];r.set(i,n),n+=i.length}return r}(Er,t);return kr.encrypt(e,r),r},decrypt(t){if(t.length%8!=0||t.length<24)throw Error("invalid ciphertext length");const r=Lt(t);if(kr.decrypt(e,r),!Qt(r.subarray(0,8),Er))throw Error("integrity check failed");return r.subarray(0,8).fill(0),r.subarray(8)}}))),Ir={expandKeyLE:sr,expandKeyDecLE:ar,encrypt:ur,decrypt:hr,encryptBlock:mr,decryptBlock:br,ctrCounter:fr,ctr32:lr};async function Br(e){switch(e){case T.symmetric.aes128:case T.symmetric.aes192:case T.symmetric.aes256:throw Error("Not a legacy cipher");case T.symmetric.cast5:case T.symmetric.blowfish:case T.symmetric.twofish:case T.symmetric.tripledes:{const{legacyCiphers:t}=await Promise.resolve().then((function(){return Zl})),r=T.read(T.symmetric,e),n=t.get(r);if(!n)throw Error("Unsupported cipher algorithm");return n}default:throw Error("Unsupported cipher algorithm")}}function Sr(e){switch(e){case T.symmetric.aes128:case T.symmetric.aes192:case T.symmetric.aes256:case T.symmetric.twofish:return 16;case T.symmetric.blowfish:case T.symmetric.cast5:case T.symmetric.tripledes:return 8;default:throw Error("Unsupported cipher")}}function Kr(e){switch(e){case T.symmetric.aes128:case T.symmetric.blowfish:case T.symmetric.cast5:return 16;case T.symmetric.aes192:case T.symmetric.tripledes:return 24;case T.symmetric.aes256:case T.symmetric.twofish:return 32;default:throw Error("Unsupported cipher")}}function Cr(e){return{keySize:Kr(e),blockSize:Sr(e)}}const Dr=N.getWebCrypto();async function Ur(e,t,r){const{keySize:n}=Cr(e);if(!N.isAES(e)||t.length!==n)throw Error("Unexpected algorithm or key size");try{const e=await Dr.importKey("raw",t,{name:"AES-KW"},!1,["wrapKey"]),n=await Dr.importKey("raw",r,{name:"HMAC",hash:"SHA-256"},!0,["sign"]),i=await Dr.wrapKey("raw",n,e,{name:"AES-KW"});return new Uint8Array(i)}catch(e){if("NotSupportedError"!==e.name&&(24!==t.length||"OperationError"!==e.name))throw e;N.printDebugError("Browser did not support operation: "+e.message)}return vr(t).encrypt(r)}async function Pr(e,t,r){const{keySize:n}=Cr(e);if(!N.isAES(e)||t.length!==n)throw Error("Unexpected algorithm or key size");let i;try{i=await Dr.importKey("raw",t,{name:"AES-KW"},!1,["unwrapKey"])}catch(e){if("NotSupportedError"!==e.name&&(24!==t.length||"OperationError"!==e.name))throw e;return N.printDebugError("Browser did not support operation: "+e.message),vr(t).decrypt(r)}try{const e=await Dr.unwrapKey("raw",r,i,{name:"AES-KW"},{name:"HMAC",hash:"SHA-256"},!0,["sign"]);return new Uint8Array(await Dr.exportKey("raw",e))}catch(e){if("OperationError"===e.name)throw Error("Key Data Integrity failed");throw e}}async function xr(e,t,r,n,i){const s=N.getWebCrypto(),a=T.read(T.webHash,e);if(!a)throw Error("Hash algo not supported with HKDF");const o=await s.importKey("raw",t,"HKDF",!1,["deriveBits"]),c=await s.deriveBits({name:"HKDF",hash:a,salt:r,info:n},o,8*i);return new Uint8Array(c)}const Qr={x25519:N.encodeUTF8("OpenPGP X25519"),x448:N.encodeUTF8("OpenPGP X448")};async function Mr(e){switch(e){case T.publicKey.x25519:try{const e=N.getWebCrypto(),t=await e.generateKey("X25519",!0,["deriveKey","deriveBits"]).catch((e=>{if("OperationError"===e.name){const e=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=Error("Unexpected mismatching public point");throw e.name="NotSupportedError",e}return{A:new Uint8Array(V(n.x)),k:V(r.d)}}catch(e){if("NotSupportedError"!==e.name)throw e;const{default:t}=await Promise.resolve().then((function(){return Ml})),{secretKey:r,publicKey:n}=t.box.keyPair();return{A:n,k:r}}case T.publicKey.x448:{const e=await N.getNobleCurve(T.publicKey.x448),{secretKey:t,publicKey:r}=e.keygen();return{A:r,k:t}}default:throw Error("Unsupported ECDH algorithm")}}async function Rr(e,t,r){switch(e){case T.publicKey.x25519:try{const{ephemeralPublicKey:n,sharedSecret:i}=await Nr(e,t),s=await Or(e,n,t,r);return N.equalsUint8Array(i,s)}catch{return!1}case T.publicKey.x448:{const e=(await N.getNobleCurve(T.publicKey.x448)).getPublicKey(r);return N.equalsUint8Array(t,e)}default:return!1}}async function Tr(e,t,r){const{ephemeralPublicKey:n,sharedSecret:i}=await Nr(e,r),s=N.concatUint8Array([n,r,i]);switch(e){case T.publicKey.x25519:{const e=T.symmetric.aes128,{keySize:r}=Cr(e),i=await xr(T.hash.sha256,s,new Uint8Array,Qr.x25519,r);return{ephemeralPublicKey:n,wrappedKey:await Ur(e,i,t)}}case T.publicKey.x448:{const e=T.symmetric.aes256,{keySize:r}=Cr(T.symmetric.aes256),i=await xr(T.hash.sha512,s,new Uint8Array,Qr.x448,r);return{ephemeralPublicKey:n,wrappedKey:await Ur(e,i,t)}}default:throw Error("Unsupported ECDH algorithm")}}async function Fr(e,t,r,n,i){const s=await Or(e,t,n,i),a=N.concatUint8Array([t,n,s]);switch(e){case T.publicKey.x25519:{const e=T.symmetric.aes128,{keySize:t}=Cr(e);return Pr(e,await xr(T.hash.sha256,a,new Uint8Array,Qr.x25519,t),r)}case T.publicKey.x448:{const e=T.symmetric.aes256,{keySize:t}=Cr(T.symmetric.aes256);return Pr(e,await xr(T.hash.sha512,a,new Uint8Array,Qr.x448,t),r)}default:throw Error("Unsupported ECDH algorithm")}}function Lr(e){switch(e){case T.publicKey.x25519:return 32;case T.publicKey.x448:return 56;default:throw Error("Unsupported ECDH algorithm")}}async function Nr(e,t){switch(e){case T.publicKey.x25519:try{const r=N.getWebCrypto(),n=await r.generateKey("X25519",!0,["deriveKey","deriveBits"]).catch((e=>{if("OperationError"===e.name){const e=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=Error("Unexpected mismatching public point");throw e.name="NotSupportedError",e}const s=zr(e,t),a=await r.importKey("jwk",s,"X25519",!1,[]),o=await r.deriveBits({name:"X25519",public:a},n.privateKey,8*Lr(e));return{sharedSecret:new Uint8Array(o),ephemeralPublicKey:new Uint8Array(V(i.x))}}catch(e){if("NotSupportedError"!==e.name)throw e;const{default:r}=await Promise.resolve().then((function(){return Ml})),{secretKey:n,publicKey:i}=r.box.keyPair(),s=r.scalarMult(n,t);return Hr(s),{ephemeralPublicKey:i,sharedSecret:s}}case T.publicKey.x448:{const e=await N.getNobleCurve(T.publicKey.x448),{secretKey:r,publicKey:n}=e.keygen(),i=e.getSharedSecret(r,t);return Hr(i),{ephemeralPublicKey:n,sharedSecret:i}}default:throw Error("Unsupported ECDH algorithm")}}async function Or(e,t,r,n){switch(e){case T.publicKey.x25519:try{const i=N.getWebCrypto(),s=function(e,t,r){if(e===T.publicKey.x25519){const n=zr(e,t);return n.d=q(r),n}throw Error("Unsupported ECDH algorithm")}(e,r,n),a=zr(e,t),o=await i.importKey("jwk",s,"X25519",!1,["deriveKey","deriveBits"]),c=await i.importKey("jwk",a,"X25519",!1,[]),u=await i.deriveBits({name:"X25519",public:c},o,8*Lr(e));return new Uint8Array(u)}catch(e){if("NotSupportedError"!==e.name)throw e;const{default:r}=await Promise.resolve().then((function(){return Ml})),i=r.scalarMult(n,t);return Hr(i),i}case T.publicKey.x448:{const e=(await N.getNobleCurve(T.publicKey.x448)).getSharedSecret(n,t);return Hr(e),e}default:throw Error("Unsupported ECDH algorithm")}}function Hr(e){let t=0;for(let r=0;r<e.length;r++)t|=e[r];if(0===t)throw Error("Unexpected low order point")}function zr(e,t){if(e===T.publicKey.x25519){return{kty:"OKP",crv:"X25519",x:q(t),ext:!0}}throw Error("Unsupported ECDH algorithm")}var Gr=/*#__PURE__*/Object.freeze({__proto__:null,decrypt:Fr,encrypt:Tr,generate:Mr,generateEphemeralEncryptionMaterial:Nr,getPayloadSize:Lr,recomputeSharedSecret:Or,validateParams:Rr});const jr=N.getWebCrypto(),Vr=N.getNodeCrypto(),qr={[T.curve.nistP256]:"P-256",[T.curve.nistP384]:"P-384",[T.curve.nistP521]:"P-521"},_r=Vr?Vr.getCurves():[],Yr=Vr?{[T.curve.secp256k1]:_r.includes("secp256k1")?"secp256k1":void 0,[T.curve.nistP256]:_r.includes("prime256v1")?"prime256v1":void 0,[T.curve.nistP384]:_r.includes("secp384r1")?"secp384r1":void 0,[T.curve.nistP521]:_r.includes("secp521r1")?"secp521r1":void 0,[T.curve.ed25519Legacy]:_r.includes("ED25519")?"ED25519":void 0,[T.curve.curve25519Legacy]:_r.includes("X25519")?"X25519":void 0,[T.curve.brainpoolP256r1]:_r.includes("brainpoolP256r1")?"brainpoolP256r1":void 0,[T.curve.brainpoolP384r1]:_r.includes("brainpoolP384r1")?"brainpoolP384r1":void 0,[T.curve.brainpoolP512r1]:_r.includes("brainpoolP512r1")?"brainpoolP512r1":void 0}:{},Zr={[T.curve.nistP256]:{oid:[6,8,42,134,72,206,61,3,1,7],keyType:T.publicKey.ecdsa,hash:T.hash.sha256,cipher:T.symmetric.aes128,node:Yr[T.curve.nistP256],web:qr[T.curve.nistP256],payloadSize:32,sharedSize:256,wireFormatLeadingByte:4},[T.curve.nistP384]:{oid:[6,5,43,129,4,0,34],keyType:T.publicKey.ecdsa,hash:T.hash.sha384,cipher:T.symmetric.aes192,node:Yr[T.curve.nistP384],web:qr[T.curve.nistP384],payloadSize:48,sharedSize:384,wireFormatLeadingByte:4},[T.curve.nistP521]:{oid:[6,5,43,129,4,0,35],keyType:T.publicKey.ecdsa,hash:T.hash.sha512,cipher:T.symmetric.aes256,node:Yr[T.curve.nistP521],web:qr[T.curve.nistP521],payloadSize:66,sharedSize:528,wireFormatLeadingByte:4},[T.curve.secp256k1]:{oid:[6,5,43,129,4,0,10],keyType:T.publicKey.ecdsa,hash:T.hash.sha256,cipher:T.symmetric.aes128,node:Yr[T.curve.secp256k1],payloadSize:32,wireFormatLeadingByte:4},[T.curve.ed25519Legacy]:{oid:[6,9,43,6,1,4,1,218,71,15,1],keyType:T.publicKey.eddsaLegacy,hash:T.hash.sha512,node:!1,payloadSize:32,wireFormatLeadingByte:64},[T.curve.curve25519Legacy]:{oid:[6,10,43,6,1,4,1,151,85,1,5,1],keyType:T.publicKey.ecdh,hash:T.hash.sha256,cipher:T.symmetric.aes128,node:!1,payloadSize:32,wireFormatLeadingByte:64},[T.curve.brainpoolP256r1]:{oid:[6,9,43,36,3,3,2,8,1,1,7],keyType:T.publicKey.ecdsa,hash:T.hash.sha256,cipher:T.symmetric.aes128,node:Yr[T.curve.brainpoolP256r1],payloadSize:32,wireFormatLeadingByte:4},[T.curve.brainpoolP384r1]:{oid:[6,9,43,36,3,3,2,8,1,1,11],keyType:T.publicKey.ecdsa,hash:T.hash.sha384,cipher:T.symmetric.aes192,node:Yr[T.curve.brainpoolP384r1],payloadSize:48,wireFormatLeadingByte:4},[T.curve.brainpoolP512r1]:{oid:[6,9,43,36,3,3,2,8,1,1,13],keyType:T.publicKey.ecdsa,hash:T.hash.sha512,cipher:T.symmetric.aes256,node:Yr[T.curve.brainpoolP512r1],payloadSize:64,wireFormatLeadingByte:4}};class Jr{constructor(e){try{this.name=e instanceof et?e.getName():T.write(T.curve,e)}catch{throw new ct("Unknown curve")}const t=Zr[this.name];this.keyType=t.keyType,this.oid=t.oid,this.hash=t.hash,this.cipher=t.cipher,this.node=t.node,this.web=t.web,this.payloadSize=t.payloadSize,this.sharedSize=t.sharedSize,this.wireFormatLeadingByte=t.wireFormatLeadingByte,this.web&&N.getWebCrypto()?this.type="web":this.node&&N.getNodeCrypto()?this.type="node":this.name===T.curve.curve25519Legacy?this.type="curve25519Legacy":this.name===T.curve.ed25519Legacy&&(this.type="ed25519Legacy")}async genKeyPair(){switch(this.type){case"web":try{return await async function(e,t){const r=await jr.generateKey({name:"ECDSA",namedCurve:qr[e]},!0,["sign","verify"]),n=await jr.exportKey("jwk",r.privateKey);return{publicKey:rn(await jr.exportKey("jwk",r.publicKey),t),privateKey:V(n.d)}}(this.name,this.wireFormatLeadingByte)}catch(e){return N.printDebugError("Browser did not support generating ec key "+e.message),tn(this.name)}case"node":return function(e){const t=Vr.createECDH(Yr[e]);return t.generateKeys(),{publicKey:new Uint8Array(t.getPublicKey()),privateKey:new Uint8Array(t.getPrivateKey())}}(this.name);case"curve25519Legacy":{const{k:e,A:t}=await Mr(T.publicKey.x25519),r=e.slice().reverse();r[0]=127&r[0]|64,r[31]&=248;return{publicKey:N.concatUint8Array([new Uint8Array([this.wireFormatLeadingByte]),t]),privateKey:r}}case"ed25519Legacy":{const{seed:e,A:t}=await lt(T.publicKey.ed25519);return{publicKey:N.concatUint8Array([new Uint8Array([this.wireFormatLeadingByte]),t]),privateKey:e}}default:return tn(this.name)}}}async function Wr(e){const t=new Jr(e),{oid:r,hash:n,cipher:i}=t,s=await t.genKeyPair();return{oid:r,Q:s.publicKey,secret:N.leftPad(s.privateKey,t.payloadSize),hash:n,cipher:i}}function Xr(e){return Zr[e.getName()].hash}async function $r(e,t,r,n){const i={[T.curve.nistP256]:!0,[T.curve.nistP384]:!0,[T.curve.nistP521]:!0,[T.curve.secp256k1]:!0,[T.curve.curve25519Legacy]:e===T.publicKey.ecdh,[T.curve.brainpoolP256r1]:!0,[T.curve.brainpoolP384r1]:!0,[T.curve.brainpoolP512r1]:!0},s=t.getName();if(!i[s])return!1;if(s===T.curve.curve25519Legacy){const e=n.slice().reverse();return!(r.length<1||64!==r[0])&&Rr(T.publicKey.x25519,r.subarray(1),e)}const a=(await N.getNobleCurve(T.publicKey.ecdsa,s)).getPublicKey(n,!1);return!!N.equalsUint8Array(a,r)}function en(e,t){const{payloadSize:r,wireFormatLeadingByte:n,name:i}=e,s=i===T.curve.curve25519Legacy||i===T.curve.ed25519Legacy?r:2*r;if(t[0]!==n||t.length!==s+1)throw Error("Invalid point encoding")}async function tn(e){const t=await N.getNobleCurve(T.publicKey.ecdsa,e),{secretKey:r}=t.keygen();return{publicKey:t.getPublicKey(r,!1),privateKey:r}}function rn(e,t){const r=V(e.x),n=V(e.y),i=new Uint8Array(r.length+n.length+1);return i[0]=t,i.set(r,1),i.set(n,r.length+1),i}function nn(e,t,r){const n=e,i=r.slice(1,n+1),s=r.slice(n+1,2*n+1);return{kty:"EC",crv:t,x:q(i),y:q(s),ext:!0}}function sn(e,t,r,n){const i=nn(e,t,r);return i.d=q(n),i}const an=N.getWebCrypto(),on=N.getNodeCrypto();async function cn(e,t,r,n,i,s){const a=new Jr(e);if(en(a,n),r&&!N.isStream(r)){const e={publicKey:n,privateKey:i};switch(a.type){case"web":try{return await async function(e,t,r,n){const i=e.payloadSize,s=sn(e.payloadSize,qr[e.name],n.publicKey,n.privateKey),a=await an.importKey("jwk",s,{name:"ECDSA",namedCurve:qr[e.name],hash:{name:T.read(T.webHash,e.hash)}},!1,["sign"]),o=new Uint8Array(await an.sign({name:"ECDSA",namedCurve:qr[e.name],hash:{name:T.read(T.webHash,t)}},a,r));return{r:o.slice(0,i),s:o.slice(i,i<<1)}}(a,t,r,e)}catch(e){if("nistP521"!==a.name&&("DataError"===e.name||"OperationError"===e.name))throw e;N.printDebugError("Browser did not support signing: "+e.message)}break;case"node":return function(e,t,r,n){const i=N.nodeRequire("eckey-utils"),s=N.getNodeBuffer(),{privateKey:a}=i.generateDer({curveName:Yr[e.name],privateKey:s.from(n)}),o=on.createSign(T.read(T.hash,t));o.write(r),o.end();const c=new Uint8Array(o.sign({key:a,format:"der",type:"sec1",dsaEncoding:"ieee-p1363"})),u=e.payloadSize;return{r:c.subarray(0,u),s:c.subarray(u,u<<1)}}(a,t,r,i)}}const o=(await N.getNobleCurve(T.publicKey.ecdsa,a.name)).sign(s,i,{lowS:!1});return{r:ge(o.r,"be",a.payloadSize),s:ge(o.s,"be",a.payloadSize)}}async function un(e,t,r,n,i,s){const a=new Jr(e);en(a,i);const o=async()=>0===s[0]&&hn(a,r,s.subarray(1),i);if(n&&!N.isStream(n))switch(a.type){case"web":try{const e=await async function(e,t,{r,s:n},i,s){const a=nn(e.payloadSize,qr[e.name],s),o=await an.importKey("jwk",a,{name:"ECDSA",namedCurve:qr[e.name],hash:{name:T.read(T.webHash,e.hash)}},!1,["verify"]),c=N.concatUint8Array([r,n]).buffer;return an.verify({name:"ECDSA",namedCurve:qr[e.name],hash:{name:T.read(T.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;N.printDebugError("Browser did not support verifying: "+e.message)}break;case"node":{const e=function(e,t,{r,s:n},i,s){const a=N.nodeRequire("eckey-utils"),o=N.getNodeBuffer(),{publicKey:c}=a.generateDer({curveName:Yr[e.name],publicKey:o.from(s)}),u=on.createVerify(T.read(T.hash,t));u.write(i),u.end();const h=N.concatUint8Array([r,n]);try{return u.verify({key:c,format:"der",type:"spki",dsaEncoding:"ieee-p1363"},h)}catch{return!1}}(a,t,r,n,i);return e||o()}}return await hn(a,r,s,i)||o()}async function hn(e,t,r,n){return(await N.getNobleCurve(T.publicKey.ecdsa,e.name)).verify(N.concatUint8Array([t.r,t.s]),r,n,{lowS:!1})}var fn=/*#__PURE__*/Object.freeze({__proto__:null,sign:cn,validateParams:async function(e,t,r){const n=new Jr(e);if(n.keyType!==T.publicKey.ecdsa)return!1;switch(n.type){case"web":case"node":{const n=de(8),i=T.hash.sha256,s=await Te(i,n);try{const a=await cn(e,i,n,t,r,s);return await un(e,i,a,n,t,s)}catch{return!1}}default:return $r(T.publicKey.ecdsa,e,t,r)}},verify:un});async function ln(e,t,r,n,i,s){if(en(new Jr(e),n),Fe(t)<Fe(T.hash.sha256))throw Error("Hash algorithm too weak for EdDSA.");const{RS:a}=await yt(T.publicKey.ed25519,t,0,n.subarray(1),i,s);return{r:a.subarray(0,32),s:a.subarray(32)}}async function yn(e,t,{r,s:n},i,s,a){if(en(new Jr(e),s),Fe(t)<Fe(T.hash.sha256))throw Error("Hash algorithm too weak for EdDSA.");const o=N.concatUint8Array([r,n]);return gt(T.publicKey.ed25519,t,{RS:o},0,s.subarray(1),a)}async function gn(e,t,r){return e.getName()===T.curve.ed25519Legacy&&(!(t.length<1||64!==t[0])&&pt(T.publicKey.ed25519,t.subarray(1),r))}var pn=/*#__PURE__*/Object.freeze({__proto__:null,sign:ln,validateParams:gn,verify:yn});function dn(e){const t=e.length;if(t>0){const r=e[t-1];if(r>=1){const n=e.subarray(t-r),i=new Uint8Array(r).fill(r);if(N.equalsUint8Array(n,i))return e.subarray(0,t-r)}}throw Error("Invalid padding")}function An(e,t,r,n){return N.concatUint8Array([t.write(),new Uint8Array([e]),r.write(),N.stringToUint8Array("Anonymous Sender    "),n])}async function wn(e,t,r,n,i=!1,s=!1){let a;if(i){for(a=0;a<t.length&&0===t[a];a++);t=t.subarray(a)}if(s){for(a=t.length-1;a>=0&&0===t[a];a--);t=t.subarray(0,a+1)}return(await Te(e,N.concatUint8Array([new Uint8Array([0,0,0,1]),t,n]))).subarray(0,r)}async function mn(e,t){switch(e.type){case"curve25519Legacy":{const{sharedSecret:r,ephemeralPublicKey:n}=await Nr(T.publicKey.x25519,t.subarray(1));return{publicKey:N.concatUint8Array([new Uint8Array([e.wireFormatLeadingByte]),n]),sharedKey:r}}case"web":if(e.web&&N.getWebCrypto())try{return await async function(e,t){const r=N.getWebCrypto(),n=nn(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),u=new Uint8Array(rn(o,e.wireFormatLeadingByte));return{publicKey:u,sharedKey:c}}(e,t)}catch(r){return N.printDebugError(r),In(e,t)}break;case"node":return function(e,t){const r=N.getNodeCrypto(),n=r.createECDH(e.node);n.generateKeys();const i=new Uint8Array(n.computeSecret(t));return{publicKey:new Uint8Array(n.getPublicKey()),sharedKey:i}}(e,t);default:return In(e,t)}}async function bn(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 Jr(e);en(a,n);const{publicKey:o,sharedKey:c}=await mn(a,n),u=An(T.publicKey.ecdh,e,t,i),{keySize:h}=Cr(t.cipher),f=await wn(t.hash,c,h,u);return{publicKey:o,wrappedKey:await Ur(t.cipher,f,s)}}async function kn(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(T.publicKey.x25519,t.subarray(1),r.subarray(1),e)}}case"web":if(e.web&&N.getWebCrypto())try{return await async function(e,t,r,n){const i=N.getWebCrypto(),s=sn(e.payloadSize,e.web,r,n);let a=i.importKey("jwk",s,{name:"ECDH",namedCurve:e.web},!0,["deriveKey","deriveBits"]);const o=nn(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 u=i.deriveBits({name:"ECDH",namedCurve:e.web,public:c},a,e.sharedSize),h=i.exportKey("jwk",a);[u,h]=await Promise.all([u,h]);const f=new Uint8Array(u);return{secretKey:V(h.d),sharedKey:f}}(e,t,r,n)}catch(r){return N.printDebugError(r),vn(e,t,n)}break;case"node":return function(e,t,r){const n=N.getNodeCrypto(),i=n.createECDH(e.node);i.setPrivateKey(r);const s=new Uint8Array(i.computeSecret(t));return{secretKey:new Uint8Array(i.getPrivateKey()),sharedKey:s}}(e,t,n);default:return vn(e,t,n)}}async function En(e,t,r,n,i,s,a){const o=new Jr(e);en(o,i),en(o,r);const{sharedKey:c}=await kn(o,r,i,s),u=An(T.publicKey.ecdh,e,t,a),{keySize:h}=Cr(t.cipher);let f;for(let e=0;e<3;e++)try{const r=await wn(t.hash,c,h,u,1===e,2===e);return dn(await Pr(t.cipher,r,n))}catch(e){f=e}throw f}async function vn(e,t,r){return{secretKey:r,sharedKey:(await N.getNobleCurve(T.publicKey.ecdh,e.name)).getSharedSecret(r,t).subarray(1)}}async function In(e,t){const r=await N.getNobleCurve(T.publicKey.ecdh,e.name),{publicKey:n,privateKey:i}=await e.genKeyPair();return{publicKey:n,sharedKey:r.getSharedSecret(i,t).subarray(1)}}var Bn=/*#__PURE__*/Object.freeze({__proto__:null,CurveWithOID:Jr,ecdh:/*#__PURE__*/Object.freeze({__proto__:null,decrypt:En,encrypt:bn,validateParams:async function(e,t,r){return $r(T.publicKey.ecdh,e,t,r)}}),ecdhX:Gr,ecdsa:fn,eddsa:bt,eddsaLegacy:pn,generate:Wr,getPreferredHashAlgo:Xr});const Sn=BigInt(0),Kn=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 Error("Invalid symmetric key")}write(){return N.concatUint8Array([new Uint8Array([this.data.length]),this.data])}}class Dn{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 ct("Cannot read KDFParams");return this.hash=e[2],this.cipher=e[3],4}write(){return new Uint8Array([3,1,this.hash,this.cipher])}}class Un{static fromObject({wrappedKey:e,algorithm:t}){const r=new Un;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=N.readExactSubarray(e,t,t+r),t+=r}write(){return N.concatUint8Array([this.algorithm?new Uint8Array([this.wrappedKey.length+1,this.algorithm]):new Uint8Array([this.wrappedKey.length]),this.wrappedKey])}}async function Pn(e,t,r,n,i){switch(e){case T.publicKey.rsaEncrypt:case T.publicKey.rsaEncryptSign:{const{n:e,e:t}=r;return{c:await _e(n,e,t)}}case T.publicKey.elgamal:{const{p:e,g:t,y:i}=r;return async function(e,t,r,n){t=ie(t),r=ie(r),n=ie(n);const i=ie(Ne(e,ye(t))),s=Ae(Xe,t-Xe);return{c1:ge(oe(r,s,t)),c2:ge(se(oe(n,s,t)*i,t))}}(n,e,t,i)}case T.publicKey.ecdh:{const{oid:e,Q:t,kdfParams:s}=r,{publicKey:a,wrappedKey:o}=await bn(e,s,n,t,i);return{V:a,C:new Cn(o)}}case T.publicKey.x25519:case T.publicKey.x448:{if(t&&!N.isAES(t))throw Error("X25519 and X448 keys can only encrypt AES session keys");const{A:i}=r,{ephemeralPublicKey:s,wrappedKey:a}=await Tr(e,n,i);return{ephemeralPublicKey:s,C:Un.fromObject({algorithm:t,wrappedKey:a})}}default:return[]}}async function xn(e,t,r,n,i,s){switch(e){case T.publicKey.rsaEncryptSign:case T.publicKey.rsaEncrypt:{const{c:e}=n,{n:i,e:a}=t,{d:o,p:c,q:u,u:h}=r;return Ye(e,i,a,o,c,u,h,s)}case T.publicKey.elgamal:{const{c1:e,c2:i}=n;return async function(e,t,r,n,i){return e=ie(e),t=ie(t),r=ie(r),Oe(ge(se(ue(oe(e,n=ie(n),r),r)*t,r),"be",ye(r)),i)}(e,i,t.p,r.x,s)}case T.publicKey.ecdh:{const{oid:e,Q:s,kdfParams:a}=t,{d:o}=r,{V:c,C:u}=n;return En(e,a,c,u.data,s,o,i)}case T.publicKey.x25519:case T.publicKey.x448:{const{A:i}=t,{k:s}=r,{ephemeralPublicKey:a,C:o}=n;if(null!==o.algorithm&&!N.isAES(o.algorithm))throw Error("AES session key expected");return Fr(e,a,o.wrappedKey,i,s)}default:throw Error("Unknown public key encryption algorithm.")}}function Qn(e,t,r){let n=0;switch(e){case T.publicKey.rsaEncrypt:case T.publicKey.rsaEncryptSign:case T.publicKey.rsaSign:{const e=N.readMPI(t.subarray(n));n+=e.length+2;const r=N.readMPI(t.subarray(n));n+=r.length+2;const i=N.readMPI(t.subarray(n));n+=i.length+2;const s=N.readMPI(t.subarray(n));return n+=s.length+2,{read:n,privateParams:{d:e,p:r,q:i,u:s}}}case T.publicKey.dsa:case T.publicKey.elgamal:{const e=N.readMPI(t.subarray(n));return n+=e.length+2,{read:n,privateParams:{x:e}}}case T.publicKey.ecdsa:case T.publicKey.ecdh:{const i=Nn(e,r.oid);let s=N.readMPI(t.subarray(n));return n+=s.length+2,s=N.leftPad(s,i),{read:n,privateParams:{d:s}}}case T.publicKey.eddsaLegacy:{const i=Nn(e,r.oid);if(r.oid.getName()!==T.curve.ed25519Legacy)throw Error("Unexpected OID for eddsaLegacy");let s=N.readMPI(t.subarray(n));return n+=s.length+2,s=N.leftPad(s,i),{read:n,privateParams:{seed:s}}}case T.publicKey.ed25519:case T.publicKey.ed448:{const r=Nn(e),i=N.readExactSubarray(t,n,n+r);return n+=i.length,{read:n,privateParams:{seed:i}}}case T.publicKey.x25519:case T.publicKey.x448:{const r=Nn(e),i=N.readExactSubarray(t,n,n+r);return n+=i.length,{read:n,privateParams:{k:i}}}default:throw new ct("Unknown public key encryption algorithm.")}}function Mn(e,t){const r=new Set([T.publicKey.ed25519,T.publicKey.x25519,T.publicKey.ed448,T.publicKey.x448]),n=Object.keys(t).map((n=>{const i=t[n];return N.isUint8Array(i)?r.has(e)?i:N.uint8ArrayToMPI(i):i.write()}));return N.concatUint8Array(n)}function Rn(e,t,r){switch(e){case T.publicKey.rsaEncrypt:case T.publicKey.rsaEncryptSign:case T.publicKey.rsaSign:return async function(e,t){if(t=BigInt(t),N.getWebCrypto()){const r={name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:ge(t),hash:{name:"SHA-1"}},n=await ze.generateKey(r,!0,["sign","verify"]);return We(await ze.exportKey("jwk",n.privateKey),t)}if(N.getNodeCrypto()){const r={modulusLength:e,publicExponent:he(t),publicKeyEncoding:{type:"pkcs1",format:"jwk"},privateKeyEncoding:{type:"pkcs1",format:"jwk"}},n=await new Promise(((e,t)=>{Ge.generateKeyPair("rsa",r,((r,n,i)=>{r?t(r):e(i)}))}));return We(n,t)}let r,n,i;do{n=me(e-(e>>1),t,40),r=me(e>>1,t,40),i=r*n}while(le(i)!==e);const s=(r-je)*(n-je);return n<r&&([r,n]=[n,r]),{n:ge(i),e:ge(t),d:ge(ue(t,s)),p:ge(r),q:ge(n),u:ge(ue(r,n))}}(t,65537).then((({n:e,e:t,d:r,p:n,q:i,u:s})=>({privateParams:{d:r,p:n,q:i,u:s},publicParams:{n:e,e:t}})));case T.publicKey.ecdsa:return Wr(r).then((({oid:e,Q:t,secret:r})=>({privateParams:{d:r},publicParams:{oid:new et(e),Q:t}})));case T.publicKey.eddsaLegacy:return Wr(r).then((({oid:e,Q:t,secret:r})=>({privateParams:{seed:r},publicParams:{oid:new et(e),Q:t}})));case T.publicKey.ecdh:return Wr(r).then((({oid:e,Q:t,secret:r,hash:n,cipher:i})=>({privateParams:{d:r},publicParams:{oid:new et(e),Q:t,kdfParams:new Dn({hash:n,cipher:i})}})));case T.publicKey.ed25519:case T.publicKey.ed448:return lt(e).then((({A:e,seed:t})=>({privateParams:{seed:t},publicParams:{A:e}})));case T.publicKey.x25519:case T.publicKey.x448:return Mr(e).then((({A:e,k:t})=>({privateParams:{k:t},publicParams:{A:e}})));case T.publicKey.dsa:case T.publicKey.elgamal:throw Error("Unsupported algorithm for key generation.");default:throw Error("Unknown public key algorithm.")}}async function Tn(e,t,r){if(!t||!r)throw Error("Missing key parameters");switch(e){case T.publicKey.rsaEncrypt:case T.publicKey.rsaEncryptSign:case T.publicKey.rsaSign:{const{n:e,e:n}=t,{d:i,p:s,q:a,u:o}=r;return async function(e,t,r,n,i,s){if(e=ie(e),(n=ie(n))*(i=ie(i))!==e)return!1;const a=BigInt(2);if(se(n*(s=ie(s)),i)!==BigInt(1))return!1;t=ie(t),r=ie(r);const o=Ae(a,a<<BigInt(Math.floor(le(e)/3))),c=o*r*t;return!(se(c,n-je)!==o||se(c,i-je)!==o)}(e,n,i,s,a,o)}case T.publicKey.dsa:{const{p:e,q:n,g:i,y:s}=t,{x:a}=r;return async function(e,t,r,n,i){const s=ie(e),a=ie(t),o=ie(r),c=ie(n);if(o<=Kn||o>=s)return!1;if(se(s-Kn,a)!==Sn)return!1;if(oe(o,a,s)!==Kn)return!1;const u=BigInt(le(a));if(u<BigInt(150)||!be(a,null,32))return!1;const h=ie(i),f=BigInt(2);return c===oe(o,a*Ae(f<<u-Kn,f<<u)+h,s)}(e,n,i,s,a)}case T.publicKey.elgamal:{const{p:e,g:n,y:i}=t,{x:s}=r;return async function(e,t,r,n){const i=ie(e),s=ie(t),a=ie(r);if(s<=Xe||s>=i)return!1;const o=BigInt(le(i));if(o<BigInt(1023))return!1;if(oe(s,i-Xe,i)!==Xe)return!1;let c=s,u=BigInt(1);const h=BigInt(2),f=h<<BigInt(17);for(;u<f;){if(c=se(c*s,i),c===Xe)return!1;u++}const l=ie(n),y=Ae(h<<o-Xe,h<<o);return a===oe(s,(i-Xe)*y+l,i)}(e,n,i,s)}case T.publicKey.ecdsa:case T.publicKey.ecdh:{const n=Bn[T.read(T.publicKey,e)],{oid:i,Q:s}=t,{d:a}=r;return n.validateParams(i,s,a)}case T.publicKey.eddsaLegacy:{const{Q:e,oid:n}=t,{seed:i}=r;return gn(n,e,i)}case T.publicKey.ed25519:case T.publicKey.ed448:{const{A:n}=t,{seed:i}=r;return pt(e,n,i)}case T.publicKey.x25519:case T.publicKey.x448:{const{A:n}=t,{k:i}=r;return Rr(e,n,i)}default:throw Error("Unknown public key algorithm.")}}function Fn(e){const{keySize:t}=Cr(e);return de(t)}function Ln(e){try{e.getName()}catch{throw new ct("Unknown curve OID")}}function Nn(e,t){switch(e){case T.publicKey.ecdsa:case T.publicKey.ecdh:case T.publicKey.eddsaLegacy:return new Jr(t).payloadSize;case T.publicKey.ed25519:case T.publicKey.ed448:return dt(e);case T.publicKey.x25519:case T.publicKey.x448:return Lr(e);default:throw Error("Unknown elliptic algo")}}const On=N.getWebCrypto(),Hn=N.getNodeCrypto(),zn=Hn?Hn.getCiphers():[],Gn={idea:zn.includes("idea-cfb")?"idea-cfb":void 0,tripledes:zn.includes("des-ede3-cfb")?"des-ede3-cfb":void 0,cast5:zn.includes("cast5-cfb")?"cast5-cfb":void 0,blowfish:zn.includes("bf-cfb")?"bf-cfb":void 0,aes128:zn.includes("aes-128-cfb")?"aes-128-cfb":void 0,aes192:zn.includes("aes-192-cfb")?"aes-192-cfb":void 0,aes256:zn.includes("aes-256-cfb")?"aes-256-cfb":void 0};function jn(e){const{blockSize:t}=Cr(e),r=de(t),n=new Uint8Array([r[r.length-2],r[r.length-1]]);return N.concat([r,n])}async function Vn(e,t,r,n,i){const s=T.read(T.symmetric,e);if(N.getNodeCrypto()&&Gn[s])return function(e,t,r,n){const i=T.read(T.symmetric,e),s=new Hn.createCipheriv(Gn[i],t,n);return k(r,(e=>new Uint8Array(s.update(e))))}(e,t,r,n);if(N.isAES(e))return async function(e,t,r,n){if(On&&await _n.isSupported(e)){const i=new _n(e,t,n);return N.isStream(r)?E(r,(e=>i.encryptChunk(e)),(()=>i.finish())):i.encrypt(r)}if(N.isStream(r)){const i=new Yn(!0,e,t,n);return E(r,(e=>i.processChunk(e)),(()=>i.finish()))}return pr(t,n).encrypt(r)}(e,t,r,n);const a=new(await Br(e))(t),o=a.blockSize,c=n.slice();let u=new Uint8Array;const h=e=>{e&&(u=N.concatUint8Array([u,e]));const t=new Uint8Array(u.length);let r,n=0;for(;e?u.length>=o:u.length;){const e=a.encrypt(c);for(r=0;r<o;r++)c[r]=u[r]^e[r],t[n++]=c[r];u=u.subarray(o)}return t.subarray(0,n)};return k(r,h,h)}async function qn(e,t,r,n){const i=T.read(T.symmetric,e);if(Hn&&Gn[i])return function(e,t,r,n){const i=T.read(T.symmetric,e),s=new Hn.createDecipheriv(Gn[i],t,n);return k(r,(e=>new Uint8Array(s.update(e))))}(e,t,r,n);if(N.isAES(e))return function(e,t,r,n){if(N.isStream(r)){const i=new Yn(!1,e,t,n);return E(r,(e=>i.processChunk(e)),(()=>i.finish()))}return pr(t,n).decrypt(r)}(e,t,r,n);const s=new(await Br(e))(t),a=s.blockSize;let o=n,c=new Uint8Array;const u=e=>{e&&(c=N.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<a;r++)t[n++]=o[r]^e[r];c=c.subarray(a)}return t.subarray(0,n)};return k(r,u,u)}class _n{constructor(e,t,r){const{blockSize:n}=Cr(e);this.key=t,this.iv=r,this.prevBlock=r.slice(),this.nextBlock=new Uint8Array(n),this.i=0,this.blockSize=n,this.zeroBlock=new Uint8Array(this.blockSize)}static isSupported(e){const{keySize:t}=Cr(e);return On.importKey("raw",new Uint8Array(t),"aes-cbc",!1,["encrypt"]).then((()=>!0),(()=>!1))}async _runCBC(e,t){const r="AES-CBC";this.keyRef=this.keyRef||await On.importKey("raw",this.key,r,!1,["encrypt"]);const n=await On.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=N.concatUint8Array([this.nextBlock,e.subarray(t,e.length-r)]),i=N.concatUint8Array([this.prevBlock,n.subarray(0,n.length-this.blockSize)]),s=await this._runCBC(i);return Zn(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),Zn(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);Zn(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(N.concatUint8Array([new Uint8Array(this.blockSize),e]),this.iv)).subarray(0,e.length);return Zn(t,e),this.clearSensitiveData(),t}}class Yn{constructor(e,t,r,n){this.forEncryption=e;const{blockSize:i}=Cr(t);this.key=Ir.expandKeyLE(r),n.byteOffset%4!=0&&(n=n.slice()),this.prevBlock=Jn(n),this.nextBlock=new Uint8Array(i),this.i=0,this.blockSize=i}_runCFB(e){const t=Jn(e),r=new Uint8Array(e.length),n=Jn(r);for(let e=0;e+4<=n.length;e+=4){const{s0:r,s1:i,s2:s,s3:a}=Ir.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=N.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;if(0===this.i)e=new Uint8Array;else{e=this._runCFB(this.nextBlock).subarray(0,this.i)}return this.clearSensitiveData(),e}clearSensitiveData(){this.nextBlock.fill(0),this.prevBlock.fill(0),this.key.fill(0)}}function Zn(e,t){const r=Math.min(e.length,t.length);for(let n=0;n<r;n++)e[n]=e[n]^t[n]}const Jn=e=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4));const Wn=N.getWebCrypto(),Xn=N.getNodeCrypto(),$n=16;function ei(e,t){const r=e.length-$n;for(let n=0;n<$n;n++)e[n+r]^=t[n];return e}const ti=new Uint8Array($n);async function ri(e){const t=await ni(e),r=N.double(await t(ti)),n=N.double(r);return async function(e){return(await t(function(e,t,r){if(e.length&&e.length%$n==0)return ei(e,t);const n=new Uint8Array(e.length+($n-e.length%$n));return n.set(e),n[e.length]=128,ei(n,r)}(e,r,n))).subarray(-16)}}async function ni(e){if(N.getNodeCrypto())return async function(t){const r=new Xn.createCipheriv("aes-"+8*e.length+"-cbc",e,ti).update(t);return new Uint8Array(r)};if(N.getWebCrypto())try{return e=await Wn.importKey("raw",e,{name:"AES-CBC",length:8*e.length},!1,["encrypt"]),async function(t){const r=await Wn.encrypt({name:"AES-CBC",iv:ti,length:128},e,t);return new Uint8Array(r).subarray(0,r.byteLength-$n)}}catch(t){if("NotSupportedError"!==t.name&&(24!==e.length||"OperationError"!==t.name))throw t;N.printDebugError("Browser did not support operation: "+t.message)}return async function(t){return gr(e,ti,{disablePadding:!0}).encrypt(t)}}const ii=N.getWebCrypto(),si=N.getNodeCrypto(),ai=N.getNodeBuffer(),oi=16,ci=oi,ui=new Uint8Array(oi),hi=new Uint8Array(oi);hi[15]=1;const fi=new Uint8Array(oi);async function li(e){const t=await ri(e);return function(e,r){return t(N.concatUint8Array([e,r]))}}async function yi(e){if(N.getNodeCrypto())return async function(t,r){const n=new si.createCipheriv("aes-"+8*e.length+"-ctr",e,r),i=ai.concat([n.update(t),n.final()]);return new Uint8Array(i)};if(N.getWebCrypto())try{const t=await ii.importKey("raw",e,{name:"AES-CTR",length:8*e.length},!1,["encrypt"]);return async function(e,r){const n=await ii.encrypt({name:"AES-CTR",counter:r,length:128},t,e);return new Uint8Array(n)}}catch(t){if("NotSupportedError"!==t.name&&(24!==e.length||"OperationError"!==t.name))throw t;N.printDebugError("Browser did not support operation: "+t.message)}return async function(t,r){return yr(e,r).encrypt(t)}}async function gi(e,t){if(e!==T.symmetric.aes128&&e!==T.symmetric.aes192&&e!==T.symmetric.aes256)throw Error("EAX mode supports only AES cipher");const[r,n]=await Promise.all([li(t),yi(t)]);return{encrypt:async function(e,t,i){const[s,a]=await Promise.all([r(ui,t),r(hi,i)]),o=await n(e,s),c=await r(fi,o);for(let e=0;e<ci;e++)c[e]^=a[e]^s[e];return N.concatUint8Array([o,c])},decrypt:async function(e,t,i){if(e.length<ci)throw Error("Invalid EAX ciphertext");const s=e.subarray(0,-16),a=e.subarray(-16),[o,c,u]=await Promise.all([r(ui,t),r(hi,i),r(fi,s)]),h=u;for(let e=0;e<ci;e++)h[e]^=c[e]^o[e];if(!N.timingSafeEqualsUint8Array(a,h))throw Error("Authentication tag mismatch");return await n(s,o)}}}fi[15]=2,gi.getNonce=function(e,t){const r=e.slice();for(let e=0;e<t.length;e++)r[8+e]^=t[e];return r},gi.blockLength=oi,gi.ivLength=16,gi.tagLength=ci;const pi=16,di=16;function Ai(e){let t=0;for(let r=1;!(e&r);r<<=1)t++;return t}function wi(e,t){for(let r=0;r<e.length;r++)e[r]^=t[r];return e}function mi(e,t){return wi(e.slice(),t)}const bi=new Uint8Array(pi),ki=new Uint8Array([1]);async function Ei(e,t){const{keySize:r}=Cr(e);if(!N.isAES(e)||t.length!==r)throw Error("Unexpected algorithm or key size");let n=0;const i=e=>gr(t,bi,{disablePadding:!0}).encrypt(e),s=e=>gr(t,bi,{disablePadding:!0}).decrypt(e);let a;function o(e,t,r,s){const o=t.length/pi|0;!function(e,t){const r=N.nbits(Math.max(e.length,t.length)/pi|0)-1;for(let e=n+1;e<=r;e++)a[e]=N.double(a[e-1]);n=r}(t,s);const c=N.concatUint8Array([bi.subarray(0,15-r.length),ki,r]),u=63&c[15];c[15]&=192;const h=i(c),f=N.concatUint8Array([h,mi(h.subarray(0,8),h.subarray(1,9))]),l=N.shiftRight(f.subarray(0+(u>>3),17+(u>>3)),8-(7&u)).subarray(1),y=new Uint8Array(pi),g=new Uint8Array(t.length+di);let p,d=0;for(p=0;p<o;p++)wi(l,a[Ai(p+1)]),g.set(wi(e(mi(l,t)),l),d),wi(y,e===i?t:g.subarray(d)),t=t.subarray(pi),d+=pi;if(t.length){wi(l,a.x);const r=i(l);g.set(mi(t,r),d);const n=new Uint8Array(pi);n.set(e===i?t:g.subarray(d,-16),0),n[t.length]=128,wi(y,n),d+=t.length}const A=wi(i(wi(wi(y,l),a.$)),function(e){if(!e.length)return bi;const t=e.length/pi|0,r=new Uint8Array(pi),n=new Uint8Array(pi);for(let s=0;s<t;s++)wi(r,a[Ai(s+1)]),wi(n,i(mi(r,e))),e=e.subarray(pi);if(e.length){wi(r,a.x);const t=new Uint8Array(pi);t.set(e,0),t[e.length]=128,wi(t,r),wi(n,i(t))}return n}(s));return g.set(A,d),g}return function(){const e=i(bi),t=N.double(e);a=[],a[0]=N.double(t),a.x=e,a.$=t}(),{encrypt:async function(e,t,r){return o(i,e,t,r)},decrypt:async function(e,t,r){if(e.length<di)throw Error("Invalid OCB ciphertext");const n=e.subarray(-16);e=e.subarray(0,-16);const i=o(s,e,t,r);if(N.timingSafeEqualsUint8Array(n,i.subarray(-16)))return i.subarray(0,-16);throw Error("Authentication tag mismatch")}}}Ei.getNonce=function(e,t){const r=e.slice();for(let e=0;e<t.length;e++)r[7+e]^=t[e];return r},Ei.blockLength=pi,Ei.ivLength=15,Ei.tagLength=di;const vi=N.getWebCrypto(),Ii=N.getNodeCrypto(),Bi=N.getNodeBuffer(),Si=16,Ki="AES-GCM";async function Ci(e,t){if(e!==T.symmetric.aes128&&e!==T.symmetric.aes192&&e!==T.symmetric.aes256)throw Error("GCM mode supports only AES cipher");if(N.getNodeCrypto())return{encrypt:async function(e,r,n=new Uint8Array){const i=new Ii.createCipheriv("aes-"+8*t.length+"-gcm",t,r);i.setAAD(n);const s=Bi.concat([i.update(e),i.final(),i.getAuthTag()]);return new Uint8Array(s)},decrypt:async function(e,r,n=new Uint8Array){const i=new Ii.createDecipheriv("aes-"+8*t.length+"-gcm",t,r);i.setAAD(n),i.setAuthTag(e.slice(e.length-Si,e.length));const s=Bi.concat([i.update(e.slice(0,e.length-Si)),i.final()]);return new Uint8Array(s)}};if(N.getWebCrypto())try{const e=await vi.importKey("raw",t,{name:Ki},!1,["encrypt","decrypt"]),r=navigator.userAgent.match(/Version\/13\.\d(\.\d)* Safari/)||navigator.userAgent.match(/Version\/(13|14)\.\d(\.\d)* Mobile\/\S* Safari/);return{encrypt:async function(n,i,s=new Uint8Array){if(r&&!n.length)return Ar(t,i,s).encrypt(n);const a=await vi.encrypt({name:Ki,iv:i,additionalData:s,tagLength:128},e,n);return new Uint8Array(a)},decrypt:async function(n,i,s=new Uint8Array){if(r&&n.length===Si)return Ar(t,i,s).decrypt(n);try{const t=await vi.decrypt({name:Ki,iv:i,additionalData:s,tagLength:128},e,n);return new Uint8Array(t)}catch(e){if("OperationError"===e.name)throw Error("Authentication tag mismatch")}}}}catch(e){if("NotSupportedError"!==e.name&&(24!==t.length||"OperationError"!==e.name))throw e;N.printDebugError("Browser did not support operation: "+e.message)}return{encrypt:async function(e,r,n){return Ar(t,r,n).encrypt(e)},decrypt:async function(e,r,n){return Ar(t,r,n).decrypt(e)}}}function Di(e,t=!1){switch(e){case T.aead.eax:return gi;case T.aead.ocb:return Ei;case T.aead.gcm:return Ci;case T.aead.experimentalGCM:if(!t)throw Error("Unexpected non-standard `experimentalGCM` AEAD algorithm provided in `config.preferredAEADAlgorithm`: use `gcm` instead");return Ci;default:throw Error("Unsupported AEAD mode")}}async function Ui(e,t,r,n,i,s){switch(e){case T.publicKey.rsaEncryptSign:case T.publicKey.rsaEncrypt:case T.publicKey.rsaSign:{const{n:e,e:a}=n;return qe(t,i,N.leftPad(r.s,e.length),e,a,s)}case T.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=ie(t),r=ie(r),s=ie(s),a=ie(a),i=ie(i),o=ie(o),t<=Sn||t>=a||r<=Sn||r>=a)return N.printDebug("invalid DSA Signature"),!1;const c=se(ie(n.subarray(0,ye(a))),a),u=ue(r,a);if(u===Sn)return N.printDebug("invalid DSA Signature"),!1;i=se(i,s),o=se(o,s);const h=se(c*u,a),f=se(t*u,a);return se(se(oe(i,h,s)*oe(o,f,s),s),a)===t}(0,o,c,s,e,t,i,a)}case T.publicKey.ecdsa:{const{oid:e,Q:a}=n,o=new Jr(e).payloadSize;return un(e,t,{r:N.leftPad(r.r,o),s:N.leftPad(r.s,o)},i,a,s)}case T.publicKey.eddsaLegacy:{const{oid:e,Q:i}=n,a=new Jr(e).payloadSize;return yn(e,t,{r:N.leftPad(r.r,a),s:N.leftPad(r.s,a)},0,i,s)}case T.publicKey.ed25519:case T.publicKey.ed448:{const{A:i}=n;return gt(e,t,r,0,i,s)}default:throw Error("Unknown signature algorithm.")}}async function Pi(e,t,r,n,i,s){if(!r||!n)throw Error("Missing key parameters");switch(e){case T.publicKey.rsaEncryptSign:case T.publicKey.rsaEncrypt:case T.publicKey.rsaSign:{const{n:e,e:a}=r,{d:o,p:c,q:u,u:h}=n;return{s:await Ve(t,i,e,a,o,c,u,h,s)}}case T.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,u,h;n=ie(n),i=ie(i),r=ie(r),s=ie(s),r=se(r,n),s=se(s,i);const f=se(ie(t.subarray(0,ye(i))),i);for(;;){if(o=Ae(Kn,i),c=se(oe(r,o,n),i),c===a)continue;const e=se(s*c,i);if(h=se(f+e,i),u=se(ue(o,i)*h,i),u!==a)break}return{r:ge(c,"be",ye(n)),s:ge(u,"be",ye(n))}}(0,s,e,t,i,a)}case T.publicKey.elgamal:throw Error("Signing with Elgamal is not defined in the OpenPGP standard.");case T.publicKey.ecdsa:{const{oid:e,Q:a}=r,{d:o}=n;return cn(e,t,i,a,o,s)}case T.publicKey.eddsaLegacy:{const{oid:e,Q:i}=r,{seed:a}=n;return ln(e,t,0,i,a,s)}case T.publicKey.ed25519:case T.publicKey.ed448:{const{A:i}=r,{seed:a}=n;return yt(e,t,0,i,a,s)}default:throw Error("Unknown signature algorithm.")}}Ci.getNonce=function(e,t){const r=e.slice();for(let e=0;e<t.length;e++)r[4+e]^=t[e];return r},Ci.blockLength=16,Ci.ivLength=12,Ci.tagLength=Si;class xi extends Error{constructor(...e){super(...e),Error.captureStackTrace&&Error.captureStackTrace(this,xi),this.name="Argon2OutOfMemoryError"}}let Qi,Mi;class Ri{constructor(e=F){const{passes:t,parallelism:r,memoryExponent:n}=e.s2kArgon2Params;this.type="argon2",this.salt=null,this.t=t,this.p=r,this.encodedM=n}generateSalt(){this.salt=de(16)}read(e){let t=0;return this.salt=e.subarray(t,t+16),t+=16,this.t=e[t++],this.p=e[t++],this.encodedM=e[t++],t}write(){const e=[new Uint8Array([T.write(T.s2k,this.type)]),this.salt,new Uint8Array([this.t,this.p,this.encodedM])];return N.concatUint8Array(e)}async produceKey(e,t,r){if(r.maxArgon2MemoryExponent>30)throw new xi("'config.maxArgon2MemoryExponent' exceeds the max allowed value of 30");if(this.encodedM>r.maxArgon2MemoryExponent)throw new xi("Argon2 required memory exceeds `config.maxArgon2MemoryExponent`");const n=1<<this.encodedM;try{Qi=Qi||(await Promise.resolve().then((function(){return By}))).default,Mi=Mi||Qi();const r=await Mi,i=r({version:19,type:2,password:N.encodeUTF8(e),salt:this.salt,tagLength:t,memorySize:n,parallelism:this.p,passes:this.t});return n>1048576&&(Mi=Qi(),Mi.catch((()=>{}))),i}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 xi("Could not allocate required memory for Argon2"):e}}}class Ti{constructor(e,t=F){this.algorithm=T.hash.sha256,this.type=T.read(T.s2k,e),this.c=t.s2kIterationCountByte,this.salt=null}generateSalt(){switch(this.type){case"salted":case"iterated":this.salt=de(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"!==N.uint8ArrayToString(e.subarray(t,t+3)))throw new ct("Unknown s2k type.");t+=3;if(1001!==1e3+e[t++])throw new ct("Unknown s2k gnu protection mode.");this.type="gnu-dummy";break;default:throw new ct("Unknown s2k type.")}return t}write(){if("gnu-dummy"===this.type)return new Uint8Array([101,0,...N.stringToUint8Array("GNU"),1]);const e=[new Uint8Array([T.write(T.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 Error("GNU s2k type not supported.");default:throw Error("Unknown s2k type.")}return N.concatUint8Array(e)}async produceKey(e,t,r){e=N.encodeUTF8(e);const n=[];let i=0,s=0;for(;i<t;){let t;switch(this.type){case"simple":t=N.concatUint8Array([new Uint8Array(s),e]);break;case"salted":t=N.concatUint8Array([new Uint8Array(s),this.salt,e]);break;case"iterated":{const r=N.concatUint8Array([this.salt,e]);let n=r.length;const i=Math.max(this.getCount(),n);t=new Uint8Array(s+i),t.set(r,s);for(let e=s+n;e<i;e+=n,n*=2)t.copyWithin(e,s,e);break}case"gnu":throw Error("GNU s2k type not supported.");default:throw Error("Unknown s2k type.")}const r=await Te(this.algorithm,t);n.push(r),i+=r.length,s++}return N.concatUint8Array(n).subarray(0,t)}}const Fi=new Set([T.s2k.argon2,T.s2k.iterated]);function Li(e,t=F){switch(e){case T.s2k.argon2:return new Ri(t);case T.s2k.iterated:case T.s2k.gnu:case T.s2k.salted:case T.s2k.simple:return new Ti(e,t);default:throw new ct("Unsupported S2K type")}}function Ni(e){const{s2kType:t}=e;if(!Fi.has(t))throw Error("The provided `config.s2kType` value is not allowed");return Li(t,e)}var Oi=Uint8Array,Hi=Uint16Array,zi=Int32Array,Gi=new Oi([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),ji=new Oi([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Vi=new Oi([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),qi=function(e,t){for(var r=new Hi(31),n=0;n<31;++n)r[n]=t+=1<<e[n-1];var i=new zi(r[30]);for(n=1;n<30;++n)for(var s=r[n];s<r[n+1];++s)i[s]=s-r[n]<<5|n;return{b:r,r:i}},_i=qi(Gi,2),Yi=_i.b,Zi=_i.r;Yi[28]=258,Zi[258]=28;for(var Ji=qi(ji,0),Wi=Ji.b,Xi=Ji.r,$i=new Hi(32768),es=0;es<32768;++es){var ts=(43690&es)>>1|(21845&es)<<1;ts=(61680&(ts=(52428&ts)>>2|(13107&ts)<<2))>>4|(3855&ts)<<4,$i[es]=((65280&ts)>>8|(255&ts)<<8)>>1}var rs=function(e,t,r){for(var n=e.length,i=0,s=new Hi(t);i<n;++i)e[i]&&++s[e[i]-1];var a,o=new Hi(t);for(i=1;i<t;++i)o[i]=o[i-1]+s[i-1]<<1;if(r){a=new Hi(1<<t);var c=15-t;for(i=0;i<n;++i)if(e[i])for(var u=i<<4|e[i],h=t-e[i],f=o[e[i]-1]++<<h,l=f|(1<<h)-1;f<=l;++f)a[$i[f]>>c]=u}else for(a=new Hi(n),i=0;i<n;++i)e[i]&&(a[i]=$i[o[e[i]-1]++]>>15-e[i]);return a},ns=new Oi(288);for(es=0;es<144;++es)ns[es]=8;for(es=144;es<256;++es)ns[es]=9;for(es=256;es<280;++es)ns[es]=7;for(es=280;es<288;++es)ns[es]=8;var is=new Oi(32);for(es=0;es<32;++es)is[es]=5;var ss=/*#__PURE__*/rs(ns,9,0),as=/*#__PURE__*/rs(ns,9,1),os=/*#__PURE__*/rs(is,5,0),cs=/*#__PURE__*/rs(is,5,1),us=function(e){for(var t=e[0],r=1;r<e.length;++r)e[r]>t&&(t=e[r]);return t},hs=function(e,t,r){var n=t/8|0;return(e[n]|e[n+1]<<8)>>(7&t)&r},fs=function(e,t){var r=t/8|0;return(e[r]|e[r+1]<<8|e[r+2]<<16)>>(7&t)},ls=function(e){return(e+7)/8|0},ys=function(e,t,r){return(null==t||t<0)&&(t=0),(null==r||r>e.length)&&(r=e.length),new Oi(e.subarray(t,r))},gs=["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"],ps=function(e,t,r){var n=Error(t||gs[e]);if(n.code=e,Error.captureStackTrace&&Error.captureStackTrace(n,ps),!r)throw n;return n},ds=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},ws=function(e,t){for(var r=[],n=0;n<e.length;++n)e[n]&&r.push({s:n,f:e[n]});var i=r.length,s=r.slice();if(!i)return{t:Bs,l:0};if(1==i){var a=new Oi(r[0].s+1);return a[r[0].s]=1,{t:a,l:1}}r.sort((function(e,t){return e.f-t.f})),r.push({s:-1,f:25001});var o=r[0],c=r[1],u=0,h=1,f=2;for(r[0]={s:-1,f:o.f+c.f,l:o,r:c};h!=i-1;)o=r[r[u].f<r[f].f?u++:f++],c=r[u!=h&&r[u].f<r[f].f?u++:f++],r[h++]={s:-1,f:o.f+c.f,l:o,r:c};var l=s[0].s;for(n=1;n<i;++n)s[n].s>l&&(l=s[n].s);var y=new Hi(l+1),g=ms(r[h-1],y,0);if(g>t){n=0;var p=0,d=g-t,A=1<<d;for(s.sort((function(e,t){return y[t.s]-y[e.s]||e.f-t.f}));n<i;++n){var w=s[n].s;if(!(y[w]>t))break;p+=A-(1<<g-y[w]),y[w]=t}for(p>>=d;p>0;){var m=s[n].s;y[m]<t?p-=1<<t-y[m]++-1:++n}for(;n>=0&&p;--n){var b=s[n].s;y[b]==t&&(--y[b],++p)}g=t}return{t:new Oi(y),l:g}},ms=function(e,t,r){return-1==e.s?Math.max(ms(e.l,t,r+1),ms(e.r,t,r+1)):t[e.s]=r},bs=function(e){for(var t=e.length;t&&!e[--t];);for(var r=new Hi(++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}},ks=function(e,t){for(var r=0,n=0;n<t.length;++n)r+=e[n]*t[n];return r},Es=function(e,t,r){var n=r.length,i=ls(t+2);e[i]=255&n,e[i+1]=n>>8,e[i+2]=255^e[i],e[i+3]=255^e[i+1];for(var s=0;s<n;++s)e[i+s+4]=r[s];return 8*(i+4+n)},vs=function(e,t,r,n,i,s,a,o,c,u,h){ds(t,h++,r),++i[256];for(var f=ws(i,15),l=f.t,y=f.l,g=ws(s,15),p=g.t,d=g.l,A=bs(l),w=A.c,m=A.n,b=bs(p),k=b.c,E=b.n,v=new Hi(19),I=0;I<w.length;++I)++v[31&w[I]];for(I=0;I<k.length;++I)++v[31&k[I]];for(var B=ws(v,7),S=B.t,K=B.l,C=19;C>4&&!S[Vi[C-1]];--C);var D,U,P,x,Q=u+5<<3,M=ks(i,ns)+ks(s,is)+a,R=ks(i,l)+ks(s,p)+a+14+3*C+ks(v,S)+2*v[16]+3*v[17]+7*v[18];if(c>=0&&Q<=M&&Q<=R)return Es(t,h,e.subarray(c,c+u));if(ds(t,h,1+(R<M)),h+=2,R<M){D=rs(l,y,0),U=l,P=rs(p,d,0),x=p;var T=rs(S,K,0);ds(t,h,m-257),ds(t,h+5,E-1),ds(t,h+10,C-4),h+=14;for(I=0;I<C;++I)ds(t,h+3*I,S[Vi[I]]);h+=3*C;for(var F=[w,k],L=0;L<2;++L){var N=F[L];for(I=0;I<N.length;++I){var O=31&N[I];ds(t,h,T[O]),h+=S[O],O>15&&(ds(t,h,N[I]>>5&127),h+=N[I]>>12)}}}else D=ss,U=ns,P=os,x=is;for(I=0;I<o;++I){var H=n[I];if(H>255){As(t,h,D[(O=H>>18&31)+257]),h+=U[O+257],O>7&&(ds(t,h,H>>23&31),h+=Gi[O]);var z=31&H;As(t,h,P[z]),h+=x[z],z>3&&(As(t,h,H>>5&8191),h+=ji[z])}else As(t,h,D[H]),h+=U[H]}return As(t,h,D[256]),h+U[256]},Is=/*#__PURE__*/new zi([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),Bs=/*#__PURE__*/new Oi(0),Ss=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<o;++a)i+=n+=r[a];n=(65535&n)+15*(n>>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}}},Ks=function(e,t,r,n,i){if(!i&&(i={l:1},t.dictionary)){var s=t.dictionary.subarray(-32768),a=new Oi(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 Oi(n+a+5*(1+Math.ceil(a/7e3))+i),c=o.subarray(n,o.length-i),u=s.l,h=7&(s.r||0);if(t){h&&(c[0]=s.r>>3);for(var f=Is[t-1],l=f>>13,y=8191&f,g=(1<<r)-1,p=s.p||new Hi(32768),d=s.h||new Hi(g+1),A=Math.ceil(r/3),w=2*A,m=function(t){return(e[t]^e[t+1]<<A^e[t+2]<<w)&g},b=new zi(25e3),k=new Hi(288),E=new Hi(32),v=0,I=0,B=s.i||0,S=0,K=s.w||0,C=0;B+2<a;++B){var D=m(B),U=32767&B,P=d[D];if(p[U]=P,d[D]=U,K<=B){var x=a-B;if((v>7e3||S>24576)&&(x>423||!u)){h=vs(e,c,0,b,k,E,I,S,C,B-C,h),S=v=I=0,C=B;for(var Q=0;Q<286;++Q)k[Q]=0;for(Q=0;Q<30;++Q)E[Q]=0}var M=2,R=0,T=y,F=U-P&32767;if(x>2&&D==m(B-F))for(var L=Math.min(l,x)-1,N=Math.min(32767,B),O=Math.min(258,x);F<=N&&--T&&U!=P;){if(e[B+M]==e[B+M-F]){for(var H=0;H<O&&e[B+H]==e[B+H-F];++H);if(H>M){if(M=H,R=F,H>L)break;var z=Math.min(F,H-2),G=0;for(Q=0;Q<z;++Q){var j=B-F+Q&32767,V=j-p[j]&32767;V>G&&(G=V,P=j)}}}F+=(U=P)-(P=p[U])&32767}if(R){b[S++]=268435456|Zi[M]<<18|Xi[R];var q=31&Zi[M],_=31&Xi[R];I+=Gi[q]+ji[_],++k[257+q],++E[_],K=B+M,++v}else b[S++]=e[B],++k[e[B]]}}for(B=Math.max(B,K);B<a;++B)b[S++]=e[B],++k[e[B]];h=vs(e,c,u,b,k,E,I,S,C,B-C,h),u||(s.r=7&h|c[h/8|0]<<3,h-=7,s.h=d,s.p=p,s.i=B,s.w=K)}else{for(B=s.w||0;B<a+u;B+=65535){var Y=B+65535;Y>=a&&(c[h/8|0]=u,Y=a),h=Es(c,h+1,e.subarray(B,Y))}s.i=a}return ys(o,0,n+ls(h)+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)},Cs=function(e,t,r){for(;r;++t)e[t]=r,r>>>=8},Ds=/*#__PURE__*/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 Oi(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(Ks(e,this.o,0,0,this.s),t)},e.prototype.push=function(e,t){this.ondata||ps(5),this.s.l&&ps(4);var r=e.length+this.s.z;if(r>this.b.length){if(r>2*this.b.length-32768){var n=new Oi(-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),t&&(this.s=this.o={},this.b=Bs)},e.prototype.flush=function(e){if(this.ondata||ps(5),this.s.l&&ps(4),this.p(this.b,!1),this.s.w=this.s.i,this.s.i-=2,e){var t=new Oi(6);t[0]=this.s.r>>3;var r=Es(t,this.s.r,Bs);this.s.r=0,this.ondata(t.subarray(0,r>>3),!1)}},e}(),Us=/*#__PURE__*/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 Oi(32768),this.p=new Oi(0),r&&this.o.set(r)}return e.prototype.e=function(e){if(this.ondata||ps(5),this.d&&ps(4),this.p.length){if(e.length){var t=new Oi(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,n){var i=e.length;if(!i||t.f&&!t.l)return r||new Oi(0);var s=!r,a=s||2!=t.i,o=t.i;s&&(r=new Oi(3*i));var c=function(e){var t=r.length;if(e>t){var n=new Oi(Math.max(2*t,e));n.set(r),r=n}},u=t.f||0,h=t.p||0,f=t.b||0,l=t.l,y=t.d,g=t.m,p=t.n,d=8*i;do{if(!l){u=hs(e,h,1);var A=hs(e,h+1,3);if(h+=3,!A){var w=e[(D=ls(h)+4)-4]|e[D-3]<<8,m=D+w;if(m>i){o&&ps(0);break}a&&c(f+w),r.set(e.subarray(D,m),f),t.b=f+=w,t.p=h=8*m,t.f=u;continue}if(1==A)l=as,y=cs,g=9,p=5;else if(2==A){var b=hs(e,h,31)+257,k=hs(e,h+10,15)+4,E=b+hs(e,h+5,31)+1;h+=14;for(var v=new Oi(E),I=new Oi(19),B=0;B<k;++B)I[Vi[B]]=hs(e,h+3*B,7);h+=3*k;var S=us(I),K=(1<<S)-1,C=rs(I,S,1);for(B=0;B<E;){var D,U=C[hs(e,h,K)];if(h+=15&U,(D=U>>4)<16)v[B++]=D;else{var P=0,x=0;for(16==D?(x=3+hs(e,h,3),h+=2,P=v[B-1]):17==D?(x=3+hs(e,h,7),h+=3):18==D&&(x=11+hs(e,h,127),h+=7);x--;)v[B++]=P}}var Q=v.subarray(0,b),M=v.subarray(b);g=us(Q),p=us(M),l=rs(Q,g,1),y=rs(M,p,1)}else ps(1);if(h>d){o&&ps(0);break}}a&&c(f+131072);for(var R=(1<<g)-1,T=(1<<p)-1,F=h;;F=h){var L=(P=l[fs(e,h)&R])>>4;if((h+=15&P)>d){o&&ps(0);break}if(P||ps(2),L<256)r[f++]=L;else{if(256==L){F=h,l=null;break}var N=L-254;if(L>264){var O=Gi[B=L-257];N=hs(e,h,(1<<O)-1)+Yi[B],h+=O}var H=y[fs(e,h)&T],z=H>>4;if(H||ps(3),h+=15&H,M=Wi[z],z>3&&(O=ji[z],M+=fs(e,h)&(1<<O)-1,h+=O),h>d){o&&ps(0);break}a&&c(f+131072);var G=f+N;if(f<M){var j=0-M,V=Math.min(M,G);for(j+f<0&&ps(3);f<V;++f)r[f]=n[j+f]}for(;f<G;++f)r[f]=r[f-M]}}t.l=l,t.p=F,t.b=f,t.f=u,l&&(u=1,t.m=g,t.d=y,t.n=p)}while(!u);return f!=r.length&&s?ys(r,0,f):r.subarray(0,f)}(this.p,this.s,this.o);this.ondata(ys(r,t,this.s.b),this.d),this.o=ys(r,this.s.b-32768),this.s.b=this.o.length,this.p=ys(this.p,this.s.p/8|0),this.s.p&=7},e.prototype.push=function(e,t){this.e(e),this.c(t)},e}(),Ps=/*#__PURE__*/function(){function e(e,t){this.c=Ss(),this.v=1,Ds.call(this,e,t)}return e.prototype.push=function(e,t){this.c.p(e),Ds.prototype.push.call(this,e,t)},e.prototype.p=function(e,t){var r=Ks(e,this.o,this.v&&(this.o.dictionary?6:2),t&&4,this.s);this.v&&(function(e,t){var r=t.level,n=0==r?0:r<6?1:9==r?3:2;if(e[0]=120,e[1]=n<<6|(t.dictionary&&32),e[1]|=31-(e[0]<<8|e[1])%31,t.dictionary){var i=Ss();i.p(t.dictionary),Cs(e,2,i.d())}}(r,this.o),this.v=0),t&&Cs(r,r.length-4,this.c.d()),this.ondata(r,t)},e.prototype.flush=function(e){Ds.prototype.flush.call(this,e)},e}(),xs=/*#__PURE__*/function(){function e(e,t){Us.call(this,e,t),this.v=e&&e.dictionary?2:1}return e.prototype.push=function(e,t){if(Us.prototype.e.call(this,e),this.v){if(this.p.length<6&&!t)return;this.p=this.p.subarray((r=this.p,n=this.v-1,(8!=(15&r[0])||r[0]>>4>7||(r[0]<<8|r[1])%31)&&ps(6,"invalid zlib data"),(r[1]>>5&1)==+!n&&ps(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&&ps(6,"invalid zlib data"),this.p=this.p.subarray(0,-4)),Us.prototype.c.call(this,t)},e}(),Qs="undefined"!=typeof TextDecoder&&/*#__PURE__*/new TextDecoder;try{Qs.decode(Bs,{stream:!0})}catch(e){}class Ms{static get tag(){return T.packet.literalData}constructor(e=new Date){this.format=T.literal.utf8,this.date=N.normalizeDate(e),this.text=null,this.data=null,this.filename=""}setText(e,t=T.literal.utf8){this.format=t,this.text=e,this.data=null}getText(e=!1){return(null===this.text||N.isStream(this.text))&&(this.text=N.decodeUTF8(N.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=N.canonicalizeEOL(N.encodeUTF8(this.text))),e?K(this.data):this.data}setFilename(e){this.filename=e}getFilename(){return this.filename}async read(e){await B(e,(async e=>{const t=await e.readByte(),r=await e.readByte();this.filename=N.decodeUTF8(await e.readBytes(r)),this.date=N.readDate(await e.readBytes(4));let n=e.remainder();c(n)&&(n=await U(n)),this.setBytes(n,t)}))}writeHeader(){const e=N.encodeUTF8(this.filename),t=new Uint8Array([e.length]),r=new Uint8Array([this.format]),n=N.writeDate(this.date);return N.concatUint8Array([r,t,e,n])}write(){const e=this.writeHeader(),t=this.getBytes();return N.concat([e,t])}}class Rs{constructor(){this.bytes=""}read(e){return this.bytes=N.uint8ArrayToString(e.subarray(0,8)),this.bytes.length}write(){return N.stringToUint8Array(this.bytes)}toHex(){return N.uint8ArrayToHex(N.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 Rs;return t.read(N.hexToUint8Array(e)),t}static wildcard(){const e=new Rs;return e.read(new Uint8Array(8)),e}}const Ts=Symbol("verified"),Fs="salt@notations.openpgpjs.org",Ls=new Set([T.signatureSubpacket.issuerKeyID,T.signatureSubpacket.issuerFingerprint,T.signatureSubpacket.embeddedSignature]);class Ns{static get tag(){return T.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 Rs,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[Ts]=null}read(e,t=F){let r=0;if(this.version=e[r++],5===this.version&&!t.enableParsingV5Entities)throw new ct("Support for v5 entities is disabled; turn on `config.enableParsingV5Entities` if needed");if(4!==this.version&&5!==this.version&&6!==this.version)throw new ct(`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 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 T.publicKey.rsaEncryptSign:case T.publicKey.rsaEncrypt:case T.publicKey.rsaSign:{const e=N.readMPI(t.subarray(r));return r+=e.length+2,{read:r,signatureParams:{s:e}}}case T.publicKey.dsa:case T.publicKey.ecdsa:{const e=N.readMPI(t.subarray(r));r+=e.length+2;const n=N.readMPI(t.subarray(r));return r+=n.length+2,{read:r,signatureParams:{r:e,s:n}}}case T.publicKey.eddsaLegacy:{const e=N.readMPI(t.subarray(r));r+=e.length+2;const n=N.readMPI(t.subarray(r));return r+=n.length+2,{read:r,signatureParams:{r:e,s:n}}}case T.publicKey.ed25519:case T.publicKey.ed448:{const n=2*dt(e),i=N.readExactSubarray(t,r,r+n);return r+=i.length,{read:r,signatureParams:{RS:i}}}default:throw new ct("Unknown signature algorithm.")}}(this.publicKeyAlgorithm,n);if(i<n.length)throw Error("Error reading MPIs");this.params=s}writeParams(){return this.params instanceof Promise?x((async()=>Mn(this.publicKeyAlgorithm,await this.params))):Mn(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()),N.concat(e)}async sign(e,t,r=new Date,n=!1,i){this.version=e.version,this.created=N.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=Hs(this.hashAlgorithm);if(null===this.salt)this.salt=de(e);else if(e!==this.salt.length)throw Error("Provided salt does not have the required length")}else if(i.nonDeterministicSignaturesViaNotation){if(0!==this.rawNotations.filter((({name:e})=>e===Fs)).length)throw Error("Unexpected existing salt notation");{const e=de(Hs(this.hashAlgorithm));this.rawNotations.push({name:Fs,value:e,humanReadable:!1,critical:!1})}}s.push(this.writeHashedSubPackets()),this.unhashedSubpackets=[],this.signatureData=N.concat(s);const a=this.toHash(this.signatureType,t,n),o=await this.hash(this.signatureType,t,a,n);this.signedHashValue=D(S(o),0,2);const c=async()=>Pi(this.publicKeyAlgorithm,this.hashAlgorithm,e.publicParams,e.privateParams,a,await U(o));N.isStream(o)?this.params=c():(this.params=await c(),this[Ts]=!0)}writeHashedSubPackets(){const e=T.signatureSubpacket,t=[];let r;if(null===this.created)throw Error("Missing signature creation time");t.push(Os(e.signatureCreationTime,!0,N.writeDate(this.created))),null!==this.signatureExpirationTime&&t.push(Os(e.signatureExpirationTime,!0,N.writeNumber(this.signatureExpirationTime,4))),null!==this.exportable&&t.push(Os(e.exportableCertification,!0,new Uint8Array([this.exportable?1:0]))),null!==this.trustLevel&&(r=new Uint8Array([this.trustLevel,this.trustAmount]),t.push(Os(e.trustSignature,!0,r))),null!==this.regularExpression&&t.push(Os(e.regularExpression,!0,this.regularExpression)),null!==this.revocable&&t.push(Os(e.revocable,!0,new Uint8Array([this.revocable?1:0]))),null!==this.keyExpirationTime&&t.push(Os(e.keyExpirationTime,!0,N.writeNumber(this.keyExpirationTime,4))),null!==this.preferredSymmetricAlgorithms&&(r=N.stringToUint8Array(N.uint8ArrayToString(this.preferredSymmetricAlgorithms)),t.push(Os(e.preferredSymmetricAlgorithms,!1,r))),null!==this.revocationKeyClass&&(r=new Uint8Array([this.revocationKeyClass,this.revocationKeyAlgorithm]),r=N.concat([r,this.revocationKeyFingerprint]),t.push(Os(e.revocationKey,!1,r))),!this.issuerKeyID.isNull()&&this.issuerKeyVersion<5&&t.push(Os(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=N.encodeUTF8(n);r.push(N.writeNumber(o.length,2)),r.push(N.writeNumber(i.length,2)),r.push(o),r.push(i),r=N.concat(r),t.push(Os(e.notationData,a,r))})),null!==this.preferredHashAlgorithms&&(r=N.stringToUint8Array(N.uint8ArrayToString(this.preferredHashAlgorithms)),t.push(Os(e.preferredHashAlgorithms,!1,r))),null!==this.preferredCompressionAlgorithms&&(r=N.stringToUint8Array(N.uint8ArrayToString(this.preferredCompressionAlgorithms)),t.push(Os(e.preferredCompressionAlgorithms,!1,r))),null!==this.keyServerPreferences&&(r=N.stringToUint8Array(N.uint8ArrayToString(this.keyServerPreferences)),t.push(Os(e.keyServerPreferences,!1,r))),null!==this.preferredKeyServer&&t.push(Os(e.preferredKeyServer,!1,N.encodeUTF8(this.preferredKeyServer))),null!==this.isPrimaryUserID&&t.push(Os(e.primaryUserID,!1,new Uint8Array([this.isPrimaryUserID?1:0]))),null!==this.policyURI&&t.push(Os(e.policyURI,!1,N.encodeUTF8(this.policyURI))),null!==this.keyFlags&&(r=N.stringToUint8Array(N.uint8ArrayToString(this.keyFlags)),t.push(Os(e.keyFlags,!0,r))),null!==this.signersUserID&&t.push(Os(e.signersUserID,!1,N.encodeUTF8(this.signersUserID))),null!==this.reasonForRevocationFlag&&(r=N.stringToUint8Array(String.fromCharCode(this.reasonForRevocationFlag)+this.reasonForRevocationString),t.push(Os(e.reasonForRevocation,!0,r))),null!==this.features&&(r=N.stringToUint8Array(N.uint8ArrayToString(this.features)),t.push(Os(e.features,!1,r))),null!==this.signatureTargetPublicKeyAlgorithm&&(r=[new Uint8Array([this.signatureTargetPublicKeyAlgorithm,this.signatureTargetHashAlgorithm])],r.push(N.stringToUint8Array(this.signatureTargetHash)),r=N.concat(r),t.push(Os(e.signatureTarget,!0,r))),null!==this.embeddedSignature&&t.push(Os(e.embeddedSignature,!0,this.embeddedSignature.write())),null!==this.issuerFingerprint&&(r=[new Uint8Array([this.issuerKeyVersion]),this.issuerFingerprint],r=N.concat(r),t.push(Os(e.issuerFingerprint,this.version>=5,r))),null!==this.preferredAEADAlgorithms&&(r=N.stringToUint8Array(N.uint8ArrayToString(this.preferredAEADAlgorithms)),t.push(Os(e.preferredAEADAlgorithms,!1,r))),null!==this.preferredCipherSuites&&(r=new Uint8Array([].concat(...this.preferredCipherSuites)),t.push(Os(e.preferredCipherSuites,!1,r)));const n=N.concat(t),i=N.writeNumber(n.length,6===this.version?4:2);return N.concat([i,n])}writeUnhashedSubPackets(){const e=this.unhashedSubpackets.map((({type:e,critical:t,body:r})=>Os(e,t,r))),t=N.concat(e),r=N.writeNumber(t.length,6===this.version?4:2);return N.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)}),Ls.has(i)))switch(i){case T.signatureSubpacket.signatureCreationTime:this.created=N.readDate(e.subarray(r,e.length));break;case T.signatureSubpacket.signatureExpirationTime:{const t=N.readNumber(e.subarray(r,e.length));this.signatureNeverExpires=0===t,this.signatureExpirationTime=t;break}case T.signatureSubpacket.exportableCertification:this.exportable=1===e[r++];break;case T.signatureSubpacket.trustSignature:this.trustLevel=e[r++],this.trustAmount=e[r++];break;case T.signatureSubpacket.regularExpression:this.regularExpression=e[r];break;case T.signatureSubpacket.revocable:this.revocable=1===e[r++];break;case T.signatureSubpacket.keyExpirationTime:{const t=N.readNumber(e.subarray(r,e.length));this.keyExpirationTime=t,this.keyNeverExpires=0===t;break}case T.signatureSubpacket.preferredSymmetricAlgorithms:this.preferredSymmetricAlgorithms=[...e.subarray(r,e.length)];break;case T.signatureSubpacket.revocationKey:this.revocationKeyClass=e[r++],this.revocationKeyAlgorithm=e[r++],this.revocationKeyFingerprint=e.subarray(r,r+20);break;case T.signatureSubpacket.issuerKeyID:if(4===this.version)this.issuerKeyID.read(e.subarray(r,e.length));else if(t)throw Error("Unexpected Issuer Key ID subpacket");break;case T.signatureSubpacket.notationData:{const t=!!(128&e[r]);r+=4;const i=N.readNumber(e.subarray(r,r+2));r+=2;const s=N.readNumber(e.subarray(r,r+2));r+=2;const a=N.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]=N.decodeUTF8(o));break}case T.signatureSubpacket.preferredHashAlgorithms:this.preferredHashAlgorithms=[...e.subarray(r,e.length)];break;case T.signatureSubpacket.preferredCompressionAlgorithms:this.preferredCompressionAlgorithms=[...e.subarray(r,e.length)];break;case T.signatureSubpacket.keyServerPreferences:this.keyServerPreferences=[...e.subarray(r,e.length)];break;case T.signatureSubpacket.preferredKeyServer:this.preferredKeyServer=N.decodeUTF8(e.subarray(r,e.length));break;case T.signatureSubpacket.primaryUserID:this.isPrimaryUserID=0!==e[r++];break;case T.signatureSubpacket.policyURI:this.policyURI=N.decodeUTF8(e.subarray(r,e.length));break;case T.signatureSubpacket.keyFlags:this.keyFlags=[...e.subarray(r,e.length)];break;case T.signatureSubpacket.signersUserID:this.signersUserID=N.decodeUTF8(e.subarray(r,e.length));break;case T.signatureSubpacket.reasonForRevocation:this.reasonForRevocationFlag=e[r++],this.reasonForRevocationString=N.decodeUTF8(e.subarray(r,e.length));break;case T.signatureSubpacket.features:this.features=[...e.subarray(r,e.length)];break;case T.signatureSubpacket.signatureTarget:{this.signatureTargetPublicKeyAlgorithm=e[r++],this.signatureTargetHashAlgorithm=e[r++];const t=Fe(this.signatureTargetHashAlgorithm);this.signatureTargetHash=N.uint8ArrayToString(e.subarray(r,r+t));break}case T.signatureSubpacket.embeddedSignature:this.embeddedSignature=new Ns,this.embeddedSignature.read(e.subarray(r,e.length));break;case T.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 T.signatureSubpacket.preferredAEADAlgorithms:this.preferredAEADAlgorithms=[...e.subarray(r,e.length)];break;case T.signatureSubpacket.preferredCipherSuites:this.preferredCipherSuites=[];for(let t=r;t<e.length;t+=2)this.preferredCipherSuites.push([e[t],e[t+1]]);break;default:this.unknownSubpackets.push({type:i,critical:n,body:e.subarray(r,e.length)})}}readSubPackets(e,t=!0,r){const n=6===this.version?4:2,i=N.readNumber(e.subarray(0,n));let s=n;for(;s<n+i;){const n=tt(e.subarray(s,e.length));s+=n.offset,this.readSubPacket(e.subarray(s,s+n.len),t,r),s+=n.len}return s}toSign(e,t){const r=T.signature;switch(e){case r.binary:return null!==t.text?N.encodeUTF8(t.getText(!0)):t.getBytes(!0);case r.text:{const e=t.getBytes(!0);return N.canonicalizeEOL(e)}case r.standalone:return new Uint8Array(0);case r.certGeneric:case r.certPersona:case r.certCasual:case r.certPositive:case r.certRevocation:{let e,n;if(t.userID)n=180,e=t.userID;else{if(!t.userAttribute)throw Error("Either a userID or userAttribute packet needs to be supplied for certification.");n=209,e=t.userAttribute}const i=e.write();return N.concat([this.toSign(r.key,t),new Uint8Array([n]),N.writeNumber(i.length,4),i])}case r.subkeyBinding:case r.subkeyRevocation:case r.keyBinding:return N.concat([this.toSign(r.key,t),this.toSign(r.key,{key:t.bind})]);case r.key:if(void 0===t.key)throw Error("Key packet is required for this signature.");return t.key.writeForHash(this.version);case r.keyRevocation:return this.toSign(r.key,t);case r.timestamp:return new Uint8Array(0);case r.thirdParty:throw Error("Not implemented");default:throw Error("Unknown signature type.")}}calculateTrailer(e,t){let r=0;return k(S(this.signatureData),(e=>{r+=e.length}),(()=>{const n=[];return 5!==this.version||this.signatureType!==T.signature.binary&&this.signatureType!==T.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(N.writeNumber(r,4)),N.concat(n)}))}toHash(e,t,r=!1){const n=this.toSign(e,t);return N.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!==Hs(this.hashAlgorithm))throw Error("Signature salt does not have the expected length");return r||(r=this.toHash(e,t,n)),Te(this.hashAlgorithm,r)}async verify(e,t,r,n=new Date,i=!1,s=F){if(!this.issuerKeyID.equals(e.getKeyID()))throw Error("Signature was not issued by the given public key");if(this.publicKeyAlgorithm!==e.algorithm)throw Error("Public key algorithm used to sign signature does not match issuer key algorithm.");const a=t===T.signature.binary||t===T.signature.text;if(!(this[Ts]&&!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 U(s),this.signedHashValue[0]!==s[0]||this.signedHashValue[1]!==s[1])throw Error("Signed digest did not match");if(this.params=await this.params,this[Ts]=await Ui(this.publicKeyAlgorithm,this.hashAlgorithm,this.params,e.publicParams,n,s),!this[Ts])throw Error("Signature verification failed")}const o=N.normalizeDate(n);if(o&&this.created>o)throw Error("Signature creation time is in the future");if(o&&o>=this.getExpirationTime())throw Error("Signature is expired");if(s.rejectHashAlgorithms.has(this.hashAlgorithm))throw Error("Insecure hash algorithm: "+T.read(T.hash,this.hashAlgorithm).toUpperCase());if(s.rejectMessageHashAlgorithms.has(this.hashAlgorithm)&&[T.signature.binary,T.signature.text].includes(this.signatureType))throw Error("Insecure message hash algorithm: "+T.read(T.hash,this.hashAlgorithm).toUpperCase());if(this.unknownSubpackets.forEach((({type:e,critical:t})=>{if(t)throw Error("Unknown critical signature subpacket type "+e)})),this.rawNotations.forEach((({name:e,critical:t})=>{if(t&&s.knownNotations.indexOf(e)<0)throw Error("Unknown critical notation: "+e)})),null!==this.revocationKeyClass)throw Error("This key is intended to be revoked with an authorized key, which OpenPGP.js does not support.")}isExpired(e=new Date){const t=N.normalizeDate(e);return null!==t&&!(this.created<=t&&t<this.getExpirationTime())}getExpirationTime(){return this.signatureNeverExpires?1/0:new Date(this.created.getTime()+1e3*this.signatureExpirationTime)}}function Os(e,t,r){const n=[];return n.push(rt(r.length+1)),n.push(new Uint8Array([(t?128:0)|e])),n.push(r),N.concat(n)}function Hs(e){switch(e){case T.hash.sha256:return 16;case T.hash.sha384:return 24;case T.hash.sha512:return 32;case T.hash.sha224:case T.hash.sha3_256:return 16;case T.hash.sha3_512:return 32;default:throw Error("Unsupported hash function")}}class zs{static get tag(){return T.packet.onePassSignature}static fromSignaturePacket(e,t){const r=new zs;return r.version=6===e.version?6:3,r.signatureType=e.signatureType,r.hashAlgorithm=e.hashAlgorithm,r.publicKeyAlgorithm=e.publicKeyAlgorithm,r.issuerKeyID=e.issuerKeyID,r.salt=e.salt,r.issuerFingerprint=e.issuerFingerprint,r.flags=t?1:0,r}constructor(){this.version=null,this.signatureType=null,this.hashAlgorithm=null,this.publicKeyAlgorithm=null,this.salt=null,this.issuerKeyID=null,this.issuerFingerprint=null,this.flags=null}read(e){let t=0;if(this.version=e[t++],3!==this.version&&6!==this.version)throw new ct(`Version ${this.version} of the one-pass signature packet is unsupported.`);if(this.signatureType=e[t++],this.hashAlgorithm=e[t++],this.publicKeyAlgorithm=e[t++],6===this.version){const r=e[t++];this.salt=e.subarray(t,t+r),t+=r,this.issuerFingerprint=e.subarray(t,t+32),t+=32,this.issuerKeyID=new Rs,this.issuerKeyID.read(this.issuerFingerprint)}else this.issuerKeyID=new Rs,this.issuerKeyID.read(e.subarray(t,t+8)),t+=8;return this.flags=e[t++],this}write(){const e=[new Uint8Array([this.version,this.signatureType,this.hashAlgorithm,this.publicKeyAlgorithm])];return 6===this.version?e.push(new Uint8Array([this.salt.length]),this.salt,this.issuerFingerprint):e.push(this.issuerKeyID.write()),e.push(new Uint8Array([this.flags])),N.concatUint8Array(e)}calculateTrailer(...e){return x((async()=>Ns.prototype.calculateTrailer.apply(await this.correspondingSig,e)))}async verify(){const e=await this.correspondingSig;if(!e||e.constructor.tag!==T.packet.signature)throw 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&&!N.equalsUint8Array(e.issuerFingerprint,this.issuerFingerprint)||6===this.version&&!N.equalsUint8Array(e.salt,this.salt))throw Error("Corresponding signature packet does not match one-pass signature packet");return e.hashed=this.hashed,e.verify.apply(e,arguments)}}function Gs(e,t){if(!t[e]){let t;try{t=T.read(T.packet,e)}catch{throw new ut("Unknown packet type with tag: "+e)}throw Error("Packet not allowed in this context: "+t)}return new t[e]}zs.prototype.hash=Ns.prototype.hash,zs.prototype.toHash=Ns.prototype.toHash,zs.prototype.toSign=Ns.prototype.toSign;class js extends Array{static async fromBinary(e,t,r=F,n=null,i=!1){const s=new js;return await s.read(e,t,r,n,i),s}async read(e,t,r=F,n=null,i=!1){let s;r.additionalAllowedPackets.length&&(s=N.constructAllowedPackets(r.additionalAllowedPackets),t={...t,...s}),this.stream=I(e,(async(e,a)=>{const o=Q(e),c=M(a);try{let a=N.isStream(e);for(;;){let e,u;if(await c.ready,await ot(o,a,(async a=>{try{if(a.tag===T.packet.marker||a.tag===T.packet.trust||a.tag===T.packet.padding)return;const e=Gs(a.tag,t);try{n?.recordPacket(a.tag,s)}catch(e){if(r.enforceGrammar)throw e;N.printDebugError(e)}e.packets=new js,e.fromStream=N.isStream(a.packet),u=e.fromStream;try{await e.read(a.packet,r)}catch(t){if(!(t instanceof ct))throw N.wrapError(new ht(`Parsing ${e.constructor.name} failed`),t);throw t}await c.write(e)}catch(t){const n=t instanceof ut&&a.tag<=39,s=t instanceof ct&&!(t instanceof ut)&&!r.ignoreUnsupportedPackets,o=t instanceof ht&&!r.ignoreMalformedPackets,u=at(a.tag);if(n||s||o||u||!(t instanceof ut||t instanceof ct||t instanceof ht))i?e=t:await c.abort(t);else{const e=new ft(a.tag,a.packet);await c.write(e)}N.printDebugError(t)}})),u&&(a=null),e)throw await o.readToEnd(),e;const h=await o.peekBytes(2);if(!h||!h.length){try{n?.recordEnd()}catch(e){if(r.enforceGrammar)throw e;N.printDebugError(e)}return await c.ready,void await c.close()}}}catch(e){await c.abort(e)}}));const a=Q(this.stream);for(;;){const{done:e,value:t}=await a.read();if(e?this.stream=null:this.push(t),e||at(t.constructor.tag))break}a.releaseLock()}write(){const e=[];for(let t=0;t<this.length;t++){const r=this[t]instanceof ft?this[t].tag:this[t].constructor.tag,n=this[t].write();if(N.isStream(n)&&at(this[t].constructor.tag)){let t=[],i=0;const s=512;e.push(it(r)),e.push(k(n,(e=>{if(t.push(e),i+=e.length,i>=s){const e=Math.min(Math.log(i)/Math.LN2|0,30),r=2**e,n=N.concat([nt(e)].concat(t));return t=[n.subarray(1+r)],i=t[0].length,n.subarray(0,1+r)}}),(()=>N.concat([rt(i)].concat(t)))))}else{if(N.isStream(n)){let t=0;e.push(k(S(n),(e=>{t+=e.length}),(()=>st(r,t))))}else e.push(st(r,n.length));e.push(n)}}return N.concat(e)}filterByTag(...e){const t=new js,r=e=>t=>e===t;for(let n=0;n<this.length;n++)e.some(r(this[n].constructor.tag))&&t.push(this[n]);return t}findPacket(e){return this.find((t=>t.constructor.tag===e))}indexOfTag(...e){const t=[],r=this,n=e=>t=>e===t;for(let i=0;i<this.length;i++)e.some(n(r[i].constructor.tag))&&t.push(i);return t}}class Vs extends Error{constructor(...e){super(...e),Error.captureStackTrace&&Error.captureStackTrace(this,Vs),this.name="GrammarError"}}var qs;!function(e){e[e.EmptyMessage=0]="EmptyMessage",e[e.PlaintextOrEncryptedData=1]="PlaintextOrEncryptedData",e[e.EncryptedSessionKeys=2]="EncryptedSessionKeys",e[e.StandaloneAdditionalAllowedData=3]="StandaloneAdditionalAllowedData"}(qs||(qs={}));class _s{constructor(){this.state=qs.EmptyMessage,this.leadingOnePassSignatureCounter=0}recordPacket(e,t){switch(this.state){case qs.EmptyMessage:case qs.StandaloneAdditionalAllowedData:switch(e){case T.packet.literalData:case T.packet.compressedData:case T.packet.aeadEncryptedData:case T.packet.symEncryptedIntegrityProtectedData:case T.packet.symmetricallyEncryptedData:return void(this.state=qs.PlaintextOrEncryptedData);case T.packet.signature:if(this.state===qs.StandaloneAdditionalAllowedData&&--this.leadingOnePassSignatureCounter<0)throw new Vs("Trailing signature packet without OPS");return;case T.packet.onePassSignature:if(this.state===qs.StandaloneAdditionalAllowedData)throw new Vs("OPS following StandaloneAdditionalAllowedData");return void this.leadingOnePassSignatureCounter++;case T.packet.publicKeyEncryptedSessionKey:case T.packet.symEncryptedSessionKey:return void(this.state=qs.EncryptedSessionKeys);default:if(!t?.[e])throw new Vs(`Unexpected packet ${e} in state ${this.state}`);return void(this.state=qs.StandaloneAdditionalAllowedData)}case qs.PlaintextOrEncryptedData:if(e===T.packet.signature){if(--this.leadingOnePassSignatureCounter<0)throw new Vs("Trailing signature packet without OPS");return void(this.state=qs.PlaintextOrEncryptedData)}if(!t?.[e])throw new Vs(`Unexpected packet ${e} in state ${this.state}`);return void(this.state=qs.PlaintextOrEncryptedData);case qs.EncryptedSessionKeys:switch(e){case T.packet.publicKeyEncryptedSessionKey:case T.packet.symEncryptedSessionKey:return void(this.state=qs.EncryptedSessionKeys);case T.packet.symEncryptedIntegrityProtectedData:case T.packet.aeadEncryptedData:case T.packet.symmetricallyEncryptedData:return void(this.state=qs.PlaintextOrEncryptedData);case T.packet.signature:if(--this.leadingOnePassSignatureCounter<0)throw new Vs("Trailing signature packet without OPS");return void(this.state=qs.PlaintextOrEncryptedData);default:if(!t?.[e])throw new Vs(`Unexpected packet ${e} in state ${this.state}`);this.state=qs.EncryptedSessionKeys}}}recordEnd(){switch(this.state){case qs.EmptyMessage:case qs.PlaintextOrEncryptedData:case qs.EncryptedSessionKeys:case qs.StandaloneAdditionalAllowedData:if(this.leadingOnePassSignatureCounter>0)throw new Vs("Missing trailing signature packets")}}}const Ys=/*#__PURE__*/N.constructAllowedPackets([Ms,zs,Ns]);class Zs{static get tag(){return T.packet.compressedData}constructor(e=F){this.packets=null,this.algorithm=e.preferredCompressionAlgorithm,this.compressed=null}async read(e,t=F){await B(e,(async e=>{this.algorithm=await e.readByte(),this.compressed=e.remainder(),await this.decompress(t)}))}write(){return null===this.compressed&&this.compress(),N.concat([new Uint8Array([this.algorithm]),this.compressed])}async decompress(e=F){const t=T.read(T.compression,this.algorithm),r=ea[t];if(!r)throw Error(t+" decompression not supported");let n=await r(this.compressed,e);if(e.maxDecompressedMessageSize!==1/0){let t=0;n=k(n,(r=>{if(t+=r.length,t>e.maxDecompressedMessageSize)throw Error("Maximum decompressed message size exceeded");return r}))}h(this.compressed)&&!c(this.compressed)||(n=await U(n)),this.packets=await js.fromBinary(n,Ys,e,new _s)}compress(){const e=T.read(T.compression,this.algorithm),t=$s[e];if(!t)throw Error(e+" compression not supported");const r=this.packets.write();let n=t(r);h(r)&&!c(r)||(n=x((()=>U(n)))),this.compressed=n}}function Js(e,t){return(r,n)=>{let i;if(i=c(r)?new ReadableStream({async start(e){try{e.enqueue(await U(r)),e.close()}catch(t){e.error(t)}}}):h(r)?r:d(r),i=function(e){const t=Q(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<r.length)&&e.enqueue(r.subarray(t,t+65536))}catch(t){e.error(t)}}},{highWaterMark:0})}(i),e)try{const t=e();return i.pipeThrough(t)}catch(e){if("TypeError"!==e.name)throw e}const s=Q(i),a=new t;let o=!1,u=!1;return new ReadableStream({start(e){a.ondata=(t,r)=>{e.enqueue(t),o=!0,r&&(e.close(),u=!0)}},async pull(){for(o=!1;!o&&!u;){const{done:e,value:t}=await s.read();if(e)return void a.push(new Uint8Array,!0);t.length&&a.push(t)}}},{highWaterMark:0})}}function Ws(){return async function(e,t){const{default:r}=await Promise.resolve().then((function(){return Cy}));return r(d(e),t.maxDecompressedMessageSize)}}const Xs=e=>({compressor:"undefined"!=typeof CompressionStream&&(()=>new CompressionStream(e)),decompressor:"undefined"!=typeof DecompressionStream&&(()=>new DecompressionStream(e))}),$s={zip:/*#__PURE__*/Js(Xs("deflate-raw").compressor,Ds),zlib:/*#__PURE__*/Js(Xs("deflate").compressor,Ps)},ea={uncompressed:(e,t)=>e,zip:/*#__PURE__*/Js(Xs("deflate-raw").decompressor,Us),zlib:/*#__PURE__*/Js(Xs("deflate").decompressor,xs),bzip2:/*#__PURE__*/Ws()};function ta(e,t,r){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,BigInt(r));if(r<=4294967295)e.setUint32(t,0),e.setUint32(t+4,r);else{const n=BigInt(r);e.setUint32(t,Number(n>>BigInt(32))),e.setUint32(t+4,Number(n&BigInt(4294967295)))}}const ra=/*#__PURE__*/N.constructAllowedPackets([Ms,Zs,zs,Ns]);class na{static get tag(){return T.packet.symEncryptedIntegrityProtectedData}static fromObject({version:e,aeadAlgorithm:t}){if(1!==e&&2!==e)throw Error("Unsupported SEIPD version");const r=new na;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 B(e,(async e=>{if(this.version=await e.readByte(),1!==this.version&&2!==this.version)throw new ct(`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?N.concat([new Uint8Array([this.version,this.cipherAlgorithm,this.aeadAlgorithm,this.chunkSizeByte]),this.salt,this.encrypted]):N.concat([new Uint8Array([this.version]),this.encrypted])}async encrypt(e,t,r=F){const{blockSize:n,keySize:i}=Cr(e);if(t.length!==i)throw Error("Unexpected session key size");let s=this.packets.write();if(c(s)&&(s=await U(s)),2===this.version)this.cipherAlgorithm=e,this.salt=de(32),this.chunkSizeByte=r.aeadChunkSizeByte,this.encrypted=await ia(this,"encrypt",t,s);else{const r=await jn(e),i=new Uint8Array([211,20]),a=N.concat([r,s,i]),o=await Te(T.hash.sha1,K(a)),c=N.concat([a,o]);this.encrypted=await Vn(e,t,c,new Uint8Array(n))}return!0}async decrypt(e,t,r=F){if(t.length!==Cr(e).keySize)throw Error("Unexpected session key size");let n,i=S(this.encrypted);c(i)&&(i=await U(i));let s=!1;if(2===this.version){if(this.cipherAlgorithm!==e)throw Error("Unexpected session key algorithm");n=await ia(this,"decrypt",t,i)}else{const{blockSize:a}=Cr(e),o=await qn(e,t,i,new Uint8Array(a)),c=D(K(o),-20),u=D(o,0,-20),h=Promise.all([U(await Te(T.hash.sha1,K(u))),U(c)]).then((([e,t])=>{if(!N.equalsUint8Array(e,t))throw Error("Modification detected.");return new Uint8Array})),f=D(u,a+2);n=D(f,0,-2),n=w([n,x((()=>h))]),N.isStream(i)&&r.allowUnauthenticatedStream?s=!0:n=await U(n)}return this.packets=await js.fromBinary(n,ra,r,new _s,s),!0}}async function ia(e,t,r,n){const i=e instanceof na&&2===e.version,s=!i&&e.constructor.tag===T.packet.aeadEncryptedData;if(!i&&!s)throw Error("Unexpected packet type");const a=Di(e.aeadAlgorithm,s),o="decrypt"===t?a.tagLength:0,c="encrypt"===t?a.tagLength:0,u=2**(e.chunkSizeByte+6)+o,h=s?8:0,f=new ArrayBuffer(13+h),l=new Uint8Array(f,0,5+h),y=new Uint8Array(f),g=new DataView(f),p=new Uint8Array(f,5,8);l.set([192|e.constructor.tag,e.version,e.cipherAlgorithm,e.aeadAlgorithm,e.chunkSizeByte],0);let d,A,w=0,b=Promise.resolve(),k=0,E=0;if(i){const{keySize:t}=Cr(e.cipherAlgorithm),{ivLength:n}=a,i=new Uint8Array(f,0,5),s=await xr(T.hash.sha256,r,e.salt,i,t+n);r=s.subarray(0,t),d=s.subarray(t),d.fill(0,d.length-8),A=new DataView(d.buffer,d.byteOffset,d.byteLength)}else d=e.iv;const v=await a(e.cipherAlgorithm,r);return I(n,(async(r,n)=>{if("array"!==N.isStream(r)){const t=new TransformStream({},{highWaterMark:N.getHardwareConcurrency()*2**(e.chunkSizeByte+6),size:e=>e.length});m(t.readable,n),n=t.writable}const s=Q(r),a=M(n);try{for(;;){let e=await s.readBytes(u+o)||new Uint8Array;const r=e.subarray(e.length-o);let n,f,m;if(e=e.subarray(0,e.length-o),i)m=d;else{m=d.slice();for(let e=0;e<8;e++)m[d.length-8+e]^=p[e]}if(!w||e.length?(s.unshift(r),n=v[t](e,m,l),n.catch((()=>{})),E+=e.length-o+c):(ta(g,5+h,k),n=v[t](r,m,y),n.catch((()=>{})),E+=c,f=!0),k+=e.length-o,b=b.then((()=>n)).then((async e=>{await a.ready,await a.write(e),E-=e.length})).catch((e=>a.abort(e))),(f||E>a.desiredSize)&&await b,f){await a.close();break}i?ta(A,d.length-8,++w):ta(g,5,++w)}}catch(e){await a.ready.catch((()=>{})),await a.abort(e)}}))}const sa=/*#__PURE__*/N.constructAllowedPackets([Ms,Zs,zs,Ns]);class aa{static get tag(){return T.packet.aeadEncryptedData}constructor(){this.version=1,this.cipherAlgorithm=null,this.aeadAlgorithm=T.aead.eax,this.chunkSizeByte=null,this.iv=null,this.encrypted=null,this.packets=null}async read(e){await B(e,(async e=>{const t=await e.readByte();if(1!==t)throw new ct(`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=Di(this.aeadAlgorithm,!0);this.iv=await e.readBytes(r.ivLength),this.encrypted=e.remainder()}))}write(){return N.concat([new Uint8Array([this.version,this.cipherAlgorithm,this.aeadAlgorithm,this.chunkSizeByte]),this.iv,this.encrypted])}async decrypt(e,t,r=F){this.packets=await js.fromBinary(await ia(this,"decrypt",t,S(this.encrypted)),sa,r,new _s)}async encrypt(e,t,r=F){this.cipherAlgorithm=e;const{ivLength:n}=Di(this.aeadAlgorithm,!0);this.iv=de(n),this.chunkSizeByte=r.aeadChunkSizeByte;const i=this.packets.write();this.encrypted=await ia(this,"encrypt",t,i)}}class oa{static get tag(){return T.packet.publicKeyEncryptedSessionKey}constructor(){this.version=null,this.publicKeyID=new Rs,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 oa;if(3!==e&&6!==e)throw 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?Rs.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 ct(`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=Rs.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 T.publicKey.rsaEncrypt:case T.publicKey.rsaEncryptSign:return{c:N.readMPI(t.subarray(r))};case T.publicKey.elgamal:{const e=N.readMPI(t.subarray(r));return r+=e.length+2,{c1:e,c2:N.readMPI(t.subarray(r))}}case T.publicKey.ecdh:{const e=N.readMPI(t.subarray(r));r+=e.length+2;const n=new Cn;return n.read(t.subarray(r)),{V:e,C:n}}case T.publicKey.x25519:case T.publicKey.x448:{const n=Nn(e),i=N.readExactSubarray(t,r,r+n);r+=i.length;const s=new Un;return s.read(t.subarray(r)),{ephemeralPublicKey:i,C:s}}default:throw new ct("Unknown public key encryption algorithm.")}}(this.publicKeyAlgorithm,e.subarray(t)),this.publicKeyAlgorithm===T.publicKey.x25519||this.publicKeyAlgorithm===T.publicKey.x448)if(3===this.version)this.sessionKeyAlgorithm=T.write(T.symmetric,this.encrypted.C.algorithm);else if(null!==this.encrypted.C.algorithm)throw 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]),Mn(this.publicKeyAlgorithm,this.encrypted)),N.concatUint8Array(e)}async encrypt(e){const t=T.write(T.publicKey,this.publicKeyAlgorithm),r=3===this.version?this.sessionKeyAlgorithm:null,n=5===e.version?e.getFingerprintBytes().subarray(0,20):e.getFingerprintBytes(),i=ca(this.version,t,r,this.sessionKey);this.encrypted=await Pn(t,r,e.publicParams,i,n)}async decrypt(e,t){if(this.publicKeyAlgorithm!==e.algorithm)throw Error("Decryption error");const r=t?ca(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 T.publicKey.rsaEncrypt:case T.publicKey.rsaEncryptSign:case T.publicKey.elgamal:case T.publicKey.ecdh:{const t=r.subarray(0,r.length-2),i=r.subarray(r.length-2),s=N.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:N.selectUint8Array(t,o.sessionKey,n.sessionKey),sessionKeyAlgorithm:6===e?null:N.selectUint8(t,o.sessionKeyAlgorithm,n.sessionKeyAlgorithm)}}if(a&&(6===e||T.read(T.symmetric,o.sessionKeyAlgorithm)))return o;throw Error("Decryption error")}case T.publicKey.x25519:case T.publicKey.x448:return{sessionKeyAlgorithm:null,sessionKey:r};default:throw Error("Unsupported public key algorithm")}}(this.version,this.publicKeyAlgorithm,i,t);if(3===this.version){const e=this.publicKeyAlgorithm!==T.publicKey.x25519&&this.publicKeyAlgorithm!==T.publicKey.x448;if(this.sessionKeyAlgorithm=e?a:this.sessionKeyAlgorithm,s.length!==Cr(this.sessionKeyAlgorithm).keySize)throw Error("Unexpected session key size")}this.sessionKey=s}}function ca(e,t,r,n){switch(t){case T.publicKey.rsaEncrypt:case T.publicKey.rsaEncryptSign:case T.publicKey.elgamal:case T.publicKey.ecdh:return N.concatUint8Array([new Uint8Array(6===e?[]:[r]),n,N.writeChecksum(n.subarray(n.length%8))]);case T.publicKey.x25519:case T.publicKey.x448:return n;default:throw Error("Unsupported public key algorithm")}}class ua{static get tag(){return T.packet.symEncryptedSessionKey}constructor(e=F){this.version=e.aeadProtect?6:4,this.sessionKey=null,this.sessionKeyEncryptionAlgorithm=null,this.sessionKeyAlgorithm=null,this.aeadAlgorithm=T.write(T.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 ct(`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=Li(n),t+=this.s2k.read(e.subarray(t,e.length)),this.version>=5){const r=Di(this.aeadAlgorithm,!0);this.iv=e.subarray(t,t+=r.ivLength)}this.version>=5||t<e.length?(this.encrypted=e.subarray(t,e.length),this.sessionKeyEncryptionAlgorithm=r):this.sessionKeyAlgorithm=r}write(){const e=null===this.encrypted?this.sessionKeyAlgorithm:this.sessionKeyEncryptionAlgorithm;let t;const r=this.s2k.write();if(6===this.version){const n=r.length,i=3+n+this.iv.length;t=N.concatUint8Array([new Uint8Array([this.version,i,e,this.aeadAlgorithm,n]),r,this.iv,this.encrypted])}else 5===this.version?t=N.concatUint8Array([new Uint8Array([this.version,e,this.aeadAlgorithm]),r,this.iv,this.encrypted]):(t=N.concatUint8Array([new Uint8Array([this.version,e]),r]),null!==this.encrypted&&(t=N.concatUint8Array([t,this.encrypted])));return t}async decrypt(e,t=F){const r=null!==this.sessionKeyEncryptionAlgorithm?this.sessionKeyEncryptionAlgorithm:this.sessionKeyAlgorithm,{blockSize:n,keySize:i}=Cr(r),s=await this.s2k.produceKey(e,i,t);if(this.version>=5){const e=Di(this.aeadAlgorithm,!0),t=new Uint8Array([192|ua.tag,this.version,this.sessionKeyEncryptionAlgorithm,this.aeadAlgorithm]),n=6===this.version?await xr(T.hash.sha256,s,new Uint8Array,t,i):s,a=await e(r,n);this.sessionKey=await a.decrypt(this.encrypted,this.iv,t)}else if(null!==this.encrypted){const e=await qn(r,s,this.encrypted,new Uint8Array(n));if(this.sessionKeyAlgorithm=T.write(T.symmetric,e[0]),this.sessionKey=e.subarray(1,e.length),this.sessionKey.length!==Cr(this.sessionKeyAlgorithm).keySize)throw Error("Unexpected session key size")}else this.sessionKey=s}async encrypt(e,t=F){const r=null!==this.sessionKeyEncryptionAlgorithm?this.sessionKeyEncryptionAlgorithm:this.sessionKeyAlgorithm;this.sessionKeyEncryptionAlgorithm=r,this.s2k=Ni(t),this.s2k.generateSalt();const{blockSize:n,keySize:i}=Cr(r),s=await this.s2k.produceKey(e,i,t);if(null===this.sessionKey&&(this.sessionKey=Fn(this.sessionKeyAlgorithm)),this.version>=5){const e=Di(this.aeadAlgorithm);this.iv=de(e.ivLength);const t=new Uint8Array([192|ua.tag,this.version,this.sessionKeyEncryptionAlgorithm,this.aeadAlgorithm]),n=6===this.version?await xr(T.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=N.concatUint8Array([new Uint8Array([this.sessionKeyAlgorithm]),this.sessionKey]);this.encrypted=await Vn(r,s,e,new Uint8Array(n))}}}class ha{static get tag(){return T.packet.publicKey}constructor(e=new Date,t=F){this.version=t.v6Keys?6:4,this.created=N.normalizeDate(e),this.algorithm=null,this.publicParams=null,this.expirationTimeV3=0,this.fingerprint=null,this.keyID=null}static fromSecretKeyPacket(e){const t=new ha,{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=F){let r=0;if(this.version=e[r++],5===this.version&&!t.enableParsingV5Entities)throw new ct("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=N.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 T.publicKey.rsaEncrypt:case T.publicKey.rsaEncryptSign:case T.publicKey.rsaSign:{const e=N.readMPI(t.subarray(r));r+=e.length+2;const n=N.readMPI(t.subarray(r));return r+=n.length+2,{read:r,publicParams:{n:e,e:n}}}case T.publicKey.dsa:{const e=N.readMPI(t.subarray(r));r+=e.length+2;const n=N.readMPI(t.subarray(r));r+=n.length+2;const i=N.readMPI(t.subarray(r));r+=i.length+2;const s=N.readMPI(t.subarray(r));return r+=s.length+2,{read:r,publicParams:{p:e,q:n,g:i,y:s}}}case T.publicKey.elgamal:{const e=N.readMPI(t.subarray(r));r+=e.length+2;const n=N.readMPI(t.subarray(r));r+=n.length+2;const i=N.readMPI(t.subarray(r));return r+=i.length+2,{read:r,publicParams:{p:e,g:n,y:i}}}case T.publicKey.ecdsa:{const e=new et;r+=e.read(t),Ln(e);const n=N.readMPI(t.subarray(r));return r+=n.length+2,{read:r,publicParams:{oid:e,Q:n}}}case T.publicKey.eddsaLegacy:{const e=new et;if(r+=e.read(t),Ln(e),e.getName()!==T.curve.ed25519Legacy)throw Error("Unexpected OID for eddsaLegacy");let n=N.readMPI(t.subarray(r));return r+=n.length+2,n=N.leftPad(n,33),{read:r,publicParams:{oid:e,Q:n}}}case T.publicKey.ecdh:{const e=new et;r+=e.read(t),Ln(e);const n=N.readMPI(t.subarray(r));r+=n.length+2;const i=new Dn;return r+=i.read(t.subarray(r)),{read:r,publicParams:{oid:e,Q:n,kdfParams:i}}}case T.publicKey.ed25519:case T.publicKey.ed448:case T.publicKey.x25519:case T.publicKey.x448:{const n=N.readExactSubarray(t,r,r+Nn(e));return r+=n.length,{read:r,publicParams:{A:n}}}default:throw new ct("Unknown public key encryption algorithm.")}}(this.algorithm,e.subarray(r));if(6===this.version&&n.oid&&(n.oid.getName()===T.curve.curve25519Legacy||n.oid.getName()===T.curve.ed25519Legacy))throw Error("Legacy curve25519 cannot be used with v6 keys");return this.publicParams=n,r+=t,await this.computeFingerprintAndKeyID(),r}throw new ct(`Version ${this.version} of the key packet is unsupported.`)}write(){const e=[];e.push(new Uint8Array([this.version])),e.push(N.writeDate(this.created)),e.push(new Uint8Array([this.algorithm]));const t=Mn(this.algorithm,this.publicParams);return this.version>=5&&e.push(N.writeNumber(t.length,4)),e.push(t),N.concatUint8Array(e)}writeForHash(e){const t=this.writePublicKey(),r=149+e,n=e>=5?4:2;return N.concatUint8Array([new Uint8Array([r]),N.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 Rs,this.version>=5)this.keyID.read(this.fingerprint.subarray(0,8));else{if(4!==this.version)throw 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 Te(T.hash.sha256,e);else{if(4!==this.version)throw Error("Unsupported key version");this.fingerprint=await Te(T.hash.sha1,e)}}getFingerprintBytes(){return this.fingerprint}getFingerprint(){return N.uint8ArrayToHex(this.getFingerprintBytes())}hasSameFingerprintAs(e){return this.version===e.version&&N.equalsUint8Array(this.writePublicKey(),e.writePublicKey())}getAlgorithmInfo(){const e={};e.algorithm=T.read(T.publicKey,this.algorithm);const t=this.publicParams.n||this.publicParams.p;return t?e.bits=N.uint8ArrayBitLength(t):this.publicParams.oid&&(e.curve=this.publicParams.oid.getName()),e}}ha.prototype.readPublicKey=ha.prototype.read,ha.prototype.writePublicKey=ha.prototype.write;const fa=/*#__PURE__*/N.constructAllowedPackets([Ms,Zs,zs,Ns]);class la{static get tag(){return T.packet.symmetricallyEncryptedData}constructor(){this.encrypted=null,this.packets=null}read(e){this.encrypted=e}write(){return this.encrypted}async decrypt(e,t,r=F){if(!r.allowUnauthenticatedMessages)throw Error("Message is not authenticated.");const{blockSize:n}=Cr(e),i=await U(S(this.encrypted)),s=await qn(e,t,i.subarray(n+2),i.subarray(2,n+2));this.packets=await js.fromBinary(s,fa,r)}async encrypt(e,t,r=F){const n=this.packets.write(),{blockSize:i}=Cr(e),s=await jn(e),a=await Vn(e,t,s,new Uint8Array(i)),o=await Vn(e,t,n,a.subarray(2));this.encrypted=N.concat([a,o])}}class ya extends ha{static get tag(){return T.packet.publicSubkey}constructor(e,t){super(e,t)}static fromSecretSubkeyPacket(e){const t=new ya,{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 ga{static get tag(){return T.packet.userAttribute}constructor(){this.attributes=[]}read(e){let t=0;for(;t<e.length;){const r=tt(e.subarray(t,e.length));t+=r.offset,this.attributes.push(N.uint8ArrayToString(e.subarray(t,t+r.len))),t+=r.len}}write(){const e=[];for(let t=0;t<this.attributes.length;t++)e.push(rt(this.attributes[t].length)),e.push(N.stringToUint8Array(this.attributes[t]));return N.concatUint8Array(e)}equals(e){return!!(e&&e instanceof ga)&&this.attributes.every((function(t,r){return t===e.attributes[r]}))}}class pa extends ha{static get tag(){return T.packet.secretKey}constructor(e=new Date,t=F){super(e,t),this.keyMaterial=null,this.isEncrypted=null,this.s2kUsage=0,this.s2k=null,this.symmetric=null,this.aead=null,this.isLegacyAEAD=null,this.privateParams=null,this.usedModernAEAD=null}async read(e,t=F){let r=await this.readPublicKey(e,t);const n=r;this.s2kUsage=e[r++],5===this.version&&r++,6===this.version&&this.s2kUsage&&r++;try{if(255===this.s2kUsage||254===this.s2kUsage||253===this.s2kUsage){this.symmetric=e[r++],253===this.s2kUsage&&(this.aead=e[r++]),6===this.version&&r++;const t=e[r++];if(this.s2k=Li(t),r+=this.s2k.read(e.subarray(r,e.length)),"gnu-dummy"===this.s2k.type)return}else this.s2kUsage&&(this.symmetric=this.s2kUsage);this.s2kUsage&&(this.isLegacyAEAD=253===this.s2kUsage&&(5===this.version||4===this.version&&t.parseAEADEncryptedV4KeysAsLegacy),253!==this.s2kUsage||this.isLegacyAEAD?(this.iv=e.subarray(r,r+Cr(this.symmetric).blockSize),this.usedModernAEAD=!1):(this.iv=e.subarray(r,r+Di(this.aead).ivLength),this.usedModernAEAD=!0),r+=this.iv.length)}catch(t){if(!this.s2kUsage)throw t;this.unparseableKeyMaterial=e.subarray(n),this.isEncrypted=!0}if(5===this.version&&(r+=4),this.keyMaterial=e.subarray(r),this.isEncrypted=!!this.s2kUsage,!this.isEncrypted){let e;if(6===this.version)e=this.keyMaterial;else if(e=this.keyMaterial.subarray(0,-2),!N.equalsUint8Array(N.writeChecksum(e),this.keyMaterial.subarray(-2)))throw Error("Key checksum mismatch");try{const{read:t,privateParams:r}=Qn(this.algorithm,e,this.publicParams);if(t<e.length)throw Error("Error reading MPIs");this.privateParams=r}catch(e){if(e instanceof ct)throw e;throw Error("Error reading MPIs")}}}write(){const e=this.writePublicKey();if(this.unparseableKeyMaterial)return N.concatUint8Array([e,this.unparseableKeyMaterial]);const t=[e];t.push(new Uint8Array([this.s2kUsage]));const r=[];if(255===this.s2kUsage||254===this.s2kUsage||253===this.s2kUsage){r.push(this.symmetric),253===this.s2kUsage&&r.push(this.aead);const e=this.s2k.write();6===this.version&&r.push(e.length),r.push(...e)}return this.s2kUsage&&"gnu-dummy"!==this.s2k.type&&r.push(...this.iv),(5===this.version||6===this.version&&this.s2kUsage)&&t.push(new Uint8Array([r.length])),t.push(new Uint8Array(r)),this.isDummy()||(this.s2kUsage||(this.keyMaterial=Mn(this.algorithm,this.privateParams)),5===this.version&&t.push(N.writeNumber(this.keyMaterial.length,4)),t.push(this.keyMaterial),this.s2kUsage||6===this.version||t.push(N.writeChecksum(this.keyMaterial))),N.concatUint8Array(t)}isDecrypted(){return!1===this.isEncrypted}isMissingSecretKeyMaterial(){return void 0!==this.unparseableKeyMaterial||this.isDummy()}isDummy(){return!(!this.s2k||"gnu-dummy"!==this.s2k.type)}makeDummy(e=F){this.isDummy()||(this.isDecrypted()&&this.clearPrivateParams(),delete this.unparseableKeyMaterial,this.isEncrypted=null,this.keyMaterial=null,this.s2k=Li(T.s2k.gnu,e),this.s2k.algorithm=0,this.s2k.c=0,this.s2k.type="gnu-dummy",this.s2kUsage=254,this.symmetric=T.symmetric.aes256,this.isLegacyAEAD=null,this.usedModernAEAD=null)}async encrypt(e,t=F){if(this.isDummy())return;if(!this.isDecrypted())throw Error("Key packet is already encrypted");if(!e)throw Error("A non-empty passphrase is required for key encryption.");this.s2k=Ni(t),this.s2k.generateSalt();const r=Mn(this.algorithm,this.privateParams);this.symmetric=T.symmetric.aes256;const{blockSize:n}=Cr(this.symmetric);if(t.aeadProtect){this.s2kUsage=253,this.aead=t.preferredAEADAlgorithm;const i=Di(this.aead);this.isLegacyAEAD=5===this.version,this.usedModernAEAD=!this.isLegacyAEAD;const s=it(this.constructor.tag),a=await da(this.version,this.s2k,e,this.symmetric,this.aead,s,this.isLegacyAEAD,t),o=await i(this.symmetric,a);this.iv=this.isLegacyAEAD?de(n):de(i.ivLength);const c=this.isLegacyAEAD?new Uint8Array:N.concatUint8Array([s,this.writePublicKey()]);this.keyMaterial=await o.encrypt(r,this.iv.subarray(0,i.ivLength),c)}else{this.s2kUsage=254,this.usedModernAEAD=!1;const i=await da(this.version,this.s2k,e,this.symmetric,void 0,void 0,void 0,t);this.iv=de(n),this.keyMaterial=await Vn(this.symmetric,i,N.concatUint8Array([r,await Te(T.hash.sha1,r)]),this.iv)}}async decrypt(e,t=F){if(this.isDummy())return!1;if(this.unparseableKeyMaterial)throw Error("Key packet cannot be decrypted: unsupported S2K or cipher algo");if(this.isDecrypted())throw Error("Key packet is already decrypted.");let r;const n=it(this.constructor.tag);if(254!==this.s2kUsage&&253!==this.s2kUsage)throw 255===this.s2kUsage?Error("Encrypted private key is authenticated using an insecure two-byte hash"):Error("Private key is encrypted using an insecure S2K function: unsalted MD5");let i;if(r=await da(this.version,this.s2k,e,this.symmetric,this.aead,n,this.isLegacyAEAD,t),253===this.s2kUsage){const e=Di(this.aead,!0),t=await e(this.symmetric,r);try{const r=this.isLegacyAEAD?new Uint8Array:N.concatUint8Array([n,this.writePublicKey()]);i=await t.decrypt(this.keyMaterial,this.iv.subarray(0,e.ivLength),r)}catch(e){if("Authentication tag mismatch"===e.message)throw Error("Incorrect key passphrase: "+e.message);throw e}}else{const e=await qn(this.symmetric,r,this.keyMaterial,this.iv);i=e.subarray(0,-20);const t=await Te(T.hash.sha1,i);if(!N.equalsUint8Array(t,e.subarray(-20)))throw Error("Incorrect key passphrase")}try{const{privateParams:e}=Qn(this.algorithm,i,this.publicParams);this.privateParams=e}catch{throw Error("Error reading MPIs")}this.isEncrypted=!1,this.keyMaterial=null,this.s2kUsage=0,this.aead=null,this.symmetric=null,this.isLegacyAEAD=null}async validate(){if(this.isDummy())return;if(!this.isDecrypted())throw Error("Key is not decrypted");if(this.usedModernAEAD)return;let e;try{e=await Tn(this.algorithm,this.publicParams,this.privateParams)}catch{e=!1}if(!e)throw Error("Key is invalid")}async generate(e,t){if(6===this.version&&(this.algorithm===T.publicKey.ecdh&&t===T.curve.curve25519Legacy||this.algorithm===T.publicKey.eddsaLegacy))throw Error(`Cannot generate v6 keys of type 'ecc' with curve ${t}. Generate a key of type 'curve25519' instead`);const{privateParams:r,publicParams:n}=await Rn(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 da(e,t,r,n,i,s,a,o){if("argon2"===t.type&&!i)throw Error("Using Argon2 S2K without AEAD is not allowed");if("simple"===t.type&&6===e)throw Error("Using Simple S2K with version 6 keys is not allowed");const{keySize:c}=Cr(n),u=await t.produceKey(r,c,o);if(!i||5===e||a)return u;const h=N.concatUint8Array([s,new Uint8Array([e,n,i])]);return xr(T.hash.sha256,u,new Uint8Array,h,c)}class Aa{static get tag(){return T.packet.userID}constructor(){this.userID="",this.name="",this.email="",this.comment=""}static fromObject(e){if(N.isString(e)||e.name&&!N.isString(e.name)||e.email&&!N.isEmailAddress(e.email)||e.comment&&!N.isString(e.comment))throw 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=F){const r=N.decodeUTF8(e);if(r.length>t.maxUserIDLength)throw 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 N.encodeUTF8(this.userID)}equals(e){return e&&e.userID===this.userID}}class wa extends pa{static get tag(){return T.packet.secretSubkey}constructor(e=new Date,t=F){super(e,t)}}const ma=/*#__PURE__*/N.constructAllowedPackets([Ns]);class ba{constructor(e){this.packets=e||new js}write(){return this.packets.write()}armor(e=F){const t=this.packets.some((e=>e.constructor.tag===Ns.tag&&6!==e.version));return te(T.armor.signature,this.write(),void 0,void 0,void 0,t,e)}getSigningKeyIDs(){return this.packets.map((e=>e.issuerKeyID))}}async function ka(e,t){const r=new wa(e.date,t);return r.packets=null,r.algorithm=T.write(T.publicKey,e.algorithm),await r.generate(e.rsaBits,e.curve),await r.computeFingerprintAndKeyID(),r}async function Ea(e,t){const r=new pa(e.date,t);return r.packets=null,r.algorithm=T.write(T.publicKey,e.algorithm),await r.generate(e.rsaBits,e.curve,e.config),await r.computeFingerprintAndKeyID(),r}async function va(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 N.wrapError(`Could not find valid ${T.read(T.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 Ia(e,t,r=new Date){const n=N.normalizeDate(r);if(null!==n){const r=Ua(e,t);return!(e.created<=n&&n<r)}return!1}async function Ba(e,t,r,n){const i={};i.key=t,i.bind=e;const s={signatureType:T.signature.subkeyBinding};r.sign?(s.keyFlags=[T.keyFlags.signData],s.embeddedSignature=await Ka(i,[],e,{signatureType:T.signature.keyBinding},r.date,void 0,void 0,void 0,n)):s.keyFlags=[T.keyFlags.encryptCommunication|T.keyFlags.encryptStorage],r.keyExpirationTime>0&&(s.keyExpirationTime=r.keyExpirationTime,s.keyNeverExpires=!1);return await Ka(i,[],t,s,r.date,void 0,void 0,void 0,n)}async function Sa(e,t,r=new Date,n=[],i){const s=T.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=T.write(T.hash,t);c.set(e,c.has(e)?c.get(e)+1:1)}catch{}const u=t=>0===e.length||c.get(t)===e.length||t===s,h=()=>{if(0===c.size)return s;const e=Array.from(c.keys()).filter((e=>u(e))).sort(((e,t)=>Fe(e)-Fe(t)))[0];return Fe(e)>=Fe(s)?e:s};if(new Set([T.publicKey.ecdsa,T.publicKey.eddsaLegacy,T.publicKey.ed25519,T.publicKey.ed448]).has(t.algorithm)){const e=function(e,t){switch(e){case T.publicKey.ecdsa:case T.publicKey.eddsaLegacy:return Xr(t);case T.publicKey.ed25519:case T.publicKey.ed448:return At(e);default:throw Error("Unknown elliptic signing algo")}}(t.algorithm,t.publicParams.oid),r=u(a),n=Fe(a)>=Fe(e);if(r&&n)return a;{const t=h();return Fe(t)>=Fe(e)?t:e}}return u(a)?a:h()}async function Ka(e,t,r,n,i,s,a=[],o=!1,c){if(r.isDummy())throw Error("Cannot sign with a gnu-dummy key.");if(!r.isDecrypted())throw Error("Signing key is not decrypted.");const u=new Ns;return Object.assign(u,n),u.publicKeyAlgorithm=r.algorithm,u.hashAlgorithm=await Sa(t,r,i,s,c),u.rawNotations=[...a],await u.sign(r,e,i,o,c),u}async function Ca(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 N.equalsUint8Array(t.writeParams(),e.writeParams())}))||t[r].push(e)}))):t[r]=e)}async function Da(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=![T.reasonForRevocation.keyRetired,T.reasonForRevocation.keySuperseded,T.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 Ua(e,t){let r;return!1===t.keyNeverExpires&&(r=e.created.getTime()+1e3*t.keyExpirationTime),r?new Date(r):1/0}function Pa(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=N.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=T.write(T.curve,e.curve)}catch{throw Error("Unknown curve")}e.curve!==T.curve.ed25519Legacy&&e.curve!==T.curve.curve25519Legacy&&"ed25519"!==e.curve&&"curve25519"!==e.curve||(e.curve=e.sign?T.curve.ed25519Legacy:T.curve.curve25519Legacy),e.sign?e.algorithm=e.curve===T.curve.ed25519Legacy?T.publicKey.eddsaLegacy:T.publicKey.ecdsa:e.algorithm=T.publicKey.ecdh;break;case"curve25519":e.algorithm=e.sign?T.publicKey.ed25519:T.publicKey.x25519;break;case"curve448":e.algorithm=e.sign?T.publicKey.ed448:T.publicKey.x448;break;case"rsa":e.algorithm=T.publicKey.rsaEncryptSign;break;default:throw Error("Unsupported key type "+e.type)}return e}function xa(e,t,r){switch(e.algorithm){case T.publicKey.rsaEncryptSign:case T.publicKey.rsaSign:case T.publicKey.dsa:case T.publicKey.ecdsa:case T.publicKey.eddsaLegacy:case T.publicKey.ed25519:case T.publicKey.ed448:if(!t.keyFlags&&!r.allowMissingKeyFlags)throw Error("None of the key flags is set: consider passing `config.allowMissingKeyFlags`");return!t.keyFlags||!!(t.keyFlags[0]&T.keyFlags.signData);default:return!1}}function Qa(e,t,r){switch(e.algorithm){case T.publicKey.rsaEncryptSign:case T.publicKey.rsaEncrypt:case T.publicKey.elgamal:case T.publicKey.ecdh:case T.publicKey.x25519:case T.publicKey.x448:if(!t.keyFlags&&!r.allowMissingKeyFlags)throw Error("None of the key flags is set: consider passing `config.allowMissingKeyFlags`");return!t.keyFlags||!!(t.keyFlags[0]&T.keyFlags.encryptCommunication)||!!(t.keyFlags[0]&T.keyFlags.encryptStorage);default:return!1}}function Ma(e,t,r){if(!t.keyFlags&&!r.allowMissingKeyFlags)throw Error("None of the key flags is set: consider passing `config.allowMissingKeyFlags`");switch(e.algorithm){case T.publicKey.rsaEncryptSign:case T.publicKey.rsaEncrypt:case T.publicKey.elgamal:case T.publicKey.ecdh:case T.publicKey.x25519:case T.publicKey.x448:return!(!(!t.keyFlags||!!(t.keyFlags[0]&T.keyFlags.signData))||!r.allowInsecureDecryptionWithSigningKeys)||(!t.keyFlags||!!(t.keyFlags[0]&T.keyFlags.encryptCommunication)||!!(t.keyFlags[0]&T.keyFlags.encryptStorage));default:return!1}}function Ra(e,t){const r=T.write(T.publicKey,e.algorithm),n=e.getAlgorithmInfo();if(t.rejectPublicKeyAlgorithms.has(r))throw Error(n.algorithm+" keys are considered too weak.");switch(r){case T.publicKey.rsaEncryptSign:case T.publicKey.rsaSign:case T.publicKey.rsaEncrypt:if(n.bits<t.minRSABits)throw Error(`RSA keys shorter than ${t.minRSABits} bits are considered too weak.`);break;case T.publicKey.ecdsa:case T.publicKey.eddsaLegacy:case T.publicKey.ecdh:if(t.rejectCurves.has(n.curve))throw Error(`Support for ${n.algorithm} keys using curve ${n.curve} is disabled.`)}}class Ta{constructor(e,t){this.userID=e.constructor.tag===T.packet.userID?e:null,this.userAttribute=e.constructor.tag===T.packet.userAttribute?e:null,this.selfCertifications=[],this.otherCertifications=[],this.revocationSignatures=[],this.mainKey=t}toPacketList(){const e=new js;return e.push(this.userID||this.userAttribute),e.push(...this.revocationSignatures),e.push(...this.selfCertifications),e.push(...this.otherCertifications),e}clone(){const e=new Ta(this.userID||this.userAttribute,this.mainKey);return e.selfCertifications=[...this.selfCertifications],e.otherCertifications=[...this.otherCertifications],e.revocationSignatures=[...this.revocationSignatures],e}async certify(e,t,r){const n=this.mainKey.keyPacket,i={userID:this.userID,userAttribute:this.userAttribute,key:n},s=new Ta(i.userID||i.userAttribute,this.mainKey);return s.otherCertifications=await Promise.all(e.map((async function(e){if(!e.isPrivate())throw Error("Need private key for signing");if(e.hasSameFingerprintAs(n))throw Error("The user's own key can only be used for self-certifications");const s=await e.getSigningKey(void 0,t,void 0,r);return Ka(i,[e],s.keyPacket,{signatureType:T.signature.certGeneric,keyFlags:[T.keyFlags.certifyKeys|T.keyFlags.signData]},t,void 0,void 0,void 0,r)}))),await s.update(this,t,r),s}async isRevoked(e,t,r=new Date,n=F){const i=this.mainKey.keyPacket;return Da(i,T.signature.certRevocation,{key:i,userID:this.userID,userAttribute:this.userAttribute},this.revocationSignatures,e,t,r,n)}async verifyCertificate(e,t,r=new Date,n){const i=this,s=this.mainKey.keyPacket,a={userID:this.userID,userAttribute:this.userAttribute,key:s},{issuerKeyID:o}=e,c=t.filter((e=>e.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 Error("User certificate is revoked");try{await e.verify(s.keyPacket,T.signature.certGeneric,a,r,void 0,n)}catch(e){throw N.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 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 Error("Self-certification is revoked");try{await s.verify(n,T.signature.certGeneric,i,e,void 0,t)}catch(e){throw N.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 Ca(e,this,"selfCertifications",t,(async function(e){try{return await e.verify(n,T.signature.certGeneric,i,t,!1,r),!0}catch{return!1}})),await Ca(e,this,"otherCertifications",t),await Ca(e,this,"revocationSignatures",t,(function(e){return Da(n,T.signature.certRevocation,i,[e],void 0,void 0,t,r)}))}async revoke(e,{flag:t=T.reasonForRevocation.noReason,string:r=""}={},n=new Date,i=F){const s={userID:this.userID,userAttribute:this.userAttribute,key:e},a=new Ta(s.userID||s.userAttribute,this.mainKey);return a.revocationSignatures.push(await Ka(s,[],e,{signatureType:T.signature.certRevocation,reasonForRevocationFlag:T.write(T.reasonForRevocation,t),reasonForRevocationString:r},n,void 0,void 0,!1,i)),await a.update(this),a}}class Fa{constructor(e,t){this.keyPacket=e,this.bindingSignatures=[],this.revocationSignatures=[],this.mainKey=t}toPacketList(){const e=new js;return e.push(this.keyPacket),e.push(...this.revocationSignatures),e.push(...this.bindingSignatures),e}clone(){const e=new Fa(this.keyPacket,this.mainKey);return e.bindingSignatures=[...this.bindingSignatures],e.revocationSignatures=[...this.revocationSignatures],e}async isRevoked(e,t,r=new Date,n=F){const i=this.mainKey.keyPacket;return Da(i,T.signature.subkeyRevocation,{key:i,bind:this.keyPacket},this.revocationSignatures,e,t,r,n)}async verify(e=new Date,t=F){const r=this.mainKey.keyPacket,n={key:r,bind:this.keyPacket},i=await va(this.bindingSignatures,r,T.signature.subkeyBinding,n,e,t);if(i.revoked||await this.isRevoked(i,null,e,t))throw Error("Subkey is revoked");if(Ia(this.keyPacket,i,e))throw Error("Subkey is expired");return i}async getExpirationTime(e=new Date,t=F){const r=this.mainKey.keyPacket,n={key:r,bind:this.keyPacket};let i;try{i=await va(this.bindingSignatures,r,T.signature.subkeyBinding,n,e,t)}catch{return null}const s=Ua(this.keyPacket,i),a=i.getExpirationTime();return s<a?s:a}async update(e,t=new Date,r=F){const n=this.mainKey.keyPacket;if(!this.hasSameFingerprintAs(e))throw Error("Subkey update method: fingerprints of subkeys not equal");this.keyPacket.constructor.tag===T.packet.publicSubkey&&e.keyPacket.constructor.tag===T.packet.secretSubkey&&(this.keyPacket=e.keyPacket);const i=this,s={key:n,bind:i.keyPacket};await Ca(e,this,"bindingSignatures",t,(async function(e){for(let t=0;t<i.bindingSignatures.length;t++)if(i.bindingSignatures[t].issuerKeyID.equals(e.issuerKeyID))return e.created>i.bindingSignatures[t].created&&(i.bindingSignatures[t]=e),!1;try{return await e.verify(n,T.signature.subkeyBinding,s,t,void 0,r),!0}catch{return!1}})),await Ca(e,this,"revocationSignatures",t,(function(e){return Da(n,T.signature.subkeyRevocation,s,[e],void 0,void 0,t,r)}))}async revoke(e,{flag:t=T.reasonForRevocation.noReason,string:r=""}={},n=new Date,i=F){const s={key:e,bind:this.keyPacket},a=new Fa(this.keyPacket,this.mainKey);return a.revocationSignatures.push(await Ka(s,[],e,{signatureType:T.signature.subkeyRevocation,reasonForRevocationFlag:T.write(T.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=>{Fa.prototype[e]=function(){return this.keyPacket[e]()}}));const La=/*#__PURE__*/N.constructAllowedPackets([Ns]),Na=new Set([T.packet.publicKey,T.packet.secretKey]),Oa=new Set([T.packet.publicKey,T.packet.secretKey,T.packet.publicSubkey,T.packet.secretSubkey]);class Ha{packetListToStructure(e,t=new Set){let r,n,i,s;for(const a of e){if(a instanceof ft){Oa.has(a.tag)&&!s&&(s=Na.has(a.tag)?Na:Oa);continue}const e=a.constructor.tag;if(s){if(!s.has(e))continue;s=null}if(t.has(e))throw Error("Unexpected packet type: "+e);switch(e){case T.packet.publicKey:case T.packet.secretKey:if(this.keyPacket)throw Error("Key block contains multiple keys");if(this.keyPacket=a,n=this.getKeyID(),!n)throw Error("Missing Key ID");break;case T.packet.userID:case T.packet.userAttribute:r=new Ta(a,this),this.users.push(r);break;case T.packet.publicSubkey:case T.packet.secretSubkey:r=null,i=new Fa(a,this),this.subkeys.push(i);break;case T.packet.signature:switch(a.signatureType){case T.signature.certGeneric:case T.signature.certPersona:case T.signature.certCasual:case T.signature.certPositive:if(!r){N.printDebug("Dropping certification signatures without preceding user packet");continue}a.issuerKeyID.equals(n)?r.selfCertifications.push(a):r.otherCertifications.push(a);break;case T.signature.certRevocation:r?r.revocationSignatures.push(a):this.directSignatures.push(a);break;case T.signature.key:this.directSignatures.push(a);break;case T.signature.subkeyBinding:if(!i){N.printDebug("Dropping subkey binding signature without preceding subkey packet");continue}i.bindingSignatures.push(a);break;case T.signature.keyRevocation:this.revocationSignatures.push(a);break;case T.signature.subkeyRevocation:if(!i){N.printDebug("Dropping subkey revocation signature without preceding subkey packet");continue}i.revocationSignatures.push(a)}}}}toPacketList(){const e=new js;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=F){await this.verifyPrimaryKey(t,r,n);const i=this.keyPacket;try{Ra(i,n)}catch(e){throw N.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 va(r.bindingSignatures,i,T.signature.subkeyBinding,e,t,n);if(!xa(r.keyPacket,s,n))continue;if(!s.embeddedSignature)throw Error("Missing embedded signature");return await va([s.embeddedSignature],r.keyPacket,T.signature.keyBinding,e,t,n),Ra(r.keyPacket,n),r}catch(e){a=e}try{const s=await this.getPrimarySelfSignature(t,r,n);if((!e||i.getKeyID().equals(e))&&xa(i,s,n))return Ra(i,n),this}catch(e){a=e}throw N.wrapError("Could not find valid signing key packet in key "+this.getKeyID().toHex(),a)}async getEncryptionKey(e,t=new Date,r={},n=F){await this.verifyPrimaryKey(t,r,n);const i=this.keyPacket;try{Ra(i,n)}catch(e){throw N.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 va(r.bindingSignatures,i,T.signature.subkeyBinding,e,t,n);if(Qa(r.keyPacket,s,n))return Ra(r.keyPacket,n),r}catch(e){a=e}try{const s=await this.getPrimarySelfSignature(t,r,n);if((!e||i.getKeyID().equals(e))&&Qa(i,s,n))return Ra(i,n),this}catch(e){a=e}throw N.wrapError("Could not find valid encryption key packet in key "+this.getKeyID().toHex(),a)}async isRevoked(e,t,r=new Date,n=F){return Da(this.keyPacket,T.signature.keyRevocation,{key:this.keyPacket},this.revocationSignatures,e,t,r,n)}async verifyPrimaryKey(e=new Date,t={},r=F){const n=this.keyPacket;if(await this.isRevoked(null,null,e,r))throw Error("Primary key is revoked");if(Ia(n,await this.getPrimarySelfSignature(e,t,r),e))throw Error("Primary key is expired");if(6!==n.version){const t=await va(this.directSignatures,n,T.signature.key,{key:n},e,r).catch((()=>{}));if(t&&Ia(n,t,e))throw Error("Primary key is expired")}}async getExpirationTime(e,t=F){let r;try{const n=await this.getPrimarySelfSignature(null,e,t),i=Ua(this.keyPacket,n),s=n.getExpirationTime(),a=6!==this.keyPacket.version&&await va(this.directSignatures,this.keyPacket,T.signature.key,{key:this.keyPacket},null,t).catch((()=>{}));if(a){const e=Ua(this.keyPacket,a);r=Math.min(i,s,e)}else r=i<s?i:s}catch{r=null}return N.normalizeDate(r)}async getPrimarySelfSignature(e=new Date,t={},r=F){const n=this.keyPacket;if(6===n.version)return va(this.directSignatures,n,T.signature.key,{key:n},e,r);const{selfCertification:i}=await this.getPrimaryUser(e,t,r);return i}async getPrimaryUser(e=new Date,t={},r=F){const n=this.keyPacket,i=[];let s;for(let a=0;a<this.users.length;a++)try{const s=this.users[a];if(!s.userID)continue;if(void 0!==t.name&&s.userID.name!==t.name||void 0!==t.email&&s.userID.email!==t.email||void 0!==t.comment&&s.userID.comment!==t.comment)throw Error("Could not find user that matches that user ID");const o={userID:s.userID,key:n},c=await va(s.selfCertifications,n,T.signature.certGeneric,o,e,r);i.push({index:a,user:s,selfCertification:c})}catch(e){s=e}if(!i.length)throw s||Error("Could not find primary user");await Promise.all(i.map((async t=>{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 Error("Primary user is revoked");return a}async update(e,t=new Date,r=F){if(!this.hasSameFingerprintAs(e))throw 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 Error("Cannot update public key with private key if subkeys mismatch");return e.update(this,r)}const n=this.clone();return await Ca(e,n,"revocationSignatures",t,(i=>Da(n.keyPacket,T.signature.keyRevocation,n,[i],null,e.keyPacket,t,r))),await Ca(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=F){const r={key:this.keyPacket},n=await va(this.revocationSignatures,this.keyPacket,T.signature.keyRevocation,r,e,t),i=new js;i.push(n);const s=6!==this.keyPacket.version;return te(T.armor.publicKey,i.write(),null,null,"This is a revocation certificate",s,t)}async applyRevocationCertificate(e,t=new Date,r=F){const n=await ee(e),i=(await js.fromBinary(n.data,La,r)).findPacket(T.packet.signature);if(!i||i.signatureType!==T.signature.keyRevocation)throw Error("Could not find revocation signature packet");if(!i.issuerKeyID.equals(this.getKeyID()))throw Error("Revocation signature does not match key");try{await i.verify(this.keyPacket,T.signature.keyRevocation,{key:this.keyPacket},t,void 0,r)}catch(e){throw N.wrapError("Could not verify revocation signature",e)}const s=this.clone();return s.revocationSignatures.push(i),s}async signPrimaryUser(e,t,r,n=F){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=F){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=F){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=F){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=>{Ha.prototype[e]=Fa.prototype[e]}));class za extends Ha{constructor(e){if(super(),this.keyPacket=null,this.revocationSignatures=[],this.directSignatures=[],this.users=[],this.subkeys=[],e&&(this.packetListToStructure(e,new Set([T.packet.secretKey,T.packet.secretSubkey])),!this.keyPacket))throw Error("Invalid key: missing public-key packet")}isPrivate(){return!1}toPublic(){return this}armor(e=F){const t=6!==this.keyPacket.version;return te(T.armor.publicKey,this.toPacketList().write(),void 0,void 0,void 0,t,e)}}class Ga extends za{constructor(e){if(super(),this.packetListToStructure(e,new Set([T.packet.publicKey,T.packet.publicSubkey])),!this.keyPacket)throw Error("Invalid key: missing private-key packet")}isPrivate(){return!0}toPublic(){const e=new js,t=this.toPacketList();for(const r of t)switch(r.constructor.tag){case T.packet.secretKey:{const t=ha.fromSecretKeyPacket(r);e.push(t);break}case T.packet.secretSubkey:{const t=ya.fromSecretSubkeyPacket(r);e.push(t);break}default:e.push(r)}return new za(e)}armor(e=F){const t=6!==this.keyPacket.version;return te(T.armor.privateKey,this.toPacketList().write(),void 0,void 0,void 0,t,e)}async getDecryptionKeys(e,t=new Date,r={},n=F){const i=this.keyPacket,s=[];let a=null;for(let r=0;r<this.subkeys.length;r++)if(!e||this.subkeys[r].getKeyID().equals(e,!0)){if(this.subkeys[r].keyPacket.isDummy()){a=a||Error("Gnu-dummy key packets cannot be used for decryption");continue}try{const e={key:i,bind:this.subkeys[r].keyPacket},a=await va(this.subkeys[r].bindingSignatures,i,T.signature.subkeyBinding,e,t,n);Ma(this.subkeys[r].keyPacket,a,n)&&s.push(this.subkeys[r])}catch(e){a=e}}const o=await this.getPrimarySelfSignature(t,r,n);if(e&&!i.getKeyID().equals(e,!0)||!Ma(i,o,n)||(i.isDummy()?a=a||Error("Gnu-dummy key packets cannot be used for decryption"):s.push(this)),0===s.length)throw a||Error("No decryption key packets found");return s}isDecrypted(){return this.getKeys().some((({keyPacket:e})=>e.isDecrypted()))}async validate(e=F){if(!this.isPrivate())throw 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 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=T.reasonForRevocation.noReason,string:t=""}={},r=new Date,n=F){if(!this.isPrivate())throw Error("Need private key for revoking");const i={key:this.keyPacket},s=this.clone();return s.revocationSignatures.push(await Ka(i,[],this.keyPacket,{signatureType:T.signature.keyRevocation,reasonForRevocationFlag:T.write(T.reasonForRevocation,e),reasonForRevocationString:t},r,void 0,void 0,void 0,n)),s}async addSubkey(e={}){const t={...F,...e.config};if(e.passphrase)throw Error("Subkey could not be encrypted here, please encrypt whole key");if(e.rsaBits<t.minRSABits)throw Error(`rsaBits should be at least ${t.minRSABits}, got: ${e.rsaBits}`);const r=this.keyPacket;if(r.isDummy())throw Error("Cannot add subkey to gnu-dummy primary key");if(!r.isDecrypted())throw Error("Key is not decrypted");const n=r.getAlgorithmInfo();n.type=function(e){switch(T.write(T.publicKey,e)){case T.publicKey.rsaEncrypt:case T.publicKey.rsaEncryptSign:case T.publicKey.rsaSign:case T.publicKey.dsa:return"rsa";case T.publicKey.ecdsa:case T.publicKey.eddsaLegacy:return"ecc";case T.publicKey.ed25519:return"curve25519";case T.publicKey.ed448:return"curve448";default:throw Error("Unsupported algorithm")}}(n.algorithm),n.rsaBits=n.bits||4096,n.curve=n.curve||"curve25519Legacy",e=Pa(e,n);const i=await ka(e,{...t,v6Keys:6===this.keyPacket.version});Ra(i,t);const s=await Ba(i,r,e,t),a=this.toPacketList();return a.push(i,s),new Ga(a)}}const ja=/*#__PURE__*/N.constructAllowedPackets([ha,ya,pa,wa,Aa,ga,Ns]);function Va(e){for(const t of e)switch(t.constructor.tag){case T.packet.secretKey:return new Ga(e);case T.packet.publicKey:return new za(e)}throw Error("No key packet found")}async function qa(e,t,r,n){r.passphrase&&await e.encrypt(r.passphrase,n),await Promise.all(t.map((async function(e,t){const i=r.subkeys[t].passphrase;i&&await e.encrypt(i,n)})));const i=new js;function s(e,t){return[t,...e.filter((e=>e!==t))]}function a(){const e={};e.keyFlags=[T.keyFlags.certifyKeys|T.keyFlags.signData];const t=s([T.symmetric.aes256,T.symmetric.aes128],n.preferredSymmetricAlgorithm);if(e.preferredSymmetricAlgorithms=t,n.aeadProtect){const r=s([T.aead.gcm,T.aead.eax,T.aead.ocb],n.preferredAEADAlgorithm);e.preferredCipherSuites=r.flatMap((e=>t.map((t=>[t,e]))))}return e.preferredHashAlgorithms=s([T.hash.sha512,T.hash.sha256,T.hash.sha3_512,T.hash.sha3_256],n.preferredHashAlgorithm),e.preferredCompressionAlgorithms=s([T.compression.uncompressed,T.compression.zlib,T.compression.zip],n.preferredCompressionAlgorithm),e.features=[0],e.features[0]|=T.features.modificationDetection,n.aeadProtect&&(e.features[0]|=T.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=T.signature.key;const o=await Ka(t,[],e,s,r.date,void 0,r.signatureNotations,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():{};c.signatureType=T.signature.certPositive,0===i&&(c.isPrimaryUserID=!0);return{userIDPacket:s,signaturePacket:await Ka(o,[],e,c,r.date,void 0,r.signatureNotations,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 Ba(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 Ka(o,[],e,{signatureType:T.signature.keyRevocation,reasonForRevocationFlag:T.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 Ga(i)}const _a=/*#__PURE__*/N.constructAllowedPackets([Ms,Zs,aa,na,la,oa,ua,zs,Ns]),Ya=/*#__PURE__*/N.constructAllowedPackets([ua]),Za=/*#__PURE__*/N.constructAllowedPackets([Ns]);class Ja{constructor(e){this.packets=e||new js}getEncryptionKeyIDs(){const e=[];return this.packets.filterByTag(T.packet.publicKeyEncryptedSessionKey).forEach((function(t){e.push(t.publicKeyID)})),e}getSigningKeyIDs(){const e=this.unwrapCompressed(),t=e.packets.filterByTag(T.packet.onePassSignature);if(t.length>0)return t.map((e=>e.issuerKeyID));return e.packets.filterByTag(T.packet.signature).map((e=>e.issuerKeyID))}async decrypt(e,t,r,n=new Date,i=F){const s=this.packets.filterByTag(T.packet.symmetricallyEncryptedData,T.packet.symEncryptedIntegrityProtectedData,T.packet.aeadEncryptedData);if(0===s.length)throw Error("No encrypted data found");const a=s[0],o=a.cipherAlgorithm,c=r||await this.decryptSessionKeys(e,t,o,n,i);let u=null;const h=Promise.all(c.map((async({algorithm:e,data:t})=>{if(!N.isUint8Array(t)||!a.cipherAlgorithm&&!N.isString(e))throw Error("Invalid session key for decryption.");try{const r=a.cipherAlgorithm||T.write(T.symmetric,e);await a.decrypt(r,t,i)}catch(e){N.printDebugError(e),u=e}})));if(P(a.encrypted),a.encrypted=null,await h,!a.packets||!a.packets.length)throw u||Error("Decryption failed.");const f=new Ja(a.packets);return a.packets=new js,f}async decryptSessionKeys(e,t,r,n=new Date,i=F){let s,a=[];if(t){const e=this.packets.filterByTag(T.packet.symEncryptedSessionKey);if(0===e.length)throw Error("No symmetrically encrypted session key packet found.");await Promise.all(t.map((async function(t,r){let n;n=r?await js.fromBinary(e.write(),Ya,i):e,await Promise.all(n.map((async function(e){try{await e.decrypt(t,i),a.push(e)}catch(e){N.printDebugError(e),e instanceof xi&&(s=e)}})))})))}else{if(!e)throw Error("No key or password specified.");{const t=this.packets.filterByTag(T.packet.publicKeyEncryptedSessionKey);if(0===t.length)throw 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=[T.symmetric.aes256,T.symmetric.aes128,T.symmetric.tripledes,T.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 Error("Decryption key is not decrypted.");if(i.constantTimePKCS1Decryption&&(t.publicKeyAlgorithm===T.publicKey.rsaEncrypt||t.publicKeyAlgorithm===T.publicKey.rsaEncryptSign||t.publicKeyAlgorithm===T.publicKey.rsaSign||t.publicKeyAlgorithm===T.publicKey.elgamal)){const n=t.write();await Promise.all((r?[r]:Array.from(i.constantTimePKCS1DecryptionSupportedSymmetricAlgorithms)).map((async t=>{const r=new oa;r.read(n);const i={sessionKeyAlgorithm:t,sessionKey:Fn(t)};try{await r.decrypt(e,i),a.push(r)}catch(e){N.printDebugError(e),s=e}})))}else try{await t.decrypt(e);const n=r||t.sessionKeyAlgorithm;if(n&&!c.includes(T.write(T.symmetric,n)))throw Error("A non-preferred symmetric algorithm was used.");a.push(t)}catch(e){N.printDebugError(e),s=e}})))}))),P(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+N.uint8ArrayToString(t.sessionKey);return!e.has(r)&&(e.add(r),!0)}))}return a.map((e=>({data:e.sessionKey,algorithm:e.sessionKeyAlgorithm&&T.read(T.symmetric,e.sessionKeyAlgorithm)})))}throw s||Error("Session key decryption failed.")}getLiteralData(){const e=this.unwrapCompressed().packets.findPacket(T.packet.literalData);return e&&e.getBytes()||null}getFilename(){const e=this.unwrapCompressed().packets.findPacket(T.packet.literalData);return e&&e.getFilename()||null}getText(){const e=this.unwrapCompressed().packets.findPacket(T.packet.literalData);return e?e.getText():null}static async generateSessionKey(e=[],t=new Date,r=[],n=F){const{symmetricAlgo:i,aeadAlgo:s}=await async function(e=[],t=new Date,r=[],n=F){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]&T.features.seipdv2)):n.aeadProtect){const e={symmetricAlgo:T.symmetric.aes128,aeadAlgo:T.aead.ocb},t=[{symmetricAlgo:n.preferredSymmetricAlgorithm,aeadAlgo:n.preferredAEADAlgorithm},{symmetricAlgo:n.preferredSymmetricAlgorithm,aeadAlgo:T.aead.ocb},{symmetricAlgo:T.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=T.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=T.read(T.symmetric,i),o=s?T.read(T.aead,s):void 0;await Promise.all(e.map((e=>e.getEncryptionKey().catch((()=>null)).then((e=>{if(e&&(e.keyPacket.algorithm===T.publicKey.x25519||e.keyPacket.algorithm===T.publicKey.x448)&&!o&&!N.isAES(i))throw 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.")})))));return{data:Fn(i),algorithm:a,aeadAlgorithm:o}}async encrypt(e,t,r,n=!1,i=[],s=new Date,a=[],o=F){if(r){if(!N.isUint8Array(r.data)||!N.isString(r.algorithm))throw Error("Invalid session key for encryption.")}else if(e&&e.length)r=await Ja.generateSessionKey(e,s,a,o);else{if(!t||!t.length)throw Error("No keys, passwords, or session key provided.");r=await Ja.generateSessionKey(void 0,void 0,void 0,o)}const{data:c,algorithm:u,aeadAlgorithm:h}=r,f=await Ja.encryptSessionKey(c,u,h,e,t,n,i,s,a,o),l=na.fromObject({version:h?2:1,aeadAlgorithm:h?T.write(T.aead,h):null});l.packets=this.packets;const y=T.write(T.symmetric,u);return await l.encrypt(y,c,o),f.packets.push(l),l.packets=new js,f}static async encryptSessionKey(e,t,r,n,i,s=!1,a=[],o=new Date,c=[],u=F){const h=new js,f=T.write(T.symmetric,t),l=r&&T.write(T.aead,r);if(n){const t=await Promise.all(n.map((async function(t,r){const n=await t.getEncryptionKey(a[r],o,c,u),i=oa.fromObject({version:l?6:3,encryptionKeyPacket:n.keyPacket,anonymousRecipient:s,sessionKey:e,sessionKeyAlgorithm:f});return await i.encrypt(n.keyPacket),delete i.sessionKey,i})));h.push(...t)}if(i){const t=async function(e,t){try{return await e.decrypt(t,u),1}catch{return 0}},r=(e,t)=>e+t,n=async function(e,s,a,o){const c=new ua(u);if(c.sessionKey=e,c.sessionKeyAlgorithm=s,a&&(c.aeadAlgorithm=a),await c.encrypt(o,u),u.passwordCollisionCheck){if(1!==(await Promise.all(i.map((e=>t(c,e))))).reduce(r))return n(e,s,o)}return delete c.sessionKey,c},s=await Promise.all(i.map((t=>n(e,f,l,t))));h.push(...s)}return new Ja(h)}async sign(e=[],t=[],r=null,n=[],i=new Date,s=[],a=[],o=[],c=F){const u=new js,h=this.packets.findPacket(T.packet.literalData);if(!h)throw Error("No literal data packet to sign.");const f=await Wa(h,e,t,r,n,i,s,a,o,!1,c),l=f.map(((e,t)=>zs.fromSignaturePacket(e,0===t))).reverse();return u.push(...l),u.push(h),u.push(...f),new Ja(u)}compress(e,t=F){if(e===T.compression.uncompressed)return this;const r=new Zs(t);r.algorithm=e,r.packets=this.packets;const n=new js;return n.push(r),new Ja(n)}async signDetached(e=[],t=[],r=null,n=[],i=new Date,s=[],a=[],o=[],c=F){const u=this.packets.findPacket(T.packet.literalData);if(!u)throw Error("No literal data packet to sign.");return new ba(await Wa(u,e,t,r,n,i,s,a,o,!0,c))}async verify(e,t=new Date,r=F){const n=this.unwrapCompressed(),i=n.packets.filterByTag(T.packet.literalData);if(1!==i.length)throw Error("Can only verify message with one literal data packet.");let s=n.packets;c(s.stream)&&(s=s.concat(await U(s.stream,(e=>e||[]))));const a=s.filterByTag(T.packet.onePassSignature).reverse(),o=s.filterByTag(T.packet.signature);return a.length&&!o.length&&N.isStream(s.stream)&&!c(s.stream)?(await Promise.all(a.map((async e=>{e.correspondingSig=new Promise(((t,r)=>{e.correspondingSigResolve=t,e.correspondingSigReject=r})),e.signatureData=x((async()=>(await e.correspondingSig).signatureData)),e.hashed=U(await e.hash(e.signatureType,i[0],void 0,!1)),e.hashed.catch((()=>{}))}))),s.stream=I(s.stream,(async(e,t)=>{const r=Q(e),n=M(t);try{for(let e=0;e<a.length;e++){const{value:t}=await r.read();a[e].correspondingSigResolve(t)}await r.readToEnd(),await n.ready,await n.close()}catch(e){a.forEach((t=>{t.correspondingSigReject(e)})),await n.abort(e)}})),Xa(a,i,e,t,!1,r)):Xa(o,i,e,t,!1,r)}async verifyDetached(e,t,r=new Date,n=F){const i=this.unwrapCompressed().packets.filterByTag(T.packet.literalData);if(1!==i.length)throw Error("Can only verify message with one literal data packet.");return Xa(e.packets.filterByTag(T.packet.signature),i,t,r,!0,n)}unwrapCompressed(){const e=this.packets.filterByTag(T.packet.compressedData);return e.length?new Ja(e[0].packets):this}async appendSignature(e,t=F){await this.packets.read(N.isUint8Array(e)?e:(await ee(e)).data,Za,t)}write(){return this.packets.write()}armor(e=F){const t=this.packets[this.packets.length-1],r=t.constructor.tag===na.tag?2!==t.version:this.packets.some((e=>e.constructor.tag===Ns.tag&&6!==e.version));return te(T.armor.message,this.write(),null,null,null,r,e)}}async function Wa(e,t,r=[],n=null,i=[],s=new Date,a=[],o=[],c=[],u=!1,h=F){const f=new js,l=null===e.text?T.signature.binary:T.signature.text;if(await Promise.all(t.map((async(t,n)=>{const f=a[n];if(!t.isPrivate())throw Error("Need private key for signing");const y=await t.getSigningKey(i[n],s,f,h);return Ka(e,r.length?r:[t],y.keyPacket,{signatureType:l},s,o,c,u,h)}))).then((e=>{f.push(...e)})),n){const e=n.packets.filterByTag(T.packet.signature);f.push(...e)}return f}function Xa(e,t,r,n=new Date,i=!1,s=F){return e.filter((e=>["text","binary"].includes(T.read(T.signature,e.signatureType)))).map((e=>function(e,t,r,n=new Date,i=!1,s=F){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 zs?e.correspondingSig:e,u={keyID:e.issuerKeyID,verified:(async()=>{if(!o)throw 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 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 js;return e&&t.push(e),new ba(t)})()};return u.signature.catch((()=>{})),u.verified.catch((()=>{})),u}(e,t,r,n,i,s)))}const $a=/*#__PURE__*/N.constructAllowedPackets([Ns]);class eo{constructor(e,t){if(this.text=N.removeTrailingSpaces(e).replace(/\r?\n/g,"\r\n"),t&&!(t instanceof ba))throw Error("Invalid signature input");this.signature=t||new ba(new js)}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=F){const u=new Ms;u.setText(this.text);const h=new ba(await Wa(u,e,t,r,n,i,s,a,o,!0,c));return new eo(this.text,h)}verify(e,t=new Date,r=F){const n=this.signature.packets.filterByTag(T.packet.signature),i=new Ms;return i.setText(this.text),Xa(n,[i],e,t,!0,r)}getText(){return this.text.replace(/\r\n/g,"\n")}armor(e=F){const t=this.signature.packets.some((e=>6!==e.version)),r={hash:t?Array.from(new Set(this.signature.packets.map((e=>T.read(T.hash,e.hashAlgorithm).toUpperCase())))).join():null,text:this.text,data:this.signature.packets.write()};return te(T.armor.signed,r,void 0,void 0,void 0,t,e)}}function to(e){if(!(e instanceof Ja))throw Error("Parameter [message] needs to be of type Message")}function ro(e){if(!(e instanceof eo||e instanceof Ja))throw Error("Parameter [message] needs to be of type Message or CleartextMessage")}function no(e){if("armored"!==e&&"binary"!==e&&"object"!==e)throw Error("Unsupported format "+e)}const io=Object.keys(F).length;function so(e){const t=Object.keys(e);if(t.length!==io)for(const e of t)if(void 0===F[e])throw Error("Unknown config property: "+e)}function ao(e){return e&&!N.isArray(e)&&(e=[e]),e}async function oo(e){return"array"===N.isStream(e)?U(e):e}function co(e,t,...r){e.data=I(t.packets.stream,(async(t,n)=>{await m(e.data,n,{preventClose:!0});const i=M(n);try{await U(t,(e=>e)),await Promise.all(r.map((e=>U(e.packets.stream,(e=>e))))),await i.close()}catch(e){await i.abort(e)}}))}function uo(e,t,r){switch(t){case"object":return e;case"armored":return e.armor(r);case"binary":return e.write();default:throw Error("Unsupported format "+t)}}const ho="object"==typeof t&&"crypto"in t?t.crypto:void 0;
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function fo(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function lo(e){if(!Number.isSafeInteger(e)||e<0)throw Error("positive integer expected, got "+e)}function yo(e,...t){if(!fo(e))throw Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw Error("Uint8Array expected of length "+t+", got length="+e.length)}function go(e){if("function"!=typeof e||"function"!=typeof e.create)throw Error("Hash should be wrapped by utils.createHasher");lo(e.outputLen),lo(e.blockLen)}function po(e,t=!0){if(e.destroyed)throw Error("Hash instance has been destroyed");if(t&&e.finished)throw Error("Hash#digest() has already been called")}function Ao(e,t){yo(e);const r=t.outputLen;if(e.length<r)throw Error("digestInto() expects output buffer of length at least "+r)}function wo(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function mo(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function bo(e,t){return e<<32-t|e>>>t}function ko(e,t){return e<<t|e>>>32-t>>>0}const Eo=/* @__PURE__ */(()=>68===new Uint8Array(new Uint32Array([287454020]).buffer)[0])()?e=>e:function(e){for(let r=0;r<e.length;r++)e[r]=(t=e[r])<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255;var t;return e},vo=/* @__PURE__ */(()=>"function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex)(),Io=/* @__PURE__ */Array.from({length:256},((e,t)=>t.toString(16).padStart(2,"0")));function Bo(e){if(yo(e),vo)return e.toHex();let t="";for(let r=0;r<e.length;r++)t+=Io[e[r]];return t}const So=48,Ko=57,Co=65,Do=70,Uo=97,Po=102;function xo(e){return e>=So&&e<=Ko?e-So:e>=Co&&e<=Do?e-(Co-10):e>=Uo&&e<=Po?e-(Uo-10):void 0}function Qo(e){if("string"!=typeof e)throw Error("hex string expected, got "+typeof e);if(vo)return Uint8Array.fromHex(e);const t=e.length,r=t/2;if(t%2)throw Error("hex string expected, got unpadded hex of length "+t);const n=new Uint8Array(r);for(let t=0,i=0;t<r;t++,i+=2){const r=xo(e.charCodeAt(i)),s=xo(e.charCodeAt(i+1));if(void 0===r||void 0===s){const t=e[i]+e[i+1];throw Error('hex string expected, got non-hex character "'+t+'" at index '+i)}n[t]=16*r+s}return n}function Mo(e){return"string"==typeof e&&(e=function(e){if("string"!=typeof e)throw Error("string expected");return new Uint8Array((new TextEncoder).encode(e))}(e)),yo(e),e}function Ro(...e){let t=0;for(let r=0;r<e.length;r++){const n=e[r];yo(n),t+=n.length}const r=new Uint8Array(t);for(let t=0,n=0;t<e.length;t++){const i=e[t];r.set(i,n),n+=i.length}return r}class To{}function Fo(e){const t=t=>e().update(Mo(t)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}const Lo=Fo;function No(e=32){if(ho&&"function"==typeof ho.getRandomValues)return ho.getRandomValues(new Uint8Array(e));if(ho&&"function"==typeof ho.randomBytes)return Uint8Array.from(ho.randomBytes(e));throw Error("crypto.getRandomValues must be defined")}
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Oo=/* @__PURE__ */BigInt(0),Ho=/* @__PURE__ */BigInt(1);function zo(e,t=""){if("boolean"!=typeof e){throw Error((t&&`"${t}"`)+"expected boolean, got type="+typeof e)}return e}function Go(e,t,r=""){const n=fo(e),i=e?.length,s=void 0!==t;if(!n||s&&i!==t){throw Error((r&&`"${r}" `)+"expected Uint8Array"+(s?" of length "+t:"")+", got "+(n?"length="+i:"type="+typeof e))}return e}function jo(e){const t=e.toString(16);return 1&t.length?"0"+t:t}function Vo(e){if("string"!=typeof e)throw Error("hex string expected, got "+typeof e);return""===e?Oo:BigInt("0x"+e)}function qo(e){return Vo(Bo(e))}function _o(e){return yo(e),Vo(Bo(Uint8Array.from(e).reverse()))}function Yo(e,t){return Qo(e.toString(16).padStart(2*t,"0"))}function Zo(e,t){return Yo(e,t).reverse()}function Jo(e,t,r){let n;if("string"==typeof t)try{n=Qo(t)}catch(t){throw Error(e+" must be hex string or Uint8Array, cause: "+t)}else{if(!fo(t))throw Error(e+" must be hex string or Uint8Array");n=Uint8Array.from(t)}const i=n.length;if("number"==typeof r&&i!==r)throw Error(e+" of length "+r+" expected, got "+i);return n}function Wo(e){return Uint8Array.from(e)}const Xo=e=>"bigint"==typeof e&&Oo<=e;function $o(e,t,r,n){if(!function(e,t,r){return Xo(e)&&Xo(t)&&Xo(r)&&t<=e&&e<r}(t,r,n))throw Error("expected valid "+e+": "+r+" <= n < "+n+", got "+t)}function ec(e){let t;for(t=0;e>Oo;e>>=Ho,t+=1);return t}const tc=e=>(Ho<<BigInt(e))-Ho;function rc(e,t,r={}){if(!e||"object"!=typeof e)throw Error("expected valid options object");function n(t,r,n){const i=e[t];if(n&&void 0===i)return;const s=typeof i;if(s!==r||null===i)throw Error(`param "${t}" is invalid: expected ${r}, got ${s}`)}Object.entries(t).forEach((([e,t])=>n(e,t,!1))),Object.entries(r).forEach((([e,t])=>n(e,t,!0)))}function nc(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}}
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const ic=BigInt(0),sc=BigInt(1),ac=/* @__PURE__ */BigInt(2),oc=/* @__PURE__ */BigInt(3),cc=/* @__PURE__ */BigInt(4),uc=/* @__PURE__ */BigInt(5),hc=/* @__PURE__ */BigInt(7),fc=/* @__PURE__ */BigInt(8),lc=/* @__PURE__ */BigInt(9),yc=/* @__PURE__ */BigInt(16);function gc(e,t){const r=e%t;return r>=ic?r:t+r}function pc(e,t,r){let n=e;for(;t-- >ic;)n*=n,n%=r;return n}function dc(e,t){if(e===ic)throw Error("invert: expected non-zero number");if(t<=ic)throw Error("invert: expected positive modulus, got "+t);let r=gc(e,t),n=t,i=ic,s=sc;for(;r!==ic;){const e=n%r,t=i-s*(n/r);n=r,r=e,i=s,s=t}if(n!==sc)throw Error("invert: does not exist");return gc(i,t)}function Ac(e,t,r){if(!e.eql(e.sqr(t),r))throw Error("Cannot find square root")}function wc(e,t){const r=(e.ORDER+sc)/cc,n=e.pow(t,r);return Ac(e,n,t),n}function mc(e,t){const r=(e.ORDER-uc)/fc,n=e.mul(t,ac),i=e.pow(n,r),s=e.mul(t,i),a=e.mul(e.mul(s,ac),i),o=e.mul(s,e.sub(a,e.ONE));return Ac(e,o,t),o}function bc(e){if(e<oc)throw Error("sqrt is not defined for small field");let t=e-sc,r=0;for(;t%ac===ic;)t/=ac,r++;let n=ac;const i=Sc(e);for(;1===Ic(i,n);)if(n++>1e3)throw Error("Cannot find square root: probably non-prime P");if(1===r)return wc;let s=i.pow(n,t);const a=(t+sc)/ac;return function(e,n){if(e.is0(n))return n;if(1!==Ic(e,n))throw Error("Cannot find square root");let i=r,o=e.mul(e.ONE,s),c=e.pow(n,t),u=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 Error("Cannot find square root");const n=sc<<BigInt(i-t-1),s=e.pow(o,n);i=t,o=e.sqr(s),c=e.mul(c,o),u=e.mul(u,s)}return u}}function kc(e){return e%cc===oc?wc:e%fc===uc?mc:e%yc===lc?function(e){const t=Sc(e),r=bc(e),n=r(t,t.neg(t.ONE)),i=r(t,n),s=r(t,t.neg(n)),a=(e+hc)/yc;return(e,t)=>{let r=e.pow(t,a),o=e.mul(r,n);const c=e.mul(r,i),u=e.mul(r,s),h=e.eql(e.sqr(o),t),f=e.eql(e.sqr(c),t);r=e.cmov(r,o,h),o=e.cmov(u,c,f);const l=e.eql(e.sqr(o),t),y=e.cmov(r,o,l);return Ac(e,y,t),y}}(e):bc(e)}const Ec=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function vc(e,t,r=!1){const n=Array(t.length).fill(r?e.ZERO:void 0),i=t.reduce(((t,r,i)=>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 Ic(e,t){const r=(e.ORDER-sc)/ac,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 Error("invalid Legendre symbol result");return i?1:s?0:-1}function Bc(e,t){void 0!==t&&lo(t);const r=void 0!==t?t:e.toString(2).length;return{nBitLength:r,nByteLength:Math.ceil(r/8)}}function Sc(e,t,r=!1,n={}){if(e<=ic)throw 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 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:u}=Bc(e,i);if(u>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let h;const f=Object.freeze({ORDER:e,isLE:r,BITS:c,BYTES:u,MASK:tc(c),ZERO:ic,ONE:sc,allowedLengths:a,create:t=>gc(t,e),isValid:t=>{if("bigint"!=typeof t)throw Error("invalid field element: expected bigint, got "+typeof t);return ic<=t&&t<e},is0:e=>e===ic,isValidNot0:e=>!f.is0(e)&&f.isValid(e),isOdd:e=>(e&sc)===sc,neg:t=>gc(-t,e),eql:(e,t)=>e===t,sqr:t=>gc(t*t,e),add:(t,r)=>gc(t+r,e),sub:(t,r)=>gc(t-r,e),mul:(t,r)=>gc(t*r,e),pow:(e,t)=>function(e,t,r){if(r<ic)throw Error("invalid exponent, negatives unsupported");if(r===ic)return e.ONE;if(r===sc)return t;let n=e.ONE,i=t;for(;r>ic;)r&sc&&(n=e.mul(n,i)),i=e.sqr(i),r>>=sc;return n}(f,e,t),div:(t,r)=>gc(t*dc(r,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>dc(t,e),sqrt:s||(t=>(h||(h=kc(e)),h(f,t))),toBytes:e=>r?Zo(e,u):Yo(e,u),fromBytes:(t,n=!0)=>{if(a){if(!a.includes(t.length)||t.length>u)throw Error("Field.fromBytes: expected "+a+" bytes, got "+t.length);const e=new Uint8Array(u);e.set(t,r?0:e.length-t.length),t=e}if(t.length!==u)throw Error("Field.fromBytes: expected "+u+" bytes, got "+t.length);let i=r?_o(t):qo(t);if(o&&(i=gc(i,e)),!n&&!f.isValid(i))throw Error("invalid field element: outside of range 0..ORDER");return i},invertBatch:e=>vc(f,e),cmov:(e,t,r)=>r?t:e});return Object.freeze(f)}function Kc(e){if("bigint"!=typeof e)throw Error("field order must be bigint");const t=e.toString(2).length;return Math.ceil(t/8)}function Cc(e){const t=Kc(e);return t+Math.ceil(t/2)}function Dc(e,t,r){return e&t^~e&r}function Uc(e,t,r){return e&t^e&r^t&r}class Pc extends To{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=mo(this.buffer)}update(e){po(this),yo(e=Mo(e));const{view:t,buffer:r,blockLen:n}=this,i=e.length;for(let s=0;s<i;){const a=Math.min(n-this.pos,i-s);if(a!==n)r.set(e.subarray(s,s+a),this.pos),this.pos+=a,s+=a,this.pos===n&&(this.process(t,0),this.pos=0);else{const t=mo(e);for(;n<=i-s;s+=n)this.process(t,s)}}return this.length+=e.length,this.roundClean(),this}digestInto(e){po(this),Ao(e,this),this.finished=!0;const{buffer:t,view:r,blockLen:n,isLE:i}=this;let{pos:s}=this;t[s++]=128,wo(this.buffer.subarray(s)),this.padOffset>n-s&&(this.process(r,0),s=0);for(let e=s;e<n;e++)t[e]=0;!function(e,t,r,n){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,r,n);const i=BigInt(32),s=BigInt(4294967295),a=Number(r>>i&s),o=Number(r&s),c=n?4:0,u=n?0:4;e.setUint32(t+c,a,n),e.setUint32(t+u,o,n)}(r,n-8,BigInt(8*this.length),i),this.process(r,0);const a=mo(e),o=this.outputLen;if(o%4)throw Error("_sha2: outputLen should be aligned to 32bit");const c=o/4,u=this.get();if(c>u.length)throw Error("_sha2: outputLen bigger than state");for(let e=0;e<c;e++)a.setUint32(4*e,u[e],i)}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const r=e.slice(0,t);return this.destroy(),r}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:t,buffer:r,length:n,finished:i,destroyed:s,pos:a}=this;return e.destroyed=s,e.finished=i,e.length=n,e.pos=a,n%t&&e.buffer.set(r),e}clone(){return this._cloneInto()}}const xc=/* @__PURE__ */Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Qc=/* @__PURE__ */Uint32Array.from([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]),Mc=/* @__PURE__ */Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),Rc=/* @__PURE__ */Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),Tc=/* @__PURE__ */BigInt(2**32-1),Fc=/* @__PURE__ */BigInt(32);function Lc(e,t=!1){return t?{h:Number(e&Tc),l:Number(e>>Fc&Tc)}:{h:0|Number(e>>Fc&Tc),l:0|Number(e&Tc)}}function Nc(e,t=!1){const r=e.length;let n=new Uint32Array(r),i=new Uint32Array(r);for(let s=0;s<r;s++){const{h:r,l:a}=Lc(e[s],t);[n[s],i[s]]=[r,a]}return[n,i]}const Oc=(e,t,r)=>e>>>r,Hc=(e,t,r)=>e<<32-r|t>>>r,zc=(e,t,r)=>e>>>r|t<<32-r,Gc=(e,t,r)=>e<<32-r|t>>>r,jc=(e,t,r)=>e<<64-r|t>>>r-32,Vc=(e,t,r)=>e>>>r-32|t<<64-r;function qc(e,t,r,n){const i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:0|i}}const _c=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),Yc=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,Zc=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),Jc=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,Wc=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),Xc=(e,t,r,n,i,s)=>t+r+n+i+s+(e/2**32|0)|0,$c=/* @__PURE__ */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]),eu=/* @__PURE__ */new Uint32Array(64);class tu extends Pc{constructor(e=32){super(64,e,8,!1),this.A=0|xc[0],this.B=0|xc[1],this.C=0|xc[2],this.D=0|xc[3],this.E=0|xc[4],this.F=0|xc[5],this.G=0|xc[6],this.H=0|xc[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)eu[r]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=eu[e-15],r=eu[e-2],n=bo(t,7)^bo(t,18)^t>>>3,i=bo(r,17)^bo(r,19)^r>>>10;eu[e]=i+eu[e-7]+n+eu[e-16]|0}let{A:r,B:n,C:i,D:s,E:a,F:o,G:c,H:u}=this;for(let e=0;e<64;e++){const t=u+(bo(a,6)^bo(a,11)^bo(a,25))+Dc(a,o,c)+$c[e]+eu[e]|0,h=(bo(r,2)^bo(r,13)^bo(r,22))+Uc(r,n,i)|0;u=c,c=o,o=a,a=s+t|0,s=i,i=n,n=r,r=t+h|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,u=u+this.H|0,this.set(r,n,i,s,a,o,c,u)}roundClean(){wo(eu)}destroy(){this.set(0,0,0,0,0,0,0,0),wo(this.buffer)}}class ru extends tu{constructor(){super(28),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]}}const nu=/* @__PURE__ */(()=>Nc(["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)))))(),iu=/* @__PURE__ */(()=>nu[0])(),su=/* @__PURE__ */(()=>nu[1])(),au=/* @__PURE__ */new Uint32Array(80),ou=/* @__PURE__ */new Uint32Array(80);class cu extends Pc{constructor(e=64){super(128,e,16,!1),this.Ah=0|Rc[0],this.Al=0|Rc[1],this.Bh=0|Rc[2],this.Bl=0|Rc[3],this.Ch=0|Rc[4],this.Cl=0|Rc[5],this.Dh=0|Rc[6],this.Dl=0|Rc[7],this.Eh=0|Rc[8],this.El=0|Rc[9],this.Fh=0|Rc[10],this.Fl=0|Rc[11],this.Gh=0|Rc[12],this.Gl=0|Rc[13],this.Hh=0|Rc[14],this.Hl=0|Rc[15]}get(){const{Ah:e,Al:t,Bh:r,Bl:n,Ch:i,Cl:s,Dh:a,Dl:o,Eh:c,El:u,Fh:h,Fl:f,Gh:l,Gl:y,Hh:g,Hl:p}=this;return[e,t,r,n,i,s,a,o,c,u,h,f,l,y,g,p]}set(e,t,r,n,i,s,a,o,c,u,h,f,l,y,g,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|u,this.Fh=0|h,this.Fl=0|f,this.Gh=0|l,this.Gl=0|y,this.Hh=0|g,this.Hl=0|p}process(e,t){for(let r=0;r<16;r++,t+=4)au[r]=e.getUint32(t),ou[r]=e.getUint32(t+=4);for(let e=16;e<80;e++){const t=0|au[e-15],r=0|ou[e-15],n=zc(t,r,1)^zc(t,r,8)^Oc(t,0,7),i=Gc(t,r,1)^Gc(t,r,8)^Hc(t,r,7),s=0|au[e-2],a=0|ou[e-2],o=zc(s,a,19)^jc(s,a,61)^Oc(s,0,6),c=Gc(s,a,19)^Vc(s,a,61)^Hc(s,a,6),u=Zc(i,c,ou[e-7],ou[e-16]),h=Jc(u,n,o,au[e-7],au[e-16]);au[e]=0|h,ou[e]=0|u}let{Ah:r,Al:n,Bh:i,Bl:s,Ch:a,Cl:o,Dh:c,Dl:u,Eh:h,El:f,Fh:l,Fl:y,Gh:g,Gl:p,Hh:d,Hl:A}=this;for(let e=0;e<80;e++){const t=zc(h,f,14)^zc(h,f,18)^jc(h,f,41),w=Gc(h,f,14)^Gc(h,f,18)^Vc(h,f,41),m=h&l^~h&g,b=Wc(A,w,f&y^~f&p,su[e],ou[e]),k=Xc(b,d,t,m,iu[e],au[e]),E=0|b,v=zc(r,n,28)^jc(r,n,34)^jc(r,n,39),I=Gc(r,n,28)^Vc(r,n,34)^Vc(r,n,39),B=r&i^r&a^i&a,S=n&s^n&o^s&o;d=0|g,A=0|p,g=0|l,p=0|y,l=0|h,y=0|f,({h,l:f}=qc(0|c,0|u,0|k,0|E)),c=0|a,u=0|o,a=0|i,o=0|s,i=0|r,s=0|n;const K=_c(E,I,S);r=Yc(K,k,v,B),n=0|K}({h:r,l:n}=qc(0|this.Ah,0|this.Al,0|r,0|n)),({h:i,l:s}=qc(0|this.Bh,0|this.Bl,0|i,0|s)),({h:a,l:o}=qc(0|this.Ch,0|this.Cl,0|a,0|o)),({h:c,l:u}=qc(0|this.Dh,0|this.Dl,0|c,0|u)),({h,l:f}=qc(0|this.Eh,0|this.El,0|h,0|f)),({h:l,l:y}=qc(0|this.Fh,0|this.Fl,0|l,0|y)),({h:g,l:p}=qc(0|this.Gh,0|this.Gl,0|g,0|p)),({h:d,l:A}=qc(0|this.Hh,0|this.Hl,0|d,0|A)),this.set(r,n,i,s,a,o,c,u,h,f,l,y,g,p,d,A)}roundClean(){wo(au,ou)}destroy(){wo(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class uu extends cu{constructor(){super(48),this.Ah=0|Mc[0],this.Al=0|Mc[1],this.Bh=0|Mc[2],this.Bl=0|Mc[3],this.Ch=0|Mc[4],this.Cl=0|Mc[5],this.Dh=0|Mc[6],this.Dl=0|Mc[7],this.Eh=0|Mc[8],this.El=0|Mc[9],this.Fh=0|Mc[10],this.Fl=0|Mc[11],this.Gh=0|Mc[12],this.Gl=0|Mc[13],this.Hh=0|Mc[14],this.Hl=0|Mc[15]}}const hu=/* @__PURE__ */Fo((()=>new tu)),fu=/* @__PURE__ */Fo((()=>new ru)),lu=/* @__PURE__ */Fo((()=>new cu)),yu=/* @__PURE__ */Fo((()=>new uu));class gu extends To{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,go(e);const r=Mo(t);if(this.iHash=e.create(),"function"!=typeof this.iHash.update)throw 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;e<i.length;e++)i[e]^=54;this.iHash.update(i),this.oHash=e.create();for(let e=0;e<i.length;e++)i[e]^=106;this.oHash.update(i),wo(i)}update(e){return po(this),this.iHash.update(e),this}digestInto(e){po(this),yo(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:t,iHash:r,finished:n,destroyed:i,blockLen:s,outputLen:a}=this;return e.finished=n,e.destroyed=i,e.blockLen=s,e.outputLen=a,e.oHash=t._cloneInto(e.oHash),e.iHash=r._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const pu=(e,t,r)=>new gu(e,t).update(r).digest();pu.create=(e,t)=>new gu(e,t)
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */;const du=BigInt(0),Au=BigInt(1);function wu(e,t){const r=t.negate();return e?r:t}function mu(e,t){const r=vc(e.Fp,t.map((e=>e.Z)));return t.map(((t,n)=>e.fromAffine(t.toAffine(r[n]))))}function bu(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw Error("invalid window size, expected [1.."+t+"], got W="+e)}function ku(e,t){bu(e,t);const r=2**e;return{windows:Math.ceil(t/e)+1,windowSize:2**(e-1),mask:tc(e),maxNumber:r,shiftBy:BigInt(e)}}function Eu(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+=Au);const u=t*n;return{nextN:c,offset:u+Math.abs(o)-1,isZero:0===o,isNeg:o<0,isNegF:t%2!=0,offsetF:u}}const vu=new WeakMap,Iu=new WeakMap;function Bu(e){return Iu.get(e)||1}function Su(e){if(e!==du)throw Error("invalid wNAF")}class Ku{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>du;)t&Au&&(r=r.add(n)),n=n.double(),t>>=Au;return r}precomputeWindow(e,t){const{windows:r,windowSize:n}=ku(t,this.bits),i=[];let s=e,a=s;for(let e=0;e<r;e++){a=s,i.push(a);for(let e=1;e<n;e++)a=a.add(s),i.push(a);s=a.double()}return i}wNAF(e,t,r){if(!this.Fn.isValid(r))throw Error("invalid scalar");let n=this.ZERO,i=this.BASE;const s=ku(e,this.bits);for(let e=0;e<s.windows;e++){const{nextN:a,offset:o,isZero:c,isNeg:u,isNegF:h,offsetF:f}=Eu(r,e,s);r=a,c?i=i.add(wu(h,t[f])):n=n.add(wu(u,t[o]))}return Su(r),{p:n,f:i}}wNAFUnsafe(e,t,r,n=this.ZERO){const i=ku(e,this.bits);for(let e=0;e<i.windows&&r!==du;e++){const{nextN:s,offset:a,isZero:o,isNeg:c}=Eu(r,e,i);if(r=s,!o){const e=t[a];n=n.add(c?e.negate():e)}}return Su(r),n}getPrecomputes(e,t,r){let n=vu.get(t);return n||(n=this.precomputeWindow(t,e),1!==e&&("function"==typeof r&&(n=r(n)),vu.set(t,n))),n}cached(e,t,r){const n=Bu(e);return this.wNAF(n,this.getPrecomputes(n,e,r),t)}unsafe(e,t,r,n){const i=Bu(e);return 1===i?this._unsafeLadder(e,t,n):this.wNAFUnsafe(i,this.getPrecomputes(i,e,r),t,n)}createCache(e,t){bu(t,this.bits),Iu.set(e,t),vu.delete(e)}hasCache(e){return 1!==Bu(e)}}function Cu(e,t,r,n){!function(e,t){if(!Array.isArray(e))throw Error("array expected");e.forEach(((e,r)=>{if(!(e instanceof t))throw Error("invalid point at index "+r)}))}(r,e),function(e,t){if(!Array.isArray(e))throw Error("array of scalars expected");e.forEach(((e,r)=>{if(!t.isValid(e))throw Error("invalid scalar at index "+r)}))}(n,t);const i=r.length,s=n.length;if(i!==s)throw Error("arrays of points and scalars must have equal length");const a=e.ZERO,o=ec(BigInt(i));let c=1;o>12?c=o-3:o>4?c=o-2:o>0&&(c=2);const u=tc(c),h=Array(Number(u)+1).fill(a);let f=a;for(let e=Math.floor((t.BITS-1)/c)*c;e>=0;e-=c){h.fill(a);for(let t=0;t<s;t++){const i=n[t],s=Number(i>>BigInt(e)&u);h[s]=h[s].add(r[t])}let t=a;for(let e=h.length-1,r=a;e>0;e--)r=r.add(h[e]),t=t.add(r);if(f=f.add(t),0!==e)for(let e=0;e<c;e++)f=f.double()}return f}function Du(e,t,r){if(t){if(t.ORDER!==e)throw Error("Field.ORDER must match order: Fp == p, Fn == n");return function(e){rc(e,Ec.reduce(((e,t)=>(e[t]="function",e)),{ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"}))}(t),t}return Sc(e,{isLE:r})}function Uu(e,t,r={},n){if(void 0===n&&(n="edwards"===e),!t||"object"!=typeof t)throw Error(`expected valid ${e} CURVE object`);for(const e of["p","n","h"]){const r=t[e];if(!("bigint"==typeof r&&r>du))throw Error(`CURVE.${e} must be positive bigint`)}const i=Du(t.p,r.Fp,n),s=Du(t.n,r.Fn,n),a=["Gx","Gy","a","weierstrass"===e?"b":"d"];for(const e of a)if(!i.isValid(t[e]))throw Error(`CURVE.${e} must be valid field element of CURVE.Fp`);return{CURVE:t=Object.freeze(Object.assign({},t)),Fp:i,Fn:s}}
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Pu=(e,t)=>(e+(e>=0?t:-t)/Fu)/t;function xu(e){if(!["compact","recovered","der"].includes(e))throw Error('Signature format must be "compact", "recovered", or "der"');return e}function Qu(e,t){const r={};for(let n of Object.keys(t))r[n]=void 0===e[n]?t[n]:e[n];return zo(r.lowS,"lowS"),zo(r.prehash,"prehash"),void 0!==r.format&&xu(r.format),r}const Mu={Err:class extends Error{constructor(e=""){super(e)}},_tlv:{encode:(e,t)=>{const{Err:r}=Mu;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=jo(n);if(i.length/2&128)throw new r("tlv.encode: long form length too big");const s=n>127?jo(i.length/2|128):"";return jo(e)+s+i+t},decode(e,t){const{Err:r}=Mu;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}=Mu;if(e<Ru)throw new t("integer: negative integers are not allowed");let r=jo(e);if(8&Number.parseInt(r[0],16)&&(r="00"+r),1&r.length)throw new t("unexpected DER parsing assertion: unpadded hex");return r},decode(e){const{Err:t}=Mu;if(128&e[0])throw new t("invalid signature integer: negative");if(0===e[0]&&!(128&e[1]))throw new t("invalid signature integer: unnecessary leading zero");return qo(e)}},toSig(e){const{Err:t,_int:r,_tlv:n}=Mu,i=Jo("signature",e),{v:s,l:a}=n.decode(48,i);if(a.length)throw new t("invalid signature: left bytes after parsing");const{v:o,l:c}=n.decode(2,s),{v:u,l:h}=n.decode(2,c);if(h.length)throw new t("invalid signature: left bytes after parsing");return{r:r.decode(o),s:r.decode(u)}},hexFromSig(e){const{_tlv:t,_int:r}=Mu,n=t.encode(2,r.encode(e.r))+t.encode(2,r.encode(e.s));return t.encode(48,n)}},Ru=BigInt(0),Tu=BigInt(1),Fu=BigInt(2),Lu=BigInt(3),Nu=BigInt(4);function Ou(e,t){const{BYTES:r}=e;let n;if("bigint"==typeof t)n=t;else{let i=Jo("private key",t);try{n=e.fromBytes(i)}catch(e){throw Error(`invalid private key: expected ui8a of size ${r}, got ${typeof t}`)}}if(!e.isValidNot0(n))throw Error("invalid private key: out of range [1..N-1]");return n}function Hu(e,t={}){const r=Uu("weierstrass",e,t),{Fp:n,Fn:i}=r;let s=r.CURVE;const{h:a,n:o}=s;rc(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 Error('invalid endo: expected "beta": bigint and "basises": array');const u=Gu(n,i);function h(){if(!n.isOdd)throw Error("compression is not supported: Field does not have .isOdd()")}const f=t.toBytes||function(e,t,r){const{x:i,y:s}=t.toAffine(),a=n.toBytes(i);if(zo(r,"isCompressed"),r){h();return Ro(zu(!n.isOdd(s)),a)}return Ro(Uint8Array.of(4),a,n.toBytes(s))},l=t.fromBytes||function(e){Go(e,void 0,"Point");const{publicKey:t,publicKeyUncompressed:r}=u,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(!g(t,r))throw Error("bad point: is not on curve");return{x:t,y:r}}throw Error(`bad point: got length ${i}, expected compressed=${t} or uncompressed=${r}`)}{const e=n.fromBytes(a);if(!n.isValid(e))throw Error("bad point: is not on curve, wrong x");const t=y(e);let r;try{r=n.sqrt(t)}catch(e){const t=e instanceof Error?": "+e.message:"";throw Error("bad point: is not on curve, sqrt error"+t)}h();return!(1&~s)!==n.isOdd(r)&&(r=n.neg(r)),{x:e,y:r}}};function y(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 g(e,t){const r=n.sqr(t),i=y(e);return n.eql(r,i)}if(!g(s.Gx,s.Gy))throw Error("bad curve params: generator point");const p=n.mul(n.pow(s.a,Lu),Nu),d=n.mul(n.sqr(s.b),BigInt(27));if(n.is0(n.add(p,d)))throw Error("bad curve params: a or b");function A(e,t,r=!1){if(!n.isValid(t)||r&&n.is0(t))throw Error("bad point coordinate "+e);return t}function w(e){if(!(e instanceof v))throw Error("ProjectivePoint expected")}function m(e){if(!c||!c.basises)throw Error("no endo");return function(e,t,r){const[[n,i],[s,a]]=t,o=Pu(a*e,r),c=Pu(-i*e,r);let u=e-o*n-c*s,h=-o*i-c*a;const f=u<Ru,l=h<Ru;f&&(u=-u),l&&(h=-h);const y=tc(Math.ceil(ec(r)/2))+Tu;if(u<Ru||u>=y||h<Ru||h>=y)throw Error("splitScalar (endomorphism): failed, k="+e);return{k1neg:f,k1:u,k2neg:l,k2:h}}(e,c.basises,i.ORDER)}const b=nc(((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),u=n.mul(s,t);if(a)return{x:n.ZERO,y:n.ZERO};if(!n.eql(u,n.ONE))throw Error("invZ was invalid");return{x:o,y:c}})),k=nc((e=>{if(e.is0()){if(t.allowInfinityPoint&&!n.is0(e.Y))return;throw Error("bad point: ZERO")}const{x:r,y:i}=e.toAffine();if(!n.isValid(r)||!n.isValid(i))throw Error("bad point: x or y not field elements");if(!g(r,i))throw Error("bad point: equation left != right");if(!e.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0}));function E(e,t,r,i,s){return r=new v(n.mul(r.X,e),r.Y,r.Z),t=wu(i,t),r=wu(s,r),t.add(r)}class v{constructor(e,t,r){this.X=A("x",e),this.Y=A("y",t,!0),this.Z=A("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 Error("invalid affine point");if(e instanceof v)throw Error("projective point not allowed");return n.is0(t)&&n.is0(r)?v.ZERO:new v(t,r,n.ONE)}static fromBytes(e){const t=v.fromAffine(l(Go(e,void 0,"point")));return t.assertValidity(),t}static fromHex(e){return v.fromBytes(Jo("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(Lu),this}assertValidity(){k(this)}hasEvenY(){const{y:e}=this.toAffine();if(!n.isOdd)throw Error("Field doesn't support isOdd");return!n.isOdd(e)}equals(e){w(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)),u=n.eql(n.mul(r,o),n.mul(a,i));return c&&u}negate(){return new v(this.X,n.neg(this.Y),this.Z)}double(){const{a:e,b:t}=s,r=n.mul(t,Lu),{X:i,Y:a,Z:o}=this;let c=n.ZERO,u=n.ZERO,h=n.ZERO,f=n.mul(i,i),l=n.mul(a,a),y=n.mul(o,o),g=n.mul(i,a);return g=n.add(g,g),h=n.mul(i,o),h=n.add(h,h),c=n.mul(e,h),u=n.mul(r,y),u=n.add(c,u),c=n.sub(l,u),u=n.add(l,u),u=n.mul(c,u),c=n.mul(g,c),h=n.mul(r,h),y=n.mul(e,y),g=n.sub(f,y),g=n.mul(e,g),g=n.add(g,h),h=n.add(f,f),f=n.add(h,f),f=n.add(f,y),f=n.mul(f,g),u=n.add(u,f),y=n.mul(a,o),y=n.add(y,y),f=n.mul(y,g),c=n.sub(c,f),h=n.mul(y,l),h=n.add(h,h),h=n.add(h,h),new v(c,u,h)}add(e){w(e);const{X:t,Y:r,Z:i}=this,{X:a,Y:o,Z:c}=e;let u=n.ZERO,h=n.ZERO,f=n.ZERO;const l=s.a,y=n.mul(s.b,Lu);let g=n.mul(t,a),p=n.mul(r,o),d=n.mul(i,c),A=n.add(t,r),m=n.add(a,o);A=n.mul(A,m),m=n.add(g,p),A=n.sub(A,m),m=n.add(t,i);let b=n.add(a,c);return m=n.mul(m,b),b=n.add(g,d),m=n.sub(m,b),b=n.add(r,i),u=n.add(o,c),b=n.mul(b,u),u=n.add(p,d),b=n.sub(b,u),f=n.mul(l,m),u=n.mul(y,d),f=n.add(u,f),u=n.sub(p,f),f=n.add(p,f),h=n.mul(u,f),p=n.add(g,g),p=n.add(p,g),d=n.mul(l,d),m=n.mul(y,m),p=n.add(p,d),d=n.sub(g,d),d=n.mul(l,d),m=n.add(m,d),g=n.mul(p,m),h=n.add(h,g),g=n.mul(b,m),u=n.mul(A,u),u=n.sub(u,g),g=n.mul(A,p),f=n.mul(b,f),f=n.add(f,g),new v(u,h,f)}subtract(e){return this.add(e.negate())}is0(){return this.equals(v.ZERO)}multiply(e){const{endo:r}=t;if(!i.isValidNot0(e))throw Error("invalid scalar: out of range");let n,s;const a=e=>B.cached(this,e,(e=>mu(v,e)));if(r){const{k1neg:t,k1:i,k2neg:o,k2:c}=m(e),{p:u,f:h}=a(i),{p:f,f:l}=a(c);s=h.add(l),n=E(r.beta,u,f,t,o)}else{const{p:t,f:r}=a(e);n=t,s=r}return mu(v,[n,s])[0]}multiplyUnsafe(e){const{endo:r}=t,n=this;if(!i.isValid(e))throw Error("invalid scalar: out of range");if(e===Ru||n.is0())return v.ZERO;if(e===Tu)return n;if(B.hasCache(this))return this.multiply(e);if(r){const{k1neg:t,k1:i,k2neg:s,k2:a}=m(e),{p1:o,p2:c}=function(e,t,r,n){let i=t,s=e.ZERO,a=e.ZERO;for(;r>du||n>du;)r&Au&&(s=s.add(i)),n&Au&&(a=a.add(i)),i=i.double(),r>>=Au,n>>=Au;return{p1:s,p2:a}}(v,n,i,a);return E(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===Tu||(e?e(v,this):B.unsafe(this,o).is0())}clearCofactor(){const{clearCofactor:e}=t;return a===Tu?this:e?e(v,this):this.multiplyUnsafe(a)}isSmallOrder(){return this.multiplyUnsafe(a).is0()}toBytes(e=!0){return zo(e,"isCompressed"),this.assertValidity(),f(v,this,e)}toHex(e=!0){return Bo(this.toBytes(e))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}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 mu(v,e)}static msm(e,t){return Cu(v,i,e,t)}static fromPrivateKey(e){return v.BASE.multiply(Ou(i,e))}}v.BASE=new v(s.Gx,s.Gy,n.ONE),v.ZERO=new v(n.ZERO,n.ONE,n.ZERO),v.Fp=n,v.Fn=i;const I=i.BITS,B=new Ku(v,t.endo?Math.ceil(I/2):I);return v.BASE.precompute(8),v}function zu(e){return Uint8Array.of(e?2:3)}function Gu(e,t){return{secretKey:t.BYTES,publicKey:1+e.BYTES,publicKeyUncompressed:1+2*e.BYTES,publicKeyHasPrefix:!0,signature:2*t.BYTES}}function ju(e,t={}){const{Fn:r}=e,n=t.randomBytes||No,i=Object.assign(Gu(e.Fp,r),{seed:Cc(r.ORDER)});function s(e){try{return!!Ou(r,e)}catch(e){return!1}}function a(e=n(i.seed)){return function(e,t,r=!1){const n=e.length,i=Kc(t),s=Cc(t);if(n<16||n<s||n>1024)throw Error("expected "+s+"-1024 bytes of input, got "+n);const a=gc(r?_o(e):qo(e),t-sc)+sc;return r?Zo(a,i):Yo(a,i)}(Go(e,i.seed,"seed"),r.ORDER)}function o(t,n=!0){return e.BASE.multiply(Ou(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=Jo("key",t).length;return o===s||o===a}const u={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=>Ou(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 Error("first arg must be private key");if(!1===c(n))throw Error("second arg must be public key");const s=Ou(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:u,lengths:i})}function Vu(e,t,r={}){go(t),rc(r,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});const n=r.randomBytes||No,i=r.hmac||((e,...r)=>pu(t,e,Ro(...r))),{Fp:s,Fn:a}=e,{ORDER:o,BITS:c}=a,{keygen:u,getPublicKey:h,getSharedSecret:f,utils:l,lengths:y}=ju(e,r),g={prehash:!1,lowS:"boolean"==typeof r.lowS&&r.lowS,format:void 0,extraEntropy:!1},p="compact";function d(e){return e>o>>Tu}function A(e,t){if(!a.isValidNot0(t))throw Error(`invalid signature ${e}: out of range 1..Point.Fn.ORDER`);return t}class w{constructor(e,t,r){this.r=A("r",e),this.s=A("s",t),null!=r&&(this.recovery=r),Object.freeze(this)}static fromBytes(e,t=p){let r;if(function(e,t){xu(t);const r=y.signature;Go(e,"compact"===t?r:"recovered"===t?r+1:void 0,t+" signature")}(e,t),"der"===t){const{r:t,s:r}=Mu.toSig(Go(e));return new w(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 w(a.fromBytes(i),a.fromBytes(s),r)}static fromHex(e,t){return this.fromBytes(Qo(e),t)}addRecoveryBit(e){return new w(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 Error("recovery id invalid");if(o*Fu<r&&c>1)throw Error("recovery id is ambiguous for h>1 curve");const u=2===c||3===c?n+o:n;if(!s.isValid(u))throw Error("recovery id 2 or 3 invalid");const h=s.toBytes(u),f=e.fromBytes(Ro(zu(!(1&c)),h)),l=a.inv(u),y=b(Jo("msgHash",t)),g=a.create(-y*l),p=a.create(i*l),d=e.BASE.multiplyUnsafe(g).add(f.multiplyUnsafe(p));if(d.is0())throw Error("point at infinify");return d.assertValidity(),d}hasHighS(){return d(this.s)}toBytes(e=p){if(xu(e),"der"===e)return Qo(Mu.hexFromSig(this));const t=a.toBytes(this.r),r=a.toBytes(this.s);if("recovered"===e){if(null==this.recovery)throw Error("recovery bit must be present");return Ro(Uint8Array.of(this.recovery),t,r)}return Ro(t,r)}toHex(e){return Bo(this.toBytes(e))}assertValidity(){}static fromCompact(e){return w.fromBytes(Jo("sig",e),"compact")}static fromDER(e){return w.fromBytes(Jo("sig",e),"der")}normalizeS(){return this.hasHighS()?new w(this.r,a.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return Bo(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return Bo(this.toBytes("compact"))}}const m=r.bits2int||function(e){if(e.length>8192)throw Error("input is too large");const t=qo(e),r=8*e.length-c;return r>0?t>>BigInt(r):t},b=r.bits2int_modN||function(e){return a.create(m(e))},k=tc(c);function E(e){return $o("num < 2^"+c,e,Ru,k),a.toBytes(e)}function v(e,r){return Go(e,void 0,"message"),r?Go(t(e),void 0,"prehashed message"):e}return Object.freeze({keygen:u,getPublicKey:h,getSharedSecret:f,utils:l,lengths:y,Point:e,sign:function(r,s,o={}){r=Jo("message",r);const{seed:c,k2sig:u}=function(t,r,i){if(["recovered","canonical"].some((e=>e in i)))throw Error("sign() legacy options not supported");const{lowS:s,prehash:o,extraEntropy:c}=Qu(i,g);t=v(t,o);const u=b(t),h=Ou(a,r),f=[E(h),E(u)];if(null!=c&&!1!==c){const e=!0===c?n(y.secretKey):c;f.push(Jo("extraEntropy",e))}const l=Ro(...f),p=u;return{seed:l,k2sig:function(t){const r=m(t);if(!a.isValidNot0(r))return;const n=a.inv(r),i=e.BASE.multiply(r).toAffine(),o=a.create(i.x);if(o===Ru)return;const c=a.create(n*a.create(p+o*h));if(c===Ru)return;let u=(i.x===o?0:2)|Number(i.y&Tu),f=c;return s&&d(c)&&(f=a.neg(c),u^=1),new w(o,f,u)}}}(r,s,o),h=function(e,t,r){if("number"!=typeof e||e<2)throw Error("hashLen must be a number");if("number"!=typeof t||t<2)throw Error("qByteLen must be a number");if("function"!=typeof r)throw 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},u=(...e)=>r(a,s,...e),h=(e=n(0))=>{a=u(i(0),e),s=u(),0!==e.length&&(a=u(i(1),e),s=u())},f=()=>{if(o++>=1e3)throw Error("drbg: tried 1000 values");let e=0;const r=[];for(;e<t;){s=u();const t=s.slice();r.push(t),e+=s.length}return Ro(...r)};return(e,t)=>{let r;for(c(),h(e);!(r=t(f()));)h();return c(),r}}(t.outputLen,a.BYTES,i);return h(c,u)},verify:function(t,r,n,i={}){const{lowS:s,prehash:o,format:c}=Qu(i,g);if(n=Jo("publicKey",n),r=v(Jo("message",r),o),"strict"in i)throw Error("options.strict was renamed to lowS");const u=void 0===c?function(e){let t;const r="string"==typeof e||fo(e),n=!r&&null!==e&&"object"==typeof e&&"bigint"==typeof e.r&&"bigint"==typeof e.s;if(!r&&!n)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(n)t=new w(e.r,e.s);else if(r){try{t=w.fromBytes(Jo("sig",e),"der")}catch(e){if(!(e instanceof Mu.Err))throw e}if(!t)try{t=w.fromBytes(Jo("sig",e),"compact")}catch(e){return!1}}return t||!1}(t):w.fromBytes(Jo("sig",t),c);if(!1===u)return!1;try{const t=e.fromBytes(n);if(s&&u.hasHighS())return!1;const{r:i,s:o}=u,c=b(r),h=a.inv(o),f=a.create(c*h),l=a.create(i*h),y=e.BASE.multiplyUnsafe(f).add(t.multiplyUnsafe(l));if(y.is0())return!1;return a.create(y.x)===i}catch(e){return!1}},recoverPublicKey:function(e,t,r={}){const{prehash:n}=Qu(r,g);return t=v(t,n),w.fromBytes(e,"recovered").recoverPublicKey(t).toBytes()},Signature:w,hash:t})}function qu(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:Sc(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}}function _u(e){const{CURVE:t,curveOpts:r,hash:n,ecdsaOpts:i}=qu(e);return function(e,t){const r=t.Point;return Object.assign({},t,{ProjectivePoint:r,CURVE:Object.assign({},e,Bc(r.Fn.ORDER,r.Fn.BITS))})}(e,Vu(Hu(t,r),n,i))}
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Yu(e,t){const r=t=>_u({...e,hash:t});return{...r(t),create:r}}
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Zu={p:BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff"),n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),h:BigInt(1),a:BigInt("0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc"),b:BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5")},Ju={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff"),n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),h:BigInt(1),a:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc"),b:BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f")},Wu={p:BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),h:BigInt(1),a:BigInt("0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"),b:BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650")},Xu=Sc(Zu.p),$u=Sc(Ju.p),eh=Sc(Wu.p),th=Yu({...Zu,Fp:Xu,lowS:!1},hu),rh=Yu({...Ju,Fp:$u,lowS:!1},yu),nh=Yu({...Wu,Fp:eh,lowS:!1,allowedPrivateKeyLengths:[130,131,132]},lu),ih=BigInt(0),sh=BigInt(1),ah=BigInt(2),oh=BigInt(7),ch=BigInt(256),uh=BigInt(113),hh=[],fh=[],lh=[];for(let e=0,t=sh,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],hh.push(2*(5*n+r)),fh.push((e+1)*(e+2)/2%64);let i=ih;for(let e=0;e<7;e++)t=(t<<sh^(t>>oh)*uh)%ch,t&ah&&(i^=sh<<(sh<</* @__PURE__ */BigInt(e))-sh);lh.push(i)}const yh=Nc(lh,!0),gh=yh[0],ph=yh[1],dh=(e,t,r)=>r>32?((e,t,r)=>t<<r-32|e>>>64-r)(e,t,r):((e,t,r)=>e<<r|t>>>32-r)(e,t,r),Ah=(e,t,r)=>r>32?((e,t,r)=>e<<r-32|t>>>64-r)(e,t,r):((e,t,r)=>t<<r|e>>>32-r)(e,t,r);class wh extends To{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,lo(r),!(0<e&&e<200))throw Error("only keccak-f1600 function is supported");var s;this.state=new Uint8Array(200),this.state32=(s=this.state,new Uint32Array(s.buffer,s.byteOffset,Math.floor(s.byteLength/4)))}clone(){return this._cloneInto()}keccak(){Eo(this.state32),function(e,t=24){const r=new Uint32Array(10);for(let n=24-t;n<24;n++){for(let t=0;t<10;t++)r[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){const n=(t+8)%10,i=(t+2)%10,s=r[i],a=r[i+1],o=dh(s,a,1)^r[n],c=Ah(s,a,1)^r[n+1];for(let r=0;r<50;r+=10)e[t+r]^=o,e[t+r+1]^=c}let t=e[2],i=e[3];for(let r=0;r<24;r++){const n=fh[r],s=dh(t,i,n),a=Ah(t,i,n),o=hh[r];t=e[o],i=e[o+1],e[o]=s,e[o+1]=a}for(let t=0;t<50;t+=10){for(let n=0;n<10;n++)r[n]=e[t+n];for(let n=0;n<10;n++)e[t+n]^=~r[(n+2)%10]&r[(n+4)%10]}e[0]^=gh[n],e[1]^=ph[n]}wo(r)}(this.state32,this.rounds),Eo(this.state32),this.posOut=0,this.pos=0}update(e){po(this),yo(e=Mo(e));const{blockLen:t,state:r}=this,n=e.length;for(let i=0;i<n;){const s=Math.min(t-this.pos,n-i);for(let t=0;t<s;t++)r[this.pos++]^=e[i++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:e,suffix:t,pos:r,blockLen:n}=this;e[r]^=t,128&t&&r===n-1&&this.keccak(),e[n-1]^=128,this.keccak()}writeInto(e){po(this,!1),yo(e),this.finish();const t=this.state,{blockLen:r}=this;for(let n=0,i=e.length;n<i;){this.posOut>=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 Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return lo(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(Ao(e,this),this.finished)throw Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,wo(this.state)}_cloneInto(e){const{blockLen:t,suffix:r,outputLen:n,rounds:i,enableXOF:s}=this;return e||(e=new wh(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 mh=(e,t,r)=>Fo((()=>new wh(t,e,r))),bh=/* @__PURE__ */(()=>mh(6,136,32))(),kh=/* @__PURE__ */(()=>mh(6,72,64))(),Eh=(e,t,r)=>function(e){const t=(t,r)=>e(r).update(Mo(t)).digest(),r=e({});return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=t=>e(t),t}(((n={})=>new wh(t,e,void 0===n.dkLen?r:n.dkLen,!0))),vh=/* @__PURE__ */(()=>Eh(31,136,32))(),Ih=BigInt(0),Bh=BigInt(1),Sh=BigInt(2),Kh=BigInt(8);function Ch(e,t={}){const r=Uu("edwards",e,t,t.FpFnLE),{Fp:n,Fn:i}=r;let s=r.CURVE;const{h:a}=s;rc(t,{},{uvRatio:"function"});const o=Sh<<BigInt(8*i.BYTES)-Bh,c=e=>n.create(e),u=t.uvRatio||((e,t)=>{try{return{isValid:!0,value:n.sqrt(n.div(e,t))}}catch(e){return{isValid:!1,value:Ih}}});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 Error("bad curve params: generator point");function h(e,t,r=!1){return $o("coordinate "+e,t,r?Bh:Ih,o),t}function f(e){if(!(e instanceof g))throw Error("ExtendedPoint expected")}const l=nc(((e,t)=>{const{X:r,Y:i,Z:s}=e,a=e.is0();null==t&&(t=a?Kh:n.inv(s));const o=c(r*t),u=c(i*t),h=n.mul(s,t);if(a)return{x:Ih,y:Bh};if(h!==Bh)throw Error("invZ was invalid");return{x:o,y:u}})),y=nc((e=>{const{a:t,d:r}=s;if(e.is0())throw Error("bad point: ZERO");const{X:n,Y:i,Z:a,T:o}=e,u=c(n*n),h=c(i*i),f=c(a*a),l=c(f*f),y=c(u*t);if(c(f*c(y+h))!==c(l+c(r*c(u*h))))throw Error("bad point: equation left != right (1)");if(c(n*i)!==c(a*o))throw Error("bad point: equation left != right (2)");return!0}));class g{constructor(e,t,r,n){this.X=h("x",e),this.Y=h("y",t),this.Z=h("z",r,!0),this.T=h("t",n),Object.freeze(this)}static CURVE(){return s}static fromAffine(e){if(e instanceof g)throw Error("extended point not allowed");const{x:t,y:r}=e||{};return h("x",t),h("y",r),new g(t,r,Bh,c(t*r))}static fromBytes(e,t=!1){const r=n.BYTES,{a:i,d:a}=s;e=Wo(Go(e,r,"point")),zo(t,"zip215");const h=Wo(e),f=e[r-1];h[r-1]=-129&f;const l=_o(h),y=t?o:n.ORDER;$o("point.y",l,Ih,y);const p=c(l*l),d=c(p-Bh),A=c(a*p-i);let{isValid:w,value:m}=u(d,A);if(!w)throw Error("bad point: invalid y coordinate");const b=(m&Bh)===Bh,k=!!(128&f);if(!t&&m===Ih&&k)throw Error("bad point: x=0 and x_0=1");return k!==b&&(m=c(-m)),g.fromAffine({x:m,y:l})}static fromHex(e,t=!1){return g.fromBytes(Jo("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(Sh),this}assertValidity(){y(this)}equals(e){f(e);const{X:t,Y:r,Z:n}=this,{X:i,Y:s,Z:a}=e,o=c(t*a),u=c(i*n),h=c(r*a),l=c(s*n);return o===u&&h===l}is0(){return this.equals(g.ZERO)}negate(){return new g(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(Sh*c(n*n)),u=c(e*i),h=t+r,f=c(c(h*h)-i-a),l=u+a,y=l-o,p=u-a,d=c(f*y),A=c(l*p),w=c(f*p),m=c(y*l);return new g(d,A,m,w)}add(e){f(e);const{a:t,d:r}=s,{X:n,Y:i,Z:a,T:o}=this,{X:u,Y:h,Z:l,T:y}=e,p=c(n*u),d=c(i*h),A=c(o*r*y),w=c(a*l),m=c((n+i)*(u+h)-p-d),b=w-A,k=w+A,E=c(d-t*p),v=c(m*b),I=c(k*E),B=c(m*E),S=c(b*k);return new g(v,I,S,B)}subtract(e){return this.add(e.negate())}multiply(e){if(!i.isValidNot0(e))throw Error("invalid scalar: expected 1 <= sc < curve.n");const{p:t,f:r}=p.cached(this,e,(e=>mu(g,e)));return mu(g,[t,r])[0]}multiplyUnsafe(e,t=g.ZERO){if(!i.isValid(e))throw Error("invalid scalar: expected 0 <= sc < curve.n");return e===Ih?g.ZERO:this.is0()||e===Bh?this:p.unsafe(this,e,(e=>mu(g,e)),t)}isSmallOrder(){return this.multiplyUnsafe(a).is0()}isTorsionFree(){return p.unsafe(this,s.n).is0()}toAffine(e){return l(this,e)}clearCofactor(){return a===Bh?this:this.multiplyUnsafe(a)}toBytes(){const{x:e,y:t}=this.toAffine(),r=n.toBytes(t);return r[r.length-1]|=e&Bh?128:0,r}toHex(){return Bo(this.toBytes())}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get ex(){return this.X}get ey(){return this.Y}get ez(){return this.Z}get et(){return this.T}static normalizeZ(e){return mu(g,e)}static msm(e,t){return Cu(g,i,e,t)}_setWindowSize(e){this.precompute(e)}toRawBytes(){return this.toBytes()}}g.BASE=new g(s.Gx,s.Gy,Bh,c(s.Gx*s.Gy)),g.ZERO=new g(Ih,Bh,Bh,Ih),g.Fp=n,g.Fn=i;const p=new Ku(g,i.BITS);return g.BASE.precompute(8),g}function Dh(e,t,r={}){if("function"!=typeof t)throw Error('"hash" function param is required');rc(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||No,c=r.adjustScalarBytes||(e=>e),u=r.domain||((e,t,r)=>{if(zo(r,"phflag"),t.length||r)throw Error("Contexts/pre-hash are not supported");return e});function h(e){return a.create(_o(e))}function f(e){const{head:r,prefix:n,scalar:s}=function(e){const r=d.secretKey;e=Jo("private key",e,r);const n=Jo("hashed private key",t(e),2*r),i=c(n.slice(0,r));return{head:i,prefix:n.slice(r,2*r),scalar:h(i)}}(e),a=i.multiply(s),o=a.toBytes();return{head:r,prefix:n,scalar:s,point:a,pointBytes:o}}function l(e){return f(e).pointBytes}function y(e=Uint8Array.of(),...r){const i=Ro(...r);return h(t(u(i,Jo("context",e),!!n)))}const g={zip215:!0};const p=s.BYTES,d={secretKey:p,publicKey:p,signature:2*p,seed:p};function A(e=o(d.seed)){return Go(e,d.seed,"seed")}const w={getExtendedPublicKey:f,randomSecretKey:A,isValidSecretKey:function(e){return fo(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=d.publicKey,i=32===n;if(!i&&57!==n)throw Error("only defined for 25519 and 448");const a=i?s.div(Bh+r,Bh-r):s.div(r-Bh,r+Bh);return s.toBytes(a)},toMontgomerySecret(e){const r=d.secretKey;Go(e,r);const n=t(e.subarray(0,r));return c(n).subarray(0,r)},randomPrivateKey:A,precompute:(t=8,r=e.BASE)=>r.precompute(t,!1)};return Object.freeze({keygen:function(e){const t=w.randomSecretKey(e);return{secretKey:t,publicKey:l(t)}},getPublicKey:l,sign:function(e,t,r={}){e=Jo("message",e),n&&(e=n(e));const{prefix:s,scalar:o,pointBytes:c}=f(t),u=y(r.context,s,e),h=i.multiply(u).toBytes(),l=y(r.context,h,c,e),g=a.create(u+l*o);if(!a.isValid(g))throw Error("sign failed: invalid s");return Go(Ro(h,a.toBytes(g)),d.signature,"result")},verify:function(t,r,s,a=g){const{context:o,zip215:c}=a,u=d.signature;t=Jo("signature",t,u),r=Jo("message",r),s=Jo("publicKey",s,d.publicKey),void 0!==c&&zo(c,"zip215"),n&&(r=n(r));const h=u/2,f=t.subarray(0,h),l=_o(t.subarray(h,u));let p,A,w;try{p=e.fromBytes(s,c),A=e.fromBytes(f,c),w=i.multiplyUnsafe(l)}catch(e){return!1}if(!c&&p.isSmallOrder())return!1;const m=y(o,A.toBytes(),p.toBytes(),r);return A.add(p.multiplyUnsafe(m)).subtract(w).clearCofactor().is0()},utils:w,Point:e,lengths:d})}
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
const Uh=BigInt(0),Ph=BigInt(1),xh=BigInt(2);function Qh(e){const t=(rc(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 Error("invalid type");const u=o||No,h=c?255:448,f=c?32:56,l=c?BigInt(9):BigInt(5),y=c?BigInt(121665):BigInt(39081),g=c?xh**BigInt(254):xh**BigInt(447),p=c?BigInt(8)*xh**BigInt(251)-Ph:BigInt(4)*xh**BigInt(445)-Ph,d=g+p+Ph,A=e=>gc(e,n),w=m(l);function m(e){return Zo(A(e),f)}function b(e,t){const r=function(e,t){$o("u",e,Uh,n),$o("scalar",t,g,d);const r=t,i=e;let s=Ph,o=Uh,c=e,u=Ph,f=Uh;for(let e=BigInt(h-1);e>=Uh;e--){const t=r>>e&Ph;f^=t,({x_2:s,x_3:c}=E(f,s,c)),({x_2:o,x_3:u}=E(f,o,u)),f=t;const n=s+o,a=A(n*n),h=s-o,l=A(h*h),g=a-l,p=c+u,d=A((c-u)*n),w=A(p*h),m=d+w,b=d-w;c=A(m*m),u=A(i*A(b*b)),s=A(a*l),o=A(g*(a+A(y*g)))}({x_2:s,x_3:c}=E(f,s,c)),({x_2:o,x_3:u}=E(f,o,u));const l=a(o);return A(s*l)}(function(e){const t=Jo("u coordinate",e,f);return c&&(t[31]&=127),A(_o(t))}(t),function(e){return _o(s(Jo("scalar",e,f)))}(e));if(r===Uh)throw Error("invalid private or public key received");return m(r)}function k(e){return b(e,w)}function E(e,t,r){const n=A(e*(t-r));return{x_2:t=A(t-n),x_3:r=A(r+n)}}const v={secretKey:f,publicKey:f,seed:f},I=(e=u(f))=>(yo(e,v.seed),e);return{keygen:function(e){const t=I(e);return{secretKey:t,publicKey:k(t)}},getSharedSecret:(e,t)=>b(e,t),getPublicKey:e=>k(e),scalarMult:b,scalarMultBase:k,utils:{randomSecretKey:I,randomPrivateKey:I},GuBytes:w.slice(),lengths:v}}
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Mh={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n:BigInt("0x3fffffffffffffffffffffffffffffffffffffffffffffffffffffff7cca23e9c44edb49aed63690216cc2728dc58f552378c292ab5844f3"),h:BigInt(4),a:BigInt(1),d:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffff6756"),Gx:BigInt("0x4f1970c66bed0ded221d15a622bf36da9e146570470f1767ea6de324a3d3a46412ae1af72ab66511433b80e18b00938e2626a82bc70cc05e"),Gy:BigInt("0x693f46716eb6bc248876203756c9c7624bea73736ca3984087789c1e05a0c2d73ad3ff1ce67c39c4fdbd132c4ed7c8ad9808795bf230fa14")},Rh=Object.assign({},Mh,{d:BigInt("0xd78b4bdc7f0daf19f24f38c29373a2ccad46157242a50f37809b1da3412a12e79ccc9c81264cfe9ad080997058fb61c4243cc32dbaa156b9"),Gx:BigInt("0x79a70b2b70400553ae7c9df416c792c61128751ac92969240c25a07d728bdc93e21f7787ed6972249de732f38496cd11698713093e9c04fc"),Gy:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffff80000000000000000000000000000000000000000000000000000001")}),Th=/* @__PURE__ */Fo((()=>vh.create({dkLen:114}))),Fh=BigInt(1),Lh=BigInt(2),Nh=BigInt(3);BigInt(4);const Oh=BigInt(11),Hh=BigInt(22),zh=BigInt(44),Gh=BigInt(88),jh=BigInt(223);function Vh(e){const t=Mh.p,r=e*e*e%t,n=r*r*e%t,i=pc(n,Nh,t)*n%t,s=pc(i,Nh,t)*n%t,a=pc(s,Lh,t)*r%t,o=pc(a,Oh,t)*a%t,c=pc(o,Hh,t)*o%t,u=pc(c,zh,t)*c%t,h=pc(u,Gh,t)*u%t,f=pc(h,zh,t)*c%t,l=pc(f,Lh,t)*r%t,y=pc(l,Fh,t)*e%t;return pc(y,jh,t)*l%t}function qh(e){return e[0]&=252,e[55]|=128,e[56]=0,e}function _h(e,t){const r=Mh.p,n=gc(e*e*t,r),i=gc(n*e,r),s=gc(i*n*t,r),a=gc(i*Vh(s),r),o=gc(a*a,r);return{isValid:gc(o*t,r)===e,value:a}}const Yh=/* @__PURE__ */(()=>Sc(Mh.p,{BITS:456,isLE:!0}))(),Zh=/* @__PURE__ */(()=>Sc(Mh.n,{BITS:456,isLE:!0}))();function Jh(e,t,r){if(t.length>255)throw Error("context must be smaller than 255, got: "+t.length);return Ro((n="SigEd448",Uint8Array.from(n,((e,t)=>{const r=e.charCodeAt(0);if(1!==e.length||r>127)throw 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 Wh=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:Sc(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,Dh(Ch(t,r),n,i))}(/* @__PURE__ */(()=>({...Mh,Fp:Yh,Fn:Zh,nBitLength:Zh.BITS,hash:Th,adjustScalarBytes:qh,domain:Jh,uvRatio:_h}))());Ch(Rh);const Xh=/* @__PURE__ */(()=>{const e=Mh.p;return Qh({P:e,type:"x448",powPminus2:t=>gc(pc(Vh(t),Lh,e)*t,e),adjustScalarBytes:qh})})(),$h={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},ef={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},tf=/* @__PURE__ */BigInt(2);
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const rf=Sc($h.p,{sqrt:function(e){const t=$h.p,r=BigInt(3),n=BigInt(6),i=BigInt(11),s=BigInt(22),a=BigInt(23),o=BigInt(44),c=BigInt(88),u=e*e*e%t,h=u*u*e%t,f=pc(h,r,t)*h%t,l=pc(f,r,t)*h%t,y=pc(l,tf,t)*u%t,g=pc(y,i,t)*y%t,p=pc(g,s,t)*g%t,d=pc(p,o,t)*p%t,A=pc(d,c,t)*d%t,w=pc(A,o,t)*p%t,m=pc(w,r,t)*h%t,b=pc(m,a,t)*g%t,k=pc(b,n,t)*u%t,E=pc(k,tf,t);if(!rf.eql(rf.sqr(E),e))throw Error("Cannot find square root");return E}}),nf=Yu({...$h,Fp:rf,lowS:!0,endo:ef},hu),sf=hu,af=fu,of=Sc(BigInt("0xa9fb57dba1eea9bc3e660a909d838d726e3bf623d52620282013481d1f6e5377")),cf=Yu({a:of.create(BigInt("0x7d5a0975fc2c3057eef67530417affe7fb8055c126dc5c6ce94a4b44f330b5d9")),b:BigInt("0x26dc5c6ce94a4b44f330b5d9bbd77cbf958416295cf7e1ce6bccdc18ff8c07b6"),Fp:of,n:BigInt("0xa9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e82974856a7"),Gx:BigInt("0x8bd2aeb9cb7e57cb2c4b482ffc81b7afb9de27e1e3bd23c23a4453bd9ace3262"),Gy:BigInt("0x547ef835c3dac4fd97f8461a14611dc9c27745132ded8e545c1d54c72f046997"),h:BigInt(1),lowS:!1},sf),uf=lu,hf=yu,ff=Sc(BigInt("0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b412b1da197fb71123acd3a729901d1a71874700133107ec53")),lf=Yu({a:ff.create(BigInt("0x7bc382c63d8c150c3c72080ace05afa0c2bea28e4fb22787139165efba91f90f8aa5814a503ad4eb04a8c7dd22ce2826")),b:BigInt("0x04a8c7dd22ce28268b39b55416f0447c2fb77de107dcd2a62e880ea53eeb62d57cb4390295dbc9943ab78696fa504c11"),Fp:ff,n:BigInt("0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e9046565"),Gx:BigInt("0x1d1c64f068cf45ffa2a63a81b7c13f6b8847a3e77ef14fe3db7fcafe0cbd10e8e826e03436d646aaef87b2e247d4af1e"),Gy:BigInt("0x8abe1d7520f9c2a45cb1eb8e95cfd55262b70b29feec5864e19c054ff99129280e4646217791811142820341263c5315"),h:BigInt(1),lowS:!1},hf),yf=Sc(BigInt("0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca703308717d4d9b009bc66842aecda12ae6a380e62881ff2f2d82c68528aa6056583a48f3")),gf=Yu({a:yf.create(BigInt("0x7830a3318b603b89e2327145ac234cc594cbdd8d3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94ca")),b:BigInt("0x3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94cadc083e67984050b75ebae5dd2809bd638016f723"),Fp:yf,n:BigInt("0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90069"),Gx:BigInt("0x81aee4bdd82ed9645a21322e9c4c6a9385ed9f70b5d916c1b43b62eef4d0098eff3b1f78e2d0d48d50d1687b93b97d5f7c6d5047406a5e688b352209bcb9f822"),Gy:BigInt("0x7dde385d566332ecc0eabfa9cf7822fdf209f70024a57b1aa000c55b881f8111b2dcde494a5f485e5bca4bd88a2763aed1ca2b2fa8f0540678cd1e0f3ad80892"),h:BigInt(1),lowS:!1},uf),pf=new Map(Object.entries({nistP256:th,nistP384:rh,nistP521:nh,brainpoolP256r1:cf,brainpoolP384r1:lf,brainpoolP512r1:gf,secp256k1:nf,x448:Xh,ed448:Wh}));var df=/*#__PURE__*/Object.freeze({__proto__:null,nobleCurves:pf});const Af=/* @__PURE__ */Uint32Array.from([1732584193,4023233417,2562383102,271733878,3285377520]),wf=/* @__PURE__ */new Uint32Array(80);class mf extends Pc{constructor(){super(64,20,8,!1),this.A=0|Af[0],this.B=0|Af[1],this.C=0|Af[2],this.D=0|Af[3],this.E=0|Af[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)wf[r]=e.getUint32(t,!1);for(let e=16;e<80;e++)wf[e]=ko(wf[e-3]^wf[e-8]^wf[e-14]^wf[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=Dc(n,i,s),o=1518500249):e<40?(t=n^i^s,o=1859775393):e<60?(t=Uc(n,i,s),o=2400959708):(t=n^i^s,o=3395469782);const c=ko(r,5)+t+a+o+wf[e]|0;a=s,s=i,i=ko(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(){wo(wf)}destroy(){this.set(0,0,0,0,0),wo(this.buffer)}}const bf=/* @__PURE__ */Fo((()=>new mf)),kf=/* @__PURE__ */Uint8Array.from([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),Ef=/* @__PURE__ */(()=>Uint8Array.from(Array(16).fill(0).map(((e,t)=>t))))(),vf=/* @__PURE__ */(()=>Ef.map((e=>(9*e+5)%16)))(),If=/* @__PURE__ */(()=>{const e=[[Ef],[vf]];for(let t=0;t<4;t++)for(let r of e)r.push(r[t].map((e=>kf[e])));return e})(),Bf=/* @__PURE__ */(()=>If[0])(),Sf=/* @__PURE__ */(()=>If[1])(),Kf=/* @__PURE__ */[[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))),Cf=/* @__PURE__ */Bf.map(((e,t)=>e.map((e=>Kf[t][e])))),Df=/* @__PURE__ */Sf.map(((e,t)=>e.map((e=>Kf[t][e])))),Uf=/* @__PURE__ */Uint32Array.from([0,1518500249,1859775393,2400959708,2840853838]),Pf=/* @__PURE__ */Uint32Array.from([1352829926,1548603684,1836072691,2053994217,0]);function xf(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 Qf=/* @__PURE__ */new Uint32Array(16);class Mf extends Pc{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)Qf[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,u=c,h=0|this.h4,f=h;for(let e=0;e<5;e++){const t=4-e,l=Uf[e],y=Pf[e],g=Bf[e],p=Sf[e],d=Cf[e],A=Df[e];for(let t=0;t<16;t++){const n=ko(r+xf(e,i,a,c)+Qf[g[t]]+l,d[t])+h|0;r=h,h=c,c=0|ko(a,10),a=i,i=n}for(let e=0;e<16;e++){const r=ko(n+xf(t,s,o,u)+Qf[p[e]]+y,A[e])+f|0;n=f,f=u,u=0|ko(o,10),o=s,s=r}}this.set(this.h1+a+u|0,this.h2+c+f|0,this.h3+h+n|0,this.h4+r+s|0,this.h0+i+o|0)}roundClean(){wo(Qf)}destroy(){this.destroyed=!0,wo(this.buffer),this.set(0,0,0,0,0)}}const Rf=bf,Tf=/* @__PURE__ */Fo((()=>new Mf)),Ff=Array.from({length:64},((e,t)=>Math.floor(2**32*Math.abs(Math.sin(t+1))))),Lf=(e,t,r)=>e&t^~e&r,Nf=/* @__PURE__ */new Uint32Array([1732584193,4023233417,2562383102,271733878]),Of=/* @__PURE__ */new Uint32Array(16);class Hf extends Pc{constructor(){super(64,16,8,!0),this.A=0|Nf[0],this.B=0|Nf[1],this.C=0|Nf[2],this.D=0|Nf[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)Of[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=Lf(n,i,s),a=e,o=[7,12,17,22]):e<32?(t=Lf(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+Ff[e]+Of[a],r=s,s=i,i=n,n+=ko(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(){Of.fill(0)}destroy(){this.set(0,0,0,0),this.buffer.fill(0)}}const zf=new Map(Object.entries({md5:/* @__PURE__ */Lo((()=>new Hf)),sha1:Rf,sha224:af,sha256:sf,sha384:hf,sha512:uf,sha3_256:bh,sha3_512:kh,ripemd160:Tf}));var Gf=/*#__PURE__*/Object.freeze({__proto__:null,nobleHashes:zf});const jf="object"==typeof t&&"crypto"in t?t.crypto:void 0,Vf={};var qf=function(e){var t,r=new Float64Array(16);if(e)for(t=0;t<e.length;t++)r[t]=e[t];return r},_f=function(){throw Error("no PRNG")},Yf=new Uint8Array(32);Yf[0]=9;var Zf=qf(),Jf=qf([1]),Wf=qf([56129,1]),Xf=qf([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),$f=qf([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),el=qf([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),tl=qf([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),rl=qf([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);function nl(e,t,r,n){e[t]=r>>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 il(e,t,r,n){return function(e,t,r,n,i){var s,a=0;for(s=0;s<i;s++)a|=e[t+s]^r[n+s];return(1&a-1>>>8)-1}(e,t,r,n,32)}function sl(e,t){var r;for(r=0;r<16;r++)e[r]=0|t[r]}function al(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 ol(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 cl(e,t){var r,n,i,s=qf(),a=qf();for(r=0;r<16;r++)a[r]=t[r];for(al(a),al(a),al(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,ol(a,s,1-i)}for(r=0;r<16;r++)e[2*r]=255&a[r],e[2*r+1]=a[r]>>8}function ul(e,t){var r=new Uint8Array(32),n=new Uint8Array(32);return cl(r,e),cl(n,t),il(r,0,n,0)}function hl(e){var t=new Uint8Array(32);return cl(t,e),1&t[0]}function fl(e,t){var r;for(r=0;r<16;r++)e[r]=t[2*r]+(t[2*r+1]<<8);e[15]&=32767}function ll(e,t,r){for(var n=0;n<16;n++)e[n]=t[n]+r[n]}function yl(e,t,r){for(var n=0;n<16;n++)e[n]=t[n]-r[n]}function gl(e,t,r){var n,i,s=0,a=0,o=0,c=0,u=0,h=0,f=0,l=0,y=0,g=0,p=0,d=0,A=0,w=0,m=0,b=0,k=0,E=0,v=0,I=0,B=0,S=0,K=0,C=0,D=0,U=0,P=0,x=0,Q=0,M=0,R=0,T=r[0],F=r[1],L=r[2],N=r[3],O=r[4],H=r[5],z=r[6],G=r[7],j=r[8],V=r[9],q=r[10],_=r[11],Y=r[12],Z=r[13],J=r[14],W=r[15];s+=(n=t[0])*T,a+=n*F,o+=n*L,c+=n*N,u+=n*O,h+=n*H,f+=n*z,l+=n*G,y+=n*j,g+=n*V,p+=n*q,d+=n*_,A+=n*Y,w+=n*Z,m+=n*J,b+=n*W,a+=(n=t[1])*T,o+=n*F,c+=n*L,u+=n*N,h+=n*O,f+=n*H,l+=n*z,y+=n*G,g+=n*j,p+=n*V,d+=n*q,A+=n*_,w+=n*Y,m+=n*Z,b+=n*J,k+=n*W,o+=(n=t[2])*T,c+=n*F,u+=n*L,h+=n*N,f+=n*O,l+=n*H,y+=n*z,g+=n*G,p+=n*j,d+=n*V,A+=n*q,w+=n*_,m+=n*Y,b+=n*Z,k+=n*J,E+=n*W,c+=(n=t[3])*T,u+=n*F,h+=n*L,f+=n*N,l+=n*O,y+=n*H,g+=n*z,p+=n*G,d+=n*j,A+=n*V,w+=n*q,m+=n*_,b+=n*Y,k+=n*Z,E+=n*J,v+=n*W,u+=(n=t[4])*T,h+=n*F,f+=n*L,l+=n*N,y+=n*O,g+=n*H,p+=n*z,d+=n*G,A+=n*j,w+=n*V,m+=n*q,b+=n*_,k+=n*Y,E+=n*Z,v+=n*J,I+=n*W,h+=(n=t[5])*T,f+=n*F,l+=n*L,y+=n*N,g+=n*O,p+=n*H,d+=n*z,A+=n*G,w+=n*j,m+=n*V,b+=n*q,k+=n*_,E+=n*Y,v+=n*Z,I+=n*J,B+=n*W,f+=(n=t[6])*T,l+=n*F,y+=n*L,g+=n*N,p+=n*O,d+=n*H,A+=n*z,w+=n*G,m+=n*j,b+=n*V,k+=n*q,E+=n*_,v+=n*Y,I+=n*Z,B+=n*J,S+=n*W,l+=(n=t[7])*T,y+=n*F,g+=n*L,p+=n*N,d+=n*O,A+=n*H,w+=n*z,m+=n*G,b+=n*j,k+=n*V,E+=n*q,v+=n*_,I+=n*Y,B+=n*Z,S+=n*J,K+=n*W,y+=(n=t[8])*T,g+=n*F,p+=n*L,d+=n*N,A+=n*O,w+=n*H,m+=n*z,b+=n*G,k+=n*j,E+=n*V,v+=n*q,I+=n*_,B+=n*Y,S+=n*Z,K+=n*J,C+=n*W,g+=(n=t[9])*T,p+=n*F,d+=n*L,A+=n*N,w+=n*O,m+=n*H,b+=n*z,k+=n*G,E+=n*j,v+=n*V,I+=n*q,B+=n*_,S+=n*Y,K+=n*Z,C+=n*J,D+=n*W,p+=(n=t[10])*T,d+=n*F,A+=n*L,w+=n*N,m+=n*O,b+=n*H,k+=n*z,E+=n*G,v+=n*j,I+=n*V,B+=n*q,S+=n*_,K+=n*Y,C+=n*Z,D+=n*J,U+=n*W,d+=(n=t[11])*T,A+=n*F,w+=n*L,m+=n*N,b+=n*O,k+=n*H,E+=n*z,v+=n*G,I+=n*j,B+=n*V,S+=n*q,K+=n*_,C+=n*Y,D+=n*Z,U+=n*J,P+=n*W,A+=(n=t[12])*T,w+=n*F,m+=n*L,b+=n*N,k+=n*O,E+=n*H,v+=n*z,I+=n*G,B+=n*j,S+=n*V,K+=n*q,C+=n*_,D+=n*Y,U+=n*Z,P+=n*J,x+=n*W,w+=(n=t[13])*T,m+=n*F,b+=n*L,k+=n*N,E+=n*O,v+=n*H,I+=n*z,B+=n*G,S+=n*j,K+=n*V,C+=n*q,D+=n*_,U+=n*Y,P+=n*Z,x+=n*J,Q+=n*W,m+=(n=t[14])*T,b+=n*F,k+=n*L,E+=n*N,v+=n*O,I+=n*H,B+=n*z,S+=n*G,K+=n*j,C+=n*V,D+=n*q,U+=n*_,P+=n*Y,x+=n*Z,Q+=n*J,M+=n*W,b+=(n=t[15])*T,a+=38*(E+=n*L),o+=38*(v+=n*N),c+=38*(I+=n*O),u+=38*(B+=n*H),h+=38*(S+=n*z),f+=38*(K+=n*G),l+=38*(C+=n*j),y+=38*(D+=n*V),g+=38*(U+=n*q),p+=38*(P+=n*_),d+=38*(x+=n*Y),A+=38*(Q+=n*Z),w+=38*(M+=n*J),m+=38*(R+=n*W),s=(n=(s+=38*(k+=n*F))+(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)),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)),l=(n=l+i+65535)-65536*(i=Math.floor(n/65536)),y=(n=y+i+65535)-65536*(i=Math.floor(n/65536)),g=(n=g+i+65535)-65536*(i=Math.floor(n/65536)),p=(n=p+i+65535)-65536*(i=Math.floor(n/65536)),d=(n=d+i+65535)-65536*(i=Math.floor(n/65536)),A=(n=A+i+65535)-65536*(i=Math.floor(n/65536)),w=(n=w+i+65535)-65536*(i=Math.floor(n/65536)),m=(n=m+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)),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)),l=(n=l+i+65535)-65536*(i=Math.floor(n/65536)),y=(n=y+i+65535)-65536*(i=Math.floor(n/65536)),g=(n=g+i+65535)-65536*(i=Math.floor(n/65536)),p=(n=p+i+65535)-65536*(i=Math.floor(n/65536)),d=(n=d+i+65535)-65536*(i=Math.floor(n/65536)),A=(n=A+i+65535)-65536*(i=Math.floor(n/65536)),w=(n=w+i+65535)-65536*(i=Math.floor(n/65536)),m=(n=m+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]=u,e[5]=h,e[6]=f,e[7]=l,e[8]=y,e[9]=g,e[10]=p,e[11]=d,e[12]=A,e[13]=w,e[14]=m,e[15]=b}function pl(e,t){gl(e,t,t)}function dl(e,t){var r,n=qf();for(r=0;r<16;r++)n[r]=t[r];for(r=253;r>=0;r--)pl(n,n),2!==r&&4!==r&&gl(n,n,t);for(r=0;r<16;r++)e[r]=n[r]}function Al(e,t,r){var n,i,s=new Uint8Array(32),a=new Float64Array(80),o=qf(),c=qf(),u=qf(),h=qf(),f=qf(),l=qf();for(i=0;i<31;i++)s[i]=t[i];for(s[31]=127&t[31]|64,s[0]&=248,fl(a,r),i=0;i<16;i++)c[i]=a[i],h[i]=o[i]=u[i]=0;for(o[0]=h[0]=1,i=254;i>=0;--i)ol(o,c,n=s[i>>>3]>>>(7&i)&1),ol(u,h,n),ll(f,o,u),yl(o,o,u),ll(u,c,h),yl(c,c,h),pl(h,f),pl(l,o),gl(o,u,o),gl(u,c,f),ll(f,o,u),yl(o,o,u),pl(c,o),yl(u,h,l),gl(o,u,Wf),ll(o,o,h),gl(u,u,o),gl(o,h,l),gl(h,c,a),pl(c,f),ol(o,c,n),ol(u,h,n);for(i=0;i<16;i++)a[i+16]=o[i],a[i+32]=u[i],a[i+48]=c[i],a[i+64]=h[i];var y=a.subarray(32),g=a.subarray(16);return dl(y,y),gl(g,g,y),cl(e,g),0}function wl(e,t){return Al(e,t,Yf)}var ml=[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 bl(e,t,r,n){for(var i,s,a,o,c,u,h,f,l,y,g,p,d,A,w,m,b,k,E,v,I,B,S,K,C,D,U=new Int32Array(16),P=new Int32Array(16),x=e[0],Q=e[1],M=e[2],R=e[3],T=e[4],F=e[5],L=e[6],N=e[7],O=t[0],H=t[1],z=t[2],G=t[3],j=t[4],V=t[5],q=t[6],_=t[7],Y=0;n>=128;){for(E=0;E<16;E++)v=8*E+Y,U[E]=r[v+0]<<24|r[v+1]<<16|r[v+2]<<8|r[v+3],P[E]=r[v+4]<<24|r[v+5]<<16|r[v+6]<<8|r[v+7];for(E=0;E<80;E++)if(i=x,s=Q,a=M,o=R,c=T,u=F,h=L,N,l=O,y=H,g=z,p=G,d=j,A=V,w=q,_,S=65535&(B=_),K=B>>>16,C=65535&(I=N),D=I>>>16,S+=65535&(B=(j>>>14|T<<18)^(j>>>18|T<<14)^(T>>>9|j<<23)),K+=B>>>16,C+=65535&(I=(T>>>14|j<<18)^(T>>>18|j<<14)^(j>>>9|T<<23)),D+=I>>>16,S+=65535&(B=j&V^~j&q),K+=B>>>16,C+=65535&(I=T&F^~T&L),D+=I>>>16,S+=65535&(B=ml[2*E+1]),K+=B>>>16,C+=65535&(I=ml[2*E]),D+=I>>>16,I=U[E%16],K+=(B=P[E%16])>>>16,C+=65535&I,D+=I>>>16,C+=(K+=(S+=65535&B)>>>16)>>>16,S=65535&(B=k=65535&S|K<<16),K=B>>>16,C=65535&(I=b=65535&C|(D+=C>>>16)<<16),D=I>>>16,S+=65535&(B=(O>>>28|x<<4)^(x>>>2|O<<30)^(x>>>7|O<<25)),K+=B>>>16,C+=65535&(I=(x>>>28|O<<4)^(O>>>2|x<<30)^(O>>>7|x<<25)),D+=I>>>16,K+=(B=O&H^O&z^H&z)>>>16,C+=65535&(I=x&Q^x&M^Q&M),D+=I>>>16,f=65535&(C+=(K+=(S+=65535&B)>>>16)>>>16)|(D+=C>>>16)<<16,m=65535&S|K<<16,S=65535&(B=p),K=B>>>16,C=65535&(I=o),D=I>>>16,K+=(B=k)>>>16,C+=65535&(I=b),D+=I>>>16,Q=i,M=s,R=a,T=o=65535&(C+=(K+=(S+=65535&B)>>>16)>>>16)|(D+=C>>>16)<<16,F=c,L=u,N=h,x=f,H=l,z=y,G=g,j=p=65535&S|K<<16,V=d,q=A,_=w,O=m,E%16==15)for(v=0;v<16;v++)I=U[v],S=65535&(B=P[v]),K=B>>>16,C=65535&I,D=I>>>16,I=U[(v+9)%16],S+=65535&(B=P[(v+9)%16]),K+=B>>>16,C+=65535&I,D+=I>>>16,b=U[(v+1)%16],S+=65535&(B=((k=P[(v+1)%16])>>>1|b<<31)^(k>>>8|b<<24)^(k>>>7|b<<25)),K+=B>>>16,C+=65535&(I=(b>>>1|k<<31)^(b>>>8|k<<24)^b>>>7),D+=I>>>16,b=U[(v+14)%16],K+=(B=((k=P[(v+14)%16])>>>19|b<<13)^(b>>>29|k<<3)^(k>>>6|b<<26))>>>16,C+=65535&(I=(b>>>19|k<<13)^(k>>>29|b<<3)^b>>>6),D+=I>>>16,D+=(C+=(K+=(S+=65535&B)>>>16)>>>16)>>>16,U[v]=65535&C|D<<16,P[v]=65535&S|K<<16;S=65535&(B=O),K=B>>>16,C=65535&(I=x),D=I>>>16,I=e[0],K+=(B=t[0])>>>16,C+=65535&I,D+=I>>>16,D+=(C+=(K+=(S+=65535&B)>>>16)>>>16)>>>16,e[0]=x=65535&C|D<<16,t[0]=O=65535&S|K<<16,S=65535&(B=H),K=B>>>16,C=65535&(I=Q),D=I>>>16,I=e[1],K+=(B=t[1])>>>16,C+=65535&I,D+=I>>>16,D+=(C+=(K+=(S+=65535&B)>>>16)>>>16)>>>16,e[1]=Q=65535&C|D<<16,t[1]=H=65535&S|K<<16,S=65535&(B=z),K=B>>>16,C=65535&(I=M),D=I>>>16,I=e[2],K+=(B=t[2])>>>16,C+=65535&I,D+=I>>>16,D+=(C+=(K+=(S+=65535&B)>>>16)>>>16)>>>16,e[2]=M=65535&C|D<<16,t[2]=z=65535&S|K<<16,S=65535&(B=G),K=B>>>16,C=65535&(I=R),D=I>>>16,I=e[3],K+=(B=t[3])>>>16,C+=65535&I,D+=I>>>16,D+=(C+=(K+=(S+=65535&B)>>>16)>>>16)>>>16,e[3]=R=65535&C|D<<16,t[3]=G=65535&S|K<<16,S=65535&(B=j),K=B>>>16,C=65535&(I=T),D=I>>>16,I=e[4],K+=(B=t[4])>>>16,C+=65535&I,D+=I>>>16,D+=(C+=(K+=(S+=65535&B)>>>16)>>>16)>>>16,e[4]=T=65535&C|D<<16,t[4]=j=65535&S|K<<16,S=65535&(B=V),K=B>>>16,C=65535&(I=F),D=I>>>16,I=e[5],K+=(B=t[5])>>>16,C+=65535&I,D+=I>>>16,D+=(C+=(K+=(S+=65535&B)>>>16)>>>16)>>>16,e[5]=F=65535&C|D<<16,t[5]=V=65535&S|K<<16,S=65535&(B=q),K=B>>>16,C=65535&(I=L),D=I>>>16,I=e[6],K+=(B=t[6])>>>16,C+=65535&I,D+=I>>>16,D+=(C+=(K+=(S+=65535&B)>>>16)>>>16)>>>16,e[6]=L=65535&C|D<<16,t[6]=q=65535&S|K<<16,S=65535&(B=_),K=B>>>16,C=65535&(I=N),D=I>>>16,I=e[7],K+=(B=t[7])>>>16,C+=65535&I,D+=I>>>16,D+=(C+=(K+=(S+=65535&B)>>>16)>>>16)>>>16,e[7]=N=65535&C|D<<16,t[7]=_=65535&S|K<<16,Y+=128,n-=128}return n}function kl(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,bl(i,s,t,r),r%=128,n=0;n<r;n++)a[n]=t[o-r+n];for(a[r]=128,a[(r=256-128*(r<112?1:0))-9]=0,nl(a,r-8,o/536870912|0,o<<3),bl(i,s,a,r),n=0;n<8;n++)nl(e,8*n,i[n],s[n]);return 0}function El(e,t){var r=qf(),n=qf(),i=qf(),s=qf(),a=qf(),o=qf(),c=qf(),u=qf(),h=qf();yl(r,e[1],e[0]),yl(h,t[1],t[0]),gl(r,r,h),ll(n,e[0],e[1]),ll(h,t[0],t[1]),gl(n,n,h),gl(i,e[3],t[3]),gl(i,i,$f),gl(s,e[2],t[2]),ll(s,s,s),yl(a,n,r),yl(o,s,i),ll(c,s,i),ll(u,n,r),gl(e[0],a,o),gl(e[1],u,c),gl(e[2],c,o),gl(e[3],a,u)}function vl(e,t,r){var n;for(n=0;n<4;n++)ol(e[n],t[n],r)}function Il(e,t){var r=qf(),n=qf(),i=qf();dl(i,t[2]),gl(r,t[0],i),gl(n,t[1],i),cl(e,n),e[31]^=hl(r)<<7}function Bl(e,t,r){var n,i;for(sl(e[0],Zf),sl(e[1],Jf),sl(e[2],Jf),sl(e[3],Zf),i=255;i>=0;--i)vl(e,t,n=r[i/8|0]>>(7&i)&1),El(t,e),El(e,e),vl(e,t,n)}function Sl(e,t){var r=[qf(),qf(),qf(),qf()];sl(r[0],el),sl(r[1],tl),sl(r[2],Jf),gl(r[3],el,tl),Bl(e,r,t)}function Kl(e,t,r){var n,i=new Uint8Array(64),s=[qf(),qf(),qf(),qf()];for(r||_f(t,32),kl(i,t,32),i[0]&=248,i[31]&=127,i[31]|=64,Sl(s,i),Il(e,s),n=0;n<32;n++)t[n+32]=e[n];return 0}var Cl=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 Dl(e,t){var r,n,i,s;for(n=63;n>=32;--n){for(r=0,i=n-32,s=n-12;i<s;++i)t[i]+=r-16*t[n]*Cl[i-(n-32)],r=Math.floor((t[i]+128)/256),t[i]-=256*r;t[i]+=r,t[n]=0}for(r=0,i=0;i<32;i++)t[i]+=r-(t[31]>>4)*Cl[i],r=t[i]>>8,t[i]&=255;for(i=0;i<32;i++)t[i]-=r*Cl[i];for(n=0;n<32;n++)t[n+1]+=t[n]>>8,e[n]=255&t[n]}function Ul(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;Dl(e,r)}function Pl(e,t){var r=qf(),n=qf(),i=qf(),s=qf(),a=qf(),o=qf(),c=qf();return sl(e[2],Jf),fl(e[1],t),pl(i,e[1]),gl(s,i,Xf),yl(i,i,e[2]),ll(s,e[2],s),pl(a,s),pl(o,a),gl(c,o,a),gl(r,c,i),gl(r,r,s),function(e,t){var r,n=qf();for(r=0;r<16;r++)n[r]=t[r];for(r=250;r>=0;r--)pl(n,n),1!==r&&gl(n,n,t);for(r=0;r<16;r++)e[r]=n[r]}(r,r),gl(r,r,i),gl(r,r,s),gl(r,r,s),gl(e[0],r,s),pl(n,e[0]),gl(n,n,s),ul(n,i)&&gl(e[0],e[0],rl),pl(n,e[0]),gl(n,n,s),ul(n,i)?-1:(hl(e[0])===t[31]>>7&&yl(e[0],Zf,e[0]),gl(e[3],e[0],e[1]),0)}var xl=64;function Ql(){for(var e=0;e<arguments.length;e++)if(!(arguments[e]instanceof Uint8Array))throw new TypeError("unexpected type, use Uint8Array")}Vf.scalarMult=function(e,t){if(Ql(e,t),32!==e.length)throw Error("bad n size");if(32!==t.length)throw Error("bad p size");var r=new Uint8Array(32);return Al(r,e,t),r},Vf.box={},Vf.box.keyPair=function(){var e=new Uint8Array(32),t=new Uint8Array(32);return function(e,t){_f(t,32),wl(e,t)}(e,t),{publicKey:e,secretKey:t}},Vf.box.keyPair.fromSecretKey=function(e){if(Ql(e),32!==e.length)throw Error("bad secret key size");var t=new Uint8Array(32);return wl(t,e),{publicKey:t,secretKey:new Uint8Array(e)}},Vf.sign=function(e,t){if(Ql(e,t),64!==t.length)throw Error("bad secret key size");var r=new Uint8Array(xl+e.length);return function(e,t,r,n){var i,s,a=new Uint8Array(64),o=new Uint8Array(64),c=new Uint8Array(64),u=new Float64Array(64),h=[qf(),qf(),qf(),qf()];kl(a,n,32),a[0]&=248,a[31]&=127,a[31]|=64;var f=r+64;for(i=0;i<r;i++)e[64+i]=t[i];for(i=0;i<32;i++)e[32+i]=a[32+i];for(kl(c,e.subarray(32),r+32),Ul(c),Sl(h,c),Il(e,h),i=32;i<64;i++)e[i]=n[i];for(kl(o,e,r+64),Ul(o),i=0;i<64;i++)u[i]=0;for(i=0;i<32;i++)u[i]=c[i];for(i=0;i<32;i++)for(s=0;s<32;s++)u[i+s]+=o[i]*a[s];Dl(e.subarray(32),u)}(r,e,e.length,t),r},Vf.sign.detached=function(e,t){for(var r=Vf.sign(e,t),n=new Uint8Array(xl),i=0;i<n.length;i++)n[i]=r[i];return n},Vf.sign.detached.verify=function(e,t,r){if(Ql(e,t,r),t.length!==xl)throw Error("bad signature size");if(32!==r.length)throw Error("bad public key size");var n,i=new Uint8Array(xl+e.length),s=new Uint8Array(xl+e.length);for(n=0;n<xl;n++)i[n]=t[n];for(n=0;n<e.length;n++)i[n+xl]=e[n];return function(e,t,r,n){var i,s=new Uint8Array(32),a=new Uint8Array(64),o=[qf(),qf(),qf(),qf()],c=[qf(),qf(),qf(),qf()];if(r<64)return-1;if(Pl(c,n))return-1;for(i=0;i<r;i++)e[i]=t[i];for(i=0;i<32;i++)e[i+32]=n[i];if(kl(a,e,r),Ul(a),Bl(o,c,a),Sl(c,t.subarray(32)),El(o,c),Il(s,o),r-=64,il(t,0,s,0)){for(i=0;i<r;i++)e[i]=0;return-1}for(i=0;i<r;i++)e[i]=t[i+64];return r}(s,i,i.length,r)>=0},Vf.sign.keyPair=function(){var e=new Uint8Array(32),t=new Uint8Array(64);return Kl(e,t),{publicKey:e,secretKey:t}},Vf.sign.keyPair.fromSecretKey=function(e){if(Ql(e),64!==e.length)throw Error("bad secret key size");for(var t=new Uint8Array(32),r=0;r<t.length;r++)t[r]=e[32+r];return{publicKey:t,secretKey:new Uint8Array(e)}},Vf.sign.keyPair.fromSeed=function(e){if(Ql(e),32!==e.length)throw Error("bad seed size");for(var t=new Uint8Array(32),r=new Uint8Array(64),n=0;n<32;n++)r[n]=e[n];return Kl(t,r,!0),{publicKey:t,secretKey:r}},Vf.setPRNG=function(e){_f=e},function(){if(jf&&jf.getRandomValues){Vf.setPRNG((function(e,t){var r,n=new Uint8Array(t);for(r=0;r<t;r+=65536)jf.getRandomValues(n.subarray(r,r+Math.min(t-r,65536)));for(r=0;r<t;r++)e[r]=n[r];!function(e){for(var t=0;t<e.length;t++)e[t]=0}(n)}))}}();var Ml=/*#__PURE__*/Object.freeze({__proto__:null,default:Vf});function Rl(e,t,r,n,i,s){const a=[16843776,0,65536,16843780,16842756,66564,4,65536,1024,16843776,16843780,1024,16778244,16842756,16777216,4,1028,16778240,16778240,66560,66560,16842752,16842752,16778244,65540,16777220,16777220,65540,0,1028,66564,16777216,65536,16843780,4,16842752,16843776,16777216,16777216,1024,16842756,65536,66560,16777220,1024,4,16778244,66564,16843780,65540,16842752,16778244,16777220,1028,66564,16843776,1028,16778240,16778240,0,65540,66560,0,16842756],o=[-2146402272,-2147450880,32768,1081376,1048576,32,-2146435040,-2147450848,-2147483616,-2146402272,-2146402304,-2147483648,-2147450880,1048576,32,-2146435040,1081344,1048608,-2147450848,0,-2147483648,32768,1081376,-2146435072,1048608,-2147483616,0,1081344,32800,-2146402304,-2146435072,32800,0,1081376,-2146435040,1048576,-2147450848,-2146435072,-2146402304,32768,-2146435072,-2147450880,32,-2146402272,1081376,32,32768,-2147483648,32800,-2146402304,1048576,-2147483616,1048608,-2147450848,-2147483616,1048608,1081344,0,-2147450880,32800,-2147483648,-2146435040,-2146402272,1081344],c=[520,134349312,0,134348808,134218240,0,131592,134218240,131080,134217736,134217736,131072,134349320,131080,134348800,520,134217728,8,134349312,512,131584,134348800,134348808,131592,134218248,131584,131072,134218248,8,134349320,512,134217728,134349312,134217728,131080,520,131072,134349312,134218240,0,512,131080,134349320,134218240,134217736,512,0,134348808,134218248,131072,134217728,134349320,8,131592,131584,134217736,134348800,134218248,520,134348800,131592,8,134348808,131584],u=[8396801,8321,8321,128,8396928,8388737,8388609,8193,0,8396800,8396800,8396929,129,0,8388736,8388609,1,8192,8388608,8396801,128,8388608,8193,8320,8388737,1,8320,8388736,8192,8396928,8396929,129,8388736,8388609,8396800,8396929,129,0,0,8396800,8320,8388736,8388737,1,8396801,8321,8321,128,8396929,129,1,8192,8388609,8193,8396928,8388737,8193,8320,8388608,8396801,128,8388608,8192,8396928],h=[256,34078976,34078720,1107296512,524288,256,1073741824,34078720,1074266368,524288,33554688,1074266368,1107296512,1107820544,524544,1073741824,33554432,1074266112,1074266112,0,1073742080,1107820800,1107820800,33554688,1107820544,1073742080,0,1107296256,34078976,33554432,1107296256,524544,524288,1107296512,256,33554432,1073741824,34078720,1107296512,1074266368,33554688,1073741824,1107820544,34078976,1074266368,256,33554432,1107820544,1107820800,524544,1107296256,1107820800,34078720,0,1074266112,1107296256,524544,33554688,1073742080,524288,0,1074266112,34078976,1073742080],f=[536870928,541065216,16384,541081616,541065216,16,541081616,4194304,536887296,4210704,4194304,536870928,4194320,536887296,536870912,16400,0,4194320,536887312,16384,4210688,536887312,16,541065232,541065232,0,4210704,541081600,16400,4210688,541081600,536870912,536887296,16,541065232,4210688,541081616,4194304,16400,536870928,4194304,536887296,536870912,16400,536870928,541081616,4210688,541065216,4210704,541081600,0,541065232,16,16384,541065216,4210704,16384,4194320,536887312,0,541081600,536870912,4194320,536887312],l=[2097152,69206018,67110914,0,2048,67110914,2099202,69208064,69208066,2097152,0,67108866,2,67108864,69206018,2050,67110912,2099202,2097154,67110912,67108866,69206016,69208064,2097154,69206016,2048,2050,69208066,2099200,2,67108864,2099200,67108864,2099200,2097152,67110914,67110914,69206018,69206018,2,2097154,67108864,67110912,2097152,69208064,2050,2099202,69208064,2050,67108866,69208066,69206016,2099200,0,2,69208066,0,2099202,69206016,2048,67108866,67110912,2048,2097154],y=[268439616,4096,262144,268701760,268435456,268439616,64,268435456,262208,268697600,268701760,266240,268701696,266304,4096,64,268697600,268435520,268439552,4160,266240,262208,268697664,268701696,4160,0,0,268697664,268435520,268439552,266304,262144,266304,262144,268701696,4096,64,268697664,4096,266304,268439552,64,268435520,268697600,268697664,268435456,262144,268439616,0,268701760,262208,268435520,268697600,268439552,268439616,0,268701760,266240,266240,4160,4160,262208,268435456,268701696];let g,p,d,A,w,m,b,k,E,v,I=0,B=t.length;const S=32===e.length?3:9;k=3===S?r?[0,32,2]:[30,-2,-2]:r?[0,32,2,62,30,-2,64,96,2]:[94,62,-2,32,64,2,30,-2,-2],r&&(t=function(e){const t=8-e.length%8;let r;if(!(t<8)){if(8===t)return e;throw Error("des: invalid padding")}r=0;const n=new Uint8Array(e.length+t);for(let t=0;t<e.length;t++)n[t]=e[t];for(let i=0;i<t;i++)n[e.length+i]=r;return n}(t),B=t.length);let K=new Uint8Array(B),C=0;for(;I<B;){for(m=t[I++]<<24|t[I++]<<16|t[I++]<<8|t[I++],b=t[I++]<<24|t[I++]<<16|t[I++]<<8|t[I++],d=252645135&(m>>>4^b),b^=d,m^=d<<4,d=65535&(m>>>16^b),b^=d,m^=d<<16,d=858993459&(b>>>2^m),m^=d,b^=d<<2,d=16711935&(b>>>8^m),m^=d,b^=d<<8,d=1431655765&(m>>>1^b),b^=d,m^=d<<1,m=m<<1|m>>>31,b=b<<1|b>>>31,p=0;p<S;p+=3){for(E=k[p+1],v=k[p+2],g=k[p];g!==E;g+=v)A=b^e[g],w=(b>>>4|b<<28)^e[g+1],d=m,m=b,b=d^(o[A>>>24&63]|u[A>>>16&63]|f[A>>>8&63]|y[63&A]|a[w>>>24&63]|c[w>>>16&63]|h[w>>>8&63]|l[63&w]);d=m,m=b,b=d}m=m>>>1|m<<31,b=b>>>1|b<<31,d=1431655765&(m>>>1^b),b^=d,m^=d<<1,d=16711935&(b>>>8^m),m^=d,b^=d<<8,d=858993459&(b>>>2^m),m^=d,b^=d<<2,d=65535&(m>>>16^b),b^=d,m^=d<<16,d=252645135&(m>>>4^b),b^=d,m^=d<<4,K[C++]=m>>>24,K[C++]=m>>>16&255,K[C++]=m>>>8&255,K[C++]=255&m,K[C++]=b>>>24,K[C++]=b>>>16&255,K[C++]=b>>>8&255,K[C++]=255&b}return r||(K=function(e){let t,r=null;if(t=0,!r){for(r=1;e[e.length-r]===t;)r++;r--}return e.subarray(0,e.length-r)}(K)),K}function Tl(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],u=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],h=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],f=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800],l=[0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744],y=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128],g=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],p=e.length>8?3:1,d=Array(32*p),A=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0];let w,m,b,k=0,E=0;for(let v=0;v<p;v++){let p=e[k++]<<24|e[k++]<<16|e[k++]<<8|e[k++],v=e[k++]<<24|e[k++]<<16|e[k++]<<8|e[k++];b=252645135&(p>>>4^v),v^=b,p^=b<<4,b=65535&(v>>>-16^p),p^=b,v^=b<<-16,b=858993459&(p>>>2^v),v^=b,p^=b<<2,b=65535&(v>>>-16^p),p^=b,v^=b<<-16,b=1431655765&(p>>>1^v),v^=b,p^=b<<1,b=16711935&(v>>>8^p),p^=b,v^=b<<8,b=1431655765&(p>>>1^v),v^=b,p^=b<<1,b=p<<8|v>>>20&240,p=v<<24|v<<8&16711680|v>>>8&65280|v>>>24&240,v=b;for(let e=0;e<16;e++)A[e]?(p=p<<2|p>>>26,v=v<<2|v>>>26):(p=p<<1|p>>>27,v=v<<1|v>>>27),p&=-15,v&=-15,w=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],m=c[v>>>28]|u[v>>>24&15]|h[v>>>20&15]|f[v>>>16&15]|l[v>>>12&15]|y[v>>>8&15]|g[v>>>4&15],b=65535&(m>>>16^w),d[E++]=w^b,d[E++]=m^b<<16}return d}function Fl(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 Rl(Tl(this.key[2]),Rl(Tl(this.key[1]),Rl(Tl(this.key[0]),e,!0),!1),!0)}}function Ll(){this.BlockSize=8,this.KeySize=16,this.setKey=function(e){if(this.masking=Array(16),this.rotate=Array(16),this.reset(),e.length!==this.KeySize)throw 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=Array(e.length);for(let s=0;s<e.length;s+=8){let a,o=e[s]<<24|e[s+1]<<16|e[s+2]<<8|e[s+3],c=e[s+4]<<24|e[s+5]<<16|e[s+6]<<8|e[s+7];a=c,c=o^r(c,this.masking[0],this.rotate[0]),o=a,a=c,c=o^n(c,this.masking[1],this.rotate[1]),o=a,a=c,c=o^i(c,this.masking[2],this.rotate[2]),o=a,a=c,c=o^r(c,this.masking[3],this.rotate[3]),o=a,a=c,c=o^n(c,this.masking[4],this.rotate[4]),o=a,a=c,c=o^i(c,this.masking[5],this.rotate[5]),o=a,a=c,c=o^r(c,this.masking[6],this.rotate[6]),o=a,a=c,c=o^n(c,this.masking[7],this.rotate[7]),o=a,a=c,c=o^i(c,this.masking[8],this.rotate[8]),o=a,a=c,c=o^r(c,this.masking[9],this.rotate[9]),o=a,a=c,c=o^n(c,this.masking[10],this.rotate[10]),o=a,a=c,c=o^i(c,this.masking[11],this.rotate[11]),o=a,a=c,c=o^r(c,this.masking[12],this.rotate[12]),o=a,a=c,c=o^n(c,this.masking[13],this.rotate[13]),o=a,a=c,c=o^i(c,this.masking[14],this.rotate[14]),o=a,a=c,c=o^r(c,this.masking[15],this.rotate[15]),o=a,t[s]=c>>>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=Array(e.length);for(let s=0;s<e.length;s+=8){let a,o=e[s]<<24|e[s+1]<<16|e[s+2]<<8|e[s+3],c=e[s+4]<<24|e[s+5]<<16|e[s+6]<<8|e[s+7];a=c,c=o^r(c,this.masking[15],this.rotate[15]),o=a,a=c,c=o^i(c,this.masking[14],this.rotate[14]),o=a,a=c,c=o^n(c,this.masking[13],this.rotate[13]),o=a,a=c,c=o^r(c,this.masking[12],this.rotate[12]),o=a,a=c,c=o^i(c,this.masking[11],this.rotate[11]),o=a,a=c,c=o^n(c,this.masking[10],this.rotate[10]),o=a,a=c,c=o^r(c,this.masking[9],this.rotate[9]),o=a,a=c,c=o^i(c,this.masking[8],this.rotate[8]),o=a,a=c,c=o^n(c,this.masking[7],this.rotate[7]),o=a,a=c,c=o^r(c,this.masking[6],this.rotate[6]),o=a,a=c,c=o^i(c,this.masking[5],this.rotate[5]),o=a,a=c,c=o^n(c,this.masking[4],this.rotate[4]),o=a,a=c,c=o^r(c,this.masking[3],this.rotate[3]),o=a,a=c,c=o^i(c,this.masking[2],this.rotate[2]),o=a,a=c,c=o^n(c,this.masking[1],this.rotate[1]),o=a,a=c,c=o^r(c,this.masking[0],this.rotate[0]),o=a,t[s]=c>>>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=[,,,,];e[0]=[,,,,],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]=[,,,,],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]=[,,,,],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]=[,,,,],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=[,,,,];function r(e,t,r){const n=t+e,i=n<<r|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<<r|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<<r|n>>>32-r;return(s[0][i>>>24]+s[1][i>>>16&255]^s[2][i>>>8&255])-s[3][255&i]}t[0]=[,,,,],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]=[,,,,],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]=[,,,,],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]=[,,,,],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=[,,,,,,,,],i=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,u=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[u]=c,u++}}for(let e=0;e<16;e++)this.masking[e]=i[e],this.rotate[e]=31&i[16+e]};const s=[,,,,,,,,];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 Nl(e){this.cast5=new Ll,this.cast5.setKey(e),this.encrypt=function(e){return this.cast5.encrypt(e)}}Fl.keySize=Fl.prototype.keySize=24,Fl.blockSize=Fl.prototype.blockSize=8,Nl.blockSize=Nl.prototype.blockSize=8,Nl.keySize=Nl.prototype.keySize=16;const Ol=4294967295;function Hl(e,t){return(e<<t|e>>>32-t)&Ol}function zl(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24}function Gl(e,t,r){e.splice(t,4,255&r,r>>>8&255,r>>>16&255,r>>>24&255)}function jl(e,t){return e>>>8*t&255}function Vl(e){this.tf=function(){let e=null,t=null,r=-1,n=[],i=[[],[],[],[]];function s(e){return i[0][jl(e,0)]^i[1][jl(e,1)]^i[2][jl(e,2)]^i[3][jl(e,3)]}function a(e){return i[0][jl(e,3)]^i[1][jl(e,0)]^i[2][jl(e,1)]^i[3][jl(e,2)]}function o(e,t){let r=s(t[0]),i=a(t[1]);t[2]=Hl(t[2]^r+i+n[4*e+8]&Ol,31),t[3]=Hl(t[3],1)^r+2*i+n[4*e+9]&Ol,r=s(t[2]),i=a(t[3]),t[0]=Hl(t[0]^r+i+n[4*e+10]&Ol,31),t[1]=Hl(t[1],1)^r+2*i+n[4*e+11]&Ol}function c(e,t){let r=s(t[0]),i=a(t[1]);t[2]=Hl(t[2],1)^r+i+n[4*e+10]&Ol,t[3]=Hl(t[3]^r+2*i+n[4*e+11]&Ol,31),r=s(t[2]),i=a(t[3]),t[0]=Hl(t[0],1)^r+i+n[4*e+8]&Ol,t[1]=Hl(t[1]^r+2*i+n[4*e+9]&Ol,31)}return{name:"twofish",blocksize:16,open:function(t){let r,s,a,o,c;e=t;const u=[],h=[],f=[];let l;const y=[];let g,p,d;const A=[[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]],w=[[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]],m=[[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]],k=[0,8,1,9,2,10,3,11,4,12,5,13,6,14,7,15],E=[0,9,2,11,4,13,6,15,8,1,10,3,12,5,14,7],v=[[],[]],I=[[],[],[],[]];function B(e){return e^e>>2^[0,90,180,238][3&e]}function S(e){return e^e>>1^e>>2^[0,238,180,90][3&e]}function K(e,t){let r,n,i;for(r=0;r<8;r++)n=t>>>24,t=t<<8&Ol|e>>>24,e=e<<8&Ol,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 C(e,t){const r=t>>4,n=15&t,i=A[e][r^n],s=w[e][k[n]^E[r]];return b[e][k[s]^E[i]]<<4|m[e][i^s]}function D(e,t){let r=jl(e,0),n=jl(e,1),i=jl(e,2),s=jl(e,3);switch(l){case 4:r=v[1][r]^jl(t[3],0),n=v[0][n]^jl(t[3],1),i=v[0][i]^jl(t[3],2),s=v[1][s]^jl(t[3],3);case 3:r=v[1][r]^jl(t[2],0),n=v[1][n]^jl(t[2],1),i=v[0][i]^jl(t[2],2),s=v[0][s]^jl(t[2],3);case 2:r=v[0][v[0][r]^jl(t[1],0)]^jl(t[0],0),n=v[0][v[1][n]^jl(t[1],1)]^jl(t[0],1),i=v[1][v[0][i]^jl(t[1],2)]^jl(t[0],2),s=v[1][v[1][s]^jl(t[1],3)]^jl(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<e.length;r+=4)f[r>>2]=zl(e,r);for(r=0;r<256;r++)v[0][r]=C(0,r),v[1][r]=C(1,r);for(r=0;r<256;r++)g=v[1][r],p=B(g),d=S(g),I[0][r]=g+(p<<8)+(d<<16)+(d<<24),I[2][r]=p+(d<<8)+(g<<16)+(d<<24),g=v[0][r],p=B(g),d=S(g),I[1][r]=d+(d<<8)+(p<<16)+(g<<24),I[3][r]=p+(g<<8)+(d<<16)+(p<<24);for(l=f.length/2,r=0;r<l;r++)s=f[r+r],u[r]=s,a=f[r+r+1],h[r]=a,y[l-r-1]=K(s,a);for(r=0;r<40;r+=2)s=16843009*r,a=s+16843009,s=D(s,u),a=Hl(D(a,h),8),n[r]=s+a&Ol,n[r+1]=Hl(s+2*a,9);for(r=0;r<256;r++)switch(s=a=o=c=r,l){case 4:s=v[1][s]^jl(y[3],0),a=v[0][a]^jl(y[3],1),o=v[0][o]^jl(y[3],2),c=v[1][c]^jl(y[3],3);case 3:s=v[1][s]^jl(y[2],0),a=v[1][a]^jl(y[2],1),o=v[0][o]^jl(y[2],2),c=v[0][c]^jl(y[2],3);case 2:i[0][r]=I[0][v[0][v[0][s]^jl(y[1],0)]^jl(y[0],0)],i[1][r]=I[1][v[0][v[1][a]^jl(y[1],1)]^jl(y[0],1)],i[2][r]=I[2][v[1][v[0][o]^jl(y[1],2)]^jl(y[0],2)],i[3][r]=I[3][v[1][v[1][c]^jl(y[1],3)]^jl(y[0],3)]}},close:function(){n=[],i=[[],[],[],[]]},encrypt:function(e,i){t=e,r=i;const s=[zl(t,r)^n[0],zl(t,r+4)^n[1],zl(t,r+8)^n[2],zl(t,r+12)^n[3]];for(let e=0;e<8;e++)o(e,s);return Gl(t,r,s[2]^n[4]),Gl(t,r+4,s[3]^n[5]),Gl(t,r+8,s[0]^n[6]),Gl(t,r+12,s[1]^n[7]),r+=16,t},decrypt:function(e,i){t=e,r=i;const s=[zl(t,r)^n[4],zl(t,r+4)^n[5],zl(t,r+8)^n[6],zl(t,r+12)^n[7]];for(let e=7;e>=0;e--)c(e,s);Gl(t,r,s[2]^n[0]),Gl(t,r+4,s[3]^n[1]),Gl(t,r+8,s[0]^n[2]),Gl(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 ql(){}function _l(e){this.bf=new ql,this.bf.init(e),this.encrypt=function(e){return this.bf.encryptBlock(e)}}Vl.keySize=Vl.prototype.keySize=32,Vl.blockSize=Vl.prototype.blockSize=16,ql.prototype.BLOCKSIZE=8,ql.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]],ql.prototype.PARRAY=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],ql.prototype.NN=16,ql.prototype._clean=function(e){if(e<0){e=(2147483647&e)+2147483648}return e},ql.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},ql.prototype._encryptBlock=function(e){let t,r=e[0],n=e[1];for(t=0;t<this.NN;++t){r^=this.parray[t],n=this._F(r)^n;const e=r;r=n,n=e}r^=this.parray[this.NN+0],n^=this.parray[this.NN+1],e[0]=this._clean(n),e[1]=this._clean(r)},ql.prototype.encryptBlock=function(e){let t;const r=[0,0],n=this.BLOCKSIZE/2;for(t=0;t<this.BLOCKSIZE/2;++t)r[0]=r[0]<<8|255&e[t+0],r[1]=r[1]<<8|255&e[t+n];this._encryptBlock(r);const i=[];for(t=0;t<this.BLOCKSIZE/2;++t)i[t+0]=r[0]>>>24-8*t&255,i[t+n]=r[1]>>>24-8*t&255;return i},ql.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)},ql.prototype.init=function(e){let t,r=0;for(this.parray=[],t=0;t<this.NN+2;++t){let n=0;for(let t=0;t<4;++t)n=n<<8|255&e[r],++r>=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<this.NN+2;t+=2)this._encryptBlock(n),this.parray[t+0]=n[0],this.parray[t+1]=n[1];for(t=0;t<4;++t)for(r=0;r<256;r+=2)this._encryptBlock(n),this.sboxes[t][r+0]=n[0],this.sboxes[t][r+1]=n[1]},_l.keySize=_l.prototype.keySize=16,_l.blockSize=_l.prototype.blockSize=8;const Yl=new Map(Object.entries({tripledes:Fl,cast5:Nl,twofish:Vl,blowfish:_l}));var Zl=/*#__PURE__*/Object.freeze({__proto__:null,legacyCiphers:Yl});function Jl(e,t,r,n){e[t]+=r[n],e[t+1]+=r[n+1]+(e[t]<r[n])}function Wl(e,t){e[0]+=t,e[1]+=e[0]<t}function Xl(e,t,r,n,i,s,a,o){Jl(e,r,e,n),Jl(e,r,t,a);let c=e[s]^e[r],u=e[s+1]^e[r+1];e[s]=u,e[s+1]=c,Jl(e,i,e,s),c=e[n]^e[i],u=e[n+1]^e[i+1],e[n]=c>>>24^u<<8,e[n+1]=u>>>24^c<<8,Jl(e,r,e,n),Jl(e,r,t,o),c=e[s]^e[r],u=e[s+1]^e[r+1],e[s]=c>>>16^u<<16,e[s+1]=u>>>16^c<<16,Jl(e,i,e,s),c=e[n]^e[i],u=e[n+1]^e[i+1],e[n]=u>>>31^c<<1,e[n+1]=c>>>31^u<<1}const $l=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),ey=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 ty(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]=$l[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;Xl(r,n,0,8,16,24,ey[t+0],ey[t+1]),Xl(r,n,2,10,18,26,ey[t+2],ey[t+3]),Xl(r,n,4,12,20,28,ey[t+4],ey[t+5]),Xl(r,n,6,14,22,30,ey[t+6],ey[t+7]),Xl(r,n,0,10,20,30,ey[t+8],ey[t+9]),Xl(r,n,2,12,22,24,ey[t+10],ey[t+11]),Xl(r,n,4,14,16,26,ey[t+12],ey[t+13]),Xl(r,n,6,8,18,28,ey[t+14],ey[t+15])}for(let t=0;t<16;t++)e.h[t]^=r[t]^r[t+16]}class ry{constructor(e,t,r,n){const i=new Uint8Array(64);this.S={b:new Uint8Array(sy),h:new Uint32Array(iy/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]=$l[e]^s[e];if(t){const e=new Uint8Array(sy);e.set(t),this.update(e)}}update(e){if(!(e instanceof Uint8Array))throw Error("Input must be Uint8Array or Buffer");let t=0;for(;t<e.length;){this.S.c===sy&&(Wl(this.S.t0,this.S.c),ty(this.S,!1),this.S.c=0);let r=sy-this.S.c;this.S.b.set(e.subarray(t,t+r),this.S.c);const n=Math.min(r,e.length-t);this.S.c+=n,t+=n}return this}digest(e){Wl(this.S.t0,this.S.c),this.S.b.fill(0,this.S.c),this.S.c=sy,ty(this.S,!0);const t=e||new Uint8Array(this.S.outlen);for(let e=0;e<this.S.outlen;e++)t[e]=this.S.h[e>>2]>>8*(3&e);return this.S.h=null,t.buffer}}function ny(e,t,r,n){if(e>iy)throw Error(`outlen must be at most ${iy} (given: ${e})`);return new ry(e,t,r,n)}const iy=64,sy=128,ay=1024,oy=205===new Uint8Array(new Uint16Array([43981]).buffer)[0];function cy(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 uy(e,t,r){if(t>Number.MAX_SAFE_INTEGER)throw Error("LE64: large numbers unsupported");let n=t;for(let t=r;t<r+7;t++)e[t]=n,n=(n-e[t])/256;return e}function hy(e,t,r){const n=new Uint8Array(64),i=new Uint8Array(4+t.length);if(cy(i,e,0),i.set(t,4),e<=64)return ny(e).update(i).digest(r),r;const s=Math.ceil(e/32)-2;for(let e=0;e<s;e++)ny(64).update(0===e?i:n).digest(n),r.set(n.subarray(0,32),32*e);const a=new Uint8Array(ny(e-32*s).update(n).digest());return r.set(a,32*s),r}function fy(e,t,r,n){return e.fn.XOR(t.byteOffset,r.byteOffset,n.byteOffset),t}function ly(e,t,r,n){return e.fn.G(t.byteOffset,r.byteOffset,n.byteOffset,e.refs.gZ.byteOffset),n}function yy(e,t,r,n){return e.fn.G2(t.byteOffset,r.byteOffset,n.byteOffset,e.refs.gZ.byteOffset),n}function*gy(e,t,r,n,i,s,a,o){e.refs.prngTmp.fill(0);const c=e.refs.prngTmp.subarray(0,48);uy(c,t,0),uy(c,r,8),uy(c,n,16),uy(c,i,24),uy(c,s,32),uy(c,2,40);for(let t=1;t<=a;t++){uy(e.refs.prngTmp,t,c.length);const r=yy(e,e.refs.ZERO1024,e.refs.prngTmp,e.refs.prngR);for(let e=1===t?8*o:0;e<r.length;e+=8)yield r.subarray(e,e+8)}return[]}function py(e,{memory:t,instance:r}){if(!oy)throw 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:u}){const h=(e,t,r,n)=>{if(t<r||t>n)throw Error(`${e} size should be between ${r} and ${n} bytes`)};if(2!==e||19!==t)throw Error("Unsupported type or version");return h("password",n,8,4294967295),h("salt",i,8,4294967295),h("tag",r,4,4294967295),h("memory",c,8*o,4294967295),s&&h("associated data",s,0,4294967295),a&&h("secret",a,0,32),{type:e,version:t,tagLength:r,password:n,salt:i,ad:s,secret:a,lanes:o,memorySize:c,passes:u}}({type:2,version:19,...e}),{G:i,G2:s,xor:a,getLZ:o}=r.exports,c={},u={};u.G=i,u.G2=s,u.XOR=a;const h=4*n.lanes*Math.floor(n.memorySize/(4*n.lanes)),f=h*ay+10240;if(t.buffer.byteLength<f){const e=Math.ceil((f-t.buffer.byteLength)/65536);t.grow(e)}let l=0;c.gZ=new Uint8Array(t.buffer,l,ay),l+=c.gZ.length,c.prngR=new Uint8Array(t.buffer,l,ay),l+=c.prngR.length,c.prngTmp=new Uint8Array(t.buffer,l,ay),l+=c.prngTmp.length,c.ZERO1024=new Uint8Array(t.buffer,l,1024),l+=c.ZERO1024.length;const y=new Uint32Array(t.buffer,l,2);l+=y.length*Uint32Array.BYTES_PER_ELEMENT;const g={fn:u,refs:c},p=new Uint8Array(t.buffer,l,ay);l+=p.length;const d=new Uint8Array(t.buffer,l,n.memorySize*ay),A=new Uint8Array(t.buffer,0,l),w=function(e){const t=ny(64),r=new Uint8Array(4),n=new Uint8Array(24);cy(n,e.lanes,0),cy(n,e.tagLength,4),cy(n,e.memorySize,8),cy(n,e.passes,12),cy(n,e.version,16),cy(n,e.type,20);const i=[n];e.password?(i.push(cy(new Uint8Array(4),e.password.length,0)),i.push(e.password)):i.push(r);e.salt?(i.push(cy(new Uint8Array(4),e.salt.length,0)),i.push(e.salt)):i.push(r);e.secret?(i.push(cy(new Uint8Array(4),e.secret.length,0)),i.push(e.secret)):i.push(r);e.ad?(i.push(cy(new Uint8Array(4),e.ad.length,0)),i.push(e.ad)):i.push(r);t.update(function(e){if(1===e.length)return e[0];let t=0;for(let r=0;r<e.length;r++){if(!(e[r]instanceof Uint8Array))throw Error("concatArrays: Data must be in the form of a Uint8Array");t+=e[r].length}const r=new Uint8Array(t);let n=0;return e.forEach((e=>{r.set(e,n),n+=e.length})),r}(i));const s=t.digest();return new Uint8Array(s)}(n),m=h/n.lanes,b=Array(n.lanes).fill(null).map((()=>Array(m))),k=(e,t)=>(b[e][t]=d.subarray(e*m*1024+1024*t,e*m*1024+1024*t+ay),b[e][t]);for(let e=0;e<n.lanes;e++){const t=new Uint8Array(w.length+8);t.set(w),cy(t,0,w.length),cy(t,e,w.length+4),hy(ay,t,k(e,0)),cy(t,1,w.length),hy(ay,t,k(e,1))}const E=m/4;for(let e=0;e<n.passes;e++)for(let t=0;t<4;t++){const r=0===e&&t<=1;for(let i=0;i<n.lanes;i++){let s=0===t&&0===e?2:0;const a=r?gy(g,e,i,t,h,n.passes,E,s):null;for(;s<E;s++){const c=t*E+s,u=c>0?b[i][c-1]:b[i][m-1],h=r?a.next().value:u;o(y.byteOffset,h.byteOffset,i,n.lanes,e,t,s,4,E);const f=y[0],l=y[1];0===e&&k(i,c),ly(g,u,b[f][l],e>0?p:b[i][c]),e>0&&fy(g,b[i][c],p,b[i][c])}}}const v=b[0][m-1];for(let e=1;e<n.lanes;e++)fy(g,v,v,b[e][m-1]);const I=hy(n.tagLength,v,new Uint8Array(n.tagLength));return A.fill(0),t.grow(0),I}let dy;async function Ay(e,t){const r=new WebAssembly.Memory({initial:1040,maximum:65536}),n=await async function(e,t,r){const n={env:{memory:e}};if(void 0===dy)try{const e=await t(n);return dy=!0,e}catch(e){dy=!1}return(dy?t:r)(n)}(r,e,t);return e=>py(e,{instance:n.instance,memory:r})}function wy(e,r,n,i){var s=null,a=t.atob(n),o=a.length;s=new Uint8Array(new ArrayBuffer(o));for(var c=0;c<o;c++)s[c]=a.charCodeAt(c);return function(e,t,r){var n=r?WebAssembly.instantiateStreaming:WebAssembly.instantiate,i=r?WebAssembly.compileStreaming:WebAssembly.compile;return t?n(e,t):i(e)}(s,i,!1)}var my,by,ky,Ey,vy,Iy,By=/*#__PURE__*/Object.freeze({__proto__:null,default:async()=>Ay((e=>wy(0,0,"AGFzbQEAAAABKwdgBH9/f38AYAABf2AAAGADf39/AGAJf39/f39/f39/AX9gAX8AYAF/AX8CEwEDZW52Bm1lbW9yeQIBkAiAgAQDCgkCAwAABAEFBgEEBQFwAQICBgkBfwFBkIjAAgsHfQoDeG9yAAEBRwACAkcyAAMFZ2V0TFoABBlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALX2luaXRpYWxpemUAABBfX2Vycm5vX2xvY2F0aW9uAAgJc3RhY2tTYXZlAAUMc3RhY2tSZXN0b3JlAAYKc3RhY2tBbGxvYwAHCQcBAEEBCwEACs0gCQMAAQtYAQJ/A0AgACAEQQR0IgNqIAIgA2r9AAQAIAEgA2r9AAQA/VH9CwQAIAAgA0EQciIDaiACIANq/QAEACABIANq/QAEAP1R/QsEACAEQQJqIgRBwABHDQALC7ceAgt7A38DQCADIBFBBHQiD2ogASAPav0ABAAgACAPav0ABAD9USIF/QsEACACIA9qIAX9CwQAIAMgD0EQciIPaiABIA9q/QAEACAAIA9q/QAEAP1RIgX9CwQAIAIgD2ogBf0LBAAgEUECaiIRQcAARw0ACwNAIAMgEEEHdGoiAEEQaiAA/QAEcCAA/QAEMCIFIAD9AAQQIgT9zgEgBSAF/Q0AAQIDCAkKCwABAgMICQoLIAQgBP0NAAECAwgJCgsAAQIDCAkKC/3eAUEB/csB/c4BIgT9USIJQSD9ywEgCUEg/c0B/VAiCSAA/QAEUCIG/c4BIAkgCf0NAAECAwgJCgsAAQIDCAkKCyAGIAb9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIGIAX9USIFQSj9ywEgBUEY/c0B/VAiCCAE/c4BIAggCP0NAAECAwgJCgsAAQIDCAkKCyAEIAT9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIKIAogCf1RIgVBMP3LASAFQRD9zQH9UCIFIAb9zgEgBSAF/Q0AAQIDCAkKCwABAgMICQoLIAYgBv0NAAECAwgJCgsAAQIDCAkKC/3eAUEB/csB/c4BIgkgCP1RIgRBAf3LASAEQT/9zQH9UCIMIAD9AARgIAD9AAQgIgQgAP0ABAAiBv3OASAEIAT9DQABAgMICQoLAAECAwgJCgsgBiAG/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiBv1RIghBIP3LASAIQSD9zQH9UCIIIABBQGsiAf0ABAAiB/3OASAIIAj9DQABAgMICQoLAAECAwgJCgsgByAH/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiByAE/VEiBEEo/csBIARBGP3NAf1QIgsgBv3OASALIAv9DQABAgMICQoLAAECAwgJCgsgBiAG/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiBiAI/VEiBEEw/csBIARBEP3NAf1QIgQgB/3OASAEIAT9DQABAgMICQoLAAECAwgJCgsgByAH/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiCCAL/VEiB0EB/csBIAdBP/3NAf1QIg0gDf0NAAECAwQFBgcQERITFBUWF/0NCAkKCwwNDg8YGRobHB0eHyIH/c4BIAcgB/0NAAECAwgJCgsAAQIDCAkKCyAKIAr9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIKIAQgBSAF/Q0AAQIDBAUGBxAREhMUFRYX/Q0ICQoLDA0ODxgZGhscHR4f/VEiC0Eg/csBIAtBIP3NAf1QIgsgCP3OASALIAv9DQABAgMICQoLAAECAwgJCgsgCCAI/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiCCAH/VEiB0Eo/csBIAdBGP3NAf1QIgcgCv3OASAHIAf9DQABAgMICQoLAAECAwgJCgsgCiAK/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiDv0LBAAgACAGIA0gDCAM/Q0AAQIDBAUGBxAREhMUFRYX/Q0ICQoLDA0ODxgZGhscHR4fIgr9zgEgCiAK/Q0AAQIDCAkKCwABAgMICQoLIAYgBv0NAAECAwgJCgsAAQIDCAkKC/3eAUEB/csB/c4BIgYgBSAEIAT9DQABAgMEBQYHEBESExQVFhf9DQgJCgsMDQ4PGBkaGxwdHh/9USIFQSD9ywEgBUEg/c0B/VAiBSAJ/c4BIAUgBf0NAAECAwgJCgsAAQIDCAkKCyAJIAn9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIJIAr9USIEQSj9ywEgBEEY/c0B/VAiCiAG/c4BIAogCv0NAAECAwgJCgsAAQIDCAkKCyAGIAb9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIE/QsEACAAIAQgBf1RIgVBMP3LASAFQRD9zQH9UCIFIA4gC/1RIgRBMP3LASAEQRD9zQH9UCIEIAT9DQABAgMEBQYHEBESExQVFhf9DQgJCgsMDQ4PGBkaGxwdHh/9CwRgIAAgBCAFIAX9DQABAgMEBQYHEBESExQVFhf9DQgJCgsMDQ4PGBkaGxwdHh/9CwRwIAEgBCAI/c4BIAQgBP0NAAECAwgJCgsAAQIDCAkKCyAIIAj9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIE/QsEACAAIAUgCf3OASAFIAX9DQABAgMICQoLAAECAwgJCgsgCSAJ/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiCf0LBFAgACAEIAf9USIFQQH9ywEgBUE//c0B/VAiBSAJIAr9USIEQQH9ywEgBEE//c0B/VAiBCAE/Q0AAQIDBAUGBxAREhMUFRYX/Q0ICQoLDA0ODxgZGhscHR4f/QsEICAAIAQgBSAF/Q0AAQIDBAUGBxAREhMUFRYX/Q0ICQoLDA0ODxgZGhscHR4f/QsEMCAQQQFqIhBBCEcNAAtBACEQA0AgAyAQQQR0aiIAQYABaiAA/QAEgAcgAP0ABIADIgUgAP0ABIABIgT9zgEgBSAF/Q0AAQIDCAkKCwABAgMICQoLIAQgBP0NAAECAwgJCgsAAQIDCAkKC/3eAUEB/csB/c4BIgT9USIJQSD9ywEgCUEg/c0B/VAiCSAA/QAEgAUiBv3OASAJIAn9DQABAgMICQoLAAECAwgJCgsgBiAG/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiBiAF/VEiBUEo/csBIAVBGP3NAf1QIgggBP3OASAIIAj9DQABAgMICQoLAAECAwgJCgsgBCAE/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiCiAKIAn9USIFQTD9ywEgBUEQ/c0B/VAiBSAG/c4BIAUgBf0NAAECAwgJCgsAAQIDCAkKCyAGIAb9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIJIAj9USIEQQH9ywEgBEE//c0B/VAiDCAA/QAEgAYgAP0ABIACIgQgAP0ABAAiBv3OASAEIAT9DQABAgMICQoLAAECAwgJCgsgBiAG/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiBv1RIghBIP3LASAIQSD9zQH9UCIIIAD9AASABCIH/c4BIAggCP0NAAECAwgJCgsAAQIDCAkKCyAHIAf9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIHIAT9USIEQSj9ywEgBEEY/c0B/VAiCyAG/c4BIAsgC/0NAAECAwgJCgsAAQIDCAkKCyAGIAb9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIGIAj9USIEQTD9ywEgBEEQ/c0B/VAiBCAH/c4BIAQgBP0NAAECAwgJCgsAAQIDCAkKCyAHIAf9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIIIAv9USIHQQH9ywEgB0E//c0B/VAiDSAN/Q0AAQIDBAUGBxAREhMUFRYX/Q0ICQoLDA0ODxgZGhscHR4fIgf9zgEgByAH/Q0AAQIDCAkKCwABAgMICQoLIAogCv0NAAECAwgJCgsAAQIDCAkKC/3eAUEB/csB/c4BIgogBCAFIAX9DQABAgMEBQYHEBESExQVFhf9DQgJCgsMDQ4PGBkaGxwdHh/9USILQSD9ywEgC0Eg/c0B/VAiCyAI/c4BIAsgC/0NAAECAwgJCgsAAQIDCAkKCyAIIAj9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIIIAf9USIHQSj9ywEgB0EY/c0B/VAiByAK/c4BIAcgB/0NAAECAwgJCgsAAQIDCAkKCyAKIAr9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIO/QsEACAAIAYgDSAMIAz9DQABAgMEBQYHEBESExQVFhf9DQgJCgsMDQ4PGBkaGxwdHh8iCv3OASAKIAr9DQABAgMICQoLAAECAwgJCgsgBiAG/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiBiAFIAQgBP0NAAECAwQFBgcQERITFBUWF/0NCAkKCwwNDg8YGRobHB0eH/1RIgVBIP3LASAFQSD9zQH9UCIFIAn9zgEgBSAF/Q0AAQIDCAkKCwABAgMICQoLIAkgCf0NAAECAwgJCgsAAQIDCAkKC/3eAUEB/csB/c4BIgkgCv1RIgRBKP3LASAEQRj9zQH9UCIKIAb9zgEgCiAK/Q0AAQIDCAkKCwABAgMICQoLIAYgBv0NAAECAwgJCgsAAQIDCAkKC/3eAUEB/csB/c4BIgT9CwQAIAAgBCAF/VEiBUEw/csBIAVBEP3NAf1QIgUgDiAL/VEiBEEw/csBIARBEP3NAf1QIgQgBP0NAAECAwQFBgcQERITFBUWF/0NCAkKCwwNDg8YGRobHB0eH/0LBIAGIAAgBCAFIAX9DQABAgMEBQYHEBESExQVFhf9DQgJCgsMDQ4PGBkaGxwdHh/9CwSAByAAIAQgCP3OASAEIAT9DQABAgMICQoLAAECAwgJCgsgCCAI/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiBP0LBIAEIAAgBSAJ/c4BIAUgBf0NAAECAwgJCgsAAQIDCAkKCyAJIAn9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIJ/QsEgAUgACAEIAf9USIFQQH9ywEgBUE//c0B/VAiBSAJIAr9USIEQQH9ywEgBEE//c0B/VAiBCAE/Q0AAQIDBAUGBxAREhMUFRYX/Q0ICQoLDA0ODxgZGhscHR4f/QsEgAIgACAEIAUgBf0NAAECAwQFBgcQERITFBUWF/0NCAkKCwwNDg8YGRobHB0eH/0LBIADIBBBAWoiEEEIRw0AC0EAIRADQCACIBBBBHQiAGoiASAAIANq/QAEACAB/QAEAP1R/QsEACACIABBEHIiAWoiDyABIANq/QAEACAP/QAEAP1R/QsEACACIABBIHIiAWoiDyABIANq/QAEACAP/QAEAP1R/QsEACACIABBMHIiAGoiASAAIANq/QAEACAB/QAEAP1R/QsEACAQQQRqIhBBwABHDQALCxYAIAAgASACIAMQAiAAIAIgAiADEAILewIBfwF+IAIhCSABNQIAIQogBCAFcgRAIAEoAgQgA3AhCQsgACAJNgIAIAAgB0EBayAFIAQbIAhsIAZBAWtBAEF/IAYbIAIgCUYbaiIBIAVBAWogCGxBACAEG2ogAa0gCiAKfkIgiH5CIIinQX9zaiAHIAhscDYCBCAACwQAIwALBgAgACQACxAAIwAgAGtBcHEiACQAIAALBQBBgAgL",e)),(e=>wy(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 Sy(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Ky=function(){if(Iy)return vy;Iy=1;const e=function(){if(by)return my;function e(e){this.name="Bzip2Error",this.message=e,this.stack=Error().stack}by=1,e.prototype=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 u=0|e(32);e(1)&&t("unsupported obsolete version");var h=e(24);h>i&&t("Initial position larger than buffer size");var f=e(16),l=0;for(c=0;c<16;c++)if(f&1<<15-c){var y=e(16);for(d=0;d<16;d++)y&1<<15-d&&(this.symToByte[l++]=16*c+d)}var g=e(3);(g<2||g>6)&&t("Invalid bzip data");var p=e(15);for(0==p&&t("Invalid bzip data"),c=0;c<g;c++)this.mtfSymbol[c]=c;for(c=0;c<p;c++){for(var d=0;e(1);d++)d>=g&&t("Invalid bzip data");var A=this.mtfSymbol[d];for(y=d-1;y>=0;y--)this.mtfSymbol[y+1]=this.mtfSymbol[y];this.mtfSymbol[0]=A,this.selectors[c]=A}var w,m,b,k,E=l+2,v=[],I=new Uint8Array(258),B=new Uint16Array(21);for(d=0;d<g;d++){for(f=e(5),c=0;c<E;c++){for(;(f<1||f>20)&&t("Invalid bzip data"),e(1);)e(1)?f--:f++;I[c]=f}var S,K;for(S=K=I[0],c=1;c<E;c++)I[c]>K?K=I[c]:I[c]<S&&(S=I[c]);(w=v[d]={}).permute=new Int32Array(258),w.limit=new Int32Array(21),w.base=new Int32Array(21),w.minLen=S,w.maxLen=K;var C=w.base,D=w.limit,U=0;for(c=S;c<=K;c++)for(f=0;f<E;f++)I[f]==c&&(w.permute[U++]=f);for(c=S;c<=K;c++)B[c]=D[c]=0;for(c=0;c<E;c++)B[I[c]]++;for(U=f=0,c=S;c<K;c++)U+=B[c],D[c]=U-1,U<<=1,C[c+1]=U-(f+=B[c]);D[K]=U+B[K]-1,C[S]=0}for(c=0;c<256;c++)this.mtfSymbol[c]=c,this.byteCount[c]=0;for(m=b=E=k=0;;){for(E--||(E=49,k>=p&&t("Invalid bzip data"),C=(w=v[this.selectors[k++]]).base,D=w.limit),d=e(c=w.minLen);c>w.maxLen&&t("Invalid bzip data"),!(d<=D[c]);)c++,d=d<<1|e(1);((d-=C[c])<0||d>=258)&&t("Invalid bzip data");var P=w.permute[d];if(0!=P&&1!=P){if(m)for(m=0,b+f>i&&t("Invalid bzip data"),A=this.symToByte[this.mtfSymbol[0]],this.byteCount[A]+=f;f--;)n[b++]=A;if(P>l)break;for(b>=i&&t("Invalid bzip data"),c=P-1,A=this.mtfSymbol[c],y=c-1;y>=0;y--)this.mtfSymbol[y+1]=this.mtfSymbol[y];this.mtfSymbol[0]=A,A=this.symToByte[A],this.byteCount[A]++,n[b++]=A}else m||(m=1,f=0),f+=0==P?m:2*m,m<<=1}for((h<0||h>=b)&&t("Invalid bzip data"),d=0,c=0;c<256;c++)y=d+this.byteCount[c],this.byteCount[c]=d,d=y;for(c=0;c<b;c++)A=255&n[c],n[this.byteCount[A]]|=c<<8,this.byteCount[A]++;var x,Q,M,R=0,T=0,F=0;for(b&&(T=255&(R=n[h]),R>>=8,F=-1);b;){for(b--,Q=T,T=255&(R=n[R]),R>>=8,3==F++?(x=T,M=Q,T=-1):(x=1,M=T);x--;)a=4294967295&(a<<8^this.crcTable[255&(a>>24^M)]),r(M);T!=Q&&(F=0)}return(0|(a=~a>>>0))!=(0|u)&&t("Error in bzip2: crc32 do not match"),4294967295&(a^(s<<1|s>>>31))},my=r}(),t=function(){if(Ey)return ky;Ey=1;var e=[0,1,3,7,15,31,63,127,255];return ky=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 vy=function(r,n=1/0){const i=[];let s=0,a=0,o=!1,c=!1,u=null,h=null,f=0;let l,y=0;function g(t){if(!o)try{return function(t){if(a){const r=1e5*a,i=new Int32Array(r);let s=new Uint8Array(32768),o=0;const c=function(e){if(++f>n)throw Error("Maximum decompressed size exceeded");if(o===s.length){const e=Math.min(2*s.length,o+(n-f)+1),t=new Uint8Array(e);t.set(s),s=t}s[o++]=e};return h=e.decompress(u,c,i,r,h),null===h?(a=0,!1):(t(s.subarray(0,o)),!0)}return a=e.header(u),h=0,!1}((function(e){t.enqueue(e),null!==e&&(y+=e.length)}))}catch(e){return t.error(e),o=!0,!0}}return new ReadableStream({start(){l=r.getReader()},async pull(e){try{for(;;){for(;!(c||u&&s-u.bytesRead+1>=25e3+1e5*(a||4));){const{value:e,done:r}=await l.read();r?c=!0:(i.push(e),s+=e.length,null===u&&(u=t((function(){return i.shift()}))))}for(;c?u&&s>u.bytesRead:u&&s-u.bytesRead+1>=25e3+1e5*(a||4);)if(g(e))return;if(c&&!o&&(!u||s<=u.bytesRead))return void(null===h?e.close():e.error(Error("input stream ended prematurely")))}}catch(t){e.error(t)}},async cancel(e){await l.abort(e)}},{highWaterMark:0})}}(),Cy=/*#__PURE__*/r({__proto__:null,default:/*@__PURE__*/Sy(Ky)},[Ky]);return e.AEADEncryptedDataPacket=aa,e.CleartextMessage=eo,e.CompressedDataPacket=Zs,e.GrammarError=Vs,e.LiteralDataPacket=Ms,e.MarkerPacket=class{static get tag(){return T.packet.marker}read(e){return 80===e[0]&&71===e[1]&&80===e[2]}write(){return new Uint8Array([80,71,80])}},e.Message=Ja,e.OnePassSignaturePacket=zs,e.PacketList=js,e.PaddingPacket=class{static get tag(){return T.packet.padding}constructor(){this.padding=null}read(e){}write(){return this.padding}async createPadding(e){this.padding=de(e)}},e.PrivateKey=Ga,e.PublicKey=za,e.PublicKeyEncryptedSessionKeyPacket=oa,e.PublicKeyPacket=ha,e.PublicSubkeyPacket=ya,e.SecretKeyPacket=pa,e.SecretSubkeyPacket=wa,e.Signature=ba,e.SignaturePacket=Ns,e.Subkey=Fa,e.SymEncryptedIntegrityProtectedDataPacket=na,e.SymEncryptedSessionKeyPacket=ua,e.SymmetricallyEncryptedDataPacket=la,e.TrustPacket=class{static get tag(){return T.packet.trust}read(){throw new ct("Trust packets are not supported")}write(){throw new ct("Trust packets are not supported")}},e.UnparseablePacket=ft,e.UserAttributePacket=ga,e.UserIDPacket=Aa,e.armor=te,e.config=F,e.createCleartextMessage=async function({text:e,...t}){if(!e)throw Error("createCleartextMessage: must pass options object containing `text`");if(!N.isString(e))throw Error("createCleartextMessage: options.text must be a string");const r=Object.keys(t);if(r.length>0)throw Error("Unknown option: "+r.join(", "));return new eo(e)},e.createMessage=async function({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 Error("createMessage: must pass options object containing `text` or `binary`");if(e&&!N.isString(e)&&!N.isStream(e))throw Error("createMessage: options.text must be a string or stream");if(t&&!N.isUint8Array(t)&&!N.isStream(t))throw Error("createMessage: options.binary must be a Uint8Array or stream");const o=Object.keys(s);if(o.length>0)throw Error("Unknown option: "+o.join(", "));const c=N.isStream(a),u=new Ms(n);void 0!==e?u.setText(a,T.write(T.literal,i)):u.setBytes(a,T.write(T.literal,i)),void 0!==r&&u.setFilename(r);const h=new js;h.push(u);const f=new Ja(h);return f.fromStream=c,f},e.decrypt=async function({message:e,decryptionKeys:t,passwords:r,sessionKeys:n,verificationKeys:i,expectSigned:s=!1,format:a="utf8",signature:o=null,date:c=new Date,config:u,...h}){if(so(u={...F,...u}),to(e),i=ao(i),t=ao(t),r=ao(r),n=ao(n),h.privateKeys)throw Error("The `privateKeys` option has been removed from openpgp.decrypt, pass `decryptionKeys` instead");if(h.publicKeys)throw Error("The `publicKeys` option has been removed from openpgp.decrypt, pass `verificationKeys` instead");const f=Object.keys(h);if(f.length>0)throw Error("Unknown option: "+f.join(", "));try{const h=await e.decrypt(t,r,n,c,u);i||(i=[]);const f={};if(f.signatures=o?await h.verifyDetached(o,i,c,u):await h.verify(i,c,u),f.data="binary"===a?h.getLiteralData():h.getText(),f.filename=h.getFilename(),co(f,e,...new Set([h,h.unwrapCompressed()])),s){if(0===i.length)throw Error("Verification keys are required to verify message signatures");if(0===f.signatures.length)throw Error("Message is not signed");f.data=w([f.data,x((async()=>(await N.anyPromise(f.signatures.map((e=>e.verified))),"binary"===a?new Uint8Array:"")))])}return f.data=await oo(f.data),f}catch(e){throw N.wrapError("Error decrypting message",e)}},e.decryptKey=async function({privateKey:e,passphrase:t,config:r,...n}){so(r={...F,...r});const i=Object.keys(n);if(i.length>0)throw Error("Unknown option: "+i.join(", "));if(!e.isPrivate())throw Error("Cannot decrypt a public key");const s=e.clone(!0),a=N.isArray(t)?t:[t];try{return await Promise.all(s.getKeys().map((e=>N.anyPromise(a.map((t=>e.keyPacket.decrypt(t,r))))))),await s.validate(r),s}catch(e){throw s.clearPrivateParams(),N.wrapError("Error decrypting private key",e)}},e.decryptSessionKeys=async function({message:e,decryptionKeys:t,passwords:r,date:n=new Date,config:i,...s}){if(so(i={...F,...i}),to(e),t=ao(t),r=ao(r),s.privateKeys)throw Error("The `privateKeys` option has been removed from openpgp.decryptSessionKeys, pass `decryptionKeys` instead");const a=Object.keys(s);if(a.length>0)throw Error("Unknown option: "+a.join(", "));try{return await e.decryptSessionKeys(t,r,void 0,n,i)}catch(e){throw N.wrapError("Error decrypting session keys",e)}},e.encrypt=async function({message:e,encryptionKeys:t,signingKeys:r,passwords:n,sessionKey:i,format:s="armored",signature:a=null,wildcard:o=!1,signingKeyIDs:c=[],encryptionKeyIDs:u=[],date:h=new Date,signingUserIDs:f=[],encryptionUserIDs:l=[],signatureNotations:y=[],config:g,...p}){if(so(g={...F,...g}),to(e),no(s),t=ao(t),r=ao(r),n=ao(n),c=ao(c),u=ao(u),f=ao(f),l=ao(l),y=ao(y),p.detached)throw 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 Error("The `publicKeys` option has been removed from openpgp.encrypt, pass `encryptionKeys` instead");if(p.privateKeys)throw Error("The `privateKeys` option has been removed from openpgp.encrypt, pass `signingKeys` instead");if(void 0!==p.armor)throw Error("The `armor` option has been removed from openpgp.encrypt, pass `format` instead.");const d=Object.keys(p);if(d.length>0)throw Error("Unknown option: "+d.join(", "));r||(r=[]);try{if((r.length||a)&&(e=await e.sign(r,t,a,c,h,f,u,y,g)),e=e.compress(await async function(e=[],t=new Date,r=[],n=F){const i=T.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,h,l,g),g),e=await e.encrypt(t,n,i,o,u,h,l,g),"object"===s)return e;const p="armored"===s?e.armor(g):e.write();return await oo(p)}catch(e){throw N.wrapError("Error encrypting message",e)}},e.encryptKey=async function({privateKey:e,passphrase:t,config:r,...n}){so(r={...F,...r});const i=Object.keys(n);if(i.length>0)throw Error("Unknown option: "+i.join(", "));if(!e.isPrivate())throw Error("Cannot encrypt a public key");const s=e.clone(!0),a=s.getKeys(),o=N.isArray(t)?t:Array(a.length).fill(t);if(o.length!==a.length)throw 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(),N.wrapError("Error encrypting private key",e)}},e.encryptSessionKey=async function({data:e,algorithm:t,aeadAlgorithm:r,encryptionKeys:n,passwords:i,format:s="armored",wildcard:a=!1,encryptionKeyIDs:o=[],date:c=new Date,encryptionUserIDs:u=[],config:h,...f}){if(so(h={...F,...h}),function(e){if(!N.isUint8Array(e))throw Error("Parameter [data] must be of type Uint8Array")}(e),function(e,t){if(!N.isString(e))throw Error("Parameter ["+t+"] must be of type String")}(t,"algorithm"),no(s),n=ao(n),i=ao(i),o=ao(o),u=ao(u),f.publicKeys)throw Error("The `publicKeys` option has been removed from openpgp.encryptSessionKey, pass `encryptionKeys` instead");const l=Object.keys(f);if(l.length>0)throw Error("Unknown option: "+l.join(", "));if(!(n&&0!==n.length||i&&0!==i.length))throw Error("No encryption keys or passwords provided.");try{return uo(await Ja.encryptSessionKey(e,t,r,n,i,a,o,c,u,h),s,h)}catch(e){throw N.wrapError("Error encrypting session key",e)}},e.enums=T,e.generateKey=async function({userIDs:e=[],passphrase:t,type:r,curve:n,rsaBits:i=4096,keyExpirationTime:s=0,date:a=new Date,subkeys:o=[{}],format:c="armored",signatureNotations:u=[],config:h,...f}){so(h={...F,...h}),r||n?(r=r||"ecc",n=n||"curve25519Legacy"):(r=h.v6Keys?"curve25519":"ecc",n="curve25519Legacy"),e=ao(e),u=ao(u);const l=Object.keys(f);if(l.length>0)throw Error("Unknown option: "+l.join(", "));if(0===e.length&&!h.v6Keys)throw Error("UserIDs are required for V4 keys");if("rsa"===r&&i<h.minRSABits)throw Error(`rsaBits should be at least ${h.minRSABits}, got: ${i}`);const y={userIDs:e,passphrase:t,type:r,rsaBits:i,curve:n,keyExpirationTime:s,date:a,subkeys:o,signatureNotations:u};try{const{key:e,revocationCertificate:t}=await async function(e,t){e.sign=!0,(e=Pa(e)).subkeys=e.subkeys.map(((t,r)=>Pa(e.subkeys[r],e)));let r=[Ea(e,t)];r=r.concat(e.subkeys.map((e=>ka(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}}(y,h);return e.getKeys().forEach((({keyPacket:e})=>Ra(e,h))),{privateKey:uo(e,c,h),publicKey:uo(e.toPublic(),c,h),revocationCertificate:t}}catch(e){throw N.wrapError("Error generating keypair",e)}},e.generateSessionKey=async function({encryptionKeys:e,date:t=new Date,encryptionUserIDs:r=[],config:n,...i}){if(so(n={...F,...n}),e=ao(e),r=ao(r),i.publicKeys)throw Error("The `publicKeys` option has been removed from openpgp.generateSessionKey, pass `encryptionKeys` instead");const s=Object.keys(i);if(s.length>0)throw Error("Unknown option: "+s.join(", "));try{return await Ja.generateSessionKey(e,t,r,n)}catch(e){throw N.wrapError("Error generating session key",e)}},e.readCleartextMessage=async function({cleartextMessage:e,config:t,...r}){if(t={...F,...t},!e)throw Error("readCleartextMessage: must pass options object containing `cleartextMessage`");if(!N.isString(e))throw Error("readCleartextMessage: options.cleartextMessage must be a string");const n=Object.keys(r);if(n.length>0)throw Error("Unknown option: "+n.join(", "));const i=await ee(e);if(i.type!==T.armor.signed)throw Error("No cleartext signed message.");const s=await js.fromBinary(i.data,$a,t);!function(e,t){const r=function(e){const r=e=>t=>e.hashAlgorithm===t;for(let n=0;n<t.length;n++)if(t[n].constructor.tag===T.packet.signature&&!e.some(r(t[n])))return!1;return!0},n=[];if(e.forEach((e=>{const t=e.match(/^Hash: (.+)$/);if(!t)throw Error('Only "Hash" header allowed in cleartext signed message');{const e=t[1].replace(/\s/g,"").split(",").map((e=>{try{return T.write(T.hash,e.toLowerCase())}catch{throw Error("Unknown hash algorithm in armor header: "+e.toLowerCase())}}));n.push(...e)}})),n.length&&!r(n))throw Error("Hash algorithm mismatch in armor header and signature")}(i.headers,s);const a=new ba(s);return new eo(i.text,a)},e.readKey=async function({armoredKey:e,binaryKey:t,config:r,...n}){if(r={...F,...r},!e&&!t)throw Error("readKey: must pass options object containing `armoredKey` or `binaryKey`");if(e&&!N.isString(e))throw Error("readKey: options.armoredKey must be a string");if(t&&!N.isUint8Array(t))throw Error("readKey: options.binaryKey must be a Uint8Array");const i=Object.keys(n);if(i.length>0)throw Error("Unknown option: "+i.join(", "));let s;if(e){const{type:t,data:r}=await ee(e);if(t!==T.armor.publicKey&&t!==T.armor.privateKey)throw Error("Armored text not of type key");s=r}else s=t;const a=await js.fromBinary(s,ja,r),o=a.indexOfTag(T.packet.publicKey,T.packet.secretKey);if(0===o.length)throw Error("No key packet found");return Va(a.slice(o[0],o[1]))},e.readKeys=async function({armoredKeys:e,binaryKeys:t,config:r,...n}){r={...F,...r};let i=e||t;if(!i)throw Error("readKeys: must pass options object containing `armoredKeys` or `binaryKeys`");if(e&&!N.isString(e))throw Error("readKeys: options.armoredKeys must be a string");if(t&&!N.isUint8Array(t))throw Error("readKeys: options.binaryKeys must be a Uint8Array");const s=Object.keys(n);if(s.length>0)throw Error("Unknown option: "+s.join(", "));if(e){const{type:t,data:r}=await ee(e);if(t!==T.armor.publicKey&&t!==T.armor.privateKey)throw Error("Armored text not of type key");i=r}const a=[],o=await js.fromBinary(i,ja,r),c=o.indexOfTag(T.packet.publicKey,T.packet.secretKey);if(0===c.length)throw Error("No key packet found");for(let e=0;e<c.length;e++){const t=Va(o.slice(c[e],c[e+1]));a.push(t)}return a},e.readMessage=async function({armoredMessage:e,binaryMessage:t,config:r,...n}){r={...F,...r};let i=e||t;if(!i)throw Error("readMessage: must pass options object containing `armoredMessage` or `binaryMessage`");if(e&&!N.isString(e)&&!N.isStream(e))throw Error("readMessage: options.armoredMessage must be a string or stream");if(t&&!N.isUint8Array(t)&&!N.isStream(t))throw Error("readMessage: options.binaryMessage must be a Uint8Array or stream");const s=Object.keys(n);if(s.length>0)throw Error("Unknown option: "+s.join(", "));const a=N.isStream(i);if(e){const{type:e,data:t}=await ee(i);if(e!==T.armor.message)throw Error("Armored text not of type message");i=t}const o=await js.fromBinary(i,_a,r,new _s),c=new Ja(o);return c.fromStream=a,c},e.readPrivateKey=async function({armoredKey:e,binaryKey:t,config:r,...n}){if(r={...F,...r},!e&&!t)throw Error("readPrivateKey: must pass options object containing `armoredKey` or `binaryKey`");if(e&&!N.isString(e))throw Error("readPrivateKey: options.armoredKey must be a string");if(t&&!N.isUint8Array(t))throw Error("readPrivateKey: options.binaryKey must be a Uint8Array");const i=Object.keys(n);if(i.length>0)throw Error("Unknown option: "+i.join(", "));let s;if(e){const{type:t,data:r}=await ee(e);if(t!==T.armor.privateKey)throw Error("Armored text not of type private key");s=r}else s=t;const a=await js.fromBinary(s,ja,r),o=a.indexOfTag(T.packet.publicKey,T.packet.secretKey);for(let e=0;e<o.length;e++){if(a[o[e]].constructor.tag===T.packet.publicKey)continue;const t=a.slice(o[e],o[e+1]);return new Ga(t)}throw Error("No secret key packet found")},e.readPrivateKeys=async function({armoredKeys:e,binaryKeys:t,config:r}){r={...F,...r};let n=e||t;if(!n)throw Error("readPrivateKeys: must pass options object containing `armoredKeys` or `binaryKeys`");if(e&&!N.isString(e))throw Error("readPrivateKeys: options.armoredKeys must be a string");if(t&&!N.isUint8Array(t))throw Error("readPrivateKeys: options.binaryKeys must be a Uint8Array");if(e){const{type:t,data:r}=await ee(e);if(t!==T.armor.privateKey)throw Error("Armored text not of type private key");n=r}const i=[],s=await js.fromBinary(n,ja,r),a=s.indexOfTag(T.packet.publicKey,T.packet.secretKey);for(let e=0;e<a.length;e++){if(s[a[e]].constructor.tag===T.packet.publicKey)continue;const t=s.slice(a[e],a[e+1]),r=new Ga(t);i.push(r)}if(0===i.length)throw Error("No secret key packet found");return i},e.readSignature=async function({armoredSignature:e,binarySignature:t,config:r,...n}){r={...F,...r};let i=e||t;if(!i)throw Error("readSignature: must pass options object containing `armoredSignature` or `binarySignature`");if(e&&!N.isString(e))throw Error("readSignature: options.armoredSignature must be a string");if(t&&!N.isUint8Array(t))throw Error("readSignature: options.binarySignature must be a Uint8Array");const s=Object.keys(n);if(s.length>0)throw Error("Unknown option: "+s.join(", "));if(e){const{type:e,data:t}=await ee(i);if(e!==T.armor.signature)throw Error("Armored text not of type signature");i=t}const a=await js.fromBinary(i,ma,r);return new ba(a)},e.reformatKey=async function({privateKey:e,userIDs:t=[],passphrase:r,keyExpirationTime:n=0,date:i,format:s="armored",signatureNotations:a=[],config:o,...c}){so(o={...F,...o}),t=ao(t),a=ao(a);const u=Object.keys(c);if(u.length>0)throw Error("Unknown option: "+u.join(", "));if(0===t.length&&6!==e.keyPacket.version)throw Error("UserIDs are required for V4 keys");const h={privateKey:e,userIDs:t,passphrase:r,keyExpirationTime:n,date:i,signatureNotations:a};try{const{key:e,revocationCertificate:t}=await async function(e,t){e=o(e);const{privateKey:r}=e;if(!r.isPrivate())throw Error("Cannot reformat a public key");if(r.keyPacket.isDummy())throw Error("Cannot reformat a gnu-dummy primary key");if(!r.getKeys().every((({keyPacket:e})=>e.isDecrypted())))throw 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 va(e.bindingSignatures,n,T.signature.subkeyBinding,i,null,t).catch((()=>({})));return{sign:s.keyFlags&&s.keyFlags[0]&T.keyFlags.signData}}))));const i=r.subkeys.map((e=>e.keyPacket));if(e.subkeys.length!==i.length)throw 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=N.isString(e.passphrase)?e.passphrase:t.passphrase,e.date=e.date||t.date,e}}(h,o);return{privateKey:uo(e,s,o),publicKey:uo(e.toPublic(),s,o),revocationCertificate:t}}catch(e){throw N.wrapError("Error reformatting keypair",e)}},e.revokeKey=async function({key:e,revocationCertificate:t,reasonForRevocation:r,date:n=new Date,format:i="armored",config:s,...a}){so(s={...F,...s});const o=Object.keys(a);if(o.length>0)throw 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:uo(a,i,s),publicKey:uo(a.toPublic(),i,s)}:{privateKey:null,publicKey:uo(a,i,s)}}catch(e){throw N.wrapError("Error revoking key",e)}},e.sign=async function({message:e,signingKeys:t,recipientKeys:r=[],format:n="armored",detached:i=!1,signingKeyIDs:s=[],date:a=new Date,signingUserIDs:o=[],recipientUserIDs:c=[],signatureNotations:u=[],config:h,...f}){if(so(h={...F,...h}),ro(e),no(n),t=ao(t),s=ao(s),o=ao(o),r=ao(r),c=ao(c),u=ao(u),f.privateKeys)throw Error("The `privateKeys` option has been removed from openpgp.sign, pass `signingKeys` instead");if(void 0!==f.armor)throw Error("The `armor` option has been removed from openpgp.sign, pass `format` instead.");const l=Object.keys(f);if(l.length>0)throw Error("Unknown option: "+l.join(", "));if(e instanceof eo&&"binary"===n)throw Error("Cannot return signed cleartext message in binary format");if(e instanceof eo&&i)throw Error("Cannot detach-sign a cleartext message");if(!t||0===t.length)throw Error("No signing keys provided");try{let f;if(f=i?await e.signDetached(t,r,void 0,s,a,o,c,u,h):await e.sign(t,r,void 0,s,a,o,c,u,h),"object"===n)return f;return f="armored"===n?f.armor(h):f.write(),i&&(f=I(e.packets.write(),(async(e,t)=>{await Promise.all([m(f,t),U(e).catch((()=>{}))])}))),await oo(f)}catch(e){throw N.wrapError("Error signing message",e)}},e.unarmor=ee,e.verify=async function({message:e,verificationKeys:t,expectSigned:r=!1,format:n="utf8",signature:i=null,date:s=new Date,config:a,...o}){if(so(a={...F,...a}),ro(e),t=ao(t),o.publicKeys)throw Error("The `publicKeys` option has been removed from openpgp.verify, pass `verificationKeys` instead");const c=Object.keys(o);if(c.length>0)throw Error("Unknown option: "+c.join(", "));if(e instanceof eo&&"binary"===n)throw Error("Can't return cleartext message data as binary");if(e instanceof eo&&i)throw 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&&co(o,...new Set([e,e.unwrapCompressed()])),r){if(0===o.signatures.length)throw Error("Message is not signed");o.data=w([o.data,x((async()=>(await N.anyPromise(o.signatures.map((e=>e.verified))),"binary"===n?new Uint8Array:"")))])}return o.data=await oo(o.data),o}catch(e){throw N.wrapError("Error verifying signed message",e)}},e}({});
//# sourceMappingURL=openpgp.min.js.map