genosdb 0.4.5 → 0.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- function M6(J){const Q=J.length;let W=0,G=0;while(G<Q){let V=J.charCodeAt(G++);if((V&4294967168)===0){W++;continue}else if((V&4294965248)===0)W+=2;else{if(V>=55296&&V<=56319){if(G<Q){const q=J.charCodeAt(G);if((q&64512)===56320)++G,V=((V&1023)<<10)+(q&1023)+65536}}if((V&4294901760)===0)W+=3;else W+=4}}return W}function IJ(J,Q,W){const G=J.length;let V=W,q=0;while(q<G){let Y=J.charCodeAt(q++);if((Y&4294967168)===0){Q[V++]=Y;continue}else if((Y&4294965248)===0)Q[V++]=Y>>6&31|192;else{if(Y>=55296&&Y<=56319){if(q<G){const X=J.charCodeAt(q);if((X&64512)===56320)++q,Y=((Y&1023)<<10)+(X&1023)+65536}}if((Y&4294901760)===0)Q[V++]=Y>>12&15|224,Q[V++]=Y>>6&63|128;else Q[V++]=Y>>18&7|240,Q[V++]=Y>>12&63|128,Q[V++]=Y>>6&63|128}Q[V++]=Y&63|128}}function AJ(J,Q,W){NJ.encodeInto(J,Q.subarray(W))}function j6(J,Q,W){if(J.length>wJ)AJ(J,Q,W);else IJ(J,Q,W)}function R8(J,Q,W){let G=Q;const V=G+W,q=[];let Y="";while(G<V){const X=J[G++];if((X&128)===0)q.push(X);else if((X&224)===192){const K=J[G++]&63;q.push((X&31)<<6|K)}else if((X&240)===224){const K=J[G++]&63,U=J[G++]&63;q.push((X&31)<<12|K<<6|U)}else if((X&248)===240){const K=J[G++]&63,U=J[G++]&63,P=J[G++]&63;let Z=(X&7)<<18|K<<12|U<<6|P;if(Z>65535)Z-=65536,q.push(Z>>>10&1023|55296),Z=56320|Z&1023;q.push(Z)}else q.push(X);if(q.length>=vJ)Y+=String.fromCharCode(...q),q.length=0}if(q.length>0)Y+=String.fromCharCode(...q);return Y}function TJ(J,Q,W){const G=J.subarray(Q,Q+W);return DJ.decode(G)}function L6(J,Q,W){if(W>SJ)return TJ(J,Q,W);else return R8(J,Q,W)}var NJ=new TextEncoder,wJ=50,vJ=4096,DJ=new TextDecoder,SJ=200;class t0{constructor(J,Q){this.type=J,this.data=Q}}class s extends Error{constructor(J){super(J);const Q=Object.create(s.prototype);Object.setPrototypeOf(this,Q),Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:s.name})}}function R6(J,Q,W){const G=W/4294967296,V=W;J.setUint32(Q,G),J.setUint32(Q+4,V)}function _1(J,Q,W){const G=Math.floor(W/4294967296),V=W;J.setUint32(Q,G),J.setUint32(Q+4,V)}function l1(J,Q){const W=J.getInt32(Q),G=J.getUint32(Q+4);return W*4294967296+G}function x6(J,Q){const W=J.getUint32(Q),G=J.getUint32(Q+4);return W*4294967296+G}var e0=4294967295;function pJ({sec:J,nsec:Q}){if(J>=0&&Q>=0&&J<=EJ)if(Q===0&&J<=yJ){const W=new Uint8Array(4);return new DataView(W.buffer).setUint32(0,J),W}else{const W=J/4294967296,G=J&4294967295,V=new Uint8Array(8),q=new DataView(V.buffer);return q.setUint32(0,Q<<2|W&3),q.setUint32(4,G),V}else{const W=new Uint8Array(12),G=new DataView(W.buffer);return G.setUint32(0,Q),_1(G,4,J),W}}function fJ(J){const Q=J.getTime(),W=Math.floor(Q/1000),G=(Q-W*1000)*1e6,V=Math.floor(G/1e9);return{sec:W+V,nsec:G-V*1e9}}function hJ(J){if(J instanceof Date){const Q=fJ(J);return pJ(Q)}else return null}function bJ(J){const Q=new DataView(J.buffer,J.byteOffset,J.byteLength);switch(J.byteLength){case 4:return{sec:Q.getUint32(0),nsec:0};case 8:{const W=Q.getUint32(0),G=Q.getUint32(4),V=(W&3)*4294967296+G,q=W>>>2;return{sec:V,nsec:q}}case 12:{const W=l1(Q,4),G=Q.getUint32(0);return{sec:W,nsec:G}}default:throw new s(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${J.length}`)}}function uJ(J){const Q=bJ(J);return new Date(Q.sec*1000+Q.nsec/1e6)}var gJ=-1,yJ=4294967295,EJ=17179869183,O6={type:gJ,encode:hJ,decode:uJ};class E0{constructor(){this.builtInEncoders=[],this.builtInDecoders=[],this.encoders=[],this.decoders=[],this.register(O6)}register({type:J,encode:Q,decode:W}){if(J>=0)this.encoders[J]=Q,this.decoders[J]=W;else{const G=-1-J;this.builtInEncoders[G]=Q,this.builtInDecoders[G]=W}}tryToEncode(J,Q){for(let W=0;W<this.builtInEncoders.length;W++){const G=this.builtInEncoders[W];if(G!=null){const V=G(J,Q);if(V!=null){const q=-1-W;return new t0(q,V)}}}for(let W=0;W<this.encoders.length;W++){const G=this.encoders[W];if(G!=null){const V=G(J,Q);if(V!=null)return new t0(W,V)}}if(J instanceof t0)return J;return null}decode(J,Q,W){const G=Q<0?this.builtInDecoders[-1-Q]:this.decoders[Q];if(G)return G(J,Q,W);else return new t0(Q,J)}}E0.defaultCodec=new E0;var mJ=function(J){return J instanceof ArrayBuffer||typeof SharedArrayBuffer!=="undefined"&&J instanceof SharedArrayBuffer};function Z1(J){if(J instanceof Uint8Array)return J;else if(ArrayBuffer.isView(J))return new Uint8Array(J.buffer,J.byteOffset,J.byteLength);else if(mJ(J))return new Uint8Array(J);else return Uint8Array.from(J)}var dJ=100,cJ=2048;class i1{constructor(J){this.entered=!1,this.extensionCodec=J?.extensionCodec??E0.defaultCodec,this.context=J?.context,this.useBigInt64=J?.useBigInt64??!1,this.maxDepth=J?.maxDepth??dJ,this.initialBufferSize=J?.initialBufferSize??cJ,this.sortKeys=J?.sortKeys??!1,this.forceFloat32=J?.forceFloat32??!1,this.ignoreUndefined=J?.ignoreUndefined??!1,this.forceIntegerToFloat=J?.forceIntegerToFloat??!1,this.pos=0,this.view=new DataView(new ArrayBuffer(this.initialBufferSize)),this.bytes=new Uint8Array(this.view.buffer)}clone(){return new i1({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,maxDepth:this.maxDepth,initialBufferSize:this.initialBufferSize,sortKeys:this.sortKeys,forceFloat32:this.forceFloat32,ignoreUndefined:this.ignoreUndefined,forceIntegerToFloat:this.forceIntegerToFloat})}reinitializeState(){this.pos=0}encodeSharedRef(J){if(this.entered)return this.clone().encodeSharedRef(J);try{return this.entered=!0,this.reinitializeState(),this.doEncode(J,1),this.bytes.subarray(0,this.pos)}finally{this.entered=!1}}encode(J){if(this.entered)return this.clone().encode(J);try{return this.entered=!0,this.reinitializeState(),this.doEncode(J,1),this.bytes.slice(0,this.pos)}finally{this.entered=!1}}doEncode(J,Q){if(Q>this.maxDepth)throw new Error(`Too deep objects in depth ${Q}`);if(J==null)this.encodeNil();else if(typeof J==="boolean")this.encodeBoolean(J);else if(typeof J==="number")if(!this.forceIntegerToFloat)this.encodeNumber(J);else this.encodeNumberAsFloat(J);else if(typeof J==="string")this.encodeString(J);else if(this.useBigInt64&&typeof J==="bigint")this.encodeBigInt64(J);else this.encodeObject(J,Q)}ensureBufferSizeToWrite(J){const Q=this.pos+J;if(this.view.byteLength<Q)this.resizeBuffer(Q*2)}resizeBuffer(J){const Q=new ArrayBuffer(J),W=new Uint8Array(Q),G=new DataView(Q);W.set(this.bytes),this.view=G,this.bytes=W}encodeNil(){this.writeU8(192)}encodeBoolean(J){if(J===!1)this.writeU8(194);else this.writeU8(195)}encodeNumber(J){if(!this.forceIntegerToFloat&&Number.isSafeInteger(J))if(J>=0)if(J<128)this.writeU8(J);else if(J<256)this.writeU8(204),this.writeU8(J);else if(J<65536)this.writeU8(205),this.writeU16(J);else if(J<4294967296)this.writeU8(206),this.writeU32(J);else if(!this.useBigInt64)this.writeU8(207),this.writeU64(J);else this.encodeNumberAsFloat(J);else if(J>=-32)this.writeU8(224|J+32);else if(J>=-128)this.writeU8(208),this.writeI8(J);else if(J>=-32768)this.writeU8(209),this.writeI16(J);else if(J>=-2147483648)this.writeU8(210),this.writeI32(J);else if(!this.useBigInt64)this.writeU8(211),this.writeI64(J);else this.encodeNumberAsFloat(J);else this.encodeNumberAsFloat(J)}encodeNumberAsFloat(J){if(this.forceFloat32)this.writeU8(202),this.writeF32(J);else this.writeU8(203),this.writeF64(J)}encodeBigInt64(J){if(J>=BigInt(0))this.writeU8(207),this.writeBigUint64(J);else this.writeU8(211),this.writeBigInt64(J)}writeStringHeader(J){if(J<32)this.writeU8(160+J);else if(J<256)this.writeU8(217),this.writeU8(J);else if(J<65536)this.writeU8(218),this.writeU16(J);else if(J<4294967296)this.writeU8(219),this.writeU32(J);else throw new Error(`Too long string: ${J} bytes in UTF-8`)}encodeString(J){const W=M6(J);this.ensureBufferSizeToWrite(5+W),this.writeStringHeader(W),j6(J,this.bytes,this.pos),this.pos+=W}encodeObject(J,Q){const W=this.extensionCodec.tryToEncode(J,this.context);if(W!=null)this.encodeExtension(W);else if(Array.isArray(J))this.encodeArray(J,Q);else if(ArrayBuffer.isView(J))this.encodeBinary(J);else if(typeof J==="object")this.encodeMap(J,Q);else throw new Error(`Unrecognized object: ${Object.prototype.toString.apply(J)}`)}encodeBinary(J){const Q=J.byteLength;if(Q<256)this.writeU8(196),this.writeU8(Q);else if(Q<65536)this.writeU8(197),this.writeU16(Q);else if(Q<4294967296)this.writeU8(198),this.writeU32(Q);else throw new Error(`Too large binary: ${Q}`);const W=Z1(J);this.writeU8a(W)}encodeArray(J,Q){const W=J.length;if(W<16)this.writeU8(144+W);else if(W<65536)this.writeU8(220),this.writeU16(W);else if(W<4294967296)this.writeU8(221),this.writeU32(W);else throw new Error(`Too large array: ${W}`);for(let G of J)this.doEncode(G,Q+1)}countWithoutUndefined(J,Q){let W=0;for(let G of Q)if(J[G]!==void 0)W++;return W}encodeMap(J,Q){const W=Object.keys(J);if(this.sortKeys)W.sort();const G=this.ignoreUndefined?this.countWithoutUndefined(J,W):W.length;if(G<16)this.writeU8(128+G);else if(G<65536)this.writeU8(222),this.writeU16(G);else if(G<4294967296)this.writeU8(223),this.writeU32(G);else throw new Error(`Too large map object: ${G}`);for(let V of W){const q=J[V];if(!(this.ignoreUndefined&&q===void 0))this.encodeString(V),this.doEncode(q,Q+1)}}encodeExtension(J){if(typeof J.data==="function"){const W=J.data(this.pos+6),G=W.length;if(G>=4294967296)throw new Error(`Too large extension object: ${G}`);this.writeU8(201),this.writeU32(G),this.writeI8(J.type),this.writeU8a(W);return}const Q=J.data.length;if(Q===1)this.writeU8(212);else if(Q===2)this.writeU8(213);else if(Q===4)this.writeU8(214);else if(Q===8)this.writeU8(215);else if(Q===16)this.writeU8(216);else if(Q<256)this.writeU8(199),this.writeU8(Q);else if(Q<65536)this.writeU8(200),this.writeU16(Q);else if(Q<4294967296)this.writeU8(201),this.writeU32(Q);else throw new Error(`Too large extension object: ${Q}`);this.writeI8(J.type),this.writeU8a(J.data)}writeU8(J){this.ensureBufferSizeToWrite(1),this.view.setUint8(this.pos,J),this.pos++}writeU8a(J){const Q=J.length;this.ensureBufferSizeToWrite(Q),this.bytes.set(J,this.pos),this.pos+=Q}writeI8(J){this.ensureBufferSizeToWrite(1),this.view.setInt8(this.pos,J),this.pos++}writeU16(J){this.ensureBufferSizeToWrite(2),this.view.setUint16(this.pos,J),this.pos+=2}writeI16(J){this.ensureBufferSizeToWrite(2),this.view.setInt16(this.pos,J),this.pos+=2}writeU32(J){this.ensureBufferSizeToWrite(4),this.view.setUint32(this.pos,J),this.pos+=4}writeI32(J){this.ensureBufferSizeToWrite(4),this.view.setInt32(this.pos,J),this.pos+=4}writeF32(J){this.ensureBufferSizeToWrite(4),this.view.setFloat32(this.pos,J),this.pos+=4}writeF64(J){this.ensureBufferSizeToWrite(8),this.view.setFloat64(this.pos,J),this.pos+=8}writeU64(J){this.ensureBufferSizeToWrite(8),R6(this.view,this.pos,J),this.pos+=8}writeI64(J){this.ensureBufferSizeToWrite(8),_1(this.view,this.pos,J),this.pos+=8}writeBigUint64(J){this.ensureBufferSizeToWrite(8),this.view.setBigUint64(this.pos,J),this.pos+=8}writeBigInt64(J){this.ensureBufferSizeToWrite(8),this.view.setBigInt64(this.pos,J),this.pos+=8}}function I0(J,Q){return new i1(Q).encodeSharedRef(J)}function r1(J){return`${J<0?"-":""}0x${Math.abs(J).toString(16).padStart(2,"0")}`}var _J=16,lJ=16;class x8{constructor(J=_J,Q=lJ){this.hit=0,this.miss=0,this.maxKeyLength=J,this.maxLengthPerKey=Q,this.caches=[];for(let W=0;W<this.maxKeyLength;W++)this.caches.push([])}canBeCached(J){return J>0&&J<=this.maxKeyLength}find(J,Q,W){const G=this.caches[W-1];J:for(let V of G){const q=V.bytes;for(let Y=0;Y<W;Y++)if(q[Y]!==J[Q+Y])continue J;return V.str}return null}store(J,Q){const W=this.caches[J.length-1],G={bytes:J,str:Q};if(W.length>=this.maxLengthPerKey)W[Math.random()*W.length|0]=G;else W.push(G)}decode(J,Q,W){const G=this.find(J,Q,W);if(G!=null)return this.hit++,G;this.miss++;const V=R8(J,Q,W),q=Uint8Array.prototype.slice.call(J,Q,Q+W);return this.store(q,V),V}}var O8="array",H1="map_key",N6="map_value",iJ=(J)=>{if(typeof J==="string"||typeof J==="number")return J;throw new s("The type of key must be string or number but "+typeof J)};class w6{constructor(){this.stack=[],this.stackHeadPosition=-1}get length(){return this.stackHeadPosition+1}top(){return this.stack[this.stackHeadPosition]}pushArrayState(J){const Q=this.getUninitializedStateFromPool();Q.type=O8,Q.position=0,Q.size=J,Q.array=new Array(J)}pushMapState(J){const Q=this.getUninitializedStateFromPool();Q.type=H1,Q.readCount=0,Q.size=J,Q.map={}}getUninitializedStateFromPool(){if(this.stackHeadPosition++,this.stackHeadPosition===this.stack.length){const J={type:void 0,size:0,array:void 0,position:0,readCount:0,map:void 0,key:null};this.stack.push(J)}return this.stack[this.stackHeadPosition]}release(J){if(this.stack[this.stackHeadPosition]!==J)throw new Error("Invalid stack state. Released state is not on top of the stack.");if(J.type===O8){const W=J;W.size=0,W.array=void 0,W.position=0,W.type=void 0}if(J.type===H1||J.type===N6){const W=J;W.size=0,W.map=void 0,W.readCount=0,W.type=void 0}this.stackHeadPosition--}reset(){this.stack.length=0,this.stackHeadPosition=-1}}var k1=-1,I8=new DataView(new ArrayBuffer(0)),rJ=new Uint8Array(I8.buffer);try{I8.getInt8(0)}catch(J){if(!(J instanceof RangeError))throw new Error("This module is not supported in the current JavaScript engine because DataView does not throw RangeError on out-of-bounds access")}var I6=new RangeError("Insufficient data"),nJ=new x8;class n1{constructor(J){this.totalPos=0,this.pos=0,this.view=I8,this.bytes=rJ,this.headByte=k1,this.stack=new w6,this.entered=!1,this.extensionCodec=J?.extensionCodec??E0.defaultCodec,this.context=J?.context,this.useBigInt64=J?.useBigInt64??!1,this.rawStrings=J?.rawStrings??!1,this.maxStrLength=J?.maxStrLength??e0,this.maxBinLength=J?.maxBinLength??e0,this.maxArrayLength=J?.maxArrayLength??e0,this.maxMapLength=J?.maxMapLength??e0,this.maxExtLength=J?.maxExtLength??e0,this.keyDecoder=J?.keyDecoder!==void 0?J.keyDecoder:nJ,this.mapKeyConverter=J?.mapKeyConverter??iJ}clone(){return new n1({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,rawStrings:this.rawStrings,maxStrLength:this.maxStrLength,maxBinLength:this.maxBinLength,maxArrayLength:this.maxArrayLength,maxMapLength:this.maxMapLength,maxExtLength:this.maxExtLength,keyDecoder:this.keyDecoder})}reinitializeState(){this.totalPos=0,this.headByte=k1,this.stack.reset()}setBuffer(J){const Q=Z1(J);this.bytes=Q,this.view=new DataView(Q.buffer,Q.byteOffset,Q.byteLength),this.pos=0}appendBuffer(J){if(this.headByte===k1&&!this.hasRemaining(1))this.setBuffer(J);else{const Q=this.bytes.subarray(this.pos),W=Z1(J),G=new Uint8Array(Q.length+W.length);G.set(Q),G.set(W,Q.length),this.setBuffer(G)}}hasRemaining(J){return this.view.byteLength-this.pos>=J}createExtraByteError(J){const{view:Q,pos:W}=this;return new RangeError(`Extra ${Q.byteLength-W} of ${Q.byteLength} byte(s) found at buffer[${J}]`)}decode(J){if(this.entered)return this.clone().decode(J);try{this.entered=!0,this.reinitializeState(),this.setBuffer(J);const Q=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return Q}finally{this.entered=!1}}*decodeMulti(J){if(this.entered){yield*this.clone().decodeMulti(J);return}try{this.entered=!0,this.reinitializeState(),this.setBuffer(J);while(this.hasRemaining(1))yield this.doDecodeSync()}finally{this.entered=!1}}async decodeAsync(J){if(this.entered)return this.clone().decodeAsync(J);try{this.entered=!0;let Q=!1,W;for await(let Y of J){if(Q)throw this.entered=!1,this.createExtraByteError(this.totalPos);this.appendBuffer(Y);try{W=this.doDecodeSync(),Q=!0}catch(X){if(!(X instanceof RangeError))throw X}this.totalPos+=this.pos}if(Q){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return W}const{headByte:G,pos:V,totalPos:q}=this;throw new RangeError(`Insufficient data in parsing ${r1(G)} at ${q} (${V} in the current buffer)`)}finally{this.entered=!1}}decodeArrayStream(J){return this.decodeMultiAsync(J,!0)}decodeStream(J){return this.decodeMultiAsync(J,!1)}async*decodeMultiAsync(J,Q){if(this.entered){yield*this.clone().decodeMultiAsync(J,Q);return}try{this.entered=!0;let W=Q,G=-1;for await(let V of J){if(Q&&G===0)throw this.createExtraByteError(this.totalPos);if(this.appendBuffer(V),W)G=this.readArraySize(),W=!1,this.complete();try{while(!0)if(yield this.doDecodeSync(),--G===0)break}catch(q){if(!(q instanceof RangeError))throw q}this.totalPos+=this.pos}}finally{this.entered=!1}}doDecodeSync(){J:while(!0){const J=this.readHeadByte();let Q;if(J>=224)Q=J-256;else if(J<192)if(J<128)Q=J;else if(J<144){const G=J-128;if(G!==0){this.pushMapState(G),this.complete();continue J}else Q={}}else if(J<160){const G=J-144;if(G!==0){this.pushArrayState(G),this.complete();continue J}else Q=[]}else{const G=J-160;Q=this.decodeString(G,0)}else if(J===192)Q=null;else if(J===194)Q=!1;else if(J===195)Q=!0;else if(J===202)Q=this.readF32();else if(J===203)Q=this.readF64();else if(J===204)Q=this.readU8();else if(J===205)Q=this.readU16();else if(J===206)Q=this.readU32();else if(J===207)if(this.useBigInt64)Q=this.readU64AsBigInt();else Q=this.readU64();else if(J===208)Q=this.readI8();else if(J===209)Q=this.readI16();else if(J===210)Q=this.readI32();else if(J===211)if(this.useBigInt64)Q=this.readI64AsBigInt();else Q=this.readI64();else if(J===217){const G=this.lookU8();Q=this.decodeString(G,1)}else if(J===218){const G=this.lookU16();Q=this.decodeString(G,2)}else if(J===219){const G=this.lookU32();Q=this.decodeString(G,4)}else if(J===220){const G=this.readU16();if(G!==0){this.pushArrayState(G),this.complete();continue J}else Q=[]}else if(J===221){const G=this.readU32();if(G!==0){this.pushArrayState(G),this.complete();continue J}else Q=[]}else if(J===222){const G=this.readU16();if(G!==0){this.pushMapState(G),this.complete();continue J}else Q={}}else if(J===223){const G=this.readU32();if(G!==0){this.pushMapState(G),this.complete();continue J}else Q={}}else if(J===196){const G=this.lookU8();Q=this.decodeBinary(G,1)}else if(J===197){const G=this.lookU16();Q=this.decodeBinary(G,2)}else if(J===198){const G=this.lookU32();Q=this.decodeBinary(G,4)}else if(J===212)Q=this.decodeExtension(1,0);else if(J===213)Q=this.decodeExtension(2,0);else if(J===214)Q=this.decodeExtension(4,0);else if(J===215)Q=this.decodeExtension(8,0);else if(J===216)Q=this.decodeExtension(16,0);else if(J===199){const G=this.lookU8();Q=this.decodeExtension(G,1)}else if(J===200){const G=this.lookU16();Q=this.decodeExtension(G,2)}else if(J===201){const G=this.lookU32();Q=this.decodeExtension(G,4)}else throw new s(`Unrecognized type byte: ${r1(J)}`);this.complete();const W=this.stack;while(W.length>0){const G=W.top();if(G.type===O8)if(G.array[G.position]=Q,G.position++,G.position===G.size)Q=G.array,W.release(G);else continue J;else if(G.type===H1){if(Q==="__proto__")throw new s("The key __proto__ is not allowed");G.key=this.mapKeyConverter(Q),G.type=N6;continue J}else if(G.map[G.key]=Q,G.readCount++,G.readCount===G.size)Q=G.map,W.release(G);else{G.key=null,G.type=H1;continue J}}return Q}}readHeadByte(){if(this.headByte===k1)this.headByte=this.readU8();return this.headByte}complete(){this.headByte=k1}readArraySize(){const J=this.readHeadByte();switch(J){case 220:return this.readU16();case 221:return this.readU32();default:if(J<160)return J-144;else throw new s(`Unrecognized array type byte: ${r1(J)}`)}}pushMapState(J){if(J>this.maxMapLength)throw new s(`Max length exceeded: map length (${J}) > maxMapLengthLength (${this.maxMapLength})`);this.stack.pushMapState(J)}pushArrayState(J){if(J>this.maxArrayLength)throw new s(`Max length exceeded: array length (${J}) > maxArrayLength (${this.maxArrayLength})`);this.stack.pushArrayState(J)}decodeString(J,Q){if(!this.rawStrings||this.stateIsMapKey())return this.decodeUtf8String(J,Q);return this.decodeBinary(J,Q)}decodeUtf8String(J,Q){if(J>this.maxStrLength)throw new s(`Max length exceeded: UTF-8 byte length (${J}) > maxStrLength (${this.maxStrLength})`);if(this.bytes.byteLength<this.pos+Q+J)throw I6;const W=this.pos+Q;let G;if(this.stateIsMapKey()&&this.keyDecoder?.canBeCached(J))G=this.keyDecoder.decode(this.bytes,W,J);else G=L6(this.bytes,W,J);return this.pos+=Q+J,G}stateIsMapKey(){if(this.stack.length>0)return this.stack.top().type===H1;return!1}decodeBinary(J,Q){if(J>this.maxBinLength)throw new s(`Max length exceeded: bin length (${J}) > maxBinLength (${this.maxBinLength})`);if(!this.hasRemaining(J+Q))throw I6;const W=this.pos+Q,G=this.bytes.subarray(W,W+J);return this.pos+=Q+J,G}decodeExtension(J,Q){if(J>this.maxExtLength)throw new s(`Max length exceeded: ext length (${J}) > maxExtLength (${this.maxExtLength})`);const W=this.view.getInt8(this.pos+Q),G=this.decodeBinary(J,Q+1);return this.extensionCodec.decode(G,W,this.context)}lookU8(){return this.view.getUint8(this.pos)}lookU16(){return this.view.getUint16(this.pos)}lookU32(){return this.view.getUint32(this.pos)}readU8(){const J=this.view.getUint8(this.pos);return this.pos++,J}readI8(){const J=this.view.getInt8(this.pos);return this.pos++,J}readU16(){const J=this.view.getUint16(this.pos);return this.pos+=2,J}readI16(){const J=this.view.getInt16(this.pos);return this.pos+=2,J}readU32(){const J=this.view.getUint32(this.pos);return this.pos+=4,J}readI32(){const J=this.view.getInt32(this.pos);return this.pos+=4,J}readU64(){const J=x6(this.view,this.pos);return this.pos+=8,J}readI64(){const J=l1(this.view,this.pos);return this.pos+=8,J}readU64AsBigInt(){const J=this.view.getBigUint64(this.pos);return this.pos+=8,J}readI64AsBigInt(){const J=this.view.getBigInt64(this.pos);return this.pos+=8,J}readF32(){const J=this.view.getFloat32(this.pos);return this.pos+=4,J}readF64(){const J=this.view.getFloat64(this.pos);return this.pos+=8,J}}function o1(J,Q){return new n1(Q).decode(J)}var q1=function(J){let Q=J.length;while(--Q>=0)J[Q]=0},w8=function(J,Q,W,G,V){this.static_tree=J,this.extra_bits=Q,this.extra_base=W,this.elems=G,this.max_length=V,this.has_stree=J&&J.length},A8=function(J,Q){this.dyn_tree=J,this.max_code=0,this.stat_desc=Q},Z0=function(J,Q,W,G,V){this.good_length=J,this.max_lazy=Q,this.nice_length=W,this.max_chain=G,this.func=V},aW=function(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=q8,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(mW*2),this.dyn_dtree=new Uint16Array((2*bW+1)*2),this.bl_tree=new Uint16Array((2*uW+1)*2),N0(this.dyn_ltree),N0(this.dyn_dtree),N0(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(dW+1),this.heap=new Uint16Array(2*c8+1),N0(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*c8+1),N0(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0},B7=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0},T1=function(J){this.options=Y8.assign({level:O7,method:N7,chunkSize:16384,windowBits:15,memLevel:8,strategy:I7},J||{});let Q=this.options;if(Q.raw&&Q.windowBits>0)Q.windowBits=-Q.windowBits;else if(Q.gzip&&Q.windowBits>0&&Q.windowBits<16)Q.windowBits+=16;this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new g5,this.strm.avail_out=0;let W=j1.deflateInit2(this.strm,Q.level,Q.method,Q.windowBits,Q.memLevel,Q.strategy);if(W!==G8)throw new Error(b0[W]);if(Q.header)j1.deflateSetHeader(this.strm,Q.header);if(Q.dictionary){let G;if(typeof Q.dictionary==="string")G=A1.string2buf(Q.dictionary);else if(y5.call(Q.dictionary)==="[object ArrayBuffer]")G=new Uint8Array(Q.dictionary);else G=Q.dictionary;if(W=j1.deflateSetDictionary(this.strm,G),W!==G8)throw new Error(b0[W]);this._dict_set=!0}},J6=function(J,Q){const W=new T1(Q);if(W.push(J,!0),W.err)throw W.msg||b0[W.err];return W.result},w7=function(J,Q){return Q=Q||{},Q.raw=!0,J6(J,Q)},A7=function(J,Q){return Q=Q||{},Q.gzip=!0,J6(J,Q)},s7=function(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0},kQ=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1},g1=function(J){this.options=Y8.assign({chunkSize:65536,windowBits:15,to:""},J||{});const Q=this.options;if(Q.raw&&Q.windowBits>=0&&Q.windowBits<16){if(Q.windowBits=-Q.windowBits,Q.windowBits===0)Q.windowBits=-15}if(Q.windowBits>=0&&Q.windowBits<16&&!(J&&J.windowBits))Q.windowBits+=32;if(Q.windowBits>15&&Q.windowBits<48){if((Q.windowBits&15)===0)Q.windowBits|=15}this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new g5,this.strm.avail_out=0;let W=R0.inflateInit2(this.strm,Q.windowBits);if(W!==v1)throw new Error(b0[W]);if(this.header=new HQ,R0.inflateGetHeader(this.strm,this.header),Q.dictionary){if(typeof Q.dictionary==="string")Q.dictionary=A1.string2buf(Q.dictionary);else if(i5.call(Q.dictionary)==="[object ArrayBuffer]")Q.dictionary=new Uint8Array(Q.dictionary);if(Q.raw){if(W=R0.inflateSetDictionary(this.strm,Q.dictionary),W!==v1)throw new Error(b0[W])}}},W6=function(J,Q){const W=new g1(Q);if(W.push(J),W.err)throw W.msg||b0[W.err];return W.result},jQ=function(J,Q){return Q=Q||{},Q.raw=!0,W6(J,Q)};/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */var oJ=0,z5=1,aJ=2,sJ=3,tJ=258,o8=29,D1=256,R1=D1+1+o8,Q1=30,a8=19,Z5=2*R1+1,p0=15,N8=16,eJ=7,s8=256,k5=16,H5=17,$5=18,u8=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),W8=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),JW=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),C5=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),WW=512,L0=new Array((R1+2)*2);q1(L0);var M1=new Array(Q1*2);q1(M1);var x1=new Array(WW);q1(x1);var O1=new Array(tJ-sJ+1);q1(O1);var t8=new Array(o8);q1(t8);var Q8=new Array(Q1);q1(Q8);var B5,M5,j5,L5=(J)=>{return J<256?x1[J]:x1[256+(J>>>7)]},I1=(J,Q)=>{J.pending_buf[J.pending++]=Q&255,J.pending_buf[J.pending++]=Q>>>8&255},J0=(J,Q,W)=>{if(J.bi_valid>N8-W)J.bi_buf|=Q<<J.bi_valid&65535,I1(J,J.bi_buf),J.bi_buf=Q>>N8-J.bi_valid,J.bi_valid+=W-N8;else J.bi_buf|=Q<<J.bi_valid&65535,J.bi_valid+=W},k0=(J,Q,W)=>{J0(J,W[Q*2],W[Q*2+1])},R5=(J,Q)=>{let W=0;do W|=J&1,J>>>=1,W<<=1;while(--Q>0);return W>>>1},QW=(J)=>{if(J.bi_valid===16)I1(J,J.bi_buf),J.bi_buf=0,J.bi_valid=0;else if(J.bi_valid>=8)J.pending_buf[J.pending++]=J.bi_buf&255,J.bi_buf>>=8,J.bi_valid-=8},GW=(J,Q)=>{const{dyn_tree:W,max_code:G}=Q,V=Q.stat_desc.static_tree,q=Q.stat_desc.has_stree,Y=Q.stat_desc.extra_bits,X=Q.stat_desc.extra_base,K=Q.stat_desc.max_length;let U,P,Z,z,F,H,R=0;for(z=0;z<=p0;z++)J.bl_count[z]=0;W[J.heap[J.heap_max]*2+1]=0;for(U=J.heap_max+1;U<Z5;U++){if(P=J.heap[U],z=W[W[P*2+1]*2+1]+1,z>K)z=K,R++;if(W[P*2+1]=z,P>G)continue;if(J.bl_count[z]++,F=0,P>=X)F=Y[P-X];if(H=W[P*2],J.opt_len+=H*(z+F),q)J.static_len+=H*(V[P*2+1]+F)}if(R===0)return;do{z=K-1;while(J.bl_count[z]===0)z--;J.bl_count[z]--,J.bl_count[z+1]+=2,J.bl_count[K]--,R-=2}while(R>0);for(z=K;z!==0;z--){P=J.bl_count[z];while(P!==0){if(Z=J.heap[--U],Z>G)continue;if(W[Z*2+1]!==z)J.opt_len+=(z-W[Z*2+1])*W[Z*2],W[Z*2+1]=z;P--}}},x5=(J,Q,W)=>{const G=new Array(p0+1);let V=0,q,Y;for(q=1;q<=p0;q++)V=V+W[q-1]<<1,G[q]=V;for(Y=0;Y<=Q;Y++){let X=J[Y*2+1];if(X===0)continue;J[Y*2]=R5(G[X]++,X)}},VW=()=>{let J,Q,W,G,V;const q=new Array(p0+1);W=0;for(G=0;G<o8-1;G++){t8[G]=W;for(J=0;J<1<<u8[G];J++)O1[W++]=G}O1[W-1]=G,V=0;for(G=0;G<16;G++){Q8[G]=V;for(J=0;J<1<<W8[G];J++)x1[V++]=G}V>>=7;for(;G<Q1;G++){Q8[G]=V<<7;for(J=0;J<1<<W8[G]-7;J++)x1[256+V++]=G}for(Q=0;Q<=p0;Q++)q[Q]=0;J=0;while(J<=143)L0[J*2+1]=8,J++,q[8]++;while(J<=255)L0[J*2+1]=9,J++,q[9]++;while(J<=279)L0[J*2+1]=7,J++,q[7]++;while(J<=287)L0[J*2+1]=8,J++,q[8]++;x5(L0,R1+1,q);for(J=0;J<Q1;J++)M1[J*2+1]=5,M1[J*2]=R5(J,5);B5=new w8(L0,u8,D1+1,R1,p0),M5=new w8(M1,W8,0,Q1,p0),j5=new w8(new Array(0),JW,0,a8,eJ)},O5=(J)=>{let Q;for(Q=0;Q<R1;Q++)J.dyn_ltree[Q*2]=0;for(Q=0;Q<Q1;Q++)J.dyn_dtree[Q*2]=0;for(Q=0;Q<a8;Q++)J.bl_tree[Q*2]=0;J.dyn_ltree[s8*2]=1,J.opt_len=J.static_len=0,J.sym_next=J.matches=0},I5=(J)=>{if(J.bi_valid>8)I1(J,J.bi_buf);else if(J.bi_valid>0)J.pending_buf[J.pending++]=J.bi_buf;J.bi_buf=0,J.bi_valid=0},A6=(J,Q,W,G)=>{const V=Q*2,q=W*2;return J[V]<J[q]||J[V]===J[q]&&G[Q]<=G[W]},v8=(J,Q,W)=>{const G=J.heap[W];let V=W<<1;while(V<=J.heap_len){if(V<J.heap_len&&A6(Q,J.heap[V+1],J.heap[V],J.depth))V++;if(A6(Q,G,J.heap[V],J.depth))break;J.heap[W]=J.heap[V],W=V,V<<=1}J.heap[W]=G},v6=(J,Q,W)=>{let G,V,q=0,Y,X;if(J.sym_next!==0)do if(G=J.pending_buf[J.sym_buf+q++]&255,G+=(J.pending_buf[J.sym_buf+q++]&255)<<8,V=J.pending_buf[J.sym_buf+q++],G===0)k0(J,V,Q);else{if(Y=O1[V],k0(J,Y+D1+1,Q),X=u8[Y],X!==0)V-=t8[Y],J0(J,V,X);if(G--,Y=L5(G),k0(J,Y,W),X=W8[Y],X!==0)G-=Q8[Y],J0(J,G,X)}while(q<J.sym_next);k0(J,s8,Q)},m8=(J,Q)=>{const W=Q.dyn_tree,G=Q.stat_desc.static_tree,V=Q.stat_desc.has_stree,q=Q.stat_desc.elems;let Y,X,K=-1,U;J.heap_len=0,J.heap_max=Z5;for(Y=0;Y<q;Y++)if(W[Y*2]!==0)J.heap[++J.heap_len]=K=Y,J.depth[Y]=0;else W[Y*2+1]=0;while(J.heap_len<2)if(U=J.heap[++J.heap_len]=K<2?++K:0,W[U*2]=1,J.depth[U]=0,J.opt_len--,V)J.static_len-=G[U*2+1];Q.max_code=K;for(Y=J.heap_len>>1;Y>=1;Y--)v8(J,W,Y);U=q;do Y=J.heap[1],J.heap[1]=J.heap[J.heap_len--],v8(J,W,1),X=J.heap[1],J.heap[--J.heap_max]=Y,J.heap[--J.heap_max]=X,W[U*2]=W[Y*2]+W[X*2],J.depth[U]=(J.depth[Y]>=J.depth[X]?J.depth[Y]:J.depth[X])+1,W[Y*2+1]=W[X*2+1]=U,J.heap[1]=U++,v8(J,W,1);while(J.heap_len>=2);J.heap[--J.heap_max]=J.heap[1],GW(J,Q),x5(W,K,J.bl_count)},D6=(J,Q,W)=>{let G,V=-1,q,Y=Q[1],X=0,K=7,U=4;if(Y===0)K=138,U=3;Q[(W+1)*2+1]=65535;for(G=0;G<=W;G++){if(q=Y,Y=Q[(G+1)*2+1],++X<K&&q===Y)continue;else if(X<U)J.bl_tree[q*2]+=X;else if(q!==0){if(q!==V)J.bl_tree[q*2]++;J.bl_tree[k5*2]++}else if(X<=10)J.bl_tree[H5*2]++;else J.bl_tree[$5*2]++;if(X=0,V=q,Y===0)K=138,U=3;else if(q===Y)K=6,U=3;else K=7,U=4}},S6=(J,Q,W)=>{let G,V=-1,q,Y=Q[1],X=0,K=7,U=4;if(Y===0)K=138,U=3;for(G=0;G<=W;G++){if(q=Y,Y=Q[(G+1)*2+1],++X<K&&q===Y)continue;else if(X<U)do k0(J,q,J.bl_tree);while(--X!==0);else if(q!==0){if(q!==V)k0(J,q,J.bl_tree),X--;k0(J,k5,J.bl_tree),J0(J,X-3,2)}else if(X<=10)k0(J,H5,J.bl_tree),J0(J,X-3,3);else k0(J,$5,J.bl_tree),J0(J,X-11,7);if(X=0,V=q,Y===0)K=138,U=3;else if(q===Y)K=6,U=3;else K=7,U=4}},qW=(J)=>{let Q;D6(J,J.dyn_ltree,J.l_desc.max_code),D6(J,J.dyn_dtree,J.d_desc.max_code),m8(J,J.bl_desc);for(Q=a8-1;Q>=3;Q--)if(J.bl_tree[C5[Q]*2+1]!==0)break;return J.opt_len+=3*(Q+1)+5+5+4,Q},YW=(J,Q,W,G)=>{let V;J0(J,Q-257,5),J0(J,W-1,5),J0(J,G-4,4);for(V=0;V<G;V++)J0(J,J.bl_tree[C5[V]*2+1],3);S6(J,J.dyn_ltree,Q-1),S6(J,J.dyn_dtree,W-1)},XW=(J)=>{let Q=4093624447,W;for(W=0;W<=31;W++,Q>>>=1)if(Q&1&&J.dyn_ltree[W*2]!==0)return 0;if(J.dyn_ltree[18]!==0||J.dyn_ltree[20]!==0||J.dyn_ltree[26]!==0)return 1;for(W=32;W<D1;W++)if(J.dyn_ltree[W*2]!==0)return 1;return 0},T6=!1,UW=(J)=>{if(!T6)VW(),T6=!0;J.l_desc=new A8(J.dyn_ltree,B5),J.d_desc=new A8(J.dyn_dtree,M5),J.bl_desc=new A8(J.bl_tree,j5),J.bi_buf=0,J.bi_valid=0,O5(J)},N5=(J,Q,W,G)=>{if(J0(J,(oJ<<1)+(G?1:0),3),I5(J),I1(J,W),I1(J,~W),W)J.pending_buf.set(J.window.subarray(Q,Q+W),J.pending);J.pending+=W},PW=(J)=>{J0(J,z5<<1,3),k0(J,s8,L0),QW(J)},KW=(J,Q,W,G)=>{let V,q,Y=0;if(J.level>0){if(J.strm.data_type===2)J.strm.data_type=XW(J);if(m8(J,J.l_desc),m8(J,J.d_desc),Y=qW(J),V=J.opt_len+3+7>>>3,q=J.static_len+3+7>>>3,q<=V)V=q}else V=q=W+5;if(W+4<=V&&Q!==-1)N5(J,Q,W,G);else if(J.strategy===4||q===V)J0(J,(z5<<1)+(G?1:0),3),v6(J,L0,M1);else J0(J,(aJ<<1)+(G?1:0),3),YW(J,J.l_desc.max_code+1,J.d_desc.max_code+1,Y+1),v6(J,J.dyn_ltree,J.dyn_dtree);if(O5(J),G)I5(J)},FW=(J,Q,W)=>{if(J.pending_buf[J.sym_buf+J.sym_next++]=Q,J.pending_buf[J.sym_buf+J.sym_next++]=Q>>8,J.pending_buf[J.sym_buf+J.sym_next++]=W,Q===0)J.dyn_ltree[W*2]++;else J.matches++,Q--,J.dyn_ltree[(O1[W]+D1+1)*2]++,J.dyn_dtree[L5(Q)*2]++;return J.sym_next===J.sym_end},zW=UW,ZW=N5,kW=KW,HW=FW,$W=PW,CW={_tr_init:zW,_tr_stored_block:ZW,_tr_flush_block:kW,_tr_tally:HW,_tr_align:$W},BW=(J,Q,W,G)=>{let V=J&65535|0,q=J>>>16&65535|0,Y=0;while(W!==0){Y=W>2000?2000:W,W-=Y;do V=V+Q[G++]|0,q=q+V|0;while(--Y);V%=65521,q%=65521}return V|q<<16|0},N1=BW,MW=()=>{let J,Q=[];for(var W=0;W<256;W++){J=W;for(var G=0;G<8;G++)J=J&1?3988292384^J>>>1:J>>>1;Q[W]=J}return Q},jW=new Uint32Array(MW()),LW=(J,Q,W,G)=>{const V=jW,q=G+W;J^=-1;for(let Y=G;Y<q;Y++)J=J>>>8^V[(J^Q[Y])&255];return J^-1},r=LW,b0={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},d0={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},{_tr_init:RW,_tr_stored_block:d8,_tr_flush_block:xW,_tr_tally:A0,_tr_align:OW}=CW,{Z_NO_FLUSH:v0,Z_PARTIAL_FLUSH:IW,Z_FULL_FLUSH:NW,Z_FINISH:q0,Z_BLOCK:g6,Z_OK:a,Z_STREAM_END:y6,Z_STREAM_ERROR:H0,Z_DATA_ERROR:wW,Z_BUF_ERROR:D8,Z_DEFAULT_COMPRESSION:AW,Z_FILTERED:vW,Z_HUFFMAN_ONLY:a1,Z_RLE:DW,Z_FIXED:SW,Z_DEFAULT_STRATEGY:TW,Z_UNKNOWN:gW,Z_DEFLATED:q8}=d0,yW=9,EW=15,pW=8,fW=29,hW=256,c8=hW+1+fW,bW=30,uW=19,mW=2*c8+1,dW=15,T=3,w0=258,$0=w0+T+1,cW=32,G1=42,e8=57,_8=69,l8=73,i8=91,r8=103,f0=113,C1=666,t=1,Y1=2,u0=3,X1=4,_W=3,h0=(J,Q)=>{return J.msg=b0[Q],Q},E6=(J)=>{return J*2-(J>4?9:0)},N0=(J)=>{let Q=J.length;while(--Q>=0)J[Q]=0},lW=(J)=>{let Q,W,G,V=J.w_size;Q=J.hash_size,G=Q;do W=J.head[--G],J.head[G]=W>=V?W-V:0;while(--Q);Q=V,G=Q;do W=J.prev[--G],J.prev[G]=W>=V?W-V:0;while(--Q)},iW=(J,Q,W)=>(Q<<J.hash_shift^W)&J.hash_mask,D0=iW,W0=(J)=>{const Q=J.state;let W=Q.pending;if(W>J.avail_out)W=J.avail_out;if(W===0)return;if(J.output.set(Q.pending_buf.subarray(Q.pending_out,Q.pending_out+W),J.next_out),J.next_out+=W,Q.pending_out+=W,J.total_out+=W,J.avail_out-=W,Q.pending-=W,Q.pending===0)Q.pending_out=0},Q0=(J,Q)=>{xW(J,J.block_start>=0?J.block_start:-1,J.strstart-J.block_start,Q),J.block_start=J.strstart,W0(J.strm)},E=(J,Q)=>{J.pending_buf[J.pending++]=Q},$1=(J,Q)=>{J.pending_buf[J.pending++]=Q>>>8&255,J.pending_buf[J.pending++]=Q&255},n8=(J,Q,W,G)=>{let V=J.avail_in;if(V>G)V=G;if(V===0)return 0;if(J.avail_in-=V,Q.set(J.input.subarray(J.next_in,J.next_in+V),W),J.state.wrap===1)J.adler=N1(J.adler,Q,V,W);else if(J.state.wrap===2)J.adler=r(J.adler,Q,V,W);return J.next_in+=V,J.total_in+=V,V},w5=(J,Q)=>{let{max_chain_length:W,strstart:G}=J,V,q,Y=J.prev_length,X=J.nice_match;const K=J.strstart>J.w_size-$0?J.strstart-(J.w_size-$0):0,U=J.window,P=J.w_mask,Z=J.prev,z=J.strstart+w0;let F=U[G+Y-1],H=U[G+Y];if(J.prev_length>=J.good_match)W>>=2;if(X>J.lookahead)X=J.lookahead;do{if(V=Q,U[V+Y]!==H||U[V+Y-1]!==F||U[V]!==U[G]||U[++V]!==U[G+1])continue;G+=2,V++;do;while(U[++G]===U[++V]&&U[++G]===U[++V]&&U[++G]===U[++V]&&U[++G]===U[++V]&&U[++G]===U[++V]&&U[++G]===U[++V]&&U[++G]===U[++V]&&U[++G]===U[++V]&&G<z);if(q=w0-(z-G),G=z-w0,q>Y){if(J.match_start=Q,Y=q,q>=X)break;F=U[G+Y-1],H=U[G+Y]}}while((Q=Z[Q&P])>K&&--W!==0);if(Y<=J.lookahead)return Y;return J.lookahead},V1=(J)=>{const Q=J.w_size;let W,G,V;do{if(G=J.window_size-J.lookahead-J.strstart,J.strstart>=Q+(Q-$0)){if(J.window.set(J.window.subarray(Q,Q+Q-G),0),J.match_start-=Q,J.strstart-=Q,J.block_start-=Q,J.insert>J.strstart)J.insert=J.strstart;lW(J),G+=Q}if(J.strm.avail_in===0)break;if(W=n8(J.strm,J.window,J.strstart+J.lookahead,G),J.lookahead+=W,J.lookahead+J.insert>=T){V=J.strstart-J.insert,J.ins_h=J.window[V],J.ins_h=D0(J,J.ins_h,J.window[V+1]);while(J.insert)if(J.ins_h=D0(J,J.ins_h,J.window[V+T-1]),J.prev[V&J.w_mask]=J.head[J.ins_h],J.head[J.ins_h]=V,V++,J.insert--,J.lookahead+J.insert<T)break}}while(J.lookahead<$0&&J.strm.avail_in!==0)},A5=(J,Q)=>{let W=J.pending_buf_size-5>J.w_size?J.w_size:J.pending_buf_size-5,G,V,q,Y=0,X=J.strm.avail_in;do{if(G=65535,q=J.bi_valid+42>>3,J.strm.avail_out<q)break;if(q=J.strm.avail_out-q,V=J.strstart-J.block_start,G>V+J.strm.avail_in)G=V+J.strm.avail_in;if(G>q)G=q;if(G<W&&(G===0&&Q!==q0||Q===v0||G!==V+J.strm.avail_in))break;if(Y=Q===q0&&G===V+J.strm.avail_in?1:0,d8(J,0,0,Y),J.pending_buf[J.pending-4]=G,J.pending_buf[J.pending-3]=G>>8,J.pending_buf[J.pending-2]=~G,J.pending_buf[J.pending-1]=~G>>8,W0(J.strm),V){if(V>G)V=G;J.strm.output.set(J.window.subarray(J.block_start,J.block_start+V),J.strm.next_out),J.strm.next_out+=V,J.strm.avail_out-=V,J.strm.total_out+=V,J.block_start+=V,G-=V}if(G)n8(J.strm,J.strm.output,J.strm.next_out,G),J.strm.next_out+=G,J.strm.avail_out-=G,J.strm.total_out+=G}while(Y===0);if(X-=J.strm.avail_in,X){if(X>=J.w_size)J.matches=2,J.window.set(J.strm.input.subarray(J.strm.next_in-J.w_size,J.strm.next_in),0),J.strstart=J.w_size,J.insert=J.strstart;else{if(J.window_size-J.strstart<=X){if(J.strstart-=J.w_size,J.window.set(J.window.subarray(J.w_size,J.w_size+J.strstart),0),J.matches<2)J.matches++;if(J.insert>J.strstart)J.insert=J.strstart}J.window.set(J.strm.input.subarray(J.strm.next_in-X,J.strm.next_in),J.strstart),J.strstart+=X,J.insert+=X>J.w_size-J.insert?J.w_size-J.insert:X}J.block_start=J.strstart}if(J.high_water<J.strstart)J.high_water=J.strstart;if(Y)return X1;if(Q!==v0&&Q!==q0&&J.strm.avail_in===0&&J.strstart===J.block_start)return Y1;if(q=J.window_size-J.strstart,J.strm.avail_in>q&&J.block_start>=J.w_size){if(J.block_start-=J.w_size,J.strstart-=J.w_size,J.window.set(J.window.subarray(J.w_size,J.w_size+J.strstart),0),J.matches<2)J.matches++;if(q+=J.w_size,J.insert>J.strstart)J.insert=J.strstart}if(q>J.strm.avail_in)q=J.strm.avail_in;if(q)n8(J.strm,J.window,J.strstart,q),J.strstart+=q,J.insert+=q>J.w_size-J.insert?J.w_size-J.insert:q;if(J.high_water<J.strstart)J.high_water=J.strstart;if(q=J.bi_valid+42>>3,q=J.pending_buf_size-q>65535?65535:J.pending_buf_size-q,W=q>J.w_size?J.w_size:q,V=J.strstart-J.block_start,V>=W||(V||Q===q0)&&Q!==v0&&J.strm.avail_in===0&&V<=q)G=V>q?q:V,Y=Q===q0&&J.strm.avail_in===0&&G===V?1:0,d8(J,J.block_start,G,Y),J.block_start+=G,W0(J.strm);return Y?u0:t},S8=(J,Q)=>{let W,G;for(;;){if(J.lookahead<$0){if(V1(J),J.lookahead<$0&&Q===v0)return t;if(J.lookahead===0)break}if(W=0,J.lookahead>=T)J.ins_h=D0(J,J.ins_h,J.window[J.strstart+T-1]),W=J.prev[J.strstart&J.w_mask]=J.head[J.ins_h],J.head[J.ins_h]=J.strstart;if(W!==0&&J.strstart-W<=J.w_size-$0)J.match_length=w5(J,W);if(J.match_length>=T)if(G=A0(J,J.strstart-J.match_start,J.match_length-T),J.lookahead-=J.match_length,J.match_length<=J.max_lazy_match&&J.lookahead>=T){J.match_length--;do J.strstart++,J.ins_h=D0(J,J.ins_h,J.window[J.strstart+T-1]),W=J.prev[J.strstart&J.w_mask]=J.head[J.ins_h],J.head[J.ins_h]=J.strstart;while(--J.match_length!==0);J.strstart++}else J.strstart+=J.match_length,J.match_length=0,J.ins_h=J.window[J.strstart],J.ins_h=D0(J,J.ins_h,J.window[J.strstart+1]);else G=A0(J,0,J.window[J.strstart]),J.lookahead--,J.strstart++;if(G){if(Q0(J,!1),J.strm.avail_out===0)return t}}if(J.insert=J.strstart<T-1?J.strstart:T-1,Q===q0){if(Q0(J,!0),J.strm.avail_out===0)return u0;return X1}if(J.sym_next){if(Q0(J,!1),J.strm.avail_out===0)return t}return Y1},J1=(J,Q)=>{let W,G,V;for(;;){if(J.lookahead<$0){if(V1(J),J.lookahead<$0&&Q===v0)return t;if(J.lookahead===0)break}if(W=0,J.lookahead>=T)J.ins_h=D0(J,J.ins_h,J.window[J.strstart+T-1]),W=J.prev[J.strstart&J.w_mask]=J.head[J.ins_h],J.head[J.ins_h]=J.strstart;if(J.prev_length=J.match_length,J.prev_match=J.match_start,J.match_length=T-1,W!==0&&J.prev_length<J.max_lazy_match&&J.strstart-W<=J.w_size-$0){if(J.match_length=w5(J,W),J.match_length<=5&&(J.strategy===vW||J.match_length===T&&J.strstart-J.match_start>4096))J.match_length=T-1}if(J.prev_length>=T&&J.match_length<=J.prev_length){V=J.strstart+J.lookahead-T,G=A0(J,J.strstart-1-J.prev_match,J.prev_length-T),J.lookahead-=J.prev_length-1,J.prev_length-=2;do if(++J.strstart<=V)J.ins_h=D0(J,J.ins_h,J.window[J.strstart+T-1]),W=J.prev[J.strstart&J.w_mask]=J.head[J.ins_h],J.head[J.ins_h]=J.strstart;while(--J.prev_length!==0);if(J.match_available=0,J.match_length=T-1,J.strstart++,G){if(Q0(J,!1),J.strm.avail_out===0)return t}}else if(J.match_available){if(G=A0(J,0,J.window[J.strstart-1]),G)Q0(J,!1);if(J.strstart++,J.lookahead--,J.strm.avail_out===0)return t}else J.match_available=1,J.strstart++,J.lookahead--}if(J.match_available)G=A0(J,0,J.window[J.strstart-1]),J.match_available=0;if(J.insert=J.strstart<T-1?J.strstart:T-1,Q===q0){if(Q0(J,!0),J.strm.avail_out===0)return u0;return X1}if(J.sym_next){if(Q0(J,!1),J.strm.avail_out===0)return t}return Y1},rW=(J,Q)=>{let W,G,V,q;const Y=J.window;for(;;){if(J.lookahead<=w0){if(V1(J),J.lookahead<=w0&&Q===v0)return t;if(J.lookahead===0)break}if(J.match_length=0,J.lookahead>=T&&J.strstart>0){if(V=J.strstart-1,G=Y[V],G===Y[++V]&&G===Y[++V]&&G===Y[++V]){q=J.strstart+w0;do;while(G===Y[++V]&&G===Y[++V]&&G===Y[++V]&&G===Y[++V]&&G===Y[++V]&&G===Y[++V]&&G===Y[++V]&&G===Y[++V]&&V<q);if(J.match_length=w0-(q-V),J.match_length>J.lookahead)J.match_length=J.lookahead}}if(J.match_length>=T)W=A0(J,1,J.match_length-T),J.lookahead-=J.match_length,J.strstart+=J.match_length,J.match_length=0;else W=A0(J,0,J.window[J.strstart]),J.lookahead--,J.strstart++;if(W){if(Q0(J,!1),J.strm.avail_out===0)return t}}if(J.insert=0,Q===q0){if(Q0(J,!0),J.strm.avail_out===0)return u0;return X1}if(J.sym_next){if(Q0(J,!1),J.strm.avail_out===0)return t}return Y1},nW=(J,Q)=>{let W;for(;;){if(J.lookahead===0){if(V1(J),J.lookahead===0){if(Q===v0)return t;break}}if(J.match_length=0,W=A0(J,0,J.window[J.strstart]),J.lookahead--,J.strstart++,W){if(Q0(J,!1),J.strm.avail_out===0)return t}}if(J.insert=0,Q===q0){if(Q0(J,!0),J.strm.avail_out===0)return u0;return X1}if(J.sym_next){if(Q0(J,!1),J.strm.avail_out===0)return t}return Y1},B1=[new Z0(0,0,0,0,A5),new Z0(4,4,8,4,S8),new Z0(4,5,16,8,S8),new Z0(4,6,32,32,S8),new Z0(4,4,16,16,J1),new Z0(8,16,32,32,J1),new Z0(8,16,128,128,J1),new Z0(8,32,128,256,J1),new Z0(32,128,258,1024,J1),new Z0(32,258,258,4096,J1)],oW=(J)=>{J.window_size=2*J.w_size,N0(J.head),J.max_lazy_match=B1[J.level].max_lazy,J.good_match=B1[J.level].good_length,J.nice_match=B1[J.level].nice_length,J.max_chain_length=B1[J.level].max_chain,J.strstart=0,J.block_start=0,J.lookahead=0,J.insert=0,J.match_length=J.prev_length=T-1,J.match_available=0,J.ins_h=0},S1=(J)=>{if(!J)return 1;const Q=J.state;if(!Q||Q.strm!==J||Q.status!==G1&&Q.status!==e8&&Q.status!==_8&&Q.status!==l8&&Q.status!==i8&&Q.status!==r8&&Q.status!==f0&&Q.status!==C1)return 1;return 0},v5=(J)=>{if(S1(J))return h0(J,H0);J.total_in=J.total_out=0,J.data_type=gW;const Q=J.state;if(Q.pending=0,Q.pending_out=0,Q.wrap<0)Q.wrap=-Q.wrap;return Q.status=Q.wrap===2?e8:Q.wrap?G1:f0,J.adler=Q.wrap===2?0:1,Q.last_flush=-2,RW(Q),a},D5=(J)=>{const Q=v5(J);if(Q===a)oW(J.state);return Q},sW=(J,Q)=>{if(S1(J)||J.state.wrap!==2)return H0;return J.state.gzhead=Q,a},S5=(J,Q,W,G,V,q)=>{if(!J)return H0;let Y=1;if(Q===AW)Q=6;if(G<0)Y=0,G=-G;else if(G>15)Y=2,G-=16;if(V<1||V>yW||W!==q8||G<8||G>15||Q<0||Q>9||q<0||q>SW||G===8&&Y!==1)return h0(J,H0);if(G===8)G=9;const X=new aW;return J.state=X,X.strm=J,X.status=G1,X.wrap=Y,X.gzhead=null,X.w_bits=G,X.w_size=1<<X.w_bits,X.w_mask=X.w_size-1,X.hash_bits=V+7,X.hash_size=1<<X.hash_bits,X.hash_mask=X.hash_size-1,X.hash_shift=~~((X.hash_bits+T-1)/T),X.window=new Uint8Array(X.w_size*2),X.head=new Uint16Array(X.hash_size),X.prev=new Uint16Array(X.w_size),X.lit_bufsize=1<<V+6,X.pending_buf_size=X.lit_bufsize*4,X.pending_buf=new Uint8Array(X.pending_buf_size),X.sym_buf=X.lit_bufsize,X.sym_end=(X.lit_bufsize-1)*3,X.level=Q,X.strategy=q,X.method=W,D5(J)},tW=(J,Q)=>{return S5(J,Q,q8,EW,pW,TW)},eW=(J,Q)=>{if(S1(J)||Q>g6||Q<0)return J?h0(J,H0):H0;const W=J.state;if(!J.output||J.avail_in!==0&&!J.input||W.status===C1&&Q!==q0)return h0(J,J.avail_out===0?D8:H0);const G=W.last_flush;if(W.last_flush=Q,W.pending!==0){if(W0(J),J.avail_out===0)return W.last_flush=-1,a}else if(J.avail_in===0&&E6(Q)<=E6(G)&&Q!==q0)return h0(J,D8);if(W.status===C1&&J.avail_in!==0)return h0(J,D8);if(W.status===G1&&W.wrap===0)W.status=f0;if(W.status===G1){let V=q8+(W.w_bits-8<<4)<<8,q=-1;if(W.strategy>=a1||W.level<2)q=0;else if(W.level<6)q=1;else if(W.level===6)q=2;else q=3;if(V|=q<<6,W.strstart!==0)V|=cW;if(V+=31-V%31,$1(W,V),W.strstart!==0)$1(W,J.adler>>>16),$1(W,J.adler&65535);if(J.adler=1,W.status=f0,W0(J),W.pending!==0)return W.last_flush=-1,a}if(W.status===e8)if(J.adler=0,E(W,31),E(W,139),E(W,8),!W.gzhead){if(E(W,0),E(W,0),E(W,0),E(W,0),E(W,0),E(W,W.level===9?2:W.strategy>=a1||W.level<2?4:0),E(W,_W),W.status=f0,W0(J),W.pending!==0)return W.last_flush=-1,a}else{if(E(W,(W.gzhead.text?1:0)+(W.gzhead.hcrc?2:0)+(!W.gzhead.extra?0:4)+(!W.gzhead.name?0:8)+(!W.gzhead.comment?0:16)),E(W,W.gzhead.time&255),E(W,W.gzhead.time>>8&255),E(W,W.gzhead.time>>16&255),E(W,W.gzhead.time>>24&255),E(W,W.level===9?2:W.strategy>=a1||W.level<2?4:0),E(W,W.gzhead.os&255),W.gzhead.extra&&W.gzhead.extra.length)E(W,W.gzhead.extra.length&255),E(W,W.gzhead.extra.length>>8&255);if(W.gzhead.hcrc)J.adler=r(J.adler,W.pending_buf,W.pending,0);W.gzindex=0,W.status=_8}if(W.status===_8){if(W.gzhead.extra){let V=W.pending,q=(W.gzhead.extra.length&65535)-W.gzindex;while(W.pending+q>W.pending_buf_size){let X=W.pending_buf_size-W.pending;if(W.pending_buf.set(W.gzhead.extra.subarray(W.gzindex,W.gzindex+X),W.pending),W.pending=W.pending_buf_size,W.gzhead.hcrc&&W.pending>V)J.adler=r(J.adler,W.pending_buf,W.pending-V,V);if(W.gzindex+=X,W0(J),W.pending!==0)return W.last_flush=-1,a;V=0,q-=X}let Y=new Uint8Array(W.gzhead.extra);if(W.pending_buf.set(Y.subarray(W.gzindex,W.gzindex+q),W.pending),W.pending+=q,W.gzhead.hcrc&&W.pending>V)J.adler=r(J.adler,W.pending_buf,W.pending-V,V);W.gzindex=0}W.status=l8}if(W.status===l8){if(W.gzhead.name){let V=W.pending,q;do{if(W.pending===W.pending_buf_size){if(W.gzhead.hcrc&&W.pending>V)J.adler=r(J.adler,W.pending_buf,W.pending-V,V);if(W0(J),W.pending!==0)return W.last_flush=-1,a;V=0}if(W.gzindex<W.gzhead.name.length)q=W.gzhead.name.charCodeAt(W.gzindex++)&255;else q=0;E(W,q)}while(q!==0);if(W.gzhead.hcrc&&W.pending>V)J.adler=r(J.adler,W.pending_buf,W.pending-V,V);W.gzindex=0}W.status=i8}if(W.status===i8){if(W.gzhead.comment){let V=W.pending,q;do{if(W.pending===W.pending_buf_size){if(W.gzhead.hcrc&&W.pending>V)J.adler=r(J.adler,W.pending_buf,W.pending-V,V);if(W0(J),W.pending!==0)return W.last_flush=-1,a;V=0}if(W.gzindex<W.gzhead.comment.length)q=W.gzhead.comment.charCodeAt(W.gzindex++)&255;else q=0;E(W,q)}while(q!==0);if(W.gzhead.hcrc&&W.pending>V)J.adler=r(J.adler,W.pending_buf,W.pending-V,V)}W.status=r8}if(W.status===r8){if(W.gzhead.hcrc){if(W.pending+2>W.pending_buf_size){if(W0(J),W.pending!==0)return W.last_flush=-1,a}E(W,J.adler&255),E(W,J.adler>>8&255),J.adler=0}if(W.status=f0,W0(J),W.pending!==0)return W.last_flush=-1,a}if(J.avail_in!==0||W.lookahead!==0||Q!==v0&&W.status!==C1){let V=W.level===0?A5(W,Q):W.strategy===a1?nW(W,Q):W.strategy===DW?rW(W,Q):B1[W.level].func(W,Q);if(V===u0||V===X1)W.status=C1;if(V===t||V===u0){if(J.avail_out===0)W.last_flush=-1;return a}if(V===Y1){if(Q===IW)OW(W);else if(Q!==g6){if(d8(W,0,0,!1),Q===NW){if(N0(W.head),W.lookahead===0)W.strstart=0,W.block_start=0,W.insert=0}}if(W0(J),J.avail_out===0)return W.last_flush=-1,a}}if(Q!==q0)return a;if(W.wrap<=0)return y6;if(W.wrap===2)E(W,J.adler&255),E(W,J.adler>>8&255),E(W,J.adler>>16&255),E(W,J.adler>>24&255),E(W,J.total_in&255),E(W,J.total_in>>8&255),E(W,J.total_in>>16&255),E(W,J.total_in>>24&255);else $1(W,J.adler>>>16),$1(W,J.adler&65535);if(W0(J),W.wrap>0)W.wrap=-W.wrap;return W.pending!==0?a:y6},J7=(J)=>{if(S1(J))return H0;const Q=J.state.status;return J.state=null,Q===f0?h0(J,wW):a},W7=(J,Q)=>{let W=Q.length;if(S1(J))return H0;const G=J.state,V=G.wrap;if(V===2||V===1&&G.status!==G1||G.lookahead)return H0;if(V===1)J.adler=N1(J.adler,Q,W,0);if(G.wrap=0,W>=G.w_size){if(V===0)N0(G.head),G.strstart=0,G.block_start=0,G.insert=0;let K=new Uint8Array(G.w_size);K.set(Q.subarray(W-G.w_size,W),0),Q=K,W=G.w_size}const{avail_in:q,next_in:Y,input:X}=J;J.avail_in=W,J.next_in=0,J.input=Q,V1(G);while(G.lookahead>=T){let K=G.strstart,U=G.lookahead-(T-1);do G.ins_h=D0(G,G.ins_h,G.window[K+T-1]),G.prev[K&G.w_mask]=G.head[G.ins_h],G.head[G.ins_h]=K,K++;while(--U);G.strstart=K,G.lookahead=T-1,V1(G)}return G.strstart+=G.lookahead,G.block_start=G.strstart,G.insert=G.lookahead,G.lookahead=0,G.match_length=G.prev_length=T-1,G.match_available=0,J.next_in=Y,J.input=X,J.avail_in=q,G.wrap=V,a},Q7=tW,G7=S5,V7=D5,q7=v5,Y7=sW,X7=eW,U7=J7,P7=W7,K7="pako deflate (from Nodeca project)",j1={deflateInit:Q7,deflateInit2:G7,deflateReset:V7,deflateResetKeep:q7,deflateSetHeader:Y7,deflate:X7,deflateEnd:U7,deflateSetDictionary:P7,deflateInfo:K7},F7=(J,Q)=>{return Object.prototype.hasOwnProperty.call(J,Q)},z7=function(J){const Q=Array.prototype.slice.call(arguments,1);while(Q.length){const W=Q.shift();if(!W)continue;if(typeof W!=="object")throw new TypeError(W+"must be non-object");for(let G in W)if(F7(W,G))J[G]=W[G]}return J},Z7=(J)=>{let Q=0;for(let G=0,V=J.length;G<V;G++)Q+=J[G].length;const W=new Uint8Array(Q);for(let G=0,V=0,q=J.length;G<q;G++){let Y=J[G];W.set(Y,V),V+=Y.length}return W},Y8={assign:z7,flattenChunks:Z7},T5=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(J){T5=!1}var w1=new Uint8Array(256);for(let J=0;J<256;J++)w1[J]=J>=252?6:J>=248?5:J>=240?4:J>=224?3:J>=192?2:1;w1[254]=w1[254]=1;var k7=(J)=>{if(typeof TextEncoder==="function"&&TextEncoder.prototype.encode)return(new TextEncoder()).encode(J);let Q,W,G,V,q,Y=J.length,X=0;for(V=0;V<Y;V++){if(W=J.charCodeAt(V),(W&64512)===55296&&V+1<Y){if(G=J.charCodeAt(V+1),(G&64512)===56320)W=65536+(W-55296<<10)+(G-56320),V++}X+=W<128?1:W<2048?2:W<65536?3:4}Q=new Uint8Array(X);for(q=0,V=0;q<X;V++){if(W=J.charCodeAt(V),(W&64512)===55296&&V+1<Y){if(G=J.charCodeAt(V+1),(G&64512)===56320)W=65536+(W-55296<<10)+(G-56320),V++}if(W<128)Q[q++]=W;else if(W<2048)Q[q++]=192|W>>>6,Q[q++]=128|W&63;else if(W<65536)Q[q++]=224|W>>>12,Q[q++]=128|W>>>6&63,Q[q++]=128|W&63;else Q[q++]=240|W>>>18,Q[q++]=128|W>>>12&63,Q[q++]=128|W>>>6&63,Q[q++]=128|W&63}return Q},H7=(J,Q)=>{if(Q<65534){if(J.subarray&&T5)return String.fromCharCode.apply(null,J.length===Q?J:J.subarray(0,Q))}let W="";for(let G=0;G<Q;G++)W+=String.fromCharCode(J[G]);return W},$7=(J,Q)=>{const W=Q||J.length;if(typeof TextDecoder==="function"&&TextDecoder.prototype.decode)return(new TextDecoder()).decode(J.subarray(0,Q));let G,V;const q=new Array(W*2);for(V=0,G=0;G<W;){let Y=J[G++];if(Y<128){q[V++]=Y;continue}let X=w1[Y];if(X>4){q[V++]=65533,G+=X-1;continue}Y&=X===2?31:X===3?15:7;while(X>1&&G<W)Y=Y<<6|J[G++]&63,X--;if(X>1){q[V++]=65533;continue}if(Y<65536)q[V++]=Y;else Y-=65536,q[V++]=55296|Y>>10&1023,q[V++]=56320|Y&1023}return H7(q,V)},C7=(J,Q)=>{if(Q=Q||J.length,Q>J.length)Q=J.length;let W=Q-1;while(W>=0&&(J[W]&192)===128)W--;if(W<0)return Q;if(W===0)return Q;return W+w1[J[W]]>Q?W:Q},A1={string2buf:k7,buf2string:$7,utf8border:C7},g5=B7,y5=Object.prototype.toString,{Z_NO_FLUSH:M7,Z_SYNC_FLUSH:j7,Z_FULL_FLUSH:L7,Z_FINISH:R7,Z_OK:G8,Z_STREAM_END:x7,Z_DEFAULT_COMPRESSION:O7,Z_DEFAULT_STRATEGY:I7,Z_DEFLATED:N7}=d0;T1.prototype.push=function(J,Q){const W=this.strm,G=this.options.chunkSize;let V,q;if(this.ended)return!1;if(Q===~~Q)q=Q;else q=Q===!0?R7:M7;if(typeof J==="string")W.input=A1.string2buf(J);else if(y5.call(J)==="[object ArrayBuffer]")W.input=new Uint8Array(J);else W.input=J;W.next_in=0,W.avail_in=W.input.length;for(;;){if(W.avail_out===0)W.output=new Uint8Array(G),W.next_out=0,W.avail_out=G;if((q===j7||q===L7)&&W.avail_out<=6){this.onData(W.output.subarray(0,W.next_out)),W.avail_out=0;continue}if(V=j1.deflate(W,q),V===x7){if(W.next_out>0)this.onData(W.output.subarray(0,W.next_out));return V=j1.deflateEnd(this.strm),this.onEnd(V),this.ended=!0,V===G8}if(W.avail_out===0){this.onData(W.output);continue}if(q>0&&W.next_out>0){this.onData(W.output.subarray(0,W.next_out)),W.avail_out=0;continue}if(W.avail_in===0)break}return!0};T1.prototype.onData=function(J){this.chunks.push(J)};T1.prototype.onEnd=function(J){if(J===G8)this.result=Y8.flattenChunks(this.chunks);this.chunks=[],this.err=J,this.msg=this.strm.msg};var v7=T1,D7=J6,S7=w7,T7=A7,g7=d0,y7={Deflate:v7,deflate:D7,deflateRaw:S7,gzip:T7,constants:g7},s1=16209,E7=16191,p7=function J(Q,W){let G,V,q,Y,X,K,U,P,Z,z,F,H,R,M,x,N,O,$,v,h,j,g,w,I;const k=Q.state;G=Q.next_in,w=Q.input,V=G+(Q.avail_in-5),q=Q.next_out,I=Q.output,Y=q-(W-Q.avail_out),X=q+(Q.avail_out-257),K=k.dmax,U=k.wsize,P=k.whave,Z=k.wnext,z=k.window,F=k.hold,H=k.bits,R=k.lencode,M=k.distcode,x=(1<<k.lenbits)-1,N=(1<<k.distbits)-1;J:do{if(H<15)F+=w[G++]<<H,H+=8,F+=w[G++]<<H,H+=8;O=R[F&x];W:for(;;){if($=O>>>24,F>>>=$,H-=$,$=O>>>16&255,$===0)I[q++]=O&65535;else if($&16){if(v=O&65535,$&=15,$){if(H<$)F+=w[G++]<<H,H+=8;v+=F&(1<<$)-1,F>>>=$,H-=$}if(H<15)F+=w[G++]<<H,H+=8,F+=w[G++]<<H,H+=8;O=M[F&N];Q:for(;;){if($=O>>>24,F>>>=$,H-=$,$=O>>>16&255,$&16){if(h=O&65535,$&=15,H<$){if(F+=w[G++]<<H,H+=8,H<$)F+=w[G++]<<H,H+=8}if(h+=F&(1<<$)-1,h>K){Q.msg="invalid distance too far back",k.mode=s1;break J}if(F>>>=$,H-=$,$=q-Y,h>$){if($=h-$,$>P){if(k.sane){Q.msg="invalid distance too far back",k.mode=s1;break J}}if(j=0,g=z,Z===0){if(j+=U-$,$<v){v-=$;do I[q++]=z[j++];while(--$);j=q-h,g=I}}else if(Z<$){if(j+=U+Z-$,$-=Z,$<v){v-=$;do I[q++]=z[j++];while(--$);if(j=0,Z<v){$=Z,v-=$;do I[q++]=z[j++];while(--$);j=q-h,g=I}}}else if(j+=Z-$,$<v){v-=$;do I[q++]=z[j++];while(--$);j=q-h,g=I}while(v>2)I[q++]=g[j++],I[q++]=g[j++],I[q++]=g[j++],v-=3;if(v){if(I[q++]=g[j++],v>1)I[q++]=g[j++]}}else{j=q-h;do I[q++]=I[j++],I[q++]=I[j++],I[q++]=I[j++],v-=3;while(v>2);if(v){if(I[q++]=I[j++],v>1)I[q++]=I[j++]}}}else if(($&64)===0){O=M[(O&65535)+(F&(1<<$)-1)];continue Q}else{Q.msg="invalid distance code",k.mode=s1;break J}break}}else if(($&64)===0){O=R[(O&65535)+(F&(1<<$)-1)];continue W}else if($&32){k.mode=E7;break J}else{Q.msg="invalid literal/length code",k.mode=s1;break J}break}}while(G<V&&q<X);v=H>>3,G-=v,H-=v<<3,F&=(1<<H)-1,Q.next_in=G,Q.next_out=q,Q.avail_in=G<V?5+(V-G):5-(G-V),Q.avail_out=q<X?257+(X-q):257-(q-X),k.hold=F,k.bits=H;return},W1=15,p6=852,f6=592,h6=0,T8=1,b6=2,f7=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),h7=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),b7=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),u7=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),m7=(J,Q,W,G,V,q,Y,X)=>{const K=X.bits;let U=0,P=0,Z=0,z=0,F=0,H=0,R=0,M=0,x=0,N=0,O,$,v,h,j,g=null,w;const I=new Uint16Array(W1+1),k=new Uint16Array(W1+1);let L=null,y,D,B;for(U=0;U<=W1;U++)I[U]=0;for(P=0;P<G;P++)I[Q[W+P]]++;F=K;for(z=W1;z>=1;z--)if(I[z]!==0)break;if(F>z)F=z;if(z===0)return V[q++]=1<<24|64<<16|0,V[q++]=1<<24|64<<16|0,X.bits=1,0;for(Z=1;Z<z;Z++)if(I[Z]!==0)break;if(F<Z)F=Z;M=1;for(U=1;U<=W1;U++)if(M<<=1,M-=I[U],M<0)return-1;if(M>0&&(J===h6||z!==1))return-1;k[1]=0;for(U=1;U<W1;U++)k[U+1]=k[U]+I[U];for(P=0;P<G;P++)if(Q[W+P]!==0)Y[k[Q[W+P]]++]=P;if(J===h6)g=L=Y,w=20;else if(J===T8)g=f7,L=h7,w=257;else g=b7,L=u7,w=0;if(N=0,P=0,U=Z,j=q,H=F,R=0,v=-1,x=1<<F,h=x-1,J===T8&&x>p6||J===b6&&x>f6)return 1;for(;;){if(y=U-R,Y[P]+1<w)D=0,B=Y[P];else if(Y[P]>=w)D=L[Y[P]-w],B=g[Y[P]-w];else D=96,B=0;O=1<<U-R,$=1<<H,Z=$;do $-=O,V[j+(N>>R)+$]=y<<24|D<<16|B|0;while($!==0);O=1<<U-1;while(N&O)O>>=1;if(O!==0)N&=O-1,N+=O;else N=0;if(P++,--I[U]===0){if(U===z)break;U=Q[W+Y[P]]}if(U>F&&(N&h)!==v){if(R===0)R=F;j+=Z,H=U-R,M=1<<H;while(H+R<z){if(M-=I[H+R],M<=0)break;H++,M<<=1}if(x+=1<<H,J===T8&&x>p6||J===b6&&x>f6)return 1;v=N&h,V[v]=F<<24|H<<16|j-q|0}}if(N!==0)V[j+N]=U-R<<24|64<<16|0;return X.bits=F,0},L1=m7,d7=0,E5=1,p5=2,{Z_FINISH:u6,Z_BLOCK:c7,Z_TREES:t1,Z_OK:m0,Z_STREAM_END:_7,Z_NEED_DICT:l7,Z_STREAM_ERROR:Y0,Z_DATA_ERROR:f5,Z_MEM_ERROR:h5,Z_BUF_ERROR:i7,Z_DEFLATED:m6}=d0,X8=16180,d6=16181,c6=16182,_6=16183,l6=16184,i6=16185,r6=16186,n6=16187,o6=16188,a6=16189,V8=16190,j0=16191,g8=16192,s6=16193,y8=16194,t6=16195,e6=16196,J5=16197,W5=16198,e1=16199,J8=16200,Q5=16201,G5=16202,V5=16203,q5=16204,Y5=16205,E8=16206,X5=16207,U5=16208,d=16209,b5=16210,u5=16211,r7=852,n7=592,o7=15,a7=o7,P5=(J)=>{return(J>>>24&255)+(J>>>8&65280)+((J&65280)<<8)+((J&255)<<24)},c0=(J)=>{if(!J)return 1;const Q=J.state;if(!Q||Q.strm!==J||Q.mode<X8||Q.mode>u5)return 1;return 0},m5=(J)=>{if(c0(J))return Y0;const Q=J.state;if(J.total_in=J.total_out=Q.total=0,J.msg="",Q.wrap)J.adler=Q.wrap&1;return Q.mode=X8,Q.last=0,Q.havedict=0,Q.flags=-1,Q.dmax=32768,Q.head=null,Q.hold=0,Q.bits=0,Q.lencode=Q.lendyn=new Int32Array(r7),Q.distcode=Q.distdyn=new Int32Array(n7),Q.sane=1,Q.back=-1,m0},d5=(J)=>{if(c0(J))return Y0;const Q=J.state;return Q.wsize=0,Q.whave=0,Q.wnext=0,m5(J)},c5=(J,Q)=>{let W;if(c0(J))return Y0;const G=J.state;if(Q<0)W=0,Q=-Q;else if(W=(Q>>4)+5,Q<48)Q&=15;if(Q&&(Q<8||Q>15))return Y0;if(G.window!==null&&G.wbits!==Q)G.window=null;return G.wrap=W,G.wbits=Q,d5(J)},_5=(J,Q)=>{if(!J)return Y0;const W=new s7;J.state=W,W.strm=J,W.window=null,W.mode=X8;const G=c5(J,Q);if(G!==m0)J.state=null;return G},t7=(J)=>{return _5(J,a7)},K5=!0,p8,f8,e7=(J)=>{if(K5){p8=new Int32Array(512),f8=new Int32Array(32);let Q=0;while(Q<144)J.lens[Q++]=8;while(Q<256)J.lens[Q++]=9;while(Q<280)J.lens[Q++]=7;while(Q<288)J.lens[Q++]=8;L1(E5,J.lens,0,288,p8,0,J.work,{bits:9}),Q=0;while(Q<32)J.lens[Q++]=5;L1(p5,J.lens,0,32,f8,0,J.work,{bits:5}),K5=!1}J.lencode=p8,J.lenbits=9,J.distcode=f8,J.distbits=5},l5=(J,Q,W,G)=>{let V;const q=J.state;if(q.window===null)q.wsize=1<<q.wbits,q.wnext=0,q.whave=0,q.window=new Uint8Array(q.wsize);if(G>=q.wsize)q.window.set(Q.subarray(W-q.wsize,W),0),q.wnext=0,q.whave=q.wsize;else{if(V=q.wsize-q.wnext,V>G)V=G;if(q.window.set(Q.subarray(W-G,W-G+V),q.wnext),G-=V,G)q.window.set(Q.subarray(W-G,W),0),q.wnext=G,q.whave=q.wsize;else{if(q.wnext+=V,q.wnext===q.wsize)q.wnext=0;if(q.whave<q.wsize)q.whave+=V}}return 0},JQ=(J,Q)=>{let W,G,V,q,Y,X,K,U,P,Z,z,F,H,R,M=0,x,N,O,$,v,h,j,g;const w=new Uint8Array(4);let I,k;const L=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(c0(J)||!J.output||!J.input&&J.avail_in!==0)return Y0;if(W=J.state,W.mode===j0)W.mode=g8;Y=J.next_out,V=J.output,K=J.avail_out,q=J.next_in,G=J.input,X=J.avail_in,U=W.hold,P=W.bits,Z=X,z=K,g=m0;J:for(;;)switch(W.mode){case X8:if(W.wrap===0){W.mode=g8;break}while(P<16){if(X===0)break J;X--,U+=G[q++]<<P,P+=8}if(W.wrap&2&&U===35615){if(W.wbits===0)W.wbits=15;W.check=0,w[0]=U&255,w[1]=U>>>8&255,W.check=r(W.check,w,2,0),U=0,P=0,W.mode=d6;break}if(W.head)W.head.done=!1;if(!(W.wrap&1)||(((U&255)<<8)+(U>>8))%31){J.msg="incorrect header check",W.mode=d;break}if((U&15)!==m6){J.msg="unknown compression method",W.mode=d;break}if(U>>>=4,P-=4,j=(U&15)+8,W.wbits===0)W.wbits=j;if(j>15||j>W.wbits){J.msg="invalid window size",W.mode=d;break}W.dmax=1<<W.wbits,W.flags=0,J.adler=W.check=1,W.mode=U&512?a6:j0,U=0,P=0;break;case d6:while(P<16){if(X===0)break J;X--,U+=G[q++]<<P,P+=8}if(W.flags=U,(W.flags&255)!==m6){J.msg="unknown compression method",W.mode=d;break}if(W.flags&57344){J.msg="unknown header flags set",W.mode=d;break}if(W.head)W.head.text=U>>8&1;if(W.flags&512&&W.wrap&4)w[0]=U&255,w[1]=U>>>8&255,W.check=r(W.check,w,2,0);U=0,P=0,W.mode=c6;case c6:while(P<32){if(X===0)break J;X--,U+=G[q++]<<P,P+=8}if(W.head)W.head.time=U;if(W.flags&512&&W.wrap&4)w[0]=U&255,w[1]=U>>>8&255,w[2]=U>>>16&255,w[3]=U>>>24&255,W.check=r(W.check,w,4,0);U=0,P=0,W.mode=_6;case _6:while(P<16){if(X===0)break J;X--,U+=G[q++]<<P,P+=8}if(W.head)W.head.xflags=U&255,W.head.os=U>>8;if(W.flags&512&&W.wrap&4)w[0]=U&255,w[1]=U>>>8&255,W.check=r(W.check,w,2,0);U=0,P=0,W.mode=l6;case l6:if(W.flags&1024){while(P<16){if(X===0)break J;X--,U+=G[q++]<<P,P+=8}if(W.length=U,W.head)W.head.extra_len=U;if(W.flags&512&&W.wrap&4)w[0]=U&255,w[1]=U>>>8&255,W.check=r(W.check,w,2,0);U=0,P=0}else if(W.head)W.head.extra=null;W.mode=i6;case i6:if(W.flags&1024){if(F=W.length,F>X)F=X;if(F){if(W.head){if(j=W.head.extra_len-W.length,!W.head.extra)W.head.extra=new Uint8Array(W.head.extra_len);W.head.extra.set(G.subarray(q,q+F),j)}if(W.flags&512&&W.wrap&4)W.check=r(W.check,G,F,q);X-=F,q+=F,W.length-=F}if(W.length)break J}W.length=0,W.mode=r6;case r6:if(W.flags&2048){if(X===0)break J;F=0;do if(j=G[q+F++],W.head&&j&&W.length<65536)W.head.name+=String.fromCharCode(j);while(j&&F<X);if(W.flags&512&&W.wrap&4)W.check=r(W.check,G,F,q);if(X-=F,q+=F,j)break J}else if(W.head)W.head.name=null;W.length=0,W.mode=n6;case n6:if(W.flags&4096){if(X===0)break J;F=0;do if(j=G[q+F++],W.head&&j&&W.length<65536)W.head.comment+=String.fromCharCode(j);while(j&&F<X);if(W.flags&512&&W.wrap&4)W.check=r(W.check,G,F,q);if(X-=F,q+=F,j)break J}else if(W.head)W.head.comment=null;W.mode=o6;case o6:if(W.flags&512){while(P<16){if(X===0)break J;X--,U+=G[q++]<<P,P+=8}if(W.wrap&4&&U!==(W.check&65535)){J.msg="header crc mismatch",W.mode=d;break}U=0,P=0}if(W.head)W.head.hcrc=W.flags>>9&1,W.head.done=!0;J.adler=W.check=0,W.mode=j0;break;case a6:while(P<32){if(X===0)break J;X--,U+=G[q++]<<P,P+=8}J.adler=W.check=P5(U),U=0,P=0,W.mode=V8;case V8:if(W.havedict===0)return J.next_out=Y,J.avail_out=K,J.next_in=q,J.avail_in=X,W.hold=U,W.bits=P,l7;J.adler=W.check=1,W.mode=j0;case j0:if(Q===c7||Q===t1)break J;case g8:if(W.last){U>>>=P&7,P-=P&7,W.mode=E8;break}while(P<3){if(X===0)break J;X--,U+=G[q++]<<P,P+=8}switch(W.last=U&1,U>>>=1,P-=1,U&3){case 0:W.mode=s6;break;case 1:if(e7(W),W.mode=e1,Q===t1){U>>>=2,P-=2;break J}break;case 2:W.mode=e6;break;case 3:J.msg="invalid block type",W.mode=d}U>>>=2,P-=2;break;case s6:U>>>=P&7,P-=P&7;while(P<32){if(X===0)break J;X--,U+=G[q++]<<P,P+=8}if((U&65535)!==(U>>>16^65535)){J.msg="invalid stored block lengths",W.mode=d;break}if(W.length=U&65535,U=0,P=0,W.mode=y8,Q===t1)break J;case y8:W.mode=t6;case t6:if(F=W.length,F){if(F>X)F=X;if(F>K)F=K;if(F===0)break J;V.set(G.subarray(q,q+F),Y),X-=F,q+=F,K-=F,Y+=F,W.length-=F;break}W.mode=j0;break;case e6:while(P<14){if(X===0)break J;X--,U+=G[q++]<<P,P+=8}if(W.nlen=(U&31)+257,U>>>=5,P-=5,W.ndist=(U&31)+1,U>>>=5,P-=5,W.ncode=(U&15)+4,U>>>=4,P-=4,W.nlen>286||W.ndist>30){J.msg="too many length or distance symbols",W.mode=d;break}W.have=0,W.mode=J5;case J5:while(W.have<W.ncode){while(P<3){if(X===0)break J;X--,U+=G[q++]<<P,P+=8}W.lens[L[W.have++]]=U&7,U>>>=3,P-=3}while(W.have<19)W.lens[L[W.have++]]=0;if(W.lencode=W.lendyn,W.lenbits=7,I={bits:W.lenbits},g=L1(d7,W.lens,0,19,W.lencode,0,W.work,I),W.lenbits=I.bits,g){J.msg="invalid code lengths set",W.mode=d;break}W.have=0,W.mode=W5;case W5:while(W.have<W.nlen+W.ndist){for(;;){if(M=W.lencode[U&(1<<W.lenbits)-1],x=M>>>24,N=M>>>16&255,O=M&65535,x<=P)break;if(X===0)break J;X--,U+=G[q++]<<P,P+=8}if(O<16)U>>>=x,P-=x,W.lens[W.have++]=O;else{if(O===16){k=x+2;while(P<k){if(X===0)break J;X--,U+=G[q++]<<P,P+=8}if(U>>>=x,P-=x,W.have===0){J.msg="invalid bit length repeat",W.mode=d;break}j=W.lens[W.have-1],F=3+(U&3),U>>>=2,P-=2}else if(O===17){k=x+3;while(P<k){if(X===0)break J;X--,U+=G[q++]<<P,P+=8}U>>>=x,P-=x,j=0,F=3+(U&7),U>>>=3,P-=3}else{k=x+7;while(P<k){if(X===0)break J;X--,U+=G[q++]<<P,P+=8}U>>>=x,P-=x,j=0,F=11+(U&127),U>>>=7,P-=7}if(W.have+F>W.nlen+W.ndist){J.msg="invalid bit length repeat",W.mode=d;break}while(F--)W.lens[W.have++]=j}}if(W.mode===d)break;if(W.lens[256]===0){J.msg="invalid code -- missing end-of-block",W.mode=d;break}if(W.lenbits=9,I={bits:W.lenbits},g=L1(E5,W.lens,0,W.nlen,W.lencode,0,W.work,I),W.lenbits=I.bits,g){J.msg="invalid literal/lengths set",W.mode=d;break}if(W.distbits=6,W.distcode=W.distdyn,I={bits:W.distbits},g=L1(p5,W.lens,W.nlen,W.ndist,W.distcode,0,W.work,I),W.distbits=I.bits,g){J.msg="invalid distances set",W.mode=d;break}if(W.mode=e1,Q===t1)break J;case e1:W.mode=J8;case J8:if(X>=6&&K>=258){if(J.next_out=Y,J.avail_out=K,J.next_in=q,J.avail_in=X,W.hold=U,W.bits=P,p7(J,z),Y=J.next_out,V=J.output,K=J.avail_out,q=J.next_in,G=J.input,X=J.avail_in,U=W.hold,P=W.bits,W.mode===j0)W.back=-1;break}W.back=0;for(;;){if(M=W.lencode[U&(1<<W.lenbits)-1],x=M>>>24,N=M>>>16&255,O=M&65535,x<=P)break;if(X===0)break J;X--,U+=G[q++]<<P,P+=8}if(N&&(N&240)===0){$=x,v=N,h=O;for(;;){if(M=W.lencode[h+((U&(1<<$+v)-1)>>$)],x=M>>>24,N=M>>>16&255,O=M&65535,$+x<=P)break;if(X===0)break J;X--,U+=G[q++]<<P,P+=8}U>>>=$,P-=$,W.back+=$}if(U>>>=x,P-=x,W.back+=x,W.length=O,N===0){W.mode=Y5;break}if(N&32){W.back=-1,W.mode=j0;break}if(N&64){J.msg="invalid literal/length code",W.mode=d;break}W.extra=N&15,W.mode=Q5;case Q5:if(W.extra){k=W.extra;while(P<k){if(X===0)break J;X--,U+=G[q++]<<P,P+=8}W.length+=U&(1<<W.extra)-1,U>>>=W.extra,P-=W.extra,W.back+=W.extra}W.was=W.length,W.mode=G5;case G5:for(;;){if(M=W.distcode[U&(1<<W.distbits)-1],x=M>>>24,N=M>>>16&255,O=M&65535,x<=P)break;if(X===0)break J;X--,U+=G[q++]<<P,P+=8}if((N&240)===0){$=x,v=N,h=O;for(;;){if(M=W.distcode[h+((U&(1<<$+v)-1)>>$)],x=M>>>24,N=M>>>16&255,O=M&65535,$+x<=P)break;if(X===0)break J;X--,U+=G[q++]<<P,P+=8}U>>>=$,P-=$,W.back+=$}if(U>>>=x,P-=x,W.back+=x,N&64){J.msg="invalid distance code",W.mode=d;break}W.offset=O,W.extra=N&15,W.mode=V5;case V5:if(W.extra){k=W.extra;while(P<k){if(X===0)break J;X--,U+=G[q++]<<P,P+=8}W.offset+=U&(1<<W.extra)-1,U>>>=W.extra,P-=W.extra,W.back+=W.extra}if(W.offset>W.dmax){J.msg="invalid distance too far back",W.mode=d;break}W.mode=q5;case q5:if(K===0)break J;if(F=z-K,W.offset>F){if(F=W.offset-F,F>W.whave){if(W.sane){J.msg="invalid distance too far back",W.mode=d;break}}if(F>W.wnext)F-=W.wnext,H=W.wsize-F;else H=W.wnext-F;if(F>W.length)F=W.length;R=W.window}else R=V,H=Y-W.offset,F=W.length;if(F>K)F=K;K-=F,W.length-=F;do V[Y++]=R[H++];while(--F);if(W.length===0)W.mode=J8;break;case Y5:if(K===0)break J;V[Y++]=W.length,K--,W.mode=J8;break;case E8:if(W.wrap){while(P<32){if(X===0)break J;X--,U|=G[q++]<<P,P+=8}if(z-=K,J.total_out+=z,W.total+=z,W.wrap&4&&z)J.adler=W.check=W.flags?r(W.check,V,z,Y-z):N1(W.check,V,z,Y-z);if(z=K,W.wrap&4&&(W.flags?U:P5(U))!==W.check){J.msg="incorrect data check",W.mode=d;break}U=0,P=0}W.mode=X5;case X5:if(W.wrap&&W.flags){while(P<32){if(X===0)break J;X--,U+=G[q++]<<P,P+=8}if(W.wrap&4&&U!==(W.total&4294967295)){J.msg="incorrect length check",W.mode=d;break}U=0,P=0}W.mode=U5;case U5:g=_7;break J;case d:g=f5;break J;case b5:return h5;case u5:default:return Y0}if(J.next_out=Y,J.avail_out=K,J.next_in=q,J.avail_in=X,W.hold=U,W.bits=P,W.wsize||z!==J.avail_out&&W.mode<d&&(W.mode<E8||Q!==u6)){if(l5(J,J.output,J.next_out,z-J.avail_out));}if(Z-=J.avail_in,z-=J.avail_out,J.total_in+=Z,J.total_out+=z,W.total+=z,W.wrap&4&&z)J.adler=W.check=W.flags?r(W.check,V,z,J.next_out-z):N1(W.check,V,z,J.next_out-z);if(J.data_type=W.bits+(W.last?64:0)+(W.mode===j0?128:0)+(W.mode===e1||W.mode===y8?256:0),(Z===0&&z===0||Q===u6)&&g===m0)g=i7;return g},WQ=(J)=>{if(c0(J))return Y0;let Q=J.state;if(Q.window)Q.window=null;return J.state=null,m0},QQ=(J,Q)=>{if(c0(J))return Y0;const W=J.state;if((W.wrap&2)===0)return Y0;return W.head=Q,Q.done=!1,m0},GQ=(J,Q)=>{const W=Q.length;let G,V,q;if(c0(J))return Y0;if(G=J.state,G.wrap!==0&&G.mode!==V8)return Y0;if(G.mode===V8){if(V=1,V=N1(V,Q,W,0),V!==G.check)return f5}if(q=l5(J,Q,W,W),q)return G.mode=b5,h5;return G.havedict=1,m0},VQ=d5,qQ=c5,YQ=m5,XQ=t7,UQ=_5,PQ=JQ,KQ=WQ,FQ=QQ,zQ=GQ,ZQ="pako inflate (from Nodeca project)",R0={inflateReset:VQ,inflateReset2:qQ,inflateResetKeep:YQ,inflateInit:XQ,inflateInit2:UQ,inflate:PQ,inflateEnd:KQ,inflateGetHeader:FQ,inflateSetDictionary:zQ,inflateInfo:ZQ},HQ=kQ,i5=Object.prototype.toString,{Z_NO_FLUSH:$Q,Z_FINISH:CQ,Z_OK:v1,Z_STREAM_END:h8,Z_NEED_DICT:b8,Z_STREAM_ERROR:BQ,Z_DATA_ERROR:F5,Z_MEM_ERROR:MQ}=d0;g1.prototype.push=function(J,Q){const W=this.strm,G=this.options.chunkSize,V=this.options.dictionary;let q,Y,X;if(this.ended)return!1;if(Q===~~Q)Y=Q;else Y=Q===!0?CQ:$Q;if(i5.call(J)==="[object ArrayBuffer]")W.input=new Uint8Array(J);else W.input=J;W.next_in=0,W.avail_in=W.input.length;for(;;){if(W.avail_out===0)W.output=new Uint8Array(G),W.next_out=0,W.avail_out=G;if(q=R0.inflate(W,Y),q===b8&&V){if(q=R0.inflateSetDictionary(W,V),q===v1)q=R0.inflate(W,Y);else if(q===F5)q=b8}while(W.avail_in>0&&q===h8&&W.state.wrap>0&&J[W.next_in]!==0)R0.inflateReset(W),q=R0.inflate(W,Y);switch(q){case BQ:case F5:case b8:case MQ:return this.onEnd(q),this.ended=!0,!1}if(X=W.avail_out,W.next_out){if(W.avail_out===0||q===h8)if(this.options.to==="string"){let K=A1.utf8border(W.output,W.next_out),U=W.next_out-K,P=A1.buf2string(W.output,K);if(W.next_out=U,W.avail_out=G-U,U)W.output.set(W.output.subarray(K,K+U),0);this.onData(P)}else this.onData(W.output.length===W.next_out?W.output:W.output.subarray(0,W.next_out))}if(q===v1&&X===0)continue;if(q===h8)return q=R0.inflateEnd(this.strm),this.onEnd(q),this.ended=!0,!0;if(W.avail_in===0)break}return!0};g1.prototype.onData=function(J){this.chunks.push(J)};g1.prototype.onEnd=function(J){if(J===v1)if(this.options.to==="string")this.result=this.chunks.join("");else this.result=Y8.flattenChunks(this.chunks);this.chunks=[],this.err=J,this.msg=this.strm.msg};var LQ=g1,RQ=W6,xQ=jQ,OQ=W6,IQ=d0,NQ={Inflate:LQ,inflate:RQ,inflateRaw:xQ,ungzip:OQ,constants:IQ},{Deflate:wQ,deflate:AQ,deflateRaw:vQ,gzip:DQ}=y7,{Inflate:SQ,inflate:TQ,inflateRaw:gQ,ungzip:yQ}=NQ,EQ=wQ,pQ=AQ,fQ=vQ,hQ=DQ,bQ=SQ,uQ=TQ,mQ=gQ,dQ=yQ,cQ=d0,_0={Deflate:EQ,deflate:pQ,deflateRaw:fQ,gzip:hQ,Inflate:bQ,inflate:uQ,inflateRaw:mQ,ungzip:dQ,constants:cQ};var o5=function(J){const{a:Q,b:W}=c,G=C(J*J),V=C(G*J);return C(V+Q*J+W)},a5=function(J){if(!(J instanceof p))throw new TypeError("JacobianPoint expected")},K8=function(J,Q){const W=Q.negate();return J?W:Q},s5=function(J){return Number.parseInt(J[0],16)>=8?"00"+J:J},t5=function(J){if(J.length<2||J[0]!==2)throw Error("Invalid signature integer tag: "+K1(J));const Q=J[1],W=J.subarray(2,Q+2);if(!Q||W.length!==Q)throw Error("Invalid signature integer: wrong length");if(W[0]===0&&W[1]<=127)throw Error("Invalid signature integer: trailing length");return{data:U0(W),left:J.subarray(Q+2)}},y1=function(...J){if(!J.every((G)=>G instanceof Uint8Array))throw Error("Uint8Array list expected");if(J.length===1)return J[0];const Q=J.reduce((G,V)=>G+V.length,0),W=new Uint8Array(Q);for(let G=0,V=0;G<J.length;G++){const q=J[G];W.set(q,V),V+=q.length}return W},K1=function(J){if(!(J instanceof Uint8Array))throw Error("Expected Uint8Array");let Q="";for(let W=0;W<J.length;W++)Q+=rQ[J[W]];return Q},g0=function(J){if(typeof J!="bigint")throw Error("Expected bigint");if(!(f<=J&&J<nQ))throw Error("Expected number 0 <= n < 2^256");return J.toString(16).padStart(64,"0")},h1=function(J){const Q=y0(g0(J));if(Q.length!==32)throw Error("Error: expected 32 bytes");return Q},E1=function(J){const Q=J.toString(16);return 1&Q.length?"0"+Q:Q},B8=function(J){if(typeof J!="string")throw new TypeError("hexToNumber: expected string, got "+typeof J);return BigInt("0x"+J)},y0=function(J){if(typeof J!="string")throw new TypeError("hexToBytes: expected string, got "+typeof J);if(J.length%2)throw Error("hexToBytes: received invalid unpadded hex"+J.length);const Q=new Uint8Array(J.length/2);for(let W=0;W<Q.length;W++){const G=2*W,V=J.slice(G,G+2),q=Number.parseInt(V,16);if(Number.isNaN(q)||q<0)throw Error("Invalid byte sequence");Q[W]=q}return Q},U0=function(J){return B8(K1(J))},a0=function(J){return J instanceof Uint8Array?Uint8Array.from(J):y0(J)},e5=function(J){if(typeof J=="number"&&Number.isSafeInteger(J)&&J>0)return BigInt(J);if(typeof J=="bigint"&&b1(J))return J;throw new TypeError("Expected valid private scalar: 0 < scalar < curve.n")},C=function(J,Q=c.P){const W=J%Q;return W>=f?W:Q+W},X0=function(J,Q){const{P:W}=c;let G=J;for(;Q-- >f;)G*=G,G%=W;return G},M8=function(J,Q=c.P){if(J===f||Q<=f)throw Error(`invert: expected positive integers, got n=${J} mod=${Q}`);let W=C(J,Q),G=Q,V=f,q=_;for(;W!==f;){const Y=G%W,X=V-q*(G/W);G=W,W=Y,V=q,q=X}if(G!==_)throw Error("invert: does not exist");return C(V,Q)},b1=function(J){return f<J&&J<c.n},$8=function(J){return f<J&&J<c.P},u1=function(J){let Q;if(typeof J=="bigint")Q=J;else if(typeof J=="number"&&Number.isSafeInteger(J)&&J>0)Q=BigInt(J);else if(typeof J=="string"){if(J.length!==64)throw Error("Expected 32 bytes of private key");Q=B8(J)}else{if(!(J instanceof Uint8Array))throw new TypeError("Expected valid private key");if(J.length!==iQ)throw Error("Expected 32 bytes of private key");Q=U0(J)}if(!b1(Q))throw Error("Expected private key: 0 < key < n");return Q},oQ=function(J){return J instanceof u?(J.assertValidity(),J):u.fromHex(J)},j8=function(J){return C(U0(J),c.n)},UJ=function(J,Q,W){const G=J instanceof z1,V=G?J:z1.fromHex(J);return G&&V.assertValidity(),{...V,m:a0(Q),P:oQ(W)}},PJ=function(J,Q,W,G){const V=u.BASE.multiplyAndAddUnsafe(Q,u1(W),C(-G,c.n));return!(!V||!V.hasEvenY()||V.x!==J)};async function KJ(J,Q,W){try{const{r:G,s:V,m:q,P:Y}=UJ(J,Q,W),X=j8(await P0.taggedHash(S0.challenge,h1(G),Y.toRawX(),q));return PJ(G,Y,V,X)}catch(G){return!1}}var FJ=function(J,Q,W){try{const{r:G,s:V,m:q,P:Y}=UJ(J,Q,W),X=j8(P0.taggedHashSync(S0.challenge,h1(G),Y.toRawX(),q));return PJ(G,Y,V,X)}catch(G){if(G instanceof P6)throw G;return!1}},_Q=Object.freeze({__proto__:null,default:{}}),f=BigInt(0),_=BigInt(1),T0=BigInt(2),f1=BigInt(3),r5=BigInt(8),c=Object.freeze({a:f,b:BigInt(7),P:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:_,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee")}),n5=(J,Q)=>(J+Q/T0)/Q,U8={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar(J){const{n:Q}=c,W=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),G=-_*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),V=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),q=W,Y=BigInt("0x100000000000000000000000000000000"),X=n5(q*J,Q),K=n5(-G*J,Q);let U=C(J-X*W-K*V,Q),P=C(-X*G-K*q,Q);const Z=U>Y,z=P>Y;if(Z&&(U=Q-U),z&&(P=Q-P),U>Y||P>Y)throw Error("splitScalarEndo: Endomorphism failed, k="+J);return{k1neg:Z,k1:U,k2neg:z,k2:P}}},lQ=32,iQ=32,P8=c.a===f;class P6 extends Error{constructor(J){super(J)}}class p{constructor(J,Q,W){this.x=J,this.y=Q,this.z=W}static fromAffine(J){if(!(J instanceof u))throw new TypeError("JacobianPoint#fromAffine: expected Point");return J.equals(u.ZERO)?p.ZERO:new p(J.x,J.y,_)}static toAffineBatch(J){const Q=function(W,G=c.P){const V=Array(W.length),q=M8(W.reduce((Y,X,K)=>X===f?Y:(V[K]=Y,C(Y*X,G)),_),G);return W.reduceRight((Y,X,K)=>X===f?Y:(V[K]=C(Y*V[K],G),C(Y*X,G)),q),V}(J.map((W)=>W.z));return J.map((W,G)=>W.toAffine(Q[G]))}static normalizeZ(J){return p.toAffineBatch(J).map(p.fromAffine)}equals(J){a5(J);const{x:Q,y:W,z:G}=this,{x:V,y:q,z:Y}=J,X=C(G*G),K=C(Y*Y),U=C(Q*K),P=C(V*X),Z=C(C(W*Y)*K),z=C(C(q*G)*X);return U===P&&Z===z}negate(){return new p(this.x,C(-this.y),this.z)}double(){const{x:J,y:Q,z:W}=this,G=C(J*J),V=C(Q*Q),q=C(V*V),Y=J+V,X=C(T0*(C(Y*Y)-G-q)),K=C(f1*G),U=C(K*K),P=C(U-T0*X),Z=C(K*(X-P)-r5*q),z=C(T0*Q*W);return new p(P,Z,z)}add(J){a5(J);const{x:Q,y:W,z:G}=this,{x:V,y:q,z:Y}=J;if(V===f||q===f)return this;if(Q===f||W===f)return J;const X=C(G*G),K=C(Y*Y),U=C(Q*K),P=C(V*X),Z=C(C(W*Y)*K),z=C(C(q*G)*X),F=C(P-U),H=C(z-Z);if(F===f)return H===f?this.double():p.ZERO;const R=C(F*F),M=C(F*R),x=C(U*R),N=C(H*H-M-T0*x),O=C(H*(x-N)-Z*M),$=C(G*Y*F);return new p(N,O,$)}subtract(J){return this.add(J.negate())}multiplyUnsafe(J){const Q=p.ZERO;if(typeof J=="bigint"&&J===f)return Q;let W=e5(J);if(W===_)return this;if(!P8){let P=Q,Z=this;for(;W>f;)W&_&&(P=P.add(Z)),Z=Z.double(),W>>=_;return P}let{k1neg:G,k1:V,k2neg:q,k2:Y}=U8.splitScalar(W),X=Q,K=Q,U=this;for(;V>f||Y>f;)V&_&&(X=X.add(U)),Y&_&&(K=K.add(U)),U=U.double(),V>>=_,Y>>=_;return G&&(X=X.negate()),q&&(K=K.negate()),K=new p(C(K.x*U8.beta),K.y,K.z),X.add(K)}precomputeWindow(J){const Q=P8?128/J+1:256/J+1,W=[];let G=this,V=G;for(let q=0;q<Q;q++){V=G,W.push(V);for(let Y=1;Y<2**(J-1);Y++)V=V.add(G),W.push(V);G=V.double()}return W}wNAF(J,Q){!Q&&this.equals(p.BASE)&&(Q=u.BASE);const W=Q&&Q._WINDOW_SIZE||1;if(256%W)throw Error("Point#wNAF: Invalid precomputation window, must be power of 2");let G=Q&&G6.get(Q);G||(G=this.precomputeWindow(W),Q&&W!==1&&(G=p.normalizeZ(G),G6.set(Q,G)));let{ZERO:V,BASE:q}=p;const Y=1+(P8?128/W:256/W),X=2**(W-1),K=BigInt(2**W-1),U=2**W,P=BigInt(W);for(let Z=0;Z<Y;Z++){const z=Z*X;let F=Number(J&K);J>>=P,F>X&&(F-=U,J+=_);const H=z,R=z+Math.abs(F)-1,M=Z%2!=0,x=F<0;F===0?q=q.add(K8(M,G[H])):V=V.add(K8(x,G[R]))}return{p:V,f:q}}multiply(J,Q){let W,G,V=e5(J);if(P8){const{k1neg:q,k1:Y,k2neg:X,k2:K}=U8.splitScalar(V);let{p:U,f:P}=this.wNAF(Y,Q),{p:Z,f:z}=this.wNAF(K,Q);U=K8(q,U),Z=K8(X,Z),Z=new p(C(Z.x*U8.beta),Z.y,Z.z),W=U.add(Z),G=P.add(z)}else{const{p:q,f:Y}=this.wNAF(V,Q);W=q,G=Y}return p.normalizeZ([W,G])[0]}toAffine(J){const{x:Q,y:W,z:G}=this,V=this.equals(p.ZERO);J==null&&(J=V?r5:M8(G));const q=J,Y=C(q*q),X=C(Y*q),K=C(Q*Y),U=C(W*X),P=C(G*q);if(V)return u.ZERO;if(P!==_)throw Error("invZ was invalid");return new u(K,U)}}p.BASE=new p(c.Gx,c.Gy,_),p.ZERO=new p(f,_,f);var G6=new WeakMap;class u{constructor(J,Q){this.x=J,this.y=Q}_setWindowSize(J){this._WINDOW_SIZE=J,G6.delete(this)}hasEvenY(){return this.y%T0===f}static fromCompressedHex(J){const Q=J.length===32,W=U0(Q?J:J.subarray(1));if(!$8(W))throw Error("Point is not on curve");let G=function(Y){const{P:X}=c,K=BigInt(6),U=BigInt(11),P=BigInt(22),Z=BigInt(23),z=BigInt(44),F=BigInt(88),H=Y*Y*Y%X,R=H*H*Y%X,M=X0(R,f1)*R%X,x=X0(M,f1)*R%X,N=X0(x,T0)*H%X,O=X0(N,U)*N%X,$=X0(O,P)*O%X,v=X0($,z)*$%X,h=X0(v,F)*v%X,j=X0(h,z)*$%X,g=X0(j,f1)*R%X,w=X0(g,Z)*O%X,I=X0(w,K)*H%X,k=X0(I,T0);if(k*k%X!==Y)throw Error("Cannot find square root");return k}(o5(W));const V=(G&_)===_;if(Q)V&&(G=C(-G));else!(1&~J[0])!==V&&(G=C(-G));const q=new u(W,G);return q.assertValidity(),q}static fromUncompressedHex(J){const Q=U0(J.subarray(1,33)),W=U0(J.subarray(33,65)),G=new u(Q,W);return G.assertValidity(),G}static fromHex(J){const Q=a0(J),W=Q.length,G=Q[0];if(W===lQ)return this.fromCompressedHex(Q);if(W===33&&(G===2||G===3))return this.fromCompressedHex(Q);if(W===65&&G===4)return this.fromUncompressedHex(Q);throw Error("Point.fromHex: received invalid point. Expected 32-33 compressed bytes or 65 uncompressed bytes, not "+W)}static fromPrivateKey(J){return u.BASE.multiply(u1(J))}static fromSignature(J,Q,W){const{r:G,s:V}=function(H){if(H instanceof n0)return H.assertValidity(),H;try{return n0.fromDER(H)}catch(R){return n0.fromCompact(H)}}(Q);if(![0,1,2,3].includes(W))throw Error("Cannot recover: invalid recovery bit");const q=function(H,R=!1){const M=function(N){const O=8*N.length-256,$=U0(N);return O>0?$>>BigInt(O):$}(H);if(R)return M;const{n:x}=c;return M>=x?M-x:M}(a0(J)),{n:Y}=c,X=W===2||W===3?G+Y:G,K=M8(X,Y),U=C(-q*K,Y),P=C(V*K,Y),Z=1&W?"03":"02",z=u.fromHex(Z+g0(X)),F=u.BASE.multiplyAndAddUnsafe(z,U,P);if(!F)throw Error("Cannot recover signature: point at infinify");return F.assertValidity(),F}toRawBytes(J=!1){return y0(this.toHex(J))}toHex(J=!1){const Q=g0(this.x);if(J)return`${this.hasEvenY()?"02":"03"}${Q}`;return`04${Q}${g0(this.y)}`}toHexX(){return this.toHex(!0).slice(2)}toRawX(){return this.toRawBytes(!0).slice(1)}assertValidity(){const{x:Q,y:W}=this;if(!$8(Q)||!$8(W))throw Error("Point is not on elliptic curve");const G=C(W*W);if(C(G-o5(Q))!==f)throw Error("Point is not on elliptic curve")}equals(J){return this.x===J.x&&this.y===J.y}negate(){return new u(this.x,C(-this.y))}double(){return p.fromAffine(this).double().toAffine()}add(J){return p.fromAffine(this).add(p.fromAffine(J)).toAffine()}subtract(J){return this.add(J.negate())}multiply(J){return p.fromAffine(this).multiply(J,this).toAffine()}multiplyAndAddUnsafe(J,Q,W){const G=p.fromAffine(this),V=Q===f||Q===_||this!==u.BASE?G.multiplyUnsafe(Q):G.multiply(Q),q=p.fromAffine(J).multiplyUnsafe(W),Y=V.add(q);return Y.equals(p.ZERO)?void 0:Y.toAffine()}}u.BASE=new u(c.Gx,c.Gy),u.ZERO=new u(f,f);class n0{constructor(J,Q){this.r=J,this.s=Q,this.assertValidity()}static fromCompact(J){const Q=J instanceof Uint8Array;if(typeof J!="string"&&!Q)throw new TypeError("Signature.fromCompact: Expected string or Uint8Array");const G=Q?K1(J):J;if(G.length!==128)throw Error("Signature.fromCompact: Expected 64-byte hex");return new n0(B8(G.slice(0,64)),B8(G.slice(64,128)))}static fromDER(J){const Q=J instanceof Uint8Array;if(typeof J!="string"&&!Q)throw new TypeError("Signature.fromDER: Expected string or Uint8Array");const{r:W,s:G}=function(V){if(V.length<2||V[0]!=48)throw Error("Invalid signature tag: "+K1(V));if(V[1]!==V.length-2)throw Error("Invalid signature: incorrect length");const{data:q,left:Y}=t5(V.subarray(2)),{data:X,left:K}=t5(Y);if(K.length)throw Error("Invalid signature: left bytes after parsing: "+K1(K));return{r:q,s:X}}(Q?J:y0(J));return new n0(W,G)}static fromHex(J){return this.fromDER(J)}assertValidity(){const{r:J,s:Q}=this;if(!b1(J))throw Error("Invalid Signature: r must be 0 < r < n");if(!b1(Q))throw Error("Invalid Signature: s must be 0 < s < n")}hasHighS(){const J=c.n>>_;return this.s>J}normalizeS(){return this.hasHighS()?new n0(this.r,C(-this.s,c.n)):this}toDERRawBytes(){return y0(this.toDERHex())}toDERHex(){const J=s5(E1(this.s)),Q=s5(E1(this.r)),W=J.length/2,G=Q.length/2,V=E1(W),q=E1(G);return`30${E1(G+W+4)}02${q}${Q}02${V}${J}`}toRawBytes(){return this.toDERRawBytes()}toHex(){return this.toDERHex()}toCompactRawBytes(){return y0(this.toCompactHex())}toCompactHex(){return g0(this.r)+g0(this.s)}}var rQ=Array.from({length:256},(J,Q)=>Q.toString(16).padStart(2,"0")),nQ=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000"),F1,Q6;class z1{constructor(J,Q){this.r=J,this.s=Q,this.assertValidity()}static fromHex(J){const Q=a0(J);if(Q.length!==64)throw new TypeError("SchnorrSignature.fromHex: expected 64 bytes, not "+Q.length);const W=U0(Q.subarray(0,32)),G=U0(Q.subarray(32,64));return new z1(W,G)}assertValidity(){const{r:J,s:Q}=this;if(!$8(J)||!b1(Q))throw Error("Invalid signature")}toHex(){return g0(this.r)+g0(this.s)}toRawBytes(){return y0(this.toHex())}}class V6{constructor(J,Q,W=P0.randomBytes()){if(J==null)throw new TypeError(`sign: Expected valid message, not "${J}"`);this.m=a0(J);const{x:G,scalar:V}=this.getScalar(u1(Q));if(this.px=G,this.d=V,this.rand=a0(W),this.rand.length!==32)throw new TypeError("sign: Expected 32 bytes of aux randomness")}getScalar(J){const Q=u.fromPrivateKey(J),W=Q.hasEvenY()?J:c.n-J;return{point:Q,scalar:W,x:Q.toRawX()}}initNonce(J,Q){return h1(J^U0(Q))}finalizeNonce(J){const Q=C(U0(J),c.n);if(Q===f)throw Error("sign: Creation of signature failed. k is zero");const{point:W,x:G,scalar:V}=this.getScalar(Q);return{R:W,rx:G,k:V}}finalizeSig(J,Q,W,G){return new z1(J.x,C(Q+W*G,c.n)).toRawBytes()}error(){throw Error("sign: Invalid signature produced")}async calc(){const{m:J,d:Q,px:W,rand:G}=this,V=P0.taggedHash,q=this.initNonce(Q,await V(S0.aux,G)),{R:Y,rx:X,k:K}=this.finalizeNonce(await V(S0.nonce,q,W,J)),U=j8(await V(S0.challenge,X,W,J)),P=this.finalizeSig(Y,K,U,Q);return await KJ(P,J,W)||this.error(),P}calcSync(){const{m:J,d:Q,px:W,rand:G}=this,V=P0.taggedHashSync,q=this.initNonce(Q,V(S0.aux,G)),{R:Y,rx:X,k:K}=this.finalizeNonce(V(S0.nonce,q,W,J)),U=j8(V(S0.challenge,X,W,J)),P=this.finalizeSig(Y,K,U,Q);return FJ(P,J,W)||this.error(),P}}var zJ={Signature:z1,getPublicKey(J){return u.fromPrivateKey(J).toRawX()},async sign(J,Q,W){return new V6(J,Q,W).calc()},verify:KJ,signSync(J,Q,W){return new V6(J,Q,W).calcSync()},verifySync:FJ};u.BASE._setWindowSize(8);var G0={node:_Q,web:typeof self=="object"&&("crypto"in self)?self.crypto:void 0},S0={challenge:"BIP0340/challenge",aux:"BIP0340/aux",nonce:"BIP0340/nonce"},F8={},P0={bytesToHex:K1,hexToBytes:y0,concatBytes:y1,mod:C,invert:M8,isValidPrivateKey(J){try{return u1(J),!0}catch(Q){return!1}},_bigintTo32Bytes:h1,_normalizePrivateKey:u1,hashToPrivateKey(J){if((J=a0(J)).length<40||J.length>1024)throw Error("Expected valid bytes of private key as per FIPS 186");return h1(C(U0(J),c.n-_)+_)},randomBytes(J=32){if(G0.web)return G0.web.getRandomValues(new Uint8Array(J));if(G0.node){const{randomBytes:Q}=G0.node;return Uint8Array.from(Q(J))}throw Error("The environment doesn't have randomBytes function")},randomPrivateKey(){return P0.hashToPrivateKey(P0.randomBytes(40))},precompute(J=8,Q=u.BASE){const W=Q===u.BASE?Q:new u(Q.x,Q.y);return W._setWindowSize(J),W.multiply(f1),W},async sha256(...J){if(G0.web){const Q=await G0.web.subtle.digest("SHA-256",y1(...J));return new Uint8Array(Q)}if(G0.node){const{createHash:Q}=G0.node,W=Q("sha256");return J.forEach((G)=>W.update(G)),Uint8Array.from(W.digest())}throw Error("The environment doesn't have sha256 function")},async hmacSha256(J,...Q){if(G0.web){const W=await G0.web.subtle.importKey("raw",J,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]),G=y1(...Q),V=await G0.web.subtle.sign("HMAC",W,G);return new Uint8Array(V)}if(G0.node){const{createHmac:W}=G0.node,G=W("sha256",J);return Q.forEach((V)=>G.update(V)),Uint8Array.from(G.digest())}throw Error("The environment doesn't have hmac-sha256 function")},sha256Sync:void 0,hmacSha256Sync:void 0,async taggedHash(J,...Q){let W=F8[J];if(W===void 0){const G=await P0.sha256(Uint8Array.from(J,(V)=>V.charCodeAt(0)));W=y1(G,G),F8[J]=W}return P0.sha256(W,...Q)},taggedHashSync(J,...Q){if(typeof F1!="function")throw new P6("sha256Sync is undefined, you need to set it");let W=F8[J];if(W===void 0){const G=F1(Uint8Array.from(J,(V)=>V.charCodeAt(0)));W=y1(G,G),F8[J]=W}return F1(W,...Q)},_JacobianPoint:p};Object.defineProperties(P0,{sha256Sync:{configurable:!1,get:()=>F1,set(J){F1||(F1=J)}},hmacSha256Sync:{configurable:!1,get:()=>Q6,set(J){Q6||(Q6=J)}}});var{floor:q6,random:aQ,sin:sQ}=Math,m1="GenosRTC",d1=(J,Q)=>Array(J).fill().map(Q),tQ="0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz",Y6=(J)=>d1(J,()=>tQ[q6(62*aQ())]).join(""),U1=Y6(20),r0=Promise.all.bind(Promise),eQ=typeof window!="undefined",{entries:X6,fromEntries:ZJ,keys:J9}=Object,i0=()=>{},x0=(J)=>Error(`${m1}: ${J}`),W9=new TextEncoder,Q9=new TextDecoder,o0=(J)=>W9.encode(J),C8=(J)=>Q9.decode(J),U6=(J)=>J.reduce((Q,W)=>Q+W.toString(16).padStart(2,"0"),""),z8=(...J)=>J.join("@"),G9=(J,Q,W)=>(J.relayUrls||((G,V)=>{const q=[...G],Y=()=>{const K=1e4*sQ(V++);return K-q6(K)};let X=q.length;for(;X;){const K=q6(Y()*X--);[q[X],q[K]]=[q[K],q[X]]}return q})(Q,kJ(J.appId))).slice(0,J.relayUrls?J.relayUrls.length:J.relayRedundancy||W),O0=JSON.stringify,L8=JSON.parse,kJ=(J,Q=Number.MAX_SAFE_INTEGER)=>J.split("").reduce((W,G)=>W+G.charCodeAt(0),0)%Q,Z8={},K6="AES-GCM",V9={},k8=async(J)=>V9[J]||=Array.from(new Uint8Array(await crypto.subtle.digest("SHA-1",o0(J)))).map((Q)=>Q.toString(36)).join(""),q9=async(J,Q)=>{const W=crypto.getRandomValues(new Uint8Array(16));return W.join(",")+"$"+(G=await crypto.subtle.encrypt({name:K6,iv:W},await J,o0(Q)),btoa(String.fromCharCode.apply(null,new Uint8Array(G))));var G},Y9=async(J,Q)=>{const[W,G]=Q.split("$");return C8(await crypto.subtle.decrypt({name:K6,iv:new Uint8Array(W.split(","))},await J,((V)=>{const q=atob(V);return new Uint8Array(q.length).map((Y,X)=>q.charCodeAt(X)).buffer})(G)))},JJ="icegatheringstatechange",WJ="offer",QJ=(J,{rtcConfig:Q,rtcPolyfill:W,turnConfig:G})=>{const V=new(W||RTCPeerConnection)({iceServers:X9.concat(G||[]),...Q}),q={};let Y=!1,X=!1,K=null;const U=(Z)=>{Z.binaryType="arraybuffer",Z.bufferedAmountLowThreshold=65535,Z.onmessage=(z)=>q.data?.(z.data),Z.onopen=()=>q.connect?.(),Z.onclose=()=>q.close?.(),Z.onerror=(z)=>{z?.error?.message?.includes("User-Initiated Abort")||q.error?.(z)}},P=(Z)=>Promise.race([new Promise((z)=>{const F=()=>{Z.iceGatheringState==="complete"&&(Z.removeEventListener(JJ,F),z())};Z.addEventListener(JJ,F),F()}),new Promise((z)=>setTimeout(z,5000))]).then(()=>({type:Z.localDescription.type,sdp:Z.localDescription.sdp.replace(/a=ice-options:trickle\s\n/g,"")}));return J?(K=V.createDataChannel("data"),U(K)):V.ondatachannel=({channel:Z})=>{K=Z,U(Z)},V.onnegotiationneeded=async()=>{try{Y=!0,await V.setLocalDescription();const Z=await P(V);q.signal?.(Z)}catch(Z){q.error?.(Z)}finally{Y=!1}},V.onconnectionstatechange=()=>{["disconnected","failed","closed"].includes(V.connectionState)&&q.close?.()},V.ontrack=(Z)=>{q.track?.(Z.track,Z.streams[0]),q.stream?.(Z.streams[0])},V.onremovestream=(Z)=>q.stream?.(Z.stream),J&&(V.canTrickleIceCandidates||V.onnegotiationneeded()),{created:Date.now(),connection:V,get channel(){return K},get isDead(){return V.connectionState==="closed"},async signal(Z){if(K?.readyState!=="open"||Z.sdp?.includes("a=rtpmap"))try{if(Z.type===WJ){if(Y||V.signalingState!=="stable"&&!X){if(J)return;await r0([V.setLocalDescription({type:"rollback"}),V.setRemoteDescription(Z)])}else await V.setRemoteDescription(Z);await V.setLocalDescription();const z=await P(V);return q.signal?.(z),z}if(Z.type==="answer"){X=!0;try{await V.setRemoteDescription(Z)}finally{X=!1}}}catch(z){q.error?.(z)}},sendData(Z){return K.send(Z)},destroy(){K?.close(),V.close(),Y=!1,X=!1},setHandlers(Z){return Object.assign(q,Z)},offerPromise:J?new Promise((Z)=>q.signal=(z)=>{z.type===WJ&&Z(z)}):Promise.resolve(),addStream(Z){return Z.getTracks().forEach((z)=>V.addTrack(z,Z))},removeStream(Z){return V.getSenders().filter((z)=>Z.getTracks().includes(z.track)).forEach((z)=>V.removeTrack(z))},addTrack(Z,z){return V.addTrack(Z,z)},removeTrack(Z){const z=V.getSenders().find((F)=>F.track===Z);z&&V.removeTrack(z)},replaceTrack(Z,z){const F=V.getSenders().find((H)=>H.track===Z);if(F)return F.replaceTrack(z)}}},X9=[...d1(3,(J,Q)=>`stun:stun${Q||""}.l.google.com:19302`),"stun:stun.cloudflare.com:3478"].map((J)=>({urls:J})),U9=Object.getPrototypeOf(Uint8Array),l0=16369,H8=255,GJ="bufferedamountlow",P1=(J)=>"@_"+J,P9=(J,Q,W)=>{const G={},V={},q={},Y={},X={},K={},U={},P={onPeerJoin:i0,onPeerLeave:i0,onPeerStream:i0,onPeerTrack:i0},Z=(k,L)=>(k?Array.isArray(k)?k:[k]:J9(G)).flatMap((y)=>{const D=G[y];return D?L(y,D):(console.warn(`${m1}: no peer with id ${y} found`),[])}),z=(k)=>{G[k]&&(delete G[k],delete Y[k],delete X[k],P.onPeerLeave(k),Q(k))},F=(k)=>{if(V[k])return q[k];if(!k)throw x0("action type argument is required");const L=o0(k);if(L.byteLength>12)throw x0(`action type string "${k}" (${L.byteLength}b) exceeds byte limit (12). Hint: choose a shorter name.`);const y=new Uint8Array(12);y.set(L);let D=0;return V[k]={onComplete:i0,onProgress:i0,setOnComplete(B){return V[k]={...V[k],onComplete:B}},setOnProgress(B){return V[k]={...V[k],onProgress:B}},async send(B,A,S,e){if(S&&typeof S!="object")throw x0("action meta argument must be an object");const i=typeof B;if(i==="undefined")throw x0("action data cannot be undefined");const C0=i!=="string",b=B instanceof Blob,B0=b||B instanceof ArrayBuffer||B instanceof U9;if(S&&!B0)throw x0("action meta argument can only be used with binary data");const K0=B0?new Uint8Array(b?await B.arrayBuffer():B):o0(C0?O0(B):B),F0=S?o0(O0(S)):null,n=Math.ceil(K0.byteLength/l0)+(S?1:0)||1,l=d1(n,(V0,m)=>{const o=m===n-1,z0=S&&m===0,M0=new Uint8Array(15+(z0?F0.byteLength:o?K0.byteLength-l0*(n-(S?2:1)):l0));return M0.set(y),M0.set([D],12),M0.set([o|z0<<1|B0<<2|C0<<3],13),M0.set([Math.round((m+1)/n*H8)],14),M0.set(S?z0?F0:K0.subarray((m-1)*l0,m*l0):K0.subarray(m*l0,(m+1)*l0),15),M0});return D=D+1&H8,r0(Z(A,async(V0,m)=>{const{channel:o}=m;let z0=0;for(;z0<n;){const M0=l[z0];if(o.bufferedAmount>o.bufferedAmountLowThreshold&&await new Promise((OJ)=>{const B6=()=>{o.removeEventListener(GJ,B6),OJ()};o.addEventListener(GJ,B6)}),!G[V0])break;m.sendData(M0),z0++,e?.(M0[14]/H8,V0,S)}}))}},q[k]||=[V[k].send,V[k].setOnComplete,V[k].setOnProgress]},H=async()=>{await w(""),await new Promise((k)=>setTimeout(k,99)),X6(G).forEach(([k,L])=>{L.destroy(),delete G[k]}),W()},[R,M]=F(P1("ping")),[x,N]=F(P1("pong")),[O,$]=F(P1("signal")),[v,h]=F(P1("stream")),[j,g]=F(P1("track")),[w,I]=F(P1("leave"));return J((k,L)=>{G[L]||(G[L]=k,k.setHandlers({data(y){return((D,B)=>{const A=new Uint8Array(B),S=C8(A.subarray(0,12)).replaceAll("\0",""),[e]=A.subarray(12,13),[i]=A.subarray(13,14),[C0]=A.subarray(14,15),b=A.subarray(15),B0=!!(1&i),K0=!!(2&i),F0=!!(4&i),n=!!(8&i);if(!V[S])return void console.warn(`${m1}: received message with unregistered type (${S})`);Y[D]||={},Y[D][S]||={};const l=Y[D][S][e]||={chunks:[]};if(K0?l.meta=L8(C8(b)):l.chunks.push(b),V[S].onProgress(C0/H8,D,l.meta),!B0)return;const V0=new Uint8Array(l.chunks.reduce((m,o)=>m+o.byteLength,0));if(l.chunks.reduce((m,o)=>(V0.set(o,m),m+o.byteLength),0),delete Y[D][S][e],F0)V[S].onComplete(V0,D,l.meta);else{const m=C8(V0);V[S].onComplete(n?L8(m):m,D)}})(L,y)},stream(y){P.onPeerStream(y,L,K[L]),delete K[L]},track(y,D){P.onPeerTrack(y,D,L,U[L]),delete U[L]},signal(y){return O(y,L)},close(){return z(L)},error(y){console.error(y),z(L)}}),P.onPeerJoin(L))}),M((k,L)=>x("",L)),N((k,L)=>{X[L]?.(),delete X[L]}),$((k,L)=>G[L]?.signal(k)),h((k,L)=>K[L]=k),g((k,L)=>U[L]=k),I((k,L)=>z(L)),eQ&&addEventListener("beforeunload",H),{makeAction:F,leave:H,async ping(k){if(!k)throw x0("ping() must be called with target peer ID");const L=Date.now();return R("",k),await new Promise((y)=>X[k]=y),Date.now()-L},getPeers(){return ZJ(X6(G).map(([k,L])=>[k,L.connection]))},addStream(k,L,y){return Z(L,async(D,B)=>{y&&await v(y,D),B.addStream(k)})},removeStream(k,L){return Z(L,(y,D)=>D.removeStream(k))},addTrack(k,L,y,D){return Z(y,async(B,A)=>{D&&await j(D,B),A.addTrack(k,L)})},removeTrack(k,L){return Z(L,(y,D)=>D.removeTrack(k))},replaceTrack(k,L,y,D){return Z(y,async(B,A)=>{D&&await j(D,B),A.replaceTrack(k,L)})},onPeerJoin(k){return P.onPeerJoin=k},onPeerLeave(k){return P.onPeerLeave=k},onPeerStream(k){return P.onPeerStream=k},onPeerTrack(k){return P.onPeerTrack=k}}},HJ={},$J="EVENT",CJ=P0.randomPrivateKey(),K9=U6(zJ.getPublicKey(CJ)),F6={},p1={},F9={},BJ=()=>Math.floor(Date.now()/1000),MJ=(J)=>F9[J]??=kJ(J,1e4)+20000,VJ=async(J,Q)=>{const W={kind:MJ(J),content:Q,pubkey:K9,created_at:BJ(),tags:[["x",J]]},G=U6(new Uint8Array(await crypto.subtle.digest("SHA-256",o0(O0([0,W.pubkey,W.created_at,W.kind,W.tags,W.content])))));return O0([$J,{...W,id:G,sig:U6(await zJ.sign(G,CJ))}])},qJ=(J,Q)=>(F6[J]=Q,O0(["REQ",J,{kinds:[MJ(Q)],since:BJ(),"#x":[Q]}])),YJ=(J)=>(delete F6[J],O0(["CLOSE",J])),z6=(({init:J,subscribe:Q,announce:W})=>{const G={};let V,q,Y,X=!1;return(K,U,P)=>{const{appId:Z}=K;if(G[Z]?.[U])return G[Z][U];const z={},F={},H=z8(m1,Z,U),R=k8(H),M=k8(z8(H,U1)),x=(async(B,A,S)=>crypto.subtle.importKey("raw",await crypto.subtle.digest({name:"SHA-256"},o0(`${B}:${A}:${S}`)),{name:K6},!1,["encrypt","decrypt"]))(K.password||"",Z,U),N=(B)=>async(A)=>({type:A.type,sdp:await B(x,A.sdp)}),O=N(Y9),$=N(q9),v=()=>QJ(!0,K),h=(B,A,S)=>{F[A]?F[A]!==B&&B.destroy():(F[A]=B,D(B,A),z[A]?.forEach((e,i)=>{i!==S&&e.destroy()}),delete z[A])},j=(B,A)=>{F[A]===B&&delete F[A]},g=(B)=>(q.push(...d1(B,v)),r0(q.splice(0,B).map((A)=>A.offerPromise.then($).then((S)=>({peer:A,offer:S}))))),w=(B,A)=>P?.({error:`incorrect password (${K.password}) when decrypting ${A}`,appId:Z,peerId:B,roomId:U}),I=(B)=>async(A,S,e)=>{const[i,C0]=await r0([R,M]);if(A!==i&&A!==C0)return;const{peerId:b,offer:B0,answer:K0,peer:F0}=typeof S=="string"?L8(S):S;if(b!==U1&&!F[b])if(!b||B0||K0){if(B0){if(z[b]?.[B]&&U1>b)return;const l=QJ(!1,K);let V0;l.setHandlers({connect(){return h(l,b,B)},close(){return j(l,b)}});try{V0=await O(B0)}catch{return void w(b,"offer")}if(l.isDead)return;const[m,o]=await r0([k8(z8(H,b)),l.signal(V0)]);e(m,O0({peerId:U1,answer:await $(o)}))}else if(K0){let n;try{n=await O(K0)}catch(l){return void w(b,"answer")}if(F0)F0.setHandlers({connect(){return h(F0,b,B)},close(){return j(F0,b)}}),F0.signal(n);else{const l=z[b]?.[B];l&&!l.isDead&&l.signal(n)}}}else{if(z[b]?.[B])return;const[[{peer:n,offer:l}],V0]=await r0([g(1),k8(z8(H,b))]);z[b]||=[],z[b][B]=n,setTimeout(()=>((m,o)=>{if(F[m])return;const z0=z[m]?.[o];z0&&(delete z[m][o],z0.destroy())})(b,B),0.9*k[B]),n.setHandlers({connect(){return h(n,b,B)},close(){return j(n,b)}}),e(V0,O0({peerId:U1,offer:l}))}};if(!K)throw x0("requires a config map as the first argument");if(!Z&&!K.firebaseApp)throw x0("config map is missing appId field");if(!U)throw x0("roomId argument required");if(!X){const B=J(K);q=d1(20,v),V=Array.isArray(B)?B:[B],X=!0,Y=setInterval(()=>q=q.filter((A)=>{const S=Date.now()-A.created<57333;return S||A.destroy(),S}),59052.99)}const k=V.map(()=>5333),L=[],y=V.map(async(B,A)=>Q(await B,await R,await M,I(A),g));r0([R,M]).then(([B,A])=>{const S=async(e,i)=>{const C0=await W(e,B,A);typeof C0=="number"&&(k[i]=C0),L[i]=setTimeout(()=>S(e,i),k[i])};y.forEach(async(e,i)=>{await e,S(await V[i],i)})});let D=i0;return G[Z]||={},G[Z][U]=P9((B)=>D=B,(B)=>delete F[B],()=>{delete G[Z][U],L.forEach(clearTimeout),y.forEach(async(B)=>(await B)()),clearInterval(Y)})}})({init(J){return G9(J,z9,5).map((Q)=>{const W=((G,V)=>{const q={},Y=()=>{const X=new WebSocket(G);X.onclose=()=>{Z8[G]??=3333,setTimeout(Y,Z8[G]),Z8[G]*=2},X.onmessage=(K)=>V(K.data),q.socket=X,q.url=X.url,q.ready=new Promise((K)=>X.onopen=()=>{K(q),Z8[G]=3333}),q.send=(K)=>{X.readyState===1&&X.send(K)}};return Y(),q})(Q,(G)=>{const[V,q,Y,X]=L8(G);if(V===$J)p1[q]?.(F6[q],Y.content);else{const K=`${m1}: relay failure from ${W.url} - `;V==="NOTICE"?console.warn(K+q):V!=="OK"||Y||console.warn(K+X)}});return HJ[Q]=W,W.ready})},subscribe(J,Q,W,G){const V=Y6(64),q=Y6(64);return p1[V]=p1[q]=(Y,X)=>G(Y,X,async(K,U)=>J.send(await VJ(K,U))),J.send(qJ(V,Q)),J.send(qJ(q,W)),()=>{J.send(YJ(V)),J.send(YJ(q)),delete p1[V],delete p1[q]}},async announce(J,Q){return J.send(await VJ(Q,O0({peerId:U1})))}}),s9=(XJ=HJ,()=>ZJ(X6(XJ).map(([J,Q])=>[J,Q.socket]))),XJ,z9=["black.nostrcity.club","eu.purplerelay.com","ftp.halifax.rwth-aachen.de/nostr","nostr.cool110.xyz","nostr.data.haus","nostr.mom","nostr.oxtr.dev","nostr.sathoarder.com","nostr.vulpem.com","playground.nostrcheck.me/relay","relay.agorist.space","relay.binaryrobot.com","relay.fountain.fm","relay.mostro.network","relay.nostraddress.com","relay.nostrdice.com","relay.nostromo.social","relay.oldenburg.cool","relay.snort.social","relay.verified-nostr.com","sendit.nosflare.com","yabu.me/v2","relay.damus.io"].map((J)=>"wss://"+J);var jJ=(J,Q,W)=>{let G=Q.timestamp;if(Q.timestamp&&typeof Q.timestamp.physical==="number"){const Y=Date.now()+7200000;if(Q.timestamp.physical>Y)G={physical:Y,logical:Q.timestamp.logical}}if(!J||!J.timestamp)return{resolved:!0,value:Q.value,timestamp:G};const V=J.timestamp;if(W.compare(V,G)<0)return{resolved:!0,value:Q.value,timestamp:G};return{resolved:!1}};class Z6{constructor(J,Q=50){this.key=`gdb_oplog_${J}`,this.maxSize=Q,this.log=this._load()}_load(){try{const J=localStorage.getItem(this.key);return J?JSON.parse(J):[]}catch(J){return console.error("Failed to load oplog from localStorage:",J),[]}}_save(){try{localStorage.setItem(this.key,JSON.stringify(this.log))}catch(J){console.error("Failed to save oplog to localStorage:",J)}}add(J){if(this.log.push(J),this.log.length>this.maxSize)this.log.shift();this._save()}getDelta(J,Q){if(!J)return[...this.log];return this.log.filter((W)=>Q(W.timestamp,J)>0)}getOldest(){return this.log[0]}clear(){this.log=[],localStorage.removeItem(this.key)}}var Z9=()=>{const J=new Map,Q=async()=>{try{const K=await navigator.storage.getDirectory(),P=await(await K.getFileHandle("~opfs-sync-test",{create:!0})).createSyncAccessHandle?.();return await P?.close(),await K.removeEntry("~opfs-sync-test"),!!P}catch{return!1}};let W="idb";const G=(async()=>{if(await Q())W="sync";else try{const K=await navigator.storage.getDirectory(),P=await(await K.getFileHandle("~opfs-async-test",{create:!0})).createWritable?.();if(await P?.close(),await K.removeEntry("~opfs-async-test"),P)W="async";else W="idb"}catch{W="idb"}})(),V=async(K,U)=>{if(!J.has(K))J.set(K,[]);const P=J.get(K),Z=P[P.length-1]||Promise.resolve();let z;const F=new Promise((H)=>z=H);P.push(F);try{return await Z,await U()}finally{if(P.shift(),z(),P.length===0)J.delete(K)}},q=(()=>{let K;const U=async()=>{if(!K)K=new Promise((P,Z)=>{const z=indexedDB.open("opfs-fallback-db",1);z.onupgradeneeded=()=>z.result.createObjectStore("files"),z.onsuccess=()=>P(z.result),z.onerror=()=>Z(z.error)});return K};return{getDB:U,get:async(P)=>{const Z=await U();return new Promise((z,F)=>{const R=Z.transaction("files","readonly").objectStore("files").get(P);R.onsuccess=()=>z(R.result||new Uint8Array),R.onerror=()=>F(R.error)})},set:async(P,Z)=>{const z=await U();return new Promise((F,H)=>{const M=z.transaction("files","readwrite").objectStore("files").put(Z,P);M.onsuccess=()=>F(),M.onerror=()=>H(M.error)})}}})(),Y=async(K)=>{await G;try{if(W==="idb"){const F=await q.get(K);return{type:"loaded",name:K,data:F}}const P=await(await navigator.storage.getDirectory()).getFileHandle(K);if(W==="sync"){let F;try{F=await P.createSyncAccessHandle();const H=F.getSize(),R=new Uint8Array(H),M=F.read(R,{at:0});return{type:"loaded",name:K,data:R.slice(0,M)}}finally{F?.close()}}const Z=await P.getFile(),z=new Uint8Array(await Z.arrayBuffer());return{type:"loaded",name:K,data:z}}catch(U){const P=U.name==="NotFoundError"?"File not found":U.message||"Error reading file";return{type:"error",name:K,message:P}}},X=async(K,U)=>{if(await G,!(U instanceof Uint8Array))return{type:"error",name:K,message:"Content must be a Uint8Array"};return V(K,async()=>{try{if(W==="idb")return await q.set(K,U),{type:"saved",name:K};const Z=await(await navigator.storage.getDirectory()).getFileHandle(K,{create:!0});if(W==="sync"){let z;try{z=await Z.createSyncAccessHandle(),z.truncate(0),z.write(U,{at:0}),z.flush()}finally{z?.close()}}else{let z;try{z=await Z.createWritable(),await z.write(U)}finally{await z?.close()}}return{type:"saved",name:K}}catch(P){return{type:"error",name:K,message:P.message||"Error saving file"}}})};self.onmessage=async({data:K})=>{const{type:U,name:P,content:Z}=K;await G;const z={load:()=>Y(P),save:()=>X(P,Z)};try{const F=z[U],H=F?await F():{type:"error",message:`Unrecognized action type: ${U}`};self.postMessage(H)}catch(F){console.error("Worker unexpected error:",F),self.postMessage({type:"error",name:P,message:F.message||"Unexpected worker error"})}}},LJ=Z9;var s0={$eq:(J,Q)=>J===Q,$ne:(J,Q)=>J!==Q,$gt:(J,Q)=>J>Q,$gte:(J,Q)=>J>=Q,$lt:(J,Q)=>J<Q,$lte:(J,Q)=>J<=Q,$in:(J,Q)=>Array.isArray(Q)&&Q.includes(J),$between:(J,[Q,W])=>J>=Q&&J<=W,$exists:(J,Q)=>Q?J!==void 0:J===void 0,$text:{global:(J,Q)=>{const W=(V)=>String(V).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),G=W(Q);return Object.values(J).some((V)=>{if(typeof V==="object")return null.fieldSearch(V,G);return W(V).includes(G)})},field:(J,Q)=>{const W=(G)=>String(G).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,"");return Array.isArray(J)?J.some((G)=>W(G).includes(W(Q))):W(J).includes(W(Q))}},$like:(J,Q)=>{if(typeof J!=="string"||typeof Q!=="string")return!1;return new RegExp(`^${Q.replace(/%/g,".*").replace(/_/g,".")}\$`,"i").test(J)},$regex:(J,Q)=>typeof J==="string"&&new RegExp(Q.$regex||Q,"i").test(J),$and:(J,Q,W)=>Q.every((G)=>{return W.createFilter(G)(J)}),$or:(J,Q,W)=>Q.some((G)=>{return W.createFilter(G)(J)}),$not:(J,Q,W)=>{return!W.createFilter(Q)(J)}},k6=(J,Q)=>{const W=Q.split(".");let G=J;for(let V of W)if(G&&typeof G==="object"&&(V in G))G=G[V];else return;return G},H6=(J)=>{const Q=(W)=>{return Object.entries(J).every(([G,V])=>{if(G.startsWith("$"))return s0[G](W,V,{filterNode:Q,createFilter:H6});const q=k6(W.value,G);if(typeof V!=="object"||V===null)return s0.$eq(q,V);return Object.entries(V).every(([Y,X])=>{if(Y==="$text")return s0.$text.field(q,X);if(Y==="$between"&&X.every((K)=>K instanceof Date)){const K=new Date(q);return s0.$between(K,X)}return s0[Y]?.(q,X,{filterNode:Q,createFilter:H6})??!1})})};return Q},$6=(J,Q)=>{const W=H6(Q.query);let G=Object.values(J).filter(W);if(Q.field)G.sort((V,q)=>{const Y=k6(V.value,Q.field),X=k6(q.value,Q.field),K=Q.order==="asc"?1:-1;if(typeof Y==="string"&&typeof X==="string")return Y.localeCompare(X)*K;return((Y??0)-(X??0))*K});if(Q.$after){const V=G.findIndex((q)=>q.id===Q.$after);G=V>=0?G.slice(V+1):[]}if(Q.$before){const V=G.findIndex((q)=>q.id===Q.$before);G=V>=0?G.slice(0,V):[]}return Q.$limit?G.slice(0,Q.$limit):G};class C6{constructor(){this.physical=Date.now(),this.logical=0}now(){const J=Date.now();return this.physical=Math.max(this.physical,J),this.logical++,{physical:this.physical,logical:this.logical}}update(J){if(!J||typeof J.physical!=="number"||typeof J.logical!=="number")return;this.physical=Math.max(this.physical,J.physical),this.logical=Math.max(this.logical,J.logical)+1}compare(J,Q){if(!J&&!Q)return 0;if(!J)return-1;if(!Q)return 1;if(J.physical>Q.physical)return 1;if(J.physical<Q.physical)return-1;if(J.logical>Q.logical)return 1;if(J.logical<Q.logical)return-1;return 0}}var RJ=function(J,Q){return J.length===Q.length&&J.every((W,G)=>W===Q[G])};async function k9(){console.log("\u26A1 GenosDB: Empowering distributed graph databases with real-time synchronization and scalability. Learn more: https://github.com/estebanrfp/gdb \u26A1"),console.log(navigator?.storage?.getDirectory?"OPFS is enabled.":"OPFS is not available."),navigator?.storage?.getDirectory&&await navigator.storage.getDirectory()}if(Symbol.dispose===void 0)Object.defineProperty(Symbol,"dispose",{value:Symbol.for("Symbol.dispose")});class xJ{constructor(){this.nodes={}}upsert(J,Q,W){this.nodes[J]={id:J,value:Q,edges:[],timestamp:W}}get(J){return this.nodes[J]||null}link(J,Q,W){const G=this.nodes[J],V=this.nodes[Q];if(G&&V&&!G.edges.includes(Q))G.edges.push(Q),G.timestamp=W}getAllNodes(){return Object.values(this.nodes)}serialize(){return _0.deflate(I0(this.nodes))}deserialize(J){this.nodes=o1(_0.inflate(new Uint8Array(J)))}}class c1{static _listenersInitialized=!1;constructor(J,{password:Q,securityManager:W=null,relayUrls:G=null}={}){this.oplog=new Z6(J,20),this.hybridClock=new C6,this.name=J,this.password=Q,this.globalTimestamp=null,this.graph=new xJ,this.securityManager=W,this.eventListeners=[],this.operators=s0,this.initWorker(),this.ready=this.loadGraphFromOPFS(),this.loadGlobalTimestamp();const V=`graph-sync-room-${this.name}`,q={appId:"1234",...this.password&&{password:this.password}};if(G)q.relayUrls=G;const Y=z6(q,V),[X,K]=Y.makeAction("syncGraph");this.sendData=X;const U=z6(q,`app-sync-${this.name}`);if(this.room=U,!c1._listenersInitialized)c1._listenersInitialized=!0,window.addEventListener("online",async()=>{console.log("\u2705 Reconnected to the network."),this.sendData([{type:"sync",timestamp:this.globalTimestamp}])}),window.addEventListener("offline",async()=>{console.log("\u274C Disconnected from the network.")}),document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="visible")console.log("The tab is visible again."),this.sendData([{type:"sync",timestamp:this.globalTimestamp}]);else if(document.visibilityState==="hidden")console.log("The tab is no longer visible.")});k9(),Y.onPeerJoin(async(P)=>{console.log("\u26A1 New pair connected:",P),this.sendData([{type:"sync",timestamp:this.globalTimestamp}])}),Y.onPeerLeave((P)=>{console.log("\u26A1 Pair disconnected:",P)}),K(async(P)=>{if(this.securityManager&&typeof this.securityManager.verifyIncomingOperations==="function"){const{validatedOperations:Z}=await this.securityManager.verifyIncomingOperations(P);if(Z&&Z.length>0)await this.receiveChanges(Z)}else console.log("GDB: No SecurityManager configured or verifyIncomingOperations missing. Processing P2P data directly."),await this.receiveChanges(P),this.emit()}),this.channel=new BroadcastChannel(`graphdb_sync_${this.name}`),this.channel.onmessage=async(P)=>{if(P.data==="update")console.log("\uD83D\uDD04 Update received from another tab..."),await this.loadGraphFromOPFS(),this.loadGlobalTimestamp(),this.emit()}}loadGlobalTimestamp(){const J=localStorage.getItem(`${this.name}_time`);this.globalTimestamp=J?JSON.parse(J):null}saveGlobalTimestamp(J){this.globalTimestamp=J,localStorage.setItem(`${this.name}_time`,JSON.stringify(J))}initWorker(){try{const J=URL.createObjectURL(new Blob([`(${LJ.toString()})()`],{type:"application/javascript"}));this.worker=new Worker(J),this.worker.addEventListener("message",({data:Q})=>{console.log("Worker message:",`${Q.name} ${Q.type}`),URL.revokeObjectURL(J)}),console.log("Worker initialized successfully.")}catch({message:J}){console.error("Failed to initialize worker:",J)}}getWorker(){return this.worker}emit(){this.eventListeners.forEach((J)=>J(this.graph.nodes))}compress(J){return _0.deflate(J)}decompress(J){return _0.inflate(J)}async getAllNodes(){return await this.ready,this.graph.getAllNodes()}async generateHash(){return crypto.randomUUID()}async hashValue(J){const Q=(new TextEncoder()).encode(J),W=await crypto.subtle.digest("SHA-256",Q);return Array.from(new Uint8Array(W)).map((G)=>G.toString(16).padStart(2,"0")).join("")}async loadGraphFromOPFS(){try{const Q=await((W)=>new Promise((G,V)=>{const q=async({data:Y})=>{if(Y.type==="loaded"&&Y.name===W)this.worker.removeEventListener("message",q),G(new Uint8Array(Y.data));else if(Y.type==="error")this.worker.removeEventListener("message",q),V(new Error(Y.message||"Unknown error"))};this.worker.addEventListener("message",q),this.worker.postMessage({type:"load",name:W})}))(`${this.name}_graph.msgpack`).catch(()=>new Uint8Array);Q.byteLength>0?this.graph.deserialize(Q):console.warn("The file '_graph.msgpack' is empty or could not be loaded."),console.log(`Graph loaded from OPFS: [ ${this.graph.getAllNodes().length} nodes ]`)}catch({message:J}){console.error("General error loading the graph from OPFS:",J)}}async saveGraphToOPFS(){try{const J=this.graph.serialize();return await((W,G)=>new Promise((V,q)=>{const Y=({data:X})=>{if(X.type==="saved"&&X.name===W)this.worker.removeEventListener("message",Y),V();else if(X.type==="error")this.worker.removeEventListener("message",Y),q(new Error(X.message||"Save error"))};this.worker.addEventListener("message",Y),this.worker.postMessage({type:"save",name:W,content:G})}))(`${this.name}_graph.msgpack`,J),this.channel.postMessage("update"),!0}catch({message:J}){throw console.error("Save error:",J),new Error("Save failed")}}async put(J,Q){await this.ready;const W=this.hybridClock.now();return this.saveGlobalTimestamp(W),Q??=await this.generateHash(),this.graph.upsert(Q,J,W),this.oplog.add({type:"upsert",id:Q,timestamp:W}),await this.saveGraphToOPFS(),await this.sendData([{type:"upsert",id:Q,value:J,timestamp:W}]),this.emit(),Q}async get(J,Q=null){if(await this.ready,typeof J!=="string")return{result:null};const W=this.graph.get(J);if(!W){if(Q)Q(null);return{result:null}}const G=(Y)=>{if(!Y)return null;const X=Y.value!==null&&typeof Y.value==="object"?{...Y.value}:Y.value;return{...Y,value:X}};if(!Q)return{result:G(W)};let V=W.timestamp;Q(G(W));const q=(Y)=>{const X=Y[J];if(X){if(this.hybridClock.compare(X.timestamp,V)>0)V=X.timestamp,Q(G(X))}else Q(null),this.eventListeners.splice(this.eventListeners.indexOf(q),1)};return this.eventListeners.push(q),{result:G(W),unsubscribe:()=>{const Y=this.eventListeners.indexOf(q);if(Y>-1)this.eventListeners.splice(Y,1)}}}async map(...J){await this.ready;let W={...{realtime:!1,query:{},field:null,order:"asc",$limit:null,$after:null,$before:null}},G=null,V=!1;J.forEach((K)=>typeof K==="function"?G=K:K&&typeof K==="object"&&(V||=("realtime"in K),Object.assign(W,K))),G&&!V&&(W.realtime=!0);let q=$6(this.graph.nodes,W),Y=null;const X=(K)=>{const U=K.filter((F)=>!q.some((H)=>H.id===F.id)),P=q.filter((F)=>!K.some((H)=>H.id===F.id)),Z=K.filter((F)=>{const H=q.find((R)=>R.id===F.id);return H&&!RJ(I0(F.value),I0(H.value))}),z=(F,H)=>{const R=H==="removed"?null:F.value,M={id:F.id,value:R,edges:F.edges||[],timestamp:F.timestamp||null,action:H};G(M)};U.forEach((F)=>z(F,"added")),P.forEach((F)=>z(F,"removed")),Z.forEach((F)=>z(F,"updated"))};if(G){if(q.forEach((K)=>{if(K.value)G({id:K.id,value:K.value,edges:K.edges,timestamp:K.timestamp,action:"initial"})}),W.realtime)Y=(K)=>{const U=$6(K,W);if(!RJ(I0(U),I0(q)))X(U),q=U},this.eventListeners.push(Y)}return{results:q,...W.realtime&&G&&Y&&{unsubscribe:()=>{const K=this.eventListeners.indexOf(Y);K>-1&&this.eventListeners.splice(K,1)}}}}async remove(J){await this.ready;const Q=this.hybridClock.now(),W=this.graph.get(J);if(!W)return console.error(`Node with ID '${J}' not found.`);delete this.graph.nodes[J],this.oplog.add({type:"remove",id:J,timestamp:Q}),Object.values(this.graph.nodes).forEach((G)=>G.edges=G.edges.filter((V)=>V!==J)),await this.saveGraphToOPFS(),this.saveGlobalTimestamp(Q),await this.sendData([{type:"remove",id:J,value:W.value,timestamp:Q}]),this.emit()}async clear(){await this.ready,this.graph.nodes={};try{await(await navigator.storage.getDirectory()).removeEntry(`${this.name}_graph.msgpack`)}catch({message:J}){console.warn(`Error deleting _graph.msgpack: ${J}`)}this.emit(),console.log("All data has been deleted.")}async link(J,Q){await this.ready;const W=this.hybridClock.now();if(!this.graph.nodes[J]||!this.graph.nodes[Q]){console.error(`One or both nodes (${J}, ${Q}) do not exist.`);return}this.graph.link(J,Q,W),this.oplog.add({type:"link",sourceId:J,targetId:Q,timestamp:W}),await this.saveGraphToOPFS(),this.saveGlobalTimestamp(W),await this.sendData([{type:"link",sourceId:J,targetId:Q,timestamp:W}]),this.emit()}async applyFullGraph(J){try{console.log("Applying full graph from remote..."),this.graph.nodes={...J.nodes},await this.saveGraphToOPFS()}catch({message:Q}){console.error(`Error applying the full graph: ${Q}`)}}async receiveChanges(J){let Q=!1,W=null;const G={upsert:(V)=>{const q=this.graph.get(V.id),Y=jJ(q,V,this.hybridClock);if(Y.resolved){if(this.graph.upsert(V.id,Y.value,Y.timestamp),this.hybridClock.update(Y.timestamp),this.oplog.add({type:"upsert",id:V.id,timestamp:Y.timestamp}),Q=!0,!W||this.hybridClock.compare(Y.timestamp,W)>0)W=Y.timestamp}},remove:(V)=>{const q=this.graph.get(V.id);if(q&&this.hybridClock.compare(q.timestamp,V.timestamp)<0){if(delete this.graph.nodes[V.id],this.hybridClock.update(V.timestamp),this.oplog.add({type:"remove",id:V.id,timestamp:V.timestamp}),Q=!0,!W||this.hybridClock.compare(V.timestamp,W)>0)W=V.timestamp}},link:(V)=>{const q=this.graph.get(V.sourceId),Y=this.graph.get(V.targetId);if(q&&Y&&this.hybridClock.compare(q.timestamp,V.timestamp)<0){if(this.graph.link(V.sourceId,V.targetId,V.timestamp),this.hybridClock.update(V.timestamp),this.oplog.add({type:"link",sourceId:V.sourceId,targetId:V.targetId,timestamp:V.timestamp}),Q=!0,!W||this.hybridClock.compare(V.timestamp,W)>0)W=V.timestamp}},sync:async(V)=>{const q=V.timestamp;console.log("\uD83D\uDCEC [SYNC REQUEST RECEIVED] A peer is asking for changes since timestamp:",q);const Y=this.oplog.getOldest();if(Y&&q&&this.hybridClock.compare(q,Y.timestamp)<0){console.error("\uD83D\uDCA5 [FALLBACK TRIGGERED] Peer is too far behind. Sending FULL graph state."),await this.sendData([{type:"syncReceive",graph:this.graph}]);return}const X=this.oplog.getDelta(q,this.hybridClock.compare);if(X.length>0){const K=X.map((P)=>{if(P.type==="upsert"){const Z=this.graph.get(P.id);return{...P,value:Z?Z.value:null}}return P}),U=_0.deflate(I0(K));console.log("\uD83D\uDCE6 Delta compressed for transport."),console.log(`\uD83D\uDE80 [SENDING DELTA] Found ${X.length} new operations to send.`),await this.sendData([{type:"deltaSync",operations:U}])}else console.log("\u2705 [ALREADY SYNCED] Peer is up-to-date. Nothing to send.")},deltaSync:(V)=>{console.log("\uD83D\uDEF0\uFE0F [DECOMPRESSING DELTA] Received compressed delta sync.");let q=o1(_0.inflate(V.operations));console.log(`\uD83D\uDEF0\uFE0F [DELTA SYNC RECEIVED] Applying ${q.length} operations from a peer.`);for(let Y of q)G[Y.type]?.(Y)},syncReceive:async(V)=>{if(console.log("\uD83D\uDCE6 [FULL SYNC RECEIVED] Overwriting local state with full graph from a peer."),V.graph)await this.applyFullGraph(V.graph),this.oplog.clear(),console.warn("\uD83D\uDD12 Oplog has been cleared due to full sync."),Q=!0;else console.error("Full sync failed: received graph data is invalid.",V.graph)}};for(let V of J)if(G[V.type])await G[V.type](V);else console.warn(`\uD83E\uDD37\u200D\u2640\uFE0F [UNKNOWN MESSAGE TYPE] Received unhandled message type: "${V.type}"`);if(W)console.log("\uD83D\uDCC8 [UPDATING GLOBAL TIMESTAMP] Advancing local knowledge to the latest received timestamp."),this.saveGlobalTimestamp(W);if(Q)console.log("\uD83D\uDCBE [STATE CHANGED] Saving new state to OPFS and emitting update."),await this.saveGraphToOPFS(),this.emit()}}export{c1 as GDB};
1
+ function c6(W){const Q=W.length;let J=0,G=0;while(G<Q){let V=W.charCodeAt(G++);if((V&4294967168)===0){J++;continue}else if((V&4294965248)===0)J+=2;else{if(V>=55296&&V<=56319){if(G<Q){const q=W.charCodeAt(G);if((q&64512)===56320)++G,V=((V&1023)<<10)+(q&1023)+65536}}if((V&4294901760)===0)J+=3;else J+=4}}return J}function NW(W,Q,J){const G=W.length;let V=J,q=0;while(q<G){let X=W.charCodeAt(q++);if((X&4294967168)===0){Q[V++]=X;continue}else if((X&4294965248)===0)Q[V++]=X>>6&31|192;else{if(X>=55296&&X<=56319){if(q<G){const Y=W.charCodeAt(q);if((Y&64512)===56320)++q,X=((X&1023)<<10)+(Y&1023)+65536}}if((X&4294901760)===0)Q[V++]=X>>12&15|224,Q[V++]=X>>6&63|128;else Q[V++]=X>>18&7|240,Q[V++]=X>>12&63|128,Q[V++]=X>>6&63|128}Q[V++]=X&63|128}}function gW(W,Q,J){AW.encodeInto(W,Q.subarray(J))}function _6(W,Q,J){if(W.length>vW)gW(W,Q,J);else NW(W,Q,J)}function w8(W,Q,J){let G=Q;const V=G+J,q=[];let X="";while(G<V){const Y=W[G++];if((Y&128)===0)q.push(Y);else if((Y&224)===192){const K=W[G++]&63;q.push((Y&31)<<6|K)}else if((Y&240)===224){const K=W[G++]&63,P=W[G++]&63;q.push((Y&31)<<12|K<<6|P)}else if((Y&248)===240){const K=W[G++]&63,P=W[G++]&63,U=W[G++]&63;let C=(Y&7)<<18|K<<12|P<<6|U;if(C>65535)C-=65536,q.push(C>>>10&1023|55296),C=56320|C&1023;q.push(C)}else q.push(Y);if(q.length>=TW)X+=String.fromCharCode(...q),q.length=0}if(q.length>0)X+=String.fromCharCode(...q);return X}function EW(W,Q,J){const G=W.subarray(Q,Q+J);return SW.decode(G)}function l6(W,Q,J){if(J>yW)return EW(W,Q,J);else return w8(W,Q,J)}var AW=new TextEncoder,vW=50,TW=4096,SW=new TextDecoder,yW=200;class s0{constructor(W,Q){this.type=W,this.data=Q}}class e extends Error{constructor(W){super(W);const Q=Object.create(e.prototype);Object.setPrototypeOf(this,Q),Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:e.name})}}function i6(W,Q,J){const G=J/4294967296,V=J;W.setUint32(Q,G),W.setUint32(Q+4,V)}function _1(W,Q,J){const G=Math.floor(J/4294967296),V=J;W.setUint32(Q,G),W.setUint32(Q+4,V)}function l1(W,Q){const J=W.getInt32(Q),G=W.getUint32(Q+4);return J*4294967296+G}function r6(W,Q){const J=W.getUint32(Q),G=W.getUint32(Q+4);return J*4294967296+G}var e0=4294967295;function bW({sec:W,nsec:Q}){if(W>=0&&Q>=0&&W<=hW)if(Q===0&&W<=fW){const J=new Uint8Array(4);return new DataView(J.buffer).setUint32(0,W),J}else{const J=W/4294967296,G=W&4294967295,V=new Uint8Array(8),q=new DataView(V.buffer);return q.setUint32(0,Q<<2|J&3),q.setUint32(4,G),V}else{const J=new Uint8Array(12),G=new DataView(J.buffer);return G.setUint32(0,Q),_1(G,4,W),J}}function mW(W){const Q=W.getTime(),J=Math.floor(Q/1000),G=(Q-J*1000)*1e6,V=Math.floor(G/1e9);return{sec:J+V,nsec:G-V*1e9}}function uW(W){if(W instanceof Date){const Q=mW(W);return bW(Q)}else return null}function dW(W){const Q=new DataView(W.buffer,W.byteOffset,W.byteLength);switch(W.byteLength){case 4:return{sec:Q.getUint32(0),nsec:0};case 8:{const J=Q.getUint32(0),G=Q.getUint32(4),V=(J&3)*4294967296+G,q=J>>>2;return{sec:V,nsec:q}}case 12:{const J=l1(Q,4),G=Q.getUint32(0);return{sec:J,nsec:G}}default:throw new e(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${W.length}`)}}function cW(W){const Q=dW(W);return new Date(Q.sec*1000+Q.nsec/1e6)}var pW=-1,fW=4294967295,hW=17179869183,o6={type:pW,encode:uW,decode:cW};class g0{constructor(){this.builtInEncoders=[],this.builtInDecoders=[],this.encoders=[],this.decoders=[],this.register(o6)}register({type:W,encode:Q,decode:J}){if(W>=0)this.encoders[W]=Q,this.decoders[W]=J;else{const G=-1-W;this.builtInEncoders[G]=Q,this.builtInDecoders[G]=J}}tryToEncode(W,Q){for(let J=0;J<this.builtInEncoders.length;J++){const G=this.builtInEncoders[J];if(G!=null){const V=G(W,Q);if(V!=null){const q=-1-J;return new s0(q,V)}}}for(let J=0;J<this.encoders.length;J++){const G=this.encoders[J];if(G!=null){const V=G(W,Q);if(V!=null)return new s0(J,V)}}if(W instanceof s0)return W;return null}decode(W,Q,J){const G=Q<0?this.builtInDecoders[-1-Q]:this.decoders[Q];if(G)return G(W,Q,J);else return new s0(Q,W)}}g0.defaultCodec=new g0;var _W=function(W){return W instanceof ArrayBuffer||typeof SharedArrayBuffer!=="undefined"&&W instanceof SharedArrayBuffer};function $1(W){if(W instanceof Uint8Array)return W;else if(ArrayBuffer.isView(W))return new Uint8Array(W.buffer,W.byteOffset,W.byteLength);else if(_W(W))return new Uint8Array(W);else return Uint8Array.from(W)}var lW=100,iW=2048;class i1{constructor(W){this.entered=!1,this.extensionCodec=W?.extensionCodec??g0.defaultCodec,this.context=W?.context,this.useBigInt64=W?.useBigInt64??!1,this.maxDepth=W?.maxDepth??lW,this.initialBufferSize=W?.initialBufferSize??iW,this.sortKeys=W?.sortKeys??!1,this.forceFloat32=W?.forceFloat32??!1,this.ignoreUndefined=W?.ignoreUndefined??!1,this.forceIntegerToFloat=W?.forceIntegerToFloat??!1,this.pos=0,this.view=new DataView(new ArrayBuffer(this.initialBufferSize)),this.bytes=new Uint8Array(this.view.buffer)}clone(){return new i1({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,maxDepth:this.maxDepth,initialBufferSize:this.initialBufferSize,sortKeys:this.sortKeys,forceFloat32:this.forceFloat32,ignoreUndefined:this.ignoreUndefined,forceIntegerToFloat:this.forceIntegerToFloat})}reinitializeState(){this.pos=0}encodeSharedRef(W){if(this.entered)return this.clone().encodeSharedRef(W);try{return this.entered=!0,this.reinitializeState(),this.doEncode(W,1),this.bytes.subarray(0,this.pos)}finally{this.entered=!1}}encode(W){if(this.entered)return this.clone().encode(W);try{return this.entered=!0,this.reinitializeState(),this.doEncode(W,1),this.bytes.slice(0,this.pos)}finally{this.entered=!1}}doEncode(W,Q){if(Q>this.maxDepth)throw new Error(`Too deep objects in depth ${Q}`);if(W==null)this.encodeNil();else if(typeof W==="boolean")this.encodeBoolean(W);else if(typeof W==="number")if(!this.forceIntegerToFloat)this.encodeNumber(W);else this.encodeNumberAsFloat(W);else if(typeof W==="string")this.encodeString(W);else if(this.useBigInt64&&typeof W==="bigint")this.encodeBigInt64(W);else this.encodeObject(W,Q)}ensureBufferSizeToWrite(W){const Q=this.pos+W;if(this.view.byteLength<Q)this.resizeBuffer(Q*2)}resizeBuffer(W){const Q=new ArrayBuffer(W),J=new Uint8Array(Q),G=new DataView(Q);J.set(this.bytes),this.view=G,this.bytes=J}encodeNil(){this.writeU8(192)}encodeBoolean(W){if(W===!1)this.writeU8(194);else this.writeU8(195)}encodeNumber(W){if(!this.forceIntegerToFloat&&Number.isSafeInteger(W))if(W>=0)if(W<128)this.writeU8(W);else if(W<256)this.writeU8(204),this.writeU8(W);else if(W<65536)this.writeU8(205),this.writeU16(W);else if(W<4294967296)this.writeU8(206),this.writeU32(W);else if(!this.useBigInt64)this.writeU8(207),this.writeU64(W);else this.encodeNumberAsFloat(W);else if(W>=-32)this.writeU8(224|W+32);else if(W>=-128)this.writeU8(208),this.writeI8(W);else if(W>=-32768)this.writeU8(209),this.writeI16(W);else if(W>=-2147483648)this.writeU8(210),this.writeI32(W);else if(!this.useBigInt64)this.writeU8(211),this.writeI64(W);else this.encodeNumberAsFloat(W);else this.encodeNumberAsFloat(W)}encodeNumberAsFloat(W){if(this.forceFloat32)this.writeU8(202),this.writeF32(W);else this.writeU8(203),this.writeF64(W)}encodeBigInt64(W){if(W>=BigInt(0))this.writeU8(207),this.writeBigUint64(W);else this.writeU8(211),this.writeBigInt64(W)}writeStringHeader(W){if(W<32)this.writeU8(160+W);else if(W<256)this.writeU8(217),this.writeU8(W);else if(W<65536)this.writeU8(218),this.writeU16(W);else if(W<4294967296)this.writeU8(219),this.writeU32(W);else throw new Error(`Too long string: ${W} bytes in UTF-8`)}encodeString(W){const J=c6(W);this.ensureBufferSizeToWrite(5+J),this.writeStringHeader(J),_6(W,this.bytes,this.pos),this.pos+=J}encodeObject(W,Q){const J=this.extensionCodec.tryToEncode(W,this.context);if(J!=null)this.encodeExtension(J);else if(Array.isArray(W))this.encodeArray(W,Q);else if(ArrayBuffer.isView(W))this.encodeBinary(W);else if(typeof W==="object")this.encodeMap(W,Q);else throw new Error(`Unrecognized object: ${Object.prototype.toString.apply(W)}`)}encodeBinary(W){const Q=W.byteLength;if(Q<256)this.writeU8(196),this.writeU8(Q);else if(Q<65536)this.writeU8(197),this.writeU16(Q);else if(Q<4294967296)this.writeU8(198),this.writeU32(Q);else throw new Error(`Too large binary: ${Q}`);const J=$1(W);this.writeU8a(J)}encodeArray(W,Q){const J=W.length;if(J<16)this.writeU8(144+J);else if(J<65536)this.writeU8(220),this.writeU16(J);else if(J<4294967296)this.writeU8(221),this.writeU32(J);else throw new Error(`Too large array: ${J}`);for(let G of W)this.doEncode(G,Q+1)}countWithoutUndefined(W,Q){let J=0;for(let G of Q)if(W[G]!==void 0)J++;return J}encodeMap(W,Q){const J=Object.keys(W);if(this.sortKeys)J.sort();const G=this.ignoreUndefined?this.countWithoutUndefined(W,J):J.length;if(G<16)this.writeU8(128+G);else if(G<65536)this.writeU8(222),this.writeU16(G);else if(G<4294967296)this.writeU8(223),this.writeU32(G);else throw new Error(`Too large map object: ${G}`);for(let V of J){const q=W[V];if(!(this.ignoreUndefined&&q===void 0))this.encodeString(V),this.doEncode(q,Q+1)}}encodeExtension(W){if(typeof W.data==="function"){const J=W.data(this.pos+6),G=J.length;if(G>=4294967296)throw new Error(`Too large extension object: ${G}`);this.writeU8(201),this.writeU32(G),this.writeI8(W.type),this.writeU8a(J);return}const Q=W.data.length;if(Q===1)this.writeU8(212);else if(Q===2)this.writeU8(213);else if(Q===4)this.writeU8(214);else if(Q===8)this.writeU8(215);else if(Q===16)this.writeU8(216);else if(Q<256)this.writeU8(199),this.writeU8(Q);else if(Q<65536)this.writeU8(200),this.writeU16(Q);else if(Q<4294967296)this.writeU8(201),this.writeU32(Q);else throw new Error(`Too large extension object: ${Q}`);this.writeI8(W.type),this.writeU8a(W.data)}writeU8(W){this.ensureBufferSizeToWrite(1),this.view.setUint8(this.pos,W),this.pos++}writeU8a(W){const Q=W.length;this.ensureBufferSizeToWrite(Q),this.bytes.set(W,this.pos),this.pos+=Q}writeI8(W){this.ensureBufferSizeToWrite(1),this.view.setInt8(this.pos,W),this.pos++}writeU16(W){this.ensureBufferSizeToWrite(2),this.view.setUint16(this.pos,W),this.pos+=2}writeI16(W){this.ensureBufferSizeToWrite(2),this.view.setInt16(this.pos,W),this.pos+=2}writeU32(W){this.ensureBufferSizeToWrite(4),this.view.setUint32(this.pos,W),this.pos+=4}writeI32(W){this.ensureBufferSizeToWrite(4),this.view.setInt32(this.pos,W),this.pos+=4}writeF32(W){this.ensureBufferSizeToWrite(4),this.view.setFloat32(this.pos,W),this.pos+=4}writeF64(W){this.ensureBufferSizeToWrite(8),this.view.setFloat64(this.pos,W),this.pos+=8}writeU64(W){this.ensureBufferSizeToWrite(8),i6(this.view,this.pos,W),this.pos+=8}writeI64(W){this.ensureBufferSizeToWrite(8),_1(this.view,this.pos,W),this.pos+=8}writeBigUint64(W){this.ensureBufferSizeToWrite(8),this.view.setBigUint64(this.pos,W),this.pos+=8}writeBigInt64(W){this.ensureBufferSizeToWrite(8),this.view.setBigInt64(this.pos,W),this.pos+=8}}function O0(W,Q){return new i1(Q).encodeSharedRef(W)}function r1(W){return`${W<0?"-":""}0x${Math.abs(W).toString(16).padStart(2,"0")}`}var rW=16,oW=16;class D8{constructor(W=rW,Q=oW){this.hit=0,this.miss=0,this.maxKeyLength=W,this.maxLengthPerKey=Q,this.caches=[];for(let J=0;J<this.maxKeyLength;J++)this.caches.push([])}canBeCached(W){return W>0&&W<=this.maxKeyLength}find(W,Q,J){const G=this.caches[J-1];W:for(let V of G){const q=V.bytes;for(let X=0;X<J;X++)if(q[X]!==W[Q+X])continue W;return V.str}return null}store(W,Q){const J=this.caches[W.length-1],G={bytes:W,str:Q};if(J.length>=this.maxLengthPerKey)J[Math.random()*J.length|0]=G;else J.push(G)}decode(W,Q,J){const G=this.find(W,Q,J);if(G!=null)return this.hit++,G;this.miss++;const V=w8(W,Q,J),q=Uint8Array.prototype.slice.call(W,Q,Q+J);return this.store(q,V),V}}var N8="array",B1="map_key",n6="map_value",aW=(W)=>{if(typeof W==="string"||typeof W==="number")return W;throw new e("The type of key must be string or number but "+typeof W)};class s6{constructor(){this.stack=[],this.stackHeadPosition=-1}get length(){return this.stackHeadPosition+1}top(){return this.stack[this.stackHeadPosition]}pushArrayState(W){const Q=this.getUninitializedStateFromPool();Q.type=N8,Q.position=0,Q.size=W,Q.array=new Array(W)}pushMapState(W){const Q=this.getUninitializedStateFromPool();Q.type=B1,Q.readCount=0,Q.size=W,Q.map={}}getUninitializedStateFromPool(){if(this.stackHeadPosition++,this.stackHeadPosition===this.stack.length){const W={type:void 0,size:0,array:void 0,position:0,readCount:0,map:void 0,key:null};this.stack.push(W)}return this.stack[this.stackHeadPosition]}release(W){if(this.stack[this.stackHeadPosition]!==W)throw new Error("Invalid stack state. Released state is not on top of the stack.");if(W.type===N8){const J=W;J.size=0,J.array=void 0,J.position=0,J.type=void 0}if(W.type===B1||W.type===n6){const J=W;J.size=0,J.map=void 0,J.readCount=0,J.type=void 0}this.stackHeadPosition--}reset(){this.stack.length=0,this.stackHeadPosition=-1}}var M1=-1,A8=new DataView(new ArrayBuffer(0)),nW=new Uint8Array(A8.buffer);try{A8.getInt8(0)}catch(W){if(!(W instanceof RangeError))throw new Error("This module is not supported in the current JavaScript engine because DataView does not throw RangeError on out-of-bounds access")}var a6=new RangeError("Insufficient data"),sW=new D8;class o1{constructor(W){this.totalPos=0,this.pos=0,this.view=A8,this.bytes=nW,this.headByte=M1,this.stack=new s6,this.entered=!1,this.extensionCodec=W?.extensionCodec??g0.defaultCodec,this.context=W?.context,this.useBigInt64=W?.useBigInt64??!1,this.rawStrings=W?.rawStrings??!1,this.maxStrLength=W?.maxStrLength??e0,this.maxBinLength=W?.maxBinLength??e0,this.maxArrayLength=W?.maxArrayLength??e0,this.maxMapLength=W?.maxMapLength??e0,this.maxExtLength=W?.maxExtLength??e0,this.keyDecoder=W?.keyDecoder!==void 0?W.keyDecoder:sW,this.mapKeyConverter=W?.mapKeyConverter??aW}clone(){return new o1({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,rawStrings:this.rawStrings,maxStrLength:this.maxStrLength,maxBinLength:this.maxBinLength,maxArrayLength:this.maxArrayLength,maxMapLength:this.maxMapLength,maxExtLength:this.maxExtLength,keyDecoder:this.keyDecoder})}reinitializeState(){this.totalPos=0,this.headByte=M1,this.stack.reset()}setBuffer(W){const Q=$1(W);this.bytes=Q,this.view=new DataView(Q.buffer,Q.byteOffset,Q.byteLength),this.pos=0}appendBuffer(W){if(this.headByte===M1&&!this.hasRemaining(1))this.setBuffer(W);else{const Q=this.bytes.subarray(this.pos),J=$1(W),G=new Uint8Array(Q.length+J.length);G.set(Q),G.set(J,Q.length),this.setBuffer(G)}}hasRemaining(W){return this.view.byteLength-this.pos>=W}createExtraByteError(W){const{view:Q,pos:J}=this;return new RangeError(`Extra ${Q.byteLength-J} of ${Q.byteLength} byte(s) found at buffer[${W}]`)}decode(W){if(this.entered)return this.clone().decode(W);try{this.entered=!0,this.reinitializeState(),this.setBuffer(W);const Q=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return Q}finally{this.entered=!1}}*decodeMulti(W){if(this.entered){yield*this.clone().decodeMulti(W);return}try{this.entered=!0,this.reinitializeState(),this.setBuffer(W);while(this.hasRemaining(1))yield this.doDecodeSync()}finally{this.entered=!1}}async decodeAsync(W){if(this.entered)return this.clone().decodeAsync(W);try{this.entered=!0;let Q=!1,J;for await(let X of W){if(Q)throw this.entered=!1,this.createExtraByteError(this.totalPos);this.appendBuffer(X);try{J=this.doDecodeSync(),Q=!0}catch(Y){if(!(Y instanceof RangeError))throw Y}this.totalPos+=this.pos}if(Q){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return J}const{headByte:G,pos:V,totalPos:q}=this;throw new RangeError(`Insufficient data in parsing ${r1(G)} at ${q} (${V} in the current buffer)`)}finally{this.entered=!1}}decodeArrayStream(W){return this.decodeMultiAsync(W,!0)}decodeStream(W){return this.decodeMultiAsync(W,!1)}async*decodeMultiAsync(W,Q){if(this.entered){yield*this.clone().decodeMultiAsync(W,Q);return}try{this.entered=!0;let J=Q,G=-1;for await(let V of W){if(Q&&G===0)throw this.createExtraByteError(this.totalPos);if(this.appendBuffer(V),J)G=this.readArraySize(),J=!1,this.complete();try{while(!0)if(yield this.doDecodeSync(),--G===0)break}catch(q){if(!(q instanceof RangeError))throw q}this.totalPos+=this.pos}}finally{this.entered=!1}}doDecodeSync(){W:while(!0){const W=this.readHeadByte();let Q;if(W>=224)Q=W-256;else if(W<192)if(W<128)Q=W;else if(W<144){const G=W-128;if(G!==0){this.pushMapState(G),this.complete();continue W}else Q={}}else if(W<160){const G=W-144;if(G!==0){this.pushArrayState(G),this.complete();continue W}else Q=[]}else{const G=W-160;Q=this.decodeString(G,0)}else if(W===192)Q=null;else if(W===194)Q=!1;else if(W===195)Q=!0;else if(W===202)Q=this.readF32();else if(W===203)Q=this.readF64();else if(W===204)Q=this.readU8();else if(W===205)Q=this.readU16();else if(W===206)Q=this.readU32();else if(W===207)if(this.useBigInt64)Q=this.readU64AsBigInt();else Q=this.readU64();else if(W===208)Q=this.readI8();else if(W===209)Q=this.readI16();else if(W===210)Q=this.readI32();else if(W===211)if(this.useBigInt64)Q=this.readI64AsBigInt();else Q=this.readI64();else if(W===217){const G=this.lookU8();Q=this.decodeString(G,1)}else if(W===218){const G=this.lookU16();Q=this.decodeString(G,2)}else if(W===219){const G=this.lookU32();Q=this.decodeString(G,4)}else if(W===220){const G=this.readU16();if(G!==0){this.pushArrayState(G),this.complete();continue W}else Q=[]}else if(W===221){const G=this.readU32();if(G!==0){this.pushArrayState(G),this.complete();continue W}else Q=[]}else if(W===222){const G=this.readU16();if(G!==0){this.pushMapState(G),this.complete();continue W}else Q={}}else if(W===223){const G=this.readU32();if(G!==0){this.pushMapState(G),this.complete();continue W}else Q={}}else if(W===196){const G=this.lookU8();Q=this.decodeBinary(G,1)}else if(W===197){const G=this.lookU16();Q=this.decodeBinary(G,2)}else if(W===198){const G=this.lookU32();Q=this.decodeBinary(G,4)}else if(W===212)Q=this.decodeExtension(1,0);else if(W===213)Q=this.decodeExtension(2,0);else if(W===214)Q=this.decodeExtension(4,0);else if(W===215)Q=this.decodeExtension(8,0);else if(W===216)Q=this.decodeExtension(16,0);else if(W===199){const G=this.lookU8();Q=this.decodeExtension(G,1)}else if(W===200){const G=this.lookU16();Q=this.decodeExtension(G,2)}else if(W===201){const G=this.lookU32();Q=this.decodeExtension(G,4)}else throw new e(`Unrecognized type byte: ${r1(W)}`);this.complete();const J=this.stack;while(J.length>0){const G=J.top();if(G.type===N8)if(G.array[G.position]=Q,G.position++,G.position===G.size)Q=G.array,J.release(G);else continue W;else if(G.type===B1){if(Q==="__proto__")throw new e("The key __proto__ is not allowed");G.key=this.mapKeyConverter(Q),G.type=n6;continue W}else if(G.map[G.key]=Q,G.readCount++,G.readCount===G.size)Q=G.map,J.release(G);else{G.key=null,G.type=B1;continue W}}return Q}}readHeadByte(){if(this.headByte===M1)this.headByte=this.readU8();return this.headByte}complete(){this.headByte=M1}readArraySize(){const W=this.readHeadByte();switch(W){case 220:return this.readU16();case 221:return this.readU32();default:if(W<160)return W-144;else throw new e(`Unrecognized array type byte: ${r1(W)}`)}}pushMapState(W){if(W>this.maxMapLength)throw new e(`Max length exceeded: map length (${W}) > maxMapLengthLength (${this.maxMapLength})`);this.stack.pushMapState(W)}pushArrayState(W){if(W>this.maxArrayLength)throw new e(`Max length exceeded: array length (${W}) > maxArrayLength (${this.maxArrayLength})`);this.stack.pushArrayState(W)}decodeString(W,Q){if(!this.rawStrings||this.stateIsMapKey())return this.decodeUtf8String(W,Q);return this.decodeBinary(W,Q)}decodeUtf8String(W,Q){if(W>this.maxStrLength)throw new e(`Max length exceeded: UTF-8 byte length (${W}) > maxStrLength (${this.maxStrLength})`);if(this.bytes.byteLength<this.pos+Q+W)throw a6;const J=this.pos+Q;let G;if(this.stateIsMapKey()&&this.keyDecoder?.canBeCached(W))G=this.keyDecoder.decode(this.bytes,J,W);else G=l6(this.bytes,J,W);return this.pos+=Q+W,G}stateIsMapKey(){if(this.stack.length>0)return this.stack.top().type===B1;return!1}decodeBinary(W,Q){if(W>this.maxBinLength)throw new e(`Max length exceeded: bin length (${W}) > maxBinLength (${this.maxBinLength})`);if(!this.hasRemaining(W+Q))throw a6;const J=this.pos+Q,G=this.bytes.subarray(J,J+W);return this.pos+=Q+W,G}decodeExtension(W,Q){if(W>this.maxExtLength)throw new e(`Max length exceeded: ext length (${W}) > maxExtLength (${this.maxExtLength})`);const J=this.view.getInt8(this.pos+Q),G=this.decodeBinary(W,Q+1);return this.extensionCodec.decode(G,J,this.context)}lookU8(){return this.view.getUint8(this.pos)}lookU16(){return this.view.getUint16(this.pos)}lookU32(){return this.view.getUint32(this.pos)}readU8(){const W=this.view.getUint8(this.pos);return this.pos++,W}readI8(){const W=this.view.getInt8(this.pos);return this.pos++,W}readU16(){const W=this.view.getUint16(this.pos);return this.pos+=2,W}readI16(){const W=this.view.getInt16(this.pos);return this.pos+=2,W}readU32(){const W=this.view.getUint32(this.pos);return this.pos+=4,W}readI32(){const W=this.view.getInt32(this.pos);return this.pos+=4,W}readU64(){const W=r6(this.view,this.pos);return this.pos+=8,W}readI64(){const W=l1(this.view,this.pos);return this.pos+=8,W}readU64AsBigInt(){const W=this.view.getBigUint64(this.pos);return this.pos+=8,W}readI64AsBigInt(){const W=this.view.getBigInt64(this.pos);return this.pos+=8,W}readF32(){const W=this.view.getFloat32(this.pos);return this.pos+=4,W}readF64(){const W=this.view.getFloat64(this.pos);return this.pos+=8,W}}function a1(W,Q){return new o1(Q).decode(W)}var V1=function(W){let Q=W.length;while(--Q>=0)W[Q]=0},g8=function(W,Q,J,G,V){this.static_tree=W,this.extra_bits=Q,this.extra_base=J,this.elems=G,this.max_length=V,this.has_stree=W&&W.length},T8=function(W,Q){this.dyn_tree=W,this.max_code=0,this.stat_desc=Q},K0=function(W,Q,J,G,V){this.good_length=W,this.max_lazy=Q,this.nice_length=J,this.max_chain=G,this.func=V},tJ=function(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=q8,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(_J*2),this.dyn_dtree=new Uint16Array((2*dJ+1)*2),this.bl_tree=new Uint16Array((2*cJ+1)*2),I0(this.dyn_ltree),I0(this.dyn_dtree),I0(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(lJ+1),this.heap=new Uint16Array(2*r8+1),I0(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*r8+1),I0(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0},jQ=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0},p1=function(W){this.options=X8.assign({level:DQ,method:AQ,chunkSize:16384,windowBits:15,memLevel:8,strategy:NQ},W||{});let Q=this.options;if(Q.raw&&Q.windowBits>0)Q.windowBits=-Q.windowBits;else if(Q.gzip&&Q.windowBits>0&&Q.windowBits<16)Q.windowBits+=16;this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new G7,this.strm.avail_out=0;let J=I1.deflateInit2(this.strm,Q.level,Q.method,Q.windowBits,Q.memLevel,Q.strategy);if(J!==G8)throw new Error(E0[J]);if(Q.header)I1.deflateSetHeader(this.strm,Q.header);if(Q.dictionary){let G;if(typeof Q.dictionary==="string")G=T1.string2buf(Q.dictionary);else if(V7.call(Q.dictionary)==="[object ArrayBuffer]")G=new Uint8Array(Q.dictionary);else G=Q.dictionary;if(J=I1.deflateSetDictionary(this.strm,G),J!==G8)throw new Error(E0[J]);this._dict_set=!0}},V6=function(W,Q){const J=new p1(Q);if(J.push(W,!0),J.err)throw J.msg||E0[J.err];return J.result},vQ=function(W,Q){return Q=Q||{},Q.raw=!0,V6(W,Q)},gQ=function(W,Q){return Q=Q||{},Q.gzip=!0,V6(W,Q)},W9=function(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0},$9=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1},f1=function(W){this.options=X8.assign({chunkSize:65536,windowBits:15,to:""},W||{});const Q=this.options;if(Q.raw&&Q.windowBits>=0&&Q.windowBits<16){if(Q.windowBits=-Q.windowBits,Q.windowBits===0)Q.windowBits=-15}if(Q.windowBits>=0&&Q.windowBits<16&&!(W&&W.windowBits))Q.windowBits+=32;if(Q.windowBits>15&&Q.windowBits<48){if((Q.windowBits&15)===0)Q.windowBits|=15}this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new G7,this.strm.avail_out=0;let J=B0.inflateInit2(this.strm,Q.windowBits);if(J!==S1)throw new Error(E0[J]);if(this.header=new M9,B0.inflateGetHeader(this.strm,this.header),Q.dictionary){if(typeof Q.dictionary==="string")Q.dictionary=T1.string2buf(Q.dictionary);else if(C7.call(Q.dictionary)==="[object ArrayBuffer]")Q.dictionary=new Uint8Array(Q.dictionary);if(Q.raw){if(J=B0.inflateSetDictionary(this.strm,Q.dictionary),J!==S1)throw new Error(E0[J])}}},q6=function(W,Q){const J=new f1(Q);if(J.push(W),J.err)throw J.msg||E0[J.err];return J.result},O9=function(W,Q){return Q=Q||{},Q.raw=!0,q6(W,Q)};/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */var eW=0,p5=1,tW=2,WJ=3,JJ=258,t8=29,y1=256,w1=y1+1+t8,J1=30,W6=19,f5=2*w1+1,T0=15,v8=16,QJ=7,J6=256,h5=16,b5=17,m5=18,_8=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),J8=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),GJ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),u5=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),VJ=512,M0=new Array((w1+2)*2);V1(M0);var O1=new Array(J1*2);V1(O1);var D1=new Array(VJ);V1(D1);var N1=new Array(JJ-WJ+1);V1(N1);var Q6=new Array(t8);V1(Q6);var Q8=new Array(J1);V1(Q8);var d5,c5,_5,l5=(W)=>{return W<256?D1[W]:D1[256+(W>>>7)]},A1=(W,Q)=>{W.pending_buf[W.pending++]=Q&255,W.pending_buf[W.pending++]=Q>>>8&255},J0=(W,Q,J)=>{if(W.bi_valid>v8-J)W.bi_buf|=Q<<W.bi_valid&65535,A1(W,W.bi_buf),W.bi_buf=Q>>v8-W.bi_valid,W.bi_valid+=J-v8;else W.bi_buf|=Q<<W.bi_valid&65535,W.bi_valid+=J},z0=(W,Q,J)=>{J0(W,J[Q*2],J[Q*2+1])},i5=(W,Q)=>{let J=0;do J|=W&1,W>>>=1,J<<=1;while(--Q>0);return J>>>1},qJ=(W)=>{if(W.bi_valid===16)A1(W,W.bi_buf),W.bi_buf=0,W.bi_valid=0;else if(W.bi_valid>=8)W.pending_buf[W.pending++]=W.bi_buf&255,W.bi_buf>>=8,W.bi_valid-=8},XJ=(W,Q)=>{const{dyn_tree:J,max_code:G}=Q,V=Q.stat_desc.static_tree,q=Q.stat_desc.has_stree,X=Q.stat_desc.extra_bits,Y=Q.stat_desc.extra_base,K=Q.stat_desc.max_length;let P,U,C,F,z,$,A=0;for(F=0;F<=T0;F++)W.bl_count[F]=0;J[W.heap[W.heap_max]*2+1]=0;for(P=W.heap_max+1;P<f5;P++){if(U=W.heap[P],F=J[J[U*2+1]*2+1]+1,F>K)F=K,A++;if(J[U*2+1]=F,U>G)continue;if(W.bl_count[F]++,z=0,U>=Y)z=X[U-Y];if($=J[U*2],W.opt_len+=$*(F+z),q)W.static_len+=$*(V[U*2+1]+z)}if(A===0)return;do{F=K-1;while(W.bl_count[F]===0)F--;W.bl_count[F]--,W.bl_count[F+1]+=2,W.bl_count[K]--,A-=2}while(A>0);for(F=K;F!==0;F--){U=W.bl_count[F];while(U!==0){if(C=W.heap[--P],C>G)continue;if(J[C*2+1]!==F)W.opt_len+=(F-J[C*2+1])*J[C*2],J[C*2+1]=F;U--}}},r5=(W,Q,J)=>{const G=new Array(T0+1);let V=0,q,X;for(q=1;q<=T0;q++)V=V+J[q-1]<<1,G[q]=V;for(X=0;X<=Q;X++){let Y=W[X*2+1];if(Y===0)continue;W[X*2]=i5(G[Y]++,Y)}},YJ=()=>{let W,Q,J,G,V;const q=new Array(T0+1);J=0;for(G=0;G<t8-1;G++){Q6[G]=J;for(W=0;W<1<<_8[G];W++)N1[J++]=G}N1[J-1]=G,V=0;for(G=0;G<16;G++){Q8[G]=V;for(W=0;W<1<<J8[G];W++)D1[V++]=G}V>>=7;for(;G<J1;G++){Q8[G]=V<<7;for(W=0;W<1<<J8[G]-7;W++)D1[256+V++]=G}for(Q=0;Q<=T0;Q++)q[Q]=0;W=0;while(W<=143)M0[W*2+1]=8,W++,q[8]++;while(W<=255)M0[W*2+1]=9,W++,q[9]++;while(W<=279)M0[W*2+1]=7,W++,q[7]++;while(W<=287)M0[W*2+1]=8,W++,q[8]++;r5(M0,w1+1,q);for(W=0;W<J1;W++)O1[W*2+1]=5,O1[W*2]=i5(W,5);d5=new g8(M0,_8,y1+1,w1,T0),c5=new g8(O1,J8,0,J1,T0),_5=new g8(new Array(0),GJ,0,W6,QJ)},o5=(W)=>{let Q;for(Q=0;Q<w1;Q++)W.dyn_ltree[Q*2]=0;for(Q=0;Q<J1;Q++)W.dyn_dtree[Q*2]=0;for(Q=0;Q<W6;Q++)W.bl_tree[Q*2]=0;W.dyn_ltree[J6*2]=1,W.opt_len=W.static_len=0,W.sym_next=W.matches=0},a5=(W)=>{if(W.bi_valid>8)A1(W,W.bi_buf);else if(W.bi_valid>0)W.pending_buf[W.pending++]=W.bi_buf;W.bi_buf=0,W.bi_valid=0},e6=(W,Q,J,G)=>{const V=Q*2,q=J*2;return W[V]<W[q]||W[V]===W[q]&&G[Q]<=G[J]},S8=(W,Q,J)=>{const G=W.heap[J];let V=J<<1;while(V<=W.heap_len){if(V<W.heap_len&&e6(Q,W.heap[V+1],W.heap[V],W.depth))V++;if(e6(Q,G,W.heap[V],W.depth))break;W.heap[J]=W.heap[V],J=V,V<<=1}W.heap[J]=G},t6=(W,Q,J)=>{let G,V,q=0,X,Y;if(W.sym_next!==0)do if(G=W.pending_buf[W.sym_buf+q++]&255,G+=(W.pending_buf[W.sym_buf+q++]&255)<<8,V=W.pending_buf[W.sym_buf+q++],G===0)z0(W,V,Q);else{if(X=N1[V],z0(W,X+y1+1,Q),Y=_8[X],Y!==0)V-=Q6[X],J0(W,V,Y);if(G--,X=l5(G),z0(W,X,J),Y=J8[X],Y!==0)G-=Q8[X],J0(W,G,Y)}while(q<W.sym_next);z0(W,J6,Q)},l8=(W,Q)=>{const J=Q.dyn_tree,G=Q.stat_desc.static_tree,V=Q.stat_desc.has_stree,q=Q.stat_desc.elems;let X,Y,K=-1,P;W.heap_len=0,W.heap_max=f5;for(X=0;X<q;X++)if(J[X*2]!==0)W.heap[++W.heap_len]=K=X,W.depth[X]=0;else J[X*2+1]=0;while(W.heap_len<2)if(P=W.heap[++W.heap_len]=K<2?++K:0,J[P*2]=1,W.depth[P]=0,W.opt_len--,V)W.static_len-=G[P*2+1];Q.max_code=K;for(X=W.heap_len>>1;X>=1;X--)S8(W,J,X);P=q;do X=W.heap[1],W.heap[1]=W.heap[W.heap_len--],S8(W,J,1),Y=W.heap[1],W.heap[--W.heap_max]=X,W.heap[--W.heap_max]=Y,J[P*2]=J[X*2]+J[Y*2],W.depth[P]=(W.depth[X]>=W.depth[Y]?W.depth[X]:W.depth[Y])+1,J[X*2+1]=J[Y*2+1]=P,W.heap[1]=P++,S8(W,J,1);while(W.heap_len>=2);W.heap[--W.heap_max]=W.heap[1],XJ(W,Q),r5(J,K,W.bl_count)},W5=(W,Q,J)=>{let G,V=-1,q,X=Q[1],Y=0,K=7,P=4;if(X===0)K=138,P=3;Q[(J+1)*2+1]=65535;for(G=0;G<=J;G++){if(q=X,X=Q[(G+1)*2+1],++Y<K&&q===X)continue;else if(Y<P)W.bl_tree[q*2]+=Y;else if(q!==0){if(q!==V)W.bl_tree[q*2]++;W.bl_tree[h5*2]++}else if(Y<=10)W.bl_tree[b5*2]++;else W.bl_tree[m5*2]++;if(Y=0,V=q,X===0)K=138,P=3;else if(q===X)K=6,P=3;else K=7,P=4}},J5=(W,Q,J)=>{let G,V=-1,q,X=Q[1],Y=0,K=7,P=4;if(X===0)K=138,P=3;for(G=0;G<=J;G++){if(q=X,X=Q[(G+1)*2+1],++Y<K&&q===X)continue;else if(Y<P)do z0(W,q,W.bl_tree);while(--Y!==0);else if(q!==0){if(q!==V)z0(W,q,W.bl_tree),Y--;z0(W,h5,W.bl_tree),J0(W,Y-3,2)}else if(Y<=10)z0(W,b5,W.bl_tree),J0(W,Y-3,3);else z0(W,m5,W.bl_tree),J0(W,Y-11,7);if(Y=0,V=q,X===0)K=138,P=3;else if(q===X)K=6,P=3;else K=7,P=4}},PJ=(W)=>{let Q;W5(W,W.dyn_ltree,W.l_desc.max_code),W5(W,W.dyn_dtree,W.d_desc.max_code),l8(W,W.bl_desc);for(Q=W6-1;Q>=3;Q--)if(W.bl_tree[u5[Q]*2+1]!==0)break;return W.opt_len+=3*(Q+1)+5+5+4,Q},UJ=(W,Q,J,G)=>{let V;J0(W,Q-257,5),J0(W,J-1,5),J0(W,G-4,4);for(V=0;V<G;V++)J0(W,W.bl_tree[u5[V]*2+1],3);J5(W,W.dyn_ltree,Q-1),J5(W,W.dyn_dtree,J-1)},FJ=(W)=>{let Q=4093624447,J;for(J=0;J<=31;J++,Q>>>=1)if(Q&1&&W.dyn_ltree[J*2]!==0)return 0;if(W.dyn_ltree[18]!==0||W.dyn_ltree[20]!==0||W.dyn_ltree[26]!==0)return 1;for(J=32;J<y1;J++)if(W.dyn_ltree[J*2]!==0)return 1;return 0},Q5=!1,KJ=(W)=>{if(!Q5)YJ(),Q5=!0;W.l_desc=new T8(W.dyn_ltree,d5),W.d_desc=new T8(W.dyn_dtree,c5),W.bl_desc=new T8(W.bl_tree,_5),W.bi_buf=0,W.bi_valid=0,o5(W)},n5=(W,Q,J,G)=>{if(J0(W,(eW<<1)+(G?1:0),3),a5(W),A1(W,J),A1(W,~J),J)W.pending_buf.set(W.window.subarray(Q,Q+J),W.pending);W.pending+=J},zJ=(W)=>{J0(W,p5<<1,3),z0(W,J6,M0),qJ(W)},ZJ=(W,Q,J,G)=>{let V,q,X=0;if(W.level>0){if(W.strm.data_type===2)W.strm.data_type=FJ(W);if(l8(W,W.l_desc),l8(W,W.d_desc),X=PJ(W),V=W.opt_len+3+7>>>3,q=W.static_len+3+7>>>3,q<=V)V=q}else V=q=J+5;if(J+4<=V&&Q!==-1)n5(W,Q,J,G);else if(W.strategy===4||q===V)J0(W,(p5<<1)+(G?1:0),3),t6(W,M0,O1);else J0(W,(tW<<1)+(G?1:0),3),UJ(W,W.l_desc.max_code+1,W.d_desc.max_code+1,X+1),t6(W,W.dyn_ltree,W.dyn_dtree);if(o5(W),G)a5(W)},kJ=(W,Q,J)=>{if(W.pending_buf[W.sym_buf+W.sym_next++]=Q,W.pending_buf[W.sym_buf+W.sym_next++]=Q>>8,W.pending_buf[W.sym_buf+W.sym_next++]=J,Q===0)W.dyn_ltree[J*2]++;else W.matches++,Q--,W.dyn_ltree[(N1[J]+y1+1)*2]++,W.dyn_dtree[l5(Q)*2]++;return W.sym_next===W.sym_end},HJ=KJ,CJ=n5,$J=ZJ,MJ=kJ,BJ=zJ,LJ={_tr_init:HJ,_tr_stored_block:CJ,_tr_flush_block:$J,_tr_tally:MJ,_tr_align:BJ},jJ=(W,Q,J,G)=>{let V=W&65535|0,q=W>>>16&65535|0,X=0;while(J!==0){X=J>2000?2000:J,J-=X;do V=V+Q[G++]|0,q=q+V|0;while(--X);V%=65521,q%=65521}return V|q<<16|0},v1=jJ,RJ=()=>{let W,Q=[];for(var J=0;J<256;J++){W=J;for(var G=0;G<8;G++)W=W&1?3988292384^W>>>1:W>>>1;Q[J]=W}return Q},OJ=new Uint32Array(RJ()),IJ=(W,Q,J,G)=>{const V=OJ,q=G+J;W^=-1;for(let X=G;X<q;X++)W=W>>>8^V[(W^Q[X])&255];return W^-1},a=IJ,E0={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},h0={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},{_tr_init:xJ,_tr_stored_block:i8,_tr_flush_block:wJ,_tr_tally:w0,_tr_align:DJ}=LJ,{Z_NO_FLUSH:D0,Z_PARTIAL_FLUSH:NJ,Z_FULL_FLUSH:AJ,Z_FINISH:X0,Z_BLOCK:G5,Z_OK:s,Z_STREAM_END:V5,Z_STREAM_ERROR:Z0,Z_DATA_ERROR:vJ,Z_BUF_ERROR:y8,Z_DEFAULT_COMPRESSION:gJ,Z_FILTERED:TJ,Z_HUFFMAN_ONLY:n1,Z_RLE:SJ,Z_FIXED:yJ,Z_DEFAULT_STRATEGY:EJ,Z_UNKNOWN:pJ,Z_DEFLATED:q8}=h0,fJ=9,hJ=15,bJ=8,mJ=29,uJ=256,r8=uJ+1+mJ,dJ=30,cJ=19,_J=2*r8+1,lJ=15,u=3,x0=258,k0=x0+u+1,iJ=32,Q1=42,G6=57,o8=69,a8=73,n8=91,s8=103,S0=113,j1=666,t=1,q1=2,p0=3,X1=4,rJ=3,y0=(W,Q)=>{return W.msg=E0[Q],Q},q5=(W)=>{return W*2-(W>4?9:0)},I0=(W)=>{let Q=W.length;while(--Q>=0)W[Q]=0},oJ=(W)=>{let Q,J,G,V=W.w_size;Q=W.hash_size,G=Q;do J=W.head[--G],W.head[G]=J>=V?J-V:0;while(--Q);Q=V,G=Q;do J=W.prev[--G],W.prev[G]=J>=V?J-V:0;while(--Q)},aJ=(W,Q,J)=>(Q<<W.hash_shift^J)&W.hash_mask,N0=aJ,G0=(W)=>{const Q=W.state;let J=Q.pending;if(J>W.avail_out)J=W.avail_out;if(J===0)return;if(W.output.set(Q.pending_buf.subarray(Q.pending_out,Q.pending_out+J),W.next_out),W.next_out+=J,Q.pending_out+=J,W.total_out+=J,W.avail_out-=J,Q.pending-=J,Q.pending===0)Q.pending_out=0},V0=(W,Q)=>{wJ(W,W.block_start>=0?W.block_start:-1,W.strstart-W.block_start,Q),W.block_start=W.strstart,G0(W.strm)},_=(W,Q)=>{W.pending_buf[W.pending++]=Q},L1=(W,Q)=>{W.pending_buf[W.pending++]=Q>>>8&255,W.pending_buf[W.pending++]=Q&255},e8=(W,Q,J,G)=>{let V=W.avail_in;if(V>G)V=G;if(V===0)return 0;if(W.avail_in-=V,Q.set(W.input.subarray(W.next_in,W.next_in+V),J),W.state.wrap===1)W.adler=v1(W.adler,Q,V,J);else if(W.state.wrap===2)W.adler=a(W.adler,Q,V,J);return W.next_in+=V,W.total_in+=V,V},s5=(W,Q)=>{let{max_chain_length:J,strstart:G}=W,V,q,X=W.prev_length,Y=W.nice_match;const K=W.strstart>W.w_size-k0?W.strstart-(W.w_size-k0):0,P=W.window,U=W.w_mask,C=W.prev,F=W.strstart+x0;let z=P[G+X-1],$=P[G+X];if(W.prev_length>=W.good_match)J>>=2;if(Y>W.lookahead)Y=W.lookahead;do{if(V=Q,P[V+X]!==$||P[V+X-1]!==z||P[V]!==P[G]||P[++V]!==P[G+1])continue;G+=2,V++;do;while(P[++G]===P[++V]&&P[++G]===P[++V]&&P[++G]===P[++V]&&P[++G]===P[++V]&&P[++G]===P[++V]&&P[++G]===P[++V]&&P[++G]===P[++V]&&P[++G]===P[++V]&&G<F);if(q=x0-(F-G),G=F-x0,q>X){if(W.match_start=Q,X=q,q>=Y)break;z=P[G+X-1],$=P[G+X]}}while((Q=C[Q&U])>K&&--J!==0);if(X<=W.lookahead)return X;return W.lookahead},G1=(W)=>{const Q=W.w_size;let J,G,V;do{if(G=W.window_size-W.lookahead-W.strstart,W.strstart>=Q+(Q-k0)){if(W.window.set(W.window.subarray(Q,Q+Q-G),0),W.match_start-=Q,W.strstart-=Q,W.block_start-=Q,W.insert>W.strstart)W.insert=W.strstart;oJ(W),G+=Q}if(W.strm.avail_in===0)break;if(J=e8(W.strm,W.window,W.strstart+W.lookahead,G),W.lookahead+=J,W.lookahead+W.insert>=u){V=W.strstart-W.insert,W.ins_h=W.window[V],W.ins_h=N0(W,W.ins_h,W.window[V+1]);while(W.insert)if(W.ins_h=N0(W,W.ins_h,W.window[V+u-1]),W.prev[V&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=V,V++,W.insert--,W.lookahead+W.insert<u)break}}while(W.lookahead<k0&&W.strm.avail_in!==0)},e5=(W,Q)=>{let J=W.pending_buf_size-5>W.w_size?W.w_size:W.pending_buf_size-5,G,V,q,X=0,Y=W.strm.avail_in;do{if(G=65535,q=W.bi_valid+42>>3,W.strm.avail_out<q)break;if(q=W.strm.avail_out-q,V=W.strstart-W.block_start,G>V+W.strm.avail_in)G=V+W.strm.avail_in;if(G>q)G=q;if(G<J&&(G===0&&Q!==X0||Q===D0||G!==V+W.strm.avail_in))break;if(X=Q===X0&&G===V+W.strm.avail_in?1:0,i8(W,0,0,X),W.pending_buf[W.pending-4]=G,W.pending_buf[W.pending-3]=G>>8,W.pending_buf[W.pending-2]=~G,W.pending_buf[W.pending-1]=~G>>8,G0(W.strm),V){if(V>G)V=G;W.strm.output.set(W.window.subarray(W.block_start,W.block_start+V),W.strm.next_out),W.strm.next_out+=V,W.strm.avail_out-=V,W.strm.total_out+=V,W.block_start+=V,G-=V}if(G)e8(W.strm,W.strm.output,W.strm.next_out,G),W.strm.next_out+=G,W.strm.avail_out-=G,W.strm.total_out+=G}while(X===0);if(Y-=W.strm.avail_in,Y){if(Y>=W.w_size)W.matches=2,W.window.set(W.strm.input.subarray(W.strm.next_in-W.w_size,W.strm.next_in),0),W.strstart=W.w_size,W.insert=W.strstart;else{if(W.window_size-W.strstart<=Y){if(W.strstart-=W.w_size,W.window.set(W.window.subarray(W.w_size,W.w_size+W.strstart),0),W.matches<2)W.matches++;if(W.insert>W.strstart)W.insert=W.strstart}W.window.set(W.strm.input.subarray(W.strm.next_in-Y,W.strm.next_in),W.strstart),W.strstart+=Y,W.insert+=Y>W.w_size-W.insert?W.w_size-W.insert:Y}W.block_start=W.strstart}if(W.high_water<W.strstart)W.high_water=W.strstart;if(X)return X1;if(Q!==D0&&Q!==X0&&W.strm.avail_in===0&&W.strstart===W.block_start)return q1;if(q=W.window_size-W.strstart,W.strm.avail_in>q&&W.block_start>=W.w_size){if(W.block_start-=W.w_size,W.strstart-=W.w_size,W.window.set(W.window.subarray(W.w_size,W.w_size+W.strstart),0),W.matches<2)W.matches++;if(q+=W.w_size,W.insert>W.strstart)W.insert=W.strstart}if(q>W.strm.avail_in)q=W.strm.avail_in;if(q)e8(W.strm,W.window,W.strstart,q),W.strstart+=q,W.insert+=q>W.w_size-W.insert?W.w_size-W.insert:q;if(W.high_water<W.strstart)W.high_water=W.strstart;if(q=W.bi_valid+42>>3,q=W.pending_buf_size-q>65535?65535:W.pending_buf_size-q,J=q>W.w_size?W.w_size:q,V=W.strstart-W.block_start,V>=J||(V||Q===X0)&&Q!==D0&&W.strm.avail_in===0&&V<=q)G=V>q?q:V,X=Q===X0&&W.strm.avail_in===0&&G===V?1:0,i8(W,W.block_start,G,X),W.block_start+=G,G0(W.strm);return X?p0:t},E8=(W,Q)=>{let J,G;for(;;){if(W.lookahead<k0){if(G1(W),W.lookahead<k0&&Q===D0)return t;if(W.lookahead===0)break}if(J=0,W.lookahead>=u)W.ins_h=N0(W,W.ins_h,W.window[W.strstart+u-1]),J=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;if(J!==0&&W.strstart-J<=W.w_size-k0)W.match_length=s5(W,J);if(W.match_length>=u)if(G=w0(W,W.strstart-W.match_start,W.match_length-u),W.lookahead-=W.match_length,W.match_length<=W.max_lazy_match&&W.lookahead>=u){W.match_length--;do W.strstart++,W.ins_h=N0(W,W.ins_h,W.window[W.strstart+u-1]),J=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;while(--W.match_length!==0);W.strstart++}else W.strstart+=W.match_length,W.match_length=0,W.ins_h=W.window[W.strstart],W.ins_h=N0(W,W.ins_h,W.window[W.strstart+1]);else G=w0(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++;if(G){if(V0(W,!1),W.strm.avail_out===0)return t}}if(W.insert=W.strstart<u-1?W.strstart:u-1,Q===X0){if(V0(W,!0),W.strm.avail_out===0)return p0;return X1}if(W.sym_next){if(V0(W,!1),W.strm.avail_out===0)return t}return q1},t0=(W,Q)=>{let J,G,V;for(;;){if(W.lookahead<k0){if(G1(W),W.lookahead<k0&&Q===D0)return t;if(W.lookahead===0)break}if(J=0,W.lookahead>=u)W.ins_h=N0(W,W.ins_h,W.window[W.strstart+u-1]),J=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;if(W.prev_length=W.match_length,W.prev_match=W.match_start,W.match_length=u-1,J!==0&&W.prev_length<W.max_lazy_match&&W.strstart-J<=W.w_size-k0){if(W.match_length=s5(W,J),W.match_length<=5&&(W.strategy===TJ||W.match_length===u&&W.strstart-W.match_start>4096))W.match_length=u-1}if(W.prev_length>=u&&W.match_length<=W.prev_length){V=W.strstart+W.lookahead-u,G=w0(W,W.strstart-1-W.prev_match,W.prev_length-u),W.lookahead-=W.prev_length-1,W.prev_length-=2;do if(++W.strstart<=V)W.ins_h=N0(W,W.ins_h,W.window[W.strstart+u-1]),J=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;while(--W.prev_length!==0);if(W.match_available=0,W.match_length=u-1,W.strstart++,G){if(V0(W,!1),W.strm.avail_out===0)return t}}else if(W.match_available){if(G=w0(W,0,W.window[W.strstart-1]),G)V0(W,!1);if(W.strstart++,W.lookahead--,W.strm.avail_out===0)return t}else W.match_available=1,W.strstart++,W.lookahead--}if(W.match_available)G=w0(W,0,W.window[W.strstart-1]),W.match_available=0;if(W.insert=W.strstart<u-1?W.strstart:u-1,Q===X0){if(V0(W,!0),W.strm.avail_out===0)return p0;return X1}if(W.sym_next){if(V0(W,!1),W.strm.avail_out===0)return t}return q1},nJ=(W,Q)=>{let J,G,V,q;const X=W.window;for(;;){if(W.lookahead<=x0){if(G1(W),W.lookahead<=x0&&Q===D0)return t;if(W.lookahead===0)break}if(W.match_length=0,W.lookahead>=u&&W.strstart>0){if(V=W.strstart-1,G=X[V],G===X[++V]&&G===X[++V]&&G===X[++V]){q=W.strstart+x0;do;while(G===X[++V]&&G===X[++V]&&G===X[++V]&&G===X[++V]&&G===X[++V]&&G===X[++V]&&G===X[++V]&&G===X[++V]&&V<q);if(W.match_length=x0-(q-V),W.match_length>W.lookahead)W.match_length=W.lookahead}}if(W.match_length>=u)J=w0(W,1,W.match_length-u),W.lookahead-=W.match_length,W.strstart+=W.match_length,W.match_length=0;else J=w0(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++;if(J){if(V0(W,!1),W.strm.avail_out===0)return t}}if(W.insert=0,Q===X0){if(V0(W,!0),W.strm.avail_out===0)return p0;return X1}if(W.sym_next){if(V0(W,!1),W.strm.avail_out===0)return t}return q1},sJ=(W,Q)=>{let J;for(;;){if(W.lookahead===0){if(G1(W),W.lookahead===0){if(Q===D0)return t;break}}if(W.match_length=0,J=w0(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++,J){if(V0(W,!1),W.strm.avail_out===0)return t}}if(W.insert=0,Q===X0){if(V0(W,!0),W.strm.avail_out===0)return p0;return X1}if(W.sym_next){if(V0(W,!1),W.strm.avail_out===0)return t}return q1},R1=[new K0(0,0,0,0,e5),new K0(4,4,8,4,E8),new K0(4,5,16,8,E8),new K0(4,6,32,32,E8),new K0(4,4,16,16,t0),new K0(8,16,32,32,t0),new K0(8,16,128,128,t0),new K0(8,32,128,256,t0),new K0(32,128,258,1024,t0),new K0(32,258,258,4096,t0)],eJ=(W)=>{W.window_size=2*W.w_size,I0(W.head),W.max_lazy_match=R1[W.level].max_lazy,W.good_match=R1[W.level].good_length,W.nice_match=R1[W.level].nice_length,W.max_chain_length=R1[W.level].max_chain,W.strstart=0,W.block_start=0,W.lookahead=0,W.insert=0,W.match_length=W.prev_length=u-1,W.match_available=0,W.ins_h=0},E1=(W)=>{if(!W)return 1;const Q=W.state;if(!Q||Q.strm!==W||Q.status!==Q1&&Q.status!==G6&&Q.status!==o8&&Q.status!==a8&&Q.status!==n8&&Q.status!==s8&&Q.status!==S0&&Q.status!==j1)return 1;return 0},t5=(W)=>{if(E1(W))return y0(W,Z0);W.total_in=W.total_out=0,W.data_type=pJ;const Q=W.state;if(Q.pending=0,Q.pending_out=0,Q.wrap<0)Q.wrap=-Q.wrap;return Q.status=Q.wrap===2?G6:Q.wrap?Q1:S0,W.adler=Q.wrap===2?0:1,Q.last_flush=-2,xJ(Q),s},W7=(W)=>{const Q=t5(W);if(Q===s)eJ(W.state);return Q},WQ=(W,Q)=>{if(E1(W)||W.state.wrap!==2)return Z0;return W.state.gzhead=Q,s},J7=(W,Q,J,G,V,q)=>{if(!W)return Z0;let X=1;if(Q===gJ)Q=6;if(G<0)X=0,G=-G;else if(G>15)X=2,G-=16;if(V<1||V>fJ||J!==q8||G<8||G>15||Q<0||Q>9||q<0||q>yJ||G===8&&X!==1)return y0(W,Z0);if(G===8)G=9;const Y=new tJ;return W.state=Y,Y.strm=W,Y.status=Q1,Y.wrap=X,Y.gzhead=null,Y.w_bits=G,Y.w_size=1<<Y.w_bits,Y.w_mask=Y.w_size-1,Y.hash_bits=V+7,Y.hash_size=1<<Y.hash_bits,Y.hash_mask=Y.hash_size-1,Y.hash_shift=~~((Y.hash_bits+u-1)/u),Y.window=new Uint8Array(Y.w_size*2),Y.head=new Uint16Array(Y.hash_size),Y.prev=new Uint16Array(Y.w_size),Y.lit_bufsize=1<<V+6,Y.pending_buf_size=Y.lit_bufsize*4,Y.pending_buf=new Uint8Array(Y.pending_buf_size),Y.sym_buf=Y.lit_bufsize,Y.sym_end=(Y.lit_bufsize-1)*3,Y.level=Q,Y.strategy=q,Y.method=J,W7(W)},JQ=(W,Q)=>{return J7(W,Q,q8,hJ,bJ,EJ)},QQ=(W,Q)=>{if(E1(W)||Q>G5||Q<0)return W?y0(W,Z0):Z0;const J=W.state;if(!W.output||W.avail_in!==0&&!W.input||J.status===j1&&Q!==X0)return y0(W,W.avail_out===0?y8:Z0);const G=J.last_flush;if(J.last_flush=Q,J.pending!==0){if(G0(W),W.avail_out===0)return J.last_flush=-1,s}else if(W.avail_in===0&&q5(Q)<=q5(G)&&Q!==X0)return y0(W,y8);if(J.status===j1&&W.avail_in!==0)return y0(W,y8);if(J.status===Q1&&J.wrap===0)J.status=S0;if(J.status===Q1){let V=q8+(J.w_bits-8<<4)<<8,q=-1;if(J.strategy>=n1||J.level<2)q=0;else if(J.level<6)q=1;else if(J.level===6)q=2;else q=3;if(V|=q<<6,J.strstart!==0)V|=iJ;if(V+=31-V%31,L1(J,V),J.strstart!==0)L1(J,W.adler>>>16),L1(J,W.adler&65535);if(W.adler=1,J.status=S0,G0(W),J.pending!==0)return J.last_flush=-1,s}if(J.status===G6)if(W.adler=0,_(J,31),_(J,139),_(J,8),!J.gzhead){if(_(J,0),_(J,0),_(J,0),_(J,0),_(J,0),_(J,J.level===9?2:J.strategy>=n1||J.level<2?4:0),_(J,rJ),J.status=S0,G0(W),J.pending!==0)return J.last_flush=-1,s}else{if(_(J,(J.gzhead.text?1:0)+(J.gzhead.hcrc?2:0)+(!J.gzhead.extra?0:4)+(!J.gzhead.name?0:8)+(!J.gzhead.comment?0:16)),_(J,J.gzhead.time&255),_(J,J.gzhead.time>>8&255),_(J,J.gzhead.time>>16&255),_(J,J.gzhead.time>>24&255),_(J,J.level===9?2:J.strategy>=n1||J.level<2?4:0),_(J,J.gzhead.os&255),J.gzhead.extra&&J.gzhead.extra.length)_(J,J.gzhead.extra.length&255),_(J,J.gzhead.extra.length>>8&255);if(J.gzhead.hcrc)W.adler=a(W.adler,J.pending_buf,J.pending,0);J.gzindex=0,J.status=o8}if(J.status===o8){if(J.gzhead.extra){let V=J.pending,q=(J.gzhead.extra.length&65535)-J.gzindex;while(J.pending+q>J.pending_buf_size){let Y=J.pending_buf_size-J.pending;if(J.pending_buf.set(J.gzhead.extra.subarray(J.gzindex,J.gzindex+Y),J.pending),J.pending=J.pending_buf_size,J.gzhead.hcrc&&J.pending>V)W.adler=a(W.adler,J.pending_buf,J.pending-V,V);if(J.gzindex+=Y,G0(W),J.pending!==0)return J.last_flush=-1,s;V=0,q-=Y}let X=new Uint8Array(J.gzhead.extra);if(J.pending_buf.set(X.subarray(J.gzindex,J.gzindex+q),J.pending),J.pending+=q,J.gzhead.hcrc&&J.pending>V)W.adler=a(W.adler,J.pending_buf,J.pending-V,V);J.gzindex=0}J.status=a8}if(J.status===a8){if(J.gzhead.name){let V=J.pending,q;do{if(J.pending===J.pending_buf_size){if(J.gzhead.hcrc&&J.pending>V)W.adler=a(W.adler,J.pending_buf,J.pending-V,V);if(G0(W),J.pending!==0)return J.last_flush=-1,s;V=0}if(J.gzindex<J.gzhead.name.length)q=J.gzhead.name.charCodeAt(J.gzindex++)&255;else q=0;_(J,q)}while(q!==0);if(J.gzhead.hcrc&&J.pending>V)W.adler=a(W.adler,J.pending_buf,J.pending-V,V);J.gzindex=0}J.status=n8}if(J.status===n8){if(J.gzhead.comment){let V=J.pending,q;do{if(J.pending===J.pending_buf_size){if(J.gzhead.hcrc&&J.pending>V)W.adler=a(W.adler,J.pending_buf,J.pending-V,V);if(G0(W),J.pending!==0)return J.last_flush=-1,s;V=0}if(J.gzindex<J.gzhead.comment.length)q=J.gzhead.comment.charCodeAt(J.gzindex++)&255;else q=0;_(J,q)}while(q!==0);if(J.gzhead.hcrc&&J.pending>V)W.adler=a(W.adler,J.pending_buf,J.pending-V,V)}J.status=s8}if(J.status===s8){if(J.gzhead.hcrc){if(J.pending+2>J.pending_buf_size){if(G0(W),J.pending!==0)return J.last_flush=-1,s}_(J,W.adler&255),_(J,W.adler>>8&255),W.adler=0}if(J.status=S0,G0(W),J.pending!==0)return J.last_flush=-1,s}if(W.avail_in!==0||J.lookahead!==0||Q!==D0&&J.status!==j1){let V=J.level===0?e5(J,Q):J.strategy===n1?sJ(J,Q):J.strategy===SJ?nJ(J,Q):R1[J.level].func(J,Q);if(V===p0||V===X1)J.status=j1;if(V===t||V===p0){if(W.avail_out===0)J.last_flush=-1;return s}if(V===q1){if(Q===NJ)DJ(J);else if(Q!==G5){if(i8(J,0,0,!1),Q===AJ){if(I0(J.head),J.lookahead===0)J.strstart=0,J.block_start=0,J.insert=0}}if(G0(W),W.avail_out===0)return J.last_flush=-1,s}}if(Q!==X0)return s;if(J.wrap<=0)return V5;if(J.wrap===2)_(J,W.adler&255),_(J,W.adler>>8&255),_(J,W.adler>>16&255),_(J,W.adler>>24&255),_(J,W.total_in&255),_(J,W.total_in>>8&255),_(J,W.total_in>>16&255),_(J,W.total_in>>24&255);else L1(J,W.adler>>>16),L1(J,W.adler&65535);if(G0(W),J.wrap>0)J.wrap=-J.wrap;return J.pending!==0?s:V5},GQ=(W)=>{if(E1(W))return Z0;const Q=W.state.status;return W.state=null,Q===S0?y0(W,vJ):s},VQ=(W,Q)=>{let J=Q.length;if(E1(W))return Z0;const G=W.state,V=G.wrap;if(V===2||V===1&&G.status!==Q1||G.lookahead)return Z0;if(V===1)W.adler=v1(W.adler,Q,J,0);if(G.wrap=0,J>=G.w_size){if(V===0)I0(G.head),G.strstart=0,G.block_start=0,G.insert=0;let K=new Uint8Array(G.w_size);K.set(Q.subarray(J-G.w_size,J),0),Q=K,J=G.w_size}const{avail_in:q,next_in:X,input:Y}=W;W.avail_in=J,W.next_in=0,W.input=Q,G1(G);while(G.lookahead>=u){let K=G.strstart,P=G.lookahead-(u-1);do G.ins_h=N0(G,G.ins_h,G.window[K+u-1]),G.prev[K&G.w_mask]=G.head[G.ins_h],G.head[G.ins_h]=K,K++;while(--P);G.strstart=K,G.lookahead=u-1,G1(G)}return G.strstart+=G.lookahead,G.block_start=G.strstart,G.insert=G.lookahead,G.lookahead=0,G.match_length=G.prev_length=u-1,G.match_available=0,W.next_in=X,W.input=Y,W.avail_in=q,G.wrap=V,s},qQ=JQ,XQ=J7,YQ=W7,PQ=t5,UQ=WQ,FQ=QQ,KQ=GQ,zQ=VQ,ZQ="pako deflate (from Nodeca project)",I1={deflateInit:qQ,deflateInit2:XQ,deflateReset:YQ,deflateResetKeep:PQ,deflateSetHeader:UQ,deflate:FQ,deflateEnd:KQ,deflateSetDictionary:zQ,deflateInfo:ZQ},kQ=(W,Q)=>{return Object.prototype.hasOwnProperty.call(W,Q)},HQ=function(W){const Q=Array.prototype.slice.call(arguments,1);while(Q.length){const J=Q.shift();if(!J)continue;if(typeof J!=="object")throw new TypeError(J+"must be non-object");for(let G in J)if(kQ(J,G))W[G]=J[G]}return W},CQ=(W)=>{let Q=0;for(let G=0,V=W.length;G<V;G++)Q+=W[G].length;const J=new Uint8Array(Q);for(let G=0,V=0,q=W.length;G<q;G++){let X=W[G];J.set(X,V),V+=X.length}return J},X8={assign:HQ,flattenChunks:CQ},Q7=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(W){Q7=!1}var g1=new Uint8Array(256);for(let W=0;W<256;W++)g1[W]=W>=252?6:W>=248?5:W>=240?4:W>=224?3:W>=192?2:1;g1[254]=g1[254]=1;var $Q=(W)=>{if(typeof TextEncoder==="function"&&TextEncoder.prototype.encode)return(new TextEncoder()).encode(W);let Q,J,G,V,q,X=W.length,Y=0;for(V=0;V<X;V++){if(J=W.charCodeAt(V),(J&64512)===55296&&V+1<X){if(G=W.charCodeAt(V+1),(G&64512)===56320)J=65536+(J-55296<<10)+(G-56320),V++}Y+=J<128?1:J<2048?2:J<65536?3:4}Q=new Uint8Array(Y);for(q=0,V=0;q<Y;V++){if(J=W.charCodeAt(V),(J&64512)===55296&&V+1<X){if(G=W.charCodeAt(V+1),(G&64512)===56320)J=65536+(J-55296<<10)+(G-56320),V++}if(J<128)Q[q++]=J;else if(J<2048)Q[q++]=192|J>>>6,Q[q++]=128|J&63;else if(J<65536)Q[q++]=224|J>>>12,Q[q++]=128|J>>>6&63,Q[q++]=128|J&63;else Q[q++]=240|J>>>18,Q[q++]=128|J>>>12&63,Q[q++]=128|J>>>6&63,Q[q++]=128|J&63}return Q},MQ=(W,Q)=>{if(Q<65534){if(W.subarray&&Q7)return String.fromCharCode.apply(null,W.length===Q?W:W.subarray(0,Q))}let J="";for(let G=0;G<Q;G++)J+=String.fromCharCode(W[G]);return J},BQ=(W,Q)=>{const J=Q||W.length;if(typeof TextDecoder==="function"&&TextDecoder.prototype.decode)return(new TextDecoder()).decode(W.subarray(0,Q));let G,V;const q=new Array(J*2);for(V=0,G=0;G<J;){let X=W[G++];if(X<128){q[V++]=X;continue}let Y=g1[X];if(Y>4){q[V++]=65533,G+=Y-1;continue}X&=Y===2?31:Y===3?15:7;while(Y>1&&G<J)X=X<<6|W[G++]&63,Y--;if(Y>1){q[V++]=65533;continue}if(X<65536)q[V++]=X;else X-=65536,q[V++]=55296|X>>10&1023,q[V++]=56320|X&1023}return MQ(q,V)},LQ=(W,Q)=>{if(Q=Q||W.length,Q>W.length)Q=W.length;let J=Q-1;while(J>=0&&(W[J]&192)===128)J--;if(J<0)return Q;if(J===0)return Q;return J+g1[W[J]]>Q?J:Q},T1={string2buf:$Q,buf2string:BQ,utf8border:LQ},G7=jQ,V7=Object.prototype.toString,{Z_NO_FLUSH:RQ,Z_SYNC_FLUSH:OQ,Z_FULL_FLUSH:IQ,Z_FINISH:xQ,Z_OK:G8,Z_STREAM_END:wQ,Z_DEFAULT_COMPRESSION:DQ,Z_DEFAULT_STRATEGY:NQ,Z_DEFLATED:AQ}=h0;p1.prototype.push=function(W,Q){const J=this.strm,G=this.options.chunkSize;let V,q;if(this.ended)return!1;if(Q===~~Q)q=Q;else q=Q===!0?xQ:RQ;if(typeof W==="string")J.input=T1.string2buf(W);else if(V7.call(W)==="[object ArrayBuffer]")J.input=new Uint8Array(W);else J.input=W;J.next_in=0,J.avail_in=J.input.length;for(;;){if(J.avail_out===0)J.output=new Uint8Array(G),J.next_out=0,J.avail_out=G;if((q===OQ||q===IQ)&&J.avail_out<=6){this.onData(J.output.subarray(0,J.next_out)),J.avail_out=0;continue}if(V=I1.deflate(J,q),V===wQ){if(J.next_out>0)this.onData(J.output.subarray(0,J.next_out));return V=I1.deflateEnd(this.strm),this.onEnd(V),this.ended=!0,V===G8}if(J.avail_out===0){this.onData(J.output);continue}if(q>0&&J.next_out>0){this.onData(J.output.subarray(0,J.next_out)),J.avail_out=0;continue}if(J.avail_in===0)break}return!0};p1.prototype.onData=function(W){this.chunks.push(W)};p1.prototype.onEnd=function(W){if(W===G8)this.result=X8.flattenChunks(this.chunks);this.chunks=[],this.err=W,this.msg=this.strm.msg};var TQ=p1,SQ=V6,yQ=vQ,EQ=gQ,pQ=h0,fQ={Deflate:TQ,deflate:SQ,deflateRaw:yQ,gzip:EQ,constants:pQ},s1=16209,hQ=16191,bQ=function W(Q,J){let G,V,q,X,Y,K,P,U,C,F,z,$,A,g,T,S,E,I,f,d,R,L,w,k;const Z=Q.state;G=Q.next_in,w=Q.input,V=G+(Q.avail_in-5),q=Q.next_out,k=Q.output,X=q-(J-Q.avail_out),Y=q+(Q.avail_out-257),K=Z.dmax,P=Z.wsize,U=Z.whave,C=Z.wnext,F=Z.window,z=Z.hold,$=Z.bits,A=Z.lencode,g=Z.distcode,T=(1<<Z.lenbits)-1,S=(1<<Z.distbits)-1;W:do{if($<15)z+=w[G++]<<$,$+=8,z+=w[G++]<<$,$+=8;E=A[z&T];J:for(;;){if(I=E>>>24,z>>>=I,$-=I,I=E>>>16&255,I===0)k[q++]=E&65535;else if(I&16){if(f=E&65535,I&=15,I){if($<I)z+=w[G++]<<$,$+=8;f+=z&(1<<I)-1,z>>>=I,$-=I}if($<15)z+=w[G++]<<$,$+=8,z+=w[G++]<<$,$+=8;E=g[z&S];Q:for(;;){if(I=E>>>24,z>>>=I,$-=I,I=E>>>16&255,I&16){if(d=E&65535,I&=15,$<I){if(z+=w[G++]<<$,$+=8,$<I)z+=w[G++]<<$,$+=8}if(d+=z&(1<<I)-1,d>K){Q.msg="invalid distance too far back",Z.mode=s1;break W}if(z>>>=I,$-=I,I=q-X,d>I){if(I=d-I,I>U){if(Z.sane){Q.msg="invalid distance too far back",Z.mode=s1;break W}}if(R=0,L=F,C===0){if(R+=P-I,I<f){f-=I;do k[q++]=F[R++];while(--I);R=q-d,L=k}}else if(C<I){if(R+=P+C-I,I-=C,I<f){f-=I;do k[q++]=F[R++];while(--I);if(R=0,C<f){I=C,f-=I;do k[q++]=F[R++];while(--I);R=q-d,L=k}}}else if(R+=C-I,I<f){f-=I;do k[q++]=F[R++];while(--I);R=q-d,L=k}while(f>2)k[q++]=L[R++],k[q++]=L[R++],k[q++]=L[R++],f-=3;if(f){if(k[q++]=L[R++],f>1)k[q++]=L[R++]}}else{R=q-d;do k[q++]=k[R++],k[q++]=k[R++],k[q++]=k[R++],f-=3;while(f>2);if(f){if(k[q++]=k[R++],f>1)k[q++]=k[R++]}}}else if((I&64)===0){E=g[(E&65535)+(z&(1<<I)-1)];continue Q}else{Q.msg="invalid distance code",Z.mode=s1;break W}break}}else if((I&64)===0){E=A[(E&65535)+(z&(1<<I)-1)];continue J}else if(I&32){Z.mode=hQ;break W}else{Q.msg="invalid literal/length code",Z.mode=s1;break W}break}}while(G<V&&q<Y);f=$>>3,G-=f,$-=f<<3,z&=(1<<$)-1,Q.next_in=G,Q.next_out=q,Q.avail_in=G<V?5+(V-G):5-(G-V),Q.avail_out=q<Y?257+(Y-q):257-(q-Y),Z.hold=z,Z.bits=$;return},W1=15,X5=852,Y5=592,P5=0,p8=1,U5=2,mQ=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),uQ=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),dQ=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),cQ=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),_Q=(W,Q,J,G,V,q,X,Y)=>{const K=Y.bits;let P=0,U=0,C=0,F=0,z=0,$=0,A=0,g=0,T=0,S=0,E,I,f,d,R,L=null,w;const k=new Uint16Array(W1+1),Z=new Uint16Array(W1+1);let H=null,B,j,x;for(P=0;P<=W1;P++)k[P]=0;for(U=0;U<G;U++)k[Q[J+U]]++;z=K;for(F=W1;F>=1;F--)if(k[F]!==0)break;if(z>F)z=F;if(F===0)return V[q++]=1<<24|64<<16|0,V[q++]=1<<24|64<<16|0,Y.bits=1,0;for(C=1;C<F;C++)if(k[C]!==0)break;if(z<C)z=C;g=1;for(P=1;P<=W1;P++)if(g<<=1,g-=k[P],g<0)return-1;if(g>0&&(W===P5||F!==1))return-1;Z[1]=0;for(P=1;P<W1;P++)Z[P+1]=Z[P]+k[P];for(U=0;U<G;U++)if(Q[J+U]!==0)X[Z[Q[J+U]]++]=U;if(W===P5)L=H=X,w=20;else if(W===p8)L=mQ,H=uQ,w=257;else L=dQ,H=cQ,w=0;if(S=0,U=0,P=C,R=q,$=z,A=0,f=-1,T=1<<z,d=T-1,W===p8&&T>X5||W===U5&&T>Y5)return 1;for(;;){if(B=P-A,X[U]+1<w)j=0,x=X[U];else if(X[U]>=w)j=H[X[U]-w],x=L[X[U]-w];else j=96,x=0;E=1<<P-A,I=1<<$,C=I;do I-=E,V[R+(S>>A)+I]=B<<24|j<<16|x|0;while(I!==0);E=1<<P-1;while(S&E)E>>=1;if(E!==0)S&=E-1,S+=E;else S=0;if(U++,--k[P]===0){if(P===F)break;P=Q[J+X[U]]}if(P>z&&(S&d)!==f){if(A===0)A=z;R+=C,$=P-A,g=1<<$;while($+A<F){if(g-=k[$+A],g<=0)break;$++,g<<=1}if(T+=1<<$,W===p8&&T>X5||W===U5&&T>Y5)return 1;f=S&d,V[f]=z<<24|$<<16|R-q|0}}if(S!==0)V[R+S]=P-A<<24|64<<16|0;return Y.bits=z,0},x1=_Q,lQ=0,q7=1,X7=2,{Z_FINISH:F5,Z_BLOCK:iQ,Z_TREES:e1,Z_OK:f0,Z_STREAM_END:rQ,Z_NEED_DICT:oQ,Z_STREAM_ERROR:Y0,Z_DATA_ERROR:Y7,Z_MEM_ERROR:P7,Z_BUF_ERROR:aQ,Z_DEFLATED:K5}=h0,Y8=16180,z5=16181,Z5=16182,k5=16183,H5=16184,C5=16185,$5=16186,M5=16187,B5=16188,L5=16189,V8=16190,$0=16191,f8=16192,j5=16193,h8=16194,R5=16195,O5=16196,I5=16197,x5=16198,t1=16199,W8=16200,w5=16201,D5=16202,N5=16203,A5=16204,v5=16205,b8=16206,g5=16207,T5=16208,i=16209,U7=16210,F7=16211,nQ=852,sQ=592,eQ=15,tQ=eQ,S5=(W)=>{return(W>>>24&255)+(W>>>8&65280)+((W&65280)<<8)+((W&255)<<24)},b0=(W)=>{if(!W)return 1;const Q=W.state;if(!Q||Q.strm!==W||Q.mode<Y8||Q.mode>F7)return 1;return 0},K7=(W)=>{if(b0(W))return Y0;const Q=W.state;if(W.total_in=W.total_out=Q.total=0,W.msg="",Q.wrap)W.adler=Q.wrap&1;return Q.mode=Y8,Q.last=0,Q.havedict=0,Q.flags=-1,Q.dmax=32768,Q.head=null,Q.hold=0,Q.bits=0,Q.lencode=Q.lendyn=new Int32Array(nQ),Q.distcode=Q.distdyn=new Int32Array(sQ),Q.sane=1,Q.back=-1,f0},z7=(W)=>{if(b0(W))return Y0;const Q=W.state;return Q.wsize=0,Q.whave=0,Q.wnext=0,K7(W)},Z7=(W,Q)=>{let J;if(b0(W))return Y0;const G=W.state;if(Q<0)J=0,Q=-Q;else if(J=(Q>>4)+5,Q<48)Q&=15;if(Q&&(Q<8||Q>15))return Y0;if(G.window!==null&&G.wbits!==Q)G.window=null;return G.wrap=J,G.wbits=Q,z7(W)},k7=(W,Q)=>{if(!W)return Y0;const J=new W9;W.state=J,J.strm=W,J.window=null,J.mode=Y8;const G=Z7(W,Q);if(G!==f0)W.state=null;return G},J9=(W)=>{return k7(W,tQ)},y5=!0,m8,u8,Q9=(W)=>{if(y5){m8=new Int32Array(512),u8=new Int32Array(32);let Q=0;while(Q<144)W.lens[Q++]=8;while(Q<256)W.lens[Q++]=9;while(Q<280)W.lens[Q++]=7;while(Q<288)W.lens[Q++]=8;x1(q7,W.lens,0,288,m8,0,W.work,{bits:9}),Q=0;while(Q<32)W.lens[Q++]=5;x1(X7,W.lens,0,32,u8,0,W.work,{bits:5}),y5=!1}W.lencode=m8,W.lenbits=9,W.distcode=u8,W.distbits=5},H7=(W,Q,J,G)=>{let V;const q=W.state;if(q.window===null)q.wsize=1<<q.wbits,q.wnext=0,q.whave=0,q.window=new Uint8Array(q.wsize);if(G>=q.wsize)q.window.set(Q.subarray(J-q.wsize,J),0),q.wnext=0,q.whave=q.wsize;else{if(V=q.wsize-q.wnext,V>G)V=G;if(q.window.set(Q.subarray(J-G,J-G+V),q.wnext),G-=V,G)q.window.set(Q.subarray(J-G,J),0),q.wnext=G,q.whave=q.wsize;else{if(q.wnext+=V,q.wnext===q.wsize)q.wnext=0;if(q.whave<q.wsize)q.whave+=V}}return 0},G9=(W,Q)=>{let J,G,V,q,X,Y,K,P,U,C,F,z,$,A,g=0,T,S,E,I,f,d,R,L;const w=new Uint8Array(4);let k,Z;const H=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(b0(W)||!W.output||!W.input&&W.avail_in!==0)return Y0;if(J=W.state,J.mode===$0)J.mode=f8;X=W.next_out,V=W.output,K=W.avail_out,q=W.next_in,G=W.input,Y=W.avail_in,P=J.hold,U=J.bits,C=Y,F=K,L=f0;W:for(;;)switch(J.mode){case Y8:if(J.wrap===0){J.mode=f8;break}while(U<16){if(Y===0)break W;Y--,P+=G[q++]<<U,U+=8}if(J.wrap&2&&P===35615){if(J.wbits===0)J.wbits=15;J.check=0,w[0]=P&255,w[1]=P>>>8&255,J.check=a(J.check,w,2,0),P=0,U=0,J.mode=z5;break}if(J.head)J.head.done=!1;if(!(J.wrap&1)||(((P&255)<<8)+(P>>8))%31){W.msg="incorrect header check",J.mode=i;break}if((P&15)!==K5){W.msg="unknown compression method",J.mode=i;break}if(P>>>=4,U-=4,R=(P&15)+8,J.wbits===0)J.wbits=R;if(R>15||R>J.wbits){W.msg="invalid window size",J.mode=i;break}J.dmax=1<<J.wbits,J.flags=0,W.adler=J.check=1,J.mode=P&512?L5:$0,P=0,U=0;break;case z5:while(U<16){if(Y===0)break W;Y--,P+=G[q++]<<U,U+=8}if(J.flags=P,(J.flags&255)!==K5){W.msg="unknown compression method",J.mode=i;break}if(J.flags&57344){W.msg="unknown header flags set",J.mode=i;break}if(J.head)J.head.text=P>>8&1;if(J.flags&512&&J.wrap&4)w[0]=P&255,w[1]=P>>>8&255,J.check=a(J.check,w,2,0);P=0,U=0,J.mode=Z5;case Z5:while(U<32){if(Y===0)break W;Y--,P+=G[q++]<<U,U+=8}if(J.head)J.head.time=P;if(J.flags&512&&J.wrap&4)w[0]=P&255,w[1]=P>>>8&255,w[2]=P>>>16&255,w[3]=P>>>24&255,J.check=a(J.check,w,4,0);P=0,U=0,J.mode=k5;case k5:while(U<16){if(Y===0)break W;Y--,P+=G[q++]<<U,U+=8}if(J.head)J.head.xflags=P&255,J.head.os=P>>8;if(J.flags&512&&J.wrap&4)w[0]=P&255,w[1]=P>>>8&255,J.check=a(J.check,w,2,0);P=0,U=0,J.mode=H5;case H5:if(J.flags&1024){while(U<16){if(Y===0)break W;Y--,P+=G[q++]<<U,U+=8}if(J.length=P,J.head)J.head.extra_len=P;if(J.flags&512&&J.wrap&4)w[0]=P&255,w[1]=P>>>8&255,J.check=a(J.check,w,2,0);P=0,U=0}else if(J.head)J.head.extra=null;J.mode=C5;case C5:if(J.flags&1024){if(z=J.length,z>Y)z=Y;if(z){if(J.head){if(R=J.head.extra_len-J.length,!J.head.extra)J.head.extra=new Uint8Array(J.head.extra_len);J.head.extra.set(G.subarray(q,q+z),R)}if(J.flags&512&&J.wrap&4)J.check=a(J.check,G,z,q);Y-=z,q+=z,J.length-=z}if(J.length)break W}J.length=0,J.mode=$5;case $5:if(J.flags&2048){if(Y===0)break W;z=0;do if(R=G[q+z++],J.head&&R&&J.length<65536)J.head.name+=String.fromCharCode(R);while(R&&z<Y);if(J.flags&512&&J.wrap&4)J.check=a(J.check,G,z,q);if(Y-=z,q+=z,R)break W}else if(J.head)J.head.name=null;J.length=0,J.mode=M5;case M5:if(J.flags&4096){if(Y===0)break W;z=0;do if(R=G[q+z++],J.head&&R&&J.length<65536)J.head.comment+=String.fromCharCode(R);while(R&&z<Y);if(J.flags&512&&J.wrap&4)J.check=a(J.check,G,z,q);if(Y-=z,q+=z,R)break W}else if(J.head)J.head.comment=null;J.mode=B5;case B5:if(J.flags&512){while(U<16){if(Y===0)break W;Y--,P+=G[q++]<<U,U+=8}if(J.wrap&4&&P!==(J.check&65535)){W.msg="header crc mismatch",J.mode=i;break}P=0,U=0}if(J.head)J.head.hcrc=J.flags>>9&1,J.head.done=!0;W.adler=J.check=0,J.mode=$0;break;case L5:while(U<32){if(Y===0)break W;Y--,P+=G[q++]<<U,U+=8}W.adler=J.check=S5(P),P=0,U=0,J.mode=V8;case V8:if(J.havedict===0)return W.next_out=X,W.avail_out=K,W.next_in=q,W.avail_in=Y,J.hold=P,J.bits=U,oQ;W.adler=J.check=1,J.mode=$0;case $0:if(Q===iQ||Q===e1)break W;case f8:if(J.last){P>>>=U&7,U-=U&7,J.mode=b8;break}while(U<3){if(Y===0)break W;Y--,P+=G[q++]<<U,U+=8}switch(J.last=P&1,P>>>=1,U-=1,P&3){case 0:J.mode=j5;break;case 1:if(Q9(J),J.mode=t1,Q===e1){P>>>=2,U-=2;break W}break;case 2:J.mode=O5;break;case 3:W.msg="invalid block type",J.mode=i}P>>>=2,U-=2;break;case j5:P>>>=U&7,U-=U&7;while(U<32){if(Y===0)break W;Y--,P+=G[q++]<<U,U+=8}if((P&65535)!==(P>>>16^65535)){W.msg="invalid stored block lengths",J.mode=i;break}if(J.length=P&65535,P=0,U=0,J.mode=h8,Q===e1)break W;case h8:J.mode=R5;case R5:if(z=J.length,z){if(z>Y)z=Y;if(z>K)z=K;if(z===0)break W;V.set(G.subarray(q,q+z),X),Y-=z,q+=z,K-=z,X+=z,J.length-=z;break}J.mode=$0;break;case O5:while(U<14){if(Y===0)break W;Y--,P+=G[q++]<<U,U+=8}if(J.nlen=(P&31)+257,P>>>=5,U-=5,J.ndist=(P&31)+1,P>>>=5,U-=5,J.ncode=(P&15)+4,P>>>=4,U-=4,J.nlen>286||J.ndist>30){W.msg="too many length or distance symbols",J.mode=i;break}J.have=0,J.mode=I5;case I5:while(J.have<J.ncode){while(U<3){if(Y===0)break W;Y--,P+=G[q++]<<U,U+=8}J.lens[H[J.have++]]=P&7,P>>>=3,U-=3}while(J.have<19)J.lens[H[J.have++]]=0;if(J.lencode=J.lendyn,J.lenbits=7,k={bits:J.lenbits},L=x1(lQ,J.lens,0,19,J.lencode,0,J.work,k),J.lenbits=k.bits,L){W.msg="invalid code lengths set",J.mode=i;break}J.have=0,J.mode=x5;case x5:while(J.have<J.nlen+J.ndist){for(;;){if(g=J.lencode[P&(1<<J.lenbits)-1],T=g>>>24,S=g>>>16&255,E=g&65535,T<=U)break;if(Y===0)break W;Y--,P+=G[q++]<<U,U+=8}if(E<16)P>>>=T,U-=T,J.lens[J.have++]=E;else{if(E===16){Z=T+2;while(U<Z){if(Y===0)break W;Y--,P+=G[q++]<<U,U+=8}if(P>>>=T,U-=T,J.have===0){W.msg="invalid bit length repeat",J.mode=i;break}R=J.lens[J.have-1],z=3+(P&3),P>>>=2,U-=2}else if(E===17){Z=T+3;while(U<Z){if(Y===0)break W;Y--,P+=G[q++]<<U,U+=8}P>>>=T,U-=T,R=0,z=3+(P&7),P>>>=3,U-=3}else{Z=T+7;while(U<Z){if(Y===0)break W;Y--,P+=G[q++]<<U,U+=8}P>>>=T,U-=T,R=0,z=11+(P&127),P>>>=7,U-=7}if(J.have+z>J.nlen+J.ndist){W.msg="invalid bit length repeat",J.mode=i;break}while(z--)J.lens[J.have++]=R}}if(J.mode===i)break;if(J.lens[256]===0){W.msg="invalid code -- missing end-of-block",J.mode=i;break}if(J.lenbits=9,k={bits:J.lenbits},L=x1(q7,J.lens,0,J.nlen,J.lencode,0,J.work,k),J.lenbits=k.bits,L){W.msg="invalid literal/lengths set",J.mode=i;break}if(J.distbits=6,J.distcode=J.distdyn,k={bits:J.distbits},L=x1(X7,J.lens,J.nlen,J.ndist,J.distcode,0,J.work,k),J.distbits=k.bits,L){W.msg="invalid distances set",J.mode=i;break}if(J.mode=t1,Q===e1)break W;case t1:J.mode=W8;case W8:if(Y>=6&&K>=258){if(W.next_out=X,W.avail_out=K,W.next_in=q,W.avail_in=Y,J.hold=P,J.bits=U,bQ(W,F),X=W.next_out,V=W.output,K=W.avail_out,q=W.next_in,G=W.input,Y=W.avail_in,P=J.hold,U=J.bits,J.mode===$0)J.back=-1;break}J.back=0;for(;;){if(g=J.lencode[P&(1<<J.lenbits)-1],T=g>>>24,S=g>>>16&255,E=g&65535,T<=U)break;if(Y===0)break W;Y--,P+=G[q++]<<U,U+=8}if(S&&(S&240)===0){I=T,f=S,d=E;for(;;){if(g=J.lencode[d+((P&(1<<I+f)-1)>>I)],T=g>>>24,S=g>>>16&255,E=g&65535,I+T<=U)break;if(Y===0)break W;Y--,P+=G[q++]<<U,U+=8}P>>>=I,U-=I,J.back+=I}if(P>>>=T,U-=T,J.back+=T,J.length=E,S===0){J.mode=v5;break}if(S&32){J.back=-1,J.mode=$0;break}if(S&64){W.msg="invalid literal/length code",J.mode=i;break}J.extra=S&15,J.mode=w5;case w5:if(J.extra){Z=J.extra;while(U<Z){if(Y===0)break W;Y--,P+=G[q++]<<U,U+=8}J.length+=P&(1<<J.extra)-1,P>>>=J.extra,U-=J.extra,J.back+=J.extra}J.was=J.length,J.mode=D5;case D5:for(;;){if(g=J.distcode[P&(1<<J.distbits)-1],T=g>>>24,S=g>>>16&255,E=g&65535,T<=U)break;if(Y===0)break W;Y--,P+=G[q++]<<U,U+=8}if((S&240)===0){I=T,f=S,d=E;for(;;){if(g=J.distcode[d+((P&(1<<I+f)-1)>>I)],T=g>>>24,S=g>>>16&255,E=g&65535,I+T<=U)break;if(Y===0)break W;Y--,P+=G[q++]<<U,U+=8}P>>>=I,U-=I,J.back+=I}if(P>>>=T,U-=T,J.back+=T,S&64){W.msg="invalid distance code",J.mode=i;break}J.offset=E,J.extra=S&15,J.mode=N5;case N5:if(J.extra){Z=J.extra;while(U<Z){if(Y===0)break W;Y--,P+=G[q++]<<U,U+=8}J.offset+=P&(1<<J.extra)-1,P>>>=J.extra,U-=J.extra,J.back+=J.extra}if(J.offset>J.dmax){W.msg="invalid distance too far back",J.mode=i;break}J.mode=A5;case A5:if(K===0)break W;if(z=F-K,J.offset>z){if(z=J.offset-z,z>J.whave){if(J.sane){W.msg="invalid distance too far back",J.mode=i;break}}if(z>J.wnext)z-=J.wnext,$=J.wsize-z;else $=J.wnext-z;if(z>J.length)z=J.length;A=J.window}else A=V,$=X-J.offset,z=J.length;if(z>K)z=K;K-=z,J.length-=z;do V[X++]=A[$++];while(--z);if(J.length===0)J.mode=W8;break;case v5:if(K===0)break W;V[X++]=J.length,K--,J.mode=W8;break;case b8:if(J.wrap){while(U<32){if(Y===0)break W;Y--,P|=G[q++]<<U,U+=8}if(F-=K,W.total_out+=F,J.total+=F,J.wrap&4&&F)W.adler=J.check=J.flags?a(J.check,V,F,X-F):v1(J.check,V,F,X-F);if(F=K,J.wrap&4&&(J.flags?P:S5(P))!==J.check){W.msg="incorrect data check",J.mode=i;break}P=0,U=0}J.mode=g5;case g5:if(J.wrap&&J.flags){while(U<32){if(Y===0)break W;Y--,P+=G[q++]<<U,U+=8}if(J.wrap&4&&P!==(J.total&4294967295)){W.msg="incorrect length check",J.mode=i;break}P=0,U=0}J.mode=T5;case T5:L=rQ;break W;case i:L=Y7;break W;case U7:return P7;case F7:default:return Y0}if(W.next_out=X,W.avail_out=K,W.next_in=q,W.avail_in=Y,J.hold=P,J.bits=U,J.wsize||F!==W.avail_out&&J.mode<i&&(J.mode<b8||Q!==F5)){if(H7(W,W.output,W.next_out,F-W.avail_out));}if(C-=W.avail_in,F-=W.avail_out,W.total_in+=C,W.total_out+=F,J.total+=F,J.wrap&4&&F)W.adler=J.check=J.flags?a(J.check,V,F,W.next_out-F):v1(J.check,V,F,W.next_out-F);if(W.data_type=J.bits+(J.last?64:0)+(J.mode===$0?128:0)+(J.mode===t1||J.mode===h8?256:0),(C===0&&F===0||Q===F5)&&L===f0)L=aQ;return L},V9=(W)=>{if(b0(W))return Y0;let Q=W.state;if(Q.window)Q.window=null;return W.state=null,f0},q9=(W,Q)=>{if(b0(W))return Y0;const J=W.state;if((J.wrap&2)===0)return Y0;return J.head=Q,Q.done=!1,f0},X9=(W,Q)=>{const J=Q.length;let G,V,q;if(b0(W))return Y0;if(G=W.state,G.wrap!==0&&G.mode!==V8)return Y0;if(G.mode===V8){if(V=1,V=v1(V,Q,J,0),V!==G.check)return Y7}if(q=H7(W,Q,J,J),q)return G.mode=U7,P7;return G.havedict=1,f0},Y9=z7,P9=Z7,U9=K7,F9=J9,K9=k7,z9=G9,Z9=V9,k9=q9,H9=X9,C9="pako inflate (from Nodeca project)",B0={inflateReset:Y9,inflateReset2:P9,inflateResetKeep:U9,inflateInit:F9,inflateInit2:K9,inflate:z9,inflateEnd:Z9,inflateGetHeader:k9,inflateSetDictionary:H9,inflateInfo:C9},M9=$9,C7=Object.prototype.toString,{Z_NO_FLUSH:B9,Z_FINISH:L9,Z_OK:S1,Z_STREAM_END:d8,Z_NEED_DICT:c8,Z_STREAM_ERROR:j9,Z_DATA_ERROR:E5,Z_MEM_ERROR:R9}=h0;f1.prototype.push=function(W,Q){const J=this.strm,G=this.options.chunkSize,V=this.options.dictionary;let q,X,Y;if(this.ended)return!1;if(Q===~~Q)X=Q;else X=Q===!0?L9:B9;if(C7.call(W)==="[object ArrayBuffer]")J.input=new Uint8Array(W);else J.input=W;J.next_in=0,J.avail_in=J.input.length;for(;;){if(J.avail_out===0)J.output=new Uint8Array(G),J.next_out=0,J.avail_out=G;if(q=B0.inflate(J,X),q===c8&&V){if(q=B0.inflateSetDictionary(J,V),q===S1)q=B0.inflate(J,X);else if(q===E5)q=c8}while(J.avail_in>0&&q===d8&&J.state.wrap>0&&W[J.next_in]!==0)B0.inflateReset(J),q=B0.inflate(J,X);switch(q){case j9:case E5:case c8:case R9:return this.onEnd(q),this.ended=!0,!1}if(Y=J.avail_out,J.next_out){if(J.avail_out===0||q===d8)if(this.options.to==="string"){let K=T1.utf8border(J.output,J.next_out),P=J.next_out-K,U=T1.buf2string(J.output,K);if(J.next_out=P,J.avail_out=G-P,P)J.output.set(J.output.subarray(K,K+P),0);this.onData(U)}else this.onData(J.output.length===J.next_out?J.output:J.output.subarray(0,J.next_out))}if(q===S1&&Y===0)continue;if(q===d8)return q=B0.inflateEnd(this.strm),this.onEnd(q),this.ended=!0,!0;if(J.avail_in===0)break}return!0};f1.prototype.onData=function(W){this.chunks.push(W)};f1.prototype.onEnd=function(W){if(W===S1)if(this.options.to==="string")this.result=this.chunks.join("");else this.result=X8.flattenChunks(this.chunks);this.chunks=[],this.err=W,this.msg=this.strm.msg};var I9=f1,x9=q6,w9=O9,D9=q6,N9=h0,A9={Inflate:I9,inflate:x9,inflateRaw:w9,ungzip:D9,constants:N9},{Deflate:v9,deflate:g9,deflateRaw:T9,gzip:S9}=fQ,{Inflate:y9,inflate:E9,inflateRaw:p9,ungzip:f9}=A9,h9=v9,b9=g9,m9=T9,u9=S9,d9=y9,c9=E9,_9=p9,l9=f9,i9=h0,m0={Deflate:h9,deflate:b9,deflateRaw:m9,gzip:u9,Inflate:d9,inflate:c9,inflateRaw:_9,ungzip:l9,constants:i9};var I8=function(W){return W instanceof Uint8Array||ArrayBuffer.isView(W)&&W.constructor.name==="Uint8Array"},k6=function(W){if(!Number.isSafeInteger(W)||W<0)throw Error("positive integer expected, got "+W)},a0=function(W,...Q){if(!I8(W))throw Error("Uint8Array expected");if(Q.length>0&&!Q.includes(W.length))throw Error("Uint8Array expected of length "+Q+", got length="+W.length)},m7=function(W){if(typeof W!="function"||typeof W.create!="function")throw Error("Hash should be wrapped by utils.createHasher");k6(W.outputLen),k6(W.blockLen)},H8=function(W,Q=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(Q&&W.finished)throw Error("Hash#digest() has already been called")},C8=function(...W){for(let Q=0;Q<W.length;Q++)W[Q].fill(0)},X6=function(W){return new DataView(W.buffer,W.byteOffset,W.byteLength)},H0=function(W,Q){return W<<32-Q|W>>>Q},z1=function(W){if(a0(W),u7)return W.toHex();let Q="";for(let J=0;J<W.length;J++)Q+=r9[W[J]];return Q},L7=function(W){return W>=$7&&W<=o9?W-$7:W>=M7&&W<=a9?W-(M7-10):W>=B7&&W<=n9?W-(B7-10):void 0},$8=function(W){if(typeof W!="string")throw Error("hex string expected, got "+typeof W);if(u7)return Uint8Array.fromHex(W);const Q=W.length,J=Q/2;if(Q%2)throw Error("hex string expected, got unpadded hex of length "+Q);const G=new Uint8Array(J);for(let V=0,q=0;V<J;V++,q+=2){const X=L7(W.charCodeAt(q)),Y=L7(W.charCodeAt(q+1));if(X===void 0||Y===void 0){const K=W[q]+W[q+1];throw Error('hex string expected, got non-hex character "'+K+'" at index '+q)}G[V]=16*X+Y}return G},d7=function(W){if(typeof W!="string")throw Error("string expected");return new Uint8Array((new TextEncoder()).encode(W))},I6=function(W){return typeof W=="string"&&(W=d7(W)),a0(W),W},C0=function(...W){let Q=0;for(let G=0;G<W.length;G++){const V=W[G];a0(V),Q+=V.length}const J=new Uint8Array(Q);for(let G=0,V=0;G<W.length;G++){const q=W[G];J.set(q,V),V+=q.length}return J},s9=function(W){const Q=(G)=>W().update(I6(G)).digest(),J=W();return Q.outputLen=J.outputLen,Q.blockLen=J.blockLen,Q.create=()=>W(),Q},M8=function(W=32){if(Y1&&typeof Y1.getRandomValues=="function")return Y1.getRandomValues(new Uint8Array(W));if(Y1&&typeof Y1.randomBytes=="function")return Uint8Array.from(Y1.randomBytes(W));throw Error("crypto.getRandomValues must be defined")},e9=function(W,Q,J){return W&Q^W&J^Q&J},B8=function(W,Q=""){if(typeof W!="boolean")throw Error((Q&&`"${Q}"`)+"expected boolean, got type="+typeof W);return W},_0=function(W,Q,J=""){const G=I8(W),V=W?.length,q=Q!==void 0;if(!G||q&&V!==Q)throw Error((J&&`"${J}" `)+"expected Uint8Array"+(q?" of length "+Q:"")+", got "+(G?"length="+V:"type="+typeof W));return W},P8=function(W){const Q=W.toString(16);return 1&Q.length?"0"+Q:Q},i7=function(W){if(typeof W!="string")throw Error("hex string expected, got "+typeof W);return W===""?D6:BigInt("0x"+W)},H1=function(W){return i7(z1(W))},r7=function(W){return a0(W),i7(z1(Uint8Array.from(W).reverse()))},x8=function(W,Q){return $8(W.toString(16).padStart(2*Q,"0"))},o7=function(W,Q){return x8(W,Q).reverse()},o=function(W,Q,J){let G;if(typeof Q=="string")try{G=$8(Q)}catch(q){throw Error(W+" must be hex string or Uint8Array, cause: "+q)}else{if(!I8(Q))throw Error(W+" must be hex string or Uint8Array");G=Uint8Array.from(Q)}const V=G.length;if(typeof J=="number"&&V!==J)throw Error(W+" of length "+J+" expected, got "+V);return G},$6=function(W,Q,J){return Y6(W)&&Y6(Q)&&Y6(J)&&Q<=W&&W<J},a7=function(W){let Q;for(Q=0;W>D6;W>>=C6,Q+=1);return Q},N6=function(W,Q,J={}){if(!W||typeof W!="object")throw Error("expected valid options object");function G(V,q,X){const Y=W[V];if(X&&Y===void 0)return;const K=typeof Y;if(K!==q||Y===null)throw Error(`param "${V}" is invalid: expected ${q}, got ${K}`)}Object.entries(Q).forEach(([V,q])=>G(V,q,!1)),Object.entries(J).forEach(([V,q])=>G(V,q,!0))},j7=function(W){const Q=new WeakMap;return(J,...G)=>{const V=Q.get(J);if(V!==void 0)return V;const q=W(J,...G);return Q.set(J,q),q}},U0=function(W,Q){const J=W%Q;return J>=Q0?J:Q+J},P0=function(W,Q,J){let G=W;for(;Q-- >Q0;)G*=G,G%=J;return G},O7=function(W,Q){if(W===Q0)throw Error("invert: expected non-zero number");if(Q<=Q0)throw Error("invert: expected positive modulus, got "+Q);let J=U0(W,Q),G=Q,V=Q0,q=W0;for(;J!==Q0;){const X=G%J,Y=V-q*(G/J);G=J,J=X,V=q,q=Y}if(G!==W0)throw Error("invert: does not exist");return U0(V,Q)},A6=function(W,Q,J){if(!W.eql(W.sqr(Q),J))throw Error("Cannot find square root")},WW=function(W,Q){const J=(W.ORDER+W0)/s7,G=W.pow(Q,J);return A6(W,G,Q),G},QG=function(W,Q){const J=(W.ORDER-e7)/t7,G=W.mul(Q,i0),V=W.pow(G,J),q=W.mul(Q,V),X=W.mul(W.mul(q,i0),V),Y=W.mul(q,W.sub(X,W.ONE));return A6(W,Y,Q),Y},I7=function(W){if(W<n7)throw Error("sqrt is not defined for small field");let Q=W-W0,J=0;for(;Q%i0===Q0;)Q/=i0,J++;let G=i0;const V=d1(W);for(;x7(V,G)===1;)if(G++>1000)throw Error("Cannot find square root: probably non-prime P");if(J===1)return WW;let q=V.pow(G,Q);const X=(Q+W0)/i0;return function(Y,K){if(Y.is0(K))return K;if(x7(Y,K)!==1)throw Error("Cannot find square root");let P=J,U=Y.mul(Y.ONE,q),C=Y.pow(K,Q),F=Y.pow(K,X);for(;!Y.eql(C,Y.ONE);){if(Y.is0(C))return Y.ZERO;let z=1,$=Y.sqr(C);for(;!Y.eql($,Y.ONE);)if(z++,$=Y.sqr($),z===P)throw Error("Cannot find square root");const A=W0<<BigInt(P-z-1),g=Y.pow(U,A);P=z,U=Y.sqr(g),C=Y.mul(C,U),F=Y.mul(F,g)}return F}},GG=function(W){return W%s7===n7?WW:W%t7===e7?QG:W%R7===JG?function(Q){const J=d1(Q),G=I7(Q),V=G(J,J.neg(J.ONE)),q=G(J,V),X=G(J,J.neg(V)),Y=(Q+WG)/R7;return(K,P)=>{let U=K.pow(P,Y),C=K.mul(U,V);const F=K.mul(U,q),z=K.mul(U,X),$=K.eql(K.sqr(C),P),A=K.eql(K.sqr(F),P);U=K.cmov(U,C,$),C=K.cmov(z,F,A);const g=K.eql(K.sqr(C),P),T=K.cmov(U,C,g);return A6(K,T,P),T}}(W):I7(W)},JW=function(W,Q,J=!1){const G=Array(Q.length).fill(J?W.ZERO:void 0),V=Q.reduce((X,Y,K)=>W.is0(Y)?X:(G[K]=X,W.mul(X,Y)),W.ONE),q=W.inv(V);return Q.reduceRight((X,Y,K)=>W.is0(Y)?X:(G[K]=W.mul(X,G[K]),W.mul(X,Y)),q),G},x7=function(W,Q){const J=(W.ORDER-W0)/i0,G=W.pow(Q,J),V=W.eql(G,W.ONE),q=W.eql(G,W.ZERO),X=W.eql(G,W.neg(W.ONE));if(!V&&!q&&!X)throw Error("invalid Legendre symbol result");return V?1:q?0:-1},QW=function(W,Q){Q!==void 0&&k6(Q);const J=Q!==void 0?Q:W.toString(2).length;return{nBitLength:J,nByteLength:Math.ceil(J/8)}},d1=function(W,Q,J=!1,G={}){if(W<=Q0)throw Error("invalid field: expected ORDER > 0, got "+W);let V,q,X,Y=!1;if(typeof Q=="object"&&Q!=null){if(G.sqrt||J)throw Error("cannot specify opts in two arguments");const F=Q;F.BITS&&(V=F.BITS),F.sqrt&&(q=F.sqrt),typeof F.isLE=="boolean"&&(J=F.isLE),typeof F.modFromBytes=="boolean"&&(Y=F.modFromBytes),X=F.allowedLengths}else typeof Q=="number"&&(V=Q),G.sqrt&&(q=G.sqrt);const{nBitLength:K,nByteLength:P}=QW(W,V);if(P>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let U;const C=Object.freeze({ORDER:W,isLE:J,BITS:K,BYTES:P,MASK:u1(K),ZERO:Q0,ONE:W0,allowedLengths:X,create(F){return U0(F,W)},isValid(F){if(typeof F!="bigint")throw Error("invalid field element: expected bigint, got "+typeof F);return Q0<=F&&F<W},is0(F){return F===Q0},isValidNot0(F){return!C.is0(F)&&C.isValid(F)},isOdd(F){return(F&W0)===W0},neg(F){return U0(-F,W)},eql(F,z){return F===z},sqr(F){return U0(F*F,W)},add(F,z){return U0(F+z,W)},sub(F,z){return U0(F-z,W)},mul(F,z){return U0(F*z,W)},pow(F,z){return function($,A,g){if(g<Q0)throw Error("invalid exponent, negatives unsupported");if(g===Q0)return $.ONE;if(g===W0)return A;let T=$.ONE,S=A;for(;g>Q0;)g&W0&&(T=$.mul(T,S)),S=$.sqr(S),g>>=W0;return T}(C,F,z)},div(F,z){return U0(F*O7(z,W),W)},sqrN(F){return F*F},addN(F,z){return F+z},subN(F,z){return F-z},mulN(F,z){return F*z},inv(F){return O7(F,W)},sqrt:q||((F)=>(U||(U=GG(W)),U(C,F))),toBytes(F){return J?o7(F,P):x8(F,P)},fromBytes(F,z=!0){if(X){if(!X.includes(F.length)||F.length>P)throw Error("Field.fromBytes: expected "+X+" bytes, got "+F.length);const A=new Uint8Array(P);A.set(F,J?0:A.length-F.length),F=A}if(F.length!==P)throw Error("Field.fromBytes: expected "+P+" bytes, got "+F.length);let $=J?r7(F):H1(F);if(Y&&($=U0($,W)),!z&&!C.isValid($))throw Error("invalid field element: outside of range 0..ORDER");return $},invertBatch(F){return JW(C,F)},cmov(F,z,$){return $?z:F}});return Object.freeze(C)},GW=function(W){if(typeof W!="bigint")throw Error("field order must be bigint");const Q=W.toString(2).length;return Math.ceil(Q/8)},VW=function(W){const Q=GW(W);return Q+Math.ceil(Q/2)},qW=function(W,Q,J=!1){const G=W.length,V=GW(Q),q=VW(Q);if(G<16||G<q||G>1024)throw Error("expected "+q+"-1024 bytes of input, got "+G);const X=U0(J?r7(W):H1(W),Q-W0)+W0;return J?o7(X,V):x8(X,V)},L8=function(W,Q){const J=Q.negate();return W?J:Q},P6=function(W,Q){const J=JW(W.Fp,Q.map((G)=>G.Z));return Q.map((G,V)=>W.fromAffine(G.toAffine(J[V])))},XW=function(W,Q){if(!Number.isSafeInteger(W)||W<=0||W>Q)throw Error("invalid window size, expected [1.."+Q+"], got W="+W)},U6=function(W,Q){XW(W,Q);const J=2**W;return{windows:Math.ceil(Q/W)+1,windowSize:2**(W-1),mask:u1(W),maxNumber:J,shiftBy:BigInt(W)}},w7=function(W,Q,J){const{windowSize:G,mask:V,maxNumber:q,shiftBy:X}=J;let Y=Number(W&V),K=W>>X;Y>G&&(Y-=q,K+=r0);const P=Q*G;return{nextN:K,offset:P+Math.abs(Y)-1,isZero:Y===0,isNeg:Y<0,isNegF:Q%2!=0,offsetF:P}},K6=function(W){return YW.get(W)||1},D7=function(W){if(W!==Z1)throw Error("invalid wNAF")},qG=function(W,Q,J,G){(function(F,z){if(!Array.isArray(F))throw Error("array expected");F.forEach(($,A)=>{if(!($ instanceof z))throw Error("invalid point at index "+A)})})(J,W),function(F,z){if(!Array.isArray(F))throw Error("array of scalars expected");F.forEach(($,A)=>{if(!z.isValid($))throw Error("invalid scalar at index "+A)})}(G,Q);const V=J.length,q=G.length;if(V!==q)throw Error("arrays of points and scalars must have equal length");const X=W.ZERO,Y=a7(BigInt(V));let K=1;Y>12?K=Y-3:Y>4?K=Y-2:Y>0&&(K=2);const P=u1(K),U=Array(Number(P)+1).fill(X);let C=X;for(let F=Math.floor((Q.BITS-1)/K)*K;F>=0;F-=K){U.fill(X);for(let $=0;$<q;$++){const A=G[$],g=Number(A>>BigInt(F)&P);U[g]=U[g].add(J[$])}let z=X;for(let $=U.length-1,A=X;$>0;$--)A=A.add(U[$]),z=z.add(A);if(C=C.add(z),F!==0)for(let $=0;$<K;$++)C=C.double()}return C},N7=function(W,Q,J){if(Q){if(Q.ORDER!==W)throw Error("Field.ORDER must match order: Fp == p, Fn == n");return function(G){N6(G,VG.reduce((V,q)=>(V[q]="function",V),{ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"}))}(Q),Q}return d1(W,{isLE:J})},M6=function(W){if(!["compact","recovered","der"].includes(W))throw Error('Signature format must be "compact", "recovered", or "der"');return W},z6=function(W,Q){const J={};for(let G of Object.keys(Q))J[G]=W[G]===void 0?Q[G]:W[G];return B8(J.lowS,"lowS"),B8(J.prehash,"prehash"),J.format!==void 0&&M6(J.format),J},l0=function(W,Q){const{BYTES:J}=W;let G;if(typeof Q=="bigint")G=Q;else{let V=o("private key",Q);try{G=W.fromBytes(V)}catch(q){throw Error(`invalid private key: expected ui8a of size ${J}, got ${typeof Q}`)}}if(!W.isValidNot0(G))throw Error("invalid private key: out of range [1..N-1]");return G},YG=function(W,Q={}){const J=function(k,Z,H={},B){if(B===void 0&&(B=k==="edwards"),!Z||typeof Z!="object")throw Error(`expected valid ${k} CURVE object`);for(let O of["p","n","h"]){const M=Z[O];if(!(typeof M=="bigint"&&M>Z1))throw Error(`CURVE.${O} must be positive bigint`)}const j=N7(Z.p,H.Fp,B),x=N7(Z.n,H.Fn,B),D=["Gx","Gy","a","b"];for(let O of D)if(!j.isValid(Z[O]))throw Error(`CURVE.${O} must be valid field element of CURVE.Fp`);return{CURVE:Z=Object.freeze(Object.assign({},Z)),Fp:j,Fn:x}}("weierstrass",W,Q),{Fp:G,Fn:V}=J;let q=J.CURVE;const{h:X,n:Y}=q;N6(Q,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});const{endo:K}=Q;if(K&&(!G.is0(q.a)||typeof K.beta!="bigint"||!Array.isArray(K.basises)))throw Error('invalid endo: expected "beta": bigint and "basises": array');const P=KW(G,V);function U(){if(!G.isOdd)throw Error("compression is not supported: Field does not have .isOdd()")}const C=Q.toBytes||function(k,Z,H){const{x:B,y:j}=Z.toAffine(),x=G.toBytes(B);if(B8(H,"isCompressed"),H)return U(),C0(FW(!G.isOdd(j)),x);return C0(Uint8Array.of(4),x,G.toBytes(j))},F=Q.fromBytes||function(k){_0(k,void 0,"Point");const{publicKey:Z,publicKeyUncompressed:H}=P,B=k.length,j=k[0],x=k.subarray(1);if(B!==Z||j!==2&&j!==3){if(B===H&&j===4){const D=G.BYTES,O=G.fromBytes(x.subarray(0,D)),M=G.fromBytes(x.subarray(D,2*D));if(!$(O,M))throw Error("bad point: is not on curve");return{x:O,y:M}}throw Error(`bad point: got length ${B}, expected compressed=${Z} or uncompressed=${H}`)}{const D=G.fromBytes(x);if(!G.isValid(D))throw Error("bad point: is not on curve, wrong x");const O=z(D);let M;try{M=G.sqrt(O)}catch(N){const y=N instanceof Error?": "+N.message:"";throw Error("bad point: is not on curve, sqrt error"+y)}return U(),!(1&~j)!==G.isOdd(M)&&(M=G.neg(M)),{x:D,y:M}}};function z(k){const Z=G.sqr(k),H=G.mul(Z,k);return G.add(G.add(H,G.mul(k,q.a)),q.b)}function $(k,Z){const H=G.sqr(Z),B=z(k);return G.eql(H,B)}if(!$(q.Gx,q.Gy))throw Error("bad curve params: generator point");const A=G.mul(G.pow(q.a,U8),XG),g=G.mul(G.sqr(q.b),BigInt(27));if(G.is0(G.add(A,g)))throw Error("bad curve params: a or b");function T(k,Z,H=!1){if(!G.isValid(Z)||H&&G.is0(Z))throw Error("bad point coordinate "+k);return Z}function S(k){if(!(k instanceof R))throw Error("ProjectivePoint expected")}function E(k){if(!K||!K.basises)throw Error("no endo");return function(Z,H,B){const[[j,x],[D,O]]=H,M=A7(O*Z,B),N=A7(-x*Z,B);let y=Z-M*j-N*D,p=-M*x-N*O;const v=y<j0,b=p<j0;v&&(y=-y),b&&(p=-p);const m=u1(Math.ceil(a7(B)/2))+F1;if(y<j0||y>=m||p<j0||p>=m)throw Error("splitScalar (endomorphism): failed, k="+Z);return{k1neg:v,k1:y,k2neg:b,k2:p}}(k,K.basises,V.ORDER)}const I=j7((k,Z)=>{const{X:H,Y:B,Z:j}=k;if(G.eql(j,G.ONE))return{x:H,y:B};const x=k.is0();Z==null&&(Z=x?G.ONE:G.inv(j));const D=G.mul(H,Z),O=G.mul(B,Z),M=G.mul(j,Z);if(x)return{x:G.ZERO,y:G.ZERO};if(!G.eql(M,G.ONE))throw Error("invZ was invalid");return{x:D,y:O}}),f=j7((k)=>{if(k.is0()){if(Q.allowInfinityPoint&&!G.is0(k.Y))return;throw Error("bad point: ZERO")}const{x:Z,y:H}=k.toAffine();if(!G.isValid(Z)||!G.isValid(H))throw Error("bad point: x or y not field elements");if(!$(Z,H))throw Error("bad point: equation left != right");if(!k.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});function d(k,Z,H,B,j){return H=new R(G.mul(H.X,k),H.Y,H.Z),Z=L8(B,Z),H=L8(j,H),Z.add(H)}class R{constructor(k,Z,H){this.X=T("x",k),this.Y=T("y",Z,!0),this.Z=T("z",H),Object.freeze(this)}static CURVE(){return q}static fromAffine(k){const{x:Z,y:H}=k||{};if(!k||!G.isValid(Z)||!G.isValid(H))throw Error("invalid affine point");if(k instanceof R)throw Error("projective point not allowed");return G.is0(Z)&&G.is0(H)?R.ZERO:new R(Z,H,G.ONE)}static fromBytes(k){const Z=R.fromAffine(F(_0(k,void 0,"point")));return Z.assertValidity(),Z}static fromHex(k){return R.fromBytes(o("pointHex",k))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(k=8,Z=!0){return w.createCache(this,k),Z||this.multiply(U8),this}assertValidity(){f(this)}hasEvenY(){const{y:k}=this.toAffine();if(!G.isOdd)throw Error("Field doesn't support isOdd");return!G.isOdd(k)}equals(k){S(k);const{X:Z,Y:H,Z:B}=this,{X:j,Y:x,Z:D}=k,O=G.eql(G.mul(Z,D),G.mul(j,B)),M=G.eql(G.mul(H,D),G.mul(x,B));return O&&M}negate(){return new R(this.X,G.neg(this.Y),this.Z)}double(){const{a:k,b:Z}=q,H=G.mul(Z,U8),{X:B,Y:j,Z:x}=this;let{ZERO:D,ZERO:O,ZERO:M}=G,N=G.mul(B,B),y=G.mul(j,j),p=G.mul(x,x),v=G.mul(B,j);return v=G.add(v,v),M=G.mul(B,x),M=G.add(M,M),D=G.mul(k,M),O=G.mul(H,p),O=G.add(D,O),D=G.sub(y,O),O=G.add(y,O),O=G.mul(D,O),D=G.mul(v,D),M=G.mul(H,M),p=G.mul(k,p),v=G.sub(N,p),v=G.mul(k,v),v=G.add(v,M),M=G.add(N,N),N=G.add(M,N),N=G.add(N,p),N=G.mul(N,v),O=G.add(O,N),p=G.mul(j,x),p=G.add(p,p),N=G.mul(p,v),D=G.sub(D,N),M=G.mul(p,y),M=G.add(M,M),M=G.add(M,M),new R(D,O,M)}add(k){S(k);const{X:Z,Y:H,Z:B}=this,{X:j,Y:x,Z:D}=k;let{ZERO:O,ZERO:M,ZERO:N}=G;const y=q.a,p=G.mul(q.b,U8);let v=G.mul(Z,j),b=G.mul(H,x),m=G.mul(B,D),h=G.add(Z,H),c=G.add(j,x);h=G.mul(h,c),c=G.add(v,b),h=G.sub(h,c),c=G.add(Z,B);let l=G.add(j,D);return c=G.mul(c,l),l=G.add(v,m),c=G.sub(c,l),l=G.add(H,B),O=G.add(x,D),l=G.mul(l,O),O=G.add(b,m),l=G.sub(l,O),N=G.mul(y,c),O=G.mul(p,m),N=G.add(O,N),O=G.sub(b,N),N=G.add(b,N),M=G.mul(O,N),b=G.add(v,v),b=G.add(b,v),m=G.mul(y,m),c=G.mul(p,c),b=G.add(b,m),m=G.sub(v,m),m=G.mul(y,m),c=G.add(c,m),v=G.mul(b,c),M=G.add(M,v),v=G.mul(l,c),O=G.mul(h,O),O=G.sub(O,v),v=G.mul(h,b),N=G.mul(l,N),N=G.add(N,v),new R(O,M,N)}subtract(k){return this.add(k.negate())}is0(){return this.equals(R.ZERO)}multiply(k){const{endo:Z}=Q;if(!V.isValidNot0(k))throw Error("invalid scalar: out of range");let H,B;const j=(x)=>w.cached(this,x,(D)=>P6(R,D));if(Z){const{k1neg:x,k1:D,k2neg:O,k2:M}=E(k),{p:N,f:y}=j(D),{p,f:v}=j(M);B=y.add(v),H=d(Z.beta,N,p,x,O)}else{const{p:x,f:D}=j(k);H=x,B=D}return P6(R,[H,B])[0]}multiplyUnsafe(k){const{endo:Z}=Q,H=this;if(!V.isValid(k))throw Error("invalid scalar: out of range");if(k===j0||H.is0())return R.ZERO;if(k===F1)return H;if(w.hasCache(this))return this.multiply(k);if(Z){const{k1neg:B,k1:j,k2neg:x,k2:D}=E(k),{p1:O,p2:M}=function(N,y,p,v){let b=y,m=N.ZERO,h=N.ZERO;for(;p>Z1||v>Z1;)p&r0&&(m=m.add(b)),v&r0&&(h=h.add(b)),b=b.double(),p>>=r0,v>>=r0;return{p1:m,p2:h}}(R,H,j,D);return d(Z.beta,O,M,B,x)}return w.unsafe(H,k)}multiplyAndAddUnsafe(k,Z,H){const B=this.multiplyUnsafe(Z).add(k.multiplyUnsafe(H));return B.is0()?void 0:B}toAffine(k){return I(this,k)}isTorsionFree(){const{isTorsionFree:k}=Q;return X===F1||(k?k(R,this):w.unsafe(this,Y).is0())}clearCofactor(){const{clearCofactor:k}=Q;return X===F1?this:k?k(R,this):this.multiplyUnsafe(X)}isSmallOrder(){return this.multiplyUnsafe(X).is0()}toBytes(k=!0){return B8(k,"isCompressed"),this.assertValidity(),C(R,this,k)}toHex(k=!0){return z1(this.toBytes(k))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(k=!0){return this.toBytes(k)}_setWindowSize(k){this.precompute(k)}static normalizeZ(k){return P6(R,k)}static msm(k,Z){return qG(R,V,k,Z)}static fromPrivateKey(k){return R.BASE.multiply(l0(V,k))}}R.BASE=new R(q.Gx,q.Gy,G.ONE),R.ZERO=new R(G.ZERO,G.ONE,G.ZERO),R.Fp=G,R.Fn=V;const L=V.BITS,w=new PW(R,Q.endo?Math.ceil(L/2):L);return R.BASE.precompute(8),R},FW=function(W){return Uint8Array.of(W?2:3)},KW=function(W,Q){return{secretKey:Q.BYTES,publicKey:1+W.BYTES,publicKeyUncompressed:1+2*W.BYTES,publicKeyHasPrefix:!0,signature:2*Q.BYTES}},PG=function(W,Q,J={}){m7(Q),N6(J,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});const G=J.randomBytes||M8,V=J.hmac||((L,...w)=>l7(Q,L,C0(...w))),{Fp:q,Fn:X}=W,{ORDER:Y,BITS:K}=X,{keygen:P,getPublicKey:U,getSharedSecret:C,utils:F,lengths:z}=function(L,w={}){const{Fn:k}=L,Z=w.randomBytes||M8,H=Object.assign(KW(L.Fp,k),{seed:VW(k.ORDER)});function B(M){try{return!!l0(k,M)}catch(N){return!1}}function j(M=Z(H.seed)){return qW(_0(M,H.seed,"seed"),k.ORDER)}function x(M,N=!0){return L.BASE.multiply(l0(k,M)).toBytes(N)}function D(M){if(typeof M=="bigint")return!1;if(M instanceof L)return!0;const{secretKey:N,publicKey:y,publicKeyUncompressed:p}=H;if(k.allowedLengths||N===y)return;const v=o("key",M).length;return v===y||v===p}return Object.freeze({getPublicKey:x,getSharedSecret(M,N,y=!0){if(D(M)===!0)throw Error("first arg must be private key");if(D(N)===!1)throw Error("second arg must be public key");const p=l0(k,M);return L.fromHex(N).multiply(p).toBytes(y)},keygen(M){const N=j(M);return{secretKey:N,publicKey:x(N)}},Point:L,utils:{isValidSecretKey:B,isValidPublicKey(M,N){const{publicKey:y,publicKeyUncompressed:p}=H;try{const v=M.length;return!(N===!0&&v!==y||N===!1&&v!==p||!L.fromBytes(M))}catch(v){return!1}},randomSecretKey:j,isValidPrivateKey:B,randomPrivateKey:j,normPrivateKeyToScalar:(M)=>l0(k,M),precompute(M=8,N=L.BASE){return N.precompute(M,!1)}},lengths:H})}(W,J),$={prehash:!1,lowS:typeof J.lowS=="boolean"&&J.lowS,format:void 0,extraEntropy:!1},A="compact";function g(L){return L>Y>>F1}function T(L,w){if(!X.isValidNot0(w))throw Error(`invalid signature ${L}: out of range 1..Point.Fn.ORDER`);return w}class S{constructor(L,w,k){this.r=T("r",L),this.s=T("s",w),k!=null&&(this.recovery=k),Object.freeze(this)}static fromBytes(L,w=A){let k;if(function(j,x){M6(x);const D=z.signature;_0(j,x==="compact"?D:x==="recovered"?D+1:void 0,x+" signature")}(L,w),w==="der"){const{r:j,s:x}=L0.toSig(_0(L));return new S(j,x)}w==="recovered"&&(k=L[0],w="compact",L=L.subarray(1));const Z=X.BYTES,H=L.subarray(0,Z),B=L.subarray(Z,2*Z);return new S(X.fromBytes(H),X.fromBytes(B),k)}static fromHex(L,w){return this.fromBytes($8(L),w)}addRecoveryBit(L){return new S(this.r,this.s,L)}recoverPublicKey(L){const w=q.ORDER,{r:k,s:Z,recovery:H}=this;if(H==null||![0,1,2,3].includes(H))throw Error("recovery id invalid");if(Y*UW<w&&H>1)throw Error("recovery id is ambiguous for h>1 curve");const B=H===2||H===3?k+Y:k;if(!q.isValid(B))throw Error("recovery id 2 or 3 invalid");const j=q.toBytes(B),x=W.fromBytes(C0(FW(!(1&H)),j)),D=X.inv(B),O=I(o("msgHash",L)),M=X.create(-O*D),N=X.create(Z*D),y=W.BASE.multiplyUnsafe(M).add(x.multiplyUnsafe(N));if(y.is0())throw Error("point at infinify");return y.assertValidity(),y}hasHighS(){return g(this.s)}toBytes(L=A){if(M6(L),L==="der")return $8(L0.hexFromSig(this));const w=X.toBytes(this.r),k=X.toBytes(this.s);if(L==="recovered"){if(this.recovery==null)throw Error("recovery bit must be present");return C0(Uint8Array.of(this.recovery),w,k)}return C0(w,k)}toHex(L){return z1(this.toBytes(L))}assertValidity(){}static fromCompact(L){return S.fromBytes(o("sig",L),"compact")}static fromDER(L){return S.fromBytes(o("sig",L),"der")}normalizeS(){return this.hasHighS()?new S(this.r,X.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return z1(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return z1(this.toBytes("compact"))}}const E=J.bits2int||function(L){if(L.length>8192)throw Error("input is too large");const w=H1(L),k=8*L.length-K;return k>0?w>>BigInt(k):w},I=J.bits2int_modN||function(L){return X.create(E(L))},f=u1(K);function d(L){return function(w,k,Z,H){if(!$6(k,Z,H))throw Error("expected valid "+w+": "+Z+" <= n < "+H+", got "+k)}("num < 2^"+K,L,j0,f),X.toBytes(L)}function R(L,w){return _0(L,void 0,"message"),w?_0(Q(L),void 0,"prehashed message"):L}return Object.freeze({keygen:P,getPublicKey:U,getSharedSecret:C,utils:F,lengths:z,Point:W,sign(L,w,k={}){L=o("message",L);const{seed:Z,k2sig:H}=function(B,j,x){if(["recovered","canonical"].some((m)=>(m in x)))throw Error("sign() legacy options not supported");const{lowS:D,prehash:O,extraEntropy:M}=z6(x,$);B=R(B,O);const N=I(B),y=l0(X,j),p=[d(y),d(N)];if(M!=null&&M!==!1){const m=M===!0?G(z.secretKey):M;p.push(o("extraEntropy",m))}const v=C0(...p),b=N;return{seed:v,k2sig(m){const h=E(m);if(!X.isValidNot0(h))return;const c=X.inv(h),l=W.BASE.multiply(h).toAffine(),r=X.create(l.x);if(r===j0)return;const n=X.create(c*X.create(b+r*y));if(n===j0)return;let F0=(l.x===r?0:2)|Number(l.y&F1),q0=n;return D&&g(n)&&(q0=X.neg(n),F0^=1),new S(r,q0,F0)}}}(L,w,k);return function(B,j,x){if(typeof B!="number"||B<2)throw Error("hashLen must be a number");if(typeof j!="number"||j<2)throw Error("qByteLen must be a number");if(typeof x!="function")throw Error("hmacFn must be a function");const D=(h)=>new Uint8Array(h),O=(h)=>Uint8Array.of(h);let M=D(B),N=D(B),y=0;const p=()=>{M.fill(1),N.fill(0),y=0},v=(...h)=>x(N,M,...h),b=(h=D(0))=>{N=v(O(0),h),M=v(),h.length!==0&&(N=v(O(1),h),M=v())},m=()=>{if(y++>=1000)throw Error("drbg: tried 1000 values");let h=0;const c=[];for(;h<j;){M=v();const l=M.slice();c.push(l),h+=M.length}return C0(...c)};return(h,c)=>{let l;for(p(),b(h);!(l=c(m()));)b();return p(),l}}(Q.outputLen,X.BYTES,V)(Z,H)},verify(L,w,k,Z={}){const{lowS:H,prehash:B,format:j}=z6(Z,$);if(k=o("publicKey",k),w=R(o("message",w),B),("strict"in Z))throw Error("options.strict was renamed to lowS");const x=j===void 0?function(D){let O;const M=typeof D=="string"||I8(D),N=!M&&D!==null&&typeof D=="object"&&typeof D.r=="bigint"&&typeof D.s=="bigint";if(!M&&!N)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(N)O=new S(D.r,D.s);else if(M){try{O=S.fromBytes(o("sig",D),"der")}catch(y){if(!(y instanceof L0.Err))throw y}if(!O)try{O=S.fromBytes(o("sig",D),"compact")}catch(y){return!1}}return O||!1}(L):S.fromBytes(o("sig",L),j);if(x===!1)return!1;try{const D=W.fromBytes(k);if(H&&x.hasHighS())return!1;const{r:O,s:M}=x,N=I(w),y=X.inv(M),p=X.create(N*y),v=X.create(O*y),b=W.BASE.multiplyUnsafe(p).add(D.multiplyUnsafe(v));if(b.is0())return!1;return X.create(b.x)===O}catch(D){return!1}},recoverPublicKey(L,w,k={}){const{prehash:Z}=z6(k,$);return w=R(w,Z),S.fromBytes(L,"recovered").recoverPublicKey(w).toBytes()},Signature:S,hash:Q})},UG=function(W){const{CURVE:Q,curveOpts:J}=function(V){const q={a:V.a,b:V.b,p:V.Fp.ORDER,n:V.n,h:V.h,Gx:V.Gx,Gy:V.Gy},X=V.Fp;let Y=V.allowedPrivateKeyLengths?Array.from(new Set(V.allowedPrivateKeyLengths.map((K)=>Math.ceil(K/2)))):void 0;return{CURVE:q,curveOpts:{Fp:X,Fn:d1(q.n,{BITS:V.nBitLength,allowedLengths:Y,modFromBytes:V.wrapPrivateKey}),allowInfinityPoint:V.allowInfinityPoint,endo:V.endo,isTorsionFree:V.isTorsionFree,clearCofactor:V.clearCofactor,fromBytes:V.fromBytes,toBytes:V.toBytes}}}(W),G={hmac:W.hmac,randomBytes:W.randomBytes,lowS:W.lowS,bits2int:W.bits2int,bits2int_modN:W.bits2int_modN};return{CURVE:Q,curveOpts:J,hash:W.hash,ecdsaOpts:G}},FG=function(W){const{CURVE:Q,curveOpts:J,hash:G,ecdsaOpts:V}=UG(W);return function(q,X){const Y=X.Point;return Object.assign({},X,{ProjectivePoint:Y,CURVE:Object.assign({},q,QW(Y.Fn.ORDER,Y.Fn.BITS))})}(W,PG(YG(Q,J),G,V))},R8=function(W,...Q){let J=g7[W];if(J===void 0){const G=H6(d7(W));J=C0(G,G),g7[W]=J}return H6(C0(J,...Q))},L6=function(W){const{Fn:Q,BASE:J}=C1,G=l0(Q,W),V=J.multiply(G);return{scalar:g6(V.y)?G:Q.neg(G),bytes:v6(V)}},ZW=function(W){const Q=j8;if(!Q.isValidNot0(W))throw Error("invalid x: Fail if x \u2265 p");const J=Q.create(W*W),G=Q.create(J*W+BigInt(7));let V=Q.sqrt(G);g6(V)||(V=Q.neg(V));const q=C1.fromAffine({x:W,y:V});return q.assertValidity(),q},kW=function(...W){return C1.Fn.create(b1(R8("BIP0340/challenge",...W)))},T7=function(W){return L6(W).bytes},ZG=function(W,Q,J=M8(32)){const{Fn:G}=C1,V=o("message",W),{bytes:q,scalar:X}=L6(Q),Y=o("auxRand",J,32),K=G.toBytes(X^b1(R8("BIP0340/aux",Y))),P=R8("BIP0340/nonce",K,q,V),{bytes:U,scalar:C}=L6(P),F=kW(U,q,V),z=new Uint8Array(64);if(z.set(U,0),z.set(G.toBytes(G.create(C+F*X)),32),!HW(z,V,q))throw Error("sign: Invalid signature produced");return z},HW=function(W,Q,J){const{Fn:G,BASE:V}=C1,q=o("signature",W,64),X=o("message",Q),Y=o("publicKey",J,32);try{const K=ZW(b1(Y)),P=b1(q.subarray(0,32));if(!$6(P,v7,k1.p))return!1;const U=b1(q.subarray(32,64));if(!$6(U,v7,k1.n))return!1;const C=kW(G.toBytes(P),v6(K),X),F=V.multiplyUnsafe(U).add(K.multiplyUnsafe(G.neg(C))),{x:z,y:$}=F.toAffine();return!(F.is0()||!g6($)||z!==P)}catch(K){return!1}},Y1=typeof globalThis=="object"&&("crypto"in globalThis)?globalThis.crypto:void 0,u7=(()=>typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function")(),r9=Array.from({length:256},(W,Q)=>Q.toString(16).padStart(2,"0")),$7=48,o9=57,M7=65,a9=70,B7=97,n9=102;class x6{}class c7 extends x6{constructor(W,Q,J,G){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=W,this.outputLen=Q,this.padOffset=J,this.isLE=G,this.buffer=new Uint8Array(W),this.view=X6(this.buffer)}update(W){H8(this),a0(W=I6(W));const{view:Q,buffer:J,blockLen:G}=this,V=W.length;for(let q=0;q<V;){const X=Math.min(G-this.pos,V-q);if(X!==G)J.set(W.subarray(q,q+X),this.pos),this.pos+=X,q+=X,this.pos===G&&(this.process(Q,0),this.pos=0);else{const Y=X6(W);for(;G<=V-q;q+=G)this.process(Y,q)}}return this.length+=W.length,this.roundClean(),this}digestInto(W){H8(this),function(U,C){a0(U);const F=C.outputLen;if(U.length<F)throw Error("digestInto() expects output buffer of length at least "+F)}(W,this),this.finished=!0;const{buffer:Q,view:J,blockLen:G,isLE:V}=this;let{pos:q}=this;Q[q++]=128,C8(this.buffer.subarray(q)),this.padOffset>G-q&&(this.process(J,0),q=0);for(let U=q;U<G;U++)Q[U]=0;(function(U,C,F,z){if(typeof U.setBigUint64=="function")return U.setBigUint64(C,F,z);const $=BigInt(32),A=BigInt(4294967295),g=Number(F>>$&A),T=Number(F&A),S=z?4:0,E=z?0:4;U.setUint32(C+S,g,z),U.setUint32(C+E,T,z)})(J,G-8,BigInt(8*this.length),V),this.process(J,0);const X=X6(W),Y=this.outputLen;if(Y%4)throw Error("_sha2: outputLen should be aligned to 32bit");const K=Y/4,P=this.get();if(K>P.length)throw Error("_sha2: outputLen bigger than state");for(let U=0;U<K;U++)X.setUint32(4*U,P[U],V)}digest(){const{buffer:W,outputLen:Q}=this;this.digestInto(W);const J=W.slice(0,Q);return this.destroy(),J}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());const{blockLen:Q,buffer:J,length:G,finished:V,destroyed:q,pos:X}=this;return W.destroyed=q,W.finished=V,W.length=G,W.pos=X,G%Q&&W.buffer.set(J),W}clone(){return this._cloneInto()}}var A0=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),t9=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),v0=new Uint32Array(64);class _7 extends c7{constructor(W=32){super(64,W,8,!1),this.A=0|A0[0],this.B=0|A0[1],this.C=0|A0[2],this.D=0|A0[3],this.E=0|A0[4],this.F=0|A0[5],this.G=0|A0[6],this.H=0|A0[7]}get(){const{A:W,B:Q,C:J,D:G,E:V,F:q,G:X,H:Y}=this;return[W,Q,J,G,V,q,X,Y]}set(W,Q,J,G,V,q,X,Y){this.A=0|W,this.B=0|Q,this.C=0|J,this.D=0|G,this.E=0|V,this.F=0|q,this.G=0|X,this.H=0|Y}process(W,Q){for(let C=0;C<16;C++,Q+=4)v0[C]=W.getUint32(Q,!1);for(let C=16;C<64;C++){const F=v0[C-15],z=v0[C-2],$=H0(F,7)^H0(F,18)^F>>>3,A=H0(z,17)^H0(z,19)^z>>>10;v0[C]=A+v0[C-7]+$+v0[C-16]|0}let{A:J,B:G,C:V,D:q,E:X,F:Y,G:K,H:P}=this;for(let C=0;C<64;C++){const F=P+(H0(X,6)^H0(X,11)^H0(X,25))+((U=X)&Y^~U&K)+t9[C]+v0[C]|0,z=(H0(J,2)^H0(J,13)^H0(J,22))+e9(J,G,V)|0;P=K,K=Y,Y=X,X=q+F|0,q=V,V=G,G=J,J=F+z|0}var U;J=J+this.A|0,G=G+this.B|0,V=V+this.C|0,q=q+this.D|0,X=X+this.E|0,Y=Y+this.F|0,K=K+this.G|0,P=P+this.H|0,this.set(J,G,V,q,X,Y,K,P)}roundClean(){C8(v0)}destroy(){this.set(0,0,0,0,0,0,0,0),C8(this.buffer)}}var H6=s9(()=>new _7);class w6 extends x6{constructor(W,Q){super(),this.finished=!1,this.destroyed=!1,m7(W);const J=I6(Q);if(this.iHash=W.create(),typeof this.iHash.update!="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const G=this.blockLen,V=new Uint8Array(G);V.set(J.length>G?W.create().update(J).digest():J);for(let q=0;q<V.length;q++)V[q]^=54;this.iHash.update(V),this.oHash=W.create();for(let q=0;q<V.length;q++)V[q]^=106;this.oHash.update(V),C8(V)}update(W){return H8(this),this.iHash.update(W),this}digestInto(W){H8(this),a0(W,this.outputLen),this.finished=!0,this.iHash.digestInto(W),this.oHash.update(W),this.oHash.digestInto(W),this.destroy()}digest(){const W=new Uint8Array(this.oHash.outputLen);return this.digestInto(W),W}_cloneInto(W){W||(W=Object.create(Object.getPrototypeOf(this),{}));const{oHash:Q,iHash:J,finished:G,destroyed:V,blockLen:q,outputLen:X}=this;return W.finished=G,W.destroyed=V,W.blockLen=q,W.outputLen=X,W.oHash=Q._cloneInto(W.oHash),W.iHash=J._cloneInto(W.iHash),W}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var l7=(W,Q,J)=>new w6(W,Q).update(J).digest();l7.create=(W,Q)=>new w6(W,Q);var D6=BigInt(0),C6=BigInt(1),Y6=(W)=>typeof W=="bigint"&&D6<=W,u1=(W)=>(C6<<BigInt(W))-C6,Q0=BigInt(0),W0=BigInt(1),i0=BigInt(2),n7=BigInt(3),s7=BigInt(4),e7=BigInt(5),WG=BigInt(7),t7=BigInt(8),JG=BigInt(9),R7=BigInt(16),VG=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"],Z1=BigInt(0),r0=BigInt(1),F6=new WeakMap,YW=new WeakMap;class PW{constructor(W,Q){this.BASE=W.BASE,this.ZERO=W.ZERO,this.Fn=W.Fn,this.bits=Q}_unsafeLadder(W,Q,J=this.ZERO){let G=W;for(;Q>Z1;)Q&r0&&(J=J.add(G)),G=G.double(),Q>>=r0;return J}precomputeWindow(W,Q){const{windows:J,windowSize:G}=U6(Q,this.bits),V=[];let q=W,X=q;for(let Y=0;Y<J;Y++){X=q,V.push(X);for(let K=1;K<G;K++)X=X.add(q),V.push(X);q=X.double()}return V}wNAF(W,Q,J){if(!this.Fn.isValid(J))throw Error("invalid scalar");let G=this.ZERO,V=this.BASE;const q=U6(W,this.bits);for(let X=0;X<q.windows;X++){const{nextN:Y,offset:K,isZero:P,isNeg:U,isNegF:C,offsetF:F}=w7(J,X,q);J=Y,P?V=V.add(L8(C,Q[F])):G=G.add(L8(U,Q[K]))}return D7(J),{p:G,f:V}}wNAFUnsafe(W,Q,J,G=this.ZERO){const V=U6(W,this.bits);for(let q=0;q<V.windows&&J!==Z1;q++){const{nextN:X,offset:Y,isZero:K,isNeg:P}=w7(J,q,V);if(J=X,!K){const U=Q[Y];G=G.add(P?U.negate():U)}}return D7(J),G}getPrecomputes(W,Q,J){let G=F6.get(Q);return G||(G=this.precomputeWindow(Q,W),W!==1&&(typeof J=="function"&&(G=J(G)),F6.set(Q,G))),G}cached(W,Q,J){const G=K6(W);return this.wNAF(G,this.getPrecomputes(G,W,J),Q)}unsafe(W,Q,J,G){const V=K6(W);return V===1?this._unsafeLadder(W,Q,G):this.wNAFUnsafe(V,this.getPrecomputes(V,W,J),Q,G)}createCache(W,Q){XW(Q,this.bits),YW.set(W,Q),F6.delete(W)}hasCache(W){return K6(W)!==1}}var A7=(W,Q)=>(W+(W>=0?Q:-Q)/UW)/Q,L0={Err:class extends Error{constructor(W=""){super(W)}},_tlv:{encode(W,Q){const{Err:J}=L0;if(W<0||W>256)throw new J("tlv.encode: wrong tag");if(1&Q.length)throw new J("tlv.encode: unpadded data");const G=Q.length/2,V=P8(G);if(V.length/2&128)throw new J("tlv.encode: long form length too big");const q=G>127?P8(V.length/2|128):"";return P8(W)+q+V+Q},decode(W,Q){const{Err:J}=L0;let G=0;if(W<0||W>256)throw new J("tlv.encode: wrong tag");if(Q.length<2||Q[G++]!==W)throw new J("tlv.decode: wrong tlv");const V=Q[G++];let q=0;if(128&V){const Y=127&V;if(!Y)throw new J("tlv.decode(long): indefinite length not supported");if(Y>4)throw new J("tlv.decode(long): byte length is too big");const K=Q.subarray(G,G+Y);if(K.length!==Y)throw new J("tlv.decode: length bytes not complete");if(K[0]===0)throw new J("tlv.decode(long): zero leftmost byte");for(let P of K)q=q<<8|P;if(G+=Y,q<128)throw new J("tlv.decode(long): not minimal encoding")}else q=V;const X=Q.subarray(G,G+q);if(X.length!==q)throw new J("tlv.decode: wrong value length");return{v:X,l:Q.subarray(G+q)}}},_int:{encode(W){const{Err:Q}=L0;if(W<j0)throw new Q("integer: negative integers are not allowed");let J=P8(W);if(8&Number.parseInt(J[0],16)&&(J="00"+J),1&J.length)throw new Q("unexpected DER parsing assertion: unpadded hex");return J},decode(W){const{Err:Q}=L0;if(128&W[0])throw new Q("invalid signature integer: negative");if(W[0]===0&&!(128&W[1]))throw new Q("invalid signature integer: unnecessary leading zero");return H1(W)}},toSig(W){const{Err:Q,_int:J,_tlv:G}=L0,V=o("signature",W),{v:q,l:X}=G.decode(48,V);if(X.length)throw new Q("invalid signature: left bytes after parsing");const{v:Y,l:K}=G.decode(2,q),{v:P,l:U}=G.decode(2,K);if(U.length)throw new Q("invalid signature: left bytes after parsing");return{r:J.decode(Y),s:J.decode(P)}},hexFromSig(W){const{_tlv:Q,_int:J}=L0,G=Q.encode(2,J.encode(W.r))+Q.encode(2,J.encode(W.s));return Q.encode(48,G)}},j0=BigInt(0),F1=BigInt(1),UW=BigInt(2),U8=BigInt(3),XG=BigInt(4),k1={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},KG={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},zG=BigInt(0),v7=BigInt(1),B6=BigInt(2),j8=d1(k1.p,{sqrt(W){const Q=k1.p,J=BigInt(3),G=BigInt(6),V=BigInt(11),q=BigInt(22),X=BigInt(23),Y=BigInt(44),K=BigInt(88),P=W*W*W%Q,U=P*P*W%Q,C=P0(U,J,Q)*U%Q,F=P0(C,J,Q)*U%Q,z=P0(F,B6,Q)*P%Q,$=P0(z,V,Q)*z%Q,A=P0($,q,Q)*$%Q,g=P0(A,Y,Q)*A%Q,T=P0(g,K,Q)*g%Q,S=P0(T,Y,Q)*A%Q,E=P0(S,J,Q)*U%Q,I=P0(E,X,Q)*$%Q,f=P0(I,G,Q)*P%Q,d=P0(f,B6,Q);if(!j8.eql(j8.sqr(d),W))throw Error("Cannot find square root");return d}}),zW=function(W,Q){const J=(G)=>FG({...W,hash:G});return{...J(Q),create:J}}({...k1,Fp:j8,lowS:!0,endo:KG},H6),g7={},v6=(W)=>W.toBytes(!0).slice(1),C1=(()=>zW.Point)(),g6=(W)=>W%B6===zG,b1=H1,T6=(()=>{const W=(Q=M8(48))=>qW(Q,k1.n);return zW.utils.randomSecretKey,{keygen(Q){const J=W(Q);return{secretKey:J,publicKey:T7(J)}},getPublicKey:T7,sign:ZG,verify:HW,Point:C1,utils:{randomSecretKey:W,randomPrivateKey:W,taggedHash:R8,lift_x:ZW,pointToBytes:v6,numberToBytesBE:x8,bytesToNumberBE:H1,mod:U0},lengths:{secretKey:32,publicKey:32,publicKeyHasPrefix:!1,signature:64,seed:48}}})(),kG=new TextEncoder,HG=new TextDecoder,o0=(W)=>kG.encode(W),k8=(W)=>HG.decode(W),j6=(W)=>Array.from(W,(Q)=>Q.toString(16).padStart(2,"0")).join(""),R0=JSON.stringify,O8=JSON.parse,CW=(W,Q=Number.MAX_SAFE_INTEGER)=>W.split("").reduce((J,G)=>J+G.charCodeAt(0),0)%Q,S6="AES-GCM",CG={},F8=(W)=>CG[W]??=crypto.subtle.digest("SHA-1",o0(W)).then((Q)=>{const J=new Uint8Array(Q);let G="";for(let V of J)G+=V.toString(36);return G}),$G=async(W,Q)=>{const J=crypto.getRandomValues(new Uint8Array(12)),G=await W,V=await crypto.subtle.encrypt({name:S6,iv:J},G,o0(Q));return`${J.join(",")}\$${((q)=>{const X=new Uint8Array(q);let Y="";for(let K=0;K<X.length;K+=32768)Y+=String.fromCharCode(...X.subarray(K,K+32768));return btoa(Y)})(V)}`},MG=async(W,Q)=>{const[J,G]=Q.split("$");if(!J||!G)throw Error("Invalid encrypted payload format");const V=Uint8Array.from(J.split(","),Number),q=await W,X=await crypto.subtle.decrypt({name:S6,iv:V},q,(Y=G,Uint8Array.from(atob(Y),(K)=>K.charCodeAt(0)).buffer));var Y;return k8(X)},m1="GenosRTC",y6=(W,Q)=>Array.from({length:W},Q),BG="0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz",R6=(W)=>Array.from(crypto.getRandomValues(new Uint8Array(W)),(Q)=>BG[Q%62]).join(""),P1=R6(20),K1=Promise.all.bind(Promise),LG=typeof window!="undefined",{entries:O6,fromEntries:$W,keys:jG}=Object,d0=()=>{},c0=(W)=>Error(`${m1}: ${W}`),K8=(...W)=>W.join("@"),S7="icegatheringstatechange",y7="offer",RG=[...y6(3,(W,Q)=>`stun:stun${Q||""}.l.google.com:19302`),"stun:stun.cloudflare.com:3478"].map((W)=>({urls:W})),Z6=(W,{rtcConfig:Q,rtcPolyfill:J,turnConfig:G})=>{const V=new(J||RTCPeerConnection)({iceServers:[...RG,...G||[]],...Q}),q={};let X,Y=!1,K=!1;const P=(F)=>Object.assign(F,{binaryType:"arraybuffer",bufferedAmountLowThreshold:65535,onmessage(z){return q.data?.(z.data)},onopen(){return q.connect?.()},onclose(){return q.close?.()},onerror(z){return!z?.error?.message?.includes("User-Initiated Abort")&&q.error?.(z)}}),U=()=>Promise.race([new Promise((F)=>{const z=()=>{V.iceGatheringState==="complete"&&(V.removeEventListener(S7,z),F())};V.addEventListener(S7,z),z()}),new Promise((F)=>setTimeout(F,5000))]).then(()=>({type:V.localDescription.type,sdp:V.localDescription.sdp.replace(/a=ice-options:trickle\s\n/g,"")}));W?P(X=V.createDataChannel("data")):V.ondatachannel=({channel:F})=>P(X=F),V.onnegotiationneeded=async()=>{try{Y=!0,await V.setLocalDescription(),q.signal?.(await U())}catch(F){q.error?.(F)}finally{Y=!1}},V.onconnectionstatechange=()=>{["disconnected","failed","closed"].includes(V.connectionState)&&q.close?.()},V.ontrack=(F)=>{q.track?.(F.track,F.streams[0]),q.stream?.(F.streams[0])},V.onremovestream=(F)=>q.stream?.(F.stream),W&&!V.canTrickleIceCandidates&&V.onnegotiationneeded();const C=()=>V.getSenders();return{created:Date.now(),connection:V,get channel(){return X},get isDead(){return V.connectionState==="closed"},async signal(F){if(X?.readyState!=="open"||F.sdp?.includes("a=rtpmap"))try{if(F.type===y7){if(Y||V.signalingState!=="stable"&&!K){if(W)return;await K1([V.setLocalDescription({type:"rollback"}),V.setRemoteDescription(F)])}else await V.setRemoteDescription(F);await V.setLocalDescription();const z=await U();return q.signal?.(z),z}if(F.type==="answer"){K=!0;try{await V.setRemoteDescription(F)}finally{K=!1}}}catch(z){q.error?.(z)}},sendData(F){return X.send(F)},destroy(){X?.close(),V.close(),Y=K=!1},setHandlers(F){return Object.assign(q,F)},offerPromise:W?new Promise((F)=>q.signal=(z)=>z.type===y7&&F(z)):Promise.resolve(),addStream(F){return F.getTracks().forEach((z)=>V.addTrack(z,F))},removeStream(F){return C().filter((z)=>F.getTracks().includes(z.track)).forEach((z)=>V.removeTrack(z))},addTrack(F,z){return V.addTrack(F,z)},removeTrack(F){const z=C().find(($)=>$.track===F);z&&V.removeTrack(z)},replaceTrack(F,z){return C().find(($)=>$.track===F)?.replaceTrack(z)}}},OG=Object.getPrototypeOf(Uint8Array),u0=16369,z8=255,E7="bufferedamountlow",U1=(W)=>"@_"+W,IG=(W,Q,J)=>{const G={},V={},q={},X={},Y={},K={},P={},U={onPeerJoin:d0,onPeerLeave:d0,onPeerStream:d0,onPeerTrack:d0},C=(Z,H)=>(Z?Array.isArray(Z)?Z:[Z]:jG(G)).flatMap((B)=>{const j=G[B];return j?H(B,j):(console.warn(`${m1}: no peer with id ${B} found`),[])}),F=(Z)=>{G[Z]&&(delete G[Z],delete X[Z],delete Y[Z],U.onPeerLeave(Z),Q(Z))},z=(Z)=>{if(V[Z])return q[Z];if(!Z)throw c0("action type argument is required");const H=o0(Z);if(H.byteLength>12)throw c0(`action type string "${Z}" (${H.byteLength}b) exceeds byte limit (12). Hint: choose a shorter name.`);const B=new Uint8Array(12);B.set(H);let j=0;return V[Z]={onComplete:d0,onProgress:d0,setOnComplete(x){return V[Z]={...V[Z],onComplete:x}},setOnProgress(x){return V[Z]={...V[Z],onProgress:x}},async send(x,D,O,M){if(O&&typeof O!="object")throw c0("action meta argument must be an object");const N=typeof x;if(N==="undefined")throw c0("action data cannot be undefined");const y=N!=="string",p=x instanceof Blob,v=p||x instanceof ArrayBuffer||x instanceof OG;if(O&&!v)throw c0("action meta argument can only be used with binary data");const b=v?new Uint8Array(p?await x.arrayBuffer():x):o0(y?R0(x):x),m=O?o0(R0(O)):null,h=Math.ceil(b.byteLength/u0)+(O?1:0)||1,c=y6(h,(l,r)=>{const n=r===h-1,F0=O&&r===0,q0=new Uint8Array(15+(F0?m.byteLength:n?b.byteLength-u0*(h-(O?2:1)):u0));return q0.set(B),q0.set([j],12),q0.set([n|F0<<1|v<<2|y<<3],13),q0.set([Math.round((r+1)/h*z8)],14),q0.set(O?F0?m:b.subarray((r-1)*u0,r*u0):b.subarray(r*u0,(r+1)*u0),15),q0});return j=j+1&z8,K1(C(D,async(l,r)=>{const{channel:n}=r;let F0=0;for(;F0<h;){const q0=c[F0];if(n.bufferedAmount>n.bufferedAmountLowThreshold&&await new Promise((DW)=>{const d6=()=>{n.removeEventListener(E7,d6),DW()};n.addEventListener(E7,d6)}),!G[l])break;r.sendData(q0),F0++,M?.(q0[14]/z8,l,O)}}))}},q[Z]||=[V[Z].send,V[Z].setOnComplete,V[Z].setOnProgress]},$=async()=>{await w(""),await new Promise((Z)=>setTimeout(Z,99)),O6(G).forEach(([Z,H])=>{H.destroy(),delete G[Z]}),J()},[A,g]=z(U1("ping")),[T,S]=z(U1("pong")),[E,I]=z(U1("signal")),[f,d]=z(U1("stream")),[R,L]=z(U1("track")),[w,k]=z(U1("leave"));return W((Z,H)=>{G[H]||(G[H]=Z,Z.setHandlers({data(B){return((j,x)=>{const D=new Uint8Array(x),O=k8(D.subarray(0,12)).replaceAll("\0",""),[M]=D.subarray(12,13),[N]=D.subarray(13,14),[y]=D.subarray(14,15),p=D.subarray(15),v=!!(1&N),b=!!(2&N),m=!!(4&N),h=!!(8&N);if(!V[O])return void console.warn(`${m1}: received message with unregistered type (${O})`);X[j]||={},X[j][O]||={};const c=X[j][O][M]||={chunks:[]};if(b?c.meta=O8(k8(p)):c.chunks.push(p),V[O].onProgress(y/z8,j,c.meta),!v)return;const l=new Uint8Array(c.chunks.reduce((r,n)=>r+n.byteLength,0));if(c.chunks.reduce((r,n)=>(l.set(n,r),r+n.byteLength),0),delete X[j][O][M],m)V[O].onComplete(l,j,c.meta);else{const r=k8(l);V[O].onComplete(h?O8(r):r,j)}})(H,B)},stream(B){U.onPeerStream(B,H,K[H]),delete K[H]},track(B,j){U.onPeerTrack(B,j,H,P[H]),delete P[H]},signal(B){return E(B,H)},close(){return F(H)},error(B){console.error(B),F(H)}}),U.onPeerJoin(H))}),g((Z,H)=>T("",H)),S((Z,H)=>{Y[H]?.(),delete Y[H]}),I((Z,H)=>G[H]?.signal(Z)),d((Z,H)=>K[H]=Z),L((Z,H)=>P[H]=Z),k((Z,H)=>F(H)),LG&&addEventListener("beforeunload",$),{makeAction:z,leave:$,async ping(Z){if(!Z)throw c0("ping() must be called with target peer ID");const H=Date.now();return A("",Z),await new Promise((B)=>Y[Z]=B),Date.now()-H},getPeers(){return $W(O6(G).map(([Z,H])=>[Z,H.connection]))},addStream(Z,H,B){return C(H,async(j,x)=>{B&&await f(B,j),x.addStream(Z)})},removeStream(Z,H){return C(H,(B,j)=>j.removeStream(Z))},addTrack(Z,H,B,j){return C(B,async(x,D)=>{j&&await R(j,x),D.addTrack(Z,H)})},removeTrack(Z,H){return C(H,(B,j)=>j.removeTrack(Z))},replaceTrack(Z,H,B,j){return C(B,async(x,D)=>{j&&await R(j,x),D.replaceTrack(Z,H)})},onPeerJoin(Z){return U.onPeerJoin=Z},onPeerLeave(Z){return U.onPeerLeave=Z},onPeerStream(Z){return U.onPeerStream=Z},onPeerTrack(Z){return U.onPeerTrack=Z}}},Z8={},xG=(W,Q,J,G)=>(W.relayUrls??(G?((V,q)=>{const X=[...V];let Y=X.length;const K=()=>{const P=1e4*Math.sin(q++);return P-Math.floor(P)};for(;Y;){const P=Math.floor(K()*Y--);[X[Y],X[P]]=[X[P],X[Y]]}return X})(Q,CW(W.appId)):Q)).slice(0,W.relayUrls?.length??W.relayRedundancy??J),MW={},BW="EVENT",LW=T6.utils.randomSecretKey(),wG=j6(T6.getPublicKey(LW)),E6={},h1={},DG={},jW=()=>Math.floor(Date.now()/1000),RW=(W)=>DG[W]??=CW(W,1e4)+20000,p7=async(W,Q)=>{const J={kind:RW(W),content:Q,pubkey:wG,created_at:jW(),tags:[["x",W]]},G=new Uint8Array(await crypto.subtle.digest("SHA-256",o0(R0([0,J.pubkey,J.created_at,J.kind,J.tags,J.content])))),V=T6.sign(G,LW);return R0([BW,{...J,id:j6(G),sig:j6(V)}])},f7=(W,Q)=>(E6[W]=Q,R0(["REQ",W,{kinds:[RW(Q)],since:jW(),"#x":[Q]}])),h7=(W)=>(delete E6[W],R0(["CLOSE",W])),p6=(({init:W,subscribe:Q,announce:J})=>{const G={};let V,q,X=!1;return(Y,K,P)=>{const{appId:U}=Y;if(G[U]?.[K])return G[U][K];if(!Y||!K||!U&&!Y.firebaseApp)throw c0(Y?K?"appId missing":"roomId required":"config required");let C=d0;if(!X){const k=W(Y);q=y6(20,()=>Z6(!0,Y)),V=Array.isArray(k)?k:[k];const Z=setInterval(()=>{q=q.filter((H)=>{const B=Date.now()-H.created<57333;return B||H.destroy(),B})},57333);G.offerCleanupTimer||=Z,X=!0}const F={},z={},$=K8(m1,U,K),A=F8($),g=F8(K8($,P1)),T=(async(k,Z,H)=>{const B=await crypto.subtle.digest("SHA-256",o0(`${k}:${Z}:${H}`));return crypto.subtle.importKey("raw",B,{name:S6},!1,["encrypt","decrypt"])})(Y.password||"",U,K),S=(k)=>async(Z)=>({type:Z.type,sdp:await k(T,Z.sdp)}),E=S(MG),I=S($G),f=(k,Z)=>{z[Z]!==k&&(z[Z]?.destroy(),z[Z]=k,C(k,Z),F[Z]?.forEach((H)=>H!==k&&H.destroy()),delete F[Z])},d=(k,Z)=>{z[Z]===k&&delete z[Z]},R=K1(V.map(async(k,Z)=>{return Q(await k,await A,await g,(H=Z,async(B,j,x)=>{const[D,O]=await K1([A,g]);if(B!==D&&B!==O)return;const{peerId:M,offer:N,answer:y,peer:p}=typeof j=="string"?O8(j):j;if(M!==P1&&!z[M])if(N){if(F[M]?.[H]&&P1>M)return;const v=Z6(!1,Y);v.setHandlers({connect(){return f(v,M)},close(){return d(v,M)}});try{const b=await E(N);if(v.isDead)return;const[m,h]=await K1([F8(K8($,M)),v.signal(b).then(I)]);x(m,R0({peerId:P1,answer:h}))}catch{P?.({error:"decryption failed (offer)",appId:U,peerId:M,roomId:K})}}else if(y){const v=p||F[M]?.[H];if(!v||v.isDead)return;v.setHandlers({connect(){return f(v,M)},close(){return d(v,M)}});try{v.signal(await E(y))}catch{P?.({error:"decryption failed (answer)",appId:U,peerId:M,roomId:K})}}else{if(F[M]?.[H])return;const v=q.pop()||Z6(!0,Y),[b,{offer:m}]=await K1([F8(K8($,M)),v.offerPromise.then(I).then((h)=>({offer:h}))]);F[M]||=[],F[M][H]=v,v.setHandlers({connect(){return f(v,M)},close(){return d(v,M)}}),x(b,R0({peerId:P1,offer:m,peer:v}))}}));var H})),L=[];R.then((k)=>{V.forEach((Z,H)=>{const B=async()=>{const j=await J(await Z,await A,await g);L[H]=setTimeout(B,typeof j=="number"?j:5333)};B()}),G[U][K].onCleanup=()=>{delete G[U][K],L.forEach(clearTimeout),k.forEach((Z)=>Z()),Object.keys(G).length===0&&(clearInterval(G.offerCleanupTimer),delete G.offerCleanupTimer)}}),G[U]||={};const w=IG((k)=>C=k,(k)=>delete z[k],()=>w.onCleanup?.());return G[U][K]=w}})({init(W){return xG(W,NG,5,!0).map((Q)=>{const J=((G,V)=>{const q={},X=()=>{const Y=new WebSocket(G);Y.onclose=()=>{Z8[G]??=3333,setTimeout(X,Z8[G]),Z8[G]*=2},Y.onmessage=(K)=>V(K.data),q.socket=Y,q.url=Y.url,q.ready=new Promise((K)=>{Y.onopen=()=>{Z8[G]=3333,K(q)}}),q.send=(K)=>{Y.readyState===1&&Y.send(K)}};return X(),q})(Q,(G)=>{const[V,q,X,Y]=O8(G);if(V===BW)h1[q]?.(E6[q],X.content);else{const K=`${m1}: relay failure from ${J.url} - `;V==="NOTICE"?console.warn(K+q):V!=="OK"||X||console.warn(K+Y)}});return MW[Q]=J,J.ready})},subscribe(W,Q,J,G){const V=R6(64),q=R6(64);return h1[V]=h1[q]=(X,Y)=>G(X,Y,async(K,P)=>W.send(await p7(K,P))),W.send(f7(V,Q)),W.send(f7(q,J)),()=>{W.send(h7(V)),W.send(h7(q)),delete h1[V],delete h1[q]}},async announce(W,Q){return W.send(await p7(Q,R0({peerId:P1})))}}),ZV=(b7=MW,()=>$W(O6(b7).map(([W,Q])=>[W,Q.socket]))),b7,NG=["black.nostrcity.club","eu.purplerelay.com","ftp.halifax.rwth-aachen.de/nostr","nostr.cool110.xyz","nostr.data.haus","nostr.mom","nostr.oxtr.dev","nostr.sathoarder.com","nostr.vulpem.com","playground.nostrcheck.me/relay","relay.agorist.space","relay.binaryrobot.com","relay.fountain.fm","relay.mostro.network","relay.nostraddress.com","relay.nostrdice.com","relay.nostromo.social","relay.oldenburg.cool","relay.snort.social","relay.verified-nostr.com","sendit.nosflare.com","yabu.me/v2","relay.damus.io"].map((W)=>"wss://"+W);var OW=(W,Q,J)=>{let G=Q.timestamp;if(Q.timestamp&&typeof Q.timestamp.physical==="number"){const X=Date.now()+7200000;if(Q.timestamp.physical>X)G={physical:X,logical:Q.timestamp.logical}}if(!W||!W.timestamp)return{resolved:!0,value:Q.value,timestamp:G};const V=W.timestamp;if(J.compare(V,G)<0)return{resolved:!0,value:Q.value,timestamp:G};return{resolved:!1}};class f6{constructor(W,Q=50){this.key=`gdb_oplog_${W}`,this.maxSize=Q,this.log=this._load()}_load(){try{const W=localStorage.getItem(this.key);return W?JSON.parse(W):[]}catch(W){return console.error("Failed to load oplog from localStorage:",W),[]}}_save(){try{localStorage.setItem(this.key,JSON.stringify(this.log))}catch(W){console.error("Failed to save oplog to localStorage:",W)}}add(W){if(this.log.push(W),this.log.length>this.maxSize)this.log.shift();this._save()}getDelta(W,Q){if(!W)return[...this.log];return this.log.filter((J)=>Q(J.timestamp,W)>0)}getOldest(){return this.log[0]}clear(){this.log=[],localStorage.removeItem(this.key)}}var AG=()=>{const W=new Map,Q=async()=>{try{const K=await navigator.storage.getDirectory(),U=await(await K.getFileHandle("~opfs-sync-test",{create:!0})).createSyncAccessHandle?.();return await U?.close(),await K.removeEntry("~opfs-sync-test"),!!U}catch{return!1}};let J="idb";const G=(async()=>{if(await Q())J="sync";else try{const K=await navigator.storage.getDirectory(),U=await(await K.getFileHandle("~opfs-async-test",{create:!0})).createWritable?.();if(await U?.close(),await K.removeEntry("~opfs-async-test"),U)J="async";else J="idb"}catch{J="idb"}})(),V=async(K,P)=>{if(!W.has(K))W.set(K,[]);const U=W.get(K),C=U[U.length-1]||Promise.resolve();let F;const z=new Promise(($)=>F=$);U.push(z);try{return await C,await P()}finally{if(U.shift(),F(),U.length===0)W.delete(K)}},q=(()=>{let K;const P=async()=>{if(!K)K=new Promise((U,C)=>{const F=indexedDB.open("opfs-fallback-db",1);F.onupgradeneeded=()=>F.result.createObjectStore("files"),F.onsuccess=()=>U(F.result),F.onerror=()=>C(F.error)});return K};return{getDB:P,get:async(U)=>{const C=await P();return new Promise((F,z)=>{const A=C.transaction("files","readonly").objectStore("files").get(U);A.onsuccess=()=>F(A.result||new Uint8Array),A.onerror=()=>z(A.error)})},set:async(U,C)=>{const F=await P();return new Promise((z,$)=>{const g=F.transaction("files","readwrite").objectStore("files").put(C,U);g.onsuccess=()=>z(),g.onerror=()=>$(g.error)})}}})(),X=async(K)=>{await G;try{if(J==="idb"){const z=await q.get(K);return{type:"loaded",name:K,data:z}}const U=await(await navigator.storage.getDirectory()).getFileHandle(K);if(J==="sync"){let z;try{z=await U.createSyncAccessHandle();const $=z.getSize(),A=new Uint8Array($),g=z.read(A,{at:0});return{type:"loaded",name:K,data:A.slice(0,g)}}finally{z?.close()}}const C=await U.getFile(),F=new Uint8Array(await C.arrayBuffer());return{type:"loaded",name:K,data:F}}catch(P){const U=P.name==="NotFoundError"?"File not found":P.message||"Error reading file";return{type:"error",name:K,message:U}}},Y=async(K,P)=>{if(await G,!(P instanceof Uint8Array))return{type:"error",name:K,message:"Content must be a Uint8Array"};return V(K,async()=>{try{if(J==="idb")return await q.set(K,P),{type:"saved",name:K};const C=await(await navigator.storage.getDirectory()).getFileHandle(K,{create:!0});if(J==="sync"){let F;try{F=await C.createSyncAccessHandle(),F.truncate(0),F.write(P,{at:0}),F.flush()}finally{F?.close()}}else{let F;try{F=await C.createWritable(),await F.write(P)}finally{await F?.close()}}return{type:"saved",name:K}}catch(U){return{type:"error",name:K,message:U.message||"Error saving file"}}})};self.onmessage=async({data:K})=>{const{type:P,name:U,content:C}=K;await G;const F={load:()=>X(U),save:()=>Y(U,C)};try{const z=F[P],$=z?await z():{type:"error",message:`Unrecognized action type: ${P}`};self.postMessage($)}catch(z){console.error("Worker unexpected error:",z),self.postMessage({type:"error",name:U,message:z.message||"Unexpected worker error"})}}},IW=AG;var n0={$eq:(W,Q)=>W===Q,$ne:(W,Q)=>W!==Q,$gt:(W,Q)=>W>Q,$gte:(W,Q)=>W>=Q,$lt:(W,Q)=>W<Q,$lte:(W,Q)=>W<=Q,$in:(W,Q)=>Array.isArray(Q)&&Q.includes(W),$between:(W,[Q,J])=>W>=Q&&W<=J,$exists:(W,Q)=>Q?W!==void 0:W===void 0,$text:{global:(W,Q)=>{const J=(V)=>String(V).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),G=J(Q);return Object.values(W).some((V)=>{if(typeof V==="object")return null.fieldSearch(V,G);return J(V).includes(G)})},field:(W,Q)=>{const J=(G)=>String(G).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,"");return Array.isArray(W)?W.some((G)=>J(G).includes(J(Q))):J(W).includes(J(Q))}},$like:(W,Q)=>{if(typeof W!=="string"||typeof Q!=="string")return!1;return new RegExp(`^${Q.replace(/%/g,".*").replace(/_/g,".")}\$`,"i").test(W)},$regex:(W,Q)=>typeof W==="string"&&new RegExp(Q.$regex||Q,"i").test(W),$and:(W,Q,J)=>Q.every((G)=>{return J.createFilter(G)(W)}),$or:(W,Q,J)=>Q.some((G)=>{return J.createFilter(G)(W)}),$not:(W,Q,J)=>{return!J.createFilter(Q)(W)}},h6=(W,Q)=>{const J=Q.split(".");let G=W;for(let V of J)if(G&&typeof G==="object"&&(V in G))G=G[V];else return;return G},b6=(W)=>{const Q=(J)=>{return Object.entries(W).every(([G,V])=>{if(G.startsWith("$"))return n0[G](J,V,{filterNode:Q,createFilter:b6});const q=h6(J.value,G);if(typeof V!=="object"||V===null)return n0.$eq(q,V);return Object.entries(V).every(([X,Y])=>{if(X==="$text")return n0.$text.field(q,Y);if(X==="$between"&&Y.every((K)=>K instanceof Date)){const K=new Date(q);return n0.$between(K,Y)}return n0[X]?.(q,Y,{filterNode:Q,createFilter:b6})??!1})})};return Q},m6=(W,Q)=>{const J=b6(Q.query);let G=Object.values(W).filter(J);if(Q.field)G.sort((V,q)=>{const X=h6(V.value,Q.field),Y=h6(q.value,Q.field),K=Q.order==="asc"?1:-1;if(typeof X==="string"&&typeof Y==="string")return X.localeCompare(Y)*K;return((X??0)-(Y??0))*K});if(Q.$after){const V=G.findIndex((q)=>q.id===Q.$after);G=V>=0?G.slice(V+1):[]}if(Q.$before){const V=G.findIndex((q)=>q.id===Q.$before);G=V>=0?G.slice(0,V):[]}return Q.$limit?G.slice(0,Q.$limit):G};class u6{constructor(){this.physical=Date.now(),this.logical=0}now(){const W=Date.now();return this.physical=Math.max(this.physical,W),this.logical++,{physical:this.physical,logical:this.logical}}update(W){if(!W||typeof W.physical!=="number"||typeof W.logical!=="number")return;this.physical=Math.max(this.physical,W.physical),this.logical=Math.max(this.logical,W.logical)+1}compare(W,Q){if(!W&&!Q)return 0;if(!W)return-1;if(!Q)return 1;if(W.physical>Q.physical)return 1;if(W.physical<Q.physical)return-1;if(W.logical>Q.logical)return 1;if(W.logical<Q.logical)return-1;return 0}}var xW=function(W,Q){return W.length===Q.length&&W.every((J,G)=>J===Q[G])};async function vG(){console.log("\u26A1 GenosDB: Empowering distributed graph databases with real-time synchronization and scalability. Learn more: https://github.com/estebanrfp/gdb \u26A1"),console.log(navigator?.storage?.getDirectory?"OPFS is enabled.":"OPFS is not available."),navigator?.storage?.getDirectory&&await navigator.storage.getDirectory()}if(Symbol.dispose===void 0)Object.defineProperty(Symbol,"dispose",{value:Symbol.for("Symbol.dispose")});class wW{constructor(){this.nodes={}}upsert(W,Q,J){this.nodes[W]={id:W,value:Q,edges:[],timestamp:J}}get(W){return this.nodes[W]||null}link(W,Q,J){const G=this.nodes[W],V=this.nodes[Q];if(G&&V&&!G.edges.includes(Q))G.edges.push(Q),G.timestamp=J}getAllNodes(){return Object.values(this.nodes)}serialize(){return m0.deflate(O0(this.nodes))}deserialize(W){this.nodes=a1(m0.inflate(new Uint8Array(W)))}}class c1{static _listenersInitialized=!1;constructor(W,{password:Q,securityManager:J=null,relayUrls:G=null}={}){this.oplog=new f6(W,20),this.hybridClock=new u6,this.name=W,this.password=Q,this.globalTimestamp=null,this.graph=new wW,this.securityManager=J,this.eventListeners=[],this.operators=n0,this.initWorker(),this.ready=this.loadGraphFromOPFS(),this.loadGlobalTimestamp();const V=`graph-sync-room-${this.name}`,q={appId:"1234",...this.password&&{password:this.password}};if(G)q.relayUrls=G;const X=p6(q,V),[Y,K]=X.makeAction("syncGraph");this.sendData=Y;const P=p6(q,`app-sync-${this.name}`);if(this.room=P,!c1._listenersInitialized)c1._listenersInitialized=!0,window.addEventListener("online",async()=>{console.log("\u2705 Reconnected to the network."),this.sendData([{type:"sync",timestamp:this.globalTimestamp}])}),window.addEventListener("offline",async()=>{console.log("\u274C Disconnected from the network.")}),document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="visible")console.log("The tab is visible again."),this.sendData([{type:"sync",timestamp:this.globalTimestamp}]);else if(document.visibilityState==="hidden")console.log("The tab is no longer visible.")});vG(),X.onPeerJoin(async(U)=>{console.log("\u26A1 New pair connected:",U),this.sendData([{type:"sync",timestamp:this.globalTimestamp}])}),X.onPeerLeave((U)=>{console.log("\u26A1 Pair disconnected:",U)}),K(async(U)=>{if(this.securityManager&&typeof this.securityManager.verifyIncomingOperations==="function"){const{validatedOperations:C}=await this.securityManager.verifyIncomingOperations(U);if(C&&C.length>0)await this.receiveChanges(C)}else console.log("GDB: No SecurityManager configured or verifyIncomingOperations missing. Processing P2P data directly."),await this.receiveChanges(U),this.emit()}),this.channel=new BroadcastChannel(`graphdb_sync_${this.name}`),this.channel.onmessage=async(U)=>{if(U.data==="update")console.log("\uD83D\uDD04 Update received from another tab..."),await this.loadGraphFromOPFS(),this.loadGlobalTimestamp(),this.emit()}}loadGlobalTimestamp(){const W=localStorage.getItem(`${this.name}_time`);this.globalTimestamp=W?JSON.parse(W):null}saveGlobalTimestamp(W){this.globalTimestamp=W,localStorage.setItem(`${this.name}_time`,JSON.stringify(W))}initWorker(){try{const W=URL.createObjectURL(new Blob([`(${IW.toString()})()`],{type:"application/javascript"}));this.worker=new Worker(W),this.worker.addEventListener("message",({data:Q})=>{console.log("Worker message:",`${Q.name} ${Q.type}`),URL.revokeObjectURL(W)}),console.log("Worker initialized successfully.")}catch({message:W}){console.error("Failed to initialize worker:",W)}}getWorker(){return this.worker}emit(){this.eventListeners.forEach((W)=>W(this.graph.nodes))}compress(W){return m0.deflate(W)}decompress(W){return m0.inflate(W)}async getAllNodes(){return await this.ready,this.graph.getAllNodes()}async generateHash(){return crypto.randomUUID()}async hashValue(W){const Q=(new TextEncoder()).encode(W),J=await crypto.subtle.digest("SHA-256",Q);return Array.from(new Uint8Array(J)).map((G)=>G.toString(16).padStart(2,"0")).join("")}async loadGraphFromOPFS(){try{const Q=await((J)=>new Promise((G,V)=>{const q=async({data:X})=>{if(X.type==="loaded"&&X.name===J)this.worker.removeEventListener("message",q),G(new Uint8Array(X.data));else if(X.type==="error")this.worker.removeEventListener("message",q),V(new Error(X.message||"Unknown error"))};this.worker.addEventListener("message",q),this.worker.postMessage({type:"load",name:J})}))(`${this.name}_graph.msgpack`).catch(()=>new Uint8Array);Q.byteLength>0?this.graph.deserialize(Q):console.warn("The file '_graph.msgpack' is empty or could not be loaded."),console.log(`Graph loaded from OPFS: [ ${this.graph.getAllNodes().length} nodes ]`)}catch({message:W}){console.error("General error loading the graph from OPFS:",W)}}async saveGraphToOPFS(){try{const W=this.graph.serialize();return await((J,G)=>new Promise((V,q)=>{const X=({data:Y})=>{if(Y.type==="saved"&&Y.name===J)this.worker.removeEventListener("message",X),V();else if(Y.type==="error")this.worker.removeEventListener("message",X),q(new Error(Y.message||"Save error"))};this.worker.addEventListener("message",X),this.worker.postMessage({type:"save",name:J,content:G})}))(`${this.name}_graph.msgpack`,W),this.channel.postMessage("update"),!0}catch({message:W}){throw console.error("Save error:",W),new Error("Save failed")}}async put(W,Q){await this.ready;const J=this.hybridClock.now();return this.saveGlobalTimestamp(J),Q??=await this.generateHash(),this.graph.upsert(Q,W,J),this.oplog.add({type:"upsert",id:Q,timestamp:J}),await this.saveGraphToOPFS(),await this.sendData([{type:"upsert",id:Q,value:W,timestamp:J}]),this.emit(),Q}async get(W,Q=null){if(await this.ready,typeof W!=="string")return{result:null};const J=this.graph.get(W);if(!J){if(Q)Q(null);return{result:null}}const G=(X)=>{if(!X)return null;const Y=X.value!==null&&typeof X.value==="object"?{...X.value}:X.value;return{...X,value:Y}};if(!Q)return{result:G(J)};let V=J.timestamp;Q(G(J));const q=(X)=>{const Y=X[W];if(Y){if(this.hybridClock.compare(Y.timestamp,V)>0)V=Y.timestamp,Q(G(Y))}else Q(null),this.eventListeners.splice(this.eventListeners.indexOf(q),1)};return this.eventListeners.push(q),{result:G(J),unsubscribe:()=>{const X=this.eventListeners.indexOf(q);if(X>-1)this.eventListeners.splice(X,1)}}}async map(...W){await this.ready;let J={...{realtime:!1,query:{},field:null,order:"asc",$limit:null,$after:null,$before:null}},G=null,V=!1;W.forEach((K)=>typeof K==="function"?G=K:K&&typeof K==="object"&&(V||=("realtime"in K),Object.assign(J,K))),G&&!V&&(J.realtime=!0);let q=m6(this.graph.nodes,J),X=null;const Y=(K)=>{const P=K.filter((z)=>!q.some(($)=>$.id===z.id)),U=q.filter((z)=>!K.some(($)=>$.id===z.id)),C=K.filter((z)=>{const $=q.find((A)=>A.id===z.id);return $&&!xW(O0(z.value),O0($.value))}),F=(z,$)=>{const A=$==="removed"?null:z.value,g={id:z.id,value:A,edges:z.edges||[],timestamp:z.timestamp||null,action:$};G(g)};P.forEach((z)=>F(z,"added")),U.forEach((z)=>F(z,"removed")),C.forEach((z)=>F(z,"updated"))};if(G){if(q.forEach((K)=>{if(K.value)G({id:K.id,value:K.value,edges:K.edges,timestamp:K.timestamp,action:"initial"})}),J.realtime)X=(K)=>{const P=m6(K,J);if(!xW(O0(P),O0(q)))Y(P),q=P},this.eventListeners.push(X)}return{results:q,...J.realtime&&G&&X&&{unsubscribe:()=>{const K=this.eventListeners.indexOf(X);K>-1&&this.eventListeners.splice(K,1)}}}}async remove(W){await this.ready;const Q=this.hybridClock.now(),J=this.graph.get(W);if(!J)return console.error(`Node with ID '${W}' not found.`);delete this.graph.nodes[W],this.oplog.add({type:"remove",id:W,timestamp:Q}),Object.values(this.graph.nodes).forEach((G)=>G.edges=G.edges.filter((V)=>V!==W)),await this.saveGraphToOPFS(),this.saveGlobalTimestamp(Q),await this.sendData([{type:"remove",id:W,value:J.value,timestamp:Q}]),this.emit()}async clear(){await this.ready,this.graph.nodes={};try{await(await navigator.storage.getDirectory()).removeEntry(`${this.name}_graph.msgpack`)}catch({message:W}){console.warn(`Error deleting _graph.msgpack: ${W}`)}this.emit(),console.log("All data has been deleted.")}async link(W,Q){await this.ready;const J=this.hybridClock.now();if(!this.graph.nodes[W]||!this.graph.nodes[Q]){console.error(`One or both nodes (${W}, ${Q}) do not exist.`);return}this.graph.link(W,Q,J),this.oplog.add({type:"link",sourceId:W,targetId:Q,timestamp:J}),await this.saveGraphToOPFS(),this.saveGlobalTimestamp(J),await this.sendData([{type:"link",sourceId:W,targetId:Q,timestamp:J}]),this.emit()}async applyFullGraph(W){try{console.log("Applying full graph from remote..."),this.graph.nodes={...W.nodes},await this.saveGraphToOPFS()}catch({message:Q}){console.error(`Error applying the full graph: ${Q}`)}}async receiveChanges(W){let Q=!1,J=null;const G={upsert:(V)=>{const q=this.graph.get(V.id),X=OW(q,V,this.hybridClock);if(X.resolved){if(this.graph.upsert(V.id,X.value,X.timestamp),this.hybridClock.update(X.timestamp),this.oplog.add({type:"upsert",id:V.id,timestamp:X.timestamp}),Q=!0,!J||this.hybridClock.compare(X.timestamp,J)>0)J=X.timestamp}},remove:(V)=>{const q=this.graph.get(V.id);if(q&&this.hybridClock.compare(q.timestamp,V.timestamp)<0){if(delete this.graph.nodes[V.id],this.hybridClock.update(V.timestamp),this.oplog.add({type:"remove",id:V.id,timestamp:V.timestamp}),Q=!0,!J||this.hybridClock.compare(V.timestamp,J)>0)J=V.timestamp}},link:(V)=>{const q=this.graph.get(V.sourceId),X=this.graph.get(V.targetId);if(q&&X&&this.hybridClock.compare(q.timestamp,V.timestamp)<0){if(this.graph.link(V.sourceId,V.targetId,V.timestamp),this.hybridClock.update(V.timestamp),this.oplog.add({type:"link",sourceId:V.sourceId,targetId:V.targetId,timestamp:V.timestamp}),Q=!0,!J||this.hybridClock.compare(V.timestamp,J)>0)J=V.timestamp}},sync:async(V)=>{const q=V.timestamp;console.log("\uD83D\uDCEC [SYNC REQUEST RECEIVED] A peer is asking for changes since timestamp:",q);const X=this.oplog.getOldest();if(X&&q&&this.hybridClock.compare(q,X.timestamp)<0){console.error("\uD83D\uDCA5 [FALLBACK TRIGGERED] Peer is too far behind. Sending FULL graph state."),await this.sendData([{type:"syncReceive",graph:this.graph}]);return}const Y=this.oplog.getDelta(q,this.hybridClock.compare);if(Y.length>0){const K=Y.map((U)=>{if(U.type==="upsert"){const C=this.graph.get(U.id);return{...U,value:C?C.value:null}}return U}),P=m0.deflate(O0(K));console.log("\uD83D\uDCE6 Delta compressed for transport."),console.log(`\uD83D\uDE80 [SENDING DELTA] Found ${Y.length} new operations to send.`),await this.sendData([{type:"deltaSync",operations:P}])}else console.log("\u2705 [ALREADY SYNCED] Peer is up-to-date. Nothing to send.")},deltaSync:(V)=>{console.log("\uD83D\uDEF0\uFE0F [DECOMPRESSING DELTA] Received compressed delta sync.");let q=a1(m0.inflate(V.operations));console.log(`\uD83D\uDEF0\uFE0F [DELTA SYNC RECEIVED] Applying ${q.length} operations from a peer.`);for(let X of q)G[X.type]?.(X)},syncReceive:async(V)=>{if(console.log("\uD83D\uDCE6 [FULL SYNC RECEIVED] Overwriting local state with full graph from a peer."),V.graph)await this.applyFullGraph(V.graph),this.oplog.clear(),console.warn("\uD83D\uDD12 Oplog has been cleared due to full sync."),Q=!0;else console.error("Full sync failed: received graph data is invalid.",V.graph)}};for(let V of W)if(G[V.type])await G[V.type](V);else console.warn(`\uD83E\uDD37\u200D\u2640\uFE0F [UNKNOWN MESSAGE TYPE] Received unhandled message type: "${V.type}"`);if(J)console.log("\uD83D\uDCC8 [UPDATING GLOBAL TIMESTAMP] Advancing local knowledge to the latest received timestamp."),this.saveGlobalTimestamp(J);if(Q)console.log("\uD83D\uDCBE [STATE CHANGED] Saving new state to OPFS and emitting update."),await this.saveGraphToOPFS(),this.emit()}}export{c1 as GDB};