{"version":3,"sources":["webpack:///./node_modules/@stablelib/binary/lib/binary.js","webpack:///./node_modules/@stablelib/ed25519/lib/ed25519.js","webpack:///./node_modules/@stablelib/chacha/lib/chacha.js","webpack:///./node_modules/@stablelib/hmac/lib/hmac.js","webpack:///./node_modules/@stablelib/constant-time/lib/constant-time.js","webpack:///./node_modules/@stablelib/poly1305/lib/poly1305.js","webpack:///./node_modules/@stablelib/random/lib/source/system.js","webpack:///./node_modules/@stablelib/chacha20poly1305/lib/chacha20poly1305.js","webpack:///./node_modules/@stablelib/hash/lib/hash.js","webpack:///./node_modules/@stablelib/random/lib/source/browser.js","webpack:///./node_modules/@stablelib/sha512/lib/sha512.js","webpack:///./node_modules/@stablelib/sha256/lib/sha256.js","webpack:///./node_modules/@stablelib/x25519/lib/x25519.js","webpack:///./node_modules/@stablelib/random/lib/source/node.js","webpack:///./node_modules/@stablelib/random/lib/random.js","webpack:///./node_modules/@stablelib/int/lib/int.js","webpack:///./node_modules/@stablelib/hkdf/lib/hkdf.js","webpack:///./node_modules/@stablelib/wipe/lib/wipe.js"],"names":["Object","defineProperty","exports","value","int_1","r","writeUint16BE","out","offset","Uint8Array","writeUint16LE","readInt32BE","array","readUint32BE","readInt32LE","readUint32LE","writeUint32BE","writeUint32LE","writeUint64BE","writeUint64LE","readInt16BE","readUint16BE","readInt16LE","readUint16LE","writeInt16BE","writeInt16LE","writeInt32BE","writeInt32LE","readInt64BE","hi","lo","readUint64BE","readInt64LE","readUint64LE","writeInt64BE","writeInt64LE","readUintBE","bitLength","Error","length","result","mul","i","readUintLE","writeUintBE","isSafeInteger","div","writeUintLE","readFloat32BE","DataView","buffer","byteOffset","byteLength","getFloat32","readFloat32LE","readFloat64BE","getFloat64","readFloat64LE","writeFloat32BE","setFloat32","writeFloat32LE","writeFloat64BE","setFloat64","writeFloat64LE","convertSecretKeyToX25519","convertPublicKeyToX25519","verify","sign","extractPublicKeyFromSecretKey","generateKeyPair","generateKeyPairFromSeed","SEED_LENGTH","SECRET_KEY_LENGTH","PUBLIC_KEY_LENGTH","SIGNATURE_LENGTH","random_1","sha512_1","wipe_1","gf","init","Float64Array","gf0","gf1","D","D2","X","Y","I","set25519","a","car25519","o","c","v","Math","floor","sel25519","p","q","b","t","pack25519","n","m","j","verify32","x","y","d","neq25519","par25519","add","sub","t0","t1","t2","t3","t4","t5","t6","t7","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","b10","b11","b12","b13","b14","b15","square","inv25519","edadd","e","f","g","h","cswap","pack","tx","ty","zi","scalarmult","s","scalarbase","seed","hash","publicKey","secretKey","set","prng","randomBytes","wipe","subarray","L","modL","carry","k","reduce","unpackneg","chk","num","den","den2","den4","den6","unpack25519","pow2523","message","signature","hs","SHA512","update","digest","clean","reset","z","binary_1","core","input","key","j0","j1","j2","j3","j4","j5","j6","j7","j8","j9","j10","j11","j12","j13","j14","j15","x0","x1","x2","x3","x4","x5","x6","x7","x8","x9","x10","x11","x12","x13","x14","x15","streamXOR","nonce","src","dst","nonceInplaceCounterLength","nc","counterLength","block","incrementCounter","counter","pos","len","stream","hash_1","constant_time_1","HMAC","this","_finished","_inner","_outer","blockSize","digestLength","pad","finish","isSerializableHash","_innerKeyedState","saveState","_outerKeyedState","prototype","restoreState","cleanSavedState","data","savedState","hmac","equal","compare","select","subject","resultIfOne","resultIfZero","lessOrEqual","DIGEST_LENGTH","Poly1305","_buffer","_r","Uint16Array","_h","_pad","_leftover","_fin","_blocks","mpos","bytes","hibit","h0","h1","h2","h3","h4","h5","h6","h7","h8","h9","r0","r1","r2","r3","r4","r5","r6","r7","r8","r9","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","mac","macpos","mask","want","oneTimeAuth","SystemRandomSource","browser_1","node_1","constructor","isAvailable","name","_source","BrowserRandomSource","NodeRandomSource","chacha_1","poly1305_1","KEY_LENGTH","NONCE_LENGTH","TAG_LENGTH","ZEROS","ChaCha20Poly1305","nonceLength","tagLength","_key","seal","plaintext","associatedData","authKey","resultLength","_authenticate","open","sealed","calculatedTag","tagOut","ciphertext","tag","isInstantiated","browserCrypto","self","crypto","msCrypto","getRandomValues","_crypto","min","BLOCK_SIZE","_stateHi","Int32Array","_stateLo","_tempHi","_tempLo","_bufferLength","_bytesHashed","_initState","dataLength","dataPos","hashBlocks","bytesHashed","left","bitLenHi","bitLenLo","padLength","stateHi","stateLo","bufferLength","K","wh","wl","hh","hl","l","th","tl","ah0","ah1","ah2","ah3","ah4","ah5","ah6","ah7","al0","al1","al2","al3","al4","al5","al6","al7","bh7","bl7","bh0","bh1","bh2","bh3","bh4","bh5","bh6","bl0","bl1","bl2","bl3","bl4","bl5","bl6","SHA256","_state","_temp","state","w","u","sharedKey","scalarMultBase","scalarMult","SHARED_KEY_LENGTH","_9","_121665","x32","x16","inp","mySecretKey","theirPublicKey","rejectZero","zeros","nodeCrypto","randomStringForEntropy","randomString","randomUint32","defaultRandomSource","system_1","buf","ALPHANUMERIC","charset","charsLen","maxByte","ceil","randomByte","charAt","bits","log","LN2","imul","al","bl","rotl","rotr","isInteger","Number","isFinite","MAX_SAFE_INTEGER","hmac_1","HKDF","salt","info","_counter","_hash","_info","okm","_hmac","_bufpos","_fillBuffer","ctr","expand"],"mappings":"qHAGAA,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAMA,IAIrD,IAAIC,EAAQC,EAAQ,QA8CpB,SAASC,EAAcH,EAAOI,EAAKC,GAK/B,YAAO,IAJHD,IAAkBA,EAAM,IAAIE,WAAW,aACvCD,IAAqBA,EAAS,GAClCD,EAAIC,EAAS,GAAKL,IAAU,EAC5BI,EAAIC,EAAS,GAAKL,IAAU,EACrBI,EAYX,SAASG,EAAcP,EAAOI,EAAKC,GAK/B,YAAO,IAJHD,IAAkBA,EAAM,IAAIE,WAAW,aACvCD,IAAqBA,EAAS,GAClCD,EAAIC,EAAS,GAAKL,IAAU,EAC5BI,EAAIC,EAAS,GAAKL,IAAU,EACrBI,EAQX,SAASI,EAAYC,EAAOJ,GAExB,YAAO,IADHA,IAAqBA,EAAS,GAC1BI,EAAMJ,IAAW,GACpBI,EAAMJ,EAAS,IAAM,GACrBI,EAAMJ,EAAS,IAAM,EACtBI,EAAMJ,EAAS,GAOvB,SAASK,EAAaD,EAAOJ,GAEzB,YAAO,IADHA,IAAqBA,EAAS,IACzBI,EAAMJ,IAAW,GACrBI,EAAMJ,EAAS,IAAM,GACrBI,EAAMJ,EAAS,IAAM,EACtBI,EAAMJ,EAAS,MAAQ,EAO/B,SAASM,EAAYF,EAAOJ,GAExB,YAAO,IADHA,IAAqBA,EAAS,GAC1BI,EAAMJ,EAAS,IAAM,GACxBI,EAAMJ,EAAS,IAAM,GACrBI,EAAMJ,EAAS,IAAM,EACtBI,EAAMJ,GAOd,SAASO,EAAaH,EAAOJ,GAEzB,YAAO,IADHA,IAAqBA,EAAS,IACzBI,EAAMJ,EAAS,IAAM,GACzBI,EAAMJ,EAAS,IAAM,GACrBI,EAAMJ,EAAS,IAAM,EACtBI,EAAMJ,MAAa,EAW3B,SAASQ,EAAcb,EAAOI,EAAKC,GAO/B,YAAO,IANHD,IAAkBA,EAAM,IAAIE,WAAW,aACvCD,IAAqBA,EAAS,GAClCD,EAAIC,EAAS,GAAKL,IAAU,GAC5BI,EAAIC,EAAS,GAAKL,IAAU,GAC5BI,EAAIC,EAAS,GAAKL,IAAU,EAC5BI,EAAIC,EAAS,GAAKL,IAAU,EACrBI,EAYX,SAASU,EAAcd,EAAOI,EAAKC,GAO/B,YAAO,IANHD,IAAkBA,EAAM,IAAIE,WAAW,aACvCD,IAAqBA,EAAS,GAClCD,EAAIC,EAAS,GAAKL,IAAU,EAC5BI,EAAIC,EAAS,GAAKL,IAAU,EAC5BI,EAAIC,EAAS,GAAKL,IAAU,GAC5BI,EAAIC,EAAS,GAAKL,IAAU,GACrBI,EAwEX,SAASW,EAAcf,EAAOI,EAAKC,GAK/B,YAAO,IAJHD,IAAkBA,EAAM,IAAIE,WAAW,aACvCD,IAAqBA,EAAS,GAClCQ,EAAcb,EAAQ,aAAgB,EAAGI,EAAKC,GAC9CQ,EAAcb,IAAU,EAAGI,EAAKC,EAAS,GAClCD,EAcX,SAASY,EAAchB,EAAOI,EAAKC,GAK/B,YAAO,IAJHD,IAAkBA,EAAM,IAAIE,WAAW,aACvCD,IAAqBA,EAAS,GAClCS,EAAcd,IAAU,EAAGI,EAAKC,GAChCS,EAAcd,EAAQ,aAAgB,EAAGI,EAAKC,EAAS,GAChDD,EAhPXL,EAAQkB,YAJR,SAAqBR,EAAOJ,GAExB,YAAO,IADHA,IAAqBA,EAAS,IACxBI,EAAMJ,EAAS,IAAM,EAAKI,EAAMJ,EAAS,KAAO,IAAO,IAWrEN,EAAQmB,aAJR,SAAsBT,EAAOJ,GAEzB,YAAO,IADHA,IAAqBA,EAAS,IACzBI,EAAMJ,EAAS,IAAM,EAAKI,EAAMJ,EAAS,MAAQ,GAW9DN,EAAQoB,YAJR,SAAqBV,EAAOJ,GAExB,YAAO,IADHA,IAAqBA,EAAS,IACxBI,EAAMJ,EAAS,IAAM,EAAKI,EAAMJ,KAAY,IAAO,IAWjEN,EAAQqB,aAJR,SAAsBX,EAAOJ,GAEzB,YAAO,IADHA,IAAqBA,EAAS,IACzBI,EAAMJ,EAAS,IAAM,EAAKI,EAAMJ,MAAa,GAkB1DN,EAAQI,cAAgBA,EACxBJ,EAAQsB,aAAelB,EAgBvBJ,EAAQQ,cAAgBA,EACxBR,EAAQuB,aAAef,EAYvBR,EAAQS,YAAcA,EAYtBT,EAAQW,aAAeA,EAYvBX,EAAQY,YAAcA,EAYtBZ,EAAQa,aAAeA,EAkBvBb,EAAQc,cAAgBA,EACxBd,EAAQwB,aAAeV,EAkBvBd,EAAQe,cAAgBA,EACxBf,EAAQyB,aAAeV,EAgBvBf,EAAQ0B,YANR,SAAqBhB,EAAOJ,YACpBA,IAAqBA,EAAS,GAClC,IAAIqB,EAAKlB,EAAYC,EAAOJ,GACxBsB,EAAKnB,EAAYC,EAAOJ,EAAS,GACrC,OAAY,WAALqB,EAAmBC,EAAmB,YAAZA,GAAM,KAe3C5B,EAAQ6B,aANR,SAAsBnB,EAAOJ,GAIzB,YAJyBA,IACrBA,IAAqBA,EAAS,GAGtB,WAFHK,EAAaD,EAAOJ,GACpBK,EAAaD,EAAOJ,EAAS,IAmB1CN,EAAQ8B,YANR,SAAqBpB,EAAOJ,YACpBA,IAAqBA,EAAS,GAClC,IAAIsB,EAAKhB,EAAYF,EAAOJ,GAE5B,OAAY,WADHM,EAAYF,EAAOJ,EAAS,GACXsB,EAAmB,YAAZA,GAAM,KAe3C5B,EAAQ+B,aANR,SAAsBrB,EAAOJ,YACrBA,IAAqBA,EAAS,GAClC,IAAIsB,EAAKf,EAAaH,EAAOJ,GAE7B,OAAY,WADHO,EAAaH,EAAOJ,EAAS,GACZsB,GAoB9B5B,EAAQgB,cAAgBA,EACxBhB,EAAQgC,aAAehB,EAkBvBhB,EAAQiB,cAAgBA,EACxBjB,EAAQiC,aAAehB,EAwBvBjB,EAAQkC,WAjBR,SAAoBC,EAAWzB,EAAOJ,GAGlC,YAFIA,IAAqBA,EAAS,GAE9B6B,EAAY,GAAM,EAClB,MAAM,IAAIC,MAAM,sDAEpB,GAAID,EAAY,EAAIzB,EAAM2B,OAAS/B,EAC/B,MAAM,IAAI8B,MAAM,0DAIpB,IAFA,IAAIE,EAAS,EACTC,EAAM,EACDC,EAAIL,EAAY,EAAI7B,EAAS,EAAGkC,GAAKlC,EAAQkC,IAClDF,GAAU5B,EAAM8B,GAAKD,EACrBA,GAAO,IAEX,OAAOD,GA0BXtC,EAAQyC,WAjBR,SAAoBN,EAAWzB,EAAOJ,GAGlC,YAFIA,IAAqBA,EAAS,GAE9B6B,EAAY,GAAM,EAClB,MAAM,IAAIC,MAAM,sDAEpB,GAAID,EAAY,EAAIzB,EAAM2B,OAAS/B,EAC/B,MAAM,IAAI8B,MAAM,0DAIpB,IAFA,IAAIE,EAAS,EACTC,EAAM,EACDC,EAAIlC,EAAQkC,EAAIlC,EAAS6B,EAAY,EAAGK,IAC7CF,GAAU5B,EAAM8B,GAAKD,EACrBA,GAAO,IAEX,OAAOD,GA8BXtC,EAAQ0C,YAjBR,SAAqBP,EAAWlC,EAAOI,EAAKC,GAIxC,YAHID,IAAkBA,EAAM,IAAIE,WAAW4B,EAAY,aACnD7B,IAAqBA,EAAS,GAE9B6B,EAAY,GAAM,EAClB,MAAM,IAAIC,MAAM,uDAEpB,IAAKlC,EAAMyC,cAAc1C,GACrB,MAAM,IAAImC,MAAM,wCAGpB,IADA,IAAIQ,EAAM,EACDJ,EAAIL,EAAY,EAAI7B,EAAS,EAAGkC,GAAKlC,EAAQkC,IAClDnC,EAAImC,GAAMvC,EAAQ2C,EAAO,IACzBA,GAAO,IAEX,OAAOvC,GA8BXL,EAAQ6C,YAjBR,SAAqBV,EAAWlC,EAAOI,EAAKC,GAIxC,YAHID,IAAkBA,EAAM,IAAIE,WAAW4B,EAAY,aACnD7B,IAAqBA,EAAS,GAE9B6B,EAAY,GAAM,EAClB,MAAM,IAAIC,MAAM,uDAEpB,IAAKlC,EAAMyC,cAAc1C,GACrB,MAAM,IAAImC,MAAM,wCAGpB,IADA,IAAIQ,EAAM,EACDJ,EAAIlC,EAAQkC,EAAIlC,EAAS6B,EAAY,EAAGK,IAC7CnC,EAAImC,GAAMvC,EAAQ2C,EAAO,IACzBA,GAAO,IAEX,OAAOvC,GAYXL,EAAQ8C,cALR,SAAuBpC,EAAOJ,GAG1B,YAH0BA,IACtBA,IAAqBA,EAAS,GACvB,IAAIyC,SAASrC,EAAMsC,OAAQtC,EAAMuC,WAAYvC,EAAMwC,YAClDC,WAAW7C,IAY3BN,EAAQoD,cALR,SAAuB1C,EAAOJ,GAG1B,YAH0BA,IACtBA,IAAqBA,EAAS,GACvB,IAAIyC,SAASrC,EAAMsC,OAAQtC,EAAMuC,WAAYvC,EAAMwC,YAClDC,WAAW7C,OAY3BN,EAAQqD,cALR,SAAuB3C,EAAOJ,GAG1B,YAH0BA,IACtBA,IAAqBA,EAAS,GACvB,IAAIyC,SAASrC,EAAMsC,OAAQtC,EAAMuC,WAAYvC,EAAMwC,YAClDI,WAAWhD,IAY3BN,EAAQuD,cALR,SAAuB7C,EAAOJ,GAG1B,YAH0BA,IACtBA,IAAqBA,EAAS,GACvB,IAAIyC,SAASrC,EAAMsC,OAAQtC,EAAMuC,WAAYvC,EAAMwC,YAClDI,WAAWhD,OAkB3BN,EAAQwD,eAPR,SAAwBvD,EAAOI,EAAKC,GAKhC,YALgCA,IAC5BD,IAAkBA,EAAM,IAAIE,WAAW,aACvCD,IAAqBA,EAAS,GACvB,IAAIyC,SAAS1C,EAAI2C,OAAQ3C,EAAI4C,WAAY5C,EAAI6C,YACnDO,WAAWnD,EAAQL,GACjBI,GAkBXL,EAAQ0D,eAPR,SAAwBzD,EAAOI,EAAKC,GAKhC,YALgCA,IAC5BD,IAAkBA,EAAM,IAAIE,WAAW,aACvCD,IAAqBA,EAAS,GACvB,IAAIyC,SAAS1C,EAAI2C,OAAQ3C,EAAI4C,WAAY5C,EAAI6C,YACnDO,WAAWnD,EAAQL,MACjBI,GAkBXL,EAAQ2D,eAPR,SAAwB1D,EAAOI,EAAKC,GAKhC,YALgCA,IAC5BD,IAAkBA,EAAM,IAAIE,WAAW,aACvCD,IAAqBA,EAAS,GACvB,IAAIyC,SAAS1C,EAAI2C,OAAQ3C,EAAI4C,WAAY5C,EAAI6C,YACnDU,WAAWtD,EAAQL,GACjBI,GAkBXL,EAAQ6D,eAPR,SAAwB5D,EAAOI,EAAKC,GAKhC,YALgCA,IAC5BD,IAAkBA,EAAM,IAAIE,WAAW,aACvCD,IAAqBA,EAAS,GACvB,IAAIyC,SAAS1C,EAAI2C,OAAQ3C,EAAI4C,WAAY5C,EAAI6C,YACnDU,WAAWtD,EAAQL,MACjBI,I,oCC/cXP,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAMA,IACrDD,EAAQ8D,yBAA2B9D,EAAQ+D,yBAA2B/D,EAAQgE,OAAShE,EAAQiE,KAAOjE,EAAQkE,8BAAgClE,EAAQmE,gBAAkBnE,EAAQoE,wBAA0BpE,EAAQqE,YAAcrE,EAAQsE,kBAAoBtE,EAAQuE,kBAAoBvE,EAAQwE,wBAIhS,MAAMC,EAAWtE,EAAQ,QACnBuE,EAAWvE,EAAQ,QACnBwE,EAASxE,EAAQ,QAWvB,SAASyE,EAAGC,GACR,MAAM1E,EAAI,IAAI2E,aAAa,IAC3B,GAAID,EACA,IAAK,IAAIrC,EAAI,EAAGA,EAAIqC,EAAKxC,OAAQG,IAC7BrC,EAAEqC,GAAKqC,EAAKrC,GAGpB,OAAOrC,EAjBXH,EAAQwE,iBAAmB,GAC3BxE,EAAQuE,kBAAoB,GAC5BvE,EAAQsE,kBAAoB,GAC5BtE,EAAQqE,YAAc,GAiBX,IAAI9D,WAAW,IACvB,GAAK,EACR,MAAMwE,EAAMH,IACNI,EAAMJ,EAAG,CAAC,IACVK,EAAIL,EAAG,CACT,MAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,IACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,QAEtDM,EAAKN,EAAG,CACV,MAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,IACxD,MAAQ,MAAQ,MAAQ,KAAQ,MAAQ,MAAQ,MAAQ,OAEtDO,EAAIP,EAAG,CACT,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,OAEtDQ,EAAIR,EAAG,CACT,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,QAEtDS,EAAIT,EAAG,CACT,MAAQ,MAAQ,KAAQ,MAAQ,MAAQ,MAAQ,KAAQ,MACxD,MAAQ,MAAQ,IAAQ,MAAQ,MAAQ,MAAQ,KAAQ,QAE5D,SAASU,EAASnF,EAAGoF,GACjB,IAAK,IAAI/C,EAAI,EAAGA,EAAI,GAAIA,IACpBrC,EAAEqC,GAAY,EAAP+C,EAAE/C,GAGjB,SAASgD,EAASC,GACd,IAAIC,EAAI,EACR,IAAK,IAAIlD,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACzB,IAAImD,EAAIF,EAAEjD,GAAKkD,EAAI,MACnBA,EAAIE,KAAKC,MAAMF,EAAI,OACnBF,EAAEjD,GAAKmD,EAAQ,MAAJD,EAEfD,EAAE,IAAMC,EAAI,EAAI,IAAMA,EAAI,GAE9B,SAASI,EAASC,EAAGC,EAAGC,GACpB,MAAMP,IAAMO,EAAI,GAChB,IAAK,IAAIzD,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACzB,MAAM0D,EAAIR,GAAKK,EAAEvD,GAAKwD,EAAExD,IACxBuD,EAAEvD,IAAM0D,EACRF,EAAExD,IAAM0D,GAGhB,SAASC,EAAUV,EAAGW,GAClB,MAAMC,EAAIzB,IACJsB,EAAItB,IACV,IAAK,IAAIpC,EAAI,EAAGA,EAAI,GAAIA,IACpB0D,EAAE1D,GAAK4D,EAAE5D,GAEbgD,EAASU,GACTV,EAASU,GACTV,EAASU,GACT,IAAK,IAAII,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACxBD,EAAE,GAAKH,EAAE,GAAK,MACd,IAAK,IAAI1D,EAAI,EAAGA,EAAI,GAAIA,IACpB6D,EAAE7D,GAAK0D,EAAE1D,GAAK,OAAW6D,EAAE7D,EAAI,IAAM,GAAM,GAC3C6D,EAAE7D,EAAI,IAAM,MAEhB6D,EAAE,IAAMH,EAAE,IAAM,OAAWG,EAAE,KAAO,GAAM,GAC1C,MAAMJ,EAAKI,EAAE,KAAO,GAAM,EAC1BA,EAAE,KAAO,MACTP,EAASI,EAAGG,EAAG,EAAIJ,GAEvB,IAAK,IAAIzD,EAAI,EAAGA,EAAI,GAAIA,IACpBiD,EAAE,EAAIjD,GAAY,IAAP0D,EAAE1D,GACbiD,EAAE,EAAIjD,EAAI,GAAK0D,EAAE1D,IAAM,EAG/B,SAAS+D,EAASC,EAAGC,GACjB,IAAIC,EAAI,EACR,IAAK,IAAIlE,EAAI,EAAGA,EAAI,GAAIA,IACpBkE,GAAKF,EAAEhE,GAAKiE,EAAEjE,GAElB,OAAQ,EAAMkE,EAAI,IAAO,GAAM,EAEnC,SAASC,EAASpB,EAAGU,GACjB,MAAMP,EAAI,IAAInF,WAAW,IACnBmG,EAAI,IAAInG,WAAW,IAGzB,OAFA4F,EAAUT,EAAGH,GACbY,EAAUO,EAAGT,GACNM,EAASb,EAAGgB,GAEvB,SAASE,EAASrB,GACd,MAAMmB,EAAI,IAAInG,WAAW,IAEzB,OADA4F,EAAUO,EAAGnB,GACC,EAAPmB,EAAE,GAQb,SAASG,EAAIpB,EAAGF,EAAGU,GACf,IAAK,IAAIzD,EAAI,EAAGA,EAAI,GAAIA,IACpBiD,EAAEjD,GAAK+C,EAAE/C,GAAKyD,EAAEzD,GAGxB,SAASsE,EAAIrB,EAAGF,EAAGU,GACf,IAAK,IAAIzD,EAAI,EAAGA,EAAI,GAAIA,IACpBiD,EAAEjD,GAAK+C,EAAE/C,GAAKyD,EAAEzD,GAGxB,SAASD,EAAIkD,EAAGF,EAAGU,GACf,IAAIN,EAAGD,EAAGqB,EAAK,EAAGC,EAAK,EAAGC,EAAK,EAAGC,EAAK,EAAGC,EAAK,EAAGC,EAAK,EAAGC,EAAK,EAAGC,EAAK,EAAGC,EAAK,EAAGC,EAAK,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAK7C,EAAE,GAAI8C,EAAK9C,EAAE,GAAI+C,EAAK/C,EAAE,GAAIgD,EAAKhD,EAAE,GAAIiD,EAAKjD,EAAE,GAAIkD,EAAKlD,EAAE,GAAImD,EAAKnD,EAAE,GAAIoD,EAAKpD,EAAE,GAAIqD,EAAKrD,EAAE,GAAIsD,EAAKtD,EAAE,GAAIuD,EAAMvD,EAAE,IAAKwD,EAAMxD,EAAE,IAAKyD,EAAMzD,EAAE,IAAK0D,EAAM1D,EAAE,IAAK2D,EAAM3D,EAAE,IAAK4D,EAAM5D,EAAE,IAC9cN,EAAIJ,EAAE,GACNwB,GAAMpB,EAAImD,EACV9B,GAAMrB,EAAIoD,EACV9B,GAAMtB,EAAIqD,EACV9B,GAAMvB,EAAIsD,EACV9B,GAAMxB,EAAIuD,EACV9B,GAAMzB,EAAIwD,EACV9B,GAAM1B,EAAIyD,EACV9B,GAAM3B,EAAI0D,EACV9B,GAAM5B,EAAI2D,EACV9B,GAAM7B,EAAI4D,EACV9B,GAAO9B,EAAI6D,EACX9B,GAAO/B,EAAI8D,EACX9B,GAAOhC,EAAI+D,EACX9B,GAAOjC,EAAIgE,EACX9B,GAAOlC,EAAIiE,EACX9B,GAAOnC,EAAIkE,EACXlE,EAAIJ,EAAE,GACNyB,GAAMrB,EAAImD,EACV7B,GAAMtB,EAAIoD,EACV7B,GAAMvB,EAAIqD,EACV7B,GAAMxB,EAAIsD,EACV7B,GAAMzB,EAAIuD,EACV7B,GAAM1B,EAAIwD,EACV7B,GAAM3B,EAAIyD,EACV7B,GAAM5B,EAAI0D,EACV7B,GAAM7B,EAAI2D,EACV7B,GAAO9B,EAAI4D,EACX7B,GAAO/B,EAAI6D,EACX7B,GAAOhC,EAAI8D,EACX7B,GAAOjC,EAAI+D,EACX7B,GAAOlC,EAAIgE,EACX7B,GAAOnC,EAAIiE,EACX7B,GAAOpC,EAAIkE,EACXlE,EAAIJ,EAAE,GACN0B,GAAMtB,EAAImD,EACV5B,GAAMvB,EAAIoD,EACV5B,GAAMxB,EAAIqD,EACV5B,GAAMzB,EAAIsD,EACV5B,GAAM1B,EAAIuD,EACV5B,GAAM3B,EAAIwD,EACV5B,GAAM5B,EAAIyD,EACV5B,GAAM7B,EAAI0D,EACV5B,GAAO9B,EAAI2D,EACX5B,GAAO/B,EAAI4D,EACX5B,GAAOhC,EAAI6D,EACX5B,GAAOjC,EAAI8D,EACX5B,GAAOlC,EAAI+D,EACX5B,GAAOnC,EAAIgE,EACX5B,GAAOpC,EAAIiE,EACX5B,GAAOrC,EAAIkE,EACXlE,EAAIJ,EAAE,GACN2B,GAAMvB,EAAImD,EACV3B,GAAMxB,EAAIoD,EACV3B,GAAMzB,EAAIqD,EACV3B,GAAM1B,EAAIsD,EACV3B,GAAM3B,EAAIuD,EACV3B,GAAM5B,EAAIwD,EACV3B,GAAM7B,EAAIyD,EACV3B,GAAO9B,EAAI0D,EACX3B,GAAO/B,EAAI2D,EACX3B,GAAOhC,EAAI4D,EACX3B,GAAOjC,EAAI6D,EACX3B,GAAOlC,EAAI8D,EACX3B,GAAOnC,EAAI+D,EACX3B,GAAOpC,EAAIgE,EACX3B,GAAOrC,EAAIiE,EACX3B,GAAOtC,EAAIkE,EACXlE,EAAIJ,EAAE,GACN4B,GAAMxB,EAAImD,EACV1B,GAAMzB,EAAIoD,EACV1B,GAAM1B,EAAIqD,EACV1B,GAAM3B,EAAIsD,EACV1B,GAAM5B,EAAIuD,EACV1B,GAAM7B,EAAIwD,EACV1B,GAAO9B,EAAIyD,EACX1B,GAAO/B,EAAI0D,EACX1B,GAAOhC,EAAI2D,EACX1B,GAAOjC,EAAI4D,EACX1B,GAAOlC,EAAI6D,EACX1B,GAAOnC,EAAI8D,EACX1B,GAAOpC,EAAI+D,EACX1B,GAAOrC,EAAIgE,EACX1B,GAAOtC,EAAIiE,EACX1B,GAAOvC,EAAIkE,EACXlE,EAAIJ,EAAE,GACN6B,GAAMzB,EAAImD,EACVzB,GAAM1B,EAAIoD,EACVzB,GAAM3B,EAAIqD,EACVzB,GAAM5B,EAAIsD,EACVzB,GAAM7B,EAAIuD,EACVzB,GAAO9B,EAAIwD,EACXzB,GAAO/B,EAAIyD,EACXzB,GAAOhC,EAAI0D,EACXzB,GAAOjC,EAAI2D,EACXzB,GAAOlC,EAAI4D,EACXzB,GAAOnC,EAAI6D,EACXzB,GAAOpC,EAAI8D,EACXzB,GAAOrC,EAAI+D,EACXzB,GAAOtC,EAAIgE,EACXzB,GAAOvC,EAAIiE,EACXzB,GAAOxC,EAAIkE,EACXlE,EAAIJ,EAAE,GACN8B,GAAM1B,EAAImD,EACVxB,GAAM3B,EAAIoD,EACVxB,GAAM5B,EAAIqD,EACVxB,GAAM7B,EAAIsD,EACVxB,GAAO9B,EAAIuD,EACXxB,GAAO/B,EAAIwD,EACXxB,GAAOhC,EAAIyD,EACXxB,GAAOjC,EAAI0D,EACXxB,GAAOlC,EAAI2D,EACXxB,GAAOnC,EAAI4D,EACXxB,GAAOpC,EAAI6D,EACXxB,GAAOrC,EAAI8D,EACXxB,GAAOtC,EAAI+D,EACXxB,GAAOvC,EAAIgE,EACXxB,GAAOxC,EAAIiE,EACXxB,GAAOzC,EAAIkE,EACXlE,EAAIJ,EAAE,GACN+B,GAAM3B,EAAImD,EACVvB,GAAM5B,EAAIoD,EACVvB,GAAM7B,EAAIqD,EACVvB,GAAO9B,EAAIsD,EACXvB,GAAO/B,EAAIuD,EACXvB,GAAOhC,EAAIwD,EACXvB,GAAOjC,EAAIyD,EACXvB,GAAOlC,EAAI0D,EACXvB,GAAOnC,EAAI2D,EACXvB,GAAOpC,EAAI4D,EACXvB,GAAOrC,EAAI6D,EACXvB,GAAOtC,EAAI8D,EACXvB,GAAOvC,EAAI+D,EACXvB,GAAOxC,EAAIgE,EACXvB,GAAOzC,EAAIiE,EACXvB,GAAO1C,EAAIkE,EACXlE,EAAIJ,EAAE,GACNgC,GAAM5B,EAAImD,EACVtB,GAAM7B,EAAIoD,EACVtB,GAAO9B,EAAIqD,EACXtB,GAAO/B,EAAIsD,EACXtB,GAAOhC,EAAIuD,EACXtB,GAAOjC,EAAIwD,EACXtB,GAAOlC,EAAIyD,EACXtB,GAAOnC,EAAI0D,EACXtB,GAAOpC,EAAI2D,EACXtB,GAAOrC,EAAI4D,EACXtB,GAAOtC,EAAI6D,EACXtB,GAAOvC,EAAI8D,EACXtB,GAAOxC,EAAI+D,EACXtB,GAAOzC,EAAIgE,EACXtB,GAAO1C,EAAIiE,EACXtB,GAAO3C,EAAIkE,EACXlE,EAAIJ,EAAE,GACNiC,GAAM7B,EAAImD,EACVrB,GAAO9B,EAAIoD,EACXrB,GAAO/B,EAAIqD,EACXrB,GAAOhC,EAAIsD,EACXrB,GAAOjC,EAAIuD,EACXrB,GAAOlC,EAAIwD,EACXrB,GAAOnC,EAAIyD,EACXrB,GAAOpC,EAAI0D,EACXrB,GAAOrC,EAAI2D,EACXrB,GAAOtC,EAAI4D,EACXrB,GAAOvC,EAAI6D,EACXrB,GAAOxC,EAAI8D,EACXrB,GAAOzC,EAAI+D,EACXrB,GAAO1C,EAAIgE,EACXrB,GAAO3C,EAAIiE,EACXrB,GAAO5C,EAAIkE,EACXlE,EAAIJ,EAAE,IACNkC,GAAO9B,EAAImD,EACXpB,GAAO/B,EAAIoD,EACXpB,GAAOhC,EAAIqD,EACXpB,GAAOjC,EAAIsD,EACXpB,GAAOlC,EAAIuD,EACXpB,GAAOnC,EAAIwD,EACXpB,GAAOpC,EAAIyD,EACXpB,GAAOrC,EAAI0D,EACXpB,GAAOtC,EAAI2D,EACXpB,GAAOvC,EAAI4D,EACXpB,GAAOxC,EAAI6D,EACXpB,GAAOzC,EAAI8D,EACXpB,GAAO1C,EAAI+D,EACXpB,GAAO3C,EAAIgE,EACXpB,GAAO5C,EAAIiE,EACXpB,GAAO7C,EAAIkE,EACXlE,EAAIJ,EAAE,IACNmC,GAAO/B,EAAImD,EACXnB,GAAOhC,EAAIoD,EACXnB,GAAOjC,EAAIqD,EACXnB,GAAOlC,EAAIsD,EACXnB,GAAOnC,EAAIuD,EACXnB,GAAOpC,EAAIwD,EACXnB,GAAOrC,EAAIyD,EACXnB,GAAOtC,EAAI0D,EACXnB,GAAOvC,EAAI2D,EACXnB,GAAOxC,EAAI4D,EACXnB,GAAOzC,EAAI6D,EACXnB,GAAO1C,EAAI8D,EACXnB,GAAO3C,EAAI+D,EACXnB,GAAO5C,EAAIgE,EACXnB,GAAO7C,EAAIiE,EACXnB,GAAO9C,EAAIkE,EACXlE,EAAIJ,EAAE,IACNoC,GAAOhC,EAAImD,EACXlB,GAAOjC,EAAIoD,EACXlB,GAAOlC,EAAIqD,EACXlB,GAAOnC,EAAIsD,EACXlB,GAAOpC,EAAIuD,EACXlB,GAAOrC,EAAIwD,EACXlB,GAAOtC,EAAIyD,EACXlB,GAAOvC,EAAI0D,EACXlB,GAAOxC,EAAI2D,EACXlB,GAAOzC,EAAI4D,EACXlB,GAAO1C,EAAI6D,EACXlB,GAAO3C,EAAI8D,EACXlB,GAAO5C,EAAI+D,EACXlB,GAAO7C,EAAIgE,EACXlB,GAAO9C,EAAIiE,EACXlB,GAAO/C,EAAIkE,EACXlE,EAAIJ,EAAE,IACNqC,GAAOjC,EAAImD,EACXjB,GAAOlC,EAAIoD,EACXjB,GAAOnC,EAAIqD,EACXjB,GAAOpC,EAAIsD,EACXjB,GAAOrC,EAAIuD,EACXjB,GAAOtC,EAAIwD,EACXjB,GAAOvC,EAAIyD,EACXjB,GAAOxC,EAAI0D,EACXjB,GAAOzC,EAAI2D,EACXjB,GAAO1C,EAAI4D,EACXjB,GAAO3C,EAAI6D,EACXjB,GAAO5C,EAAI8D,EACXjB,GAAO7C,EAAI+D,EACXjB,GAAO9C,EAAIgE,EACXjB,GAAO/C,EAAIiE,EACXjB,GAAOhD,EAAIkE,EACXlE,EAAIJ,EAAE,IACNsC,GAAOlC,EAAImD,EACXhB,GAAOnC,EAAIoD,EACXhB,GAAOpC,EAAIqD,EACXhB,GAAOrC,EAAIsD,EACXhB,GAAOtC,EAAIuD,EACXhB,GAAOvC,EAAIwD,EACXhB,GAAOxC,EAAIyD,EACXhB,GAAOzC,EAAI0D,EACXhB,GAAO1C,EAAI2D,EACXhB,GAAO3C,EAAI4D,EACXhB,GAAO5C,EAAI6D,EACXhB,GAAO7C,EAAI8D,EACXhB,GAAO9C,EAAI+D,EACXhB,GAAO/C,EAAIgE,EACXhB,GAAOhD,EAAIiE,EACXhB,GAAOjD,EAAIkE,EACXlE,EAAIJ,EAAE,IACNuC,GAAOnC,EAAImD,EACXf,GAAOpC,EAAIoD,EACXf,GAAOrC,EAAIqD,EACXf,GAAOtC,EAAIsD,EACXf,GAAOvC,EAAIuD,EACXf,GAAOxC,EAAIwD,EACXf,GAAOzC,EAAIyD,EACXf,GAAO1C,EAAI0D,EACXf,GAAO3C,EAAI2D,EACXf,GAAO5C,EAAI4D,EACXf,GAAO7C,EAAI6D,EACXf,GAAO9C,EAAI8D,EACXf,GAAO/C,EAAI+D,EACXf,GAAOhD,EAAIgE,EACXf,GAAOjD,EAAIiE,EACXf,GAAOlD,EAAIkE,EACX9C,GAAM,GAAKgB,EACXf,GAAM,GAAKgB,EACXf,GAAM,GAAKgB,EACXf,GAAM,GAAKgB,EACXf,GAAM,GAAKgB,EACXf,GAAM,GAAKgB,EACXf,GAAM,GAAKgB,EACXf,GAAM,GAAKgB,EACXf,GAAM,GAAKgB,EACXf,GAAM,GAAKgB,EACXf,GAAO,GAAKgB,EACZf,GAAO,GAAKgB,EACZf,GAAO,GAAKgB,EACZf,GAAO,GAAKgB,EACZf,GAAO,GAAKgB,EAGZnD,EAAI,EACJC,EAAIoB,EAAKrB,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnBoB,EAAKpB,EAAQ,MAAJD,EACTC,EAAIqB,EAAKtB,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnBqB,EAAKrB,EAAQ,MAAJD,EACTC,EAAIsB,EAAKvB,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnBsB,EAAKtB,EAAQ,MAAJD,EACTC,EAAIuB,EAAKxB,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnBuB,EAAKvB,EAAQ,MAAJD,EACTC,EAAIwB,EAAKzB,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnBwB,EAAKxB,EAAQ,MAAJD,EACTC,EAAIyB,EAAK1B,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnByB,EAAKzB,EAAQ,MAAJD,EACTC,EAAI0B,EAAK3B,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnB0B,EAAK1B,EAAQ,MAAJD,EACTC,EAAI2B,EAAK5B,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnB2B,EAAK3B,EAAQ,MAAJD,EACTC,EAAI4B,EAAK7B,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnB4B,EAAK5B,EAAQ,MAAJD,EACTC,EAAI6B,EAAK9B,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnB6B,EAAK7B,EAAQ,MAAJD,EACTC,EAAI8B,EAAM/B,EAAI,MACdA,EAAIE,KAAKC,MAAMF,EAAI,OACnB8B,EAAM9B,EAAQ,MAAJD,EACVC,EAAI+B,EAAMhC,EAAI,MACdA,EAAIE,KAAKC,MAAMF,EAAI,OACnB+B,EAAM/B,EAAQ,MAAJD,EACVC,EAAIgC,EAAMjC,EAAI,MACdA,EAAIE,KAAKC,MAAMF,EAAI,OACnBgC,EAAMhC,EAAQ,MAAJD,EACVC,EAAIiC,EAAMlC,EAAI,MACdA,EAAIE,KAAKC,MAAMF,EAAI,OACnBiC,EAAMjC,EAAQ,MAAJD,EACVC,EAAIkC,EAAMnC,EAAI,MACdA,EAAIE,KAAKC,MAAMF,EAAI,OACnBkC,EAAMlC,EAAQ,MAAJD,EACVC,EAAImC,EAAMpC,EAAI,MACdA,EAAIE,KAAKC,MAAMF,EAAI,OACnBmC,EAAMnC,EAAQ,MAAJD,EACVqB,GAAMrB,EAAI,EAAI,IAAMA,EAAI,GAExBA,EAAI,EACJC,EAAIoB,EAAKrB,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnBoB,EAAKpB,EAAQ,MAAJD,EACTC,EAAIqB,EAAKtB,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnBqB,EAAKrB,EAAQ,MAAJD,EACTC,EAAIsB,EAAKvB,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnBsB,EAAKtB,EAAQ,MAAJD,EACTC,EAAIuB,EAAKxB,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnBuB,EAAKvB,EAAQ,MAAJD,EACTC,EAAIwB,EAAKzB,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnBwB,EAAKxB,EAAQ,MAAJD,EACTC,EAAIyB,EAAK1B,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnByB,EAAKzB,EAAQ,MAAJD,EACTC,EAAI0B,EAAK3B,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnB0B,EAAK1B,EAAQ,MAAJD,EACTC,EAAI2B,EAAK5B,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnB2B,EAAK3B,EAAQ,MAAJD,EACTC,EAAI4B,EAAK7B,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnB4B,EAAK5B,EAAQ,MAAJD,EACTC,EAAI6B,EAAK9B,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnB6B,EAAK7B,EAAQ,MAAJD,EACTC,EAAI8B,EAAM/B,EAAI,MACdA,EAAIE,KAAKC,MAAMF,EAAI,OACnB8B,EAAM9B,EAAQ,MAAJD,EACVC,EAAI+B,EAAMhC,EAAI,MACdA,EAAIE,KAAKC,MAAMF,EAAI,OACnB+B,EAAM/B,EAAQ,MAAJD,EACVC,EAAIgC,EAAMjC,EAAI,MACdA,EAAIE,KAAKC,MAAMF,EAAI,OACnBgC,EAAMhC,EAAQ,MAAJD,EACVC,EAAIiC,EAAMlC,EAAI,MACdA,EAAIE,KAAKC,MAAMF,EAAI,OACnBiC,EAAMjC,EAAQ,MAAJD,EACVC,EAAIkC,EAAMnC,EAAI,MACdA,EAAIE,KAAKC,MAAMF,EAAI,OACnBkC,EAAMlC,EAAQ,MAAJD,EACVC,EAAImC,EAAMpC,EAAI,MACdA,EAAIE,KAAKC,MAAMF,EAAI,OACnBmC,EAAMnC,EAAQ,MAAJD,EACVqB,GAAMrB,EAAI,EAAI,IAAMA,EAAI,GACxBD,EAAE,GAAKsB,EACPtB,EAAE,GAAKuB,EACPvB,EAAE,GAAKwB,EACPxB,EAAE,GAAKyB,EACPzB,EAAE,GAAK0B,EACP1B,EAAE,GAAK2B,EACP3B,EAAE,GAAK4B,EACP5B,EAAE,GAAK6B,EACP7B,EAAE,GAAK8B,EACP9B,EAAE,GAAK+B,EACP/B,EAAE,IAAMgC,EACRhC,EAAE,IAAMiC,EACRjC,EAAE,IAAMkC,EACRlC,EAAE,IAAMmC,EACRnC,EAAE,IAAMoC,EACRpC,EAAE,IAAMqC,EAEZ,SAASgC,EAAOrE,EAAGF,GACfhD,EAAIkD,EAAGF,EAAGA,GAEd,SAASwE,EAAStE,EAAGjD,GACjB,MAAMkD,EAAId,IACV,IAAIW,EACJ,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAChBG,EAAEH,GAAK/C,EAAE+C,GAEb,IAAKA,EAAI,IAAKA,GAAK,EAAGA,IAClBuE,EAAOpE,EAAGA,GACA,IAANH,GAAiB,IAANA,GACXhD,EAAImD,EAAGA,EAAGlD,GAGlB,IAAK+C,EAAI,EAAGA,EAAI,GAAIA,IAChBE,EAAEF,GAAKG,EAAEH,GAmBjB,SAASyE,EAAMjE,EAAGC,GACd,MAAMT,EAAIX,IAAMqB,EAAIrB,IAAMc,EAAId,IAAM8B,EAAI9B,IAAMqF,EAAIrF,IAAMsF,EAAItF,IAAMuF,EAAIvF,IAAMwF,EAAIxF,IAAMsB,EAAItB,IAC1FkC,EAAIvB,EAAGQ,EAAE,GAAIA,EAAE,IACfe,EAAIZ,EAAGF,EAAE,GAAIA,EAAE,IACfzD,EAAIgD,EAAGA,EAAGW,GACVW,EAAIZ,EAAGF,EAAE,GAAIA,EAAE,IACfc,EAAIX,EAAGF,EAAE,GAAIA,EAAE,IACfzD,EAAI0D,EAAGA,EAAGC,GACV3D,EAAImD,EAAGK,EAAE,GAAIC,EAAE,IACfzD,EAAImD,EAAGA,EAAGR,GACV3C,EAAImE,EAAGX,EAAE,GAAIC,EAAE,IACfa,EAAIH,EAAGA,EAAGA,GACVI,EAAImD,EAAGhE,EAAGV,GACVuB,EAAIoD,EAAGxD,EAAGhB,GACVmB,EAAIsD,EAAGzD,EAAGhB,GACVmB,EAAIuD,EAAGnE,EAAGV,GACVhD,EAAIwD,EAAE,GAAIkE,EAAGC,GACb3H,EAAIwD,EAAE,GAAIqE,EAAGD,GACb5H,EAAIwD,EAAE,GAAIoE,EAAGD,GACb3H,EAAIwD,EAAE,GAAIkE,EAAGG,GAEjB,SAASC,EAAMtE,EAAGC,EAAGC,GACjB,IAAK,IAAIzD,EAAI,EAAGA,EAAI,EAAGA,IACnBsD,EAASC,EAAEvD,GAAIwD,EAAExD,GAAIyD,GAG7B,SAASqE,EAAKnK,EAAG4F,GACb,MAAMwE,EAAK3F,IAAM4F,EAAK5F,IAAM6F,EAAK7F,IACjCmF,EAASU,EAAI1E,EAAE,IACfxD,EAAIgI,EAAIxE,EAAE,GAAI0E,GACdlI,EAAIiI,EAAIzE,EAAE,GAAI0E,GACdtE,EAAUhG,EAAGqK,GACbrK,EAAE,KAAOyG,EAAS2D,IAAO,EAE7B,SAASG,EAAW3E,EAAGC,EAAG2E,GACtBrF,EAASS,EAAE,GAAIhB,GACfO,EAASS,EAAE,GAAIf,GACfM,EAASS,EAAE,GAAIf,GACfM,EAASS,EAAE,GAAIhB,GACf,IAAK,IAAIvC,EAAI,IAAKA,GAAK,IAAKA,EAAG,CAC3B,MAAMyD,EAAK0E,EAAGnI,EAAI,EAAK,KAAW,EAAJA,GAAU,EACxC6H,EAAMtE,EAAGC,EAAGC,GACZ+D,EAAMhE,EAAGD,GACTiE,EAAMjE,EAAGA,GACTsE,EAAMtE,EAAGC,EAAGC,IAGpB,SAAS2E,EAAW7E,EAAG4E,GACnB,MAAM3E,EAAI,CAACpB,IAAMA,IAAMA,IAAMA,KAC7BU,EAASU,EAAE,GAAIb,GACfG,EAASU,EAAE,GAAIZ,GACfE,EAASU,EAAE,GAAIhB,GACfzC,EAAIyD,EAAE,GAAIb,EAAGC,GACbsF,EAAW3E,EAAGC,EAAG2E,GAGrB,SAASvG,EAAwByG,GAC7B,GAAIA,EAAKxI,SAAWrC,EAAQqE,YACxB,MAAM,IAAIjC,MAAM,yBAAyBpC,EAAQqE,qBAErD,MAAMqC,KAAQhC,EAASoG,MAAMD,GAC7BnE,EAAE,IAAM,IACRA,EAAE,KAAO,IACTA,EAAE,KAAO,GACT,MAAMqE,EAAY,IAAIxK,WAAW,IAC3BwF,EAAI,CAACnB,IAAMA,IAAMA,IAAMA,KAC7BgG,EAAW7E,EAAGW,GACd4D,EAAKS,EAAWhF,GAChB,MAAMiF,EAAY,IAAIzK,WAAW,IAGjC,OAFAyK,EAAUC,IAAIJ,GACdG,EAAUC,IAAIF,EAAW,IAClB,CACHA,YACAC,aAGRhL,EAAQoE,wBAA0BA,EAOlCpE,EAAQmE,gBANR,SAAyB+G,GACrB,MAAML,KAAWpG,EAAS0G,aAAa,GAAID,GACrC5I,EAAS8B,EAAwByG,GAEvC,OAAM,EADFlG,EAAOyG,MAAMP,GACVvI,GASXtC,EAAQkE,8BANR,SAAuC8G,GACnC,GAAIA,EAAU3I,SAAWrC,EAAQsE,kBAC7B,MAAM,IAAIlC,MAAM,+BAA+BpC,EAAQsE,2BAE3D,OAAO,IAAI/D,WAAWyK,EAAUK,SAAS,MAG7C,MAAMC,EAAI,IAAIxG,aAAa,CACvB,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAClE,IAAM,IAAM,IAAM,GAAM,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,KAEzE,SAASyG,EAAKpL,EAAGqG,GACb,IAAIgF,EACAhJ,EACA8D,EACAmF,EACJ,IAAKjJ,EAAI,GAAIA,GAAK,KAAMA,EAAG,CAEvB,IADAgJ,EAAQ,EACHlF,EAAI9D,EAAI,GAAIiJ,EAAIjJ,EAAI,GAAI8D,EAAImF,IAAKnF,EAClCE,EAAEF,IAAMkF,EAAQ,GAAKhF,EAAEhE,GAAK8I,EAAEhF,GAAK9D,EAAI,KACvCgJ,EAAQ5F,KAAKC,OAAOW,EAAEF,GAAK,KAAO,KAClCE,EAAEF,IAAc,IAARkF,EAEZhF,EAAEF,IAAMkF,EACRhF,EAAEhE,GAAK,EAGX,IADAgJ,EAAQ,EACHlF,EAAI,EAAGA,EAAI,GAAIA,IAChBE,EAAEF,IAAMkF,GAAShF,EAAE,KAAO,GAAK8E,EAAEhF,GACjCkF,EAAQhF,EAAEF,IAAM,EAChBE,EAAEF,IAAM,IAEZ,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAChBE,EAAEF,IAAMkF,EAAQF,EAAEhF,GAEtB,IAAK9D,EAAI,EAAGA,EAAI,GAAIA,IAChBgE,EAAEhE,EAAI,IAAMgE,EAAEhE,IAAM,EACpBrC,EAAEqC,GAAY,IAAPgE,EAAEhE,GAGjB,SAASkJ,EAAOvL,GACZ,MAAMqG,EAAI,IAAI1B,aAAa,IAC3B,IAAK,IAAItC,EAAI,EAAGA,EAAI,GAAIA,IACpBgE,EAAEhE,GAAKrC,EAAEqC,GAEb,IAAK,IAAIA,EAAI,EAAGA,EAAI,GAAIA,IACpBrC,EAAEqC,GAAK,EAEX+I,EAAKpL,EAAGqG,GAsCZ,SAASmF,EAAUxL,EAAG4F,GAClB,MAAMG,EAAItB,IAAMgH,EAAMhH,IAAMiH,EAAMjH,IAAMkH,EAAMlH,IAAMmH,EAAOnH,IAAMoH,EAAOpH,IAAMqH,EAAOrH,IAwBrF,OAvBAU,EAASnF,EAAE,GAAI6E,GAxnBnB,SAAqBS,EAAGW,GACpB,IAAK,IAAI5D,EAAI,EAAGA,EAAI,GAAIA,IACpBiD,EAAEjD,GAAK4D,EAAE,EAAI5D,IAAM4D,EAAE,EAAI5D,EAAI,IAAM,GAEvCiD,EAAE,KAAO,MAqnBTyG,CAAY/L,EAAE,GAAI4F,GAClB+D,EAAO+B,EAAK1L,EAAE,IACdoC,EAAIuJ,EAAKD,EAAK5G,GACd6B,EAAI+E,EAAKA,EAAK1L,EAAE,IAChB0G,EAAIiF,EAAK3L,EAAE,GAAI2L,GACfhC,EAAOiC,EAAMD,GACbhC,EAAOkC,EAAMD,GACbxJ,EAAI0J,EAAMD,EAAMD,GAChBxJ,EAAI2D,EAAG+F,EAAMJ,GACbtJ,EAAI2D,EAAGA,EAAG4F,GAtMd,SAAiBrG,EAAGjD,GAChB,MAAMkD,EAAId,IACV,IAAIW,EACJ,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAChBG,EAAEH,GAAK/C,EAAE+C,GAEb,IAAKA,EAAI,IAAKA,GAAK,EAAGA,IAClBuE,EAAOpE,EAAGA,GACA,IAANH,GACAhD,EAAImD,EAAGA,EAAGlD,GAGlB,IAAK+C,EAAI,EAAGA,EAAI,GAAIA,IAChBE,EAAEF,GAAKG,EAAEH,GA0Lb4G,CAAQjG,EAAGA,GACX3D,EAAI2D,EAAGA,EAAG2F,GACVtJ,EAAI2D,EAAGA,EAAG4F,GACVvJ,EAAI2D,EAAGA,EAAG4F,GACVvJ,EAAIpC,EAAE,GAAI+F,EAAG4F,GACbhC,EAAO8B,EAAKzL,EAAE,IACdoC,EAAIqJ,EAAKA,EAAKE,GACVnF,EAASiF,EAAKC,IACdtJ,EAAIpC,EAAE,GAAIA,EAAE,GAAIkF,GAEpByE,EAAO8B,EAAKzL,EAAE,IACdoC,EAAIqJ,EAAKA,EAAKE,GACVnF,EAASiF,EAAKC,IACN,GAERjF,EAASzG,EAAE,MAAS4F,EAAE,KAAO,GAC7Be,EAAI3G,EAAE,GAAI4E,EAAK5E,EAAE,IAErBoC,EAAIpC,EAAE,GAAIA,EAAE,GAAIA,EAAE,IACX,GAjCXH,EAAQiE,KAlCR,SAAc+G,EAAWoB,GACrB,MAAM5F,EAAI,IAAI1B,aAAa,IACrBiB,EAAI,CAACnB,IAAMA,IAAMA,IAAMA,KACvB8B,KAAQhC,EAASoG,MAAME,EAAUK,SAAS,EAAG,KACnD3E,EAAE,IAAM,IACRA,EAAE,KAAO,IACTA,EAAE,KAAO,GACT,MAAM2F,EAAY,IAAI9L,WAAW,IACjC8L,EAAUpB,IAAIvE,EAAE2E,SAAS,IAAK,IAC9B,MAAMiB,EAAK,IAAI5H,EAAS6H,OACxBD,EAAGE,OAAOH,EAAUhB,SAAS,KAC7BiB,EAAGE,OAAOJ,GACV,MAAMjM,EAAImM,EAAGG,SACbH,EAAGI,QACHhB,EAAOvL,GACPyK,EAAW7E,EAAG5F,GACdmK,EAAK+B,EAAWtG,GAChBuG,EAAGK,QACHL,EAAGE,OAAOH,EAAUhB,SAAS,EAAG,KAChCiB,EAAGE,OAAOxB,EAAUK,SAAS,KAC7BiB,EAAGE,OAAOJ,GACV,MAAMhC,EAAIkC,EAAGG,SACbf,EAAOtB,GACP,IAAK,IAAI5H,EAAI,EAAGA,EAAI,GAAIA,IACpBgE,EAAEhE,GAAKrC,EAAEqC,GAEb,IAAK,IAAIA,EAAI,EAAGA,EAAI,GAAIA,IACpB,IAAK,IAAI8D,EAAI,EAAGA,EAAI,GAAIA,IACpBE,EAAEhE,EAAI8D,IAAM8D,EAAE5H,GAAKkE,EAAEJ,GAI7B,OADAiF,EAAKc,EAAUhB,SAAS,IAAK7E,GACtB6F,GA8DXrM,EAAQgE,OAzBR,SAAgB+G,EAAWqB,EAASC,GAChC,MAAMnG,EAAI,IAAI3F,WAAW,IACnBwF,EAAI,CAACnB,IAAMA,IAAMA,IAAMA,KACvBoB,EAAI,CAACpB,IAAMA,IAAMA,IAAMA,KAC7B,GAAIyH,EAAUhK,SAAWrC,EAAQwE,iBAC7B,MAAM,IAAIpC,MAAM,8BAA8BpC,EAAQwE,0BAE1D,GAAImH,EAAU3F,EAAG+E,GACb,OAAM,EAEV,MAAMuB,EAAK,IAAI5H,EAAS6H,OACxBD,EAAGE,OAAOH,EAAUhB,SAAS,EAAG,KAChCiB,EAAGE,OAAOzB,GACVuB,EAAGE,OAAOJ,GACV,MAAMhC,EAAIkC,EAAGG,SAMb,OALAf,EAAOtB,GACPM,EAAW3E,EAAGC,EAAGoE,GACjBQ,EAAW5E,EAAGqG,EAAUhB,SAAS,KACjCrB,EAAMjE,EAAGC,GACTsE,EAAKpE,EAAGH,IACJQ,EAAS8F,EAAWnG,IA4B5BlG,EAAQ+D,yBAjBR,SAAkCgH,GAC9B,IAAI/E,EAAI,CAACpB,IAAMA,IAAMA,IAAMA,KAC3B,GAAI+G,EAAU3F,EAAG+E,GACb,MAAM,IAAI3I,MAAM,+BAGpB,IAAImD,EAAIX,IACJqB,EAAIrB,IACJ6B,EAAIT,EAAE,GACVa,EAAItB,EAAGP,EAAKyB,GACZK,EAAIb,EAAGjB,EAAKyB,GACZsD,EAAS9D,EAAGA,GACZ1D,EAAIgD,EAAGA,EAAGU,GACV,IAAI2G,EAAI,IAAIrM,WAAW,IAEvB,OADA4F,EAAUyG,EAAGrH,GACNqH,GAeX5M,EAAQ8D,yBATR,SAAkCkH,GAC9B,MAAMtE,KAAQhC,EAASoG,MAAME,EAAUK,SAAS,EAAG,KACnD3E,EAAE,IAAM,IACRA,EAAE,KAAO,IACTA,EAAE,KAAO,GACT,MAAMjB,EAAI,IAAIlF,WAAWmG,EAAE2E,SAAS,EAAG,KAEvC,OAAM,EADF1G,EAAOyG,MAAM1E,GACVjB,I,kCCz0BX3F,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAMA,IAIrD,IAAI4M,EAAW1M,EAAQ,SACnBwE,EAASxE,EAAQ,QAKrB,SAAS2M,EAAKzM,EAAK0M,EAAOC,GAiCtB,IAhCA,IAAIC,EAAK,WACLC,EAAK,UACLC,EAAK,WACLC,EAAK,WACLC,EAAML,EAAI,IAAM,GAAOA,EAAI,IAAM,GAAOA,EAAI,IAAM,EAAKA,EAAI,GAC3DM,EAAMN,EAAI,IAAM,GAAOA,EAAI,IAAM,GAAOA,EAAI,IAAM,EAAKA,EAAI,GAC3DO,EAAMP,EAAI,KAAO,GAAOA,EAAI,KAAO,GAAOA,EAAI,IAAM,EAAKA,EAAI,GAC7DQ,EAAMR,EAAI,KAAO,GAAOA,EAAI,KAAO,GAAOA,EAAI,KAAO,EAAKA,EAAI,IAC9DS,EAAMT,EAAI,KAAO,GAAOA,EAAI,KAAO,GAAOA,EAAI,KAAO,EAAKA,EAAI,IAC9DU,EAAMV,EAAI,KAAO,GAAOA,EAAI,KAAO,GAAOA,EAAI,KAAO,EAAKA,EAAI,IAC9DW,EAAOX,EAAI,KAAO,GAAOA,EAAI,KAAO,GAAOA,EAAI,KAAO,EAAKA,EAAI,IAC/DY,EAAOZ,EAAI,KAAO,GAAOA,EAAI,KAAO,GAAOA,EAAI,KAAO,EAAKA,EAAI,IAC/Da,EAAOd,EAAM,IAAM,GAAOA,EAAM,IAAM,GAAOA,EAAM,IAAM,EAAKA,EAAM,GACpEe,EAAOf,EAAM,IAAM,GAAOA,EAAM,IAAM,GAAOA,EAAM,IAAM,EAAKA,EAAM,GACpEgB,EAAOhB,EAAM,KAAO,GAAOA,EAAM,KAAO,GAAOA,EAAM,IAAM,EAAKA,EAAM,GACtEiB,EAAOjB,EAAM,KAAO,GAAOA,EAAM,KAAO,GAAOA,EAAM,KAAO,EAAKA,EAAM,IACvEkB,EAAKhB,EACLiB,EAAKhB,EACLiB,EAAKhB,EACLiB,EAAKhB,EACLiB,EAAKhB,EACLiB,EAAKhB,EACLiB,EAAKhB,EACLiB,EAAKhB,EACLiB,EAAKhB,EACLiB,EAAKhB,EACLiB,EAAMhB,EACNiB,EAAMhB,EACNiB,EAAMhB,EACNiB,EAAMhB,EACNiB,EAAMhB,EACNiB,EAAMhB,EACDxL,EAAI,EAAGA,EApCP,GAoCmBA,GAAK,EAM7B6L,GADAA,GADAI,EAAKA,GADLI,GADAA,GADAZ,EAAKA,EAAKI,EAAK,KAED,GAAYQ,GAAO,IACjB,KAEJ,GAAYR,GAAM,GAM9BC,GADAA,GADAI,EAAKA,GADLI,GADAA,GADAZ,EAAKA,EAAKI,EAAK,KAED,GAAYQ,GAAO,IACjB,KAEJ,GAAYR,GAAM,GAM9BC,GADAA,GADAI,EAAMA,GADNI,GADAA,GADAZ,EAAKA,EAAKI,EAAK,KAED,GAAYQ,GAAO,IACf,KAEN,GAAYR,GAAM,GAM9BC,GADAA,GADAI,EAAMA,GADNI,GADAA,GADAZ,EAAKA,EAAKI,EAAK,KAED,GAAYQ,GAAO,IACf,KAEN,GAAYR,GAAM,GAM9BD,GADAA,GADAI,EAAMA,GADNI,GADAA,GADAZ,EAAKA,EAAKI,EAAK,KAED,GAAWQ,GAAO,GACd,KAEN,GAAWR,GAAM,EAM7BC,GADAA,GADAI,EAAMA,GADNI,GADAA,GADAZ,EAAKA,EAAKI,EAAK,KAED,GAAWQ,GAAO,GACd,KAEN,GAAWR,GAAM,EAM7BF,GADAA,GADAI,EAAKA,GADLI,GADAA,GADAZ,EAAKA,EAAKI,EAAK,KAED,GAAWQ,GAAO,GAChB,KAEJ,GAAWR,GAAM,EAM7BD,GADAA,GADAI,EAAKA,GADLI,GADAA,GADAZ,EAAKA,EAAKI,EAAK,KAED,GAAWQ,GAAO,GAChB,KAEJ,GAAWR,GAAM,EAM7BC,GADAA,GADAK,EAAMA,GADNK,GADAA,GADAf,EAAKA,EAAKK,EAAK,KAED,GAAYU,GAAO,IACf,KAEN,GAAYV,GAAM,GAM9BC,GADAA,GADAK,EAAMA,GADNC,GADAA,GADAX,EAAKA,EAAKK,EAAK,KAED,GAAYM,GAAO,IACf,KAEN,GAAYN,GAAM,GAM9BC,GADAA,GADAC,EAAKA,GADLK,GADAA,GADAX,EAAKA,EAAKK,EAAK,KAED,GAAYM,GAAO,IACjB,KAEJ,GAAYN,GAAM,GAM9BH,GADAA,GADAK,EAAKA,GADLK,GADAA,GADAX,EAAKA,EAAKC,EAAK,KAED,GAAYU,GAAO,IACjB,KAEJ,GAAYV,GAAM,GAM9BG,GADAA,GADAC,EAAKA,GADLK,GADAA,GADAX,EAAKA,EAAKK,EAAK,KAED,GAAWM,GAAO,GAChB,KAEJ,GAAWN,GAAM,EAM7BH,GADAA,GADAK,EAAKA,GADLK,GADAA,GADAX,EAAKA,EAAKC,EAAK,KAED,GAAWU,GAAO,GAChB,KAEJ,GAAWV,GAAM,EAM7BE,GADAA,GADAK,EAAMA,GADNC,GADAA,GADAX,EAAKA,EAAKK,EAAK,KAED,GAAWM,GAAO,GACd,KAEN,GAAWN,GAAM,EAM7BD,GADAA,GADAK,EAAMA,GADNK,GADAA,GADAf,EAAKA,EAAKK,EAAK,KAED,GAAWU,GAAO,GACd,KAEN,GAAWV,GAAM,EAEjCzB,EAAS9L,cAAckN,EAAKhB,EAAK,EAAG5M,EAAK,GACzCwM,EAAS9L,cAAcmN,EAAKhB,EAAK,EAAG7M,EAAK,GACzCwM,EAAS9L,cAAcoN,EAAKhB,EAAK,EAAG9M,EAAK,GACzCwM,EAAS9L,cAAcqN,EAAKhB,EAAK,EAAG/M,EAAK,IACzCwM,EAAS9L,cAAcsN,EAAKhB,EAAK,EAAGhN,EAAK,IACzCwM,EAAS9L,cAAcuN,EAAKhB,EAAK,EAAGjN,EAAK,IACzCwM,EAAS9L,cAAcwN,EAAKhB,EAAK,EAAGlN,EAAK,IACzCwM,EAAS9L,cAAcyN,EAAKhB,EAAK,EAAGnN,EAAK,IACzCwM,EAAS9L,cAAc0N,EAAKhB,EAAK,EAAGpN,EAAK,IACzCwM,EAAS9L,cAAc2N,EAAKhB,EAAK,EAAGrN,EAAK,IACzCwM,EAAS9L,cAAc4N,EAAMhB,EAAM,EAAGtN,EAAK,IAC3CwM,EAAS9L,cAAc6N,EAAMhB,EAAM,EAAGvN,EAAK,IAC3CwM,EAAS9L,cAAc8N,EAAMhB,EAAM,EAAGxN,EAAK,IAC3CwM,EAAS9L,cAAc+N,EAAMhB,EAAM,EAAGzN,EAAK,IAC3CwM,EAAS9L,cAAcgO,EAAMhB,EAAM,EAAG1N,EAAK,IAC3CwM,EAAS9L,cAAciO,EAAMhB,EAAM,EAAG3N,EAAK,IAyB/C,SAAS4O,EAAUjC,EAAKkC,EAAOC,EAAKC,EAAKC,GAGrC,YAFIA,IAAwCA,EAA4B,GAErD,KAAfrC,EAAI3K,OACJ,MAAM,IAAID,MAAM,qCAEpB,GAAIgN,EAAI/M,OAAS8M,EAAI9M,OACjB,MAAM,IAAID,MAAM,8CAEpB,IAAIkN,EACAC,EACJ,GAAkC,IAA9BF,EAAiC,CACjC,GAAqB,IAAjBH,EAAM7M,QAAiC,KAAjB6M,EAAM7M,OAC5B,MAAM,IAAID,MAAM,sCAIpBmN,GAFAD,EAAK,IAAI/O,WAAW,KAED8B,OAAS6M,EAAM7M,OAElCiN,EAAGrE,IAAIiE,EAAOK,OAEb,CACD,GAAqB,KAAjBL,EAAM7M,OACN,MAAM,IAAID,MAAM,8CAGpBkN,EAAKJ,EACLK,EAAgBF,EAIpB,IADA,IAAIG,EAAQ,IAAIjP,WAAW,IAClBiC,EAAI,EAAGA,EAAI2M,EAAI9M,OAAQG,GAAK,GAAI,CAErCsK,EAAK0C,EAAOF,EAAItC,GAEhB,IAAK,IAAI1G,EAAI9D,EAAG8D,EAAI9D,EAAI,IAAM8D,EAAI6I,EAAI9M,OAAQiE,IAC1C8I,EAAI9I,GAAK6I,EAAI7I,GAAKkJ,EAAMlJ,EAAI9D,GAGhCiN,EAAiBH,EAAI,EAAGC,GAQ5B,OALA5K,EAAOyG,KAAKoE,GACsB,IAA9BH,GAEA1K,EAAOyG,KAAKkE,GAETF,EAoBX,SAASK,EAAiBC,EAASC,EAAKC,GAEpC,IADA,IAAIpE,EAAQ,EACLoE,KACHpE,EAAQA,GAAwB,IAAfkE,EAAQC,IAAe,EACxCD,EAAQC,GAAe,IAARnE,EACfA,KAAW,EACXmE,IAEJ,GAAInE,EAAQ,EACR,MAAM,IAAIpJ,MAAM,4BA3BxBpC,EAAQiP,UAAYA,EAiBpBjP,EAAQ6P,OALR,SAAgB7C,EAAKkC,EAAOE,EAAKC,GAG7B,YAAO,IAFHA,IAAwCA,EAA4B,GACxE1K,EAAOyG,KAAKgE,GACLH,EAAUjC,EAAKkC,EAAOE,EAAKA,EAAKC,K,oCCrP3CvP,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAMA,IAIrD,IAAI6P,EAAS3P,EAAQ,QACjB4P,EAAkB5P,EAAQ,QAC1BwE,EAASxE,EAAQ,QAIjB6P,EAAsB,WAItB,SAASA,EAAKlF,EAAMkC,GAChBiD,KAAKC,aAELD,KAAKE,OAAS,IAAIrF,EAClBmF,KAAKG,OAAS,IAAItF,EAGlBmF,KAAKI,UAAYJ,KAAKG,OAAOC,UAC7BJ,KAAKK,aAAeL,KAAKG,OAAOE,aAEhC,IAAIC,EAAM,IAAIhQ,WAAW0P,KAAKI,WAC1BrD,EAAI3K,OAAS4N,KAAKI,UAGlBJ,KAAKE,OAAO3D,OAAOQ,GAAKwD,OAAOD,GAAK7D,QAIpC6D,EAAItF,IAAI+B,GAKZ,IAAK,IAAIxK,EAAI,EAAGA,EAAI+N,EAAIlO,OAAQG,IAC5B+N,EAAI/N,IAAM,GAOd,IAJAyN,KAAKE,OAAO3D,OAAO+D,GAIV/N,EAAI,EAAGA,EAAI+N,EAAIlO,OAAQG,IAC5B+N,EAAI/N,IAAM,IAGdyN,KAAKG,OAAO5D,OAAO+D,GAIfT,EAAOW,mBAAmBR,KAAKE,SAAWL,EAAOW,mBAAmBR,KAAKG,UACzEH,KAAKS,iBAAmBT,KAAKE,OAAOQ,YACpCV,KAAKW,iBAAmBX,KAAKG,OAAOO,aAGxChM,EAAOyG,KAAKmF,GAwFhB,OAjFAP,EAAKa,UAAUlE,MAAQ,WACnB,IAAKmD,EAAOW,mBAAmBR,KAAKE,UAAYL,EAAOW,mBAAmBR,KAAKG,QAC3E,MAAM,IAAIhO,MAAM,qEAMpB,OAHA6N,KAAKE,OAAOW,aAAab,KAAKS,kBAC9BT,KAAKG,OAAOU,aAAab,KAAKW,kBAC9BX,KAAKC,aACED,MAKXD,EAAKa,UAAUnE,MAAQ,WACfoD,EAAOW,mBAAmBR,KAAKE,SAC/BF,KAAKE,OAAOY,gBAAgBd,KAAKS,kBAEjCZ,EAAOW,mBAAmBR,KAAKG,SAC/BH,KAAKG,OAAOW,gBAAgBd,KAAKW,kBAErCX,KAAKE,OAAOzD,QACZuD,KAAKG,OAAO1D,SAKhBsD,EAAKa,UAAUrE,OAAS,SAAUwE,GAE9B,OADAf,KAAKE,OAAO3D,OAAOwE,GACZf,MAKXD,EAAKa,UAAUL,OAAS,SAAUnQ,GAC9B,OAAI4P,KAAKC,WAILD,KAAKG,OAAOI,OAAOnQ,GACZ4P,OAGXA,KAAKE,OAAOK,OAAOnQ,GAEnB4P,KAAKG,OAAO5D,OAAOnM,EAAIgL,SAAS,EAAG4E,KAAKK,eAAeE,OAAOnQ,GAC9D4P,KAAKC,aACED,OAKXD,EAAKa,UAAUpE,OAAS,WACpB,IAAIpM,EAAM,IAAIE,WAAW0P,KAAKK,cAE9B,OADAL,KAAKO,OAAOnQ,GACLA,GAMX2P,EAAKa,UAAUF,UAAY,WACvB,IAAKb,EAAOW,mBAAmBR,KAAKE,QAChC,MAAM,IAAI/N,MAAM,6DAEpB,OAAO6N,KAAKE,OAAOQ,aAEvBX,EAAKa,UAAUC,aAAe,SAAUG,GACpC,IAAKnB,EAAOW,mBAAmBR,KAAKE,UAAYL,EAAOW,mBAAmBR,KAAKG,QAC3E,MAAM,IAAIhO,MAAM,gEAKpB,OAHA6N,KAAKE,OAAOW,aAAaG,GACzBhB,KAAKG,OAAOU,aAAab,KAAKW,kBAC9BX,KAAKC,aACED,MAEXD,EAAKa,UAAUE,gBAAkB,SAAUE,GACvC,IAAKnB,EAAOW,mBAAmBR,KAAKE,QAChC,MAAM,IAAI/N,MAAM,mEAEpB6N,KAAKE,OAAOY,gBAAgBE,IAEzBjB,EAxIe,GA0I1BhQ,EAAQgQ,KAAOA,EAWfhQ,EAAQkR,KAPR,SAAcpG,EAAMkC,EAAKgE,GACrB,IAAI5G,EAAI,IAAI4F,EAAKlF,EAAMkC,GACvB5C,EAAEoC,OAAOwE,GACT,IAAIvE,EAASrC,EAAEqC,SAEf,OADArC,EAAEsC,QACKD,GAeXzM,EAAQmR,MAAQpB,EAAgBoB,O,oCC3IhC,SAASC,EAAQ7L,EAAGU,GAChB,GAAIV,EAAElD,SAAW4D,EAAE5D,OACf,OAAO,EAGX,IADA,IAAIC,EAAS,EACJE,EAAI,EAAGA,EAAI+C,EAAElD,OAAQG,IAC1BF,GAAUiD,EAAE/C,GAAKyD,EAAEzD,GAEvB,OAAQ,EAAMF,EAAS,IAAO,EAzClCxC,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAMA,IAiBrDD,EAAQqR,OAHR,SAAgBC,EAASC,EAAaC,GAClC,QAAUF,EAAU,GAAKC,EAAiBD,EAAU,EAAKE,GAU7DxR,EAAQyR,YAHR,SAAqBlM,EAAGU,GACpB,OAAc,EAAJV,IAAc,EAAJU,GAAS,IAAO,GAAM,GAoB9CjG,EAAQoR,QAAUA,EAclBpR,EAAQmR,MANR,SAAe5L,EAAGU,GACd,OAAiB,IAAbV,EAAElD,QAA6B,IAAb4D,EAAE5D,QAGC,IAAlB+O,EAAQ7L,EAAGU,K,kCCvDtBnG,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAMA,IAIrD,IAAI8P,EAAkB5P,EAAQ,QAC1BwE,EAASxE,EAAQ,QACrBH,EAAQ0R,cAAgB,GAUxB,IAAIC,EAA0B,WAC1B,SAASA,EAAS3E,GACdiD,KAAKK,aAAetQ,EAAQ0R,cAC5BzB,KAAK2B,QAAU,IAAIrR,WAAW,IAC9B0P,KAAK4B,GAAK,IAAIC,YAAY,IAC1B7B,KAAK8B,GAAK,IAAID,YAAY,IAC1B7B,KAAK+B,KAAO,IAAIF,YAAY,GAC5B7B,KAAKgC,UAAY,EACjBhC,KAAKiC,KAAO,EACZjC,KAAKC,aACL,IAAInJ,EAAKiG,EAAI,GAAKA,EAAI,IAAM,EAC5BiD,KAAK4B,GAAG,GAAY,KAAP,EACb,IAAI7K,EAAKgG,EAAI,GAAKA,EAAI,IAAM,EAC5BiD,KAAK4B,GAAG,GAAiC,MAA1B9K,IAAO,GAAOC,GAAM,GACnC,IAAIC,EAAK+F,EAAI,GAAKA,EAAI,IAAM,EAC5BiD,KAAK4B,GAAG,GAAiC,MAA1B7K,IAAO,GAAOC,GAAM,GACnC,IAAIC,EAAK8F,EAAI,GAAKA,EAAI,IAAM,EAC5BiD,KAAK4B,GAAG,GAAgC,MAAzB5K,IAAO,EAAMC,GAAM,GAClC,IAAIC,EAAK6F,EAAI,GAAKA,EAAI,IAAM,EAC5BiD,KAAK4B,GAAG,GAAiC,KAA1B3K,IAAO,EAAMC,GAAM,IAClC8I,KAAK4B,GAAG,GAAO1K,IAAO,EAAM,KAC5B,IAAIC,EAAK4F,EAAI,IAAMA,EAAI,KAAO,EAC9BiD,KAAK4B,GAAG,GAAiC,MAA1B1K,IAAO,GAAOC,GAAM,GACnC,IAAIC,EAAK2F,EAAI,IAAMA,EAAI,KAAO,EAC9BiD,KAAK4B,GAAG,GAAiC,MAA1BzK,IAAO,GAAOC,GAAM,GACnC,IAAIC,EAAK0F,EAAI,IAAMA,EAAI,KAAO,EAC9BiD,KAAK4B,GAAG,GAAgC,MAAzBxK,IAAO,EAAMC,GAAM,GAClC2I,KAAK4B,GAAG,GAAOvK,IAAO,EAAM,IAC5B2I,KAAK+B,KAAK,GAAKhF,EAAI,IAAMA,EAAI,KAAO,EACpCiD,KAAK+B,KAAK,GAAKhF,EAAI,IAAMA,EAAI,KAAO,EACpCiD,KAAK+B,KAAK,GAAKhF,EAAI,IAAMA,EAAI,KAAO,EACpCiD,KAAK+B,KAAK,GAAKhF,EAAI,IAAMA,EAAI,KAAO,EACpCiD,KAAK+B,KAAK,GAAKhF,EAAI,IAAMA,EAAI,KAAO,EACpCiD,KAAK+B,KAAK,GAAKhF,EAAI,IAAMA,EAAI,KAAO,EACpCiD,KAAK+B,KAAK,GAAKhF,EAAI,IAAMA,EAAI,KAAO,EACpCiD,KAAK+B,KAAK,GAAKhF,EAAI,IAAMA,EAAI,KAAO,EAoVxC,OAlVA2E,EAASd,UAAUsB,QAAU,SAAU9L,EAAG+L,EAAMC,GAI5C,IAHA,IAAIC,EAAQrC,KAAKiC,KAAO,EAAI,KACxBK,EAAKtC,KAAK8B,GAAG,GAAIS,EAAKvC,KAAK8B,GAAG,GAAIU,EAAKxC,KAAK8B,GAAG,GAAIW,EAAKzC,KAAK8B,GAAG,GAAIY,EAAK1C,KAAK8B,GAAG,GAAIa,EAAK3C,KAAK8B,GAAG,GAAIc,EAAK5C,KAAK8B,GAAG,GAAIe,EAAK7C,KAAK8B,GAAG,GAAIgB,EAAK9C,KAAK8B,GAAG,GAAIiB,EAAK/C,KAAK8B,GAAG,GACtKkB,EAAKhD,KAAK4B,GAAG,GAAIqB,EAAKjD,KAAK4B,GAAG,GAAIsB,EAAKlD,KAAK4B,GAAG,GAAIuB,EAAKnD,KAAK4B,GAAG,GAAIwB,EAAKpD,KAAK4B,GAAG,GAAIyB,EAAKrD,KAAK4B,GAAG,GAAI0B,EAAKtD,KAAK4B,GAAG,GAAI2B,EAAKvD,KAAK4B,GAAG,GAAI4B,EAAKxD,KAAK4B,GAAG,GAAI6B,EAAKzD,KAAK4B,GAAG,GACnKQ,GAAS,IAAI,CAChB,IAAItL,EAAKV,EAAE+L,EAAO,GAAK/L,EAAE+L,EAAO,IAAM,EACtCG,GAAa,KAAP,EACN,IAAIvL,EAAKX,EAAE+L,EAAO,GAAK/L,EAAE+L,EAAO,IAAM,EACtCI,GAAkC,MAA1BzL,IAAO,GAAOC,GAAM,GAC5B,IAAIC,EAAKZ,EAAE+L,EAAO,GAAK/L,EAAE+L,EAAO,IAAM,EACtCK,GAAkC,MAA1BzL,IAAO,GAAOC,GAAM,GAC5B,IAAIC,EAAKb,EAAE+L,EAAO,GAAK/L,EAAE+L,EAAO,IAAM,EACtCM,GAAiC,MAAzBzL,IAAO,EAAMC,GAAM,GAC3B,IAAIC,EAAKd,EAAE+L,EAAO,GAAK/L,EAAE+L,EAAO,IAAM,EACtCO,GAAkC,MAA1BzL,IAAO,EAAMC,GAAM,IAC3ByL,GAAQzL,IAAO,EAAM,KACrB,IAAIC,EAAKf,EAAE+L,EAAO,IAAM/L,EAAE+L,EAAO,KAAO,EACxCS,GAAkC,MAA1B1L,IAAO,GAAOC,GAAM,GAC5B,IAAIC,EAAKhB,EAAE+L,EAAO,IAAM/L,EAAE+L,EAAO,KAAO,EACxCU,GAAkC,MAA1B1L,IAAO,GAAOC,GAAM,GAC5B,IAAIC,EAAKjB,EAAE+L,EAAO,IAAM/L,EAAE+L,EAAO,KAAO,EAGpC1M,EAAI,EACJiO,EAAKjO,EACTiO,GAAMpB,EAAKU,EACXU,GAAMnB,GAAM,EAAIkB,GAChBC,GAAMlB,GAAM,EAAIgB,GAChBE,GAAMjB,GAAM,EAAIc,GAEhB9N,GADAiO,GAAMhB,GAAM,EAAIY,MACJ,GACZI,GAAM,KACNA,GAAMf,GAAM,EAAIU,GAChBK,GAAMd,GAAM,EAAIQ,GAChBM,GAAMb,GAAM,EAAIM,GAChBO,IAdAZ,GAAiC,MAAzB1L,IAAO,EAAMC,GAAM,KAcf,EAAI6L,GAIhB,IAAIS,EAFJlO,IADAiO,IAdAX,GAAQ1L,IAAO,EAAMgL,IAcT,EAAIY,MACH,GAGbU,GAAMrB,EAAKW,EACXU,GAAMpB,EAAKS,EACXW,GAAMnB,GAAM,EAAIiB,GAChBE,GAAMlB,GAAM,EAAIe,GAEhB/N,GADAkO,GAAMjB,GAAM,EAAIa,MACJ,GACZI,GAAM,KACNA,GAAMhB,GAAM,EAAIW,GAChBK,GAAMf,GAAM,EAAIS,GAChBM,GAAMd,GAAM,EAAIO,GAChBO,GAAMb,GAAM,EAAIK,GAEhB1N,IADAkO,GAAMZ,GAAM,EAAIG,MACH,GACbS,GAAM,KACN,IAAIC,EAAKnO,EACTmO,GAAMtB,EAAKY,EACXU,GAAMrB,EAAKU,EACXW,GAAMpB,EAAKQ,EACXY,GAAMnB,GAAM,EAAIgB,GAEhBhO,GADAmO,GAAMlB,GAAM,EAAIc,MACJ,GACZI,GAAM,KACNA,GAAMjB,GAAM,EAAIY,GAChBK,GAAMhB,GAAM,EAAIU,GAChBM,GAAMf,GAAM,EAAIQ,GAChBO,GAAMd,GAAM,EAAIM,GAIhB,IAAIS,EAFJpO,IADAmO,GAAMb,GAAM,EAAII,MACH,GAGbU,GAAMvB,EAAKa,EACXU,GAAMtB,EAAKW,EACXW,GAAMrB,EAAKS,EACXY,GAAMpB,EAAKO,EAEXvN,GADAoO,GAAMnB,GAAM,EAAIe,MACJ,GACZI,GAAM,KACNA,GAAMlB,GAAM,EAAIa,GAChBK,GAAMjB,GAAM,EAAIW,GAChBM,GAAMhB,GAAM,EAAIS,GAChBO,GAAMf,GAAM,EAAIO,GAIhB,IAAIS,EAFJrO,IADAoO,GAAMd,GAAM,EAAIK,MACH,GAGbU,GAAMxB,EAAKc,EACXU,GAAMvB,EAAKY,EACXW,GAAMtB,EAAKU,EACXY,GAAMrB,EAAKQ,EAEXxN,GADAqO,GAAMpB,EAAKM,KACC,GACZc,GAAM,KACNA,GAAMnB,GAAM,EAAIc,GAChBK,GAAMlB,GAAM,EAAIY,GAChBM,GAAMjB,GAAM,EAAIU,GAChBO,GAAMhB,GAAM,EAAIQ,GAIhB,IAAIS,EAFJtO,IADAqO,GAAMf,GAAM,EAAIM,MACH,GAGbU,GAAMzB,EAAKe,EACXU,GAAMxB,EAAKa,EACXW,GAAMvB,EAAKW,EACXY,GAAMtB,EAAKS,EAEXzN,GADAsO,GAAMrB,EAAKO,KACC,GACZc,GAAM,KACNA,GAAMpB,EAAKK,EACXe,GAAMnB,GAAM,EAAIa,GAChBM,GAAMlB,GAAM,EAAIW,GAChBO,GAAMjB,GAAM,EAAIS,GAIhB,IAAIS,EAFJvO,IADAsO,GAAMhB,GAAM,EAAIO,MACH,GAGbU,GAAM1B,EAAKgB,EACXU,GAAMzB,EAAKc,EACXW,GAAMxB,EAAKY,EACXY,GAAMvB,EAAKU,EAEX1N,GADAuO,GAAMtB,EAAKQ,KACC,GACZc,GAAM,KACNA,GAAMrB,EAAKM,EACXe,GAAMpB,EAAKI,EACXgB,GAAMnB,GAAM,EAAIY,GAChBO,GAAMlB,GAAM,EAAIU,GAIhB,IAAIS,EAFJxO,IADAuO,GAAMjB,GAAM,EAAIQ,MACH,GAGbU,GAAM3B,EAAKiB,EACXU,GAAM1B,EAAKe,EACXW,GAAMzB,EAAKa,EACXY,GAAMxB,EAAKW,EAEX3N,GADAwO,GAAMvB,EAAKS,KACC,GACZc,GAAM,KACNA,GAAMtB,EAAKO,EACXe,GAAMrB,EAAKK,EACXgB,GAAMpB,EAAKG,EACXiB,GAAMnB,GAAM,EAAIW,GAIhB,IAAIS,EAFJzO,IADAwO,GAAMlB,GAAM,EAAIS,MACH,GAGbU,GAAM5B,EAAKkB,EACXU,GAAM3B,EAAKgB,EACXW,GAAM1B,EAAKc,EACXY,GAAMzB,EAAKY,EAEX5N,GADAyO,GAAMxB,EAAKU,KACC,GACZc,GAAM,KACNA,GAAMvB,EAAKQ,EACXe,GAAMtB,EAAKM,EACXgB,GAAMrB,EAAKI,EACXiB,GAAMpB,EAAKE,EAIX,IAAImB,EAFJ1O,IADAyO,GAAMnB,GAAM,EAAIU,MACH,GAGbU,GAAM7B,EAAKmB,EACXU,GAAM5B,EAAKiB,EACXW,GAAM3B,EAAKe,EACXY,GAAM1B,EAAKa,EAEX7N,GADA0O,GAAMzB,EAAKW,KACC,GACZc,GAAM,KACNA,GAAMxB,EAAKS,EACXe,GAAMvB,EAAKO,EACXgB,GAAMtB,EAAKK,EACXiB,GAAMrB,EAAKG,EASXX,EAHAoB,EAAS,MADTjO,GADAA,IAFAA,IADA0O,GAAMpB,EAAKC,KACE,KAED,GAAKvN,EAAM,IAxIvBiO,GAAM,MAyIS,GAKfnB,EAFAoB,GADAlO,KAAW,GAIX+M,EAjHAoB,GAAM,KAkHNnB,EAnGAoB,GAAM,KAoGNnB,EArFAoB,GAAM,KAsFNnB,EAvEAoB,GAAM,KAwENnB,EAzDAoB,GAAM,KA0DNnB,EA3CAoB,GAAM,KA4CNnB,EA7BAoB,GAAM,KA8BNnB,EAfAoB,GAAM,KAgBNhC,GAAQ,GACRC,GAAS,GAEbpC,KAAK8B,GAAG,GAAKQ,EACbtC,KAAK8B,GAAG,GAAKS,EACbvC,KAAK8B,GAAG,GAAKU,EACbxC,KAAK8B,GAAG,GAAKW,EACbzC,KAAK8B,GAAG,GAAKY,EACb1C,KAAK8B,GAAG,GAAKa,EACb3C,KAAK8B,GAAG,GAAKc,EACb5C,KAAK8B,GAAG,GAAKe,EACb7C,KAAK8B,GAAG,GAAKgB,EACb9C,KAAK8B,GAAG,GAAKiB,GAEjBrB,EAASd,UAAUL,OAAS,SAAU6D,EAAKC,YACnCA,IAAqBA,EAAS,GAClC,IACI5O,EACA6O,EACArK,EACA1H,EAJA2H,EAAI,IAAI2H,YAAY,IAKxB,GAAI7B,KAAKgC,UAAW,CAGhB,IAFAzP,EAAIyN,KAAKgC,UACThC,KAAK2B,QAAQpP,KAAO,EACbA,EAAI,GAAIA,IACXyN,KAAK2B,QAAQpP,GAAK,EAEtByN,KAAKiC,KAAO,EACZjC,KAAKkC,QAAQlC,KAAK2B,QAAS,EAAG,IAIlC,IAFAlM,EAAIuK,KAAK8B,GAAG,KAAO,GACnB9B,KAAK8B,GAAG,IAAM,KACTvP,EAAI,EAAGA,EAAI,GAAIA,IAChByN,KAAK8B,GAAGvP,IAAMkD,EACdA,EAAIuK,KAAK8B,GAAGvP,KAAO,GACnByN,KAAK8B,GAAGvP,IAAM,KAYlB,IAVAyN,KAAK8B,GAAG,IAAW,EAAJrM,EACfA,EAAIuK,KAAK8B,GAAG,KAAO,GACnB9B,KAAK8B,GAAG,IAAM,KACd9B,KAAK8B,GAAG,IAAMrM,EACdA,EAAIuK,KAAK8B,GAAG,KAAO,GACnB9B,KAAK8B,GAAG,IAAM,KACd9B,KAAK8B,GAAG,IAAMrM,EACdyE,EAAE,GAAK8F,KAAK8B,GAAG,GAAK,EACpBrM,EAAIyE,EAAE,KAAO,GACbA,EAAE,IAAM,KACH3H,EAAI,EAAGA,EAAI,GAAIA,IAChB2H,EAAE3H,GAAKyN,KAAK8B,GAAGvP,GAAKkD,EACpBA,EAAIyE,EAAE3H,KAAO,GACb2H,EAAE3H,IAAM,KAIZ,IAFA2H,EAAE,IAAM,KACRoK,GAAY,EAAJ7O,GAAS,EACZlD,EAAI,EAAGA,EAAI,GAAIA,IAChB2H,EAAE3H,IAAM+R,EAGZ,IADAA,GAAQA,EACH/R,EAAI,EAAGA,EAAI,GAAIA,IAChByN,KAAK8B,GAAGvP,GAAMyN,KAAK8B,GAAGvP,GAAK+R,EAAQpK,EAAE3H,GAYzC,IAVAyN,KAAK8B,GAAG,GAA2C,OAApC9B,KAAK8B,GAAG,GAAO9B,KAAK8B,GAAG,IAAM,IAC5C9B,KAAK8B,GAAG,GAAiD,OAA1C9B,KAAK8B,GAAG,KAAO,EAAM9B,KAAK8B,GAAG,IAAM,IAClD9B,KAAK8B,GAAG,GAAgD,OAAzC9B,KAAK8B,GAAG,KAAO,EAAM9B,KAAK8B,GAAG,IAAM,GAClD9B,KAAK8B,GAAG,GAAgD,OAAzC9B,KAAK8B,GAAG,KAAO,EAAM9B,KAAK8B,GAAG,IAAM,GAClD9B,KAAK8B,GAAG,GAAsE,OAA/D9B,KAAK8B,GAAG,KAAO,GAAO9B,KAAK8B,GAAG,IAAM,EAAM9B,KAAK8B,GAAG,IAAM,IACvE9B,KAAK8B,GAAG,GAAiD,OAA1C9B,KAAK8B,GAAG,KAAO,EAAM9B,KAAK8B,GAAG,IAAM,IAClD9B,KAAK8B,GAAG,GAAgD,OAAzC9B,KAAK8B,GAAG,KAAO,EAAM9B,KAAK8B,GAAG,IAAM,GAClD9B,KAAK8B,GAAG,GAAgD,OAAzC9B,KAAK8B,GAAG,KAAO,EAAM9B,KAAK8B,GAAG,IAAM,GAClD7H,EAAI+F,KAAK8B,GAAG,GAAK9B,KAAK+B,KAAK,GAC3B/B,KAAK8B,GAAG,GAAS,MAAJ7H,EACR1H,EAAI,EAAGA,EAAI,EAAGA,IACf0H,GAAO+F,KAAK8B,GAAGvP,GAAKyN,KAAK+B,KAAKxP,GAAM,IAAM0H,IAAM,IAAO,EACvD+F,KAAK8B,GAAGvP,GAAS,MAAJ0H,EAmBjB,OAjBAmK,EAAIC,EAAS,GAAKrE,KAAK8B,GAAG,KAAO,EACjCsC,EAAIC,EAAS,GAAKrE,KAAK8B,GAAG,KAAO,EACjCsC,EAAIC,EAAS,GAAKrE,KAAK8B,GAAG,KAAO,EACjCsC,EAAIC,EAAS,GAAKrE,KAAK8B,GAAG,KAAO,EACjCsC,EAAIC,EAAS,GAAKrE,KAAK8B,GAAG,KAAO,EACjCsC,EAAIC,EAAS,GAAKrE,KAAK8B,GAAG,KAAO,EACjCsC,EAAIC,EAAS,GAAKrE,KAAK8B,GAAG,KAAO,EACjCsC,EAAIC,EAAS,GAAKrE,KAAK8B,GAAG,KAAO,EACjCsC,EAAIC,EAAS,GAAKrE,KAAK8B,GAAG,KAAO,EACjCsC,EAAIC,EAAS,GAAKrE,KAAK8B,GAAG,KAAO,EACjCsC,EAAIC,EAAS,IAAMrE,KAAK8B,GAAG,KAAO,EAClCsC,EAAIC,EAAS,IAAMrE,KAAK8B,GAAG,KAAO,EAClCsC,EAAIC,EAAS,IAAMrE,KAAK8B,GAAG,KAAO,EAClCsC,EAAIC,EAAS,IAAMrE,KAAK8B,GAAG,KAAO,EAClCsC,EAAIC,EAAS,IAAMrE,KAAK8B,GAAG,KAAO,EAClCsC,EAAIC,EAAS,IAAMrE,KAAK8B,GAAG,KAAO,EAClC9B,KAAKC,aACED,MAEX0B,EAASd,UAAUrE,OAAS,SAAUnG,GAClC,IAEImO,EAFApC,EAAO,EACPC,EAAQhM,EAAEhE,OAEd,GAAI4N,KAAKgC,UAAW,EAChBuC,EAAQ,GAAKvE,KAAKgC,WACPI,IACPmC,EAAOnC,GAEX,IAAK,IAAI7P,EAAI,EAAGA,EAAIgS,EAAMhS,IACtByN,KAAK2B,QAAQ3B,KAAKgC,UAAYzP,GAAK6D,EAAE+L,EAAO5P,GAKhD,GAHA6P,GAASmC,EACTpC,GAAQoC,EACRvE,KAAKgC,WAAauC,EACdvE,KAAKgC,UAAY,GACjB,OAAOhC,KAEXA,KAAKkC,QAAQlC,KAAK2B,QAAS,EAAG,IAC9B3B,KAAKgC,UAAY,EAQrB,GANII,GAAS,KACTmC,EAAOnC,EAASA,EAAQ,GACxBpC,KAAKkC,QAAQ9L,EAAG+L,EAAMoC,GACtBpC,GAAQoC,EACRnC,GAASmC,GAETnC,EAAO,CACP,IAAS7P,EAAI,EAAGA,EAAI6P,EAAO7P,IACvByN,KAAK2B,QAAQ3B,KAAKgC,UAAYzP,GAAK6D,EAAE+L,EAAO5P,GAEhDyN,KAAKgC,WAAaI,EAEtB,OAAOpC,MAEX0B,EAASd,UAAUpE,OAAS,WAGxB,GAAIwD,KAAKC,UACL,MAAM,IAAI9N,MAAM,yBAEpB,IAAIiS,EAAM,IAAI9T,WAAW,IAEzB,OADA0P,KAAKO,OAAO6D,GACLA,GAEX1C,EAASd,UAAUnE,MAAQ,WAQvB,OAPA/H,EAAOyG,KAAK6E,KAAK2B,SACjBjN,EAAOyG,KAAK6E,KAAK4B,IACjBlN,EAAOyG,KAAK6E,KAAK8B,IACjBpN,EAAOyG,KAAK6E,KAAK+B,MACjB/B,KAAKgC,UAAY,EACjBhC,KAAKiC,KAAO,EACZjC,KAAKC,aACED,MAEJ0B,EAvXmB,GAyX9B3R,EAAQ2R,SAAWA,EAanB3R,EAAQyU,YAPR,SAAqBzH,EAAKgE,GACtB,IAAI5G,EAAI,IAAIuH,EAAS3E,GACrB5C,EAAEoC,OAAOwE,GACT,IAAIvE,EAASrC,EAAEqC,SAEf,OADArC,EAAEsC,QACKD,GAaXzM,EAAQmR,MANR,SAAe5L,EAAGU,GACd,OAAIV,EAAElD,SAAWrC,EAAQ0R,eAAiBzL,EAAE5D,SAAWrC,EAAQ0R,eAGxD3B,EAAgBoB,MAAM5L,EAAGU,K,oCC/ZpCnG,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAMA,IACrDD,EAAQ0U,0BACR,MAAMC,EAAYxU,EAAQ,QACpByU,EAASzU,EAAQ,QA4BvBH,EAAQ0U,mBA3BR,MACIG,cAKI,OAJA5E,KAAK6E,eACL7E,KAAK8E,KAAO,GAEZ9E,KAAK+E,QAAU,IAAIL,EAAUM,oBACzBhF,KAAK+E,QAAQF,aACb7E,KAAK6E,oBACL7E,KAAK8E,KAAO,aAIhB9E,KAAK+E,QAAU,IAAIJ,EAAOM,iBACtBjF,KAAK+E,QAAQF,aACb7E,KAAK6E,oBACL7E,KAAK8E,KAAO,iBAKpB5J,YAAY9I,GACR,IAAK4N,KAAK6E,YACN,MAAM,IAAI1S,MAAM,kDAEpB,OAAO6N,KAAK+E,QAAQ7J,YAAY9I,M,kCC5BxCvC,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAMA,IACrD,IAAIkV,EAAWhV,EAAQ,QACnBiV,EAAajV,EAAQ,QACrBwE,EAASxE,EAAQ,QACjB0M,EAAW1M,EAAQ,SACnB4P,EAAkB5P,EAAQ,QAC9BH,EAAQqV,WAAa,GACrBrV,EAAQsV,aAAe,GACvBtV,EAAQuV,WAAa,GACrB,IAAIC,EAAQ,IAAIjV,WAAW,IAMvBkV,EAAkC,WAIlC,SAASA,EAAiBzI,GAGtB,GAFAiD,KAAKyF,YAAc1V,EAAQsV,aAC3BrF,KAAK0F,UAAY3V,EAAQuV,WACrBvI,EAAI3K,SAAWrC,EAAQqV,WACvB,MAAM,IAAIjT,MAAM,sCAGpB6N,KAAK2F,KAAO,IAAIrV,WAAWyM,GAmJ/B,OArIAyI,EAAiB5E,UAAUgF,KAAO,SAAU3G,EAAO4G,EAAWC,EAAgB3G,GAC1E,GAAIF,EAAM7M,OAAS,GACf,MAAM,IAAID,MAAM,4CAGpB,IAAIsN,EAAU,IAAInP,WAAW,IAC7BmP,EAAQzE,IAAIiE,EAAOQ,EAAQrN,OAAS6M,EAAM7M,QAM1C,IAAI2T,EAAU,IAAIzV,WAAW,IAC7B4U,EAAStF,OAAOI,KAAK2F,KAAMlG,EAASsG,EAAS,GAE7C,IACI1T,EADA2T,EAAeH,EAAUzT,OAAS4N,KAAK0F,UAE3C,GAAIvG,EAAK,CACL,GAAIA,EAAI/M,SAAW4T,EACf,MAAM,IAAI7T,MAAM,kDAEpBE,EAAS8M,OAGT9M,EAAS,IAAI/B,WAAW0V,GAW5B,OARAd,EAASlG,UAAUgB,KAAK2F,KAAMlG,EAASoG,EAAWxT,EAAQ,GAK1D2N,KAAKiG,cAAc5T,EAAO+I,SAAS/I,EAAOD,OAAS4N,KAAK0F,UAAWrT,EAAOD,QAAS2T,EAAS1T,EAAO+I,SAAS,EAAG/I,EAAOD,OAAS4N,KAAK0F,WAAYI,GAEhJpR,EAAOyG,KAAKsE,GACLpN,GAeXmT,EAAiB5E,UAAUsF,KAAO,SAAUjH,EAAOkH,EAAQL,EAAgB3G,GACvE,GAAIF,EAAM7M,OAAS,GACf,MAAM,IAAID,MAAM,4CAGpB,GAAIgU,EAAO/T,OAAS4N,KAAK0F,UAErB,OAAO,KAGX,IAAIjG,EAAU,IAAInP,WAAW,IAC7BmP,EAAQzE,IAAIiE,EAAOQ,EAAQrN,OAAS6M,EAAM7M,QAE1C,IAAI2T,EAAU,IAAIzV,WAAW,IAC7B4U,EAAStF,OAAOI,KAAK2F,KAAMlG,EAASsG,EAAS,GAM7C,IAAIK,EAAgB,IAAI9V,WAAW0P,KAAK0F,WAGxC,GAFA1F,KAAKiG,cAAcG,EAAeL,EAASI,EAAO/K,SAAS,EAAG+K,EAAO/T,OAAS4N,KAAK0F,WAAYI,IAE1FhG,EAAgBoB,MAAMkF,EAAeD,EAAO/K,SAAS+K,EAAO/T,OAAS4N,KAAK0F,UAAWS,EAAO/T,SAC7F,OAAO,KAGX,IACIC,EADA2T,EAAeG,EAAO/T,OAAS4N,KAAK0F,UAExC,GAAIvG,EAAK,CACL,GAAIA,EAAI/M,SAAW4T,EACf,MAAM,IAAI7T,MAAM,kDAEpBE,EAAS8M,OAGT9M,EAAS,IAAI/B,WAAW0V,GAM5B,OAHAd,EAASlG,UAAUgB,KAAK2F,KAAMlG,EAAS0G,EAAO/K,SAAS,EAAG+K,EAAO/T,OAAS4N,KAAK0F,WAAYrT,EAAQ,GAEnGqC,EAAOyG,KAAKsE,GACLpN,GAEXmT,EAAiB5E,UAAUnE,MAAQ,WAE/B,OADA/H,EAAOyG,KAAK6E,KAAK2F,MACV3F,MAEXwF,EAAiB5E,UAAUqF,cAAgB,SAAUI,EAAQN,EAASO,EAAYR,GAE9E,IAAI3L,EAAI,IAAIgL,EAAWzD,SAASqE,GAE5BD,IACA3L,EAAEoC,OAAOuJ,GACLA,EAAe1T,OAAS,GAAK,GAC7B+H,EAAEoC,OAAOgJ,EAAMnK,SAAS0K,EAAe1T,OAAS,MAIxD+H,EAAEoC,OAAO+J,GACLA,EAAWlU,OAAS,GAAK,GACzB+H,EAAEoC,OAAOgJ,EAAMnK,SAASkL,EAAWlU,OAAS,KAIhD,IAAIA,EAAS,IAAI9B,WAAW,GACxBwV,GACAlJ,EAAS5L,cAAc8U,EAAe1T,OAAQA,GAElD+H,EAAEoC,OAAOnK,GAETwK,EAAS5L,cAAcsV,EAAWlU,OAAQA,GAC1C+H,EAAEoC,OAAOnK,GAGT,IADA,IAAImU,EAAMpM,EAAEqC,SACHjK,EAAI,EAAGA,EAAIgU,EAAInU,OAAQG,IAC5B8T,EAAO9T,GAAKgU,EAAIhU,GAGpB4H,EAAEsC,QACF/H,EAAOyG,KAAKoL,GACZ7R,EAAOyG,KAAK/I,IAEToT,EA9J2B,GAgKtCzV,EAAQyV,iBAAmBA,G,oCC/K3B3V,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAMA,IAMrDD,EAAQyQ,mBALR,SAA4BrG,GACxB,YAA+B,IAAhBA,EAAEuG,gBACa,IAAnBvG,EAAE0G,mBACoB,IAAtB1G,EAAE2G,kB,oCCJjBjR,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAMA,IACrDD,EAAQiV,2BA0BRjV,EAAQiV,oBAxBR,MACIJ,cACI5E,KAAK6E,eACL7E,KAAKwG,kBACL,MAAMC,EAAgC,oBAATC,KACtBA,KAAKC,QAAUD,KAAKE,SACrB,KACFH,YAAiBA,EAAcI,kBAC/B7G,KAAK8G,QAAUL,EACfzG,KAAK6E,eACL7E,KAAKwG,mBAGbtL,YAAY9I,GACR,IAAK4N,KAAK6E,cAAgB7E,KAAK8G,QAC3B,MAAM,IAAI3U,MAAM,mDAEpB,MAAM/B,EAAM,IAAIE,WAAW8B,GAC3B,IAAK,IAAIG,EAAI,EAAGA,EAAInC,EAAIgC,OAAQG,GAnB1B,MAoBFyN,KAAK8G,QAAQD,gBAAgBzW,EAAIgL,SAAS7I,EAAGA,EAAIoD,KAAKoR,IAAI3W,EAAIgC,OAASG,EApBrE,SAsBN,OAAOnC,K,kCCxBfP,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAMA,IACrD,IAAI4M,EAAW1M,EAAQ,SACnBwE,EAASxE,EAAQ,QACrBH,EAAQ0R,cAAgB,GACxB1R,EAAQiX,WAAa,IAIrB,IAAI1K,EAAwB,WACxB,SAASA,IAEL0D,KAAKK,aAAetQ,EAAQ0R,cAE5BzB,KAAKI,UAAYrQ,EAAQiX,WAEzBhH,KAAKiH,SAAW,IAAIC,WAAW,GAC/BlH,KAAKmH,SAAW,IAAID,WAAW,GAC/BlH,KAAKoH,QAAU,IAAIF,WAAW,IAC9BlH,KAAKqH,QAAU,IAAIH,WAAW,IAC9BlH,KAAK2B,QAAU,IAAIrR,WAAW,KAC9B0P,KAAKsH,cAAgB,EACrBtH,KAAKuH,aAAe,EACpBvH,KAAKC,aACLD,KAAKtD,QAuJT,OArJAJ,EAAOsE,UAAU4G,WAAa,WAC1BxH,KAAKiH,SAAS,GAAK,WACnBjH,KAAKiH,SAAS,GAAK,WACnBjH,KAAKiH,SAAS,GAAK,WACnBjH,KAAKiH,SAAS,GAAK,WACnBjH,KAAKiH,SAAS,GAAK,WACnBjH,KAAKiH,SAAS,GAAK,WACnBjH,KAAKiH,SAAS,GAAK,UACnBjH,KAAKiH,SAAS,GAAK,WACnBjH,KAAKmH,SAAS,GAAK,WACnBnH,KAAKmH,SAAS,GAAK,WACnBnH,KAAKmH,SAAS,GAAK,WACnBnH,KAAKmH,SAAS,GAAK,WACnBnH,KAAKmH,SAAS,GAAK,WACnBnH,KAAKmH,SAAS,GAAK,UACnBnH,KAAKmH,SAAS,GAAK,WACnBnH,KAAKmH,SAAS,GAAK,WAMvB7K,EAAOsE,UAAUlE,MAAQ,WAKrB,OAJAsD,KAAKwH,aACLxH,KAAKsH,cAAgB,EACrBtH,KAAKuH,aAAe,EACpBvH,KAAKC,aACED,MAKX1D,EAAOsE,UAAUnE,MAAQ,WACrB/H,EAAOyG,KAAK6E,KAAK2B,SACjBjN,EAAOyG,KAAK6E,KAAKoH,SACjB1S,EAAOyG,KAAK6E,KAAKqH,SACjBrH,KAAKtD,SAQTJ,EAAOsE,UAAUrE,OAAS,SAAUwE,EAAM0G,GAEtC,YADIA,IAAyBA,EAAa1G,EAAK3O,QAC3C4N,KAAKC,UACL,MAAM,IAAI9N,MAAM,mDAEpB,IAAIuV,EAAU,EAEd,GADA1H,KAAKuH,cAAgBE,EACjBzH,KAAKsH,cAAgB,EAAG,CACxB,KAAOtH,KAAKsH,cAAgBvX,EAAQiX,YAAcS,EAAa,GAC3DzH,KAAK2B,QAAQ3B,KAAKsH,iBAAmBvG,EAAK2G,KAC1CD,IAEAzH,KAAKsH,gBAAkBtH,KAAKI,YAC5BuH,EAAW3H,KAAKoH,QAASpH,KAAKqH,QAASrH,KAAKiH,SAAUjH,KAAKmH,SAAUnH,KAAK2B,QAAS,EAAG3B,KAAKI,WAC3FJ,KAAKsH,cAAgB,GAO7B,IAJIG,GAAczH,KAAKI,YACnBsH,EAAUC,EAAW3H,KAAKoH,QAASpH,KAAKqH,QAASrH,KAAKiH,SAAUjH,KAAKmH,SAAUpG,EAAM2G,EAASD,GAC9FA,GAAczH,KAAKI,WAEhBqH,EAAa,GAChBzH,KAAK2B,QAAQ3B,KAAKsH,iBAAmBvG,EAAK2G,KAC1CD,IAEJ,OAAOzH,MAMX1D,EAAOsE,UAAUL,OAAS,SAAUnQ,GAChC,IAAK4P,KAAKC,UAAW,CACjB,IAAI2H,EAAc5H,KAAKuH,aACnBM,EAAO7H,KAAKsH,cACZQ,EAAYF,EAAc,UAAc,EACxCG,EAAWH,GAAe,EAC1BI,EAAaJ,EAAc,IAAM,IAAO,IAAM,IAClD5H,KAAK2B,QAAQkG,GAAQ,IACrB,IAAK,IAAItV,EAAIsV,EAAO,EAAGtV,EAAIyV,EAAY,EAAGzV,IACtCyN,KAAK2B,QAAQpP,GAAK,EAEtBqK,EAAS/L,cAAciX,EAAU9H,KAAK2B,QAASqG,EAAY,GAC3DpL,EAAS/L,cAAckX,EAAU/H,KAAK2B,QAASqG,EAAY,GAC3DL,EAAW3H,KAAKoH,QAASpH,KAAKqH,QAASrH,KAAKiH,SAAUjH,KAAKmH,SAAUnH,KAAK2B,QAAS,EAAGqG,GACtFhI,KAAKC,aAET,IAAS1N,EAAI,EAAGA,EAAIyN,KAAKK,aAAe,EAAG9N,IACvCqK,EAAS/L,cAAcmP,KAAKiH,SAAS1U,GAAInC,EAAS,EAAJmC,GAC9CqK,EAAS/L,cAAcmP,KAAKmH,SAAS5U,GAAInC,EAAS,EAAJmC,EAAQ,GAE1D,OAAOyN,MAKX1D,EAAOsE,UAAUpE,OAAS,WACtB,IAAIpM,EAAM,IAAIE,WAAW0P,KAAKK,cAE9B,OADAL,KAAKO,OAAOnQ,GACLA,GAOXkM,EAAOsE,UAAUF,UAAY,WACzB,GAAIV,KAAKC,UACL,MAAM,IAAI9N,MAAM,sCAEpB,MAAO,CACH8V,QAAS,IAAIf,WAAWlH,KAAKiH,UAC7BiB,QAAS,IAAIhB,WAAWlH,KAAKmH,UAC7BpU,OAAQiN,KAAKsH,cAAgB,EAAI,IAAIhX,WAAW0P,KAAK2B,gBACrDwG,aAAcnI,KAAKsH,cACnBM,YAAa5H,KAAKuH,eAO1BjL,EAAOsE,UAAUC,aAAe,SAAUG,GAStC,OARAhB,KAAKiH,SAASjM,IAAIgG,EAAWiH,SAC7BjI,KAAKmH,SAASnM,IAAIgG,EAAWkH,SAC7BlI,KAAKsH,cAAgBtG,EAAWmH,aAC5BnH,EAAWjO,QACXiN,KAAK2B,QAAQ3G,IAAIgG,EAAWjO,QAEhCiN,KAAKuH,aAAevG,EAAW4G,YAC/B5H,KAAKC,aACED,MAKX1D,EAAOsE,UAAUE,gBAAkB,SAAUE,GACzCtM,EAAOyG,KAAK6F,EAAWiH,SACvBvT,EAAOyG,KAAK6F,EAAWkH,SACnBlH,EAAWjO,QACX2B,EAAOyG,KAAK6F,EAAWjO,QAE3BiO,EAAWmH,aAAe,EAC1BnH,EAAW4G,YAAc,GAEtBtL,EAtKiB,GAwK5BvM,EAAQuM,OAASA,EAEjB,IAAI8L,EAAI,IAAIlB,WAAW,CACnB,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,UACpC,UAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,UACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,UAAY,UACpC,UAAY,UAAY,UAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,aAExC,SAASS,EAAWU,EAAIC,EAAIC,EAAIC,EAAIpS,EAAGsJ,EAAKC,GAKxC,IAJA,IACIxF,EAAGsO,EACHC,EAAIC,EACJrT,EAAGU,EAAGP,EAAGgB,EAHTmS,EAAML,EAAG,GAAIM,EAAMN,EAAG,GAAIO,EAAMP,EAAG,GAAIQ,EAAMR,EAAG,GAAIS,EAAMT,EAAG,GAAIU,EAAMV,EAAG,GAAIW,EAAMX,EAAG,GAAIY,EAAMZ,EAAG,GAAIa,EAAMZ,EAAG,GAAIa,EAAMb,EAAG,GAAIc,EAAMd,EAAG,GAAIe,EAAMf,EAAG,GAAIgB,EAAMhB,EAAG,GAAIiB,EAAMjB,EAAG,GAAIkB,EAAMlB,EAAG,GAAImB,EAAMnB,EAAG,GAIzM7I,GAAO,KAAK,CACf,IAAK,IAAIpN,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACzB,IAAI8D,EAAI,EAAI9D,EAAImN,EAChB2I,EAAG9V,GAAKqK,EAASlM,aAAa0F,EAAGC,GACjCiS,EAAG/V,GAAKqK,EAASlM,aAAa0F,EAAGC,EAAI,GAEzC,IAAS9D,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACzB,IAOIqX,EAQAC,EAfAC,EAAMlB,EACNmB,EAAMlB,EACNmB,EAAMlB,EACNmB,EAAMlB,EACNmB,EAAMlB,EACNmB,EAAMlB,EACNmB,EAAMlB,EAENmB,EAAMjB,EACNkB,EAAMjB,EACNkB,EAAMjB,EACNkB,EAAMjB,EACNkB,EAAMjB,EACNkB,EAAMjB,EACNkB,EAAMjB,EA0GV,GArGApU,EAAQ,OADRmT,EAAIkB,GAEJ3T,EAAIyS,IAAM,GACVhT,EAAQ,OAJR0E,EAAIgP,GAKJ1S,EAAI0D,IAAM,GAMV7E,GAAS,OAFTmT,GAAMe,IAAQ,GAAOR,GAAO,KAAgBQ,IAAQ,GAC/CR,GAAO,KAAgBA,IAAQ,EAAcQ,GAAO,KAEzDxT,GAAKyS,IAAM,GACXhT,GAAS,OANT0E,GAAM6O,IAAQ,GAAOQ,GAAO,KAAgBR,IAAQ,GAC/CQ,GAAO,KAAgBA,IAAQ,EAAcR,GAAO,KAMzDvS,GAAK0D,IAAM,GAIX7E,GAAS,OADTmT,EAAKe,EAAMC,GAASD,EAAME,GAE1B1T,GAAKyS,IAAM,GACXhT,GAAS,OAJT0E,EAAK6O,EAAMC,GAASD,EAAME,GAK1BzS,GAAK0D,IAAM,GAEXA,EAAIiO,EAAM,EAAJ7V,GAEN+C,GAAS,OADTmT,EAAIL,EAAM,EAAJ7V,EAAQ,IAEdyD,GAAKyS,IAAM,GACXhT,GAAS,MAAJ0E,EACL1D,GAAK0D,IAAM,GAEXA,EAAIkO,EAAG9V,EAAI,IAGXyD,IAFAyS,EAAIH,EAAG/V,EAAI,OAEA,GACXkD,GAAS,MAAJ0E,EACL1D,GAAK0D,IAAM,GAEX1E,IADAO,IAJAV,GAAS,MAAJmT,KAIM,MACA,GAOXnT,EAAQ,OADRmT,EAHAE,EAAS,MAAJrT,EAAaU,GAAK,IAKvBA,EAAIyS,IAAM,GACVhT,EAAQ,OAJR0E,EAHAuO,EAAS,MAAJjT,GADLgB,GAAKhB,IAAM,KACY,IAQvBgB,EAAI0D,IAAM,GAMV7E,GAAS,OAFTmT,GAAMW,IAAQ,GAAOR,GAAO,IAAgBA,IAAQ,EAC/CQ,GAAO,KAAuBR,IAAQ,EAAcQ,GAAO,KAEhEpT,GAAKyS,IAAM,GACXhT,GAAS,OANT0E,GAAMyO,IAAQ,GAAOQ,GAAO,IAAgBA,IAAQ,EAC/CR,GAAO,KAAuBQ,IAAQ,EAAcR,GAAO,KAMhEnS,GAAK0D,IAAM,GAKXnE,IAFAyS,EAAKW,EAAMC,EAAQD,EAAME,EAAQD,EAAMC,KAE5B,GACX7T,GAAS,OAJT0E,EAAKyO,EAAMC,EAAQD,EAAME,EAAQD,EAAMC,GAKvCrS,GAAK0D,IAAM,GAIXyP,EAAW,OAFXnU,IADAO,IAJAV,GAAS,MAAJmT,KAIM,MACA,KACXhS,GAAKhB,IAAM,KACgB,GAC3BoU,EAAW,MAAJvU,EAAeU,GAAK,GAI3BV,EAAQ,OADRmT,EAAI+B,GAEJxU,EAAIyS,IAAM,GACVhT,EAAQ,OAJR0E,EAAI8P,GAKJxT,EAAI0D,IAAM,GAIVnE,IAFAyS,EAAIE,KAEO,GACXlT,GAAS,OAJT0E,EAAIuO,GAKJjS,GAAK0D,IAAM,GAMX0O,EAAMiB,EACNhB,EAAMiB,EACNhB,EAAMiB,EACNhB,EALAiB,EAAW,OAFXxU,IADAO,IAJAV,GAAS,MAAJmT,KAIM,MACA,KACXhS,GAAKhB,IAAM,KACgB,GAM3BwT,EAAMiB,EACNhB,EAAMiB,EACNhB,EAAMiB,EACNxB,EAAMgB,EACNP,EAAMgB,EACNf,EAAMgB,EACNf,EAAMgB,EACNf,EAZAgB,EAAW,MAAJlV,EAAeU,GAAK,GAa3ByT,EAAMgB,EACNf,EAAMgB,EACNf,EAAMgB,EACNvB,EAAMS,EACFtX,EAAI,IAAO,GACX,IAAS8D,EAAI,EAAGA,EAAI,GAAIA,IAEpB8D,EAAIkO,EAAGhS,GAEPf,EAAQ,OADRmT,EAAIH,EAAGjS,IAEPL,EAAIyS,IAAM,GACVhT,EAAQ,MAAJ0E,EACJ1D,EAAI0D,IAAM,GACVA,EAAIkO,GAAIhS,EAAI,GAAK,IAEjBf,GAAS,OADTmT,EAAIH,GAAIjS,EAAI,GAAK,KAEjBL,GAAKyS,IAAM,GACXhT,GAAS,MAAJ0E,EACL1D,GAAK0D,IAAM,GAEXuO,EAAKL,GAAIhS,EAAI,GAAK,IAMlBf,GAAS,OAFTmT,IAHAE,EAAKL,GAAIjS,EAAI,GAAK,OAGL,EAAMqS,GAAM,KAAeC,IAAO,EAC1CD,GAAM,KAAeC,IAAO,EAAMD,GAAM,KAE7C1S,GAAKyS,IAAM,GACXhT,GAAS,OANT0E,GAAMuO,IAAO,EAAMC,GAAM,KAAeD,IAAO,EAC1CC,GAAM,IAAcD,IAAO,GAMhCjS,GAAK0D,IAAM,GAEXuO,EAAKL,GAAIhS,EAAI,IAAM,IAOnBL,IAHAyS,IAHAE,EAAKL,GAAIjS,EAAI,IAAM,OAGN,GAAOqS,GAAM,KAAgBA,IAAO,GAC5CC,GAAM,IAAuBA,IAAO,EAAMD,GAAM,OAE1C,GACXjT,GAAS,OANT0E,GAAMuO,IAAO,GAAOC,GAAM,KAAgBA,IAAO,GAC5CD,GAAM,GAAsBA,IAAO,GAMxCjS,GAAK0D,IAAM,GAGX1D,IADAhB,IADAO,IAJAV,GAAS,MAAJmT,KAIM,MACA,MACA,GACXJ,EAAGhS,GAAU,MAAJZ,EAAegB,GAAK,GAC7B6R,EAAGjS,GAAU,MAAJf,EAAeU,GAAK,GAOzCV,EAAQ,OADRmT,EAAIW,GAEJpT,EAAIyS,IAAM,GACVhT,EAAQ,OAJR0E,EAAIyO,GAKJnS,EAAI0D,IAAM,GACVA,EAAIoO,EAAG,GAGPvS,IAFAyS,EAAID,EAAG,MAEI,GACX/S,GAAS,MAAJ0E,EACL1D,GAAK0D,IAAM,GAGX1D,IADAhB,IADAO,IAJAV,GAAS,MAAJmT,KAIM,MACA,MACA,GACXF,EAAG,GAAKK,EAAW,MAAJnT,EAAegB,GAAK,GACnC+R,EAAG,GAAKY,EAAW,MAAJ9T,EAAeU,GAAK,GAGnCV,EAAQ,OADRmT,EAAIY,GAEJrT,EAAIyS,IAAM,GACVhT,EAAQ,OAJR0E,EAAI0O,GAKJpS,EAAI0D,IAAM,GACVA,EAAIoO,EAAG,GAGPvS,IAFAyS,EAAID,EAAG,MAEI,GACX/S,GAAS,MAAJ0E,EACL1D,GAAK0D,IAAM,GAGX1D,IADAhB,IADAO,IAJAV,GAAS,MAAJmT,KAIM,MACA,MACA,GACXF,EAAG,GAAKM,EAAW,MAAJpT,EAAegB,GAAK,GACnC+R,EAAG,GAAKa,EAAW,MAAJ/T,EAAeU,GAAK,GAGnCV,EAAQ,OADRmT,EAAIa,GAEJtT,EAAIyS,IAAM,GACVhT,EAAQ,OAJR0E,EAAI2O,GAKJrS,EAAI0D,IAAM,GACVA,EAAIoO,EAAG,GAGPvS,IAFAyS,EAAID,EAAG,MAEI,GACX/S,GAAS,MAAJ0E,EACL1D,GAAK0D,IAAM,GAGX1D,IADAhB,IADAO,IAJAV,GAAS,MAAJmT,KAIM,MACA,MACA,GACXF,EAAG,GAAKO,EAAW,MAAJrT,EAAegB,GAAK,GACnC+R,EAAG,GAAKc,EAAW,MAAJhU,EAAeU,GAAK,GAGnCV,EAAQ,OADRmT,EAAIc,GAEJvT,EAAIyS,IAAM,GACVhT,EAAQ,OAJR0E,EAAI4O,GAKJtS,EAAI0D,IAAM,GACVA,EAAIoO,EAAG,GAGPvS,IAFAyS,EAAID,EAAG,MAEI,GACX/S,GAAS,MAAJ0E,EACL1D,GAAK0D,IAAM,GAGX1D,IADAhB,IADAO,IAJAV,GAAS,MAAJmT,KAIM,MACA,MACA,GACXF,EAAG,GAAKQ,EAAW,MAAJtT,EAAegB,GAAK,GACnC+R,EAAG,GAAKe,EAAW,MAAJjU,EAAeU,GAAK,GAGnCV,EAAQ,OADRmT,EAAIe,GAEJxT,EAAIyS,IAAM,GACVhT,EAAQ,OAJR0E,EAAI6O,GAKJvS,EAAI0D,IAAM,GACVA,EAAIoO,EAAG,GAGPvS,IAFAyS,EAAID,EAAG,MAEI,GACX/S,GAAS,MAAJ0E,EACL1D,GAAK0D,IAAM,GAGX1D,IADAhB,IADAO,IAJAV,GAAS,MAAJmT,KAIM,MACA,MACA,GACXF,EAAG,GAAKS,EAAW,MAAJvT,EAAegB,GAAK,GACnC+R,EAAG,GAAKgB,EAAW,MAAJlU,EAAeU,GAAK,GAGnCV,EAAQ,OADRmT,EAAIgB,GAEJzT,EAAIyS,IAAM,GACVhT,EAAQ,OAJR0E,EAAI8O,GAKJxS,EAAI0D,IAAM,GACVA,EAAIoO,EAAG,GAGPvS,IAFAyS,EAAID,EAAG,MAEI,GACX/S,GAAS,MAAJ0E,EACL1D,GAAK0D,IAAM,GAGX1D,IADAhB,IADAO,IAJAV,GAAS,MAAJmT,KAIM,MACA,MACA,GACXF,EAAG,GAAKU,EAAW,MAAJxT,EAAegB,GAAK,GACnC+R,EAAG,GAAKiB,EAAW,MAAJnU,EAAeU,GAAK,GAGnCV,EAAQ,OADRmT,EAAIiB,GAEJ1T,EAAIyS,IAAM,GACVhT,EAAQ,OAJR0E,EAAI+O,GAKJzS,EAAI0D,IAAM,GACVA,EAAIoO,EAAG,GAGPvS,IAFAyS,EAAID,EAAG,MAEI,GACX/S,GAAS,MAAJ0E,EACL1D,GAAK0D,IAAM,GAGX1D,IADAhB,IADAO,IAJAV,GAAS,MAAJmT,KAIM,MACA,MACA,GACXF,EAAG,GAAKW,EAAW,MAAJzT,EAAegB,GAAK,GACnC+R,EAAG,GAAKkB,EAAW,MAAJpU,EAAeU,GAAK,GAGnCV,EAAQ,OADRmT,EAAIkB,GAEJ3T,EAAIyS,IAAM,GACVhT,EAAQ,OAJR0E,EAAIgP,GAKJ1S,EAAI0D,IAAM,GACVA,EAAIoO,EAAG,GAGPvS,IAFAyS,EAAID,EAAG,MAEI,GACX/S,GAAS,MAAJ0E,EACL1D,GAAK0D,IAAM,GAGX1D,IADAhB,IADAO,IAJAV,GAAS,MAAJmT,KAIM,MACA,MACA,GACXF,EAAG,GAAKY,EAAW,MAAJ1T,EAAegB,GAAK,GACnC+R,EAAG,GAAKmB,EAAW,MAAJrU,EAAeU,GAAK,GACnC0J,GAAO,IACPC,GAAO,IAEX,OAAOD,EASX3P,EAAQ8K,KAPR,SAAckG,GACV,IAAI5G,EAAI,IAAImC,EACZnC,EAAEoC,OAAOwE,GACT,IAAIvE,EAASrC,EAAEqC,SAEf,OADArC,EAAEsC,QACKD,I,kCChiBX3M,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAMA,IACrD,IAAI4M,EAAW1M,EAAQ,SACnBwE,EAASxE,EAAQ,QACrBH,EAAQ0R,cAAgB,GACxB1R,EAAQiX,WAAa,GAIrB,IAAI4D,EAAwB,WACxB,SAASA,IAEL5K,KAAKK,aAAetQ,EAAQ0R,cAE5BzB,KAAKI,UAAYrQ,EAAQiX,WAEzBhH,KAAK6K,OAAS,IAAI3D,WAAW,GAC7BlH,KAAK8K,MAAQ,IAAI5D,WAAW,IAC5BlH,KAAK2B,QAAU,IAAIrR,WAAW,KAC9B0P,KAAKsH,cAAgB,EACrBtH,KAAKuH,aAAe,EACpBvH,KAAKC,aACLD,KAAKtD,QA4IT,OA1IAkO,EAAOhK,UAAU4G,WAAa,WAC1BxH,KAAK6K,OAAO,GAAK,WACjB7K,KAAK6K,OAAO,GAAK,WACjB7K,KAAK6K,OAAO,GAAK,WACjB7K,KAAK6K,OAAO,GAAK,WACjB7K,KAAK6K,OAAO,GAAK,WACjB7K,KAAK6K,OAAO,GAAK,WACjB7K,KAAK6K,OAAO,GAAK,UACjB7K,KAAK6K,OAAO,GAAK,YAMrBD,EAAOhK,UAAUlE,MAAQ,WAKrB,OAJAsD,KAAKwH,aACLxH,KAAKsH,cAAgB,EACrBtH,KAAKuH,aAAe,EACpBvH,KAAKC,aACED,MAKX4K,EAAOhK,UAAUnE,MAAQ,WACrB/H,EAAOyG,KAAK6E,KAAK2B,SACjBjN,EAAOyG,KAAK6E,KAAK8K,OACjB9K,KAAKtD,SAQTkO,EAAOhK,UAAUrE,OAAS,SAAUwE,EAAM0G,GAEtC,YADIA,IAAyBA,EAAa1G,EAAK3O,QAC3C4N,KAAKC,UACL,MAAM,IAAI9N,MAAM,mDAEpB,IAAIuV,EAAU,EAEd,GADA1H,KAAKuH,cAAgBE,EACjBzH,KAAKsH,cAAgB,EAAG,CACxB,KAAOtH,KAAKsH,cAAgBtH,KAAKI,WAAaqH,EAAa,GACvDzH,KAAK2B,QAAQ3B,KAAKsH,iBAAmBvG,EAAK2G,KAC1CD,IAEAzH,KAAKsH,gBAAkBtH,KAAKI,YAC5BuH,EAAW3H,KAAK8K,MAAO9K,KAAK6K,OAAQ7K,KAAK2B,QAAS,EAAG3B,KAAKI,WAC1DJ,KAAKsH,cAAgB,GAO7B,IAJIG,GAAczH,KAAKI,YACnBsH,EAAUC,EAAW3H,KAAK8K,MAAO9K,KAAK6K,OAAQ9J,EAAM2G,EAASD,GAC7DA,GAAczH,KAAKI,WAEhBqH,EAAa,GAChBzH,KAAK2B,QAAQ3B,KAAKsH,iBAAmBvG,EAAK2G,KAC1CD,IAEJ,OAAOzH,MAMX4K,EAAOhK,UAAUL,OAAS,SAAUnQ,GAChC,IAAK4P,KAAKC,UAAW,CACjB,IAAI2H,EAAc5H,KAAKuH,aACnBM,EAAO7H,KAAKsH,cACZQ,EAAYF,EAAc,UAAc,EACxCG,EAAWH,GAAe,EAC1BI,EAAaJ,EAAc,GAAK,GAAM,GAAK,IAC/C5H,KAAK2B,QAAQkG,GAAQ,IACrB,IAAK,IAAItV,EAAIsV,EAAO,EAAGtV,EAAIyV,EAAY,EAAGzV,IACtCyN,KAAK2B,QAAQpP,GAAK,EAEtBqK,EAAS/L,cAAciX,EAAU9H,KAAK2B,QAASqG,EAAY,GAC3DpL,EAAS/L,cAAckX,EAAU/H,KAAK2B,QAASqG,EAAY,GAC3DL,EAAW3H,KAAK8K,MAAO9K,KAAK6K,OAAQ7K,KAAK2B,QAAS,EAAGqG,GACrDhI,KAAKC,aAET,IAAS1N,EAAI,EAAGA,EAAIyN,KAAKK,aAAe,EAAG9N,IACvCqK,EAAS/L,cAAcmP,KAAK6K,OAAOtY,GAAInC,EAAS,EAAJmC,GAEhD,OAAOyN,MAKX4K,EAAOhK,UAAUpE,OAAS,WACtB,IAAIpM,EAAM,IAAIE,WAAW0P,KAAKK,cAE9B,OADAL,KAAKO,OAAOnQ,GACLA,GAQXwa,EAAOhK,UAAUF,UAAY,WACzB,GAAIV,KAAKC,UACL,MAAM,IAAI9N,MAAM,sCAEpB,MAAO,CACH4Y,MAAO,IAAI7D,WAAWlH,KAAK6K,QAC3B9X,OAAQiN,KAAKsH,cAAgB,EAAI,IAAIhX,WAAW0P,KAAK2B,gBACrDwG,aAAcnI,KAAKsH,cACnBM,YAAa5H,KAAKuH,eAQ1BqD,EAAOhK,UAAUC,aAAe,SAAUG,GAQtC,OAPAhB,KAAK6K,OAAO7P,IAAIgG,EAAW+J,OAC3B/K,KAAKsH,cAAgBtG,EAAWmH,aAC5BnH,EAAWjO,QACXiN,KAAK2B,QAAQ3G,IAAIgG,EAAWjO,QAEhCiN,KAAKuH,aAAevG,EAAW4G,YAC/B5H,KAAKC,aACED,MAKX4K,EAAOhK,UAAUE,gBAAkB,SAAUE,GACzCtM,EAAOyG,KAAK6F,EAAW+J,OACnB/J,EAAWjO,QACX2B,EAAOyG,KAAK6F,EAAWjO,QAE3BiO,EAAWmH,aAAe,EAC1BnH,EAAW4G,YAAc,GAEtBgD,EAzJiB,GA2J5B7a,EAAQ6a,OAASA,EAEjB,IAAIxC,EAAI,IAAIlB,WAAW,CACnB,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,WAAY,UAChD,UAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,UAChD,UAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,UAAY,UAAY,UAAY,UAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,UAAY,UAAY,UAChD,UAAY,UAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,aAExC,SAASS,EAAWqD,EAAGtV,EAAGI,EAAG4J,EAAKC,GAC9B,KAAOA,GAAO,IAAI,CASd,IARA,IAAIrK,EAAII,EAAE,GACNM,EAAIN,EAAE,GACND,EAAIC,EAAE,GACNe,EAAIf,EAAE,GACNsE,EAAItE,EAAE,GACNuE,EAAIvE,EAAE,GACNwE,EAAIxE,EAAE,GACNyE,EAAIzE,EAAE,GACDnD,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACzB,IAAI8D,EAAIqJ,EAAU,EAAJnN,EACdyY,EAAEzY,GAAKqK,EAASlM,aAAaoF,EAAGO,GAEpC,IAAS9D,EAAI,GAAIA,EAAI,GAAIA,IAAK,CAC1B,IAAI0Y,EAAID,EAAEzY,EAAI,GACVwE,GAAMkU,IAAM,GAAKA,GAAK,KAAcA,IAAM,GAAKA,GAAK,IAAcA,IAAM,GAExEjU,IADJiU,EAAID,EAAEzY,EAAI,OACM,EAAI0Y,GAAK,KAAaA,IAAM,GAAKA,GAAK,IAAcA,IAAM,EAC1ED,EAAEzY,IAAMwE,EAAKiU,EAAEzY,EAAI,GAAK,IAAMyE,EAAKgU,EAAEzY,EAAI,IAAM,GAEnD,IAASA,EAAI,EAAGA,EAAI,GAAIA,IAChBwE,KAAUiD,IAAM,EAAIA,GAAK,KAAaA,IAAM,GAAKA,GAAK,KACrDA,IAAM,GAAKA,GAAK,KAAgBA,EAAIC,GAAOD,EAAIE,GAAO,IACrDC,GAAMiO,EAAE7V,GAAKyY,EAAEzY,GAAM,GAAM,GAAM,EACnCyE,IAAQ1B,IAAM,EAAIA,GAAK,KAAaA,IAAM,GAAKA,GAAK,KACnDA,IAAM,GAAKA,GAAK,MAAgBA,EAAIU,EAAMV,EAAIG,EAAMO,EAAIP,GAAO,EACpE0E,EAAID,EACJA,EAAID,EACJA,EAAID,EACJA,EAAKvD,EAAIM,EAAM,EACfN,EAAIhB,EACJA,EAAIO,EACJA,EAAIV,EACJA,EAAKyB,EAAKC,EAAM,EAEpBtB,EAAE,IAAMJ,EACRI,EAAE,IAAMM,EACRN,EAAE,IAAMD,EACRC,EAAE,IAAMe,EACRf,EAAE,IAAMsE,EACRtE,EAAE,IAAMuE,EACRvE,EAAE,IAAMwE,EACRxE,EAAE,IAAMyE,EACRuF,GAAO,GACPC,GAAO,GAEX,OAAOD,EASX3P,EAAQ8K,KAPR,SAAckG,GACV,IAAI5G,EAAI,IAAIyQ,EACZzQ,EAAEoC,OAAOwE,GACT,IAAIvE,EAASrC,EAAEqC,SAEf,OADArC,EAAEsC,QACKD,I,kCC1OX3M,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAMA,IACrDD,EAAQmb,UAAYnb,EAAQmE,gBAAkBnE,EAAQoE,wBAA0BpE,EAAQob,eAAiBpb,EAAQqb,WAAarb,EAAQsb,kBAAoBtb,EAAQsE,kBAAoBtE,EAAQuE,yBAI9L,MAAME,EAAWtE,EAAQ,QACnBwE,EAASxE,EAAQ,QAUvB,SAASyE,EAAGC,GACR,MAAM1E,EAAI,IAAI2E,aAAa,IAC3B,GAAID,EACA,IAAK,IAAIrC,EAAI,EAAGA,EAAIqC,EAAKxC,OAAQG,IAC7BrC,EAAEqC,GAAKqC,EAAKrC,GAGpB,OAAOrC,EAhBXH,EAAQuE,kBAAoB,GAC5BvE,EAAQsE,kBAAoB,GAC5BtE,EAAQsb,kBAAoB,GAiB5B,MAAMC,EAAK,IAAIhb,WAAW,IAC1Bgb,EAAG,GAAK,EACR,MAAMC,EAAU5W,EAAG,CAAC,MAAQ,IAC5B,SAASY,EAASC,GACd,IAAIC,EAAI,EACR,IAAK,IAAIlD,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACzB,IAAImD,EAAIF,EAAEjD,GAAKkD,EAAI,MACnBA,EAAIE,KAAKC,MAAMF,EAAI,OACnBF,EAAEjD,GAAKmD,EAAQ,MAAJD,EAEfD,EAAE,IAAMC,EAAI,EAAI,IAAMA,EAAI,GAE9B,SAASI,EAASC,EAAGC,EAAGC,GACpB,MAAMP,IAAMO,EAAI,GAChB,IAAK,IAAIzD,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACzB,MAAM0D,EAAIR,GAAKK,EAAEvD,GAAKwD,EAAExD,IACxBuD,EAAEvD,IAAM0D,EACRF,EAAExD,IAAM0D,GAGhB,SAASC,EAAUV,EAAGW,GAClB,MAAMC,EAAIzB,IACJsB,EAAItB,IACV,IAAK,IAAIpC,EAAI,EAAGA,EAAI,GAAIA,IACpB0D,EAAE1D,GAAK4D,EAAE5D,GAEbgD,EAASU,GACTV,EAASU,GACTV,EAASU,GACT,IAAK,IAAII,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACxBD,EAAE,GAAKH,EAAE,GAAK,MACd,IAAK,IAAI1D,EAAI,EAAGA,EAAI,GAAIA,IACpB6D,EAAE7D,GAAK0D,EAAE1D,GAAK,OAAW6D,EAAE7D,EAAI,IAAM,GAAM,GAC3C6D,EAAE7D,EAAI,IAAM,MAEhB6D,EAAE,IAAMH,EAAE,IAAM,OAAWG,EAAE,KAAO,GAAM,GAC1C,MAAMJ,EAAKI,EAAE,KAAO,GAAM,EAC1BA,EAAE,KAAO,MACTP,EAASI,EAAGG,EAAG,EAAIJ,GAEvB,IAAK,IAAIzD,EAAI,EAAGA,EAAI,GAAIA,IACpBiD,EAAE,EAAIjD,GAAY,IAAP0D,EAAE1D,GACbiD,EAAE,EAAIjD,EAAI,GAAK0D,EAAE1D,IAAM,EAS/B,SAASqE,EAAIpB,EAAGF,EAAGU,GACf,IAAK,IAAIzD,EAAI,EAAGA,EAAI,GAAIA,IACpBiD,EAAEjD,GAAK+C,EAAE/C,GAAKyD,EAAEzD,GAGxB,SAASsE,EAAIrB,EAAGF,EAAGU,GACf,IAAK,IAAIzD,EAAI,EAAGA,EAAI,GAAIA,IACpBiD,EAAEjD,GAAK+C,EAAE/C,GAAKyD,EAAEzD,GAGxB,SAASD,EAAIkD,EAAGF,EAAGU,GACf,IAAIN,EAAGD,EAAGqB,EAAK,EAAGC,EAAK,EAAGC,EAAK,EAAGC,EAAK,EAAGC,EAAK,EAAGC,EAAK,EAAGC,EAAK,EAAGC,EAAK,EAAGC,EAAK,EAAGC,EAAK,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAK7C,EAAE,GAAI8C,EAAK9C,EAAE,GAAI+C,EAAK/C,EAAE,GAAIgD,EAAKhD,EAAE,GAAIiD,EAAKjD,EAAE,GAAIkD,EAAKlD,EAAE,GAAImD,EAAKnD,EAAE,GAAIoD,EAAKpD,EAAE,GAAIqD,EAAKrD,EAAE,GAAIsD,EAAKtD,EAAE,GAAIuD,EAAMvD,EAAE,IAAKwD,EAAMxD,EAAE,IAAKyD,EAAMzD,EAAE,IAAK0D,EAAM1D,EAAE,IAAK2D,EAAM3D,EAAE,IAAK4D,EAAM5D,EAAE,IAC9cN,EAAIJ,EAAE,GACNwB,GAAMpB,EAAImD,EACV9B,GAAMrB,EAAIoD,EACV9B,GAAMtB,EAAIqD,EACV9B,GAAMvB,EAAIsD,EACV9B,GAAMxB,EAAIuD,EACV9B,GAAMzB,EAAIwD,EACV9B,GAAM1B,EAAIyD,EACV9B,GAAM3B,EAAI0D,EACV9B,GAAM5B,EAAI2D,EACV9B,GAAM7B,EAAI4D,EACV9B,GAAO9B,EAAI6D,EACX9B,GAAO/B,EAAI8D,EACX9B,GAAOhC,EAAI+D,EACX9B,GAAOjC,EAAIgE,EACX9B,GAAOlC,EAAIiE,EACX9B,GAAOnC,EAAIkE,EACXlE,EAAIJ,EAAE,GACNyB,GAAMrB,EAAImD,EACV7B,GAAMtB,EAAIoD,EACV7B,GAAMvB,EAAIqD,EACV7B,GAAMxB,EAAIsD,EACV7B,GAAMzB,EAAIuD,EACV7B,GAAM1B,EAAIwD,EACV7B,GAAM3B,EAAIyD,EACV7B,GAAM5B,EAAI0D,EACV7B,GAAM7B,EAAI2D,EACV7B,GAAO9B,EAAI4D,EACX7B,GAAO/B,EAAI6D,EACX7B,GAAOhC,EAAI8D,EACX7B,GAAOjC,EAAI+D,EACX7B,GAAOlC,EAAIgE,EACX7B,GAAOnC,EAAIiE,EACX7B,GAAOpC,EAAIkE,EACXlE,EAAIJ,EAAE,GACN0B,GAAMtB,EAAImD,EACV5B,GAAMvB,EAAIoD,EACV5B,GAAMxB,EAAIqD,EACV5B,GAAMzB,EAAIsD,EACV5B,GAAM1B,EAAIuD,EACV5B,GAAM3B,EAAIwD,EACV5B,GAAM5B,EAAIyD,EACV5B,GAAM7B,EAAI0D,EACV5B,GAAO9B,EAAI2D,EACX5B,GAAO/B,EAAI4D,EACX5B,GAAOhC,EAAI6D,EACX5B,GAAOjC,EAAI8D,EACX5B,GAAOlC,EAAI+D,EACX5B,GAAOnC,EAAIgE,EACX5B,GAAOpC,EAAIiE,EACX5B,GAAOrC,EAAIkE,EACXlE,EAAIJ,EAAE,GACN2B,GAAMvB,EAAImD,EACV3B,GAAMxB,EAAIoD,EACV3B,GAAMzB,EAAIqD,EACV3B,GAAM1B,EAAIsD,EACV3B,GAAM3B,EAAIuD,EACV3B,GAAM5B,EAAIwD,EACV3B,GAAM7B,EAAIyD,EACV3B,GAAO9B,EAAI0D,EACX3B,GAAO/B,EAAI2D,EACX3B,GAAOhC,EAAI4D,EACX3B,GAAOjC,EAAI6D,EACX3B,GAAOlC,EAAI8D,EACX3B,GAAOnC,EAAI+D,EACX3B,GAAOpC,EAAIgE,EACX3B,GAAOrC,EAAIiE,EACX3B,GAAOtC,EAAIkE,EACXlE,EAAIJ,EAAE,GACN4B,GAAMxB,EAAImD,EACV1B,GAAMzB,EAAIoD,EACV1B,GAAM1B,EAAIqD,EACV1B,GAAM3B,EAAIsD,EACV1B,GAAM5B,EAAIuD,EACV1B,GAAM7B,EAAIwD,EACV1B,GAAO9B,EAAIyD,EACX1B,GAAO/B,EAAI0D,EACX1B,GAAOhC,EAAI2D,EACX1B,GAAOjC,EAAI4D,EACX1B,GAAOlC,EAAI6D,EACX1B,GAAOnC,EAAI8D,EACX1B,GAAOpC,EAAI+D,EACX1B,GAAOrC,EAAIgE,EACX1B,GAAOtC,EAAIiE,EACX1B,GAAOvC,EAAIkE,EACXlE,EAAIJ,EAAE,GACN6B,GAAMzB,EAAImD,EACVzB,GAAM1B,EAAIoD,EACVzB,GAAM3B,EAAIqD,EACVzB,GAAM5B,EAAIsD,EACVzB,GAAM7B,EAAIuD,EACVzB,GAAO9B,EAAIwD,EACXzB,GAAO/B,EAAIyD,EACXzB,GAAOhC,EAAI0D,EACXzB,GAAOjC,EAAI2D,EACXzB,GAAOlC,EAAI4D,EACXzB,GAAOnC,EAAI6D,EACXzB,GAAOpC,EAAI8D,EACXzB,GAAOrC,EAAI+D,EACXzB,GAAOtC,EAAIgE,EACXzB,GAAOvC,EAAIiE,EACXzB,GAAOxC,EAAIkE,EACXlE,EAAIJ,EAAE,GACN8B,GAAM1B,EAAImD,EACVxB,GAAM3B,EAAIoD,EACVxB,GAAM5B,EAAIqD,EACVxB,GAAM7B,EAAIsD,EACVxB,GAAO9B,EAAIuD,EACXxB,GAAO/B,EAAIwD,EACXxB,GAAOhC,EAAIyD,EACXxB,GAAOjC,EAAI0D,EACXxB,GAAOlC,EAAI2D,EACXxB,GAAOnC,EAAI4D,EACXxB,GAAOpC,EAAI6D,EACXxB,GAAOrC,EAAI8D,EACXxB,GAAOtC,EAAI+D,EACXxB,GAAOvC,EAAIgE,EACXxB,GAAOxC,EAAIiE,EACXxB,GAAOzC,EAAIkE,EACXlE,EAAIJ,EAAE,GACN+B,GAAM3B,EAAImD,EACVvB,GAAM5B,EAAIoD,EACVvB,GAAM7B,EAAIqD,EACVvB,GAAO9B,EAAIsD,EACXvB,GAAO/B,EAAIuD,EACXvB,GAAOhC,EAAIwD,EACXvB,GAAOjC,EAAIyD,EACXvB,GAAOlC,EAAI0D,EACXvB,GAAOnC,EAAI2D,EACXvB,GAAOpC,EAAI4D,EACXvB,GAAOrC,EAAI6D,EACXvB,GAAOtC,EAAI8D,EACXvB,GAAOvC,EAAI+D,EACXvB,GAAOxC,EAAIgE,EACXvB,GAAOzC,EAAIiE,EACXvB,GAAO1C,EAAIkE,EACXlE,EAAIJ,EAAE,GACNgC,GAAM5B,EAAImD,EACVtB,GAAM7B,EAAIoD,EACVtB,GAAO9B,EAAIqD,EACXtB,GAAO/B,EAAIsD,EACXtB,GAAOhC,EAAIuD,EACXtB,GAAOjC,EAAIwD,EACXtB,GAAOlC,EAAIyD,EACXtB,GAAOnC,EAAI0D,EACXtB,GAAOpC,EAAI2D,EACXtB,GAAOrC,EAAI4D,EACXtB,GAAOtC,EAAI6D,EACXtB,GAAOvC,EAAI8D,EACXtB,GAAOxC,EAAI+D,EACXtB,GAAOzC,EAAIgE,EACXtB,GAAO1C,EAAIiE,EACXtB,GAAO3C,EAAIkE,EACXlE,EAAIJ,EAAE,GACNiC,GAAM7B,EAAImD,EACVrB,GAAO9B,EAAIoD,EACXrB,GAAO/B,EAAIqD,EACXrB,GAAOhC,EAAIsD,EACXrB,GAAOjC,EAAIuD,EACXrB,GAAOlC,EAAIwD,EACXrB,GAAOnC,EAAIyD,EACXrB,GAAOpC,EAAI0D,EACXrB,GAAOrC,EAAI2D,EACXrB,GAAOtC,EAAI4D,EACXrB,GAAOvC,EAAI6D,EACXrB,GAAOxC,EAAI8D,EACXrB,GAAOzC,EAAI+D,EACXrB,GAAO1C,EAAIgE,EACXrB,GAAO3C,EAAIiE,EACXrB,GAAO5C,EAAIkE,EACXlE,EAAIJ,EAAE,IACNkC,GAAO9B,EAAImD,EACXpB,GAAO/B,EAAIoD,EACXpB,GAAOhC,EAAIqD,EACXpB,GAAOjC,EAAIsD,EACXpB,GAAOlC,EAAIuD,EACXpB,GAAOnC,EAAIwD,EACXpB,GAAOpC,EAAIyD,EACXpB,GAAOrC,EAAI0D,EACXpB,GAAOtC,EAAI2D,EACXpB,GAAOvC,EAAI4D,EACXpB,GAAOxC,EAAI6D,EACXpB,GAAOzC,EAAI8D,EACXpB,GAAO1C,EAAI+D,EACXpB,GAAO3C,EAAIgE,EACXpB,GAAO5C,EAAIiE,EACXpB,GAAO7C,EAAIkE,EACXlE,EAAIJ,EAAE,IACNmC,GAAO/B,EAAImD,EACXnB,GAAOhC,EAAIoD,EACXnB,GAAOjC,EAAIqD,EACXnB,GAAOlC,EAAIsD,EACXnB,GAAOnC,EAAIuD,EACXnB,GAAOpC,EAAIwD,EACXnB,GAAOrC,EAAIyD,EACXnB,GAAOtC,EAAI0D,EACXnB,GAAOvC,EAAI2D,EACXnB,GAAOxC,EAAI4D,EACXnB,GAAOzC,EAAI6D,EACXnB,GAAO1C,EAAI8D,EACXnB,GAAO3C,EAAI+D,EACXnB,GAAO5C,EAAIgE,EACXnB,GAAO7C,EAAIiE,EACXnB,GAAO9C,EAAIkE,EACXlE,EAAIJ,EAAE,IACNoC,GAAOhC,EAAImD,EACXlB,GAAOjC,EAAIoD,EACXlB,GAAOlC,EAAIqD,EACXlB,GAAOnC,EAAIsD,EACXlB,GAAOpC,EAAIuD,EACXlB,GAAOrC,EAAIwD,EACXlB,GAAOtC,EAAIyD,EACXlB,GAAOvC,EAAI0D,EACXlB,GAAOxC,EAAI2D,EACXlB,GAAOzC,EAAI4D,EACXlB,GAAO1C,EAAI6D,EACXlB,GAAO3C,EAAI8D,EACXlB,GAAO5C,EAAI+D,EACXlB,GAAO7C,EAAIgE,EACXlB,GAAO9C,EAAIiE,EACXlB,GAAO/C,EAAIkE,EACXlE,EAAIJ,EAAE,IACNqC,GAAOjC,EAAImD,EACXjB,GAAOlC,EAAIoD,EACXjB,GAAOnC,EAAIqD,EACXjB,GAAOpC,EAAIsD,EACXjB,GAAOrC,EAAIuD,EACXjB,GAAOtC,EAAIwD,EACXjB,GAAOvC,EAAIyD,EACXjB,GAAOxC,EAAI0D,EACXjB,GAAOzC,EAAI2D,EACXjB,GAAO1C,EAAI4D,EACXjB,GAAO3C,EAAI6D,EACXjB,GAAO5C,EAAI8D,EACXjB,GAAO7C,EAAI+D,EACXjB,GAAO9C,EAAIgE,EACXjB,GAAO/C,EAAIiE,EACXjB,GAAOhD,EAAIkE,EACXlE,EAAIJ,EAAE,IACNsC,GAAOlC,EAAImD,EACXhB,GAAOnC,EAAIoD,EACXhB,GAAOpC,EAAIqD,EACXhB,GAAOrC,EAAIsD,EACXhB,GAAOtC,EAAIuD,EACXhB,GAAOvC,EAAIwD,EACXhB,GAAOxC,EAAIyD,EACXhB,GAAOzC,EAAI0D,EACXhB,GAAO1C,EAAI2D,EACXhB,GAAO3C,EAAI4D,EACXhB,GAAO5C,EAAI6D,EACXhB,GAAO7C,EAAI8D,EACXhB,GAAO9C,EAAI+D,EACXhB,GAAO/C,EAAIgE,EACXhB,GAAOhD,EAAIiE,EACXhB,GAAOjD,EAAIkE,EACXlE,EAAIJ,EAAE,IACNuC,GAAOnC,EAAImD,EACXf,GAAOpC,EAAIoD,EACXf,GAAOrC,EAAIqD,EACXf,GAAOtC,EAAIsD,EACXf,GAAOvC,EAAIuD,EACXf,GAAOxC,EAAIwD,EACXf,GAAOzC,EAAIyD,EACXf,GAAO1C,EAAI0D,EACXf,GAAO3C,EAAI2D,EACXf,GAAO5C,EAAI4D,EACXf,GAAO7C,EAAI6D,EACXf,GAAO9C,EAAI8D,EACXf,GAAO/C,EAAI+D,EACXf,GAAOhD,EAAIgE,EACXf,GAAOjD,EAAIiE,EACXf,GAAOlD,EAAIkE,EACX9C,GAAM,GAAKgB,EACXf,GAAM,GAAKgB,EACXf,GAAM,GAAKgB,EACXf,GAAM,GAAKgB,EACXf,GAAM,GAAKgB,EACXf,GAAM,GAAKgB,EACXf,GAAM,GAAKgB,EACXf,GAAM,GAAKgB,EACXf,GAAM,GAAKgB,EACXf,GAAM,GAAKgB,EACXf,GAAO,GAAKgB,EACZf,GAAO,GAAKgB,EACZf,GAAO,GAAKgB,EACZf,GAAO,GAAKgB,EACZf,GAAO,GAAKgB,EAGZnD,EAAI,EACJC,EAAIoB,EAAKrB,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnBoB,EAAKpB,EAAQ,MAAJD,EACTC,EAAIqB,EAAKtB,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnBqB,EAAKrB,EAAQ,MAAJD,EACTC,EAAIsB,EAAKvB,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnBsB,EAAKtB,EAAQ,MAAJD,EACTC,EAAIuB,EAAKxB,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnBuB,EAAKvB,EAAQ,MAAJD,EACTC,EAAIwB,EAAKzB,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnBwB,EAAKxB,EAAQ,MAAJD,EACTC,EAAIyB,EAAK1B,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnByB,EAAKzB,EAAQ,MAAJD,EACTC,EAAI0B,EAAK3B,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnB0B,EAAK1B,EAAQ,MAAJD,EACTC,EAAI2B,EAAK5B,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnB2B,EAAK3B,EAAQ,MAAJD,EACTC,EAAI4B,EAAK7B,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnB4B,EAAK5B,EAAQ,MAAJD,EACTC,EAAI6B,EAAK9B,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnB6B,EAAK7B,EAAQ,MAAJD,EACTC,EAAI8B,EAAM/B,EAAI,MACdA,EAAIE,KAAKC,MAAMF,EAAI,OACnB8B,EAAM9B,EAAQ,MAAJD,EACVC,EAAI+B,EAAMhC,EAAI,MACdA,EAAIE,KAAKC,MAAMF,EAAI,OACnB+B,EAAM/B,EAAQ,MAAJD,EACVC,EAAIgC,EAAMjC,EAAI,MACdA,EAAIE,KAAKC,MAAMF,EAAI,OACnBgC,EAAMhC,EAAQ,MAAJD,EACVC,EAAIiC,EAAMlC,EAAI,MACdA,EAAIE,KAAKC,MAAMF,EAAI,OACnBiC,EAAMjC,EAAQ,MAAJD,EACVC,EAAIkC,EAAMnC,EAAI,MACdA,EAAIE,KAAKC,MAAMF,EAAI,OACnBkC,EAAMlC,EAAQ,MAAJD,EACVC,EAAImC,EAAMpC,EAAI,MACdA,EAAIE,KAAKC,MAAMF,EAAI,OACnBmC,EAAMnC,EAAQ,MAAJD,EACVqB,GAAMrB,EAAI,EAAI,IAAMA,EAAI,GAExBA,EAAI,EACJC,EAAIoB,EAAKrB,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnBoB,EAAKpB,EAAQ,MAAJD,EACTC,EAAIqB,EAAKtB,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnBqB,EAAKrB,EAAQ,MAAJD,EACTC,EAAIsB,EAAKvB,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnBsB,EAAKtB,EAAQ,MAAJD,EACTC,EAAIuB,EAAKxB,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnBuB,EAAKvB,EAAQ,MAAJD,EACTC,EAAIwB,EAAKzB,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnBwB,EAAKxB,EAAQ,MAAJD,EACTC,EAAIyB,EAAK1B,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnByB,EAAKzB,EAAQ,MAAJD,EACTC,EAAI0B,EAAK3B,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnB0B,EAAK1B,EAAQ,MAAJD,EACTC,EAAI2B,EAAK5B,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnB2B,EAAK3B,EAAQ,MAAJD,EACTC,EAAI4B,EAAK7B,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnB4B,EAAK5B,EAAQ,MAAJD,EACTC,EAAI6B,EAAK9B,EAAI,MACbA,EAAIE,KAAKC,MAAMF,EAAI,OACnB6B,EAAK7B,EAAQ,MAAJD,EACTC,EAAI8B,EAAM/B,EAAI,MACdA,EAAIE,KAAKC,MAAMF,EAAI,OACnB8B,EAAM9B,EAAQ,MAAJD,EACVC,EAAI+B,EAAMhC,EAAI,MACdA,EAAIE,KAAKC,MAAMF,EAAI,OACnB+B,EAAM/B,EAAQ,MAAJD,EACVC,EAAIgC,EAAMjC,EAAI,MACdA,EAAIE,KAAKC,MAAMF,EAAI,OACnBgC,EAAMhC,EAAQ,MAAJD,EACVC,EAAIiC,EAAMlC,EAAI,MACdA,EAAIE,KAAKC,MAAMF,EAAI,OACnBiC,EAAMjC,EAAQ,MAAJD,EACVC,EAAIkC,EAAMnC,EAAI,MACdA,EAAIE,KAAKC,MAAMF,EAAI,OACnBkC,EAAMlC,EAAQ,MAAJD,EACVC,EAAImC,EAAMpC,EAAI,MACdA,EAAIE,KAAKC,MAAMF,EAAI,OACnBmC,EAAMnC,EAAQ,MAAJD,EACVqB,GAAMrB,EAAI,EAAI,IAAMA,EAAI,GACxBD,EAAE,GAAKsB,EACPtB,EAAE,GAAKuB,EACPvB,EAAE,GAAKwB,EACPxB,EAAE,GAAKyB,EACPzB,EAAE,GAAK0B,EACP1B,EAAE,GAAK2B,EACP3B,EAAE,GAAK4B,EACP5B,EAAE,GAAK6B,EACP7B,EAAE,GAAK8B,EACP9B,EAAE,GAAK+B,EACP/B,EAAE,IAAMgC,EACRhC,EAAE,IAAMiC,EACRjC,EAAE,IAAMkC,EACRlC,EAAE,IAAMmC,EACRnC,EAAE,IAAMoC,EACRpC,EAAE,IAAMqC,EAEZ,SAASgC,EAAOrE,EAAGF,GACfhD,EAAIkD,EAAGF,EAAGA,GAiBd,SAAS8V,EAAWjV,EAAGL,GACnB,MAAM6G,EAAI,IAAIrM,WAAW,IACnBiG,EAAI,IAAI1B,aAAa,IACrBS,EAAIX,IAAMqB,EAAIrB,IAAMc,EAAId,IAAM8B,EAAI9B,IAAMqF,EAAIrF,IAAMsF,EAAItF,IAC5D,IAAK,IAAIpC,EAAI,EAAGA,EAAI,GAAIA,IACpBoK,EAAEpK,GAAK4D,EAAE5D,GAEboK,EAAE,IAAe,IAARxG,EAAE,IAAa,GACxBwG,EAAE,IAAM,IAncZ,SAAqBnH,EAAGW,GACpB,IAAK,IAAI5D,EAAI,EAAGA,EAAI,GAAIA,IACpBiD,EAAEjD,GAAK4D,EAAE,EAAI5D,IAAM4D,EAAE,EAAI5D,EAAI,IAAM,GAEvCiD,EAAE,KAAO,MAgcTyG,CAAY1F,EAAGT,GACf,IAAK,IAAIvD,EAAI,EAAGA,EAAI,GAAIA,IACpByD,EAAEzD,GAAKgE,EAAEhE,GAEb+C,EAAE,GAAKmB,EAAE,GAAK,EACd,IAAK,IAAIlE,EAAI,IAAKA,GAAK,IAAKA,EAAG,CAC3B,MAAMrC,EAAKyM,EAAEpK,IAAM,MAAY,EAAJA,GAAU,EACrCsD,EAASP,EAAGU,EAAG9F,GACf2F,EAASJ,EAAGgB,EAAGvG,GACf0G,EAAIoD,EAAG1E,EAAGG,GACVoB,EAAIvB,EAAGA,EAAGG,GACVmB,EAAInB,EAAGO,EAAGS,GACVI,EAAIb,EAAGA,EAAGS,GACVoD,EAAOpD,EAAGuD,GACVH,EAAOI,EAAG3E,GACVhD,EAAIgD,EAAGG,EAAGH,GACVhD,EAAImD,EAAGO,EAAGgE,GACVpD,EAAIoD,EAAG1E,EAAGG,GACVoB,EAAIvB,EAAGA,EAAGG,GACVoE,EAAO7D,EAAGV,GACVuB,EAAIpB,EAAGgB,EAAGwD,GACV3H,EAAIgD,EAAGG,EAAG8V,GACV3U,EAAItB,EAAGA,EAAGmB,GACVnE,EAAImD,EAAGA,EAAGH,GACVhD,EAAIgD,EAAGmB,EAAGwD,GACV3H,EAAImE,EAAGT,EAAGO,GACVsD,EAAO7D,EAAGgE,GACVnE,EAASP,EAAGU,EAAG9F,GACf2F,EAASJ,EAAGgB,EAAGvG,GAEnB,IAAK,IAAIqC,EAAI,EAAGA,EAAI,GAAIA,IACpBgE,EAAEhE,EAAI,IAAM+C,EAAE/C,GACdgE,EAAEhE,EAAI,IAAMkD,EAAElD,GACdgE,EAAEhE,EAAI,IAAMyD,EAAEzD,GACdgE,EAAEhE,EAAI,IAAMkE,EAAElE,GAElB,MAAMiZ,EAAMjV,EAAE6E,SAAS,IACjBqQ,EAAMlV,EAAE6E,SAAS,KA7D3B,SAAkB5F,EAAGkW,GACjB,MAAMjW,EAAId,IACV,IAAK,IAAIpC,EAAI,EAAGA,EAAI,GAAIA,IACpBkD,EAAElD,GAAKmZ,EAAInZ,GAEf,IAAK,IAAIA,EAAI,IAAKA,GAAK,EAAGA,IACtBsH,EAAOpE,EAAGA,GACA,IAANlD,GAAiB,IAANA,GACXD,EAAImD,EAAGA,EAAGiW,GAGlB,IAAK,IAAInZ,EAAI,EAAGA,EAAI,GAAIA,IACpBiD,EAAEjD,GAAKkD,EAAElD,IAkDbuH,CAAS0R,EAAKA,GACdlZ,EAAImZ,EAAKA,EAAKD,GACd,MAAMzV,EAAI,IAAIzF,WAAW,IAEzB,OADA4F,EAAUH,EAAG0V,GACN1V,EAGX,SAASoV,EAAehV,GACpB,OAAOiV,EAAWjV,EAAGmV,GAGzB,SAASnX,EAAwByG,GAC7B,GAAIA,EAAKxI,SAAWrC,EAAQsE,kBACxB,MAAM,IAAIlC,MAAM,wBAAwBpC,EAAQsE,2BAEpD,MAAM0G,EAAY,IAAIzK,WAAWsK,GAEjC,MAAO,CACHE,UAFcqQ,EAAepQ,GAG7BA,aAbRhL,EAAQqb,WAAaA,EAIrBrb,EAAQob,eAAiBA,EAYzBpb,EAAQoE,wBAA0BA,EAOlCpE,EAAQmE,gBANR,SAAyB+G,GACrB,MAAML,KAAWpG,EAAS0G,aAAa,GAAID,GACrC5I,EAAS8B,EAAwByG,GAEvC,OAAM,EADFlG,EAAOyG,MAAMP,GACVvI,GA2CXtC,EAAQmb,UAnBR,SAAmBS,EAAaC,EAAgBC,MAC5C,GAAIF,EAAYvZ,SAAWrC,EAAQuE,kBAC/B,MAAM,IAAInC,MAAM,uCAEpB,GAAIyZ,EAAexZ,SAAWrC,EAAQuE,kBAClC,MAAM,IAAInC,MAAM,uCAEpB,MAAME,EAAS+Y,EAAWO,EAAaC,GACvC,GAAIC,EAAY,CACZ,IAAIC,EAAQ,EACZ,IAAK,IAAIvZ,EAAI,EAAGA,EAAIF,EAAOD,OAAQG,IAC/BuZ,GAASzZ,EAAOE,GAEpB,GAAc,IAAVuZ,EACA,MAAM,IAAI3Z,MAAM,8BAGxB,OAAOE,I,kCCrnBXxC,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAMA,IACrDD,EAAQkV,wBACR,MAAMvQ,EAASxE,EAAQ,QAmCvBH,EAAQkV,iBAlCR,MACIL,cACI5E,KAAK6E,eACL7E,KAAKwG,kBAC+B,CAChC,MAAMuF,EAAa7b,EAAQ,IACvB6b,GAAcA,EAAW7Q,cACzB8E,KAAK8G,QAAUiF,EACf/L,KAAK6E,eACL7E,KAAKwG,oBAIjBtL,YAAY9I,GACR,IAAK4N,KAAK6E,cAAgB7E,KAAK8G,QAC3B,MAAM,IAAI3U,MAAM,mDAGpB,IAAIY,EAASiN,KAAK8G,QAAQ5L,YAAY9I,GAEtC,GAAIW,EAAOX,SAAWA,EAClB,MAAM,IAAID,MAAM,oDAGpB,MAAM/B,EAAM,IAAIE,WAAW8B,GAE3B,IAAK,IAAIG,EAAI,EAAGA,EAAInC,EAAIgC,OAAQG,IAC5BnC,EAAImC,GAAKQ,EAAOR,GAIpB,OAAM,EADFmC,EAAOyG,MAAMpI,GACV3C,K,kCClCfP,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAMA,IACrDD,EAAQic,uBAAyBjc,EAAQkc,aAAelc,EAAQmc,aAAenc,EAAQmL,YAAcnL,EAAQoc,2BAC7G,MAAMC,EAAWlc,EAAQ,QACnB0M,EAAW1M,EAAQ,SACnBwE,EAASxE,EAAQ,QAEvB,SAASgL,EAAY9I,EAAQ6I,EAAOlL,EAAQoc,qBACxC,OAAOlR,EAAKC,YAAY9I,GAF5BrC,EAAQoc,oBAAsB,IAAIC,EAAS3H,mBAI3C1U,EAAQmL,YAAcA,EAetBnL,EAAQmc,aAXR,SAAsBjR,EAAOlL,EAAQoc,qBAEjC,MAAME,EAAMnR,EAAY,EAAGD,GAIrB5I,KAAauK,EAAShM,cAAcyb,GAG1C,OAAM,EADF3X,EAAOyG,MAAMkR,GACVha,GAIX,MAAMia,EAAe,iEAUrB,SAASL,EAAa7Z,EAAQma,EAAUD,EAAcrR,EAAOlL,EAAQoc,qBACjE,GAAII,EAAQna,OAAS,EACjB,MAAM,IAAID,MAAM,qCAEpB,GAAIoa,EAAQna,OAAS,IACjB,MAAM,IAAID,MAAM,oCAEpB,IAAI/B,EAAM,GACV,MAAMoc,EAAWD,EAAQna,OACnBqa,EAAU,IAAO,IAAMD,EAC7B,KAAOpa,EAAS,GAAG,CACf,MAAMia,EAAMnR,EAAYvF,KAAK+W,KAAc,IAATta,EAAeqa,GAAUxR,GAC3D,IAAK,IAAI1I,EAAI,EAAGA,EAAI8Z,EAAIja,QAAUA,EAAS,EAAGG,IAAK,CAC/C,MAAMoa,EAAaN,EAAI9Z,GACnBoa,EAAaF,IACbrc,GAAOmc,EAAQK,OAAOD,EAAaH,GACnCpa,QAGJsC,EAAOyG,MAAMkR,GAErB,OAAOjc,EAEXL,EAAQkc,aAAeA,EAiBvBlc,EAAQic,uBAJR,SAAgCa,EAAMN,EAAUD,EAAcrR,EAAOlL,EAAQoc,qBAEzE,OAAOF,EADQtW,KAAK+W,KAAKG,GAAQlX,KAAKmX,IAAIP,EAAQna,QAAUuD,KAAKoX,MACrCR,EAAStR,K,kCC1EzCpL,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAMA,IAYrDD,EAAQuC,IAAMqD,KAAKqX,MAPnB,SAAkB1X,EAAGU,GACjB,IAA8BiX,EAAS,MAAJ3X,EACL4X,EAAS,MAAJlX,EACnC,OAASiX,EAAKC,IAFJ5X,IAAM,GAAM,OAEM4X,EAAKD,GADvBjX,IAAM,GAAM,QACuB,KAAQ,GAAK,GAS9DjG,EAAQ6G,IAHR,SAAatB,EAAGU,GACZ,OAAQV,EAAIU,EAAK,GAOrBjG,EAAQ8G,IAHR,SAAavB,EAAGU,GACZ,OAAQV,EAAIU,EAAK,GAOrBjG,EAAQod,KAHR,SAAc5W,EAAGJ,GACb,OAAOI,GAAKJ,EAAII,IAAO,GAAKJ,GAOhCpG,EAAQqd,KAHR,SAAc7W,EAAGJ,GACb,OAAOI,GAAM,GAAKJ,EAAKI,IAAMJ,GAWjCpG,EAAQsd,UAAYC,OAAOD,WAR3B,SAAuBlX,GACnB,MAAoB,iBAANA,GAAkBoX,SAASpX,IAAMR,KAAKC,MAAMO,KAAOA,GAarEpG,EAAQyd,iBAAmB,iBAO3Bzd,EAAQ2C,cAAgB,SAAUyD,GAC9B,OAAOpG,EAAQsd,UAAUlX,IAAOA,IAAMpG,EAAQyd,kBAAoBrX,GAAKpG,EAAQyd,mB,kCCvDnF3d,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAMA,IACrD,IAAIyd,EAASvd,EAAQ,QACjBwE,EAASxE,EAAQ,QASjBwd,EAAsB,WAStB,SAASA,EAAK7S,EAAMkC,EAAK4Q,EAAMC,YACvBD,IAAmBA,EAAO,IAAIrd,WAAW,IAC7C0P,KAAK6N,SAAW,IAAIvd,WAAW,GAC/B0P,KAAK8N,MAAQjT,EACbmF,KAAK+N,MAAQH,EAEb,IAAII,EAAMP,EAAOxM,KAAKjB,KAAK8N,MAAOH,EAAM5Q,GAExCiD,KAAKiO,MAAQ,IAAIR,EAAO1N,KAAKlF,EAAMmT,GAEnChO,KAAK2B,QAAU,IAAIrR,WAAW0P,KAAKiO,MAAM5N,cACzCL,KAAKkO,QAAUlO,KAAK2B,QAAQvP,OAmDhC,OAhDAsb,EAAK9M,UAAUuN,YAAc,WAEzBnO,KAAK6N,SAAS,KACd,IAAIO,EAAMpO,KAAK6N,SAAS,GAExB,GAAY,IAARO,EACA,MAAM,IAAIjc,MAAM,4BAGpB6N,KAAKiO,MAAMvR,QAGP0R,EAAM,GACNpO,KAAKiO,MAAM1R,OAAOyD,KAAK2B,SAGvB3B,KAAK+N,OACL/N,KAAKiO,MAAM1R,OAAOyD,KAAK+N,OAG3B/N,KAAKiO,MAAM1R,OAAOyD,KAAK6N,UAEvB7N,KAAKiO,MAAM1N,OAAOP,KAAK2B,SAEvB3B,KAAKkO,QAAU,GAQnBR,EAAK9M,UAAUyN,OAAS,SAAUjc,GAE9B,IADA,IAAIhC,EAAM,IAAIE,WAAW8B,GAChBG,EAAI,EAAGA,EAAInC,EAAIgC,OAAQG,IACxByN,KAAKkO,UAAYlO,KAAK2B,QAAQvP,QAC9B4N,KAAKmO,cAET/d,EAAImC,GAAKyN,KAAK2B,QAAQ3B,KAAKkO,WAE/B,OAAO9d,GAEXsd,EAAK9M,UAAUnE,MAAQ,WACnBuD,KAAKiO,MAAMxR,QACX/H,EAAOyG,KAAK6E,KAAK2B,SACjBjN,EAAOyG,KAAK6E,KAAK6N,UACjB7N,KAAKkO,QAAU,GAEZR,EAvEe,GAyE1B3d,EAAQ2d,KAAOA,G,kCCpFf7d,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAMA,IAuBrDD,EAAQoL,KATR,SAAc1K,GAIV,IAAK,IAAI8B,EAAI,EAAGA,EAAI9B,EAAM2B,OAAQG,IAC9B9B,EAAM8B,GAAK,EAEf,OAAO9B","file":"js/chunk-vendors~968c033f.502a1606.js","sourcesContent":["\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package binary provides functions for encoding and decoding numbers in byte arrays.\n */\nvar int_1 = require(\"@stablelib/int\");\n// TODO(dchest): add asserts for correct value ranges and array offsets.\n/**\n * Reads 2 bytes from array starting at offset as big-endian\n * signed 16-bit integer and returns it.\n */\nfunction readInt16BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return (((array[offset + 0] << 8) | array[offset + 1]) << 16) >> 16;\n}\nexports.readInt16BE = readInt16BE;\n/**\n * Reads 2 bytes from array starting at offset as big-endian\n * unsigned 16-bit integer and returns it.\n */\nfunction readUint16BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return ((array[offset + 0] << 8) | array[offset + 1]) >>> 0;\n}\nexports.readUint16BE = readUint16BE;\n/**\n * Reads 2 bytes from array starting at offset as little-endian\n * signed 16-bit integer and returns it.\n */\nfunction readInt16LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return (((array[offset + 1] << 8) | array[offset]) << 16) >> 16;\n}\nexports.readInt16LE = readInt16LE;\n/**\n * Reads 2 bytes from array starting at offset as little-endian\n * unsigned 16-bit integer and returns it.\n */\nfunction readUint16LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return ((array[offset + 1] << 8) | array[offset]) >>> 0;\n}\nexports.readUint16LE = readUint16LE;\n/**\n * Writes 2-byte big-endian representation of 16-bit unsigned\n * value to byte array starting at offset.\n *\n * If byte array is not given, creates a new 2-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeUint16BE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(2); }\n if (offset === void 0) { offset = 0; }\n out[offset + 0] = value >>> 8;\n out[offset + 1] = value >>> 0;\n return out;\n}\nexports.writeUint16BE = writeUint16BE;\nexports.writeInt16BE = writeUint16BE;\n/**\n * Writes 2-byte little-endian representation of 16-bit unsigned\n * value to array starting at offset.\n *\n * If byte array is not given, creates a new 2-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeUint16LE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(2); }\n if (offset === void 0) { offset = 0; }\n out[offset + 0] = value >>> 0;\n out[offset + 1] = value >>> 8;\n return out;\n}\nexports.writeUint16LE = writeUint16LE;\nexports.writeInt16LE = writeUint16LE;\n/**\n * Reads 4 bytes from array starting at offset as big-endian\n * signed 32-bit integer and returns it.\n */\nfunction readInt32BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return (array[offset] << 24) |\n (array[offset + 1] << 16) |\n (array[offset + 2] << 8) |\n array[offset + 3];\n}\nexports.readInt32BE = readInt32BE;\n/**\n * Reads 4 bytes from array starting at offset as big-endian\n * unsigned 32-bit integer and returns it.\n */\nfunction readUint32BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return ((array[offset] << 24) |\n (array[offset + 1] << 16) |\n (array[offset + 2] << 8) |\n array[offset + 3]) >>> 0;\n}\nexports.readUint32BE = readUint32BE;\n/**\n * Reads 4 bytes from array starting at offset as little-endian\n * signed 32-bit integer and returns it.\n */\nfunction readInt32LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return (array[offset + 3] << 24) |\n (array[offset + 2] << 16) |\n (array[offset + 1] << 8) |\n array[offset];\n}\nexports.readInt32LE = readInt32LE;\n/**\n * Reads 4 bytes from array starting at offset as little-endian\n * unsigned 32-bit integer and returns it.\n */\nfunction readUint32LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return ((array[offset + 3] << 24) |\n (array[offset + 2] << 16) |\n (array[offset + 1] << 8) |\n array[offset]) >>> 0;\n}\nexports.readUint32LE = readUint32LE;\n/**\n * Writes 4-byte big-endian representation of 32-bit unsigned\n * value to byte array starting at offset.\n *\n * If byte array is not given, creates a new 4-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeUint32BE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(4); }\n if (offset === void 0) { offset = 0; }\n out[offset + 0] = value >>> 24;\n out[offset + 1] = value >>> 16;\n out[offset + 2] = value >>> 8;\n out[offset + 3] = value >>> 0;\n return out;\n}\nexports.writeUint32BE = writeUint32BE;\nexports.writeInt32BE = writeUint32BE;\n/**\n * Writes 4-byte little-endian representation of 32-bit unsigned\n * value to array starting at offset.\n *\n * If byte array is not given, creates a new 4-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeUint32LE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(4); }\n if (offset === void 0) { offset = 0; }\n out[offset + 0] = value >>> 0;\n out[offset + 1] = value >>> 8;\n out[offset + 2] = value >>> 16;\n out[offset + 3] = value >>> 24;\n return out;\n}\nexports.writeUint32LE = writeUint32LE;\nexports.writeInt32LE = writeUint32LE;\n/**\n * Reads 8 bytes from array starting at offset as big-endian\n * signed 64-bit integer and returns it.\n *\n * IMPORTANT: due to JavaScript limitation, supports exact\n * numbers in range -9007199254740991 to 9007199254740991.\n * If the number stored in the byte array is outside this range,\n * the result is not exact.\n */\nfunction readInt64BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var hi = readInt32BE(array, offset);\n var lo = readInt32BE(array, offset + 4);\n return hi * 0x100000000 + lo - ((lo >> 31) * 0x100000000);\n}\nexports.readInt64BE = readInt64BE;\n/**\n * Reads 8 bytes from array starting at offset as big-endian\n * unsigned 64-bit integer and returns it.\n *\n * IMPORTANT: due to JavaScript limitation, supports values up to 2^53-1.\n */\nfunction readUint64BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var hi = readUint32BE(array, offset);\n var lo = readUint32BE(array, offset + 4);\n return hi * 0x100000000 + lo;\n}\nexports.readUint64BE = readUint64BE;\n/**\n * Reads 8 bytes from array starting at offset as little-endian\n * signed 64-bit integer and returns it.\n *\n * IMPORTANT: due to JavaScript limitation, supports exact\n * numbers in range -9007199254740991 to 9007199254740991.\n * If the number stored in the byte array is outside this range,\n * the result is not exact.\n */\nfunction readInt64LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var lo = readInt32LE(array, offset);\n var hi = readInt32LE(array, offset + 4);\n return hi * 0x100000000 + lo - ((lo >> 31) * 0x100000000);\n}\nexports.readInt64LE = readInt64LE;\n/**\n * Reads 8 bytes from array starting at offset as little-endian\n * unsigned 64-bit integer and returns it.\n *\n * IMPORTANT: due to JavaScript limitation, supports values up to 2^53-1.\n */\nfunction readUint64LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var lo = readUint32LE(array, offset);\n var hi = readUint32LE(array, offset + 4);\n return hi * 0x100000000 + lo;\n}\nexports.readUint64LE = readUint64LE;\n/**\n * Writes 8-byte big-endian representation of 64-bit unsigned\n * value to byte array starting at offset.\n *\n * Due to JavaScript limitation, supports values up to 2^53-1.\n *\n * If byte array is not given, creates a new 8-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeUint64BE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(8); }\n if (offset === void 0) { offset = 0; }\n writeUint32BE(value / 0x100000000 >>> 0, out, offset);\n writeUint32BE(value >>> 0, out, offset + 4);\n return out;\n}\nexports.writeUint64BE = writeUint64BE;\nexports.writeInt64BE = writeUint64BE;\n/**\n * Writes 8-byte little-endian representation of 64-bit unsigned\n * value to byte array starting at offset.\n *\n * Due to JavaScript limitation, supports values up to 2^53-1.\n *\n * If byte array is not given, creates a new 8-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeUint64LE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(8); }\n if (offset === void 0) { offset = 0; }\n writeUint32LE(value >>> 0, out, offset);\n writeUint32LE(value / 0x100000000 >>> 0, out, offset + 4);\n return out;\n}\nexports.writeUint64LE = writeUint64LE;\nexports.writeInt64LE = writeUint64LE;\n/**\n * Reads bytes from array starting at offset as big-endian\n * unsigned bitLen-bit integer and returns it.\n *\n * Supports bit lengths divisible by 8, up to 48.\n */\nfunction readUintBE(bitLength, array, offset) {\n if (offset === void 0) { offset = 0; }\n // TODO(dchest): implement support for bitLengths non-divisible by 8\n if (bitLength % 8 !== 0) {\n throw new Error(\"readUintBE supports only bitLengths divisible by 8\");\n }\n if (bitLength / 8 > array.length - offset) {\n throw new Error(\"readUintBE: array is too short for the given bitLength\");\n }\n var result = 0;\n var mul = 1;\n for (var i = bitLength / 8 + offset - 1; i >= offset; i--) {\n result += array[i] * mul;\n mul *= 256;\n }\n return result;\n}\nexports.readUintBE = readUintBE;\n/**\n * Reads bytes from array starting at offset as little-endian\n * unsigned bitLen-bit integer and returns it.\n *\n * Supports bit lengths divisible by 8, up to 48.\n */\nfunction readUintLE(bitLength, array, offset) {\n if (offset === void 0) { offset = 0; }\n // TODO(dchest): implement support for bitLengths non-divisible by 8\n if (bitLength % 8 !== 0) {\n throw new Error(\"readUintLE supports only bitLengths divisible by 8\");\n }\n if (bitLength / 8 > array.length - offset) {\n throw new Error(\"readUintLE: array is too short for the given bitLength\");\n }\n var result = 0;\n var mul = 1;\n for (var i = offset; i < offset + bitLength / 8; i++) {\n result += array[i] * mul;\n mul *= 256;\n }\n return result;\n}\nexports.readUintLE = readUintLE;\n/**\n * Writes a big-endian representation of bitLen-bit unsigned\n * value to array starting at offset.\n *\n * Supports bit lengths divisible by 8, up to 48.\n *\n * If byte array is not given, creates a new one.\n *\n * Returns the output byte array.\n */\nfunction writeUintBE(bitLength, value, out, offset) {\n if (out === void 0) { out = new Uint8Array(bitLength / 8); }\n if (offset === void 0) { offset = 0; }\n // TODO(dchest): implement support for bitLengths non-divisible by 8\n if (bitLength % 8 !== 0) {\n throw new Error(\"writeUintBE supports only bitLengths divisible by 8\");\n }\n if (!int_1.isSafeInteger(value)) {\n throw new Error(\"writeUintBE value must be an integer\");\n }\n var div = 1;\n for (var i = bitLength / 8 + offset - 1; i >= offset; i--) {\n out[i] = (value / div) & 0xff;\n div *= 256;\n }\n return out;\n}\nexports.writeUintBE = writeUintBE;\n/**\n * Writes a little-endian representation of bitLen-bit unsigned\n * value to array starting at offset.\n *\n * Supports bit lengths divisible by 8, up to 48.\n *\n * If byte array is not given, creates a new one.\n *\n * Returns the output byte array.\n */\nfunction writeUintLE(bitLength, value, out, offset) {\n if (out === void 0) { out = new Uint8Array(bitLength / 8); }\n if (offset === void 0) { offset = 0; }\n // TODO(dchest): implement support for bitLengths non-divisible by 8\n if (bitLength % 8 !== 0) {\n throw new Error(\"writeUintLE supports only bitLengths divisible by 8\");\n }\n if (!int_1.isSafeInteger(value)) {\n throw new Error(\"writeUintLE value must be an integer\");\n }\n var div = 1;\n for (var i = offset; i < offset + bitLength / 8; i++) {\n out[i] = (value / div) & 0xff;\n div *= 256;\n }\n return out;\n}\nexports.writeUintLE = writeUintLE;\n/**\n * Reads 4 bytes from array starting at offset as big-endian\n * 32-bit floating-point number and returns it.\n */\nfunction readFloat32BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getFloat32(offset);\n}\nexports.readFloat32BE = readFloat32BE;\n/**\n * Reads 4 bytes from array starting at offset as little-endian\n * 32-bit floating-point number and returns it.\n */\nfunction readFloat32LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getFloat32(offset, true);\n}\nexports.readFloat32LE = readFloat32LE;\n/**\n * Reads 8 bytes from array starting at offset as big-endian\n * 64-bit floating-point number (\"double\") and returns it.\n */\nfunction readFloat64BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getFloat64(offset);\n}\nexports.readFloat64BE = readFloat64BE;\n/**\n * Reads 8 bytes from array starting at offset as little-endian\n * 64-bit floating-point number (\"double\") and returns it.\n */\nfunction readFloat64LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getFloat64(offset, true);\n}\nexports.readFloat64LE = readFloat64LE;\n/**\n * Writes 4-byte big-endian floating-point representation of value\n * to byte array starting at offset.\n *\n * If byte array is not given, creates a new 4-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeFloat32BE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(4); }\n if (offset === void 0) { offset = 0; }\n var view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n view.setFloat32(offset, value);\n return out;\n}\nexports.writeFloat32BE = writeFloat32BE;\n/**\n * Writes 4-byte little-endian floating-point representation of value\n * to byte array starting at offset.\n *\n * If byte array is not given, creates a new 4-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeFloat32LE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(4); }\n if (offset === void 0) { offset = 0; }\n var view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n view.setFloat32(offset, value, true);\n return out;\n}\nexports.writeFloat32LE = writeFloat32LE;\n/**\n * Writes 8-byte big-endian floating-point representation of value\n * to byte array starting at offset.\n *\n * If byte array is not given, creates a new 8-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeFloat64BE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(8); }\n if (offset === void 0) { offset = 0; }\n var view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n view.setFloat64(offset, value);\n return out;\n}\nexports.writeFloat64BE = writeFloat64BE;\n/**\n * Writes 8-byte little-endian floating-point representation of value\n * to byte array starting at offset.\n *\n * If byte array is not given, creates a new 8-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeFloat64LE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(8); }\n if (offset === void 0) { offset = 0; }\n var view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n view.setFloat64(offset, value, true);\n return out;\n}\nexports.writeFloat64LE = writeFloat64LE;\n//# sourceMappingURL=binary.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertSecretKeyToX25519 = exports.convertPublicKeyToX25519 = exports.verify = exports.sign = exports.extractPublicKeyFromSecretKey = exports.generateKeyPair = exports.generateKeyPairFromSeed = exports.SEED_LENGTH = exports.SECRET_KEY_LENGTH = exports.PUBLIC_KEY_LENGTH = exports.SIGNATURE_LENGTH = void 0;\n/**\n * Package ed25519 implements Ed25519 public-key signature algorithm.\n */\nconst random_1 = require(\"@stablelib/random\");\nconst sha512_1 = require(\"@stablelib/sha512\");\nconst wipe_1 = require(\"@stablelib/wipe\");\nexports.SIGNATURE_LENGTH = 64;\nexports.PUBLIC_KEY_LENGTH = 32;\nexports.SECRET_KEY_LENGTH = 64;\nexports.SEED_LENGTH = 32;\n// Returns new zero-filled 16-element GF (Float64Array).\n// If passed an array of numbers, prefills the returned\n// array with them.\n//\n// We use Float64Array, because we need 48-bit numbers\n// for this implementation.\nfunction gf(init) {\n const r = new Float64Array(16);\n if (init) {\n for (let i = 0; i < init.length; i++) {\n r[i] = init[i];\n }\n }\n return r;\n}\n// Base point.\nconst _9 = new Uint8Array(32);\n_9[0] = 9;\nconst gf0 = gf();\nconst gf1 = gf([1]);\nconst D = gf([\n 0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070,\n 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203\n]);\nconst D2 = gf([\n 0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0,\n 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406\n]);\nconst X = gf([\n 0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c,\n 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169\n]);\nconst Y = gf([\n 0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666,\n 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666\n]);\nconst I = gf([\n 0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43,\n 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83\n]);\nfunction set25519(r, a) {\n for (let i = 0; i < 16; i++) {\n r[i] = a[i] | 0;\n }\n}\nfunction car25519(o) {\n let c = 1;\n for (let i = 0; i < 16; i++) {\n let v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c - 1 + 37 * (c - 1);\n}\nfunction sel25519(p, q, b) {\n const c = ~(b - 1);\n for (let i = 0; i < 16; i++) {\n const t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\nfunction pack25519(o, n) {\n const m = gf();\n const t = gf();\n for (let i = 0; i < 16; i++) {\n t[i] = n[i];\n }\n car25519(t);\n car25519(t);\n car25519(t);\n for (let j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (let i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i - 1] >> 16) & 1);\n m[i - 1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14] >> 16) & 1);\n const b = (m[15] >> 16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1 - b);\n }\n for (let i = 0; i < 16; i++) {\n o[2 * i] = t[i] & 0xff;\n o[2 * i + 1] = t[i] >> 8;\n }\n}\nfunction verify32(x, y) {\n let d = 0;\n for (let i = 0; i < 32; i++) {\n d |= x[i] ^ y[i];\n }\n return (1 & ((d - 1) >>> 8)) - 1;\n}\nfunction neq25519(a, b) {\n const c = new Uint8Array(32);\n const d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return verify32(c, d);\n}\nfunction par25519(a) {\n const d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\nfunction unpack25519(o, n) {\n for (let i = 0; i < 16; i++) {\n o[i] = n[2 * i] + (n[2 * i + 1] << 8);\n }\n o[15] &= 0x7fff;\n}\nfunction add(o, a, b) {\n for (let i = 0; i < 16; i++) {\n o[i] = a[i] + b[i];\n }\n}\nfunction sub(o, a, b) {\n for (let i = 0; i < 16; i++) {\n o[i] = a[i] - b[i];\n }\n}\nfunction mul(o, a, b) {\n let v, c, t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0, t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0, t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0, b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3], b4 = b[4], b5 = b[5], b6 = b[6], b7 = b[7], b8 = b[8], b9 = b[9], b10 = b[10], b11 = b[11], b12 = b[12], b13 = b[13], b14 = b[14], b15 = b[15];\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n // first car\n c = 1;\n v = t0 + c + 65535;\n c = Math.floor(v / 65536);\n t0 = v - c * 65536;\n v = t1 + c + 65535;\n c = Math.floor(v / 65536);\n t1 = v - c * 65536;\n v = t2 + c + 65535;\n c = Math.floor(v / 65536);\n t2 = v - c * 65536;\n v = t3 + c + 65535;\n c = Math.floor(v / 65536);\n t3 = v - c * 65536;\n v = t4 + c + 65535;\n c = Math.floor(v / 65536);\n t4 = v - c * 65536;\n v = t5 + c + 65535;\n c = Math.floor(v / 65536);\n t5 = v - c * 65536;\n v = t6 + c + 65535;\n c = Math.floor(v / 65536);\n t6 = v - c * 65536;\n v = t7 + c + 65535;\n c = Math.floor(v / 65536);\n t7 = v - c * 65536;\n v = t8 + c + 65535;\n c = Math.floor(v / 65536);\n t8 = v - c * 65536;\n v = t9 + c + 65535;\n c = Math.floor(v / 65536);\n t9 = v - c * 65536;\n v = t10 + c + 65535;\n c = Math.floor(v / 65536);\n t10 = v - c * 65536;\n v = t11 + c + 65535;\n c = Math.floor(v / 65536);\n t11 = v - c * 65536;\n v = t12 + c + 65535;\n c = Math.floor(v / 65536);\n t12 = v - c * 65536;\n v = t13 + c + 65535;\n c = Math.floor(v / 65536);\n t13 = v - c * 65536;\n v = t14 + c + 65535;\n c = Math.floor(v / 65536);\n t14 = v - c * 65536;\n v = t15 + c + 65535;\n c = Math.floor(v / 65536);\n t15 = v - c * 65536;\n t0 += c - 1 + 37 * (c - 1);\n // second car\n c = 1;\n v = t0 + c + 65535;\n c = Math.floor(v / 65536);\n t0 = v - c * 65536;\n v = t1 + c + 65535;\n c = Math.floor(v / 65536);\n t1 = v - c * 65536;\n v = t2 + c + 65535;\n c = Math.floor(v / 65536);\n t2 = v - c * 65536;\n v = t3 + c + 65535;\n c = Math.floor(v / 65536);\n t3 = v - c * 65536;\n v = t4 + c + 65535;\n c = Math.floor(v / 65536);\n t4 = v - c * 65536;\n v = t5 + c + 65535;\n c = Math.floor(v / 65536);\n t5 = v - c * 65536;\n v = t6 + c + 65535;\n c = Math.floor(v / 65536);\n t6 = v - c * 65536;\n v = t7 + c + 65535;\n c = Math.floor(v / 65536);\n t7 = v - c * 65536;\n v = t8 + c + 65535;\n c = Math.floor(v / 65536);\n t8 = v - c * 65536;\n v = t9 + c + 65535;\n c = Math.floor(v / 65536);\n t9 = v - c * 65536;\n v = t10 + c + 65535;\n c = Math.floor(v / 65536);\n t10 = v - c * 65536;\n v = t11 + c + 65535;\n c = Math.floor(v / 65536);\n t11 = v - c * 65536;\n v = t12 + c + 65535;\n c = Math.floor(v / 65536);\n t12 = v - c * 65536;\n v = t13 + c + 65535;\n c = Math.floor(v / 65536);\n t13 = v - c * 65536;\n v = t14 + c + 65535;\n c = Math.floor(v / 65536);\n t14 = v - c * 65536;\n v = t15 + c + 65535;\n c = Math.floor(v / 65536);\n t15 = v - c * 65536;\n t0 += c - 1 + 37 * (c - 1);\n o[0] = t0;\n o[1] = t1;\n o[2] = t2;\n o[3] = t3;\n o[4] = t4;\n o[5] = t5;\n o[6] = t6;\n o[7] = t7;\n o[8] = t8;\n o[9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\nfunction square(o, a) {\n mul(o, a, a);\n}\nfunction inv25519(o, i) {\n const c = gf();\n let a;\n for (a = 0; a < 16; a++) {\n c[a] = i[a];\n }\n for (a = 253; a >= 0; a--) {\n square(c, c);\n if (a !== 2 && a !== 4) {\n mul(c, c, i);\n }\n }\n for (a = 0; a < 16; a++) {\n o[a] = c[a];\n }\n}\nfunction pow2523(o, i) {\n const c = gf();\n let a;\n for (a = 0; a < 16; a++) {\n c[a] = i[a];\n }\n for (a = 250; a >= 0; a--) {\n square(c, c);\n if (a !== 1) {\n mul(c, c, i);\n }\n }\n for (a = 0; a < 16; a++) {\n o[a] = c[a];\n }\n}\nfunction edadd(p, q) {\n const a = gf(), b = gf(), c = gf(), d = gf(), e = gf(), f = gf(), g = gf(), h = gf(), t = gf();\n sub(a, p[1], p[0]);\n sub(t, q[1], q[0]);\n mul(a, a, t);\n add(b, p[0], p[1]);\n add(t, q[0], q[1]);\n mul(b, b, t);\n mul(c, p[3], q[3]);\n mul(c, c, D2);\n mul(d, p[2], q[2]);\n add(d, d, d);\n sub(e, b, a);\n sub(f, d, c);\n add(g, d, c);\n add(h, b, a);\n mul(p[0], e, f);\n mul(p[1], h, g);\n mul(p[2], g, f);\n mul(p[3], e, h);\n}\nfunction cswap(p, q, b) {\n for (let i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\nfunction pack(r, p) {\n const tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n mul(tx, p[0], zi);\n mul(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\nfunction scalarmult(p, q, s) {\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (let i = 255; i >= 0; --i) {\n const b = (s[(i / 8) | 0] >> (i & 7)) & 1;\n cswap(p, q, b);\n edadd(q, p);\n edadd(p, p);\n cswap(p, q, b);\n }\n}\nfunction scalarbase(p, s) {\n const q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n mul(q[3], X, Y);\n scalarmult(p, q, s);\n}\n// Generates key pair from secret 32-byte seed.\nfunction generateKeyPairFromSeed(seed) {\n if (seed.length !== exports.SEED_LENGTH) {\n throw new Error(`ed25519: seed must be ${exports.SEED_LENGTH} bytes`);\n }\n const d = (0, sha512_1.hash)(seed);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n const publicKey = new Uint8Array(32);\n const p = [gf(), gf(), gf(), gf()];\n scalarbase(p, d);\n pack(publicKey, p);\n const secretKey = new Uint8Array(64);\n secretKey.set(seed);\n secretKey.set(publicKey, 32);\n return {\n publicKey,\n secretKey\n };\n}\nexports.generateKeyPairFromSeed = generateKeyPairFromSeed;\nfunction generateKeyPair(prng) {\n const seed = (0, random_1.randomBytes)(32, prng);\n const result = generateKeyPairFromSeed(seed);\n (0, wipe_1.wipe)(seed);\n return result;\n}\nexports.generateKeyPair = generateKeyPair;\nfunction extractPublicKeyFromSecretKey(secretKey) {\n if (secretKey.length !== exports.SECRET_KEY_LENGTH) {\n throw new Error(`ed25519: secret key must be ${exports.SECRET_KEY_LENGTH} bytes`);\n }\n return new Uint8Array(secretKey.subarray(32));\n}\nexports.extractPublicKeyFromSecretKey = extractPublicKeyFromSecretKey;\nconst L = new Float64Array([\n 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2,\n 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10\n]);\nfunction modL(r, x) {\n let carry;\n let i;\n let j;\n let k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) {\n x[j] -= carry * L[j];\n }\n for (i = 0; i < 32; i++) {\n x[i + 1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\nfunction reduce(r) {\n const x = new Float64Array(64);\n for (let i = 0; i < 64; i++) {\n x[i] = r[i];\n }\n for (let i = 0; i < 64; i++) {\n r[i] = 0;\n }\n modL(r, x);\n}\n// Returns 64-byte signature of the message under the 64-byte secret key.\nfunction sign(secretKey, message) {\n const x = new Float64Array(64);\n const p = [gf(), gf(), gf(), gf()];\n const d = (0, sha512_1.hash)(secretKey.subarray(0, 32));\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n const signature = new Uint8Array(64);\n signature.set(d.subarray(32), 32);\n const hs = new sha512_1.SHA512();\n hs.update(signature.subarray(32));\n hs.update(message);\n const r = hs.digest();\n hs.clean();\n reduce(r);\n scalarbase(p, r);\n pack(signature, p);\n hs.reset();\n hs.update(signature.subarray(0, 32));\n hs.update(secretKey.subarray(32));\n hs.update(message);\n const h = hs.digest();\n reduce(h);\n for (let i = 0; i < 32; i++) {\n x[i] = r[i];\n }\n for (let i = 0; i < 32; i++) {\n for (let j = 0; j < 32; j++) {\n x[i + j] += h[i] * d[j];\n }\n }\n modL(signature.subarray(32), x);\n return signature;\n}\nexports.sign = sign;\nfunction unpackneg(r, p) {\n const t = gf(), chk = gf(), num = gf(), den = gf(), den2 = gf(), den4 = gf(), den6 = gf();\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n square(num, r[1]);\n mul(den, num, D);\n sub(num, num, r[2]);\n add(den, r[2], den);\n square(den2, den);\n square(den4, den2);\n mul(den6, den4, den2);\n mul(t, den6, num);\n mul(t, t, den);\n pow2523(t, t);\n mul(t, t, num);\n mul(t, t, den);\n mul(t, t, den);\n mul(r[0], t, den);\n square(chk, r[0]);\n mul(chk, chk, den);\n if (neq25519(chk, num)) {\n mul(r[0], r[0], I);\n }\n square(chk, r[0]);\n mul(chk, chk, den);\n if (neq25519(chk, num)) {\n return -1;\n }\n if (par25519(r[0]) === (p[31] >> 7)) {\n sub(r[0], gf0, r[0]);\n }\n mul(r[3], r[0], r[1]);\n return 0;\n}\nfunction verify(publicKey, message, signature) {\n const t = new Uint8Array(32);\n const p = [gf(), gf(), gf(), gf()];\n const q = [gf(), gf(), gf(), gf()];\n if (signature.length !== exports.SIGNATURE_LENGTH) {\n throw new Error(`ed25519: signature must be ${exports.SIGNATURE_LENGTH} bytes`);\n }\n if (unpackneg(q, publicKey)) {\n return false;\n }\n const hs = new sha512_1.SHA512();\n hs.update(signature.subarray(0, 32));\n hs.update(publicKey);\n hs.update(message);\n const h = hs.digest();\n reduce(h);\n scalarmult(p, q, h);\n scalarbase(q, signature.subarray(32));\n edadd(p, q);\n pack(t, p);\n if (verify32(signature, t)) {\n return false;\n }\n return true;\n}\nexports.verify = verify;\n/**\n * Convert Ed25519 public key to X25519 public key.\n *\n * Throws if given an invalid public key.\n */\nfunction convertPublicKeyToX25519(publicKey) {\n let q = [gf(), gf(), gf(), gf()];\n if (unpackneg(q, publicKey)) {\n throw new Error(\"Ed25519: invalid public key\");\n }\n // Formula: montgomeryX = (edwardsY + 1)*inverse(1 - edwardsY) mod p\n let a = gf();\n let b = gf();\n let y = q[1];\n add(a, gf1, y);\n sub(b, gf1, y);\n inv25519(b, b);\n mul(a, a, b);\n let z = new Uint8Array(32);\n pack25519(z, a);\n return z;\n}\nexports.convertPublicKeyToX25519 = convertPublicKeyToX25519;\n/**\n * Convert Ed25519 secret (private) key to X25519 secret key.\n */\nfunction convertSecretKeyToX25519(secretKey) {\n const d = (0, sha512_1.hash)(secretKey.subarray(0, 32));\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n const o = new Uint8Array(d.subarray(0, 32));\n (0, wipe_1.wipe)(d);\n return o;\n}\nexports.convertSecretKeyToX25519 = convertSecretKeyToX25519;\n//# sourceMappingURL=ed25519.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package chacha implements ChaCha stream cipher.\n */\nvar binary_1 = require(\"@stablelib/binary\");\nvar wipe_1 = require(\"@stablelib/wipe\");\n// Number of ChaCha rounds (ChaCha20).\nvar ROUNDS = 20;\n// Applies the ChaCha core function to 16-byte input,\n// 32-byte key key, and puts the result into 64-byte array out.\nfunction core(out, input, key) {\n var j0 = 0x61707865; // \"expa\" -- ChaCha's \"sigma\" constant\n var j1 = 0x3320646E; // \"nd 3\" for 32-byte keys\n var j2 = 0x79622D32; // \"2-by\"\n var j3 = 0x6B206574; // \"te k\"\n var j4 = (key[3] << 24) | (key[2] << 16) | (key[1] << 8) | key[0];\n var j5 = (key[7] << 24) | (key[6] << 16) | (key[5] << 8) | key[4];\n var j6 = (key[11] << 24) | (key[10] << 16) | (key[9] << 8) | key[8];\n var j7 = (key[15] << 24) | (key[14] << 16) | (key[13] << 8) | key[12];\n var j8 = (key[19] << 24) | (key[18] << 16) | (key[17] << 8) | key[16];\n var j9 = (key[23] << 24) | (key[22] << 16) | (key[21] << 8) | key[20];\n var j10 = (key[27] << 24) | (key[26] << 16) | (key[25] << 8) | key[24];\n var j11 = (key[31] << 24) | (key[30] << 16) | (key[29] << 8) | key[28];\n var j12 = (input[3] << 24) | (input[2] << 16) | (input[1] << 8) | input[0];\n var j13 = (input[7] << 24) | (input[6] << 16) | (input[5] << 8) | input[4];\n var j14 = (input[11] << 24) | (input[10] << 16) | (input[9] << 8) | input[8];\n var j15 = (input[15] << 24) | (input[14] << 16) | (input[13] << 8) | input[12];\n var x0 = j0;\n var x1 = j1;\n var x2 = j2;\n var x3 = j3;\n var x4 = j4;\n var x5 = j5;\n var x6 = j6;\n var x7 = j7;\n var x8 = j8;\n var x9 = j9;\n var x10 = j10;\n var x11 = j11;\n var x12 = j12;\n var x13 = j13;\n var x14 = j14;\n var x15 = j15;\n for (var i = 0; i < ROUNDS; i += 2) {\n x0 = x0 + x4 | 0;\n x12 ^= x0;\n x12 = x12 >>> (32 - 16) | x12 << 16;\n x8 = x8 + x12 | 0;\n x4 ^= x8;\n x4 = x4 >>> (32 - 12) | x4 << 12;\n x1 = x1 + x5 | 0;\n x13 ^= x1;\n x13 = x13 >>> (32 - 16) | x13 << 16;\n x9 = x9 + x13 | 0;\n x5 ^= x9;\n x5 = x5 >>> (32 - 12) | x5 << 12;\n x2 = x2 + x6 | 0;\n x14 ^= x2;\n x14 = x14 >>> (32 - 16) | x14 << 16;\n x10 = x10 + x14 | 0;\n x6 ^= x10;\n x6 = x6 >>> (32 - 12) | x6 << 12;\n x3 = x3 + x7 | 0;\n x15 ^= x3;\n x15 = x15 >>> (32 - 16) | x15 << 16;\n x11 = x11 + x15 | 0;\n x7 ^= x11;\n x7 = x7 >>> (32 - 12) | x7 << 12;\n x2 = x2 + x6 | 0;\n x14 ^= x2;\n x14 = x14 >>> (32 - 8) | x14 << 8;\n x10 = x10 + x14 | 0;\n x6 ^= x10;\n x6 = x6 >>> (32 - 7) | x6 << 7;\n x3 = x3 + x7 | 0;\n x15 ^= x3;\n x15 = x15 >>> (32 - 8) | x15 << 8;\n x11 = x11 + x15 | 0;\n x7 ^= x11;\n x7 = x7 >>> (32 - 7) | x7 << 7;\n x1 = x1 + x5 | 0;\n x13 ^= x1;\n x13 = x13 >>> (32 - 8) | x13 << 8;\n x9 = x9 + x13 | 0;\n x5 ^= x9;\n x5 = x5 >>> (32 - 7) | x5 << 7;\n x0 = x0 + x4 | 0;\n x12 ^= x0;\n x12 = x12 >>> (32 - 8) | x12 << 8;\n x8 = x8 + x12 | 0;\n x4 ^= x8;\n x4 = x4 >>> (32 - 7) | x4 << 7;\n x0 = x0 + x5 | 0;\n x15 ^= x0;\n x15 = x15 >>> (32 - 16) | x15 << 16;\n x10 = x10 + x15 | 0;\n x5 ^= x10;\n x5 = x5 >>> (32 - 12) | x5 << 12;\n x1 = x1 + x6 | 0;\n x12 ^= x1;\n x12 = x12 >>> (32 - 16) | x12 << 16;\n x11 = x11 + x12 | 0;\n x6 ^= x11;\n x6 = x6 >>> (32 - 12) | x6 << 12;\n x2 = x2 + x7 | 0;\n x13 ^= x2;\n x13 = x13 >>> (32 - 16) | x13 << 16;\n x8 = x8 + x13 | 0;\n x7 ^= x8;\n x7 = x7 >>> (32 - 12) | x7 << 12;\n x3 = x3 + x4 | 0;\n x14 ^= x3;\n x14 = x14 >>> (32 - 16) | x14 << 16;\n x9 = x9 + x14 | 0;\n x4 ^= x9;\n x4 = x4 >>> (32 - 12) | x4 << 12;\n x2 = x2 + x7 | 0;\n x13 ^= x2;\n x13 = x13 >>> (32 - 8) | x13 << 8;\n x8 = x8 + x13 | 0;\n x7 ^= x8;\n x7 = x7 >>> (32 - 7) | x7 << 7;\n x3 = x3 + x4 | 0;\n x14 ^= x3;\n x14 = x14 >>> (32 - 8) | x14 << 8;\n x9 = x9 + x14 | 0;\n x4 ^= x9;\n x4 = x4 >>> (32 - 7) | x4 << 7;\n x1 = x1 + x6 | 0;\n x12 ^= x1;\n x12 = x12 >>> (32 - 8) | x12 << 8;\n x11 = x11 + x12 | 0;\n x6 ^= x11;\n x6 = x6 >>> (32 - 7) | x6 << 7;\n x0 = x0 + x5 | 0;\n x15 ^= x0;\n x15 = x15 >>> (32 - 8) | x15 << 8;\n x10 = x10 + x15 | 0;\n x5 ^= x10;\n x5 = x5 >>> (32 - 7) | x5 << 7;\n }\n binary_1.writeUint32LE(x0 + j0 | 0, out, 0);\n binary_1.writeUint32LE(x1 + j1 | 0, out, 4);\n binary_1.writeUint32LE(x2 + j2 | 0, out, 8);\n binary_1.writeUint32LE(x3 + j3 | 0, out, 12);\n binary_1.writeUint32LE(x4 + j4 | 0, out, 16);\n binary_1.writeUint32LE(x5 + j5 | 0, out, 20);\n binary_1.writeUint32LE(x6 + j6 | 0, out, 24);\n binary_1.writeUint32LE(x7 + j7 | 0, out, 28);\n binary_1.writeUint32LE(x8 + j8 | 0, out, 32);\n binary_1.writeUint32LE(x9 + j9 | 0, out, 36);\n binary_1.writeUint32LE(x10 + j10 | 0, out, 40);\n binary_1.writeUint32LE(x11 + j11 | 0, out, 44);\n binary_1.writeUint32LE(x12 + j12 | 0, out, 48);\n binary_1.writeUint32LE(x13 + j13 | 0, out, 52);\n binary_1.writeUint32LE(x14 + j14 | 0, out, 56);\n binary_1.writeUint32LE(x15 + j15 | 0, out, 60);\n}\n/**\n * Encrypt src with ChaCha20 stream generated for the given 32-byte key and\n * 8-byte (as in original implementation) or 12-byte (as in RFC7539) nonce and\n * write the result into dst and return it.\n *\n * dst and src may be the same, but otherwise must not overlap.\n *\n * If nonce is 12 bytes, users should not encrypt more than 256 GiB with the\n * same key and nonce, otherwise the stream will repeat. The function will\n * throw error if counter overflows to prevent this.\n *\n * If nonce is 8 bytes, the output is practically unlimited (2^70 bytes, which\n * is more than a million petabytes). However, it is not recommended to\n * generate 8-byte nonces randomly, as the chance of collision is high.\n *\n * Never use the same key and nonce to encrypt more than one message.\n *\n * If nonceInplaceCounterLength is not 0, the nonce is assumed to be a 16-byte\n * array with stream counter in first nonceInplaceCounterLength bytes and nonce\n * in the last remaining bytes. The counter will be incremented inplace for\n * each ChaCha block. This is useful if you need to encrypt one stream of data\n * in chunks.\n */\nfunction streamXOR(key, nonce, src, dst, nonceInplaceCounterLength) {\n if (nonceInplaceCounterLength === void 0) { nonceInplaceCounterLength = 0; }\n // We only support 256-bit keys.\n if (key.length !== 32) {\n throw new Error(\"ChaCha: key size must be 32 bytes\");\n }\n if (dst.length < src.length) {\n throw new Error(\"ChaCha: destination is shorter than source\");\n }\n var nc;\n var counterLength;\n if (nonceInplaceCounterLength === 0) {\n if (nonce.length !== 8 && nonce.length !== 12) {\n throw new Error(\"ChaCha nonce must be 8 or 12 bytes\");\n }\n nc = new Uint8Array(16);\n // First counterLength bytes of nc are counter, starting with zero.\n counterLength = nc.length - nonce.length;\n // Last bytes of nc after counterLength are nonce, set them.\n nc.set(nonce, counterLength);\n }\n else {\n if (nonce.length !== 16) {\n throw new Error(\"ChaCha nonce with counter must be 16 bytes\");\n }\n // This will update passed nonce with counter inplace.\n nc = nonce;\n counterLength = nonceInplaceCounterLength;\n }\n // Allocate temporary space for ChaCha block.\n var block = new Uint8Array(64);\n for (var i = 0; i < src.length; i += 64) {\n // Generate a block.\n core(block, nc, key);\n // XOR block bytes with src into dst.\n for (var j = i; j < i + 64 && j < src.length; j++) {\n dst[j] = src[j] ^ block[j - i];\n }\n // Increment counter.\n incrementCounter(nc, 0, counterLength);\n }\n // Cleanup temporary space.\n wipe_1.wipe(block);\n if (nonceInplaceCounterLength === 0) {\n // Cleanup counter.\n wipe_1.wipe(nc);\n }\n return dst;\n}\nexports.streamXOR = streamXOR;\n/**\n * Generate ChaCha20 stream for the given 32-byte key and 8-byte or 12-byte\n * nonce and write it into dst and return it.\n *\n * Never use the same key and nonce to generate more than one stream.\n *\n * If nonceInplaceCounterLength is not 0, it behaves the same with respect to\n * the nonce as described in the streamXOR documentation.\n *\n * stream is like streamXOR with all-zero src.\n */\nfunction stream(key, nonce, dst, nonceInplaceCounterLength) {\n if (nonceInplaceCounterLength === void 0) { nonceInplaceCounterLength = 0; }\n wipe_1.wipe(dst);\n return streamXOR(key, nonce, dst, dst, nonceInplaceCounterLength);\n}\nexports.stream = stream;\nfunction incrementCounter(counter, pos, len) {\n var carry = 1;\n while (len--) {\n carry = carry + (counter[pos] & 0xff) | 0;\n counter[pos] = carry & 0xff;\n carry >>>= 8;\n pos++;\n }\n if (carry > 0) {\n throw new Error(\"ChaCha: counter overflow\");\n }\n}\n//# sourceMappingURL=chacha.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package hmac implements HMAC algorithm.\n */\nvar hash_1 = require(\"@stablelib/hash\");\nvar constant_time_1 = require(\"@stablelib/constant-time\");\nvar wipe_1 = require(\"@stablelib/wipe\");\n/**\n * HMAC implements hash-based message authentication algorithm.\n */\nvar HMAC = /** @class */ (function () {\n /**\n * Constructs a new HMAC with the given Hash and secret key.\n */\n function HMAC(hash, key) {\n this._finished = false; // true if HMAC was finalized\n // Initialize inner and outer hashes.\n this._inner = new hash();\n this._outer = new hash();\n // Set block and digest sizes for this HMAC\n // instance to values from the hash.\n this.blockSize = this._outer.blockSize;\n this.digestLength = this._outer.digestLength;\n // Pad temporary stores a key (or its hash) padded with zeroes.\n var pad = new Uint8Array(this.blockSize);\n if (key.length > this.blockSize) {\n // If key is bigger than hash block size, it must be\n // hashed and this hash is used as a key instead.\n this._inner.update(key).finish(pad).clean();\n }\n else {\n // Otherwise, copy the key into pad.\n pad.set(key);\n }\n // Now two different keys are derived from padded key\n // by xoring a different byte value to each.\n // To make inner hash key, xor byte 0x36 into pad.\n for (var i = 0; i < pad.length; i++) {\n pad[i] ^= 0x36;\n }\n // Update inner hash with the result.\n this._inner.update(pad);\n // To make outer hash key, xor byte 0x5c into pad.\n // But since we already xored 0x36 there, we must\n // first undo this by xoring it again.\n for (var i = 0; i < pad.length; i++) {\n pad[i] ^= 0x36 ^ 0x5c;\n }\n // Update outer hash with the result.\n this._outer.update(pad);\n // Save states of both hashes, so that we can quickly restore\n // them later in reset() without the need to remember the actual\n // key and perform this initialization again.\n if (hash_1.isSerializableHash(this._inner) && hash_1.isSerializableHash(this._outer)) {\n this._innerKeyedState = this._inner.saveState();\n this._outerKeyedState = this._outer.saveState();\n }\n // Clean pad.\n wipe_1.wipe(pad);\n }\n /**\n * Returns HMAC state to the state initialized with key\n * to make it possible to run HMAC over the other data with the same\n * key without creating a new instance.\n */\n HMAC.prototype.reset = function () {\n if (!hash_1.isSerializableHash(this._inner) || !hash_1.isSerializableHash(this._outer)) {\n throw new Error(\"hmac: can't reset() because hash doesn't implement restoreState()\");\n }\n // Restore keyed states of inner and outer hashes.\n this._inner.restoreState(this._innerKeyedState);\n this._outer.restoreState(this._outerKeyedState);\n this._finished = false;\n return this;\n };\n /**\n * Cleans HMAC state.\n */\n HMAC.prototype.clean = function () {\n if (hash_1.isSerializableHash(this._inner)) {\n this._inner.cleanSavedState(this._innerKeyedState);\n }\n if (hash_1.isSerializableHash(this._outer)) {\n this._outer.cleanSavedState(this._outerKeyedState);\n }\n this._inner.clean();\n this._outer.clean();\n };\n /**\n * Updates state with provided data.\n */\n HMAC.prototype.update = function (data) {\n this._inner.update(data);\n return this;\n };\n /**\n * Finalizes HMAC and puts the result in out.\n */\n HMAC.prototype.finish = function (out) {\n if (this._finished) {\n // If HMAC was finalized, outer hash is also finalized,\n // so it produces the same digest it produced when it\n // was finalized.\n this._outer.finish(out);\n return this;\n }\n // Finalize inner hash and store the result temporarily.\n this._inner.finish(out);\n // Update outer hash with digest of inner hash and and finalize it.\n this._outer.update(out.subarray(0, this.digestLength)).finish(out);\n this._finished = true;\n return this;\n };\n /**\n * Returns the computed message authentication code.\n */\n HMAC.prototype.digest = function () {\n var out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n };\n /**\n * Saves HMAC state.\n * This function is needed for PBKDF2 optimization.\n */\n HMAC.prototype.saveState = function () {\n if (!hash_1.isSerializableHash(this._inner)) {\n throw new Error(\"hmac: can't saveState() because hash doesn't implement it\");\n }\n return this._inner.saveState();\n };\n HMAC.prototype.restoreState = function (savedState) {\n if (!hash_1.isSerializableHash(this._inner) || !hash_1.isSerializableHash(this._outer)) {\n throw new Error(\"hmac: can't restoreState() because hash doesn't implement it\");\n }\n this._inner.restoreState(savedState);\n this._outer.restoreState(this._outerKeyedState);\n this._finished = false;\n return this;\n };\n HMAC.prototype.cleanSavedState = function (savedState) {\n if (!hash_1.isSerializableHash(this._inner)) {\n throw new Error(\"hmac: can't cleanSavedState() because hash doesn't implement it\");\n }\n this._inner.cleanSavedState(savedState);\n };\n return HMAC;\n}());\nexports.HMAC = HMAC;\n/**\n * Returns HMAC using the given hash constructor for the key over data.\n */\nfunction hmac(hash, key, data) {\n var h = new HMAC(hash, key);\n h.update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n}\nexports.hmac = hmac;\n/**\n * Returns true if two HMAC digests are equal.\n * Uses constant-time comparison to avoid leaking timing information.\n *\n * Example:\n *\n * const receivedDigest = ...\n * const realDigest = hmac(SHA256, key, data);\n * if (!equal(receivedDigest, realDigest)) {\n * throw new Error(\"Authentication error\");\n * }\n */\nexports.equal = constant_time_1.equal;\n//# sourceMappingURL=hmac.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package constant-time provides functions for performing algorithmically constant-time operations.\n */\n/**\n * NOTE! Due to the inability to guarantee real constant time evaluation of\n * anything in JavaScript VM, this is module is the best effort.\n */\n/**\n * Returns resultIfOne if subject is 1, or resultIfZero if subject is 0.\n *\n * Supports only 32-bit integers, so resultIfOne or resultIfZero are not\n * integers, they'll be converted to them with bitwise operations.\n */\nfunction select(subject, resultIfOne, resultIfZero) {\n return (~(subject - 1) & resultIfOne) | ((subject - 1) & resultIfZero);\n}\nexports.select = select;\n/**\n * Returns 1 if a <= b, or 0 if not.\n * Arguments must be positive 32-bit integers less than or equal to 2^31 - 1.\n */\nfunction lessOrEqual(a, b) {\n return (((a | 0) - (b | 0) - 1) >>> 31) & 1;\n}\nexports.lessOrEqual = lessOrEqual;\n/**\n * Returns 1 if a and b are of equal length and their contents\n * are equal, or 0 otherwise.\n *\n * Note that unlike in equal(), zero-length inputs are considered\n * the same, so this function will return 1.\n */\nfunction compare(a, b) {\n if (a.length !== b.length) {\n return 0;\n }\n var result = 0;\n for (var i = 0; i < a.length; i++) {\n result |= a[i] ^ b[i];\n }\n return (1 & ((result - 1) >>> 8));\n}\nexports.compare = compare;\n/**\n * Returns true if a and b are of equal non-zero length,\n * and their contents are equal, or false otherwise.\n *\n * Note that unlike in compare() zero-length inputs are considered\n * _not_ equal, so this function will return false.\n */\nfunction equal(a, b) {\n if (a.length === 0 || b.length === 0) {\n return false;\n }\n return compare(a, b) !== 0;\n}\nexports.equal = equal;\n//# sourceMappingURL=constant-time.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package poly1305 implements Poly1305 one-time message authentication algorithm.\n */\nvar constant_time_1 = require(\"@stablelib/constant-time\");\nvar wipe_1 = require(\"@stablelib/wipe\");\nexports.DIGEST_LENGTH = 16;\n// Port of Andrew Moon's Poly1305-donna-16. Public domain.\n// https://github.com/floodyberry/poly1305-donna\n/**\n * Poly1305 computes 16-byte authenticator of message using\n * a one-time 32-byte key.\n *\n * Important: key should be used for only one message,\n * it should never repeat.\n */\nvar Poly1305 = /** @class */ (function () {\n function Poly1305(key) {\n this.digestLength = exports.DIGEST_LENGTH;\n this._buffer = new Uint8Array(16);\n this._r = new Uint16Array(10);\n this._h = new Uint16Array(10);\n this._pad = new Uint16Array(8);\n this._leftover = 0;\n this._fin = 0;\n this._finished = false;\n var t0 = key[0] | key[1] << 8;\n this._r[0] = (t0) & 0x1fff;\n var t1 = key[2] | key[3] << 8;\n this._r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n var t2 = key[4] | key[5] << 8;\n this._r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n var t3 = key[6] | key[7] << 8;\n this._r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n var t4 = key[8] | key[9] << 8;\n this._r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this._r[5] = ((t4 >>> 1)) & 0x1ffe;\n var t5 = key[10] | key[11] << 8;\n this._r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n var t6 = key[12] | key[13] << 8;\n this._r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n var t7 = key[14] | key[15] << 8;\n this._r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this._r[9] = ((t7 >>> 5)) & 0x007f;\n this._pad[0] = key[16] | key[17] << 8;\n this._pad[1] = key[18] | key[19] << 8;\n this._pad[2] = key[20] | key[21] << 8;\n this._pad[3] = key[22] | key[23] << 8;\n this._pad[4] = key[24] | key[25] << 8;\n this._pad[5] = key[26] | key[27] << 8;\n this._pad[6] = key[28] | key[29] << 8;\n this._pad[7] = key[30] | key[31] << 8;\n }\n Poly1305.prototype._blocks = function (m, mpos, bytes) {\n var hibit = this._fin ? 0 : 1 << 11;\n var h0 = this._h[0], h1 = this._h[1], h2 = this._h[2], h3 = this._h[3], h4 = this._h[4], h5 = this._h[5], h6 = this._h[6], h7 = this._h[7], h8 = this._h[8], h9 = this._h[9];\n var r0 = this._r[0], r1 = this._r[1], r2 = this._r[2], r3 = this._r[3], r4 = this._r[4], r5 = this._r[5], r6 = this._r[6], r7 = this._r[7], r8 = this._r[8], r9 = this._r[9];\n while (bytes >= 16) {\n var t0 = m[mpos + 0] | m[mpos + 1] << 8;\n h0 += (t0) & 0x1fff;\n var t1 = m[mpos + 2] | m[mpos + 3] << 8;\n h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n var t2 = m[mpos + 4] | m[mpos + 5] << 8;\n h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n var t3 = m[mpos + 6] | m[mpos + 7] << 8;\n h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n var t4 = m[mpos + 8] | m[mpos + 9] << 8;\n h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n var t5 = m[mpos + 10] | m[mpos + 11] << 8;\n h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n var t6 = m[mpos + 12] | m[mpos + 13] << 8;\n h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n var t7 = m[mpos + 14] | m[mpos + 15] << 8;\n h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n var c = 0;\n var d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = (d0 >>> 13);\n d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += (d0 >>> 13);\n d0 &= 0x1fff;\n var d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = (d1 >>> 13);\n d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += (d1 >>> 13);\n d1 &= 0x1fff;\n var d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = (d2 >>> 13);\n d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += (d2 >>> 13);\n d2 &= 0x1fff;\n var d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = (d3 >>> 13);\n d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += (d3 >>> 13);\n d3 &= 0x1fff;\n var d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = (d4 >>> 13);\n d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += (d4 >>> 13);\n d4 &= 0x1fff;\n var d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = (d5 >>> 13);\n d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += (d5 >>> 13);\n d5 &= 0x1fff;\n var d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = (d6 >>> 13);\n d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += (d6 >>> 13);\n d6 &= 0x1fff;\n var d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = (d7 >>> 13);\n d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += (d7 >>> 13);\n d7 &= 0x1fff;\n var d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = (d8 >>> 13);\n d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += (d8 >>> 13);\n d8 &= 0x1fff;\n var d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = (d9 >>> 13);\n d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += (d9 >>> 13);\n d9 &= 0x1fff;\n c = (((c << 2) + c)) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = (c >>> 13);\n d1 += c;\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n mpos += 16;\n bytes -= 16;\n }\n this._h[0] = h0;\n this._h[1] = h1;\n this._h[2] = h2;\n this._h[3] = h3;\n this._h[4] = h4;\n this._h[5] = h5;\n this._h[6] = h6;\n this._h[7] = h7;\n this._h[8] = h8;\n this._h[9] = h9;\n };\n Poly1305.prototype.finish = function (mac, macpos) {\n if (macpos === void 0) { macpos = 0; }\n var g = new Uint16Array(10);\n var c;\n var mask;\n var f;\n var i;\n if (this._leftover) {\n i = this._leftover;\n this._buffer[i++] = 1;\n for (; i < 16; i++) {\n this._buffer[i] = 0;\n }\n this._fin = 1;\n this._blocks(this._buffer, 0, 16);\n }\n c = this._h[1] >>> 13;\n this._h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this._h[i] += c;\n c = this._h[i] >>> 13;\n this._h[i] &= 0x1fff;\n }\n this._h[0] += (c * 5);\n c = this._h[0] >>> 13;\n this._h[0] &= 0x1fff;\n this._h[1] += c;\n c = this._h[1] >>> 13;\n this._h[1] &= 0x1fff;\n this._h[2] += c;\n g[0] = this._h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this._h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= (1 << 13);\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) {\n g[i] &= mask;\n }\n mask = ~mask;\n for (i = 0; i < 10; i++) {\n this._h[i] = (this._h[i] & mask) | g[i];\n }\n this._h[0] = ((this._h[0]) | (this._h[1] << 13)) & 0xffff;\n this._h[1] = ((this._h[1] >>> 3) | (this._h[2] << 10)) & 0xffff;\n this._h[2] = ((this._h[2] >>> 6) | (this._h[3] << 7)) & 0xffff;\n this._h[3] = ((this._h[3] >>> 9) | (this._h[4] << 4)) & 0xffff;\n this._h[4] = ((this._h[4] >>> 12) | (this._h[5] << 1) | (this._h[6] << 14)) & 0xffff;\n this._h[5] = ((this._h[6] >>> 2) | (this._h[7] << 11)) & 0xffff;\n this._h[6] = ((this._h[7] >>> 5) | (this._h[8] << 8)) & 0xffff;\n this._h[7] = ((this._h[8] >>> 8) | (this._h[9] << 5)) & 0xffff;\n f = this._h[0] + this._pad[0];\n this._h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this._h[i] + this._pad[i]) | 0) + (f >>> 16)) | 0;\n this._h[i] = f & 0xffff;\n }\n mac[macpos + 0] = this._h[0] >>> 0;\n mac[macpos + 1] = this._h[0] >>> 8;\n mac[macpos + 2] = this._h[1] >>> 0;\n mac[macpos + 3] = this._h[1] >>> 8;\n mac[macpos + 4] = this._h[2] >>> 0;\n mac[macpos + 5] = this._h[2] >>> 8;\n mac[macpos + 6] = this._h[3] >>> 0;\n mac[macpos + 7] = this._h[3] >>> 8;\n mac[macpos + 8] = this._h[4] >>> 0;\n mac[macpos + 9] = this._h[4] >>> 8;\n mac[macpos + 10] = this._h[5] >>> 0;\n mac[macpos + 11] = this._h[5] >>> 8;\n mac[macpos + 12] = this._h[6] >>> 0;\n mac[macpos + 13] = this._h[6] >>> 8;\n mac[macpos + 14] = this._h[7] >>> 0;\n mac[macpos + 15] = this._h[7] >>> 8;\n this._finished = true;\n return this;\n };\n Poly1305.prototype.update = function (m) {\n var mpos = 0;\n var bytes = m.length;\n var want;\n if (this._leftover) {\n want = (16 - this._leftover);\n if (want > bytes) {\n want = bytes;\n }\n for (var i = 0; i < want; i++) {\n this._buffer[this._leftover + i] = m[mpos + i];\n }\n bytes -= want;\n mpos += want;\n this._leftover += want;\n if (this._leftover < 16) {\n return this;\n }\n this._blocks(this._buffer, 0, 16);\n this._leftover = 0;\n }\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this._blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n if (bytes) {\n for (var i = 0; i < bytes; i++) {\n this._buffer[this._leftover + i] = m[mpos + i];\n }\n this._leftover += bytes;\n }\n return this;\n };\n Poly1305.prototype.digest = function () {\n // TODO(dchest): it behaves differently than other hashes/HMAC,\n // because it throws when finished — others just return saved result.\n if (this._finished) {\n throw new Error(\"Poly1305 was finished\");\n }\n var mac = new Uint8Array(16);\n this.finish(mac);\n return mac;\n };\n Poly1305.prototype.clean = function () {\n wipe_1.wipe(this._buffer);\n wipe_1.wipe(this._r);\n wipe_1.wipe(this._h);\n wipe_1.wipe(this._pad);\n this._leftover = 0;\n this._fin = 0;\n this._finished = true; // mark as finished even if not\n return this;\n };\n return Poly1305;\n}());\nexports.Poly1305 = Poly1305;\n/**\n * Returns 16-byte authenticator of data using a one-time 32-byte key.\n *\n * Important: key should be used for only one message, it should never repeat.\n */\nfunction oneTimeAuth(key, data) {\n var h = new Poly1305(key);\n h.update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n}\nexports.oneTimeAuth = oneTimeAuth;\n/**\n * Returns true if two authenticators are 16-byte long and equal.\n * Uses contant-time comparison to avoid leaking timing information.\n */\nfunction equal(a, b) {\n if (a.length !== exports.DIGEST_LENGTH || b.length !== exports.DIGEST_LENGTH) {\n return false;\n }\n return constant_time_1.equal(a, b);\n}\nexports.equal = equal;\n//# sourceMappingURL=poly1305.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SystemRandomSource = void 0;\nconst browser_1 = require(\"./browser\");\nconst node_1 = require(\"./node\");\nclass SystemRandomSource {\n constructor() {\n this.isAvailable = false;\n this.name = \"\";\n // Try browser.\n this._source = new browser_1.BrowserRandomSource();\n if (this._source.isAvailable) {\n this.isAvailable = true;\n this.name = \"Browser\";\n return;\n }\n // If no browser source, try Node.\n this._source = new node_1.NodeRandomSource();\n if (this._source.isAvailable) {\n this.isAvailable = true;\n this.name = \"Node\";\n return;\n }\n // No sources, we're out of options.\n }\n randomBytes(length) {\n if (!this.isAvailable) {\n throw new Error(\"System random byte generator is not available.\");\n }\n return this._source.randomBytes(length);\n }\n}\nexports.SystemRandomSource = SystemRandomSource;\n//# sourceMappingURL=system.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar chacha_1 = require(\"@stablelib/chacha\");\nvar poly1305_1 = require(\"@stablelib/poly1305\");\nvar wipe_1 = require(\"@stablelib/wipe\");\nvar binary_1 = require(\"@stablelib/binary\");\nvar constant_time_1 = require(\"@stablelib/constant-time\");\nexports.KEY_LENGTH = 32;\nexports.NONCE_LENGTH = 12;\nexports.TAG_LENGTH = 16;\nvar ZEROS = new Uint8Array(16);\n/**\n * ChaCha20-Poly1305 Authenticated Encryption with Associated Data.\n *\n * Defined in RFC7539.\n */\nvar ChaCha20Poly1305 = /** @class */ (function () {\n /**\n * Creates a new instance with the given 32-byte key.\n */\n function ChaCha20Poly1305(key) {\n this.nonceLength = exports.NONCE_LENGTH;\n this.tagLength = exports.TAG_LENGTH;\n if (key.length !== exports.KEY_LENGTH) {\n throw new Error(\"ChaCha20Poly1305 needs 32-byte key\");\n }\n // Copy key.\n this._key = new Uint8Array(key);\n }\n /**\n * Encrypts and authenticates plaintext, authenticates associated data,\n * and returns sealed ciphertext, which includes authentication tag.\n *\n * RFC7539 specifies 12 bytes for nonce. It may be this 12-byte nonce\n * (\"IV\"), or full 16-byte counter (called \"32-bit fixed-common part\")\n * and nonce.\n *\n * If dst is given (it must be the size of plaintext + the size of tag\n * length) the result will be put into it. Dst and plaintext must not\n * overlap.\n */\n ChaCha20Poly1305.prototype.seal = function (nonce, plaintext, associatedData, dst) {\n if (nonce.length > 16) {\n throw new Error(\"ChaCha20Poly1305: incorrect nonce length\");\n }\n // Allocate space for counter, and set nonce as last bytes of it.\n var counter = new Uint8Array(16);\n counter.set(nonce, counter.length - nonce.length);\n // Generate authentication key by taking first 32-bytes of stream.\n // We pass full counter, which has 12-byte nonce and 4-byte block counter,\n // and it will get incremented after generating the block, which is\n // exactly what we need: we only use the first 32 bytes of 64-byte\n // ChaCha block and discard the next 32 bytes.\n var authKey = new Uint8Array(32);\n chacha_1.stream(this._key, counter, authKey, 4);\n // Allocate space for sealed ciphertext.\n var resultLength = plaintext.length + this.tagLength;\n var result;\n if (dst) {\n if (dst.length !== resultLength) {\n throw new Error(\"ChaCha20Poly1305: incorrect destination length\");\n }\n result = dst;\n }\n else {\n result = new Uint8Array(resultLength);\n }\n // Encrypt plaintext.\n chacha_1.streamXOR(this._key, counter, plaintext, result, 4);\n // Authenticate.\n // XXX: can \"simplify\" here: pass full result (which is already padded\n // due to zeroes prepared for tag), and ciphertext length instead of\n // subarray of result.\n this._authenticate(result.subarray(result.length - this.tagLength, result.length), authKey, result.subarray(0, result.length - this.tagLength), associatedData);\n // Cleanup.\n wipe_1.wipe(counter);\n return result;\n };\n /**\n * Authenticates sealed ciphertext (which includes authentication tag) and\n * associated data, decrypts ciphertext and returns decrypted plaintext.\n *\n * RFC7539 specifies 12 bytes for nonce. It may be this 12-byte nonce\n * (\"IV\"), or full 16-byte counter (called \"32-bit fixed-common part\")\n * and nonce.\n *\n * If authentication fails, it returns null.\n *\n * If dst is given (it must be of ciphertext length minus tag length),\n * the result will be put into it. Dst and plaintext must not overlap.\n */\n ChaCha20Poly1305.prototype.open = function (nonce, sealed, associatedData, dst) {\n if (nonce.length > 16) {\n throw new Error(\"ChaCha20Poly1305: incorrect nonce length\");\n }\n // Sealed ciphertext should at least contain tag.\n if (sealed.length < this.tagLength) {\n // TODO(dchest): should we throw here instead?\n return null;\n }\n // Allocate space for counter, and set nonce as last bytes of it.\n var counter = new Uint8Array(16);\n counter.set(nonce, counter.length - nonce.length);\n // Generate authentication key by taking first 32-bytes of stream.\n var authKey = new Uint8Array(32);\n chacha_1.stream(this._key, counter, authKey, 4);\n // Authenticate.\n // XXX: can simplify and avoid allocation: since authenticate()\n // already allocates tag (from Poly1305.digest(), it can return)\n // it instead of copying to calculatedTag. But then in seal()\n // we'll need to copy it.\n var calculatedTag = new Uint8Array(this.tagLength);\n this._authenticate(calculatedTag, authKey, sealed.subarray(0, sealed.length - this.tagLength), associatedData);\n // Constant-time compare tags and return null if they differ.\n if (!constant_time_1.equal(calculatedTag, sealed.subarray(sealed.length - this.tagLength, sealed.length))) {\n return null;\n }\n // Allocate space for decrypted plaintext.\n var resultLength = sealed.length - this.tagLength;\n var result;\n if (dst) {\n if (dst.length !== resultLength) {\n throw new Error(\"ChaCha20Poly1305: incorrect destination length\");\n }\n result = dst;\n }\n else {\n result = new Uint8Array(resultLength);\n }\n // Decrypt.\n chacha_1.streamXOR(this._key, counter, sealed.subarray(0, sealed.length - this.tagLength), result, 4);\n // Cleanup.\n wipe_1.wipe(counter);\n return result;\n };\n ChaCha20Poly1305.prototype.clean = function () {\n wipe_1.wipe(this._key);\n return this;\n };\n ChaCha20Poly1305.prototype._authenticate = function (tagOut, authKey, ciphertext, associatedData) {\n // Initialize Poly1305 with authKey.\n var h = new poly1305_1.Poly1305(authKey);\n // Authenticate padded associated data.\n if (associatedData) {\n h.update(associatedData);\n if (associatedData.length % 16 > 0) {\n h.update(ZEROS.subarray(associatedData.length % 16));\n }\n }\n // Authenticate padded ciphertext.\n h.update(ciphertext);\n if (ciphertext.length % 16 > 0) {\n h.update(ZEROS.subarray(ciphertext.length % 16));\n }\n // Authenticate length of associated data.\n // XXX: can avoid allocation here?\n var length = new Uint8Array(8);\n if (associatedData) {\n binary_1.writeUint64LE(associatedData.length, length);\n }\n h.update(length);\n // Authenticate length of ciphertext.\n binary_1.writeUint64LE(ciphertext.length, length);\n h.update(length);\n // Get tag and copy it into tagOut.\n var tag = h.digest();\n for (var i = 0; i < tag.length; i++) {\n tagOut[i] = tag[i];\n }\n // Cleanup.\n h.clean();\n wipe_1.wipe(tag);\n wipe_1.wipe(length);\n };\n return ChaCha20Poly1305;\n}());\nexports.ChaCha20Poly1305 = ChaCha20Poly1305;\n//# sourceMappingURL=chacha20poly1305.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction isSerializableHash(h) {\n return (typeof h.saveState !== \"undefined\" &&\n typeof h.restoreState !== \"undefined\" &&\n typeof h.cleanSavedState !== \"undefined\");\n}\nexports.isSerializableHash = isSerializableHash;\n// TODO(dchest): figure out the standardized interface for XOF such as\n// SHAKE and BLAKE2X.\n//# sourceMappingURL=hash.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowserRandomSource = void 0;\nconst QUOTA = 65536;\nclass BrowserRandomSource {\n constructor() {\n this.isAvailable = false;\n this.isInstantiated = false;\n const browserCrypto = typeof self !== 'undefined'\n ? (self.crypto || self.msCrypto) // IE11 has msCrypto\n : null;\n if (browserCrypto && browserCrypto.getRandomValues !== undefined) {\n this._crypto = browserCrypto;\n this.isAvailable = true;\n this.isInstantiated = true;\n }\n }\n randomBytes(length) {\n if (!this.isAvailable || !this._crypto) {\n throw new Error(\"Browser random byte generator is not available.\");\n }\n const out = new Uint8Array(length);\n for (let i = 0; i < out.length; i += QUOTA) {\n this._crypto.getRandomValues(out.subarray(i, i + Math.min(out.length - i, QUOTA)));\n }\n return out;\n }\n}\nexports.BrowserRandomSource = BrowserRandomSource;\n//# sourceMappingURL=browser.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar binary_1 = require(\"@stablelib/binary\");\nvar wipe_1 = require(\"@stablelib/wipe\");\nexports.DIGEST_LENGTH = 64;\nexports.BLOCK_SIZE = 128;\n/**\n * SHA-2-512 cryptographic hash algorithm.\n */\nvar SHA512 = /** @class */ (function () {\n function SHA512() {\n /** Length of hash output */\n this.digestLength = exports.DIGEST_LENGTH;\n /** Block size */\n this.blockSize = exports.BLOCK_SIZE;\n // Note: Int32Array is used instead of Uint32Array for performance reasons.\n this._stateHi = new Int32Array(8); // hash state, high bytes\n this._stateLo = new Int32Array(8); // hash state, low bytes\n this._tempHi = new Int32Array(16); // temporary state, high bytes\n this._tempLo = new Int32Array(16); // temporary state, low bytes\n this._buffer = new Uint8Array(256); // buffer for data to hash\n this._bufferLength = 0; // number of bytes in buffer\n this._bytesHashed = 0; // number of total bytes hashed\n this._finished = false; // indicates whether the hash was finalized\n this.reset();\n }\n SHA512.prototype._initState = function () {\n this._stateHi[0] = 0x6a09e667;\n this._stateHi[1] = 0xbb67ae85;\n this._stateHi[2] = 0x3c6ef372;\n this._stateHi[3] = 0xa54ff53a;\n this._stateHi[4] = 0x510e527f;\n this._stateHi[5] = 0x9b05688c;\n this._stateHi[6] = 0x1f83d9ab;\n this._stateHi[7] = 0x5be0cd19;\n this._stateLo[0] = 0xf3bcc908;\n this._stateLo[1] = 0x84caa73b;\n this._stateLo[2] = 0xfe94f82b;\n this._stateLo[3] = 0x5f1d36f1;\n this._stateLo[4] = 0xade682d1;\n this._stateLo[5] = 0x2b3e6c1f;\n this._stateLo[6] = 0xfb41bd6b;\n this._stateLo[7] = 0x137e2179;\n };\n /**\n * Resets hash state making it possible\n * to re-use this instance to hash other data.\n */\n SHA512.prototype.reset = function () {\n this._initState();\n this._bufferLength = 0;\n this._bytesHashed = 0;\n this._finished = false;\n return this;\n };\n /**\n * Cleans internal buffers and resets hash state.\n */\n SHA512.prototype.clean = function () {\n wipe_1.wipe(this._buffer);\n wipe_1.wipe(this._tempHi);\n wipe_1.wipe(this._tempLo);\n this.reset();\n };\n /**\n * Updates hash state with the given data.\n *\n * Throws error when trying to update already finalized hash:\n * instance must be reset to update it again.\n */\n SHA512.prototype.update = function (data, dataLength) {\n if (dataLength === void 0) { dataLength = data.length; }\n if (this._finished) {\n throw new Error(\"SHA512: can't update because hash was finished.\");\n }\n var dataPos = 0;\n this._bytesHashed += dataLength;\n if (this._bufferLength > 0) {\n while (this._bufferLength < exports.BLOCK_SIZE && dataLength > 0) {\n this._buffer[this._bufferLength++] = data[dataPos++];\n dataLength--;\n }\n if (this._bufferLength === this.blockSize) {\n hashBlocks(this._tempHi, this._tempLo, this._stateHi, this._stateLo, this._buffer, 0, this.blockSize);\n this._bufferLength = 0;\n }\n }\n if (dataLength >= this.blockSize) {\n dataPos = hashBlocks(this._tempHi, this._tempLo, this._stateHi, this._stateLo, data, dataPos, dataLength);\n dataLength %= this.blockSize;\n }\n while (dataLength > 0) {\n this._buffer[this._bufferLength++] = data[dataPos++];\n dataLength--;\n }\n return this;\n };\n /**\n * Finalizes hash state and puts hash into out.\n * If hash was already finalized, puts the same value.\n */\n SHA512.prototype.finish = function (out) {\n if (!this._finished) {\n var bytesHashed = this._bytesHashed;\n var left = this._bufferLength;\n var bitLenHi = (bytesHashed / 0x20000000) | 0;\n var bitLenLo = bytesHashed << 3;\n var padLength = (bytesHashed % 128 < 112) ? 128 : 256;\n this._buffer[left] = 0x80;\n for (var i = left + 1; i < padLength - 8; i++) {\n this._buffer[i] = 0;\n }\n binary_1.writeUint32BE(bitLenHi, this._buffer, padLength - 8);\n binary_1.writeUint32BE(bitLenLo, this._buffer, padLength - 4);\n hashBlocks(this._tempHi, this._tempLo, this._stateHi, this._stateLo, this._buffer, 0, padLength);\n this._finished = true;\n }\n for (var i = 0; i < this.digestLength / 8; i++) {\n binary_1.writeUint32BE(this._stateHi[i], out, i * 8);\n binary_1.writeUint32BE(this._stateLo[i], out, i * 8 + 4);\n }\n return this;\n };\n /**\n * Returns the final hash digest.\n */\n SHA512.prototype.digest = function () {\n var out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n };\n /**\n * Function useful for HMAC/PBKDF2 optimization. Returns hash state to be\n * used with restoreState(). Only chain value is saved, not buffers or\n * other state variables.\n */\n SHA512.prototype.saveState = function () {\n if (this._finished) {\n throw new Error(\"SHA256: cannot save finished state\");\n }\n return {\n stateHi: new Int32Array(this._stateHi),\n stateLo: new Int32Array(this._stateLo),\n buffer: this._bufferLength > 0 ? new Uint8Array(this._buffer) : undefined,\n bufferLength: this._bufferLength,\n bytesHashed: this._bytesHashed\n };\n };\n /**\n * Function useful for HMAC/PBKDF2 optimization. Restores state saved by\n * saveState() and sets bytesHashed to the given value.\n */\n SHA512.prototype.restoreState = function (savedState) {\n this._stateHi.set(savedState.stateHi);\n this._stateLo.set(savedState.stateLo);\n this._bufferLength = savedState.bufferLength;\n if (savedState.buffer) {\n this._buffer.set(savedState.buffer);\n }\n this._bytesHashed = savedState.bytesHashed;\n this._finished = false;\n return this;\n };\n /**\n * Cleans state returned by saveState().\n */\n SHA512.prototype.cleanSavedState = function (savedState) {\n wipe_1.wipe(savedState.stateHi);\n wipe_1.wipe(savedState.stateLo);\n if (savedState.buffer) {\n wipe_1.wipe(savedState.buffer);\n }\n savedState.bufferLength = 0;\n savedState.bytesHashed = 0;\n };\n return SHA512;\n}());\nexports.SHA512 = SHA512;\n// Constants\nvar K = new Int32Array([\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]);\nfunction hashBlocks(wh, wl, hh, hl, m, pos, len) {\n var ah0 = hh[0], ah1 = hh[1], ah2 = hh[2], ah3 = hh[3], ah4 = hh[4], ah5 = hh[5], ah6 = hh[6], ah7 = hh[7], al0 = hl[0], al1 = hl[1], al2 = hl[2], al3 = hl[3], al4 = hl[4], al5 = hl[5], al6 = hl[6], al7 = hl[7];\n var h, l;\n var th, tl;\n var a, b, c, d;\n while (len >= 128) {\n for (var i = 0; i < 16; i++) {\n var j = 8 * i + pos;\n wh[i] = binary_1.readUint32BE(m, j);\n wl[i] = binary_1.readUint32BE(m, j + 4);\n }\n for (var i = 0; i < 80; i++) {\n var bh0 = ah0;\n var bh1 = ah1;\n var bh2 = ah2;\n var bh3 = ah3;\n var bh4 = ah4;\n var bh5 = ah5;\n var bh6 = ah6;\n var bh7 = ah7;\n var bl0 = al0;\n var bl1 = al1;\n var bl2 = al2;\n var bl3 = al3;\n var bl4 = al4;\n var bl5 = al5;\n var bl6 = al6;\n var bl7 = al7;\n // add\n h = ah7;\n l = al7;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32 - 14))) ^ ((ah4 >>> 18) |\n (al4 << (32 - 18))) ^ ((al4 >>> (41 - 32)) | (ah4 << (32 - (41 - 32))));\n l = ((al4 >>> 14) | (ah4 << (32 - 14))) ^ ((al4 >>> 18) |\n (ah4 << (32 - 18))) ^ ((ah4 >>> (41 - 32)) | (al4 << (32 - (41 - 32))));\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n // K\n h = K[i * 2];\n l = K[i * 2 + 1];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n // w\n h = wh[i % 16];\n l = wl[i % 16];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n // add\n h = th;\n l = tl;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32 - 28))) ^ ((al0 >>> (34 - 32)) |\n (ah0 << (32 - (34 - 32)))) ^ ((al0 >>> (39 - 32)) | (ah0 << (32 - (39 - 32))));\n l = ((al0 >>> 28) | (ah0 << (32 - 28))) ^ ((ah0 >>> (34 - 32)) |\n (al0 << (32 - (34 - 32)))) ^ ((ah0 >>> (39 - 32)) | (al0 << (32 - (39 - 32))));\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n // add\n h = bh3;\n l = bl3;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = th;\n l = tl;\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n if (i % 16 === 15) {\n for (var j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = wh[(j + 9) % 16];\n l = wl[(j + 9) % 16];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n // sigma0\n th = wh[(j + 1) % 16];\n tl = wl[(j + 1) % 16];\n h = ((th >>> 1) | (tl << (32 - 1))) ^ ((th >>> 8) |\n (tl << (32 - 8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32 - 1))) ^ ((tl >>> 8) |\n (th << (32 - 8))) ^ ((tl >>> 7) | (th << (32 - 7)));\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n // sigma1\n th = wh[(j + 14) % 16];\n tl = wl[(j + 14) % 16];\n h = ((th >>> 19) | (tl << (32 - 19))) ^ ((tl >>> (61 - 32)) |\n (th << (32 - (61 - 32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32 - 19))) ^ ((th >>> (61 - 32)) |\n (tl << (32 - (61 - 32)))) ^ ((tl >>> 6) | (th << (32 - 6)));\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n // add\n h = ah0;\n l = al0;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[0];\n l = hl[0];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n h = ah1;\n l = al1;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[1];\n l = hl[1];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n h = ah2;\n l = al2;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[2];\n l = hl[2];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n h = ah3;\n l = al3;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[3];\n l = hl[3];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n h = ah4;\n l = al4;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[4];\n l = hl[4];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n h = ah5;\n l = al5;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[5];\n l = hl[5];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n h = ah6;\n l = al6;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[6];\n l = hl[6];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n h = ah7;\n l = al7;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[7];\n l = hl[7];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n pos += 128;\n len -= 128;\n }\n return pos;\n}\nfunction hash(data) {\n var h = new SHA512();\n h.update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n}\nexports.hash = hash;\n//# sourceMappingURL=sha512.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar binary_1 = require(\"@stablelib/binary\");\nvar wipe_1 = require(\"@stablelib/wipe\");\nexports.DIGEST_LENGTH = 32;\nexports.BLOCK_SIZE = 64;\n/**\n * SHA2-256 cryptographic hash algorithm.\n */\nvar SHA256 = /** @class */ (function () {\n function SHA256() {\n /** Length of hash output */\n this.digestLength = exports.DIGEST_LENGTH;\n /** Block size */\n this.blockSize = exports.BLOCK_SIZE;\n // Note: Int32Array is used instead of Uint32Array for performance reasons.\n this._state = new Int32Array(8); // hash state\n this._temp = new Int32Array(64); // temporary state\n this._buffer = new Uint8Array(128); // buffer for data to hash\n this._bufferLength = 0; // number of bytes in buffer\n this._bytesHashed = 0; // number of total bytes hashed\n this._finished = false; // indicates whether the hash was finalized\n this.reset();\n }\n SHA256.prototype._initState = function () {\n this._state[0] = 0x6a09e667;\n this._state[1] = 0xbb67ae85;\n this._state[2] = 0x3c6ef372;\n this._state[3] = 0xa54ff53a;\n this._state[4] = 0x510e527f;\n this._state[5] = 0x9b05688c;\n this._state[6] = 0x1f83d9ab;\n this._state[7] = 0x5be0cd19;\n };\n /**\n * Resets hash state making it possible\n * to re-use this instance to hash other data.\n */\n SHA256.prototype.reset = function () {\n this._initState();\n this._bufferLength = 0;\n this._bytesHashed = 0;\n this._finished = false;\n return this;\n };\n /**\n * Cleans internal buffers and resets hash state.\n */\n SHA256.prototype.clean = function () {\n wipe_1.wipe(this._buffer);\n wipe_1.wipe(this._temp);\n this.reset();\n };\n /**\n * Updates hash state with the given data.\n *\n * Throws error when trying to update already finalized hash:\n * instance must be reset to update it again.\n */\n SHA256.prototype.update = function (data, dataLength) {\n if (dataLength === void 0) { dataLength = data.length; }\n if (this._finished) {\n throw new Error(\"SHA256: can't update because hash was finished.\");\n }\n var dataPos = 0;\n this._bytesHashed += dataLength;\n if (this._bufferLength > 0) {\n while (this._bufferLength < this.blockSize && dataLength > 0) {\n this._buffer[this._bufferLength++] = data[dataPos++];\n dataLength--;\n }\n if (this._bufferLength === this.blockSize) {\n hashBlocks(this._temp, this._state, this._buffer, 0, this.blockSize);\n this._bufferLength = 0;\n }\n }\n if (dataLength >= this.blockSize) {\n dataPos = hashBlocks(this._temp, this._state, data, dataPos, dataLength);\n dataLength %= this.blockSize;\n }\n while (dataLength > 0) {\n this._buffer[this._bufferLength++] = data[dataPos++];\n dataLength--;\n }\n return this;\n };\n /**\n * Finalizes hash state and puts hash into out.\n * If hash was already finalized, puts the same value.\n */\n SHA256.prototype.finish = function (out) {\n if (!this._finished) {\n var bytesHashed = this._bytesHashed;\n var left = this._bufferLength;\n var bitLenHi = (bytesHashed / 0x20000000) | 0;\n var bitLenLo = bytesHashed << 3;\n var padLength = (bytesHashed % 64 < 56) ? 64 : 128;\n this._buffer[left] = 0x80;\n for (var i = left + 1; i < padLength - 8; i++) {\n this._buffer[i] = 0;\n }\n binary_1.writeUint32BE(bitLenHi, this._buffer, padLength - 8);\n binary_1.writeUint32BE(bitLenLo, this._buffer, padLength - 4);\n hashBlocks(this._temp, this._state, this._buffer, 0, padLength);\n this._finished = true;\n }\n for (var i = 0; i < this.digestLength / 4; i++) {\n binary_1.writeUint32BE(this._state[i], out, i * 4);\n }\n return this;\n };\n /**\n * Returns the final hash digest.\n */\n SHA256.prototype.digest = function () {\n var out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n };\n /**\n * Function useful for HMAC/PBKDF2 optimization.\n * Returns hash state to be used with restoreState().\n * Only chain value is saved, not buffers or other\n * state variables.\n */\n SHA256.prototype.saveState = function () {\n if (this._finished) {\n throw new Error(\"SHA256: cannot save finished state\");\n }\n return {\n state: new Int32Array(this._state),\n buffer: this._bufferLength > 0 ? new Uint8Array(this._buffer) : undefined,\n bufferLength: this._bufferLength,\n bytesHashed: this._bytesHashed\n };\n };\n /**\n * Function useful for HMAC/PBKDF2 optimization.\n * Restores state saved by saveState() and sets bytesHashed\n * to the given value.\n */\n SHA256.prototype.restoreState = function (savedState) {\n this._state.set(savedState.state);\n this._bufferLength = savedState.bufferLength;\n if (savedState.buffer) {\n this._buffer.set(savedState.buffer);\n }\n this._bytesHashed = savedState.bytesHashed;\n this._finished = false;\n return this;\n };\n /**\n * Cleans state returned by saveState().\n */\n SHA256.prototype.cleanSavedState = function (savedState) {\n wipe_1.wipe(savedState.state);\n if (savedState.buffer) {\n wipe_1.wipe(savedState.buffer);\n }\n savedState.bufferLength = 0;\n savedState.bytesHashed = 0;\n };\n return SHA256;\n}());\nexports.SHA256 = SHA256;\n// Constants\nvar K = new Int32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b,\n 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01,\n 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7,\n 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152,\n 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,\n 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc,\n 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819,\n 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08,\n 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f,\n 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\nfunction hashBlocks(w, v, p, pos, len) {\n while (len >= 64) {\n var a = v[0];\n var b = v[1];\n var c = v[2];\n var d = v[3];\n var e = v[4];\n var f = v[5];\n var g = v[6];\n var h = v[7];\n for (var i = 0; i < 16; i++) {\n var j = pos + i * 4;\n w[i] = binary_1.readUint32BE(p, j);\n }\n for (var i = 16; i < 64; i++) {\n var u = w[i - 2];\n var t1 = (u >>> 17 | u << (32 - 17)) ^ (u >>> 19 | u << (32 - 19)) ^ (u >>> 10);\n u = w[i - 15];\n var t2 = (u >>> 7 | u << (32 - 7)) ^ (u >>> 18 | u << (32 - 18)) ^ (u >>> 3);\n w[i] = (t1 + w[i - 7] | 0) + (t2 + w[i - 16] | 0);\n }\n for (var i = 0; i < 64; i++) {\n var t1 = (((((e >>> 6 | e << (32 - 6)) ^ (e >>> 11 | e << (32 - 11)) ^\n (e >>> 25 | e << (32 - 25))) + ((e & f) ^ (~e & g))) | 0) +\n ((h + ((K[i] + w[i]) | 0)) | 0)) | 0;\n var t2 = (((a >>> 2 | a << (32 - 2)) ^ (a >>> 13 | a << (32 - 13)) ^\n (a >>> 22 | a << (32 - 22))) + ((a & b) ^ (a & c) ^ (b & c))) | 0;\n h = g;\n g = f;\n f = e;\n e = (d + t1) | 0;\n d = c;\n c = b;\n b = a;\n a = (t1 + t2) | 0;\n }\n v[0] += a;\n v[1] += b;\n v[2] += c;\n v[3] += d;\n v[4] += e;\n v[5] += f;\n v[6] += g;\n v[7] += h;\n pos += 64;\n len -= 64;\n }\n return pos;\n}\nfunction hash(data) {\n var h = new SHA256();\n h.update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n}\nexports.hash = hash;\n//# sourceMappingURL=sha256.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sharedKey = exports.generateKeyPair = exports.generateKeyPairFromSeed = exports.scalarMultBase = exports.scalarMult = exports.SHARED_KEY_LENGTH = exports.SECRET_KEY_LENGTH = exports.PUBLIC_KEY_LENGTH = void 0;\n/**\n * Package x25519 implements X25519 key agreement.\n */\nconst random_1 = require(\"@stablelib/random\");\nconst wipe_1 = require(\"@stablelib/wipe\");\nexports.PUBLIC_KEY_LENGTH = 32;\nexports.SECRET_KEY_LENGTH = 32;\nexports.SHARED_KEY_LENGTH = 32;\n// Returns new zero-filled 16-element GF (Float64Array).\n// If passed an array of numbers, prefills the returned\n// array with them.\n//\n// We use Float64Array, because we need 48-bit numbers\n// for this implementation.\nfunction gf(init) {\n const r = new Float64Array(16);\n if (init) {\n for (let i = 0; i < init.length; i++) {\n r[i] = init[i];\n }\n }\n return r;\n}\n// Base point.\nconst _9 = new Uint8Array(32);\n_9[0] = 9;\nconst _121665 = gf([0xdb41, 1]);\nfunction car25519(o) {\n let c = 1;\n for (let i = 0; i < 16; i++) {\n let v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c - 1 + 37 * (c - 1);\n}\nfunction sel25519(p, q, b) {\n const c = ~(b - 1);\n for (let i = 0; i < 16; i++) {\n const t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\nfunction pack25519(o, n) {\n const m = gf();\n const t = gf();\n for (let i = 0; i < 16; i++) {\n t[i] = n[i];\n }\n car25519(t);\n car25519(t);\n car25519(t);\n for (let j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (let i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i - 1] >> 16) & 1);\n m[i - 1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14] >> 16) & 1);\n const b = (m[15] >> 16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1 - b);\n }\n for (let i = 0; i < 16; i++) {\n o[2 * i] = t[i] & 0xff;\n o[2 * i + 1] = t[i] >> 8;\n }\n}\nfunction unpack25519(o, n) {\n for (let i = 0; i < 16; i++) {\n o[i] = n[2 * i] + (n[2 * i + 1] << 8);\n }\n o[15] &= 0x7fff;\n}\nfunction add(o, a, b) {\n for (let i = 0; i < 16; i++) {\n o[i] = a[i] + b[i];\n }\n}\nfunction sub(o, a, b) {\n for (let i = 0; i < 16; i++) {\n o[i] = a[i] - b[i];\n }\n}\nfunction mul(o, a, b) {\n let v, c, t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0, t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0, t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0, b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3], b4 = b[4], b5 = b[5], b6 = b[6], b7 = b[7], b8 = b[8], b9 = b[9], b10 = b[10], b11 = b[11], b12 = b[12], b13 = b[13], b14 = b[14], b15 = b[15];\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n // first car\n c = 1;\n v = t0 + c + 65535;\n c = Math.floor(v / 65536);\n t0 = v - c * 65536;\n v = t1 + c + 65535;\n c = Math.floor(v / 65536);\n t1 = v - c * 65536;\n v = t2 + c + 65535;\n c = Math.floor(v / 65536);\n t2 = v - c * 65536;\n v = t3 + c + 65535;\n c = Math.floor(v / 65536);\n t3 = v - c * 65536;\n v = t4 + c + 65535;\n c = Math.floor(v / 65536);\n t4 = v - c * 65536;\n v = t5 + c + 65535;\n c = Math.floor(v / 65536);\n t5 = v - c * 65536;\n v = t6 + c + 65535;\n c = Math.floor(v / 65536);\n t6 = v - c * 65536;\n v = t7 + c + 65535;\n c = Math.floor(v / 65536);\n t7 = v - c * 65536;\n v = t8 + c + 65535;\n c = Math.floor(v / 65536);\n t8 = v - c * 65536;\n v = t9 + c + 65535;\n c = Math.floor(v / 65536);\n t9 = v - c * 65536;\n v = t10 + c + 65535;\n c = Math.floor(v / 65536);\n t10 = v - c * 65536;\n v = t11 + c + 65535;\n c = Math.floor(v / 65536);\n t11 = v - c * 65536;\n v = t12 + c + 65535;\n c = Math.floor(v / 65536);\n t12 = v - c * 65536;\n v = t13 + c + 65535;\n c = Math.floor(v / 65536);\n t13 = v - c * 65536;\n v = t14 + c + 65535;\n c = Math.floor(v / 65536);\n t14 = v - c * 65536;\n v = t15 + c + 65535;\n c = Math.floor(v / 65536);\n t15 = v - c * 65536;\n t0 += c - 1 + 37 * (c - 1);\n // second car\n c = 1;\n v = t0 + c + 65535;\n c = Math.floor(v / 65536);\n t0 = v - c * 65536;\n v = t1 + c + 65535;\n c = Math.floor(v / 65536);\n t1 = v - c * 65536;\n v = t2 + c + 65535;\n c = Math.floor(v / 65536);\n t2 = v - c * 65536;\n v = t3 + c + 65535;\n c = Math.floor(v / 65536);\n t3 = v - c * 65536;\n v = t4 + c + 65535;\n c = Math.floor(v / 65536);\n t4 = v - c * 65536;\n v = t5 + c + 65535;\n c = Math.floor(v / 65536);\n t5 = v - c * 65536;\n v = t6 + c + 65535;\n c = Math.floor(v / 65536);\n t6 = v - c * 65536;\n v = t7 + c + 65535;\n c = Math.floor(v / 65536);\n t7 = v - c * 65536;\n v = t8 + c + 65535;\n c = Math.floor(v / 65536);\n t8 = v - c * 65536;\n v = t9 + c + 65535;\n c = Math.floor(v / 65536);\n t9 = v - c * 65536;\n v = t10 + c + 65535;\n c = Math.floor(v / 65536);\n t10 = v - c * 65536;\n v = t11 + c + 65535;\n c = Math.floor(v / 65536);\n t11 = v - c * 65536;\n v = t12 + c + 65535;\n c = Math.floor(v / 65536);\n t12 = v - c * 65536;\n v = t13 + c + 65535;\n c = Math.floor(v / 65536);\n t13 = v - c * 65536;\n v = t14 + c + 65535;\n c = Math.floor(v / 65536);\n t14 = v - c * 65536;\n v = t15 + c + 65535;\n c = Math.floor(v / 65536);\n t15 = v - c * 65536;\n t0 += c - 1 + 37 * (c - 1);\n o[0] = t0;\n o[1] = t1;\n o[2] = t2;\n o[3] = t3;\n o[4] = t4;\n o[5] = t5;\n o[6] = t6;\n o[7] = t7;\n o[8] = t8;\n o[9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\nfunction square(o, a) {\n mul(o, a, a);\n}\nfunction inv25519(o, inp) {\n const c = gf();\n for (let i = 0; i < 16; i++) {\n c[i] = inp[i];\n }\n for (let i = 253; i >= 0; i--) {\n square(c, c);\n if (i !== 2 && i !== 4) {\n mul(c, c, inp);\n }\n }\n for (let i = 0; i < 16; i++) {\n o[i] = c[i];\n }\n}\nfunction scalarMult(n, p) {\n const z = new Uint8Array(32);\n const x = new Float64Array(80);\n const a = gf(), b = gf(), c = gf(), d = gf(), e = gf(), f = gf();\n for (let i = 0; i < 31; i++) {\n z[i] = n[i];\n }\n z[31] = (n[31] & 127) | 64;\n z[0] &= 248;\n unpack25519(x, p);\n for (let i = 0; i < 16; i++) {\n b[i] = x[i];\n }\n a[0] = d[0] = 1;\n for (let i = 254; i >= 0; --i) {\n const r = (z[i >>> 3] >>> (i & 7)) & 1;\n sel25519(a, b, r);\n sel25519(c, d, r);\n add(e, a, c);\n sub(a, a, c);\n add(c, b, d);\n sub(b, b, d);\n square(d, e);\n square(f, a);\n mul(a, c, a);\n mul(c, b, e);\n add(e, a, c);\n sub(a, a, c);\n square(b, a);\n sub(c, d, f);\n mul(a, c, _121665);\n add(a, a, d);\n mul(c, c, a);\n mul(a, d, f);\n mul(d, b, x);\n square(b, e);\n sel25519(a, b, r);\n sel25519(c, d, r);\n }\n for (let i = 0; i < 16; i++) {\n x[i + 16] = a[i];\n x[i + 32] = c[i];\n x[i + 48] = b[i];\n x[i + 64] = d[i];\n }\n const x32 = x.subarray(32);\n const x16 = x.subarray(16);\n inv25519(x32, x32);\n mul(x16, x16, x32);\n const q = new Uint8Array(32);\n pack25519(q, x16);\n return q;\n}\nexports.scalarMult = scalarMult;\nfunction scalarMultBase(n) {\n return scalarMult(n, _9);\n}\nexports.scalarMultBase = scalarMultBase;\nfunction generateKeyPairFromSeed(seed) {\n if (seed.length !== exports.SECRET_KEY_LENGTH) {\n throw new Error(`x25519: seed must be ${exports.SECRET_KEY_LENGTH} bytes`);\n }\n const secretKey = new Uint8Array(seed);\n const publicKey = scalarMultBase(secretKey);\n return {\n publicKey,\n secretKey\n };\n}\nexports.generateKeyPairFromSeed = generateKeyPairFromSeed;\nfunction generateKeyPair(prng) {\n const seed = (0, random_1.randomBytes)(32, prng);\n const result = generateKeyPairFromSeed(seed);\n (0, wipe_1.wipe)(seed);\n return result;\n}\nexports.generateKeyPair = generateKeyPair;\n/**\n * Returns a shared key between our secret key and a peer's public key.\n *\n * Throws an error if the given keys are of wrong length.\n *\n * If rejectZero is true throws if the calculated shared key is all-zero.\n * From RFC 7748:\n *\n * > Protocol designers using Diffie-Hellman over the curves defined in\n * > this document must not assume \"contributory behavior\". Specially,\n * > contributory behavior means that both parties' private keys\n * > contribute to the resulting shared key. Since curve25519 and\n * > curve448 have cofactors of 8 and 4 (respectively), an input point of\n * > small order will eliminate any contribution from the other party's\n * > private key. This situation can be detected by checking for the all-\n * > zero output, which implementations MAY do, as specified in Section 6.\n * > However, a large number of existing implementations do not do this.\n *\n * IMPORTANT: the returned key is a raw result of scalar multiplication.\n * To use it as a key material, hash it with a cryptographic hash function.\n */\nfunction sharedKey(mySecretKey, theirPublicKey, rejectZero = false) {\n if (mySecretKey.length !== exports.PUBLIC_KEY_LENGTH) {\n throw new Error(\"X25519: incorrect secret key length\");\n }\n if (theirPublicKey.length !== exports.PUBLIC_KEY_LENGTH) {\n throw new Error(\"X25519: incorrect public key length\");\n }\n const result = scalarMult(mySecretKey, theirPublicKey);\n if (rejectZero) {\n let zeros = 0;\n for (let i = 0; i < result.length; i++) {\n zeros |= result[i];\n }\n if (zeros === 0) {\n throw new Error(\"X25519: invalid shared key\");\n }\n }\n return result;\n}\nexports.sharedKey = sharedKey;\n//# sourceMappingURL=x25519.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeRandomSource = void 0;\nconst wipe_1 = require(\"@stablelib/wipe\");\nclass NodeRandomSource {\n constructor() {\n this.isAvailable = false;\n this.isInstantiated = false;\n if (typeof require !== \"undefined\") {\n const nodeCrypto = require(\"crypto\");\n if (nodeCrypto && nodeCrypto.randomBytes) {\n this._crypto = nodeCrypto;\n this.isAvailable = true;\n this.isInstantiated = true;\n }\n }\n }\n randomBytes(length) {\n if (!this.isAvailable || !this._crypto) {\n throw new Error(\"Node.js random byte generator is not available.\");\n }\n // Get random bytes (result is Buffer).\n let buffer = this._crypto.randomBytes(length);\n // Make sure we got the length that we requested.\n if (buffer.length !== length) {\n throw new Error(\"NodeRandomSource: got fewer bytes than requested\");\n }\n // Allocate output array.\n const out = new Uint8Array(length);\n // Copy bytes from buffer to output.\n for (let i = 0; i < out.length; i++) {\n out[i] = buffer[i];\n }\n // Cleanup.\n (0, wipe_1.wipe)(buffer);\n return out;\n }\n}\nexports.NodeRandomSource = NodeRandomSource;\n//# sourceMappingURL=node.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.randomStringForEntropy = exports.randomString = exports.randomUint32 = exports.randomBytes = exports.defaultRandomSource = void 0;\nconst system_1 = require(\"./source/system\");\nconst binary_1 = require(\"@stablelib/binary\");\nconst wipe_1 = require(\"@stablelib/wipe\");\nexports.defaultRandomSource = new system_1.SystemRandomSource();\nfunction randomBytes(length, prng = exports.defaultRandomSource) {\n return prng.randomBytes(length);\n}\nexports.randomBytes = randomBytes;\n/**\n * Returns a uniformly random unsigned 32-bit integer.\n */\nfunction randomUint32(prng = exports.defaultRandomSource) {\n // Generate 4-byte random buffer.\n const buf = randomBytes(4, prng);\n // Convert bytes from buffer into a 32-bit integer.\n // It's not important which byte order to use, since\n // the result is random.\n const result = (0, binary_1.readUint32LE)(buf);\n // Clean the buffer.\n (0, wipe_1.wipe)(buf);\n return result;\n}\nexports.randomUint32 = randomUint32;\n/** 62 alphanumeric characters for default charset of randomString() */\nconst ALPHANUMERIC = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\n/**\n * Returns a uniform random string of the given length\n * with characters from the given charset.\n *\n * Charset must not have more than 256 characters.\n *\n * Default charset generates case-sensitive alphanumeric\n * strings (0-9, A-Z, a-z).\n */\nfunction randomString(length, charset = ALPHANUMERIC, prng = exports.defaultRandomSource) {\n if (charset.length < 2) {\n throw new Error(\"randomString charset is too short\");\n }\n if (charset.length > 256) {\n throw new Error(\"randomString charset is too long\");\n }\n let out = '';\n const charsLen = charset.length;\n const maxByte = 256 - (256 % charsLen);\n while (length > 0) {\n const buf = randomBytes(Math.ceil(length * 256 / maxByte), prng);\n for (let i = 0; i < buf.length && length > 0; i++) {\n const randomByte = buf[i];\n if (randomByte < maxByte) {\n out += charset.charAt(randomByte % charsLen);\n length--;\n }\n }\n (0, wipe_1.wipe)(buf);\n }\n return out;\n}\nexports.randomString = randomString;\n/**\n * Returns uniform random string containing at least the given\n * number of bits of entropy.\n *\n * For example, randomStringForEntropy(128) will return a 22-character\n * alphanumeric string, while randomStringForEntropy(128, \"0123456789\")\n * will return a 39-character numeric string, both will contain at\n * least 128 bits of entropy.\n *\n * Default charset generates case-sensitive alphanumeric\n * strings (0-9, A-Z, a-z).\n */\nfunction randomStringForEntropy(bits, charset = ALPHANUMERIC, prng = exports.defaultRandomSource) {\n const length = Math.ceil(bits / (Math.log(charset.length) / Math.LN2));\n return randomString(length, charset, prng);\n}\nexports.randomStringForEntropy = randomStringForEntropy;\n//# sourceMappingURL=random.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package int provides helper functions for integerss.\n */\n// Shim using 16-bit pieces.\nfunction imulShim(a, b) {\n var ah = (a >>> 16) & 0xffff, al = a & 0xffff;\n var bh = (b >>> 16) & 0xffff, bl = b & 0xffff;\n return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0) | 0);\n}\n/** 32-bit integer multiplication. */\n// Use system Math.imul if available, otherwise use our shim.\nexports.mul = Math.imul || imulShim;\n/** 32-bit integer addition. */\nfunction add(a, b) {\n return (a + b) | 0;\n}\nexports.add = add;\n/** 32-bit integer subtraction. */\nfunction sub(a, b) {\n return (a - b) | 0;\n}\nexports.sub = sub;\n/** 32-bit integer left rotation */\nfunction rotl(x, n) {\n return x << n | x >>> (32 - n);\n}\nexports.rotl = rotl;\n/** 32-bit integer left rotation */\nfunction rotr(x, n) {\n return x << (32 - n) | x >>> n;\n}\nexports.rotr = rotr;\nfunction isIntegerShim(n) {\n return typeof n === \"number\" && isFinite(n) && Math.floor(n) === n;\n}\n/**\n * Returns true if the argument is an integer number.\n *\n * In ES2015, Number.isInteger.\n */\nexports.isInteger = Number.isInteger || isIntegerShim;\n/**\n * Math.pow(2, 53) - 1\n *\n * In ES2015 Number.MAX_SAFE_INTEGER.\n */\nexports.MAX_SAFE_INTEGER = 9007199254740991;\n/**\n * Returns true if the argument is a safe integer number\n * (-MIN_SAFE_INTEGER < number <= MAX_SAFE_INTEGER)\n *\n * In ES2015, Number.isSafeInteger.\n */\nexports.isSafeInteger = function (n) {\n return exports.isInteger(n) && (n >= -exports.MAX_SAFE_INTEGER && n <= exports.MAX_SAFE_INTEGER);\n};\n//# sourceMappingURL=int.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar hmac_1 = require(\"@stablelib/hmac\");\nvar wipe_1 = require(\"@stablelib/wipe\");\n/**\n * HMAC-based Extract-and-Expand Key Derivation Function.\n *\n * Implements HKDF from RFC5869.\n *\n * Expands the given master key with salt and info into\n * a limited stream of key material.\n */\nvar HKDF = /** @class */ (function () {\n /**\n * Create a new HKDF instance for the given hash function\n * with the master key, optional salt, and info.\n *\n * - Master key is a high-entropy secret key (not a password).\n * - Salt is a non-secret random value.\n * - Info is application- and/or context-specific information.\n */\n function HKDF(hash, key, salt, info) {\n if (salt === void 0) { salt = new Uint8Array(0); }\n this._counter = new Uint8Array(1); // starts with zero\n this._hash = hash;\n this._info = info;\n // HKDF-Extract uses salt as HMAC key, and key as data.\n var okm = hmac_1.hmac(this._hash, salt, key);\n // Initialize HMAC for expanding with extracted key.\n this._hmac = new hmac_1.HMAC(hash, okm);\n // Allocate buffer.\n this._buffer = new Uint8Array(this._hmac.digestLength);\n this._bufpos = this._buffer.length;\n }\n // Fill buffer with new block of HKDF-Extract output.\n HKDF.prototype._fillBuffer = function () {\n // Increment counter.\n this._counter[0]++;\n var ctr = this._counter[0];\n // Check if counter overflowed.\n if (ctr === 0) {\n throw new Error(\"hkdf: cannot expand more\");\n }\n // Prepare HMAC instance for new data with old key.\n this._hmac.reset();\n // Hash in previous output if it was generated\n // (i.e. counter is greater than 1).\n if (ctr > 1) {\n this._hmac.update(this._buffer);\n }\n // Hash in info if it exists.\n if (this._info) {\n this._hmac.update(this._info);\n }\n // Hash in the counter.\n this._hmac.update(this._counter);\n // Output result to buffer and clean HMAC instance.\n this._hmac.finish(this._buffer);\n // Reset buffer position.\n this._bufpos = 0;\n };\n /**\n * Expand returns next key material of the given length.\n *\n * It throws if expansion limit is reached (which is\n * 254 digests of the underlying HMAC function).\n */\n HKDF.prototype.expand = function (length) {\n var out = new Uint8Array(length);\n for (var i = 0; i < out.length; i++) {\n if (this._bufpos === this._buffer.length) {\n this._fillBuffer();\n }\n out[i] = this._buffer[this._bufpos++];\n }\n return out;\n };\n HKDF.prototype.clean = function () {\n this._hmac.clean();\n wipe_1.wipe(this._buffer);\n wipe_1.wipe(this._counter);\n this._bufpos = 0;\n };\n return HKDF;\n}());\nexports.HKDF = HKDF;\n// TODO(dchest): maybe implement deriveKey?\n//# sourceMappingURL=hkdf.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Sets all values in the given array to zero and returns it.\n *\n * The fact that it sets bytes to zero can be relied on.\n *\n * There is no guarantee that this function makes data disappear from memory,\n * as runtime implementation can, for example, have copying garbage collector\n * that will make copies of sensitive data before we wipe it. Or that an\n * operating system will write our data to swap or sleep image. Another thing\n * is that an optimizing compiler can remove calls to this function or make it\n * no-op. There's nothing we can do with it, so we just do our best and hope\n * that everything will be okay and good will triumph over evil.\n */\nfunction wipe(array) {\n // Right now it's similar to array.fill(0). If it turns\n // out that runtimes optimize this call away, maybe\n // we can try something else.\n for (var i = 0; i < array.length; i++) {\n array[i] = 0;\n }\n return array;\n}\nexports.wipe = wipe;\n//# sourceMappingURL=wipe.js.map"],"sourceRoot":""}