@zip.js/zip.js 2.7.63 → 2.7.65
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/deno.json +1 -1
- package/dist/z-worker-fflate.js +1 -1
- package/dist/z-worker-pako.js +1 -1
- package/dist/z-worker.js +1 -1
- package/dist/zip-fs-full.js +577 -282
- package/dist/zip-fs-full.min.js +1 -1
- package/dist/zip-fs.js +579 -284
- package/dist/zip-fs.min.js +1 -1
- package/dist/zip-full.js +570 -278
- package/dist/zip-full.min.js +1 -1
- package/dist/zip-no-worker-deflate.min.js +1 -1
- package/dist/zip-no-worker-inflate.min.js +1 -1
- package/dist/zip-no-worker.min.js +1 -1
- package/dist/zip.js +570 -278
- package/dist/zip.min.js +1 -1
- package/index-fflate.js +2 -1
- package/index.cjs +577 -282
- package/index.d.ts +133 -80
- package/index.js +1 -0
- package/index.min.js +1 -1
- package/lib/core/codec-worker.js +11 -6
- package/lib/core/constants.js +22 -7
- package/lib/core/io.js +71 -51
- package/lib/core/streams/codec-stream.js +2 -3
- package/lib/core/z-worker-core.js +4 -2
- package/lib/core/zip-fs-core.js +9 -6
- package/lib/core/zip-reader.js +28 -14
- package/lib/core/zip-writer.js +463 -203
- package/lib/z-worker-inline.js +1 -1
- package/package.json +3 -3
package/index.cjs
CHANGED
|
@@ -4271,13 +4271,16 @@ const EXTRAFIELD_TYPE_UNICODE_PATH = 0x7075;
|
|
|
4271
4271
|
const EXTRAFIELD_TYPE_UNICODE_COMMENT = 0x6375;
|
|
4272
4272
|
const EXTRAFIELD_TYPE_USDZ = 0x1986;
|
|
4273
4273
|
|
|
4274
|
-
const BITFLAG_ENCRYPTED =
|
|
4275
|
-
const BITFLAG_LEVEL =
|
|
4276
|
-
const
|
|
4277
|
-
const
|
|
4278
|
-
const
|
|
4279
|
-
const
|
|
4280
|
-
const
|
|
4274
|
+
const BITFLAG_ENCRYPTED = 0b1;
|
|
4275
|
+
const BITFLAG_LEVEL = 0b0110;
|
|
4276
|
+
const BITFLAG_LEVEL_MAX_MASK = 0b010;
|
|
4277
|
+
const BITFLAG_LEVEL_FAST_MASK = 0b100;
|
|
4278
|
+
const BITFLAG_LEVEL_SUPER_FAST_MASK = 0b110;
|
|
4279
|
+
const BITFLAG_DATA_DESCRIPTOR = 0b1000;
|
|
4280
|
+
const BITFLAG_LANG_ENCODING_FLAG = 0b100000000000;
|
|
4281
|
+
const FILE_ATTR_MSDOS_DIR_MASK = 0b10000;
|
|
4282
|
+
const FILE_ATTR_UNIX_TYPE_MASK = 0o170000;
|
|
4283
|
+
const FILE_ATTR_UNIX_TYPE_DIR = 0o040000;
|
|
4281
4284
|
const FILE_ATTR_UNIX_EXECUTABLE_MASK = 0o111;
|
|
4282
4285
|
const FILE_ATTR_UNIX_DEFAULT_MASK = 0o644;
|
|
4283
4286
|
|
|
@@ -4287,6 +4290,11 @@ const VERSION_AES = 0x33;
|
|
|
4287
4290
|
|
|
4288
4291
|
const DIRECTORY_SIGNATURE = "/";
|
|
4289
4292
|
|
|
4293
|
+
const HEADER_SIZE = 26;
|
|
4294
|
+
const HEADER_OFFSET_SIGNATURE = 10;
|
|
4295
|
+
const HEADER_OFFSET_COMPRESSED_SIZE = 14;
|
|
4296
|
+
const HEADER_OFFSET_UNCOMPRESSED_SIZE = 18;
|
|
4297
|
+
|
|
4290
4298
|
const MAX_DATE = new Date(2107, 11, 31);
|
|
4291
4299
|
const MIN_DATE = new Date(1980, 0, 1);
|
|
4292
4300
|
|
|
@@ -7788,7 +7796,7 @@ class CodecStream extends TransformStream {
|
|
|
7788
7796
|
} else if (codecType.startsWith(CODEC_INFLATE)) {
|
|
7789
7797
|
Stream = InflateStream;
|
|
7790
7798
|
}
|
|
7791
|
-
|
|
7799
|
+
codec.outputSize = 0;
|
|
7792
7800
|
let inputSize = 0;
|
|
7793
7801
|
const stream = new Stream(options, config);
|
|
7794
7802
|
const readable = super.readable;
|
|
@@ -7808,15 +7816,14 @@ class CodecStream extends TransformStream {
|
|
|
7808
7816
|
const outputSizeStream = new TransformStream({
|
|
7809
7817
|
transform(chunk, controller) {
|
|
7810
7818
|
if (chunk && chunk.length) {
|
|
7811
|
-
outputSize += chunk.length;
|
|
7812
7819
|
controller.enqueue(chunk);
|
|
7820
|
+
codec.outputSize += chunk.length;
|
|
7813
7821
|
}
|
|
7814
7822
|
},
|
|
7815
7823
|
flush() {
|
|
7816
7824
|
const { signature } = stream;
|
|
7817
7825
|
Object.assign(codec, {
|
|
7818
7826
|
signature,
|
|
7819
|
-
outputSize,
|
|
7820
7827
|
inputSize
|
|
7821
7828
|
});
|
|
7822
7829
|
}
|
|
@@ -7899,7 +7906,7 @@ class CodecWorker {
|
|
|
7899
7906
|
busy: true,
|
|
7900
7907
|
readable: readable
|
|
7901
7908
|
.pipeThrough(new ChunkStream(config.chunkSize))
|
|
7902
|
-
.pipeThrough(new ProgressWatcherStream(
|
|
7909
|
+
.pipeThrough(new ProgressWatcherStream(streamOptions), { signal }),
|
|
7903
7910
|
writable,
|
|
7904
7911
|
options: Object.assign({}, options),
|
|
7905
7912
|
scripts,
|
|
@@ -7938,7 +7945,7 @@ class CodecWorker {
|
|
|
7938
7945
|
|
|
7939
7946
|
class ProgressWatcherStream extends TransformStream {
|
|
7940
7947
|
|
|
7941
|
-
constructor(
|
|
7948
|
+
constructor({ onstart, onprogress, size, onend }) {
|
|
7942
7949
|
let chunkOffset = 0;
|
|
7943
7950
|
super({
|
|
7944
7951
|
async start() {
|
|
@@ -7954,7 +7961,6 @@ class ProgressWatcherStream extends TransformStream {
|
|
|
7954
7961
|
controller.enqueue(chunk);
|
|
7955
7962
|
},
|
|
7956
7963
|
async flush() {
|
|
7957
|
-
readableSource.size = chunkOffset;
|
|
7958
7964
|
if (onend) {
|
|
7959
7965
|
await callHandler(onend, chunkOffset);
|
|
7960
7966
|
}
|
|
@@ -8000,8 +8006,9 @@ function createWebWorkerInterface(workerData, config) {
|
|
|
8000
8006
|
}
|
|
8001
8007
|
|
|
8002
8008
|
async function runWorker$1({ options, readable, writable, onTaskFinished }, config) {
|
|
8009
|
+
let codecStream;
|
|
8003
8010
|
try {
|
|
8004
|
-
|
|
8011
|
+
codecStream = new CodecStream(options, config);
|
|
8005
8012
|
await readable.pipeThrough(codecStream).pipeTo(writable, { preventClose: true, preventAbort: true });
|
|
8006
8013
|
const {
|
|
8007
8014
|
signature,
|
|
@@ -8013,6 +8020,11 @@ async function runWorker$1({ options, readable, writable, onTaskFinished }, conf
|
|
|
8013
8020
|
inputSize,
|
|
8014
8021
|
outputSize
|
|
8015
8022
|
};
|
|
8023
|
+
} catch (error) {
|
|
8024
|
+
if (codecStream) {
|
|
8025
|
+
error.outputSize = codecStream.outputSize;
|
|
8026
|
+
}
|
|
8027
|
+
throw error;
|
|
8016
8028
|
} finally {
|
|
8017
8029
|
onTaskFinished();
|
|
8018
8030
|
}
|
|
@@ -8156,9 +8168,9 @@ async function onMessage({ data }, workerData) {
|
|
|
8156
8168
|
const { reader, writer, resolveResult, rejectResult, onTaskFinished } = workerData;
|
|
8157
8169
|
try {
|
|
8158
8170
|
if (error) {
|
|
8159
|
-
const { message, stack, code, name } = error;
|
|
8171
|
+
const { message, stack, code, name, outputSize } = error;
|
|
8160
8172
|
const responseError = new Error(message);
|
|
8161
|
-
Object.assign(responseError, { stack, code, name });
|
|
8173
|
+
Object.assign(responseError, { stack, code, name, outputSize });
|
|
8162
8174
|
close(responseError);
|
|
8163
8175
|
} else {
|
|
8164
8176
|
if (type == MESSAGE_PULL) {
|
|
@@ -8301,7 +8313,7 @@ async function terminateWorkers() {
|
|
|
8301
8313
|
}));
|
|
8302
8314
|
}
|
|
8303
8315
|
|
|
8304
|
-
function e(e,t={}){const n='const{Array:e,Object:t,Number:n,Math:r,Error:s,Uint8Array:i,Uint16Array:o,Uint32Array:c,Int32Array:f,Map:a,DataView:l,Promise:u,TextEncoder:w,crypto:h,postMessage:d,TransformStream:p,ReadableStream:y,WritableStream:m,CompressionStream:b,DecompressionStream:g}=self,k=void 0,v="undefined",S="function";class z{constructor(e){return class extends p{constructor(t,n){const r=new e(n);super({transform(e,t){t.enqueue(r.append(e))},flush(e){const t=r.flush();t&&e.enqueue(t)}})}}}}const C=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;C[e]=t}class x{constructor(e){this.t=e||-1}append(e){let t=0|this.t;for(let n=0,r=0|e.length;r>n;n++)t=t>>>8^C[255&(t^e[n])];this.t=t}get(){return~this.t}}class A extends p{constructor(){let e;const t=new x;super({transform(e,n){t.append(e),n.enqueue(e)},flush(){const n=new i(4);new l(n.buffer).setUint32(0,t.get()),e.value=n}}),e=this}}const _={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],r=_.i(n);return 32===r?e.concat(t):_.o(t,r,0|n,e.slice(0,e.length-1))},l(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+_.i(n)},u(e,t){if(32*e.length<t)return e;const n=(e=e.slice(0,r.ceil(t/32))).length;return t&=31,n>0&&t&&(e[n-1]=_.h(t,e[n-1]&2147483648>>t-1,1)),e},h:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,i:e=>r.round(e/1099511627776)||32,o(e,t,n,r){for(void 0===r&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(0===t)return r.concat(e);for(let s=0;s<e.length;s++)r.push(n|e[s]>>>t),n=e[s]<<32-t;const s=e.length?e[e.length-1]:0,i=_.i(s);return r.push(_.h(t+i&31,t+i>32?n:r.pop(),1)),r}},I={bytes:{p(e){const t=_.l(e)/8,n=new i(t);let r;for(let s=0;t>s;s++)3&s||(r=e[s/4]),n[s]=r>>>24,r<<=8;return n},m(e){const t=[];let n,r=0;for(n=0;n<e.length;n++)r=r<<8|e[n],3&~n||(t.push(r),r=0);return 3&n&&t.push(_.h(8*(3&n),r)),t}}},P=class{constructor(e){const t=this;t.blockSize=512,t.k=[1732584193,4023233417,2562383102,271733878,3285377520],t.v=[1518500249,1859775393,2400959708,3395469782],e?(t.S=e.S.slice(0),t.C=e.C.slice(0),t.A=e.A):t.reset()}reset(){const e=this;return e.S=e.k.slice(0),e.C=[],e.A=0,e}update(e){const t=this;"string"==typeof e&&(e=I._.m(e));const n=t.C=_.concat(t.C,e),r=t.A,i=t.A=r+_.l(e);if(i>9007199254740991)throw new s("Cannot hash more than 2^53 - 1 bits");const o=new c(n);let f=0;for(let e=t.blockSize+r-(t.blockSize+r&t.blockSize-1);i>=e;e+=t.blockSize)t.I(o.subarray(16*f,16*(f+1))),f+=1;return n.splice(0,16*f),t}P(){const e=this;let t=e.C;const n=e.S;t=_.concat(t,[_.h(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(r.floor(e.A/4294967296)),t.push(0|e.A);t.length;)e.I(t.splice(0,16));return e.reset(),n}D(e,t,n,r){return e>19?e>39?e>59?e>79?void 0:t^n^r:t&n|t&r|n&r:t^n^r:t&n|~t&r}V(e,t){return t<<e|t>>>32-e}I(t){const n=this,s=n.S,i=e(80);for(let e=0;16>e;e++)i[e]=t[e];let o=s[0],c=s[1],f=s[2],a=s[3],l=s[4];for(let e=0;79>=e;e++){16>e||(i[e]=n.V(1,i[e-3]^i[e-8]^i[e-14]^i[e-16]));const t=n.V(5,o)+n.D(e,c,f,a)+l+i[e]+n.v[r.floor(e/20)]|0;l=a,a=f,f=n.V(30,c),c=o,o=t}s[0]=s[0]+o|0,s[1]=s[1]+c|0,s[2]=s[2]+f|0,s[3]=s[3]+a|0,s[4]=s[4]+l|0}},D={getRandomValues(e){const t=new c(e.buffer),n=e=>{let t=987654321;const n=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&n,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&n)&n)/4294967296+.5)*(r.random()>.5?1:-1))};for(let s,i=0;i<e.length;i+=4){const e=n(4294967296*(s||r.random()));s=987654071*e(),t[i/4]=4294967296*e()|0}return e}},V={importKey:e=>new V.R(I.bytes.m(e)),B(e,t,n,r){if(n=n||1e4,0>r||0>n)throw new s("invalid params to pbkdf2");const i=1+(r>>5)<<2;let o,c,f,a,u;const w=new ArrayBuffer(i),h=new l(w);let d=0;const p=_;for(t=I.bytes.m(t),u=1;(i||1)>d;u++){for(o=c=e.encrypt(p.concat(t,[u])),f=1;n>f;f++)for(c=e.encrypt(c),a=0;a<c.length;a++)o[a]^=c[a];for(f=0;(i||1)>d&&f<o.length;f++)h.setInt32(d,o[f]),d+=4}return w.slice(0,r/8)},R:class{constructor(e){const t=this,n=t.M=P,r=[[],[]];t.U=[new n,new n];const s=t.U[0].blockSize/32;e.length>s&&(e=(new n).update(e).P());for(let t=0;s>t;t++)r[0][t]=909522486^e[t],r[1][t]=1549556828^e[t];t.U[0].update(r[0]),t.U[1].update(r[1]),t.K=new n(t.U[0])}reset(){const e=this;e.K=new e.M(e.U[0]),e.N=!1}update(e){this.N=!0,this.K.update(e)}digest(){const e=this,t=e.K.P(),n=new e.M(e.U[1]).update(t).P();return e.reset(),n}encrypt(e){if(this.N)throw new s("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},R=typeof h!=v&&typeof h.getRandomValues==S,B="Invalid password",E="Invalid signature",M="zipjs-abort-check-password";function U(e){return R?h.getRandomValues(e):D.getRandomValues(e)}const K=16,N={name:"PBKDF2"},O=t.assign({hash:{name:"HMAC"}},N),T=t.assign({iterations:1e3,hash:{name:"SHA-1"}},N),W=["deriveBits"],j=[8,12,16],H=[16,24,32],L=10,F=[0,0,0,0],q=typeof h!=v,G=q&&h.subtle,J=q&&typeof G!=v,Q=I.bytes,X=class{constructor(e){const t=this;t.O=[[[],[],[],[],[]],[[],[],[],[],[]]],t.O[0][0][0]||t.T();const n=t.O[0][4],r=t.O[1],i=e.length;let o,c,f,a=1;if(4!==i&&6!==i&&8!==i)throw new s("invalid aes key size");for(t.v=[c=e.slice(0),f=[]],o=i;4*i+28>o;o++){let e=c[o-1];(o%i===0||8===i&&o%i===4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],o%i===0&&(e=e<<8^e>>>24^a<<24,a=a<<1^283*(a>>7))),c[o]=c[o-i]^e}for(let e=0;o;e++,o--){const t=c[3&e?o:o-4];f[e]=4>=o||4>e?t:r[0][n[t>>>24]]^r[1][n[t>>16&255]]^r[2][n[t>>8&255]]^r[3][n[255&t]]}}encrypt(e){return this.W(e,0)}decrypt(e){return this.W(e,1)}T(){const e=this.O[0],t=this.O[1],n=e[4],r=t[4],s=[],i=[];let o,c,f,a;for(let e=0;256>e;e++)i[(s[e]=e<<1^283*(e>>7))^e]=e;for(let l=o=0;!n[l];l^=c||1,o=i[o]||1){let i=o^o<<1^o<<2^o<<3^o<<4;i=i>>8^255&i^99,n[l]=i,r[i]=l,a=s[f=s[c=s[l]]];let u=16843009*a^65537*f^257*c^16843008*l,w=257*s[i]^16843008*i;for(let n=0;4>n;n++)e[n][l]=w=w<<24^w>>>8,t[n][i]=u=u<<24^u>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}W(e,t){if(4!==e.length)throw new s("invalid aes block size");const n=this.v[t],r=n.length/4-2,i=[0,0,0,0],o=this.O[t],c=o[0],f=o[1],a=o[2],l=o[3],u=o[4];let w,h,d,p=e[0]^n[0],y=e[t?3:1]^n[1],m=e[2]^n[2],b=e[t?1:3]^n[3],g=4;for(let e=0;r>e;e++)w=c[p>>>24]^f[y>>16&255]^a[m>>8&255]^l[255&b]^n[g],h=c[y>>>24]^f[m>>16&255]^a[b>>8&255]^l[255&p]^n[g+1],d=c[m>>>24]^f[b>>16&255]^a[p>>8&255]^l[255&y]^n[g+2],b=c[b>>>24]^f[p>>16&255]^a[y>>8&255]^l[255&m]^n[g+3],g+=4,p=w,y=h,m=d;for(let e=0;4>e;e++)i[t?3&-e:e]=u[p>>>24]<<24^u[y>>16&255]<<16^u[m>>8&255]<<8^u[255&b]^n[g++],w=p,p=y,y=m,m=b,b=w;return i}},Y=class{constructor(e,t){this.j=e,this.H=t,this.L=t}reset(){this.L=this.H}update(e){return this.F(this.j,e,this.L)}q(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,n=e>>8&255,r=255&e;255===t?(t=0,255===n?(n=0,255===r?r=0:++r):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=r}return e}G(e){0===(e[0]=this.q(e[0]))&&(e[1]=this.q(e[1]))}F(e,t,n){let r;if(!(r=t.length))return[];const s=_.l(t);for(let s=0;r>s;s+=4){this.G(n);const r=e.encrypt(n);t[s]^=r[0],t[s+1]^=r[1],t[s+2]^=r[2],t[s+3]^=r[3]}return _.u(t,s)}},Z=V.R;let $=q&&J&&typeof G.importKey==S,ee=q&&J&&typeof G.deriveBits==S;class te extends p{constructor({password:e,rawPassword:n,signed:r,encryptionStrength:o,checkPasswordOnly:c}){super({start(){t.assign(this,{ready:new u(e=>this.J=e),password:ie(e,n),signed:r,X:o-1,pending:new i})},async transform(e,t){const n=this,{password:r,X:o,J:f,ready:a}=n;r?(await(async(e,t,n,r)=>{const i=await se(e,t,n,ce(r,0,j[t])),o=ce(r,j[t]);if(i[0]!=o[0]||i[1]!=o[1])throw new s(B)})(n,o,r,ce(e,0,j[o]+2)),e=ce(e,j[o]+2),c?t.error(new s(M)):f()):await a;const l=new i(e.length-L-(e.length-L)%K);t.enqueue(re(n,e,l,0,L,!0))},async flush(e){const{signed:t,Y:n,Z:r,pending:o,ready:c}=this;if(r&&n){await c;const f=ce(o,0,o.length-L),a=ce(o,o.length-L);let l=new i;if(f.length){const e=ae(Q,f);r.update(e);const t=n.update(e);l=fe(Q,t)}if(t){const e=ce(fe(Q,r.digest()),0,L);for(let t=0;L>t;t++)if(e[t]!=a[t])throw new s(E)}e.enqueue(l)}}})}}class ne extends p{constructor({password:e,rawPassword:n,encryptionStrength:r}){let s;super({start(){t.assign(this,{ready:new u(e=>this.J=e),password:ie(e,n),X:r-1,pending:new i})},async transform(e,t){const n=this,{password:r,X:s,J:o,ready:c}=n;let f=new i;r?(f=await(async(e,t,n)=>{const r=U(new i(j[t]));return oe(r,await se(e,t,n,r))})(n,s,r),o()):await c;const a=new i(f.length+e.length-e.length%K);a.set(f,0),t.enqueue(re(n,e,a,f.length,0))},async flush(e){const{Y:t,Z:n,pending:r,ready:o}=this;if(n&&t){await o;let c=new i;if(r.length){const e=t.update(ae(Q,r));n.update(e),c=fe(Q,e)}s.signature=fe(Q,n.digest()).slice(0,L),e.enqueue(oe(c,s.signature))}}}),s=this}}function re(e,t,n,r,s,o){const{Y:c,Z:f,pending:a}=e,l=t.length-s;let u;for(a.length&&(t=oe(a,t),n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new i(t)).set(n,0)}return e})(n,l-l%K)),u=0;l-K>=u;u+=K){const e=ae(Q,ce(t,u,u+K));o&&f.update(e);const s=c.update(e);o||f.update(s),n.set(fe(Q,s),u+r)}return e.pending=ce(t,u),n}async function se(n,r,s,o){n.password=null;const c=await(async(e,t,n,r,s)=>{if(!$)return V.importKey(t);try{return await G.importKey("raw",t,n,!1,s)}catch(e){return $=!1,V.importKey(t)}})(0,s,O,0,W),f=await(async(e,t,n)=>{if(!ee)return V.B(t,e.salt,T.iterations,n);try{return await G.deriveBits(e,t,n)}catch(r){return ee=!1,V.B(t,e.salt,T.iterations,n)}})(t.assign({salt:o},T),c,8*(2*H[r]+2)),a=new i(f),l=ae(Q,ce(a,0,H[r])),u=ae(Q,ce(a,H[r],2*H[r])),w=ce(a,2*H[r]);return t.assign(n,{keys:{key:l,$:u,passwordVerification:w},Y:new Y(new X(l),e.from(F)),Z:new Z(u)}),w}function ie(e,t){return t===k?(e=>{if(typeof w==v){const t=new i((e=unescape(encodeURIComponent(e))).length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}return(new w).encode(e)})(e):t}function oe(e,t){let n=e;return e.length+t.length&&(n=new i(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function ce(e,t,n){return e.subarray(t,n)}function fe(e,t){return e.p(t)}function ae(e,t){return e.m(t)}class le extends p{constructor({password:e,passwordVerification:n,checkPasswordOnly:r}){super({start(){t.assign(this,{password:e,passwordVerification:n}),de(this,e)},transform(e,t){const n=this;if(n.password){const t=we(n,e.subarray(0,12));if(n.password=null,t[11]!=n.passwordVerification)throw new s(B);e=e.subarray(12)}r?t.error(new s(M)):t.enqueue(we(n,e))}})}}class ue extends p{constructor({password:e,passwordVerification:n}){super({start(){t.assign(this,{password:e,passwordVerification:n}),de(this,e)},transform(e,t){const n=this;let r,s;if(n.password){n.password=null;const t=U(new i(12));t[11]=n.passwordVerification,r=new i(e.length+t.length),r.set(he(n,t),0),s=12}else r=new i(e.length),s=0;r.set(he(n,e),s),t.enqueue(r)}})}}function we(e,t){const n=new i(t.length);for(let r=0;r<t.length;r++)n[r]=ye(e)^t[r],pe(e,n[r]);return n}function he(e,t){const n=new i(t.length);for(let r=0;r<t.length;r++)n[r]=ye(e)^t[r],pe(e,t[r]);return n}function de(e,n){const r=[305419896,591751049,878082192];t.assign(e,{keys:r,ee:new x(r[0]),te:new x(r[2])});for(let t=0;t<n.length;t++)pe(e,n.charCodeAt(t))}function pe(e,t){let[n,s,i]=e.keys;e.ee.append([t]),n=~e.ee.get(),s=be(r.imul(be(s+me(n)),134775813)+1),e.te.append([s>>>24]),i=~e.te.get(),e.keys=[n,s,i]}function ye(e){const t=2|e.keys[2];return me(r.imul(t,1^t)>>>8)}function me(e){return 255&e}function be(e){return 4294967295&e}const ge="deflate-raw";class ke extends p{constructor(e,{chunkSize:t,CompressionStream:n,CompressionStreamNative:r}){super({});const{compressed:s,encrypted:i,useCompressionStream:o,zipCrypto:c,signed:f,level:a}=e,u=this;let w,h,d=Se(super.readable);i&&!c||!f||(w=new A,d=xe(d,w)),s&&(d=Ce(d,o,{level:a,chunkSize:t},r,n)),i&&(c?d=xe(d,new ue(e)):(h=new ne(e),d=xe(d,h))),ze(u,d,()=>{let e;i&&!c&&(e=h.signature),i&&!c||!f||(e=new l(w.value.buffer).getUint32(0)),u.signature=e})}}class ve extends p{constructor(e,{chunkSize:t,DecompressionStream:n,DecompressionStreamNative:r}){super({});const{zipCrypto:i,encrypted:o,signed:c,signature:f,compressed:a,useCompressionStream:u}=e;let w,h,d=Se(super.readable);o&&(i?d=xe(d,new le(e)):(h=new te(e),d=xe(d,h))),a&&(d=Ce(d,u,{chunkSize:t},r,n)),o&&!i||!c||(w=new A,d=xe(d,w)),ze(this,d,()=>{if((!o||i)&&c){const e=new l(w.value.buffer);if(f!=e.getUint32(0,!1))throw new s(E)}})}}function Se(e){return xe(e,new p({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function ze(e,n,r){n=xe(n,new p({flush:r})),t.defineProperty(e,"readable",{get:()=>n})}function Ce(e,t,n,r,s){try{e=xe(e,new(t&&r?r:s)(ge,n))}catch(r){if(!t)return e;try{e=xe(e,new s(ge,n))}catch(t){return e}}return e}function xe(e,t){return e.pipeThrough(t)}const Ae="data",_e="close";class Ie extends p{constructor(e,n){super({});const r=this,{codecType:s}=e;let i;s.startsWith("deflate")?i=ke:s.startsWith("inflate")&&(i=ve);let o=0,c=0;const f=new i(e,n),a=super.readable,l=new p({transform(e,t){e&&e.length&&(c+=e.length,t.enqueue(e))},flush(){t.assign(r,{inputSize:c})}}),u=new p({transform(e,t){e&&e.length&&(o+=e.length,t.enqueue(e))},flush(){const{signature:e}=f;t.assign(r,{signature:e,outputSize:o,inputSize:c})}});t.defineProperty(r,"readable",{get:()=>a.pipeThrough(l).pipeThrough(f).pipeThrough(u)})}}class Pe extends p{constructor(e){let t;super({transform:function n(r,s){if(t){const e=new i(t.length+r.length);e.set(t),e.set(r,t.length),r=e,t=null}r.length>e?(s.enqueue(r.slice(0,e)),n(r.slice(e),s)):t=r},flush(e){t&&t.length&&e.enqueue(t)}})}}const De=new a,Ve=new a;let Re,Be=0,Ee=!0;async function Me(e){try{const{options:t,scripts:r,config:s}=e;if(r&&r.length)try{Ee?importScripts.apply(k,r):await Ue(r)}catch(e){Ee=!1,await Ue(r)}self.initCodec&&self.initCodec(),s.CompressionStreamNative=self.CompressionStream,s.DecompressionStreamNative=self.DecompressionStream,self.Deflate&&(s.CompressionStream=new z(self.Deflate)),self.Inflate&&(s.DecompressionStream=new z(self.Inflate));const i={highWaterMark:1},o=e.readable||new y({async pull(e){const t=new u(e=>De.set(Be,e));Ke({type:"pull",messageId:Be}),Be=(Be+1)%n.MAX_SAFE_INTEGER;const{value:r,done:s}=await t;e.enqueue(r),s&&e.close()}},i),c=e.writable||new m({async write(e){let t;const r=new u(e=>t=e);Ve.set(Be,t),Ke({type:Ae,value:e,messageId:Be}),Be=(Be+1)%n.MAX_SAFE_INTEGER,await r}},i),f=new Ie(t,s);Re=new AbortController;const{signal:a}=Re;await o.pipeThrough(f).pipeThrough(new Pe(s.chunkSize)).pipeTo(c,{signal:a,preventClose:!0,preventAbort:!0}),await c.getWriter().close();const{signature:l,inputSize:w,outputSize:h}=f;Ke({type:_e,result:{signature:l,inputSize:w,outputSize:h}})}catch(e){Ne(e)}}async function Ue(e){for(const t of e)await import(t)}function Ke(e){let{value:t}=e;if(t)if(t.length)try{t=new i(t),e.value=t.buffer,d(e,[e.value])}catch(t){d(e)}else d(e);else d(e)}function Ne(e=new s("Unknown error")){const{message:t,stack:n,code:r,name:i}=e;d({error:{message:t,stack:n,code:r,name:i}})}addEventListener("message",({data:e})=>{const{type:t,messageId:n,value:r,done:s}=e;try{if("start"==t&&Me(e),t==Ae){const e=De.get(n);De.delete(n),e({value:new i(r),done:s})}if("ack"==t){const e=Ve.get(n);Ve.delete(n),e()}t==_e&&Re.abort()}catch(e){Ne(e)}});const Oe=-2;function Te(t){return We(t.map(([t,n])=>new e(t).fill(n,0,t)))}function We(t){return t.reduce((t,n)=>t.concat(e.isArray(n)?We(n):n),[])}const je=[0,1,2,3].concat(...Te([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function He(){const e=this;function t(e,t){let n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1}e.ne=n=>{const s=e.re,i=e.ie.se,o=e.ie.oe;let c,f,a,l=-1;for(n.ce=0,n.fe=573,c=0;o>c;c++)0!==s[2*c]?(n.ae[++n.ce]=l=c,n.le[c]=0):s[2*c+1]=0;for(;2>n.ce;)a=n.ae[++n.ce]=2>l?++l:0,s[2*a]=1,n.le[a]=0,n.ue--,i&&(n.we-=i[2*a+1]);for(e.he=l,c=r.floor(n.ce/2);c>=1;c--)n.de(s,c);a=o;do{c=n.ae[1],n.ae[1]=n.ae[n.ce--],n.de(s,1),f=n.ae[1],n.ae[--n.fe]=c,n.ae[--n.fe]=f,s[2*a]=s[2*c]+s[2*f],n.le[a]=r.max(n.le[c],n.le[f])+1,s[2*c+1]=s[2*f+1]=a,n.ae[1]=a++,n.de(s,1)}while(n.ce>=2);n.ae[--n.fe]=n.ae[1],(t=>{const n=e.re,r=e.ie.se,s=e.ie.pe,i=e.ie.ye,o=e.ie.me;let c,f,a,l,u,w,h=0;for(l=0;15>=l;l++)t.be[l]=0;for(n[2*t.ae[t.fe]+1]=0,c=t.fe+1;573>c;c++)f=t.ae[c],l=n[2*n[2*f+1]+1]+1,l>o&&(l=o,h++),n[2*f+1]=l,f>e.he||(t.be[l]++,u=0,i>f||(u=s[f-i]),w=n[2*f],t.ue+=w*(l+u),r&&(t.we+=w*(r[2*f+1]+u)));if(0!==h){do{for(l=o-1;0===t.be[l];)l--;t.be[l]--,t.be[l+1]+=2,t.be[o]--,h-=2}while(h>0);for(l=o;0!==l;l--)for(f=t.be[l];0!==f;)a=t.ae[--c],a>e.he||(n[2*a+1]!=l&&(t.ue+=(l-n[2*a+1])*n[2*a],n[2*a+1]=l),f--)}})(n),((e,n,r)=>{const s=[];let i,o,c,f=0;for(i=1;15>=i;i++)s[i]=f=f+r[i-1]<<1;for(o=0;n>=o;o++)c=e[2*o+1],0!==c&&(e[2*o]=t(s[c]++,c))})(s,e.he,n.be)}}function Le(e,t,n,r,s){const i=this;i.se=e,i.pe=t,i.ye=n,i.oe=r,i.me=s}He.ge=[0,1,2,3,4,5,6,7].concat(...Te([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]])),He.ke=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],He.ve=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],He.Se=e=>256>e?je[e]:je[256+(e>>>7)],He.ze=[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],He.Ce=[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],He.xe=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],He.Ae=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const Fe=Te([[144,8],[112,9],[24,7],[8,8]]);Le._e=We([12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227].map((e,t)=>[e,Fe[t]]));const qe=Te([[30,5]]);function Ge(e,t,n,r,s){const i=this;i.Ie=e,i.Pe=t,i.De=n,i.Ve=r,i.Re=s}Le.Be=We([0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23].map((e,t)=>[e,qe[t]])),Le.Ee=new Le(Le._e,He.ze,257,286,15),Le.Me=new Le(Le.Be,He.Ce,0,30,15),Le.Ue=new Le(null,He.xe,0,19,7);const Je=[new Ge(0,0,0,0,0),new Ge(4,4,8,4,1),new Ge(4,5,16,8,1),new Ge(4,6,32,32,1),new Ge(4,4,16,16,2),new Ge(8,16,32,32,2),new Ge(8,16,128,128,2),new Ge(8,32,128,256,2),new Ge(32,128,258,1024,2),new Ge(32,258,258,4096,2)],Qe=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],Xe=113,Ye=666,Ze=262;function $e(e,t,n,r){const s=e[2*t],i=e[2*n];return i>s||s==i&&r[t]<=r[n]}function et(){const e=this;let t,n,s,c,f,a,l,u,w,h,d,p,y,m,b,g,k,v,S,z,C,x,A,_,I,P,D,V,R,B,E,M,U;const K=new He,N=new He,O=new He;let T,W,j,H,L,F;function q(){let t;for(t=0;286>t;t++)E[2*t]=0;for(t=0;30>t;t++)M[2*t]=0;for(t=0;19>t;t++)U[2*t]=0;E[512]=1,e.ue=e.we=0,W=j=0}function G(e,t){let n,r=-1,s=e[1],i=0,o=7,c=4;0===s&&(o=138,c=3),e[2*(t+1)+1]=65535;for(let f=0;t>=f;f++)n=s,s=e[2*(f+1)+1],++i<o&&n==s||(c>i?U[2*n]+=i:0!==n?(n!=r&&U[2*n]++,U[32]++):i>10?U[36]++:U[34]++,i=0,r=n,0===s?(o=138,c=3):n==s?(o=6,c=3):(o=7,c=4))}function J(t){e.Ke[e.pending++]=t}function Q(e){J(255&e),J(e>>>8&255)}function X(e,t){let n;const r=t;F>16-r?(n=e,L|=n<<F&65535,Q(L),L=n>>>16-F,F+=r-16):(L|=e<<F&65535,F+=r)}function Y(e,t){const n=2*e;X(65535&t[n],65535&t[n+1])}function Z(e,t){let n,r,s=-1,i=e[1],o=0,c=7,f=4;for(0===i&&(c=138,f=3),n=0;t>=n;n++)if(r=i,i=e[2*(n+1)+1],++o>=c||r!=i){if(f>o)do{Y(r,U)}while(0!==--o);else 0!==r?(r!=s&&(Y(r,U),o--),Y(16,U),X(o-3,2)):o>10?(Y(18,U),X(o-11,7)):(Y(17,U),X(o-3,3));o=0,s=r,0===i?(c=138,f=3):r==i?(c=6,f=3):(c=7,f=4)}}function $(){16==F?(Q(L),L=0,F=0):8>F||(J(255&L),L>>>=8,F-=8)}function ee(t,n){let s,i,o;if(e.Ne[W]=t,e.Oe[W]=255&n,W++,0===t?E[2*n]++:(j++,t--,E[2*(He.ge[n]+256+1)]++,M[2*He.Se(t)]++),!(8191&W)&&D>2){for(s=8*W,i=C-k,o=0;30>o;o++)s+=M[2*o]*(5+He.Ce[o]);if(s>>>=3,j<r.floor(W/2)&&s<r.floor(i/2))return!0}return W==T-1}function te(t,n){let r,s,i,o,c=0;if(0!==W)do{r=e.Ne[c],s=e.Oe[c],c++,0===r?Y(s,t):(i=He.ge[s],Y(i+256+1,t),o=He.ze[i],0!==o&&(s-=He.ke[i],X(s,o)),r--,i=He.Se(r),Y(i,n),o=He.Ce[i],0!==o&&(r-=He.ve[i],X(r,o)))}while(W>c);Y(256,t),H=t[513]}function ne(){F>8?Q(L):F>0&&J(255&L),L=0,F=0}function re(t,n,r){X(0+(r?1:0),3),((t,n)=>{ne(),H=8,Q(n),Q(~n),e.Ke.set(u.subarray(t,t+n),e.pending),e.pending+=n})(t,n)}function se(n){((t,n,r)=>{let s,i,o=0;D>0?(K.ne(e),N.ne(e),o=(()=>{let t;for(G(E,K.he),G(M,N.he),O.ne(e),t=18;t>=3&&0===U[2*He.Ae[t]+1];t--);return e.ue+=14+3*(t+1),t})(),s=e.ue+3+7>>>3,i=e.we+3+7>>>3,i>s||(s=i)):s=i=n+5,n+4>s||-1==t?i==s?(X(2+(r?1:0),3),te(Le._e,Le.Be)):(X(4+(r?1:0),3),((e,t,n)=>{let r;for(X(e-257,5),X(t-1,5),X(n-4,4),r=0;n>r;r++)X(U[2*He.Ae[r]+1],3);Z(E,e-1),Z(M,t-1)})(K.he+1,N.he+1,o+1),te(E,M)):re(t,n,r),q(),r&&ne()})(0>k?-1:k,C-k,n),k=C,t.Te()}function ie(){let e,n,r,s;do{if(s=w-A-C,0===s&&0===C&&0===A)s=f;else if(-1==s)s--;else if(C>=f+f-Ze){u.set(u.subarray(f,f+f),0),x-=f,C-=f,k-=f,e=y,r=e;do{n=65535&d[--r],d[r]=f>n?0:n-f}while(0!==--e);e=f,r=e;do{n=65535&h[--r],h[r]=f>n?0:n-f}while(0!==--e);s+=f}if(0===t.We)return;e=t.je(u,C+A,s),A+=e,3>A||(p=255&u[C],p=(p<<g^255&u[C+1])&b)}while(Ze>A&&0!==t.We)}function oe(e){let t,n,r=I,s=C,i=_;const o=C>f-Ze?C-(f-Ze):0;let c=B;const a=l,w=C+258;let d=u[s+i-1],p=u[s+i];R>_||(r>>=2),c>A&&(c=A);do{if(t=e,u[t+i]==p&&u[t+i-1]==d&&u[t]==u[s]&&u[++t]==u[s+1]){s+=2,t++;do{}while(u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&w>s);if(n=258-(w-s),s=w-258,n>i){if(x=e,i=n,n>=c)break;d=u[s+i-1],p=u[s+i]}}}while((e=65535&h[e&a])>o&&0!==--r);return i>A?A:i}e.le=[],e.be=[],e.ae=[],E=[],M=[],U=[],e.de=(t,n)=>{const r=e.ae,s=r[n];let i=n<<1;for(;i<=e.ce&&(i<e.ce&&$e(t,r[i+1],r[i],e.le)&&i++,!$e(t,s,r[i],e.le));)r[n]=r[i],n=i,i<<=1;r[n]=s},e.He=(t,S,x,W,j,G)=>(W||(W=8),j||(j=8),G||(G=0),t.Le=null,-1==S&&(S=6),1>j||j>9||8!=W||9>x||x>15||0>S||S>9||0>G||G>2?Oe:(t.Fe=e,a=x,f=1<<a,l=f-1,m=j+7,y=1<<m,b=y-1,g=r.floor((m+3-1)/3),u=new i(2*f),h=[],d=[],T=1<<j+6,e.Ke=new i(4*T),s=4*T,e.Ne=new o(T),e.Oe=new i(T),D=S,V=G,(t=>(t.qe=t.Ge=0,t.Le=null,e.pending=0,e.Je=0,n=Xe,c=0,K.re=E,K.ie=Le.Ee,N.re=M,N.ie=Le.Me,O.re=U,O.ie=Le.Ue,L=0,F=0,H=8,q(),(()=>{w=2*f,d[y-1]=0;for(let e=0;y-1>e;e++)d[e]=0;P=Je[D].Pe,R=Je[D].Ie,B=Je[D].De,I=Je[D].Ve,C=0,k=0,A=0,v=_=2,z=0,p=0})(),0))(t))),e.Qe=()=>42!=n&&n!=Xe&&n!=Ye?Oe:(e.Oe=null,e.Ne=null,e.Ke=null,d=null,h=null,u=null,e.Fe=null,n==Xe?-3:0),e.Xe=(e,t,n)=>{let r=0;return-1==t&&(t=6),0>t||t>9||0>n||n>2?Oe:(Je[D].Re!=Je[t].Re&&0!==e.qe&&(r=e.Ye(1)),D!=t&&(D=t,P=Je[D].Pe,R=Je[D].Ie,B=Je[D].De,I=Je[D].Ve),V=n,r)},e.Ze=(e,t,r)=>{let s,i=r,o=0;if(!t||42!=n)return Oe;if(3>i)return 0;for(i>f-Ze&&(i=f-Ze,o=r-i),u.set(t.subarray(o,o+i),0),C=i,k=i,p=255&u[0],p=(p<<g^255&u[1])&b,s=0;i-3>=s;s++)p=(p<<g^255&u[s+2])&b,h[s&l]=d[p],d[p]=s;return 0},e.Ye=(r,i)=>{let o,w,m,I,R;if(i>4||0>i)return Oe;if(!r.$e||!r.et&&0!==r.We||n==Ye&&4!=i)return r.Le=Qe[4],Oe;if(0===r.tt)return r.Le=Qe[7],-5;var B;if(t=r,I=c,c=i,42==n&&(w=8+(a-8<<4)<<8,m=(D-1&255)>>1,m>3&&(m=3),w|=m<<6,0!==C&&(w|=32),w+=31-w%31,n=Xe,J((B=w)>>8&255),J(255&B)),0!==e.pending){if(t.Te(),0===t.tt)return c=-1,0}else if(0===t.We&&I>=i&&4!=i)return t.Le=Qe[7],-5;if(n==Ye&&0!==t.We)return r.Le=Qe[7],-5;if(0!==t.We||0!==A||0!=i&&n!=Ye){switch(R=-1,Je[D].Re){case 0:R=(e=>{let n,r=65535;for(r>s-5&&(r=s-5);;){if(1>=A){if(ie(),0===A&&0==e)return 0;if(0===A)break}if(C+=A,A=0,n=k+r,(0===C||C>=n)&&(A=C-n,C=n,se(!1),0===t.tt))return 0;if(C-k>=f-Ze&&(se(!1),0===t.tt))return 0}return se(4==e),0===t.tt?4==e?2:0:4==e?3:1})(i);break;case 1:R=(e=>{let n,r=0;for(;;){if(Ze>A){if(ie(),Ze>A&&0==e)return 0;if(0===A)break}if(3>A||(p=(p<<g^255&u[C+2])&b,r=65535&d[p],h[C&l]=d[p],d[p]=C),0===r||(C-r&65535)>f-Ze||2!=V&&(v=oe(r)),3>v)n=ee(0,255&u[C]),A--,C++;else if(n=ee(C-x,v-3),A-=v,v>P||3>A)C+=v,v=0,p=255&u[C],p=(p<<g^255&u[C+1])&b;else{v--;do{C++,p=(p<<g^255&u[C+2])&b,r=65535&d[p],h[C&l]=d[p],d[p]=C}while(0!==--v);C++}if(n&&(se(!1),0===t.tt))return 0}return se(4==e),0===t.tt?4==e?2:0:4==e?3:1})(i);break;case 2:R=(e=>{let n,r,s=0;for(;;){if(Ze>A){if(ie(),Ze>A&&0==e)return 0;if(0===A)break}if(3>A||(p=(p<<g^255&u[C+2])&b,s=65535&d[p],h[C&l]=d[p],d[p]=C),_=v,S=x,v=2,0!==s&&P>_&&f-Ze>=(C-s&65535)&&(2!=V&&(v=oe(s)),5>=v&&(1==V||3==v&&C-x>4096)&&(v=2)),3>_||v>_)if(0!==z){if(n=ee(0,255&u[C-1]),n&&se(!1),C++,A--,0===t.tt)return 0}else z=1,C++,A--;else{r=C+A-3,n=ee(C-1-S,_-3),A-=_-1,_-=2;do{++C>r||(p=(p<<g^255&u[C+2])&b,s=65535&d[p],h[C&l]=d[p],d[p]=C)}while(0!==--_);if(z=0,v=2,C++,n&&(se(!1),0===t.tt))return 0}}return 0!==z&&(n=ee(0,255&u[C-1]),z=0),se(4==e),0===t.tt?4==e?2:0:4==e?3:1})(i)}if(2!=R&&3!=R||(n=Ye),0==R||2==R)return 0===t.tt&&(c=-1),0;if(1==R){if(1==i)X(2,3),Y(256,Le._e),$(),9>1+H+10-F&&(X(2,3),Y(256,Le._e),$()),H=7;else if(re(0,0,!1),3==i)for(o=0;y>o;o++)d[o]=0;if(t.Te(),0===t.tt)return c=-1,0}}return 4!=i?0:1}}function tt(){const e=this;e.nt=0,e.rt=0,e.We=0,e.qe=0,e.tt=0,e.Ge=0}function nt(e){const t=new tt,n=(o=e&&e.chunkSize?e.chunkSize:65536)+5*(r.floor(o/16383)+1);var o;const c=new i(n);let f=e?e.level:-1;void 0===f&&(f=-1),t.He(f),t.$e=c,this.append=(e,r)=>{let o,f,a=0,l=0,u=0;const w=[];if(e.length){t.nt=0,t.et=e,t.We=e.length;do{if(t.rt=0,t.tt=n,o=t.Ye(0),0!=o)throw new s("deflating: "+t.Le);t.rt&&(t.rt==n?w.push(new i(c)):w.push(c.subarray(0,t.rt))),u+=t.rt,r&&t.nt>0&&t.nt!=a&&(r(t.nt),a=t.nt)}while(t.We>0||0===t.tt);return w.length>1?(f=new i(u),w.forEach(e=>{f.set(e,l),l+=e.length})):f=w[0]?new i(w[0]):new i,f}},this.flush=()=>{let e,r,o=0,f=0;const a=[];do{if(t.rt=0,t.tt=n,e=t.Ye(4),1!=e&&0!=e)throw new s("deflating: "+t.Le);n-t.tt>0&&a.push(c.slice(0,t.rt)),f+=t.rt}while(t.We>0||0===t.tt);return t.Qe(),r=new i(f),a.forEach(e=>{r.set(e,o),o+=e.length}),r}}tt.prototype={He(e,t){const n=this;return n.Fe=new et,t||(t=15),n.Fe.He(n,e,t)},Ye(e){const t=this;return t.Fe?t.Fe.Ye(t,e):Oe},Qe(){const e=this;if(!e.Fe)return Oe;const t=e.Fe.Qe();return e.Fe=null,t},Xe(e,t){const n=this;return n.Fe?n.Fe.Xe(n,e,t):Oe},Ze(e,t){const n=this;return n.Fe?n.Fe.Ze(n,e,t):Oe},je(e,t,n){const r=this;let s=r.We;return s>n&&(s=n),0===s?0:(r.We-=s,e.set(r.et.subarray(r.nt,r.nt+s),t),r.nt+=s,r.qe+=s,s)},Te(){const e=this;let t=e.Fe.pending;t>e.tt&&(t=e.tt),0!==t&&(e.$e.set(e.Fe.Ke.subarray(e.Fe.Je,e.Fe.Je+t),e.rt),e.rt+=t,e.Fe.Je+=t,e.Ge+=t,e.tt-=t,e.Fe.pending-=t,0===e.Fe.pending&&(e.Fe.Je=0))}};const rt=-2,st=-3,it=-5,ot=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],ct=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],ft=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],at=[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],lt=[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,112,112],ut=[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],wt=[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];function ht(){let e,t,n,r,s,i;function o(e,t,o,c,f,a,l,u,w,h,d){let p,y,m,b,g,k,v,S,z,C,x,A,_,I,P;C=0,g=o;do{n[e[t+C]]++,C++,g--}while(0!==g);if(n[0]==o)return l[0]=-1,u[0]=0,0;for(S=u[0],k=1;15>=k&&0===n[k];k++);for(v=k,k>S&&(S=k),g=15;0!==g&&0===n[g];g--);for(m=g,S>g&&(S=g),u[0]=S,I=1<<k;g>k;k++,I<<=1)if(0>(I-=n[k]))return st;if(0>(I-=n[g]))return st;for(n[g]+=I,i[1]=k=0,C=1,_=2;0!==--g;)i[_]=k+=n[C],_++,C++;g=0,C=0;do{0!==(k=e[t+C])&&(d[i[k]++]=g),C++}while(++g<o);for(o=i[m],i[0]=g=0,C=0,b=-1,A=-S,s[0]=0,x=0,P=0;m>=v;v++)for(p=n[v];0!==p--;){for(;v>A+S;){if(b++,A+=S,P=m-A,P=P>S?S:P,(y=1<<(k=v-A))>p+1&&(y-=p+1,_=v,P>k))for(;++k<P&&(y<<=1)>n[++_];)y-=n[_];if(P=1<<k,h[0]+P>1440)return st;s[b]=x=h[0],h[0]+=P,0!==b?(i[b]=g,r[0]=k,r[1]=S,k=g>>>A-S,r[2]=x-s[b-1]-k,w.set(r,3*(s[b-1]+k))):l[0]=x}for(r[1]=v-A,o>C?d[C]<c?(r[0]=256>d[C]?0:96,r[2]=d[C++]):(r[0]=a[d[C]-c]+16+64,r[2]=f[d[C++]-c]):r[0]=192,y=1<<v-A,k=g>>>A;P>k;k+=y)w.set(r,3*(x+k));for(k=1<<v-1;0!==(g&k);k>>>=1)g^=k;for(g^=k,z=(1<<A)-1;(g&z)!=i[b];)b--,A-=S,z=(1<<A)-1}return 0!==I&&1!=m?it:0}function c(o){let c;for(e||(e=[],t=[],n=new f(16),r=[],s=new f(15),i=new f(16)),t.length<o&&(t=[]),c=0;o>c;c++)t[c]=0;for(c=0;16>c;c++)n[c]=0;for(c=0;3>c;c++)r[c]=0;s.set(n.subarray(0,15),0),i.set(n.subarray(0,16),0)}this.st=(n,r,s,i,f)=>{let a;return c(19),e[0]=0,a=o(n,0,19,19,null,null,s,r,i,e,t),a==st?f.Le="oversubscribed dynamic bit lengths tree":a!=it&&0!==r[0]||(f.Le="incomplete dynamic bit lengths tree",a=st),a},this.it=(n,r,s,i,f,a,l,u,w)=>{let h;return c(288),e[0]=0,h=o(s,0,n,257,at,lt,a,i,u,e,t),0!=h||0===i[0]?(h==st?w.Le="oversubscribed literal/length tree":-4!=h&&(w.Le="incomplete literal/length tree",h=st),h):(c(288),h=o(s,n,r,0,ut,wt,l,f,u,e,t),0!=h||0===f[0]&&n>257?(h==st?w.Le="oversubscribed distance tree":h==it?(w.Le="incomplete distance tree",h=st):-4!=h&&(w.Le="empty distance tree with lengths",h=st),h):0)}}function dt(){const e=this;let t,n,r,s,i=0,o=0,c=0,f=0,a=0,l=0,u=0,w=0,h=0,d=0;function p(e,t,n,r,s,i,o,c){let f,a,l,u,w,h,d,p,y,m,b,g,k,v,S,z;d=c.nt,p=c.We,w=o.ot,h=o.ct,y=o.write,m=y<o.read?o.read-y-1:o.end-y,b=ot[e],g=ot[t];do{for(;20>h;)p--,w|=(255&c.ft(d++))<<h,h+=8;if(f=w&b,a=n,l=r,z=3*(l+f),0!==(u=a[z]))for(;;){if(w>>=a[z+1],h-=a[z+1],16&u){for(u&=15,k=a[z+2]+(w&ot[u]),w>>=u,h-=u;15>h;)p--,w|=(255&c.ft(d++))<<h,h+=8;for(f=w&g,a=s,l=i,z=3*(l+f),u=a[z];;){if(w>>=a[z+1],h-=a[z+1],16&u){for(u&=15;u>h;)p--,w|=(255&c.ft(d++))<<h,h+=8;if(v=a[z+2]+(w&ot[u]),w>>=u,h-=u,m-=k,v>y){S=y-v;do{S+=o.end}while(0>S);if(u=o.end-S,k>u){if(k-=u,y-S>0&&u>y-S)do{o.lt[y++]=o.lt[S++]}while(0!==--u);else o.lt.set(o.lt.subarray(S,S+u),y),y+=u,S+=u,u=0;S=0}}else S=y-v,y-S>0&&2>y-S?(o.lt[y++]=o.lt[S++],o.lt[y++]=o.lt[S++],k-=2):(o.lt.set(o.lt.subarray(S,S+2),y),y+=2,S+=2,k-=2);if(y-S>0&&k>y-S)do{o.lt[y++]=o.lt[S++]}while(0!==--k);else o.lt.set(o.lt.subarray(S,S+k),y),y+=k,S+=k,k=0;break}if(64&u)return c.Le="invalid distance code",k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,st;f+=a[z+2],f+=w&ot[u],z=3*(l+f),u=a[z]}break}if(64&u)return 32&u?(k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,1):(c.Le="invalid literal/length code",k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,st);if(f+=a[z+2],f+=w&ot[u],z=3*(l+f),0===(u=a[z])){w>>=a[z+1],h-=a[z+1],o.lt[y++]=a[z+2],m--;break}}else w>>=a[z+1],h-=a[z+1],o.lt[y++]=a[z+2],m--}while(m>=258&&p>=10);return k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,0}e.init=(e,i,o,c,f,a)=>{t=0,u=e,w=i,r=o,h=c,s=f,d=a,n=null},e.ut=(e,y,m)=>{let b,g,k,v,S,z,C,x=0,A=0,_=0;for(_=y.nt,v=y.We,x=e.ot,A=e.ct,S=e.write,z=S<e.read?e.read-S-1:e.end-S;;)switch(t){case 0:if(z>=258&&v>=10&&(e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,m=p(u,w,r,h,s,d,e,y),_=y.nt,v=y.We,x=e.ot,A=e.ct,S=e.write,z=S<e.read?e.read-S-1:e.end-S,0!=m)){t=1==m?7:9;break}c=u,n=r,o=h,t=1;case 1:for(b=c;b>A;){if(0===v)return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(_++))<<A,A+=8}if(g=3*(o+(x&ot[b])),x>>>=n[g+1],A-=n[g+1],k=n[g],0===k){f=n[g+2],t=6;break}if(16&k){a=15&k,i=n[g+2],t=2;break}if(!(64&k)){c=k,o=g/3+n[g+2];break}if(32&k){t=7;break}return t=9,y.Le="invalid literal/length code",m=st,e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);case 2:for(b=a;b>A;){if(0===v)return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(_++))<<A,A+=8}i+=x&ot[b],x>>=b,A-=b,c=w,n=s,o=d,t=3;case 3:for(b=c;b>A;){if(0===v)return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(_++))<<A,A+=8}if(g=3*(o+(x&ot[b])),x>>=n[g+1],A-=n[g+1],k=n[g],16&k){a=15&k,l=n[g+2],t=4;break}if(!(64&k)){c=k,o=g/3+n[g+2];break}return t=9,y.Le="invalid distance code",m=st,e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);case 4:for(b=a;b>A;){if(0===v)return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(_++))<<A,A+=8}l+=x&ot[b],x>>=b,A-=b,t=5;case 5:for(C=S-l;0>C;)C+=e.end;for(;0!==i;){if(0===z&&(S==e.end&&0!==e.read&&(S=0,z=S<e.read?e.read-S-1:e.end-S),0===z&&(e.write=S,m=e.wt(y,m),S=e.write,z=S<e.read?e.read-S-1:e.end-S,S==e.end&&0!==e.read&&(S=0,z=S<e.read?e.read-S-1:e.end-S),0===z)))return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);e.lt[S++]=e.lt[C++],z--,C==e.end&&(C=0),i--}t=0;break;case 6:if(0===z&&(S==e.end&&0!==e.read&&(S=0,z=S<e.read?e.read-S-1:e.end-S),0===z&&(e.write=S,m=e.wt(y,m),S=e.write,z=S<e.read?e.read-S-1:e.end-S,S==e.end&&0!==e.read&&(S=0,z=S<e.read?e.read-S-1:e.end-S),0===z)))return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);m=0,e.lt[S++]=f,z--,t=0;break;case 7:if(A>7&&(A-=8,v++,_--),e.write=S,m=e.wt(y,m),S=e.write,z=S<e.read?e.read-S-1:e.end-S,e.read!=e.write)return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);t=8;case 8:return m=1,e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);case 9:return m=st,e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);default:return m=rt,e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m)}},e.ht=()=>{}}ht.dt=(e,t,n,r)=>(e[0]=9,t[0]=5,n[0]=ct,r[0]=ft,0);const pt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function yt(e,t){const n=this;let r,s=0,o=0,c=0,a=0;const l=[0],u=[0],w=new dt;let h=0,d=new f(4320);const p=new ht;n.ct=0,n.ot=0,n.lt=new i(t),n.end=t,n.read=0,n.write=0,n.reset=(e,t)=>{t&&(t[0]=0),6==s&&w.ht(e),s=0,n.ct=0,n.ot=0,n.read=n.write=0},n.reset(e,null),n.wt=(e,t)=>{let r,s,i;return s=e.rt,i=n.read,r=(i>n.write?n.end:n.write)-i,r>e.tt&&(r=e.tt),0!==r&&t==it&&(t=0),e.tt-=r,e.Ge+=r,e.$e.set(n.lt.subarray(i,i+r),s),s+=r,i+=r,i==n.end&&(i=0,n.write==n.end&&(n.write=0),r=n.write-i,r>e.tt&&(r=e.tt),0!==r&&t==it&&(t=0),e.tt-=r,e.Ge+=r,e.$e.set(n.lt.subarray(i,i+r),s),s+=r,i+=r),e.rt=s,n.read=i,t},n.ut=(e,t)=>{let i,f,y,m,b,g,k,v;for(m=e.nt,b=e.We,f=n.ot,y=n.ct,g=n.write,k=g<n.read?n.read-g-1:n.end-g;;){let S,z,C,x,A,_,I,P;switch(s){case 0:for(;3>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<<y,y+=8}switch(i=7&f,h=1&i,i>>>1){case 0:f>>>=3,y-=3,i=7&y,f>>>=i,y-=i,s=1;break;case 1:S=[],z=[],C=[[]],x=[[]],ht.dt(S,z,C,x),w.init(S[0],z[0],C[0],0,x[0],0),f>>>=3,y-=3,s=6;break;case 2:f>>>=3,y-=3,s=3;break;case 3:return f>>>=3,y-=3,s=9,e.Le="invalid block type",t=st,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t)}break;case 1:for(;32>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<<y,y+=8}if((~f>>>16&65535)!=(65535&f))return s=9,e.Le="invalid stored block lengths",t=st,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);o=65535&f,f=y=0,s=0!==o?2:0!==h?7:0;break;case 2:if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);if(0===k&&(g==n.end&&0!==n.read&&(g=0,k=g<n.read?n.read-g-1:n.end-g),0===k&&(n.write=g,t=n.wt(e,t),g=n.write,k=g<n.read?n.read-g-1:n.end-g,g==n.end&&0!==n.read&&(g=0,k=g<n.read?n.read-g-1:n.end-g),0===k)))return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);if(t=0,i=o,i>b&&(i=b),i>k&&(i=k),n.lt.set(e.je(m,i),g),m+=i,b-=i,g+=i,k-=i,0!==(o-=i))break;s=0!==h?7:0;break;case 3:for(;14>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<<y,y+=8}if(c=i=16383&f,(31&i)>29||(i>>5&31)>29)return s=9,e.Le="too many length or distance symbols",t=st,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);if(i=258+(31&i)+(i>>5&31),!r||r.length<i)r=[];else for(v=0;i>v;v++)r[v]=0;f>>>=14,y-=14,a=0,s=4;case 4:for(;4+(c>>>10)>a;){for(;3>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<<y,y+=8}r[pt[a++]]=7&f,f>>>=3,y-=3}for(;19>a;)r[pt[a++]]=0;if(l[0]=7,i=p.st(r,l,u,d,e),0!=i)return(t=i)==st&&(r=null,s=9),n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);a=0,s=5;case 5:for(;i=c,258+(31&i)+(i>>5&31)>a;){let o,w;for(i=l[0];i>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<<y,y+=8}if(i=d[3*(u[0]+(f&ot[i]))+1],w=d[3*(u[0]+(f&ot[i]))+2],16>w)f>>>=i,y-=i,r[a++]=w;else{for(v=18==w?7:w-14,o=18==w?11:3;i+v>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<<y,y+=8}if(f>>>=i,y-=i,o+=f&ot[v],f>>>=v,y-=v,v=a,i=c,v+o>258+(31&i)+(i>>5&31)||16==w&&1>v)return r=null,s=9,e.Le="invalid bit length repeat",t=st,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);w=16==w?r[v-1]:0;do{r[v++]=w}while(0!==--o);a=v}}if(u[0]=-1,A=[],_=[],I=[],P=[],A[0]=9,_[0]=6,i=c,i=p.it(257+(31&i),1+(i>>5&31),r,A,_,I,P,d,e),0!=i)return i==st&&(r=null,s=9),t=i,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);w.init(A[0],_[0],d,I[0],d,P[0]),s=6;case 6:if(n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,1!=(t=w.ut(n,e,t)))return n.wt(e,t);if(t=0,w.ht(e),m=e.nt,b=e.We,f=n.ot,y=n.ct,g=n.write,k=g<n.read?n.read-g-1:n.end-g,0===h){s=0;break}s=7;case 7:if(n.write=g,t=n.wt(e,t),g=n.write,k=g<n.read?n.read-g-1:n.end-g,n.read!=n.write)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);s=8;case 8:return t=1,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);case 9:return t=st,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);default:return t=rt,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t)}}},n.ht=e=>{n.reset(e,null),n.lt=null,d=null},n.yt=(e,t,r)=>{n.lt.set(e.subarray(t,t+r),0),n.read=n.write=r},n.bt=()=>1==s?1:0}const mt=13,bt=[0,0,255,255];function gt(){const e=this;function t(e){return e&&e.gt?(e.qe=e.Ge=0,e.Le=null,e.gt.mode=7,e.gt.kt.reset(e,null),0):rt}e.mode=0,e.method=0,e.vt=[0],e.St=0,e.marker=0,e.zt=0,e.Ct=t=>(e.kt&&e.kt.ht(t),e.kt=null,0),e.xt=(n,r)=>(n.Le=null,e.kt=null,8>r||r>15?(e.Ct(n),rt):(e.zt=r,n.gt.kt=new yt(n,1<<r),t(n),0)),e.At=(e,t)=>{let n,r;if(!e||!e.gt||!e.et)return rt;const s=e.gt;for(t=4==t?it:0,n=it;;)switch(s.mode){case 0:if(0===e.We)return n;if(n=t,e.We--,e.qe++,8!=(15&(s.method=e.ft(e.nt++)))){s.mode=mt,e.Le="unknown compression method",s.marker=5;break}if(8+(s.method>>4)>s.zt){s.mode=mt,e.Le="invalid win size",s.marker=5;break}s.mode=1;case 1:if(0===e.We)return n;if(n=t,e.We--,e.qe++,r=255&e.ft(e.nt++),((s.method<<8)+r)%31!=0){s.mode=mt,e.Le="incorrect header check",s.marker=5;break}if(!(32&r)){s.mode=7;break}s.mode=2;case 2:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St=(255&e.ft(e.nt++))<<24&4278190080,s.mode=3;case 3:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St+=(255&e.ft(e.nt++))<<16&16711680,s.mode=4;case 4:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St+=(255&e.ft(e.nt++))<<8&65280,s.mode=5;case 5:return 0===e.We?n:(n=t,e.We--,e.qe++,s.St+=255&e.ft(e.nt++),s.mode=6,2);case 6:return s.mode=mt,e.Le="need dictionary",s.marker=0,rt;case 7:if(n=s.kt.ut(e,n),n==st){s.mode=mt,s.marker=0;break}if(0==n&&(n=t),1!=n)return n;n=t,s.kt.reset(e,s.vt),s.mode=12;case 12:return e.We=0,1;case mt:return st;default:return rt}},e._t=(e,t,n)=>{let r=0,s=n;if(!e||!e.gt||6!=e.gt.mode)return rt;const i=e.gt;return s<1<<i.zt||(s=(1<<i.zt)-1,r=n-s),i.kt.yt(t,r,s),i.mode=7,0},e.It=e=>{let n,r,s,i,o;if(!e||!e.gt)return rt;const c=e.gt;if(c.mode!=mt&&(c.mode=mt,c.marker=0),0===(n=e.We))return it;for(r=e.nt,s=c.marker;0!==n&&4>s;)e.ft(r)==bt[s]?s++:s=0!==e.ft(r)?0:4-s,r++,n--;return e.qe+=r-e.nt,e.nt=r,e.We=n,c.marker=s,4!=s?st:(i=e.qe,o=e.Ge,t(e),e.qe=i,e.Ge=o,c.mode=7,0)},e.Pt=e=>e&&e.gt&&e.gt.kt?e.gt.kt.bt():rt}function kt(){}function vt(e){const t=new kt,n=e&&e.chunkSize?r.floor(2*e.chunkSize):131072,o=new i(n);let c=!1;t.xt(),t.$e=o,this.append=(e,r)=>{const f=[];let a,l,u=0,w=0,h=0;if(0!==e.length){t.nt=0,t.et=e,t.We=e.length;do{if(t.rt=0,t.tt=n,0!==t.We||c||(t.nt=0,c=!0),a=t.At(0),c&&a===it){if(0!==t.We)throw new s("inflating: bad input")}else if(0!==a&&1!==a)throw new s("inflating: "+t.Le);if((c||1===a)&&t.We===e.length)throw new s("inflating: bad input");t.rt&&(t.rt===n?f.push(new i(o)):f.push(o.subarray(0,t.rt))),h+=t.rt,r&&t.nt>0&&t.nt!=u&&(r(t.nt),u=t.nt)}while(t.We>0||0===t.tt);return f.length>1?(l=new i(h),f.forEach(e=>{l.set(e,w),w+=e.length})):l=f[0]?new i(f[0]):new i,l}},this.flush=()=>{t.Ct()}}kt.prototype={xt(e){const t=this;return t.gt=new gt,e||(e=15),t.gt.xt(t,e)},At(e){const t=this;return t.gt?t.gt.At(t,e):rt},Ct(){const e=this;if(!e.gt)return rt;const t=e.gt.Ct(e);return e.gt=null,t},It(){const e=this;return e.gt?e.gt.It(e):rt},_t(e,t){const n=this;return n.gt?n.gt._t(n,e,t):rt},ft(e){return this.et[e]},je(e,t){return this.et.subarray(e,e+t)}},self.initCodec=()=>{self.Deflate=nt,self.Inflate=vt};\n',r=()=>t.useDataURI?"data:text/javascript,"+encodeURIComponent(n):URL.createObjectURL(new Blob([n],{type:"text/javascript"}));e({workerScripts:{inflate:[r],deflate:[r]}});}
|
|
8316
|
+
function e(e,t={}){const n='const{Array:e,Object:t,Number:n,Math:r,Error:s,Uint8Array:i,Uint16Array:o,Uint32Array:c,Int32Array:f,Map:a,DataView:u,Promise:l,TextEncoder:w,crypto:h,postMessage:d,TransformStream:p,ReadableStream:y,WritableStream:m,CompressionStream:b,DecompressionStream:g}=self,k=void 0,v="undefined",S="function";class z{constructor(e){return class extends p{constructor(t,n){const r=new e(n);super({transform(e,t){t.enqueue(r.append(e))},flush(e){const t=r.flush();t&&e.enqueue(t)}})}}}}const C=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;C[e]=t}class x{constructor(e){this.t=e||-1}append(e){let t=0|this.t;for(let n=0,r=0|e.length;r>n;n++)t=t>>>8^C[255&(t^e[n])];this.t=t}get(){return~this.t}}class A extends p{constructor(){let e;const t=new x;super({transform(e,n){t.append(e),n.enqueue(e)},flush(){const n=new i(4);new u(n.buffer).setUint32(0,t.get()),e.value=n}}),e=this}}const _={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],r=_.i(n);return 32===r?e.concat(t):_.o(t,r,0|n,e.slice(0,e.length-1))},u(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+_.i(n)},l(e,t){if(32*e.length<t)return e;const n=(e=e.slice(0,r.ceil(t/32))).length;return t&=31,n>0&&t&&(e[n-1]=_.h(t,e[n-1]&2147483648>>t-1,1)),e},h:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,i:e=>r.round(e/1099511627776)||32,o(e,t,n,r){for(void 0===r&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(0===t)return r.concat(e);for(let s=0;s<e.length;s++)r.push(n|e[s]>>>t),n=e[s]<<32-t;const s=e.length?e[e.length-1]:0,i=_.i(s);return r.push(_.h(t+i&31,t+i>32?n:r.pop(),1)),r}},I={bytes:{p(e){const t=_.u(e)/8,n=new i(t);let r;for(let s=0;t>s;s++)3&s||(r=e[s/4]),n[s]=r>>>24,r<<=8;return n},m(e){const t=[];let n,r=0;for(n=0;n<e.length;n++)r=r<<8|e[n],3&~n||(t.push(r),r=0);return 3&n&&t.push(_.h(8*(3&n),r)),t}}},P=class{constructor(e){const t=this;t.blockSize=512,t.k=[1732584193,4023233417,2562383102,271733878,3285377520],t.v=[1518500249,1859775393,2400959708,3395469782],e?(t.S=e.S.slice(0),t.C=e.C.slice(0),t.A=e.A):t.reset()}reset(){const e=this;return e.S=e.k.slice(0),e.C=[],e.A=0,e}update(e){const t=this;"string"==typeof e&&(e=I._.m(e));const n=t.C=_.concat(t.C,e),r=t.A,i=t.A=r+_.u(e);if(i>9007199254740991)throw new s("Cannot hash more than 2^53 - 1 bits");const o=new c(n);let f=0;for(let e=t.blockSize+r-(t.blockSize+r&t.blockSize-1);i>=e;e+=t.blockSize)t.I(o.subarray(16*f,16*(f+1))),f+=1;return n.splice(0,16*f),t}P(){const e=this;let t=e.C;const n=e.S;t=_.concat(t,[_.h(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(r.floor(e.A/4294967296)),t.push(0|e.A);t.length;)e.I(t.splice(0,16));return e.reset(),n}D(e,t,n,r){return e>19?e>39?e>59?e>79?void 0:t^n^r:t&n|t&r|n&r:t^n^r:t&n|~t&r}V(e,t){return t<<e|t>>>32-e}I(t){const n=this,s=n.S,i=e(80);for(let e=0;16>e;e++)i[e]=t[e];let o=s[0],c=s[1],f=s[2],a=s[3],u=s[4];for(let e=0;79>=e;e++){16>e||(i[e]=n.V(1,i[e-3]^i[e-8]^i[e-14]^i[e-16]));const t=n.V(5,o)+n.D(e,c,f,a)+u+i[e]+n.v[r.floor(e/20)]|0;u=a,a=f,f=n.V(30,c),c=o,o=t}s[0]=s[0]+o|0,s[1]=s[1]+c|0,s[2]=s[2]+f|0,s[3]=s[3]+a|0,s[4]=s[4]+u|0}},D={getRandomValues(e){const t=new c(e.buffer),n=e=>{let t=987654321;const n=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&n,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&n)&n)/4294967296+.5)*(r.random()>.5?1:-1))};for(let s,i=0;i<e.length;i+=4){const e=n(4294967296*(s||r.random()));s=987654071*e(),t[i/4]=4294967296*e()|0}return e}},V={importKey:e=>new V.R(I.bytes.m(e)),B(e,t,n,r){if(n=n||1e4,0>r||0>n)throw new s("invalid params to pbkdf2");const i=1+(r>>5)<<2;let o,c,f,a,l;const w=new ArrayBuffer(i),h=new u(w);let d=0;const p=_;for(t=I.bytes.m(t),l=1;(i||1)>d;l++){for(o=c=e.encrypt(p.concat(t,[l])),f=1;n>f;f++)for(c=e.encrypt(c),a=0;a<c.length;a++)o[a]^=c[a];for(f=0;(i||1)>d&&f<o.length;f++)h.setInt32(d,o[f]),d+=4}return w.slice(0,r/8)},R:class{constructor(e){const t=this,n=t.M=P,r=[[],[]];t.U=[new n,new n];const s=t.U[0].blockSize/32;e.length>s&&(e=(new n).update(e).P());for(let t=0;s>t;t++)r[0][t]=909522486^e[t],r[1][t]=1549556828^e[t];t.U[0].update(r[0]),t.U[1].update(r[1]),t.K=new n(t.U[0])}reset(){const e=this;e.K=new e.M(e.U[0]),e.N=!1}update(e){this.N=!0,this.K.update(e)}digest(){const e=this,t=e.K.P(),n=new e.M(e.U[1]).update(t).P();return e.reset(),n}encrypt(e){if(this.N)throw new s("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},R=typeof h!=v&&typeof h.getRandomValues==S,B="Invalid password",E="Invalid signature",M="zipjs-abort-check-password";function U(e){return R?h.getRandomValues(e):D.getRandomValues(e)}const K=16,N={name:"PBKDF2"},O=t.assign({hash:{name:"HMAC"}},N),T=t.assign({iterations:1e3,hash:{name:"SHA-1"}},N),W=["deriveBits"],j=[8,12,16],H=[16,24,32],L=10,F=[0,0,0,0],q=typeof h!=v,G=q&&h.subtle,J=q&&typeof G!=v,Q=I.bytes,X=class{constructor(e){const t=this;t.O=[[[],[],[],[],[]],[[],[],[],[],[]]],t.O[0][0][0]||t.T();const n=t.O[0][4],r=t.O[1],i=e.length;let o,c,f,a=1;if(4!==i&&6!==i&&8!==i)throw new s("invalid aes key size");for(t.v=[c=e.slice(0),f=[]],o=i;4*i+28>o;o++){let e=c[o-1];(o%i===0||8===i&&o%i===4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],o%i===0&&(e=e<<8^e>>>24^a<<24,a=a<<1^283*(a>>7))),c[o]=c[o-i]^e}for(let e=0;o;e++,o--){const t=c[3&e?o:o-4];f[e]=4>=o||4>e?t:r[0][n[t>>>24]]^r[1][n[t>>16&255]]^r[2][n[t>>8&255]]^r[3][n[255&t]]}}encrypt(e){return this.W(e,0)}decrypt(e){return this.W(e,1)}T(){const e=this.O[0],t=this.O[1],n=e[4],r=t[4],s=[],i=[];let o,c,f,a;for(let e=0;256>e;e++)i[(s[e]=e<<1^283*(e>>7))^e]=e;for(let u=o=0;!n[u];u^=c||1,o=i[o]||1){let i=o^o<<1^o<<2^o<<3^o<<4;i=i>>8^255&i^99,n[u]=i,r[i]=u,a=s[f=s[c=s[u]]];let l=16843009*a^65537*f^257*c^16843008*u,w=257*s[i]^16843008*i;for(let n=0;4>n;n++)e[n][u]=w=w<<24^w>>>8,t[n][i]=l=l<<24^l>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}W(e,t){if(4!==e.length)throw new s("invalid aes block size");const n=this.v[t],r=n.length/4-2,i=[0,0,0,0],o=this.O[t],c=o[0],f=o[1],a=o[2],u=o[3],l=o[4];let w,h,d,p=e[0]^n[0],y=e[t?3:1]^n[1],m=e[2]^n[2],b=e[t?1:3]^n[3],g=4;for(let e=0;r>e;e++)w=c[p>>>24]^f[y>>16&255]^a[m>>8&255]^u[255&b]^n[g],h=c[y>>>24]^f[m>>16&255]^a[b>>8&255]^u[255&p]^n[g+1],d=c[m>>>24]^f[b>>16&255]^a[p>>8&255]^u[255&y]^n[g+2],b=c[b>>>24]^f[p>>16&255]^a[y>>8&255]^u[255&m]^n[g+3],g+=4,p=w,y=h,m=d;for(let e=0;4>e;e++)i[t?3&-e:e]=l[p>>>24]<<24^l[y>>16&255]<<16^l[m>>8&255]<<8^l[255&b]^n[g++],w=p,p=y,y=m,m=b,b=w;return i}},Y=class{constructor(e,t){this.j=e,this.H=t,this.L=t}reset(){this.L=this.H}update(e){return this.F(this.j,e,this.L)}q(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,n=e>>8&255,r=255&e;255===t?(t=0,255===n?(n=0,255===r?r=0:++r):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=r}return e}G(e){0===(e[0]=this.q(e[0]))&&(e[1]=this.q(e[1]))}F(e,t,n){let r;if(!(r=t.length))return[];const s=_.u(t);for(let s=0;r>s;s+=4){this.G(n);const r=e.encrypt(n);t[s]^=r[0],t[s+1]^=r[1],t[s+2]^=r[2],t[s+3]^=r[3]}return _.l(t,s)}},Z=V.R;let $=q&&J&&typeof G.importKey==S,ee=q&&J&&typeof G.deriveBits==S;class te extends p{constructor({password:e,rawPassword:n,signed:r,encryptionStrength:o,checkPasswordOnly:c}){super({start(){t.assign(this,{ready:new l(e=>this.J=e),password:ie(e,n),signed:r,X:o-1,pending:new i})},async transform(e,t){const n=this,{password:r,X:o,J:f,ready:a}=n;r?(await(async(e,t,n,r)=>{const i=await se(e,t,n,ce(r,0,j[t])),o=ce(r,j[t]);if(i[0]!=o[0]||i[1]!=o[1])throw new s(B)})(n,o,r,ce(e,0,j[o]+2)),e=ce(e,j[o]+2),c?t.error(new s(M)):f()):await a;const u=new i(e.length-L-(e.length-L)%K);t.enqueue(re(n,e,u,0,L,!0))},async flush(e){const{signed:t,Y:n,Z:r,pending:o,ready:c}=this;if(r&&n){await c;const f=ce(o,0,o.length-L),a=ce(o,o.length-L);let u=new i;if(f.length){const e=ae(Q,f);r.update(e);const t=n.update(e);u=fe(Q,t)}if(t){const e=ce(fe(Q,r.digest()),0,L);for(let t=0;L>t;t++)if(e[t]!=a[t])throw new s(E)}e.enqueue(u)}}})}}class ne extends p{constructor({password:e,rawPassword:n,encryptionStrength:r}){let s;super({start(){t.assign(this,{ready:new l(e=>this.J=e),password:ie(e,n),X:r-1,pending:new i})},async transform(e,t){const n=this,{password:r,X:s,J:o,ready:c}=n;let f=new i;r?(f=await(async(e,t,n)=>{const r=U(new i(j[t]));return oe(r,await se(e,t,n,r))})(n,s,r),o()):await c;const a=new i(f.length+e.length-e.length%K);a.set(f,0),t.enqueue(re(n,e,a,f.length,0))},async flush(e){const{Y:t,Z:n,pending:r,ready:o}=this;if(n&&t){await o;let c=new i;if(r.length){const e=t.update(ae(Q,r));n.update(e),c=fe(Q,e)}s.signature=fe(Q,n.digest()).slice(0,L),e.enqueue(oe(c,s.signature))}}}),s=this}}function re(e,t,n,r,s,o){const{Y:c,Z:f,pending:a}=e,u=t.length-s;let l;for(a.length&&(t=oe(a,t),n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new i(t)).set(n,0)}return e})(n,u-u%K)),l=0;u-K>=l;l+=K){const e=ae(Q,ce(t,l,l+K));o&&f.update(e);const s=c.update(e);o||f.update(s),n.set(fe(Q,s),l+r)}return e.pending=ce(t,l),n}async function se(n,r,s,o){n.password=null;const c=await(async(e,t,n,r,s)=>{if(!$)return V.importKey(t);try{return await G.importKey("raw",t,n,!1,s)}catch(e){return $=!1,V.importKey(t)}})(0,s,O,0,W),f=await(async(e,t,n)=>{if(!ee)return V.B(t,e.salt,T.iterations,n);try{return await G.deriveBits(e,t,n)}catch(r){return ee=!1,V.B(t,e.salt,T.iterations,n)}})(t.assign({salt:o},T),c,8*(2*H[r]+2)),a=new i(f),u=ae(Q,ce(a,0,H[r])),l=ae(Q,ce(a,H[r],2*H[r])),w=ce(a,2*H[r]);return t.assign(n,{keys:{key:u,$:l,passwordVerification:w},Y:new Y(new X(u),e.from(F)),Z:new Z(l)}),w}function ie(e,t){return t===k?(e=>{if(typeof w==v){const t=new i((e=unescape(encodeURIComponent(e))).length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}return(new w).encode(e)})(e):t}function oe(e,t){let n=e;return e.length+t.length&&(n=new i(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function ce(e,t,n){return e.subarray(t,n)}function fe(e,t){return e.p(t)}function ae(e,t){return e.m(t)}class ue extends p{constructor({password:e,passwordVerification:n,checkPasswordOnly:r}){super({start(){t.assign(this,{password:e,passwordVerification:n}),de(this,e)},transform(e,t){const n=this;if(n.password){const t=we(n,e.subarray(0,12));if(n.password=null,t[11]!=n.passwordVerification)throw new s(B);e=e.subarray(12)}r?t.error(new s(M)):t.enqueue(we(n,e))}})}}class le extends p{constructor({password:e,passwordVerification:n}){super({start(){t.assign(this,{password:e,passwordVerification:n}),de(this,e)},transform(e,t){const n=this;let r,s;if(n.password){n.password=null;const t=U(new i(12));t[11]=n.passwordVerification,r=new i(e.length+t.length),r.set(he(n,t),0),s=12}else r=new i(e.length),s=0;r.set(he(n,e),s),t.enqueue(r)}})}}function we(e,t){const n=new i(t.length);for(let r=0;r<t.length;r++)n[r]=ye(e)^t[r],pe(e,n[r]);return n}function he(e,t){const n=new i(t.length);for(let r=0;r<t.length;r++)n[r]=ye(e)^t[r],pe(e,t[r]);return n}function de(e,n){const r=[305419896,591751049,878082192];t.assign(e,{keys:r,ee:new x(r[0]),te:new x(r[2])});for(let t=0;t<n.length;t++)pe(e,n.charCodeAt(t))}function pe(e,t){let[n,s,i]=e.keys;e.ee.append([t]),n=~e.ee.get(),s=be(r.imul(be(s+me(n)),134775813)+1),e.te.append([s>>>24]),i=~e.te.get(),e.keys=[n,s,i]}function ye(e){const t=2|e.keys[2];return me(r.imul(t,1^t)>>>8)}function me(e){return 255&e}function be(e){return 4294967295&e}const ge="deflate-raw";class ke extends p{constructor(e,{chunkSize:t,CompressionStream:n,CompressionStreamNative:r}){super({});const{compressed:s,encrypted:i,useCompressionStream:o,zipCrypto:c,signed:f,level:a}=e,l=this;let w,h,d=Se(super.readable);i&&!c||!f||(w=new A,d=xe(d,w)),s&&(d=Ce(d,o,{level:a,chunkSize:t},r,n)),i&&(c?d=xe(d,new le(e)):(h=new ne(e),d=xe(d,h))),ze(l,d,()=>{let e;i&&!c&&(e=h.signature),i&&!c||!f||(e=new u(w.value.buffer).getUint32(0)),l.signature=e})}}class ve extends p{constructor(e,{chunkSize:t,DecompressionStream:n,DecompressionStreamNative:r}){super({});const{zipCrypto:i,encrypted:o,signed:c,signature:f,compressed:a,useCompressionStream:l}=e;let w,h,d=Se(super.readable);o&&(i?d=xe(d,new ue(e)):(h=new te(e),d=xe(d,h))),a&&(d=Ce(d,l,{chunkSize:t},r,n)),o&&!i||!c||(w=new A,d=xe(d,w)),ze(this,d,()=>{if((!o||i)&&c){const e=new u(w.value.buffer);if(f!=e.getUint32(0,!1))throw new s(E)}})}}function Se(e){return xe(e,new p({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function ze(e,n,r){n=xe(n,new p({flush:r})),t.defineProperty(e,"readable",{get:()=>n})}function Ce(e,t,n,r,s){try{e=xe(e,new(t&&r?r:s)(ge,n))}catch(r){if(!t)return e;try{e=xe(e,new s(ge,n))}catch(t){return e}}return e}function xe(e,t){return e.pipeThrough(t)}const Ae="data",_e="close";class Ie extends p{constructor(e,n){super({});const r=this,{codecType:s}=e;let i;s.startsWith("deflate")?i=ke:s.startsWith("inflate")&&(i=ve),r.outputSize=0;let o=0;const c=new i(e,n),f=super.readable,a=new p({transform(e,t){e&&e.length&&(o+=e.length,t.enqueue(e))},flush(){t.assign(r,{inputSize:o})}}),u=new p({transform(e,t){e&&e.length&&(t.enqueue(e),r.outputSize+=e.length)},flush(){const{signature:e}=c;t.assign(r,{signature:e,inputSize:o})}});t.defineProperty(r,"readable",{get:()=>f.pipeThrough(a).pipeThrough(c).pipeThrough(u)})}}class Pe extends p{constructor(e){let t;super({transform:function n(r,s){if(t){const e=new i(t.length+r.length);e.set(t),e.set(r,t.length),r=e,t=null}r.length>e?(s.enqueue(r.slice(0,e)),n(r.slice(e),s)):t=r},flush(e){t&&t.length&&e.enqueue(t)}})}}const De=new a,Ve=new a;let Re,Be=0,Ee=!0;async function Me(e){try{const{options:t,scripts:r,config:s}=e;if(r&&r.length)try{Ee?importScripts.apply(k,r):await Ue(r)}catch(e){Ee=!1,await Ue(r)}self.initCodec&&self.initCodec(),s.CompressionStreamNative=self.CompressionStream,s.DecompressionStreamNative=self.DecompressionStream,self.Deflate&&(s.CompressionStream=new z(self.Deflate)),self.Inflate&&(s.DecompressionStream=new z(self.Inflate));const i={highWaterMark:1},o=e.readable||new y({async pull(e){const t=new l(e=>De.set(Be,e));Ke({type:"pull",messageId:Be}),Be=(Be+1)%n.MAX_SAFE_INTEGER;const{value:r,done:s}=await t;e.enqueue(r),s&&e.close()}},i),c=e.writable||new m({async write(e){let t;const r=new l(e=>t=e);Ve.set(Be,t),Ke({type:Ae,value:e,messageId:Be}),Be=(Be+1)%n.MAX_SAFE_INTEGER,await r}},i),f=new Ie(t,s);Re=new AbortController;const{signal:a}=Re;await o.pipeThrough(f).pipeThrough(new Pe(s.chunkSize)).pipeTo(c,{signal:a,preventClose:!0,preventAbort:!0}),await c.getWriter().close();const{signature:u,inputSize:w,outputSize:h}=f;Ke({type:_e,result:{signature:u,inputSize:w,outputSize:h}})}catch(e){e.outputSize=0,Ne(e)}}async function Ue(e){for(const t of e)await import(t)}function Ke(e){let{value:t}=e;if(t)if(t.length)try{t=new i(t),e.value=t.buffer,d(e,[e.value])}catch(t){d(e)}else d(e);else d(e)}function Ne(e=new s("Unknown error")){const{message:t,stack:n,code:r,name:i,outputSize:o}=e;d({error:{message:t,stack:n,code:r,name:i,outputSize:o}})}addEventListener("message",({data:e})=>{const{type:t,messageId:n,value:r,done:s}=e;try{if("start"==t&&Me(e),t==Ae){const e=De.get(n);De.delete(n),e({value:new i(r),done:s})}if("ack"==t){const e=Ve.get(n);Ve.delete(n),e()}t==_e&&Re.abort()}catch(e){Ne(e)}});const Oe=-2;function Te(t){return We(t.map(([t,n])=>new e(t).fill(n,0,t)))}function We(t){return t.reduce((t,n)=>t.concat(e.isArray(n)?We(n):n),[])}const je=[0,1,2,3].concat(...Te([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function He(){const e=this;function t(e,t){let n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1}e.ne=n=>{const s=e.re,i=e.ie.se,o=e.ie.oe;let c,f,a,u=-1;for(n.ce=0,n.fe=573,c=0;o>c;c++)0!==s[2*c]?(n.ae[++n.ce]=u=c,n.ue[c]=0):s[2*c+1]=0;for(;2>n.ce;)a=n.ae[++n.ce]=2>u?++u:0,s[2*a]=1,n.ue[a]=0,n.le--,i&&(n.we-=i[2*a+1]);for(e.he=u,c=r.floor(n.ce/2);c>=1;c--)n.de(s,c);a=o;do{c=n.ae[1],n.ae[1]=n.ae[n.ce--],n.de(s,1),f=n.ae[1],n.ae[--n.fe]=c,n.ae[--n.fe]=f,s[2*a]=s[2*c]+s[2*f],n.ue[a]=r.max(n.ue[c],n.ue[f])+1,s[2*c+1]=s[2*f+1]=a,n.ae[1]=a++,n.de(s,1)}while(n.ce>=2);n.ae[--n.fe]=n.ae[1],(t=>{const n=e.re,r=e.ie.se,s=e.ie.pe,i=e.ie.ye,o=e.ie.me;let c,f,a,u,l,w,h=0;for(u=0;15>=u;u++)t.be[u]=0;for(n[2*t.ae[t.fe]+1]=0,c=t.fe+1;573>c;c++)f=t.ae[c],u=n[2*n[2*f+1]+1]+1,u>o&&(u=o,h++),n[2*f+1]=u,f>e.he||(t.be[u]++,l=0,i>f||(l=s[f-i]),w=n[2*f],t.le+=w*(u+l),r&&(t.we+=w*(r[2*f+1]+l)));if(0!==h){do{for(u=o-1;0===t.be[u];)u--;t.be[u]--,t.be[u+1]+=2,t.be[o]--,h-=2}while(h>0);for(u=o;0!==u;u--)for(f=t.be[u];0!==f;)a=t.ae[--c],a>e.he||(n[2*a+1]!=u&&(t.le+=(u-n[2*a+1])*n[2*a],n[2*a+1]=u),f--)}})(n),((e,n,r)=>{const s=[];let i,o,c,f=0;for(i=1;15>=i;i++)s[i]=f=f+r[i-1]<<1;for(o=0;n>=o;o++)c=e[2*o+1],0!==c&&(e[2*o]=t(s[c]++,c))})(s,e.he,n.be)}}function Le(e,t,n,r,s){const i=this;i.se=e,i.pe=t,i.ye=n,i.oe=r,i.me=s}He.ge=[0,1,2,3,4,5,6,7].concat(...Te([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]])),He.ke=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],He.ve=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],He.Se=e=>256>e?je[e]:je[256+(e>>>7)],He.ze=[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],He.Ce=[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],He.xe=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],He.Ae=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const Fe=Te([[144,8],[112,9],[24,7],[8,8]]);Le._e=We([12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227].map((e,t)=>[e,Fe[t]]));const qe=Te([[30,5]]);function Ge(e,t,n,r,s){const i=this;i.Ie=e,i.Pe=t,i.De=n,i.Ve=r,i.Re=s}Le.Be=We([0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23].map((e,t)=>[e,qe[t]])),Le.Ee=new Le(Le._e,He.ze,257,286,15),Le.Me=new Le(Le.Be,He.Ce,0,30,15),Le.Ue=new Le(null,He.xe,0,19,7);const Je=[new Ge(0,0,0,0,0),new Ge(4,4,8,4,1),new Ge(4,5,16,8,1),new Ge(4,6,32,32,1),new Ge(4,4,16,16,2),new Ge(8,16,32,32,2),new Ge(8,16,128,128,2),new Ge(8,32,128,256,2),new Ge(32,128,258,1024,2),new Ge(32,258,258,4096,2)],Qe=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],Xe=113,Ye=666,Ze=262;function $e(e,t,n,r){const s=e[2*t],i=e[2*n];return i>s||s==i&&r[t]<=r[n]}function et(){const e=this;let t,n,s,c,f,a,u,l,w,h,d,p,y,m,b,g,k,v,S,z,C,x,A,_,I,P,D,V,R,B,E,M,U;const K=new He,N=new He,O=new He;let T,W,j,H,L,F;function q(){let t;for(t=0;286>t;t++)E[2*t]=0;for(t=0;30>t;t++)M[2*t]=0;for(t=0;19>t;t++)U[2*t]=0;E[512]=1,e.le=e.we=0,W=j=0}function G(e,t){let n,r=-1,s=e[1],i=0,o=7,c=4;0===s&&(o=138,c=3),e[2*(t+1)+1]=65535;for(let f=0;t>=f;f++)n=s,s=e[2*(f+1)+1],++i<o&&n==s||(c>i?U[2*n]+=i:0!==n?(n!=r&&U[2*n]++,U[32]++):i>10?U[36]++:U[34]++,i=0,r=n,0===s?(o=138,c=3):n==s?(o=6,c=3):(o=7,c=4))}function J(t){e.Ke[e.pending++]=t}function Q(e){J(255&e),J(e>>>8&255)}function X(e,t){let n;const r=t;F>16-r?(n=e,L|=n<<F&65535,Q(L),L=n>>>16-F,F+=r-16):(L|=e<<F&65535,F+=r)}function Y(e,t){const n=2*e;X(65535&t[n],65535&t[n+1])}function Z(e,t){let n,r,s=-1,i=e[1],o=0,c=7,f=4;for(0===i&&(c=138,f=3),n=0;t>=n;n++)if(r=i,i=e[2*(n+1)+1],++o>=c||r!=i){if(f>o)do{Y(r,U)}while(0!==--o);else 0!==r?(r!=s&&(Y(r,U),o--),Y(16,U),X(o-3,2)):o>10?(Y(18,U),X(o-11,7)):(Y(17,U),X(o-3,3));o=0,s=r,0===i?(c=138,f=3):r==i?(c=6,f=3):(c=7,f=4)}}function $(){16==F?(Q(L),L=0,F=0):8>F||(J(255&L),L>>>=8,F-=8)}function ee(t,n){let s,i,o;if(e.Ne[W]=t,e.Oe[W]=255&n,W++,0===t?E[2*n]++:(j++,t--,E[2*(He.ge[n]+256+1)]++,M[2*He.Se(t)]++),!(8191&W)&&D>2){for(s=8*W,i=C-k,o=0;30>o;o++)s+=M[2*o]*(5+He.Ce[o]);if(s>>>=3,j<r.floor(W/2)&&s<r.floor(i/2))return!0}return W==T-1}function te(t,n){let r,s,i,o,c=0;if(0!==W)do{r=e.Ne[c],s=e.Oe[c],c++,0===r?Y(s,t):(i=He.ge[s],Y(i+256+1,t),o=He.ze[i],0!==o&&(s-=He.ke[i],X(s,o)),r--,i=He.Se(r),Y(i,n),o=He.Ce[i],0!==o&&(r-=He.ve[i],X(r,o)))}while(W>c);Y(256,t),H=t[513]}function ne(){F>8?Q(L):F>0&&J(255&L),L=0,F=0}function re(t,n,r){X(0+(r?1:0),3),((t,n)=>{ne(),H=8,Q(n),Q(~n),e.Ke.set(l.subarray(t,t+n),e.pending),e.pending+=n})(t,n)}function se(n){((t,n,r)=>{let s,i,o=0;D>0?(K.ne(e),N.ne(e),o=(()=>{let t;for(G(E,K.he),G(M,N.he),O.ne(e),t=18;t>=3&&0===U[2*He.Ae[t]+1];t--);return e.le+=14+3*(t+1),t})(),s=e.le+3+7>>>3,i=e.we+3+7>>>3,i>s||(s=i)):s=i=n+5,n+4>s||-1==t?i==s?(X(2+(r?1:0),3),te(Le._e,Le.Be)):(X(4+(r?1:0),3),((e,t,n)=>{let r;for(X(e-257,5),X(t-1,5),X(n-4,4),r=0;n>r;r++)X(U[2*He.Ae[r]+1],3);Z(E,e-1),Z(M,t-1)})(K.he+1,N.he+1,o+1),te(E,M)):re(t,n,r),q(),r&&ne()})(0>k?-1:k,C-k,n),k=C,t.Te()}function ie(){let e,n,r,s;do{if(s=w-A-C,0===s&&0===C&&0===A)s=f;else if(-1==s)s--;else if(C>=f+f-Ze){l.set(l.subarray(f,f+f),0),x-=f,C-=f,k-=f,e=y,r=e;do{n=65535&d[--r],d[r]=f>n?0:n-f}while(0!==--e);e=f,r=e;do{n=65535&h[--r],h[r]=f>n?0:n-f}while(0!==--e);s+=f}if(0===t.We)return;e=t.je(l,C+A,s),A+=e,3>A||(p=255&l[C],p=(p<<g^255&l[C+1])&b)}while(Ze>A&&0!==t.We)}function oe(e){let t,n,r=I,s=C,i=_;const o=C>f-Ze?C-(f-Ze):0;let c=B;const a=u,w=C+258;let d=l[s+i-1],p=l[s+i];R>_||(r>>=2),c>A&&(c=A);do{if(t=e,l[t+i]==p&&l[t+i-1]==d&&l[t]==l[s]&&l[++t]==l[s+1]){s+=2,t++;do{}while(l[++s]==l[++t]&&l[++s]==l[++t]&&l[++s]==l[++t]&&l[++s]==l[++t]&&l[++s]==l[++t]&&l[++s]==l[++t]&&l[++s]==l[++t]&&l[++s]==l[++t]&&w>s);if(n=258-(w-s),s=w-258,n>i){if(x=e,i=n,n>=c)break;d=l[s+i-1],p=l[s+i]}}}while((e=65535&h[e&a])>o&&0!==--r);return i>A?A:i}e.ue=[],e.be=[],e.ae=[],E=[],M=[],U=[],e.de=(t,n)=>{const r=e.ae,s=r[n];let i=n<<1;for(;i<=e.ce&&(i<e.ce&&$e(t,r[i+1],r[i],e.ue)&&i++,!$e(t,s,r[i],e.ue));)r[n]=r[i],n=i,i<<=1;r[n]=s},e.He=(t,S,x,W,j,G)=>(W||(W=8),j||(j=8),G||(G=0),t.Le=null,-1==S&&(S=6),1>j||j>9||8!=W||9>x||x>15||0>S||S>9||0>G||G>2?Oe:(t.Fe=e,a=x,f=1<<a,u=f-1,m=j+7,y=1<<m,b=y-1,g=r.floor((m+3-1)/3),l=new i(2*f),h=[],d=[],T=1<<j+6,e.Ke=new i(4*T),s=4*T,e.Ne=new o(T),e.Oe=new i(T),D=S,V=G,(t=>(t.qe=t.Ge=0,t.Le=null,e.pending=0,e.Je=0,n=Xe,c=0,K.re=E,K.ie=Le.Ee,N.re=M,N.ie=Le.Me,O.re=U,O.ie=Le.Ue,L=0,F=0,H=8,q(),(()=>{w=2*f,d[y-1]=0;for(let e=0;y-1>e;e++)d[e]=0;P=Je[D].Pe,R=Je[D].Ie,B=Je[D].De,I=Je[D].Ve,C=0,k=0,A=0,v=_=2,z=0,p=0})(),0))(t))),e.Qe=()=>42!=n&&n!=Xe&&n!=Ye?Oe:(e.Oe=null,e.Ne=null,e.Ke=null,d=null,h=null,l=null,e.Fe=null,n==Xe?-3:0),e.Xe=(e,t,n)=>{let r=0;return-1==t&&(t=6),0>t||t>9||0>n||n>2?Oe:(Je[D].Re!=Je[t].Re&&0!==e.qe&&(r=e.Ye(1)),D!=t&&(D=t,P=Je[D].Pe,R=Je[D].Ie,B=Je[D].De,I=Je[D].Ve),V=n,r)},e.Ze=(e,t,r)=>{let s,i=r,o=0;if(!t||42!=n)return Oe;if(3>i)return 0;for(i>f-Ze&&(i=f-Ze,o=r-i),l.set(t.subarray(o,o+i),0),C=i,k=i,p=255&l[0],p=(p<<g^255&l[1])&b,s=0;i-3>=s;s++)p=(p<<g^255&l[s+2])&b,h[s&u]=d[p],d[p]=s;return 0},e.Ye=(r,i)=>{let o,w,m,I,R;if(i>4||0>i)return Oe;if(!r.$e||!r.et&&0!==r.We||n==Ye&&4!=i)return r.Le=Qe[4],Oe;if(0===r.tt)return r.Le=Qe[7],-5;var B;if(t=r,I=c,c=i,42==n&&(w=8+(a-8<<4)<<8,m=(D-1&255)>>1,m>3&&(m=3),w|=m<<6,0!==C&&(w|=32),w+=31-w%31,n=Xe,J((B=w)>>8&255),J(255&B)),0!==e.pending){if(t.Te(),0===t.tt)return c=-1,0}else if(0===t.We&&I>=i&&4!=i)return t.Le=Qe[7],-5;if(n==Ye&&0!==t.We)return r.Le=Qe[7],-5;if(0!==t.We||0!==A||0!=i&&n!=Ye){switch(R=-1,Je[D].Re){case 0:R=(e=>{let n,r=65535;for(r>s-5&&(r=s-5);;){if(1>=A){if(ie(),0===A&&0==e)return 0;if(0===A)break}if(C+=A,A=0,n=k+r,(0===C||C>=n)&&(A=C-n,C=n,se(!1),0===t.tt))return 0;if(C-k>=f-Ze&&(se(!1),0===t.tt))return 0}return se(4==e),0===t.tt?4==e?2:0:4==e?3:1})(i);break;case 1:R=(e=>{let n,r=0;for(;;){if(Ze>A){if(ie(),Ze>A&&0==e)return 0;if(0===A)break}if(3>A||(p=(p<<g^255&l[C+2])&b,r=65535&d[p],h[C&u]=d[p],d[p]=C),0===r||(C-r&65535)>f-Ze||2!=V&&(v=oe(r)),3>v)n=ee(0,255&l[C]),A--,C++;else if(n=ee(C-x,v-3),A-=v,v>P||3>A)C+=v,v=0,p=255&l[C],p=(p<<g^255&l[C+1])&b;else{v--;do{C++,p=(p<<g^255&l[C+2])&b,r=65535&d[p],h[C&u]=d[p],d[p]=C}while(0!==--v);C++}if(n&&(se(!1),0===t.tt))return 0}return se(4==e),0===t.tt?4==e?2:0:4==e?3:1})(i);break;case 2:R=(e=>{let n,r,s=0;for(;;){if(Ze>A){if(ie(),Ze>A&&0==e)return 0;if(0===A)break}if(3>A||(p=(p<<g^255&l[C+2])&b,s=65535&d[p],h[C&u]=d[p],d[p]=C),_=v,S=x,v=2,0!==s&&P>_&&f-Ze>=(C-s&65535)&&(2!=V&&(v=oe(s)),5>=v&&(1==V||3==v&&C-x>4096)&&(v=2)),3>_||v>_)if(0!==z){if(n=ee(0,255&l[C-1]),n&&se(!1),C++,A--,0===t.tt)return 0}else z=1,C++,A--;else{r=C+A-3,n=ee(C-1-S,_-3),A-=_-1,_-=2;do{++C>r||(p=(p<<g^255&l[C+2])&b,s=65535&d[p],h[C&u]=d[p],d[p]=C)}while(0!==--_);if(z=0,v=2,C++,n&&(se(!1),0===t.tt))return 0}}return 0!==z&&(n=ee(0,255&l[C-1]),z=0),se(4==e),0===t.tt?4==e?2:0:4==e?3:1})(i)}if(2!=R&&3!=R||(n=Ye),0==R||2==R)return 0===t.tt&&(c=-1),0;if(1==R){if(1==i)X(2,3),Y(256,Le._e),$(),9>1+H+10-F&&(X(2,3),Y(256,Le._e),$()),H=7;else if(re(0,0,!1),3==i)for(o=0;y>o;o++)d[o]=0;if(t.Te(),0===t.tt)return c=-1,0}}return 4!=i?0:1}}function tt(){const e=this;e.nt=0,e.rt=0,e.We=0,e.qe=0,e.tt=0,e.Ge=0}function nt(e){const t=new tt,n=(o=e&&e.chunkSize?e.chunkSize:65536)+5*(r.floor(o/16383)+1);var o;const c=new i(n);let f=e?e.level:-1;void 0===f&&(f=-1),t.He(f),t.$e=c,this.append=(e,r)=>{let o,f,a=0,u=0,l=0;const w=[];if(e.length){t.nt=0,t.et=e,t.We=e.length;do{if(t.rt=0,t.tt=n,o=t.Ye(0),0!=o)throw new s("deflating: "+t.Le);t.rt&&(t.rt==n?w.push(new i(c)):w.push(c.subarray(0,t.rt))),l+=t.rt,r&&t.nt>0&&t.nt!=a&&(r(t.nt),a=t.nt)}while(t.We>0||0===t.tt);return w.length>1?(f=new i(l),w.forEach(e=>{f.set(e,u),u+=e.length})):f=w[0]?new i(w[0]):new i,f}},this.flush=()=>{let e,r,o=0,f=0;const a=[];do{if(t.rt=0,t.tt=n,e=t.Ye(4),1!=e&&0!=e)throw new s("deflating: "+t.Le);n-t.tt>0&&a.push(c.slice(0,t.rt)),f+=t.rt}while(t.We>0||0===t.tt);return t.Qe(),r=new i(f),a.forEach(e=>{r.set(e,o),o+=e.length}),r}}tt.prototype={He(e,t){const n=this;return n.Fe=new et,t||(t=15),n.Fe.He(n,e,t)},Ye(e){const t=this;return t.Fe?t.Fe.Ye(t,e):Oe},Qe(){const e=this;if(!e.Fe)return Oe;const t=e.Fe.Qe();return e.Fe=null,t},Xe(e,t){const n=this;return n.Fe?n.Fe.Xe(n,e,t):Oe},Ze(e,t){const n=this;return n.Fe?n.Fe.Ze(n,e,t):Oe},je(e,t,n){const r=this;let s=r.We;return s>n&&(s=n),0===s?0:(r.We-=s,e.set(r.et.subarray(r.nt,r.nt+s),t),r.nt+=s,r.qe+=s,s)},Te(){const e=this;let t=e.Fe.pending;t>e.tt&&(t=e.tt),0!==t&&(e.$e.set(e.Fe.Ke.subarray(e.Fe.Je,e.Fe.Je+t),e.rt),e.rt+=t,e.Fe.Je+=t,e.Ge+=t,e.tt-=t,e.Fe.pending-=t,0===e.Fe.pending&&(e.Fe.Je=0))}};const rt=-2,st=-3,it=-5,ot=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],ct=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],ft=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],at=[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],ut=[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,112,112],lt=[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],wt=[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];function ht(){let e,t,n,r,s,i;function o(e,t,o,c,f,a,u,l,w,h,d){let p,y,m,b,g,k,v,S,z,C,x,A,_,I,P;C=0,g=o;do{n[e[t+C]]++,C++,g--}while(0!==g);if(n[0]==o)return u[0]=-1,l[0]=0,0;for(S=l[0],k=1;15>=k&&0===n[k];k++);for(v=k,k>S&&(S=k),g=15;0!==g&&0===n[g];g--);for(m=g,S>g&&(S=g),l[0]=S,I=1<<k;g>k;k++,I<<=1)if(0>(I-=n[k]))return st;if(0>(I-=n[g]))return st;for(n[g]+=I,i[1]=k=0,C=1,_=2;0!==--g;)i[_]=k+=n[C],_++,C++;g=0,C=0;do{0!==(k=e[t+C])&&(d[i[k]++]=g),C++}while(++g<o);for(o=i[m],i[0]=g=0,C=0,b=-1,A=-S,s[0]=0,x=0,P=0;m>=v;v++)for(p=n[v];0!==p--;){for(;v>A+S;){if(b++,A+=S,P=m-A,P=P>S?S:P,(y=1<<(k=v-A))>p+1&&(y-=p+1,_=v,P>k))for(;++k<P&&(y<<=1)>n[++_];)y-=n[_];if(P=1<<k,h[0]+P>1440)return st;s[b]=x=h[0],h[0]+=P,0!==b?(i[b]=g,r[0]=k,r[1]=S,k=g>>>A-S,r[2]=x-s[b-1]-k,w.set(r,3*(s[b-1]+k))):u[0]=x}for(r[1]=v-A,o>C?d[C]<c?(r[0]=256>d[C]?0:96,r[2]=d[C++]):(r[0]=a[d[C]-c]+16+64,r[2]=f[d[C++]-c]):r[0]=192,y=1<<v-A,k=g>>>A;P>k;k+=y)w.set(r,3*(x+k));for(k=1<<v-1;0!==(g&k);k>>>=1)g^=k;for(g^=k,z=(1<<A)-1;(g&z)!=i[b];)b--,A-=S,z=(1<<A)-1}return 0!==I&&1!=m?it:0}function c(o){let c;for(e||(e=[],t=[],n=new f(16),r=[],s=new f(15),i=new f(16)),t.length<o&&(t=[]),c=0;o>c;c++)t[c]=0;for(c=0;16>c;c++)n[c]=0;for(c=0;3>c;c++)r[c]=0;s.set(n.subarray(0,15),0),i.set(n.subarray(0,16),0)}this.st=(n,r,s,i,f)=>{let a;return c(19),e[0]=0,a=o(n,0,19,19,null,null,s,r,i,e,t),a==st?f.Le="oversubscribed dynamic bit lengths tree":a!=it&&0!==r[0]||(f.Le="incomplete dynamic bit lengths tree",a=st),a},this.it=(n,r,s,i,f,a,u,l,w)=>{let h;return c(288),e[0]=0,h=o(s,0,n,257,at,ut,a,i,l,e,t),0!=h||0===i[0]?(h==st?w.Le="oversubscribed literal/length tree":-4!=h&&(w.Le="incomplete literal/length tree",h=st),h):(c(288),h=o(s,n,r,0,lt,wt,u,f,l,e,t),0!=h||0===f[0]&&n>257?(h==st?w.Le="oversubscribed distance tree":h==it?(w.Le="incomplete distance tree",h=st):-4!=h&&(w.Le="empty distance tree with lengths",h=st),h):0)}}function dt(){const e=this;let t,n,r,s,i=0,o=0,c=0,f=0,a=0,u=0,l=0,w=0,h=0,d=0;function p(e,t,n,r,s,i,o,c){let f,a,u,l,w,h,d,p,y,m,b,g,k,v,S,z;d=c.nt,p=c.We,w=o.ot,h=o.ct,y=o.write,m=y<o.read?o.read-y-1:o.end-y,b=ot[e],g=ot[t];do{for(;20>h;)p--,w|=(255&c.ft(d++))<<h,h+=8;if(f=w&b,a=n,u=r,z=3*(u+f),0!==(l=a[z]))for(;;){if(w>>=a[z+1],h-=a[z+1],16&l){for(l&=15,k=a[z+2]+(w&ot[l]),w>>=l,h-=l;15>h;)p--,w|=(255&c.ft(d++))<<h,h+=8;for(f=w&g,a=s,u=i,z=3*(u+f),l=a[z];;){if(w>>=a[z+1],h-=a[z+1],16&l){for(l&=15;l>h;)p--,w|=(255&c.ft(d++))<<h,h+=8;if(v=a[z+2]+(w&ot[l]),w>>=l,h-=l,m-=k,v>y){S=y-v;do{S+=o.end}while(0>S);if(l=o.end-S,k>l){if(k-=l,y-S>0&&l>y-S)do{o.ut[y++]=o.ut[S++]}while(0!==--l);else o.ut.set(o.ut.subarray(S,S+l),y),y+=l,S+=l,l=0;S=0}}else S=y-v,y-S>0&&2>y-S?(o.ut[y++]=o.ut[S++],o.ut[y++]=o.ut[S++],k-=2):(o.ut.set(o.ut.subarray(S,S+2),y),y+=2,S+=2,k-=2);if(y-S>0&&k>y-S)do{o.ut[y++]=o.ut[S++]}while(0!==--k);else o.ut.set(o.ut.subarray(S,S+k),y),y+=k,S+=k,k=0;break}if(64&l)return c.Le="invalid distance code",k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,st;f+=a[z+2],f+=w&ot[l],z=3*(u+f),l=a[z]}break}if(64&l)return 32&l?(k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,1):(c.Le="invalid literal/length code",k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,st);if(f+=a[z+2],f+=w&ot[l],z=3*(u+f),0===(l=a[z])){w>>=a[z+1],h-=a[z+1],o.ut[y++]=a[z+2],m--;break}}else w>>=a[z+1],h-=a[z+1],o.ut[y++]=a[z+2],m--}while(m>=258&&p>=10);return k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,0}e.init=(e,i,o,c,f,a)=>{t=0,l=e,w=i,r=o,h=c,s=f,d=a,n=null},e.lt=(e,y,m)=>{let b,g,k,v,S,z,C,x=0,A=0,_=0;for(_=y.nt,v=y.We,x=e.ot,A=e.ct,S=e.write,z=S<e.read?e.read-S-1:e.end-S;;)switch(t){case 0:if(z>=258&&v>=10&&(e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,m=p(l,w,r,h,s,d,e,y),_=y.nt,v=y.We,x=e.ot,A=e.ct,S=e.write,z=S<e.read?e.read-S-1:e.end-S,0!=m)){t=1==m?7:9;break}c=l,n=r,o=h,t=1;case 1:for(b=c;b>A;){if(0===v)return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(_++))<<A,A+=8}if(g=3*(o+(x&ot[b])),x>>>=n[g+1],A-=n[g+1],k=n[g],0===k){f=n[g+2],t=6;break}if(16&k){a=15&k,i=n[g+2],t=2;break}if(!(64&k)){c=k,o=g/3+n[g+2];break}if(32&k){t=7;break}return t=9,y.Le="invalid literal/length code",m=st,e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);case 2:for(b=a;b>A;){if(0===v)return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(_++))<<A,A+=8}i+=x&ot[b],x>>=b,A-=b,c=w,n=s,o=d,t=3;case 3:for(b=c;b>A;){if(0===v)return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(_++))<<A,A+=8}if(g=3*(o+(x&ot[b])),x>>=n[g+1],A-=n[g+1],k=n[g],16&k){a=15&k,u=n[g+2],t=4;break}if(!(64&k)){c=k,o=g/3+n[g+2];break}return t=9,y.Le="invalid distance code",m=st,e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);case 4:for(b=a;b>A;){if(0===v)return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(_++))<<A,A+=8}u+=x&ot[b],x>>=b,A-=b,t=5;case 5:for(C=S-u;0>C;)C+=e.end;for(;0!==i;){if(0===z&&(S==e.end&&0!==e.read&&(S=0,z=S<e.read?e.read-S-1:e.end-S),0===z&&(e.write=S,m=e.wt(y,m),S=e.write,z=S<e.read?e.read-S-1:e.end-S,S==e.end&&0!==e.read&&(S=0,z=S<e.read?e.read-S-1:e.end-S),0===z)))return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);e.ut[S++]=e.ut[C++],z--,C==e.end&&(C=0),i--}t=0;break;case 6:if(0===z&&(S==e.end&&0!==e.read&&(S=0,z=S<e.read?e.read-S-1:e.end-S),0===z&&(e.write=S,m=e.wt(y,m),S=e.write,z=S<e.read?e.read-S-1:e.end-S,S==e.end&&0!==e.read&&(S=0,z=S<e.read?e.read-S-1:e.end-S),0===z)))return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);m=0,e.ut[S++]=f,z--,t=0;break;case 7:if(A>7&&(A-=8,v++,_--),e.write=S,m=e.wt(y,m),S=e.write,z=S<e.read?e.read-S-1:e.end-S,e.read!=e.write)return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);t=8;case 8:return m=1,e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);case 9:return m=st,e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);default:return m=rt,e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m)}},e.ht=()=>{}}ht.dt=(e,t,n,r)=>(e[0]=9,t[0]=5,n[0]=ct,r[0]=ft,0);const pt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function yt(e,t){const n=this;let r,s=0,o=0,c=0,a=0;const u=[0],l=[0],w=new dt;let h=0,d=new f(4320);const p=new ht;n.ct=0,n.ot=0,n.ut=new i(t),n.end=t,n.read=0,n.write=0,n.reset=(e,t)=>{t&&(t[0]=0),6==s&&w.ht(e),s=0,n.ct=0,n.ot=0,n.read=n.write=0},n.reset(e,null),n.wt=(e,t)=>{let r,s,i;return s=e.rt,i=n.read,r=(i>n.write?n.end:n.write)-i,r>e.tt&&(r=e.tt),0!==r&&t==it&&(t=0),e.tt-=r,e.Ge+=r,e.$e.set(n.ut.subarray(i,i+r),s),s+=r,i+=r,i==n.end&&(i=0,n.write==n.end&&(n.write=0),r=n.write-i,r>e.tt&&(r=e.tt),0!==r&&t==it&&(t=0),e.tt-=r,e.Ge+=r,e.$e.set(n.ut.subarray(i,i+r),s),s+=r,i+=r),e.rt=s,n.read=i,t},n.lt=(e,t)=>{let i,f,y,m,b,g,k,v;for(m=e.nt,b=e.We,f=n.ot,y=n.ct,g=n.write,k=g<n.read?n.read-g-1:n.end-g;;){let S,z,C,x,A,_,I,P;switch(s){case 0:for(;3>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<<y,y+=8}switch(i=7&f,h=1&i,i>>>1){case 0:f>>>=3,y-=3,i=7&y,f>>>=i,y-=i,s=1;break;case 1:S=[],z=[],C=[[]],x=[[]],ht.dt(S,z,C,x),w.init(S[0],z[0],C[0],0,x[0],0),f>>>=3,y-=3,s=6;break;case 2:f>>>=3,y-=3,s=3;break;case 3:return f>>>=3,y-=3,s=9,e.Le="invalid block type",t=st,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t)}break;case 1:for(;32>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<<y,y+=8}if((~f>>>16&65535)!=(65535&f))return s=9,e.Le="invalid stored block lengths",t=st,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);o=65535&f,f=y=0,s=0!==o?2:0!==h?7:0;break;case 2:if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);if(0===k&&(g==n.end&&0!==n.read&&(g=0,k=g<n.read?n.read-g-1:n.end-g),0===k&&(n.write=g,t=n.wt(e,t),g=n.write,k=g<n.read?n.read-g-1:n.end-g,g==n.end&&0!==n.read&&(g=0,k=g<n.read?n.read-g-1:n.end-g),0===k)))return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);if(t=0,i=o,i>b&&(i=b),i>k&&(i=k),n.ut.set(e.je(m,i),g),m+=i,b-=i,g+=i,k-=i,0!==(o-=i))break;s=0!==h?7:0;break;case 3:for(;14>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<<y,y+=8}if(c=i=16383&f,(31&i)>29||(i>>5&31)>29)return s=9,e.Le="too many length or distance symbols",t=st,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);if(i=258+(31&i)+(i>>5&31),!r||r.length<i)r=[];else for(v=0;i>v;v++)r[v]=0;f>>>=14,y-=14,a=0,s=4;case 4:for(;4+(c>>>10)>a;){for(;3>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<<y,y+=8}r[pt[a++]]=7&f,f>>>=3,y-=3}for(;19>a;)r[pt[a++]]=0;if(u[0]=7,i=p.st(r,u,l,d,e),0!=i)return(t=i)==st&&(r=null,s=9),n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);a=0,s=5;case 5:for(;i=c,258+(31&i)+(i>>5&31)>a;){let o,w;for(i=u[0];i>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<<y,y+=8}if(i=d[3*(l[0]+(f&ot[i]))+1],w=d[3*(l[0]+(f&ot[i]))+2],16>w)f>>>=i,y-=i,r[a++]=w;else{for(v=18==w?7:w-14,o=18==w?11:3;i+v>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<<y,y+=8}if(f>>>=i,y-=i,o+=f&ot[v],f>>>=v,y-=v,v=a,i=c,v+o>258+(31&i)+(i>>5&31)||16==w&&1>v)return r=null,s=9,e.Le="invalid bit length repeat",t=st,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);w=16==w?r[v-1]:0;do{r[v++]=w}while(0!==--o);a=v}}if(l[0]=-1,A=[],_=[],I=[],P=[],A[0]=9,_[0]=6,i=c,i=p.it(257+(31&i),1+(i>>5&31),r,A,_,I,P,d,e),0!=i)return i==st&&(r=null,s=9),t=i,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);w.init(A[0],_[0],d,I[0],d,P[0]),s=6;case 6:if(n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,1!=(t=w.lt(n,e,t)))return n.wt(e,t);if(t=0,w.ht(e),m=e.nt,b=e.We,f=n.ot,y=n.ct,g=n.write,k=g<n.read?n.read-g-1:n.end-g,0===h){s=0;break}s=7;case 7:if(n.write=g,t=n.wt(e,t),g=n.write,k=g<n.read?n.read-g-1:n.end-g,n.read!=n.write)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);s=8;case 8:return t=1,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);case 9:return t=st,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);default:return t=rt,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t)}}},n.ht=e=>{n.reset(e,null),n.ut=null,d=null},n.yt=(e,t,r)=>{n.ut.set(e.subarray(t,t+r),0),n.read=n.write=r},n.bt=()=>1==s?1:0}const mt=13,bt=[0,0,255,255];function gt(){const e=this;function t(e){return e&&e.gt?(e.qe=e.Ge=0,e.Le=null,e.gt.mode=7,e.gt.kt.reset(e,null),0):rt}e.mode=0,e.method=0,e.vt=[0],e.St=0,e.marker=0,e.zt=0,e.Ct=t=>(e.kt&&e.kt.ht(t),e.kt=null,0),e.xt=(n,r)=>(n.Le=null,e.kt=null,8>r||r>15?(e.Ct(n),rt):(e.zt=r,n.gt.kt=new yt(n,1<<r),t(n),0)),e.At=(e,t)=>{let n,r;if(!e||!e.gt||!e.et)return rt;const s=e.gt;for(t=4==t?it:0,n=it;;)switch(s.mode){case 0:if(0===e.We)return n;if(n=t,e.We--,e.qe++,8!=(15&(s.method=e.ft(e.nt++)))){s.mode=mt,e.Le="unknown compression method",s.marker=5;break}if(8+(s.method>>4)>s.zt){s.mode=mt,e.Le="invalid win size",s.marker=5;break}s.mode=1;case 1:if(0===e.We)return n;if(n=t,e.We--,e.qe++,r=255&e.ft(e.nt++),((s.method<<8)+r)%31!=0){s.mode=mt,e.Le="incorrect header check",s.marker=5;break}if(!(32&r)){s.mode=7;break}s.mode=2;case 2:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St=(255&e.ft(e.nt++))<<24&4278190080,s.mode=3;case 3:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St+=(255&e.ft(e.nt++))<<16&16711680,s.mode=4;case 4:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St+=(255&e.ft(e.nt++))<<8&65280,s.mode=5;case 5:return 0===e.We?n:(n=t,e.We--,e.qe++,s.St+=255&e.ft(e.nt++),s.mode=6,2);case 6:return s.mode=mt,e.Le="need dictionary",s.marker=0,rt;case 7:if(n=s.kt.lt(e,n),n==st){s.mode=mt,s.marker=0;break}if(0==n&&(n=t),1!=n)return n;n=t,s.kt.reset(e,s.vt),s.mode=12;case 12:return e.We=0,1;case mt:return st;default:return rt}},e._t=(e,t,n)=>{let r=0,s=n;if(!e||!e.gt||6!=e.gt.mode)return rt;const i=e.gt;return s<1<<i.zt||(s=(1<<i.zt)-1,r=n-s),i.kt.yt(t,r,s),i.mode=7,0},e.It=e=>{let n,r,s,i,o;if(!e||!e.gt)return rt;const c=e.gt;if(c.mode!=mt&&(c.mode=mt,c.marker=0),0===(n=e.We))return it;for(r=e.nt,s=c.marker;0!==n&&4>s;)e.ft(r)==bt[s]?s++:s=0!==e.ft(r)?0:4-s,r++,n--;return e.qe+=r-e.nt,e.nt=r,e.We=n,c.marker=s,4!=s?st:(i=e.qe,o=e.Ge,t(e),e.qe=i,e.Ge=o,c.mode=7,0)},e.Pt=e=>e&&e.gt&&e.gt.kt?e.gt.kt.bt():rt}function kt(){}function vt(e){const t=new kt,n=e&&e.chunkSize?r.floor(2*e.chunkSize):131072,o=new i(n);let c=!1;t.xt(),t.$e=o,this.append=(e,r)=>{const f=[];let a,u,l=0,w=0,h=0;if(0!==e.length){t.nt=0,t.et=e,t.We=e.length;do{if(t.rt=0,t.tt=n,0!==t.We||c||(t.nt=0,c=!0),a=t.At(0),c&&a===it){if(0!==t.We)throw new s("inflating: bad input")}else if(0!==a&&1!==a)throw new s("inflating: "+t.Le);if((c||1===a)&&t.We===e.length)throw new s("inflating: bad input");t.rt&&(t.rt===n?f.push(new i(o)):f.push(o.subarray(0,t.rt))),h+=t.rt,r&&t.nt>0&&t.nt!=l&&(r(t.nt),l=t.nt)}while(t.We>0||0===t.tt);return f.length>1?(u=new i(h),f.forEach(e=>{u.set(e,w),w+=e.length})):u=f[0]?new i(f[0]):new i,u}},this.flush=()=>{t.Ct()}}kt.prototype={xt(e){const t=this;return t.gt=new gt,e||(e=15),t.gt.xt(t,e)},At(e){const t=this;return t.gt?t.gt.At(t,e):rt},Ct(){const e=this;if(!e.gt)return rt;const t=e.gt.Ct(e);return e.gt=null,t},It(){const e=this;return e.gt?e.gt.It(e):rt},_t(e,t){const n=this;return n.gt?n.gt._t(n,e,t):rt},ft(e){return this.et[e]},je(e,t){return this.et.subarray(e,e+t)}},self.initCodec=()=>{self.Deflate=nt,self.Inflate=vt};\n',r=()=>t.useDataURI?"data:text/javascript,"+encodeURIComponent(n):URL.createObjectURL(new Blob([n],{type:"text/javascript"}));e({workerScripts:{inflate:[r],deflate:[r]}});}
|
|
8305
8317
|
|
|
8306
8318
|
/* eslint-disable no-prototype-builtins */
|
|
8307
8319
|
|
|
@@ -8496,10 +8508,16 @@ class Data64URIReader extends Reader {
|
|
|
8496
8508
|
const start = Math.floor(offset / 3) * 4;
|
|
8497
8509
|
const bytes = atob(dataURI.substring(start + dataStart, Math.ceil((offset + length) / 3) * 4 + dataStart));
|
|
8498
8510
|
const delta = offset - Math.floor(start / 4) * 3;
|
|
8499
|
-
|
|
8511
|
+
let effectiveLength = 0;
|
|
8512
|
+
for (let indexByte = delta; indexByte < delta + length && indexByte < bytes.length; indexByte++) {
|
|
8500
8513
|
dataArray[indexByte - delta] = bytes.charCodeAt(indexByte);
|
|
8514
|
+
effectiveLength++;
|
|
8515
|
+
}
|
|
8516
|
+
if (effectiveLength < dataArray.length) {
|
|
8517
|
+
return dataArray.subarray(0, effectiveLength);
|
|
8518
|
+
} else {
|
|
8519
|
+
return dataArray;
|
|
8501
8520
|
}
|
|
8502
|
-
return dataArray;
|
|
8503
8521
|
}
|
|
8504
8522
|
}
|
|
8505
8523
|
|
|
@@ -8868,6 +8886,7 @@ class Uint8ArrayReader extends Reader {
|
|
|
8868
8886
|
|
|
8869
8887
|
constructor(array) {
|
|
8870
8888
|
super();
|
|
8889
|
+
array = new Uint8Array(array.buffer, array.byteOffset, array.byteLength);
|
|
8871
8890
|
Object.assign(this, {
|
|
8872
8891
|
array,
|
|
8873
8892
|
size: array.length
|
|
@@ -8936,19 +8955,28 @@ class SplitDataReader extends Reader {
|
|
|
8936
8955
|
currentDiskNumber = readers.length - 1;
|
|
8937
8956
|
}
|
|
8938
8957
|
let currentReaderOffset = offset;
|
|
8939
|
-
while (currentReaderOffset >= readers[currentDiskNumber].size) {
|
|
8958
|
+
while (readers[currentDiskNumber] && currentReaderOffset >= readers[currentDiskNumber].size) {
|
|
8940
8959
|
currentReaderOffset -= readers[currentDiskNumber].size;
|
|
8941
8960
|
currentDiskNumber++;
|
|
8942
8961
|
}
|
|
8943
8962
|
const currentReader = readers[currentDiskNumber];
|
|
8944
|
-
|
|
8945
|
-
|
|
8946
|
-
|
|
8963
|
+
if (currentReader) {
|
|
8964
|
+
const currentReaderSize = currentReader.size;
|
|
8965
|
+
if (currentReaderOffset + length <= currentReaderSize) {
|
|
8966
|
+
result = await readUint8Array(currentReader, currentReaderOffset, length);
|
|
8967
|
+
} else {
|
|
8968
|
+
const chunkLength = currentReaderSize - currentReaderOffset;
|
|
8969
|
+
result = new Uint8Array(length);
|
|
8970
|
+
const firstPart = await readUint8Array(currentReader, currentReaderOffset, chunkLength);
|
|
8971
|
+
result.set(firstPart, 0);
|
|
8972
|
+
const secondPart = await reader.readUint8Array(offset + chunkLength, length - chunkLength, diskNumber);
|
|
8973
|
+
result.set(secondPart, chunkLength);
|
|
8974
|
+
if (firstPart.length + secondPart.length < length) {
|
|
8975
|
+
result = result.subarray(0, firstPart.length + secondPart.length);
|
|
8976
|
+
}
|
|
8977
|
+
}
|
|
8947
8978
|
} else {
|
|
8948
|
-
|
|
8949
|
-
result = new Uint8Array(length);
|
|
8950
|
-
result.set(await readUint8Array(currentReader, currentReaderOffset, chunkLength));
|
|
8951
|
-
result.set(await reader.readUint8Array(offset + chunkLength, length - chunkLength, diskNumber), chunkLength);
|
|
8979
|
+
result = new Uint8Array();
|
|
8952
8980
|
}
|
|
8953
8981
|
reader.lastDiskNumber = Math.max(currentDiskNumber, reader.lastDiskNumber);
|
|
8954
8982
|
return result;
|
|
@@ -8988,12 +9016,12 @@ class SplitDataWriter extends Stream {
|
|
|
8988
9016
|
}
|
|
8989
9017
|
await this.write(chunk);
|
|
8990
9018
|
} else if (chunk.length >= availableSize) {
|
|
8991
|
-
await writeChunk(chunk.
|
|
9019
|
+
await writeChunk(chunk.subarray(0, availableSize));
|
|
8992
9020
|
await closeDisk();
|
|
8993
9021
|
writer.diskOffset += diskSourceWriter.size;
|
|
8994
9022
|
writer.diskNumber++;
|
|
8995
9023
|
diskWriter = null;
|
|
8996
|
-
await this.write(chunk.
|
|
9024
|
+
await this.write(chunk.subarray(availableSize));
|
|
8997
9025
|
} else {
|
|
8998
9026
|
await writeChunk(chunk);
|
|
8999
9027
|
}
|
|
@@ -9021,12 +9049,52 @@ class SplitDataWriter extends Stream {
|
|
|
9021
9049
|
}
|
|
9022
9050
|
|
|
9023
9051
|
async function closeDisk() {
|
|
9024
|
-
diskWritable.size = diskSourceWriter.size;
|
|
9025
9052
|
await diskWriter.close();
|
|
9026
9053
|
}
|
|
9027
9054
|
}
|
|
9028
9055
|
}
|
|
9029
9056
|
|
|
9057
|
+
class GenericReader {
|
|
9058
|
+
|
|
9059
|
+
constructor(reader) {
|
|
9060
|
+
if (Array.isArray(reader)) {
|
|
9061
|
+
reader = new SplitDataReader(reader);
|
|
9062
|
+
}
|
|
9063
|
+
if (reader instanceof ReadableStream) {
|
|
9064
|
+
reader = {
|
|
9065
|
+
readable: reader
|
|
9066
|
+
};
|
|
9067
|
+
}
|
|
9068
|
+
return reader;
|
|
9069
|
+
}
|
|
9070
|
+
}
|
|
9071
|
+
|
|
9072
|
+
class GenericWriter {
|
|
9073
|
+
|
|
9074
|
+
constructor(writer) {
|
|
9075
|
+
if (writer.writable === UNDEFINED_VALUE && typeof writer.next == FUNCTION_TYPE) {
|
|
9076
|
+
writer = new SplitDataWriter(writer);
|
|
9077
|
+
}
|
|
9078
|
+
if (writer instanceof WritableStream) {
|
|
9079
|
+
writer = {
|
|
9080
|
+
writable: writer
|
|
9081
|
+
};
|
|
9082
|
+
}
|
|
9083
|
+
if (writer.size === UNDEFINED_VALUE) {
|
|
9084
|
+
writer.size = 0;
|
|
9085
|
+
}
|
|
9086
|
+
if (!(writer instanceof SplitDataWriter)) {
|
|
9087
|
+
Object.assign(writer, {
|
|
9088
|
+
diskNumber: 0,
|
|
9089
|
+
diskOffset: 0,
|
|
9090
|
+
availableSize: Infinity,
|
|
9091
|
+
maxSize: Infinity
|
|
9092
|
+
});
|
|
9093
|
+
}
|
|
9094
|
+
return writer;
|
|
9095
|
+
}
|
|
9096
|
+
}
|
|
9097
|
+
|
|
9030
9098
|
function isHttpFamily(url) {
|
|
9031
9099
|
const { baseURL } = getConfiguration();
|
|
9032
9100
|
const { protocol } = new URL(url, baseURL);
|
|
@@ -9041,42 +9109,6 @@ async function initStream(stream, initSize) {
|
|
|
9041
9109
|
}
|
|
9042
9110
|
}
|
|
9043
9111
|
|
|
9044
|
-
function initReader(reader) {
|
|
9045
|
-
if (Array.isArray(reader)) {
|
|
9046
|
-
reader = new SplitDataReader(reader);
|
|
9047
|
-
}
|
|
9048
|
-
if (reader instanceof ReadableStream) {
|
|
9049
|
-
reader = {
|
|
9050
|
-
readable: reader
|
|
9051
|
-
};
|
|
9052
|
-
}
|
|
9053
|
-
return reader;
|
|
9054
|
-
}
|
|
9055
|
-
|
|
9056
|
-
function initWriter(writer) {
|
|
9057
|
-
if (writer.writable === UNDEFINED_VALUE && typeof writer.next == FUNCTION_TYPE) {
|
|
9058
|
-
writer = new SplitDataWriter(writer);
|
|
9059
|
-
}
|
|
9060
|
-
if (writer instanceof WritableStream) {
|
|
9061
|
-
writer = {
|
|
9062
|
-
writable: writer
|
|
9063
|
-
};
|
|
9064
|
-
}
|
|
9065
|
-
const { writable } = writer;
|
|
9066
|
-
if (writable.size === UNDEFINED_VALUE) {
|
|
9067
|
-
writable.size = 0;
|
|
9068
|
-
}
|
|
9069
|
-
if (!(writer instanceof SplitDataWriter)) {
|
|
9070
|
-
Object.assign(writer, {
|
|
9071
|
-
diskNumber: 0,
|
|
9072
|
-
diskOffset: 0,
|
|
9073
|
-
availableSize: Infinity,
|
|
9074
|
-
maxSize: Infinity
|
|
9075
|
-
});
|
|
9076
|
-
}
|
|
9077
|
-
return writer;
|
|
9078
|
-
}
|
|
9079
|
-
|
|
9080
9112
|
function readUint8Array(reader, offset, size, diskNumber) {
|
|
9081
9113
|
return reader.readUint8Array(offset, size, diskNumber);
|
|
9082
9114
|
}
|
|
@@ -9297,7 +9329,7 @@ class ZipReader {
|
|
|
9297
9329
|
|
|
9298
9330
|
constructor(reader, options = {}) {
|
|
9299
9331
|
Object.assign(this, {
|
|
9300
|
-
reader:
|
|
9332
|
+
reader: new GenericReader(reader),
|
|
9301
9333
|
options,
|
|
9302
9334
|
config: getConfiguration()
|
|
9303
9335
|
});
|
|
@@ -9472,6 +9504,13 @@ class ZipReader {
|
|
|
9472
9504
|
fileEntry.zipCrypto = fileEntry.encrypted && !fileEntry.extraFieldAES;
|
|
9473
9505
|
const entry = new Entry(fileEntry);
|
|
9474
9506
|
entry.getData = (writer, options) => fileEntry.getData(writer, entry, options);
|
|
9507
|
+
entry.arrayBuffer = async options => {
|
|
9508
|
+
const writer = new TransformStream();
|
|
9509
|
+
const [arrayBuffer] = await Promise.all([
|
|
9510
|
+
new Response(writer.readable).arrayBuffer(),
|
|
9511
|
+
fileEntry.getData(writer, entry, options)]);
|
|
9512
|
+
return arrayBuffer;
|
|
9513
|
+
};
|
|
9475
9514
|
offset = endOffset;
|
|
9476
9515
|
const { onprogress } = options;
|
|
9477
9516
|
if (onprogress) {
|
|
@@ -9562,7 +9601,8 @@ let ZipEntry$1 = class ZipEntry {
|
|
|
9562
9601
|
compressedSize
|
|
9563
9602
|
} = zipEntry;
|
|
9564
9603
|
const localDirectory = fileEntry.localDirectory = {};
|
|
9565
|
-
const
|
|
9604
|
+
const dataArraySize = HEADER_SIZE + 4;
|
|
9605
|
+
const dataArray = await readUint8Array(reader, offset, dataArraySize + 4, diskNumberStart);
|
|
9566
9606
|
const dataView = getDataView$1(dataArray);
|
|
9567
9607
|
let password = getOptionValue$1(zipEntry, options, "password");
|
|
9568
9608
|
let rawPassword = getOptionValue$1(zipEntry, options, "rawPassword");
|
|
@@ -9582,7 +9622,7 @@ let ZipEntry$1 = class ZipEntry {
|
|
|
9582
9622
|
}
|
|
9583
9623
|
readCommonHeader(localDirectory, dataView, 4);
|
|
9584
9624
|
localDirectory.rawExtraField = localDirectory.extraFieldLength ?
|
|
9585
|
-
await readUint8Array(reader, offset +
|
|
9625
|
+
await readUint8Array(reader, offset + dataArraySize + localDirectory.filenameLength, localDirectory.extraFieldLength, diskNumberStart) :
|
|
9586
9626
|
new Uint8Array();
|
|
9587
9627
|
readCommonFooter(zipEntry, localDirectory, dataView, 4, true);
|
|
9588
9628
|
Object.assign(fileEntry, {
|
|
@@ -9601,7 +9641,7 @@ let ZipEntry$1 = class ZipEntry {
|
|
|
9601
9641
|
throw new Error(ERR_ENCRYPTED);
|
|
9602
9642
|
}
|
|
9603
9643
|
}
|
|
9604
|
-
const dataOffset = offset +
|
|
9644
|
+
const dataOffset = offset + dataArraySize + localDirectory.filenameLength + localDirectory.extraFieldLength;
|
|
9605
9645
|
const size = compressedSize;
|
|
9606
9646
|
const readable = reader.readable;
|
|
9607
9647
|
Object.assign(readable, {
|
|
@@ -9614,7 +9654,7 @@ let ZipEntry$1 = class ZipEntry {
|
|
|
9614
9654
|
if (checkPasswordOnly) {
|
|
9615
9655
|
writer = new WritableStream();
|
|
9616
9656
|
}
|
|
9617
|
-
writer =
|
|
9657
|
+
writer = new GenericWriter(writer);
|
|
9618
9658
|
await initStream(writer, passThrough ? compressedSize : uncompressedSize);
|
|
9619
9659
|
const { writable } = writer;
|
|
9620
9660
|
const { onstart, onprogress, onend } = options;
|
|
@@ -9638,16 +9678,18 @@ let ZipEntry$1 = class ZipEntry {
|
|
|
9638
9678
|
config,
|
|
9639
9679
|
streamOptions: { signal, size, onstart, onprogress, onend }
|
|
9640
9680
|
};
|
|
9641
|
-
let outputSize = 0;
|
|
9642
9681
|
try {
|
|
9643
|
-
|
|
9682
|
+
const { outputSize } = await runWorker({ readable, writable }, workerOptions);
|
|
9683
|
+
writer.size += outputSize;
|
|
9644
9684
|
} catch (error) {
|
|
9685
|
+
if (error.outputSize !== UNDEFINED_VALUE) {
|
|
9686
|
+
writer.size += error.outputSize;
|
|
9687
|
+
}
|
|
9645
9688
|
if (!checkPasswordOnly || error.message != ERR_ABORT_CHECK_PASSWORD) {
|
|
9646
9689
|
throw error;
|
|
9647
9690
|
}
|
|
9648
9691
|
} finally {
|
|
9649
9692
|
const preventClose = getOptionValue$1(zipEntry, options, "preventClose");
|
|
9650
|
-
writable.size += outputSize;
|
|
9651
9693
|
if (!preventClose && !writable.locked) {
|
|
9652
9694
|
await writable.getWriter().close();
|
|
9653
9695
|
}
|
|
@@ -9696,9 +9738,9 @@ function readCommonFooter(fileEntry, directory, dataView, offset, localDirectory
|
|
|
9696
9738
|
}
|
|
9697
9739
|
const compressionMethod = getUint16(dataView, offset + 4);
|
|
9698
9740
|
Object.assign(directory, {
|
|
9699
|
-
signature: getUint32(dataView, offset +
|
|
9700
|
-
|
|
9701
|
-
|
|
9741
|
+
signature: getUint32(dataView, offset + HEADER_OFFSET_SIGNATURE),
|
|
9742
|
+
compressedSize: getUint32(dataView, offset + HEADER_OFFSET_COMPRESSED_SIZE),
|
|
9743
|
+
uncompressedSize: getUint32(dataView, offset + HEADER_OFFSET_UNCOMPRESSED_SIZE)
|
|
9702
9744
|
});
|
|
9703
9745
|
const extraFieldZip64 = extraField.get(EXTRAFIELD_TYPE_ZIP64);
|
|
9704
9746
|
if (extraFieldZip64) {
|
|
@@ -9963,6 +10005,7 @@ const ERR_INVALID_EXTRAFIELD_TYPE = "Extra field type exceeds 65535";
|
|
|
9963
10005
|
const ERR_INVALID_EXTRAFIELD_DATA = "Extra field data exceeds 64KB";
|
|
9964
10006
|
const ERR_UNSUPPORTED_FORMAT = "Zip64 is not supported (make sure 'keepOrder' is set to 'true')";
|
|
9965
10007
|
const ERR_UNDEFINED_UNCOMPRESSED_SIZE = "Undefined uncompressed size";
|
|
10008
|
+
const ERR_ZIP_NOT_EMPTY = "Zip file not empty";
|
|
9966
10009
|
|
|
9967
10010
|
const EXTRAFIELD_DATA_AES = new Uint8Array([0x07, 0x00, 0x02, 0x00, 0x41, 0x45, 0x03, 0x00, 0x00]);
|
|
9968
10011
|
|
|
@@ -9972,7 +10015,7 @@ const pendingEntries = [];
|
|
|
9972
10015
|
class ZipWriter {
|
|
9973
10016
|
|
|
9974
10017
|
constructor(writer, options = {}) {
|
|
9975
|
-
writer =
|
|
10018
|
+
writer = new GenericWriter(writer);
|
|
9976
10019
|
const addSplitZipSignature =
|
|
9977
10020
|
writer.availableSize !== UNDEFINED_VALUE && writer.availableSize > 0 && writer.availableSize !== Infinity &&
|
|
9978
10021
|
writer.maxSize !== UNDEFINED_VALUE && writer.maxSize > 0 && writer.maxSize !== Infinity;
|
|
@@ -9983,13 +10026,106 @@ class ZipWriter {
|
|
|
9983
10026
|
config: getConfiguration(),
|
|
9984
10027
|
files: new Map(),
|
|
9985
10028
|
filenames: new Set(),
|
|
9986
|
-
offset: options.offset === UNDEFINED_VALUE ? writer.writable.size : options.offset,
|
|
10029
|
+
offset: options.offset === UNDEFINED_VALUE ? writer.size || writer.writable.size || 0 : options.offset,
|
|
9987
10030
|
pendingEntriesSize: 0,
|
|
9988
10031
|
pendingAddFileCalls: new Set(),
|
|
9989
10032
|
bufferedWrites: 0
|
|
9990
10033
|
});
|
|
9991
10034
|
}
|
|
9992
10035
|
|
|
10036
|
+
async prependZip(reader) {
|
|
10037
|
+
if (this.filenames.size) {
|
|
10038
|
+
throw new Error(ERR_ZIP_NOT_EMPTY);
|
|
10039
|
+
}
|
|
10040
|
+
({ reader } = new GenericReader(reader));
|
|
10041
|
+
const [zipEntriesReader, zipDataReader] = reader.readable.tee();
|
|
10042
|
+
const zipReader = new ZipReader(new ReadableStream({
|
|
10043
|
+
async start(controller) {
|
|
10044
|
+
const reader = zipEntriesReader.getReader();
|
|
10045
|
+
await readChunk();
|
|
10046
|
+
|
|
10047
|
+
async function readChunk() {
|
|
10048
|
+
const { done, value } = await reader.read();
|
|
10049
|
+
if (done) {
|
|
10050
|
+
controller.close();
|
|
10051
|
+
} else {
|
|
10052
|
+
controller.enqueue(value);
|
|
10053
|
+
await readChunk();
|
|
10054
|
+
}
|
|
10055
|
+
}
|
|
10056
|
+
}
|
|
10057
|
+
}));
|
|
10058
|
+
const entries = await zipReader.getEntries();
|
|
10059
|
+
await zipReader.close();
|
|
10060
|
+
await zipDataReader.pipeTo(this.writer.writable, { preventClose: true, preventAbort: true });
|
|
10061
|
+
this.writer.size = this.offset = reader.size;
|
|
10062
|
+
this.filenames = new Set(entries.map(entry => entry.filename));
|
|
10063
|
+
this.files = new Map(entries.map(entry => {
|
|
10064
|
+
const {
|
|
10065
|
+
version,
|
|
10066
|
+
compressionMethod,
|
|
10067
|
+
lastModDate,
|
|
10068
|
+
lastAccessDate,
|
|
10069
|
+
creationDate,
|
|
10070
|
+
rawFilename,
|
|
10071
|
+
bitFlag,
|
|
10072
|
+
encrypted,
|
|
10073
|
+
uncompressedSize,
|
|
10074
|
+
compressedSize,
|
|
10075
|
+
diskOffset,
|
|
10076
|
+
diskNumber,
|
|
10077
|
+
zip64
|
|
10078
|
+
} = entry;
|
|
10079
|
+
let {
|
|
10080
|
+
rawExtraFieldZip64,
|
|
10081
|
+
rawExtraFieldAES,
|
|
10082
|
+
rawExtraFieldExtendedTimestamp,
|
|
10083
|
+
rawExtraFieldNTFS,
|
|
10084
|
+
rawExtraField,
|
|
10085
|
+
} = entry;
|
|
10086
|
+
const { level, languageEncodingFlag, dataDescriptor } = bitFlag;
|
|
10087
|
+
rawExtraFieldZip64 = rawExtraFieldZip64 || new Uint8Array();
|
|
10088
|
+
rawExtraFieldAES = rawExtraFieldAES || new Uint8Array();
|
|
10089
|
+
rawExtraFieldExtendedTimestamp = rawExtraFieldExtendedTimestamp || new Uint8Array();
|
|
10090
|
+
rawExtraFieldNTFS = rawExtraFieldNTFS || new Uint8Array();
|
|
10091
|
+
rawExtraField = rawExtraField || new Uint8Array();
|
|
10092
|
+
const extraFieldLength = getLength(rawExtraFieldZip64, rawExtraFieldAES, rawExtraFieldExtendedTimestamp, rawExtraFieldNTFS, rawExtraField);
|
|
10093
|
+
const zip64UncompressedSize = zip64 && uncompressedSize > MAX_32_BITS;
|
|
10094
|
+
const zip64CompressedSize = zip64 && compressedSize > MAX_32_BITS;
|
|
10095
|
+
const {
|
|
10096
|
+
headerArray,
|
|
10097
|
+
headerView
|
|
10098
|
+
} = getHeaderArrayData({
|
|
10099
|
+
version,
|
|
10100
|
+
bitflag: getBitflag(level, languageEncodingFlag, dataDescriptor, encrypted),
|
|
10101
|
+
compressionMethod,
|
|
10102
|
+
uncompressedSize,
|
|
10103
|
+
compressedSize,
|
|
10104
|
+
lastModDate,
|
|
10105
|
+
rawFilename,
|
|
10106
|
+
zip64CompressedSize,
|
|
10107
|
+
zip64UncompressedSize,
|
|
10108
|
+
extraFieldLength
|
|
10109
|
+
});
|
|
10110
|
+
Object.assign(entry, {
|
|
10111
|
+
zip64UncompressedSize,
|
|
10112
|
+
zip64CompressedSize,
|
|
10113
|
+
zip64Offset: zip64 && this.offset - diskOffset > MAX_32_BITS,
|
|
10114
|
+
zip64DiskNumberStart: zip64 && diskNumber > MAX_16_BITS,
|
|
10115
|
+
rawExtraFieldZip64,
|
|
10116
|
+
rawExtraFieldAES,
|
|
10117
|
+
rawExtraFieldExtendedTimestamp,
|
|
10118
|
+
rawExtraFieldNTFS,
|
|
10119
|
+
rawExtraField,
|
|
10120
|
+
extendedTimestamp: rawExtraFieldExtendedTimestamp.length > 0 || rawExtraFieldNTFS.length > 0,
|
|
10121
|
+
extraFieldExtendedTimestampFlag: 0x1 + (lastAccessDate ? 0x2 : 0) + (creationDate ? 0x4 : 0),
|
|
10122
|
+
headerArray,
|
|
10123
|
+
headerView
|
|
10124
|
+
});
|
|
10125
|
+
return [entry.filename, entry];
|
|
10126
|
+
}));
|
|
10127
|
+
}
|
|
10128
|
+
|
|
9993
10129
|
async add(name = "", reader, options = {}) {
|
|
9994
10130
|
const zipWriter = this;
|
|
9995
10131
|
const {
|
|
@@ -10025,6 +10161,22 @@ class ZipWriter {
|
|
|
10025
10161
|
}
|
|
10026
10162
|
}
|
|
10027
10163
|
|
|
10164
|
+
remove(entry) {
|
|
10165
|
+
const { filenames, files } = this;
|
|
10166
|
+
if (typeof entry == "string") {
|
|
10167
|
+
entry = files.get(entry);
|
|
10168
|
+
}
|
|
10169
|
+
if (entry && entry.filename !== UNDEFINED_VALUE) {
|
|
10170
|
+
const { filename } = entry;
|
|
10171
|
+
if (filenames.has(filename) && files.has(filename)) {
|
|
10172
|
+
filenames.delete(filename);
|
|
10173
|
+
files.delete(filename);
|
|
10174
|
+
return true;
|
|
10175
|
+
}
|
|
10176
|
+
}
|
|
10177
|
+
return false;
|
|
10178
|
+
}
|
|
10179
|
+
|
|
10028
10180
|
async close(comment = new Uint8Array(), options = {}) {
|
|
10029
10181
|
const zipWriter = this;
|
|
10030
10182
|
const { pendingAddFileCalls, writer } = this;
|
|
@@ -10146,7 +10298,13 @@ async function addFile(zipWriter, name, reader, options) {
|
|
|
10146
10298
|
const useUnicodeFileNames = getOptionValue(zipWriter, options, "useUnicodeFileNames", true);
|
|
10147
10299
|
const useCompressionStream = getOptionValue(zipWriter, options, "useCompressionStream");
|
|
10148
10300
|
const compressionMethod = getOptionValue(zipWriter, options, "compressionMethod");
|
|
10149
|
-
let dataDescriptor = getOptionValue(zipWriter, options, "dataDescriptor"
|
|
10301
|
+
let dataDescriptor = getOptionValue(zipWriter, options, "dataDescriptor");
|
|
10302
|
+
if (bufferedWrite && dataDescriptor === UNDEFINED_VALUE) {
|
|
10303
|
+
dataDescriptor = false;
|
|
10304
|
+
}
|
|
10305
|
+
if (dataDescriptor === UNDEFINED_VALUE || zipCrypto) {
|
|
10306
|
+
dataDescriptor = true;
|
|
10307
|
+
}
|
|
10150
10308
|
let zip64 = getOptionValue(zipWriter, options, PROPERTY_NAME_ZIP64);
|
|
10151
10309
|
if (!zipCrypto && (password !== UNDEFINED_VALUE || rawPassword !== UNDEFINED_VALUE) && !(encryptionStrength >= 1 && encryptionStrength <= 3)) {
|
|
10152
10310
|
throw new Error(ERR_INVALID_ENCRYPTION_STRENGTH);
|
|
@@ -10182,7 +10340,7 @@ async function addFile(zipWriter, name, reader, options) {
|
|
|
10182
10340
|
}
|
|
10183
10341
|
const zip64Enabled = zip64 === true;
|
|
10184
10342
|
if (reader) {
|
|
10185
|
-
reader =
|
|
10343
|
+
reader = new GenericReader(reader);
|
|
10186
10344
|
await initStream(reader);
|
|
10187
10345
|
if (!passThrough) {
|
|
10188
10346
|
if (reader.size === UNDEFINED_VALUE) {
|
|
@@ -10192,10 +10350,11 @@ async function addFile(zipWriter, name, reader, options) {
|
|
|
10192
10350
|
uncompressedSize = maximumCompressedSize = MAX_32_BITS + 1;
|
|
10193
10351
|
}
|
|
10194
10352
|
} else {
|
|
10195
|
-
uncompressedSize = reader.size;
|
|
10353
|
+
options.uncompressedSize = uncompressedSize = reader.size;
|
|
10196
10354
|
maximumCompressedSize = getMaximumCompressedSize(uncompressedSize);
|
|
10197
10355
|
}
|
|
10198
10356
|
} else {
|
|
10357
|
+
options.uncompressedSize = uncompressedSize;
|
|
10199
10358
|
maximumCompressedSize = getMaximumCompressedSize(uncompressedSize);
|
|
10200
10359
|
}
|
|
10201
10360
|
}
|
|
@@ -10251,7 +10410,10 @@ async function addFile(zipWriter, name, reader, options) {
|
|
|
10251
10410
|
passThrough,
|
|
10252
10411
|
encrypted: Boolean((password && getLength(password)) || (rawPassword && getLength(rawPassword))) || (passThrough && encrypted),
|
|
10253
10412
|
signature,
|
|
10254
|
-
compressionMethod
|
|
10413
|
+
compressionMethod,
|
|
10414
|
+
uncompressedSize,
|
|
10415
|
+
offset: zipWriter.offset - diskOffset,
|
|
10416
|
+
diskNumberStart: diskNumber,
|
|
10255
10417
|
});
|
|
10256
10418
|
const headerInfo = getHeaderInfo(options);
|
|
10257
10419
|
const dataDescriptorInfo = getDataDescriptorInfo(options);
|
|
@@ -10303,8 +10465,7 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
|
|
|
10303
10465
|
}
|
|
10304
10466
|
if ((options.bufferedWrite || zipWriter.writerLocked || (zipWriter.bufferedWrites && keepOrder) || !dataDescriptor) && !usdz) {
|
|
10305
10467
|
fileWriter = new TransformStream();
|
|
10306
|
-
|
|
10307
|
-
fileWriter.writable.size = 0;
|
|
10468
|
+
fileWriter.size = 0;
|
|
10308
10469
|
bufferedWrite = true;
|
|
10309
10470
|
zipWriter.bufferedWrites++;
|
|
10310
10471
|
await initStream(writer);
|
|
@@ -10313,19 +10474,22 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
|
|
|
10313
10474
|
await requestLockWriter();
|
|
10314
10475
|
}
|
|
10315
10476
|
await initStream(fileWriter);
|
|
10316
|
-
const { writable } = writer;
|
|
10317
|
-
let { diskOffset } = writer;
|
|
10477
|
+
const { writable, diskOffset } = writer;
|
|
10318
10478
|
if (zipWriter.addSplitZipSignature) {
|
|
10319
10479
|
delete zipWriter.addSplitZipSignature;
|
|
10320
10480
|
const signatureArray = new Uint8Array(4);
|
|
10321
10481
|
const signatureArrayView = getDataView(signatureArray);
|
|
10322
10482
|
setUint32(signatureArrayView, 0, SPLIT_ZIP_FILE_SIGNATURE);
|
|
10323
|
-
await writeData(
|
|
10483
|
+
await writeData(writer, signatureArray);
|
|
10324
10484
|
zipWriter.offset += 4;
|
|
10325
10485
|
}
|
|
10326
10486
|
if (usdz) {
|
|
10327
10487
|
appendExtraFieldUSDZ(entryInfo, zipWriter.offset - diskOffset);
|
|
10328
10488
|
}
|
|
10489
|
+
const {
|
|
10490
|
+
localHeaderView,
|
|
10491
|
+
localHeaderArray
|
|
10492
|
+
} = headerInfo;
|
|
10329
10493
|
if (!bufferedWrite) {
|
|
10330
10494
|
await lockPreviousFileEntry;
|
|
10331
10495
|
await skipDiskIfNeeded(writable);
|
|
@@ -10333,30 +10497,38 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
|
|
|
10333
10497
|
const { diskNumber } = writer;
|
|
10334
10498
|
writingEntryData = true;
|
|
10335
10499
|
fileEntry.diskNumberStart = diskNumber;
|
|
10500
|
+
if (bufferedWrite) {
|
|
10501
|
+
blobPromise = new Response(fileWriter.readable).blob();
|
|
10502
|
+
} else {
|
|
10503
|
+
await writeData(fileWriter, localHeaderArray);
|
|
10504
|
+
}
|
|
10336
10505
|
fileEntry = await createFileEntry(reader, fileWriter, fileEntry, entryInfo, zipWriter.config, options);
|
|
10506
|
+
const { zip64 } = fileEntry;
|
|
10337
10507
|
writingEntryData = false;
|
|
10338
10508
|
files.set(name, fileEntry);
|
|
10339
10509
|
fileEntry.filename = name;
|
|
10340
10510
|
if (bufferedWrite) {
|
|
10341
|
-
await fileWriter.writable.getWriter().close();
|
|
10342
|
-
let blob = await blobPromise;
|
|
10343
|
-
await lockPreviousFileEntry;
|
|
10511
|
+
const [blob] = await Promise.all([blobPromise, fileWriter.writable.getWriter().close(), lockPreviousFileEntry]);
|
|
10344
10512
|
await requestLockWriter();
|
|
10345
10513
|
writingBufferedEntryData = true;
|
|
10346
|
-
|
|
10347
|
-
|
|
10514
|
+
fileEntry.diskNumberStart = writer.diskNumber;
|
|
10515
|
+
fileEntry.offset = zipWriter.offset - writer.diskOffset;
|
|
10516
|
+
if (zip64) {
|
|
10517
|
+
updateZip64ExtraField(fileEntry);
|
|
10348
10518
|
}
|
|
10519
|
+
updateLocalHeader(fileEntry, localHeaderView);
|
|
10349
10520
|
await skipDiskIfNeeded(writable);
|
|
10350
|
-
|
|
10351
|
-
diskOffset = writer.diskOffset;
|
|
10521
|
+
await writeData(writer, localHeaderArray);
|
|
10352
10522
|
await blob.stream().pipeTo(writable, { preventClose: true, preventAbort: true, signal });
|
|
10353
|
-
|
|
10523
|
+
writer.size += fileWriter.size;
|
|
10354
10524
|
writingBufferedEntryData = false;
|
|
10525
|
+
} else {
|
|
10526
|
+
fileEntry.offset = zipWriter.offset - diskOffset;
|
|
10527
|
+
if (zip64) {
|
|
10528
|
+
updateZip64ExtraField(fileEntry);
|
|
10529
|
+
}
|
|
10355
10530
|
}
|
|
10356
|
-
fileEntry.offset
|
|
10357
|
-
if (fileEntry.zip64) {
|
|
10358
|
-
setZip64ExtraInfo(fileEntry, options);
|
|
10359
|
-
} else if (fileEntry.offset > MAX_32_BITS) {
|
|
10531
|
+
if (fileEntry.offset > MAX_32_BITS && !zip64) {
|
|
10360
10532
|
throw new Error(ERR_UNSUPPORTED_FORMAT);
|
|
10361
10533
|
}
|
|
10362
10534
|
zipWriter.offset += fileEntry.size;
|
|
@@ -10373,9 +10545,9 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
|
|
|
10373
10545
|
}
|
|
10374
10546
|
}
|
|
10375
10547
|
if (bufferedWrite) {
|
|
10376
|
-
zipWriter.offset += fileWriter.
|
|
10548
|
+
zipWriter.offset += fileWriter.size;
|
|
10377
10549
|
} else {
|
|
10378
|
-
zipWriter.offset = fileWriter.
|
|
10550
|
+
zipWriter.offset = fileWriter.size;
|
|
10379
10551
|
}
|
|
10380
10552
|
}
|
|
10381
10553
|
files.delete(name);
|
|
@@ -10421,14 +10593,16 @@ async function createFileEntry(reader, writer, { diskNumberStart, lock }, entryI
|
|
|
10421
10593
|
metadataSize
|
|
10422
10594
|
} = entryInfo;
|
|
10423
10595
|
const {
|
|
10424
|
-
localHeaderArray,
|
|
10425
10596
|
headerArray,
|
|
10597
|
+
headerView,
|
|
10426
10598
|
lastModDate,
|
|
10427
10599
|
rawLastModDate,
|
|
10428
10600
|
encrypted,
|
|
10429
10601
|
compressed,
|
|
10430
10602
|
version,
|
|
10431
10603
|
compressionMethod,
|
|
10604
|
+
rawExtraFieldZip64,
|
|
10605
|
+
localExtraFieldZip64Length,
|
|
10432
10606
|
rawExtraFieldExtendedTimestamp,
|
|
10433
10607
|
extraFieldExtendedTimestampFlag,
|
|
10434
10608
|
rawExtraFieldNTFS,
|
|
@@ -10477,6 +10651,8 @@ async function createFileEntry(reader, writer, { diskNumberStart, lock }, entryI
|
|
|
10477
10651
|
rawFilename,
|
|
10478
10652
|
commentUTF8: true,
|
|
10479
10653
|
rawComment,
|
|
10654
|
+
rawExtraFieldZip64,
|
|
10655
|
+
localExtraFieldZip64Length,
|
|
10480
10656
|
rawExtraFieldExtendedTimestamp,
|
|
10481
10657
|
rawExtraFieldNTFS,
|
|
10482
10658
|
rawExtraFieldAES,
|
|
@@ -10498,9 +10674,8 @@ async function createFileEntry(reader, writer, { diskNumberStart, lock }, entryI
|
|
|
10498
10674
|
const { writable } = writer;
|
|
10499
10675
|
if (reader) {
|
|
10500
10676
|
reader.chunkSize = getChunkSize(config);
|
|
10501
|
-
await writeData(writable, localHeaderArray);
|
|
10502
10677
|
const readable = reader.readable;
|
|
10503
|
-
const size =
|
|
10678
|
+
const size = reader.size;
|
|
10504
10679
|
const workerOptions = {
|
|
10505
10680
|
options: {
|
|
10506
10681
|
codecType: CODEC_DEFLATE,
|
|
@@ -10520,45 +10695,31 @@ async function createFileEntry(reader, writer, { diskNumberStart, lock }, entryI
|
|
|
10520
10695
|
config,
|
|
10521
10696
|
streamOptions: { signal, size, onstart, onprogress, onend }
|
|
10522
10697
|
};
|
|
10523
|
-
|
|
10524
|
-
|
|
10525
|
-
|
|
10526
|
-
|
|
10527
|
-
|
|
10528
|
-
|
|
10529
|
-
|
|
10530
|
-
|
|
10531
|
-
|
|
10532
|
-
|
|
10533
|
-
|
|
10534
|
-
|
|
10535
|
-
|
|
10536
|
-
if (zip64UncompressedSize) {
|
|
10537
|
-
rawExtraFieldZip64Length += 8;
|
|
10538
|
-
}
|
|
10539
|
-
if (zip64CompressedSize) {
|
|
10540
|
-
rawExtraFieldZip64Length += 8;
|
|
10541
|
-
}
|
|
10542
|
-
if (zip64Offset) {
|
|
10543
|
-
rawExtraFieldZip64Length += 8;
|
|
10544
|
-
}
|
|
10545
|
-
if (zip64DiskNumberStart) {
|
|
10546
|
-
rawExtraFieldZip64Length += 4;
|
|
10698
|
+
try {
|
|
10699
|
+
const result = await runWorker({ readable, writable }, workerOptions);
|
|
10700
|
+
compressedSize = result.outputSize;
|
|
10701
|
+
writer.size += compressedSize;
|
|
10702
|
+
if (!passThrough) {
|
|
10703
|
+
uncompressedSize = result.inputSize;
|
|
10704
|
+
signature = result.signature;
|
|
10705
|
+
}
|
|
10706
|
+
} catch (error) {
|
|
10707
|
+
if (error.outputSize !== UNDEFINED_VALUE) {
|
|
10708
|
+
writer.size += error.outputSize;
|
|
10709
|
+
}
|
|
10710
|
+
throw error;
|
|
10547
10711
|
}
|
|
10548
|
-
|
|
10549
|
-
} else {
|
|
10550
|
-
rawExtraFieldZip64 = new Uint8Array();
|
|
10712
|
+
|
|
10551
10713
|
}
|
|
10552
10714
|
setEntryInfo({
|
|
10553
10715
|
signature,
|
|
10554
|
-
rawExtraFieldZip64,
|
|
10555
10716
|
compressedSize,
|
|
10556
10717
|
uncompressedSize,
|
|
10557
10718
|
headerInfo,
|
|
10558
10719
|
dataDescriptorInfo
|
|
10559
10720
|
}, options);
|
|
10560
10721
|
if (dataDescriptor) {
|
|
10561
|
-
await writeData(
|
|
10722
|
+
await writeData(writer, dataDescriptorArray);
|
|
10562
10723
|
}
|
|
10563
10724
|
Object.assign(fileEntry, {
|
|
10564
10725
|
uncompressedSize,
|
|
@@ -10573,8 +10734,8 @@ async function createFileEntry(reader, writer, { diskNumberStart, lock }, entryI
|
|
|
10573
10734
|
compressionMethod,
|
|
10574
10735
|
version,
|
|
10575
10736
|
headerArray,
|
|
10737
|
+
headerView,
|
|
10576
10738
|
signature,
|
|
10577
|
-
rawExtraFieldZip64,
|
|
10578
10739
|
extraFieldExtendedTimestampFlag,
|
|
10579
10740
|
zip64UncompressedSize,
|
|
10580
10741
|
zip64CompressedSize,
|
|
@@ -10599,10 +10760,62 @@ function getHeaderInfo(options) {
|
|
|
10599
10760
|
rawExtraField,
|
|
10600
10761
|
encryptionStrength,
|
|
10601
10762
|
extendedTimestamp,
|
|
10602
|
-
|
|
10763
|
+
passThrough,
|
|
10764
|
+
encrypted,
|
|
10765
|
+
zip64UncompressedSize,
|
|
10766
|
+
zip64CompressedSize,
|
|
10767
|
+
zip64Offset,
|
|
10768
|
+
zip64DiskNumberStart,
|
|
10769
|
+
uncompressedSize,
|
|
10770
|
+
offset,
|
|
10771
|
+
diskNumberStart
|
|
10603
10772
|
} = options;
|
|
10604
10773
|
let { version, compressionMethod } = options;
|
|
10605
10774
|
const compressed = !directory && (level > 0 || (level === UNDEFINED_VALUE && compressionMethod !== 0));
|
|
10775
|
+
let rawExtraFieldZip64;
|
|
10776
|
+
const uncompressedFile = passThrough || !compressed;
|
|
10777
|
+
const zip64ExtraFieldComplete = zip64 && (options.bufferedWrite || ((!zip64UncompressedSize && !zip64CompressedSize) || uncompressedFile));
|
|
10778
|
+
if (zip64) {
|
|
10779
|
+
let rawExtraFieldZip64Length = 4;
|
|
10780
|
+
if (zip64UncompressedSize) {
|
|
10781
|
+
rawExtraFieldZip64Length += 8;
|
|
10782
|
+
}
|
|
10783
|
+
if (zip64CompressedSize) {
|
|
10784
|
+
rawExtraFieldZip64Length += 8;
|
|
10785
|
+
}
|
|
10786
|
+
if (zip64Offset) {
|
|
10787
|
+
rawExtraFieldZip64Length += 8;
|
|
10788
|
+
}
|
|
10789
|
+
if (zip64DiskNumberStart) {
|
|
10790
|
+
rawExtraFieldZip64Length += 4;
|
|
10791
|
+
}
|
|
10792
|
+
rawExtraFieldZip64 = new Uint8Array(rawExtraFieldZip64Length);
|
|
10793
|
+
const rawExtraFieldZip64View = getDataView(rawExtraFieldZip64);
|
|
10794
|
+
setUint16(rawExtraFieldZip64View, 0, EXTRAFIELD_TYPE_ZIP64);
|
|
10795
|
+
setUint16(rawExtraFieldZip64View, 2, getLength(rawExtraFieldZip64) - 4);
|
|
10796
|
+
if (zip64ExtraFieldComplete) {
|
|
10797
|
+
const rawExtraFieldZip64View = getDataView(rawExtraFieldZip64);
|
|
10798
|
+
let rawExtraFieldZip64Offset = 4;
|
|
10799
|
+
if (zip64UncompressedSize) {
|
|
10800
|
+
setBigUint64(rawExtraFieldZip64View, rawExtraFieldZip64Offset, BigInt(uncompressedSize));
|
|
10801
|
+
rawExtraFieldZip64Offset += 8;
|
|
10802
|
+
}
|
|
10803
|
+
if (zip64CompressedSize && uncompressedFile) {
|
|
10804
|
+
setBigUint64(rawExtraFieldZip64View, rawExtraFieldZip64Offset, BigInt(uncompressedSize));
|
|
10805
|
+
rawExtraFieldZip64Offset += 8;
|
|
10806
|
+
}
|
|
10807
|
+
if (zip64Offset) {
|
|
10808
|
+
setBigUint64(rawExtraFieldZip64View, rawExtraFieldZip64Offset, BigInt(offset));
|
|
10809
|
+
rawExtraFieldZip64Offset += 8;
|
|
10810
|
+
}
|
|
10811
|
+
if (zip64DiskNumberStart) {
|
|
10812
|
+
setUint32(rawExtraFieldZip64View, rawExtraFieldZip64Offset, diskNumberStart);
|
|
10813
|
+
rawExtraFieldZip64Offset += 4;
|
|
10814
|
+
}
|
|
10815
|
+
}
|
|
10816
|
+
} else {
|
|
10817
|
+
rawExtraFieldZip64 = new Uint8Array();
|
|
10818
|
+
}
|
|
10606
10819
|
let rawExtraFieldAES;
|
|
10607
10820
|
if (encrypted && !zipCrypto) {
|
|
10608
10821
|
rawExtraFieldAES = new Uint8Array(getLength(EXTRAFIELD_DATA_AES) + 2);
|
|
@@ -10651,71 +10864,55 @@ function getHeaderInfo(options) {
|
|
|
10651
10864
|
} else {
|
|
10652
10865
|
rawExtraFieldNTFS = rawExtraFieldExtendedTimestamp = new Uint8Array();
|
|
10653
10866
|
}
|
|
10654
|
-
let bitFlag = 0;
|
|
10655
|
-
if (useUnicodeFileNames) {
|
|
10656
|
-
bitFlag = bitFlag | BITFLAG_LANG_ENCODING_FLAG;
|
|
10657
|
-
}
|
|
10658
|
-
if (dataDescriptor) {
|
|
10659
|
-
bitFlag = bitFlag | BITFLAG_DATA_DESCRIPTOR;
|
|
10660
|
-
}
|
|
10661
10867
|
if (compressionMethod === UNDEFINED_VALUE) {
|
|
10662
10868
|
compressionMethod = compressed ? COMPRESSION_METHOD_DEFLATE : COMPRESSION_METHOD_STORE;
|
|
10663
10869
|
}
|
|
10664
|
-
if (compressionMethod == COMPRESSION_METHOD_DEFLATE) {
|
|
10665
|
-
if (level >= 1 && level < 3) {
|
|
10666
|
-
bitFlag = bitFlag | 0b110;
|
|
10667
|
-
}
|
|
10668
|
-
if (level >= 3 && level < 5) {
|
|
10669
|
-
bitFlag = bitFlag | 0b01;
|
|
10670
|
-
}
|
|
10671
|
-
if (level === 9) {
|
|
10672
|
-
bitFlag = bitFlag | 0b10;
|
|
10673
|
-
}
|
|
10674
|
-
}
|
|
10675
10870
|
if (zip64) {
|
|
10676
10871
|
version = version > VERSION_ZIP64 ? version : VERSION_ZIP64;
|
|
10677
10872
|
}
|
|
10678
|
-
if (encrypted) {
|
|
10679
|
-
|
|
10680
|
-
|
|
10681
|
-
|
|
10682
|
-
rawExtraFieldAES[9] = compressionMethod;
|
|
10683
|
-
compressionMethod = COMPRESSION_METHOD_AES;
|
|
10684
|
-
}
|
|
10685
|
-
}
|
|
10686
|
-
const headerArray = new Uint8Array(26);
|
|
10687
|
-
const headerView = getDataView(headerArray);
|
|
10688
|
-
setUint16(headerView, 0, version);
|
|
10689
|
-
setUint16(headerView, 2, bitFlag);
|
|
10690
|
-
setUint16(headerView, 4, compressionMethod);
|
|
10691
|
-
const dateArray = new Uint32Array(1);
|
|
10692
|
-
const dateView = getDataView(dateArray);
|
|
10693
|
-
let lastModDateMsDos;
|
|
10694
|
-
if (lastModDate < MIN_DATE) {
|
|
10695
|
-
lastModDateMsDos = MIN_DATE;
|
|
10696
|
-
} else if (lastModDate > MAX_DATE) {
|
|
10697
|
-
lastModDateMsDos = MAX_DATE;
|
|
10698
|
-
} else {
|
|
10699
|
-
lastModDateMsDos = lastModDate;
|
|
10873
|
+
if (encrypted && !zipCrypto) {
|
|
10874
|
+
version = version > VERSION_AES ? version : VERSION_AES;
|
|
10875
|
+
rawExtraFieldAES[9] = compressionMethod;
|
|
10876
|
+
compressionMethod = COMPRESSION_METHOD_AES;
|
|
10700
10877
|
}
|
|
10701
|
-
|
|
10702
|
-
|
|
10703
|
-
const
|
|
10704
|
-
|
|
10705
|
-
|
|
10706
|
-
|
|
10707
|
-
|
|
10708
|
-
|
|
10878
|
+
const localExtraFieldZip64Length = zip64ExtraFieldComplete ? getLength(rawExtraFieldZip64) : 0;
|
|
10879
|
+
const extraFieldLength = localExtraFieldZip64Length + getLength(rawExtraFieldAES, rawExtraFieldExtendedTimestamp, rawExtraFieldNTFS, rawExtraField);
|
|
10880
|
+
const {
|
|
10881
|
+
headerArray,
|
|
10882
|
+
headerView,
|
|
10883
|
+
rawLastModDate
|
|
10884
|
+
} = getHeaderArrayData({
|
|
10885
|
+
version,
|
|
10886
|
+
bitflag: getBitflag(level, useUnicodeFileNames, dataDescriptor, encrypted),
|
|
10887
|
+
compressionMethod,
|
|
10888
|
+
uncompressedSize,
|
|
10889
|
+
lastModDate: lastModDate < MIN_DATE ? MIN_DATE : lastModDate > MAX_DATE ? MAX_DATE : lastModDate,
|
|
10890
|
+
rawFilename,
|
|
10891
|
+
zip64CompressedSize,
|
|
10892
|
+
zip64UncompressedSize,
|
|
10893
|
+
extraFieldLength
|
|
10894
|
+
});
|
|
10895
|
+
let localHeaderOffset = HEADER_SIZE + 4;
|
|
10896
|
+
const localHeaderArray = new Uint8Array(localHeaderOffset + getLength(rawFilename) + extraFieldLength);
|
|
10709
10897
|
const localHeaderView = getDataView(localHeaderArray);
|
|
10710
10898
|
setUint32(localHeaderView, 0, LOCAL_FILE_HEADER_SIGNATURE);
|
|
10711
10899
|
arraySet(localHeaderArray, headerArray, 4);
|
|
10712
|
-
arraySet(localHeaderArray, rawFilename,
|
|
10713
|
-
|
|
10714
|
-
|
|
10715
|
-
|
|
10716
|
-
|
|
10900
|
+
arraySet(localHeaderArray, rawFilename, localHeaderOffset);
|
|
10901
|
+
localHeaderOffset += getLength(rawFilename);
|
|
10902
|
+
if (zip64ExtraFieldComplete) {
|
|
10903
|
+
arraySet(localHeaderArray, rawExtraFieldZip64, localHeaderOffset);
|
|
10904
|
+
}
|
|
10905
|
+
localHeaderOffset += localExtraFieldZip64Length;
|
|
10906
|
+
arraySet(localHeaderArray, rawExtraFieldAES, localHeaderOffset);
|
|
10907
|
+
localHeaderOffset += getLength(rawExtraFieldAES);
|
|
10908
|
+
arraySet(localHeaderArray, rawExtraFieldExtendedTimestamp, localHeaderOffset);
|
|
10909
|
+
localHeaderOffset += getLength(rawExtraFieldExtendedTimestamp);
|
|
10910
|
+
arraySet(localHeaderArray, rawExtraFieldNTFS, localHeaderOffset);
|
|
10911
|
+
localHeaderOffset += getLength(rawExtraFieldNTFS);
|
|
10912
|
+
arraySet(localHeaderArray, rawExtraField, localHeaderOffset);
|
|
10717
10913
|
return {
|
|
10718
10914
|
localHeaderArray,
|
|
10915
|
+
localHeaderView,
|
|
10719
10916
|
headerArray,
|
|
10720
10917
|
headerView,
|
|
10721
10918
|
lastModDate,
|
|
@@ -10725,6 +10922,8 @@ function getHeaderInfo(options) {
|
|
|
10725
10922
|
version,
|
|
10726
10923
|
compressionMethod,
|
|
10727
10924
|
extraFieldExtendedTimestampFlag,
|
|
10925
|
+
rawExtraFieldZip64,
|
|
10926
|
+
localExtraFieldZip64Length,
|
|
10728
10927
|
rawExtraFieldExtendedTimestamp,
|
|
10729
10928
|
rawExtraFieldNTFS,
|
|
10730
10929
|
rawExtraFieldAES,
|
|
@@ -10753,12 +10952,11 @@ function appendExtraFieldUSDZ(entryInfo, zipWriterOffset) {
|
|
|
10753
10952
|
entryInfo.metadataSize += extraBytesLength;
|
|
10754
10953
|
}
|
|
10755
10954
|
|
|
10756
|
-
function getDataDescriptorInfo(
|
|
10757
|
-
|
|
10758
|
-
|
|
10759
|
-
|
|
10760
|
-
|
|
10761
|
-
} = options;
|
|
10955
|
+
function getDataDescriptorInfo({
|
|
10956
|
+
zip64,
|
|
10957
|
+
dataDescriptor,
|
|
10958
|
+
dataDescriptorSignature
|
|
10959
|
+
}) {
|
|
10762
10960
|
let dataDescriptorArray = new Uint8Array();
|
|
10763
10961
|
let dataDescriptorView, dataDescriptorOffset = 0;
|
|
10764
10962
|
if (dataDescriptor) {
|
|
@@ -10776,15 +10974,17 @@ function getDataDescriptorInfo(options) {
|
|
|
10776
10974
|
};
|
|
10777
10975
|
}
|
|
10778
10976
|
|
|
10779
|
-
function setEntryInfo(
|
|
10780
|
-
|
|
10781
|
-
|
|
10782
|
-
|
|
10783
|
-
|
|
10784
|
-
|
|
10785
|
-
|
|
10786
|
-
|
|
10787
|
-
|
|
10977
|
+
function setEntryInfo({
|
|
10978
|
+
signature,
|
|
10979
|
+
compressedSize,
|
|
10980
|
+
uncompressedSize,
|
|
10981
|
+
headerInfo,
|
|
10982
|
+
dataDescriptorInfo
|
|
10983
|
+
}, {
|
|
10984
|
+
zip64,
|
|
10985
|
+
zipCrypto,
|
|
10986
|
+
dataDescriptor
|
|
10987
|
+
}) {
|
|
10788
10988
|
const {
|
|
10789
10989
|
headerView,
|
|
10790
10990
|
encrypted
|
|
@@ -10793,40 +10993,20 @@ function setEntryInfo(entryInfo, options) {
|
|
|
10793
10993
|
dataDescriptorView,
|
|
10794
10994
|
dataDescriptorOffset
|
|
10795
10995
|
} = dataDescriptorInfo;
|
|
10796
|
-
const {
|
|
10797
|
-
zip64,
|
|
10798
|
-
zip64UncompressedSize,
|
|
10799
|
-
zip64CompressedSize,
|
|
10800
|
-
zipCrypto,
|
|
10801
|
-
dataDescriptor
|
|
10802
|
-
} = options;
|
|
10803
10996
|
if ((!encrypted || zipCrypto) && signature !== UNDEFINED_VALUE) {
|
|
10804
|
-
setUint32(headerView,
|
|
10997
|
+
setUint32(headerView, HEADER_OFFSET_SIGNATURE, signature);
|
|
10805
10998
|
if (dataDescriptor) {
|
|
10806
10999
|
setUint32(dataDescriptorView, dataDescriptorOffset, signature);
|
|
10807
11000
|
}
|
|
10808
11001
|
}
|
|
10809
11002
|
if (zip64) {
|
|
10810
|
-
const rawExtraFieldZip64View = getDataView(rawExtraFieldZip64);
|
|
10811
|
-
setUint16(rawExtraFieldZip64View, 0, EXTRAFIELD_TYPE_ZIP64);
|
|
10812
|
-
setUint16(rawExtraFieldZip64View, 2, getLength(rawExtraFieldZip64) - 4);
|
|
10813
|
-
let rawExtraFieldZip64Offset = 4;
|
|
10814
|
-
if (zip64UncompressedSize) {
|
|
10815
|
-
setUint32(headerView, 18, MAX_32_BITS);
|
|
10816
|
-
setBigUint64(rawExtraFieldZip64View, rawExtraFieldZip64Offset, BigInt(uncompressedSize));
|
|
10817
|
-
rawExtraFieldZip64Offset += 8;
|
|
10818
|
-
}
|
|
10819
|
-
if (zip64CompressedSize) {
|
|
10820
|
-
setUint32(headerView, 14, MAX_32_BITS);
|
|
10821
|
-
setBigUint64(rawExtraFieldZip64View, rawExtraFieldZip64Offset, BigInt(compressedSize));
|
|
10822
|
-
}
|
|
10823
11003
|
if (dataDescriptor) {
|
|
10824
11004
|
setBigUint64(dataDescriptorView, dataDescriptorOffset + 4, BigInt(compressedSize));
|
|
10825
11005
|
setBigUint64(dataDescriptorView, dataDescriptorOffset + 12, BigInt(uncompressedSize));
|
|
10826
11006
|
}
|
|
10827
11007
|
} else {
|
|
10828
|
-
setUint32(headerView,
|
|
10829
|
-
setUint32(headerView,
|
|
11008
|
+
setUint32(headerView, HEADER_OFFSET_COMPRESSED_SIZE, compressedSize);
|
|
11009
|
+
setUint32(headerView, HEADER_OFFSET_UNCOMPRESSED_SIZE, uncompressedSize);
|
|
10830
11010
|
if (dataDescriptor) {
|
|
10831
11011
|
setUint32(dataDescriptorView, dataDescriptorOffset + 4, compressedSize);
|
|
10832
11012
|
setUint32(dataDescriptorView, dataDescriptorOffset + 8, uncompressedSize);
|
|
@@ -10834,36 +11014,72 @@ function setEntryInfo(entryInfo, options) {
|
|
|
10834
11014
|
}
|
|
10835
11015
|
}
|
|
10836
11016
|
|
|
10837
|
-
|
|
10838
|
-
|
|
10839
|
-
|
|
10840
|
-
|
|
10841
|
-
|
|
10842
|
-
|
|
10843
|
-
|
|
10844
|
-
|
|
10845
|
-
|
|
11017
|
+
function updateLocalHeader({
|
|
11018
|
+
rawFilename,
|
|
11019
|
+
dataDescriptor,
|
|
11020
|
+
encrypted,
|
|
11021
|
+
zip64,
|
|
11022
|
+
localExtraFieldZip64Length,
|
|
11023
|
+
signature,
|
|
11024
|
+
compressedSize,
|
|
11025
|
+
uncompressedSize,
|
|
11026
|
+
offset,
|
|
11027
|
+
diskNumberStart,
|
|
11028
|
+
zip64UncompressedSize,
|
|
11029
|
+
zip64CompressedSize,
|
|
11030
|
+
zip64Offset,
|
|
11031
|
+
zip64DiskNumberStart
|
|
11032
|
+
}, localHeaderView) {
|
|
11033
|
+
if (!dataDescriptor) {
|
|
11034
|
+
if (!encrypted) {
|
|
11035
|
+
setUint32(localHeaderView, HEADER_OFFSET_SIGNATURE + 4, signature);
|
|
11036
|
+
}
|
|
11037
|
+
if (!zip64) {
|
|
11038
|
+
setUint32(localHeaderView, HEADER_OFFSET_COMPRESSED_SIZE + 4, compressedSize);
|
|
11039
|
+
setUint32(localHeaderView, HEADER_OFFSET_UNCOMPRESSED_SIZE + 4, uncompressedSize);
|
|
11040
|
+
}
|
|
10846
11041
|
}
|
|
10847
|
-
if (
|
|
10848
|
-
|
|
10849
|
-
|
|
10850
|
-
|
|
10851
|
-
|
|
10852
|
-
|
|
11042
|
+
if (zip64) {
|
|
11043
|
+
if (localExtraFieldZip64Length) {
|
|
11044
|
+
let localHeaderOffset = HEADER_SIZE + 4 + getLength(rawFilename) + 4;
|
|
11045
|
+
if (zip64UncompressedSize) {
|
|
11046
|
+
setBigUint64(localHeaderView, localHeaderOffset, BigInt(uncompressedSize));
|
|
11047
|
+
localHeaderOffset += 8;
|
|
11048
|
+
}
|
|
11049
|
+
if (zip64CompressedSize) {
|
|
11050
|
+
setBigUint64(localHeaderView, localHeaderOffset, BigInt(compressedSize));
|
|
11051
|
+
localHeaderOffset += 8;
|
|
11052
|
+
}
|
|
11053
|
+
if (zip64Offset) {
|
|
11054
|
+
setBigUint64(localHeaderView, localHeaderOffset, BigInt(offset));
|
|
11055
|
+
localHeaderOffset += 8;
|
|
11056
|
+
}
|
|
11057
|
+
if (zip64DiskNumberStart) {
|
|
11058
|
+
setUint32(localHeaderView, localHeaderOffset, diskNumberStart);
|
|
11059
|
+
}
|
|
11060
|
+
}
|
|
10853
11061
|
}
|
|
10854
|
-
await writeData(writable, new Uint8Array(arrayBuffer));
|
|
10855
|
-
return entryData.slice(arrayBuffer.byteLength);
|
|
10856
11062
|
}
|
|
10857
11063
|
|
|
10858
|
-
function
|
|
10859
|
-
|
|
10860
|
-
|
|
11064
|
+
function updateZip64ExtraField({
|
|
11065
|
+
compressedSize,
|
|
11066
|
+
uncompressedSize,
|
|
11067
|
+
offset,
|
|
11068
|
+
diskNumberStart,
|
|
11069
|
+
zip64UncompressedSize,
|
|
11070
|
+
zip64CompressedSize,
|
|
11071
|
+
zip64Offset,
|
|
11072
|
+
zip64DiskNumberStart,
|
|
11073
|
+
rawExtraFieldZip64
|
|
11074
|
+
}) {
|
|
10861
11075
|
const rawExtraFieldZip64View = getDataView(rawExtraFieldZip64);
|
|
10862
11076
|
let rawExtraFieldZip64Offset = 4;
|
|
10863
11077
|
if (zip64UncompressedSize) {
|
|
11078
|
+
setBigUint64(rawExtraFieldZip64View, rawExtraFieldZip64Offset, BigInt(uncompressedSize));
|
|
10864
11079
|
rawExtraFieldZip64Offset += 8;
|
|
10865
11080
|
}
|
|
10866
11081
|
if (zip64CompressedSize) {
|
|
11082
|
+
setBigUint64(rawExtraFieldZip64View, rawExtraFieldZip64Offset, BigInt(compressedSize));
|
|
10867
11083
|
rawExtraFieldZip64Offset += 8;
|
|
10868
11084
|
}
|
|
10869
11085
|
if (zip64Offset) {
|
|
@@ -10877,7 +11093,7 @@ function setZip64ExtraInfo(fileEntry, options) {
|
|
|
10877
11093
|
|
|
10878
11094
|
async function closeFile(zipWriter, comment, options) {
|
|
10879
11095
|
const { files, writer } = zipWriter;
|
|
10880
|
-
const { diskOffset
|
|
11096
|
+
const { diskOffset } = writer;
|
|
10881
11097
|
let { diskNumber } = writer;
|
|
10882
11098
|
let offset = 0;
|
|
10883
11099
|
let directoryDataLength = 0;
|
|
@@ -10906,7 +11122,7 @@ async function closeFile(zipWriter, comment, options) {
|
|
|
10906
11122
|
} else {
|
|
10907
11123
|
rawExtraFieldTimestamp = new Uint8Array();
|
|
10908
11124
|
}
|
|
10909
|
-
fileEntry.
|
|
11125
|
+
fileEntry.rawExtraFieldExtendedTimestamp = rawExtraFieldTimestamp;
|
|
10910
11126
|
directoryDataLength += 46 +
|
|
10911
11127
|
getLength(
|
|
10912
11128
|
rawFilename,
|
|
@@ -10927,12 +11143,13 @@ async function closeFile(zipWriter, comment, options) {
|
|
|
10927
11143
|
rawFilename,
|
|
10928
11144
|
rawExtraFieldZip64,
|
|
10929
11145
|
rawExtraFieldAES,
|
|
10930
|
-
|
|
11146
|
+
rawExtraFieldExtendedTimestamp,
|
|
10931
11147
|
rawExtraFieldNTFS,
|
|
10932
11148
|
rawExtraField,
|
|
10933
11149
|
rawComment,
|
|
10934
11150
|
versionMadeBy,
|
|
10935
11151
|
headerArray,
|
|
11152
|
+
headerView,
|
|
10936
11153
|
zip64,
|
|
10937
11154
|
zip64UncompressedSize,
|
|
10938
11155
|
zip64CompressedSize,
|
|
@@ -10944,39 +11161,50 @@ async function closeFile(zipWriter, comment, options) {
|
|
|
10944
11161
|
uncompressedSize,
|
|
10945
11162
|
compressedSize
|
|
10946
11163
|
} = fileEntry;
|
|
10947
|
-
const extraFieldLength = getLength(rawExtraFieldZip64, rawExtraFieldAES,
|
|
11164
|
+
const extraFieldLength = getLength(rawExtraFieldZip64, rawExtraFieldAES, rawExtraFieldExtendedTimestamp, rawExtraFieldNTFS, rawExtraField);
|
|
10948
11165
|
setUint32(directoryView, offset, CENTRAL_FILE_HEADER_SIGNATURE);
|
|
10949
11166
|
setUint16(directoryView, offset + 4, versionMadeBy);
|
|
10950
|
-
const headerView = getDataView(headerArray);
|
|
10951
11167
|
if (!zip64UncompressedSize) {
|
|
10952
|
-
setUint32(headerView,
|
|
11168
|
+
setUint32(headerView, HEADER_OFFSET_UNCOMPRESSED_SIZE, uncompressedSize);
|
|
10953
11169
|
}
|
|
10954
11170
|
if (!zip64CompressedSize) {
|
|
10955
|
-
setUint32(headerView,
|
|
11171
|
+
setUint32(headerView, HEADER_OFFSET_COMPRESSED_SIZE, compressedSize);
|
|
10956
11172
|
}
|
|
10957
11173
|
arraySet(directoryArray, headerArray, offset + 6);
|
|
10958
|
-
|
|
10959
|
-
setUint16(directoryView,
|
|
10960
|
-
|
|
10961
|
-
setUint16(directoryView,
|
|
11174
|
+
let directoryOffset = offset + HEADER_SIZE + 4;
|
|
11175
|
+
setUint16(directoryView, directoryOffset, extraFieldLength);
|
|
11176
|
+
directoryOffset += 2;
|
|
11177
|
+
setUint16(directoryView, directoryOffset, getLength(rawComment));
|
|
11178
|
+
directoryOffset += 2;
|
|
11179
|
+
setUint16(directoryView, directoryOffset, zip64 && zip64DiskNumberStart ? MAX_16_BITS : diskNumberStart);
|
|
11180
|
+
directoryOffset += 2;
|
|
11181
|
+
setUint16(directoryView, directoryOffset, internalFileAttributes);
|
|
11182
|
+
directoryOffset += 2;
|
|
10962
11183
|
if (externalFileAttributes) {
|
|
10963
|
-
setUint32(directoryView,
|
|
10964
|
-
}
|
|
10965
|
-
|
|
10966
|
-
|
|
10967
|
-
|
|
10968
|
-
arraySet(directoryArray,
|
|
10969
|
-
|
|
10970
|
-
arraySet(directoryArray,
|
|
10971
|
-
|
|
10972
|
-
arraySet(directoryArray,
|
|
10973
|
-
|
|
11184
|
+
setUint32(directoryView, directoryOffset, externalFileAttributes);
|
|
11185
|
+
}
|
|
11186
|
+
directoryOffset += 4;
|
|
11187
|
+
setUint32(directoryView, directoryOffset, zip64 && zip64Offset ? MAX_32_BITS : fileEntryOffset);
|
|
11188
|
+
directoryOffset += 4;
|
|
11189
|
+
arraySet(directoryArray, rawFilename, directoryOffset);
|
|
11190
|
+
directoryOffset += getLength(rawFilename);
|
|
11191
|
+
arraySet(directoryArray, rawExtraFieldZip64, directoryOffset);
|
|
11192
|
+
directoryOffset += getLength(rawExtraFieldZip64);
|
|
11193
|
+
arraySet(directoryArray, rawExtraFieldAES, directoryOffset);
|
|
11194
|
+
directoryOffset += getLength(rawExtraFieldAES);
|
|
11195
|
+
arraySet(directoryArray, rawExtraFieldExtendedTimestamp, directoryOffset);
|
|
11196
|
+
directoryOffset += getLength(rawExtraFieldExtendedTimestamp);
|
|
11197
|
+
arraySet(directoryArray, rawExtraFieldNTFS, directoryOffset);
|
|
11198
|
+
directoryOffset += getLength(rawExtraFieldNTFS);
|
|
11199
|
+
arraySet(directoryArray, rawExtraField, directoryOffset);
|
|
11200
|
+
directoryOffset += getLength(rawExtraField);
|
|
11201
|
+
arraySet(directoryArray, rawComment, directoryOffset);
|
|
10974
11202
|
if (offset - directoryDiskOffset > writer.availableSize) {
|
|
10975
11203
|
writer.availableSize = 0;
|
|
10976
|
-
await writeData(
|
|
11204
|
+
await writeData(writer, directoryArray.slice(directoryDiskOffset, offset));
|
|
10977
11205
|
directoryDiskOffset = offset;
|
|
10978
11206
|
}
|
|
10979
|
-
offset
|
|
11207
|
+
offset = directoryOffset;
|
|
10980
11208
|
if (options.onprogress) {
|
|
10981
11209
|
try {
|
|
10982
11210
|
await options.onprogress(indexFileEntry + 1, files.size, new Entry(fileEntry));
|
|
@@ -10986,7 +11214,7 @@ async function closeFile(zipWriter, comment, options) {
|
|
|
10986
11214
|
}
|
|
10987
11215
|
}
|
|
10988
11216
|
}
|
|
10989
|
-
await writeData(
|
|
11217
|
+
await writeData(writer, directoryDiskOffset ? directoryArray.slice(directoryDiskOffset) : directoryArray);
|
|
10990
11218
|
let lastDiskNumber = writer.diskNumber;
|
|
10991
11219
|
const { availableSize } = writer;
|
|
10992
11220
|
if (availableSize < END_OF_CENTRAL_DIR_LENGTH) {
|
|
@@ -11042,17 +11270,18 @@ async function closeFile(zipWriter, comment, options) {
|
|
|
11042
11270
|
throw new Error(ERR_INVALID_COMMENT);
|
|
11043
11271
|
}
|
|
11044
11272
|
}
|
|
11045
|
-
await writeData(
|
|
11273
|
+
await writeData(writer, endOfdirectoryArray);
|
|
11046
11274
|
if (commentLength) {
|
|
11047
|
-
await writeData(
|
|
11275
|
+
await writeData(writer, comment);
|
|
11048
11276
|
}
|
|
11049
11277
|
}
|
|
11050
11278
|
|
|
11051
|
-
async function writeData(
|
|
11279
|
+
async function writeData(writer, array) {
|
|
11280
|
+
const { writable } = writer;
|
|
11052
11281
|
const streamWriter = writable.getWriter();
|
|
11053
11282
|
try {
|
|
11054
11283
|
await streamWriter.ready;
|
|
11055
|
-
|
|
11284
|
+
writer.size += getLength(array);
|
|
11056
11285
|
await streamWriter.write(array);
|
|
11057
11286
|
} finally {
|
|
11058
11287
|
streamWriter.releaseLock();
|
|
@@ -11104,6 +11333,68 @@ function getLength(...arrayLikes) {
|
|
|
11104
11333
|
return result;
|
|
11105
11334
|
}
|
|
11106
11335
|
|
|
11336
|
+
function getHeaderArrayData({
|
|
11337
|
+
version,
|
|
11338
|
+
bitflag,
|
|
11339
|
+
compressionMethod,
|
|
11340
|
+
uncompressedSize,
|
|
11341
|
+
compressedSize,
|
|
11342
|
+
lastModDate,
|
|
11343
|
+
rawFilename,
|
|
11344
|
+
zip64CompressedSize,
|
|
11345
|
+
zip64UncompressedSize,
|
|
11346
|
+
extraFieldLength
|
|
11347
|
+
}) {
|
|
11348
|
+
const headerArray = new Uint8Array(HEADER_SIZE);
|
|
11349
|
+
const headerView = getDataView(headerArray);
|
|
11350
|
+
setUint16(headerView, 0, version);
|
|
11351
|
+
setUint16(headerView, 2, bitflag);
|
|
11352
|
+
setUint16(headerView, 4, compressionMethod);
|
|
11353
|
+
const dateArray = new Uint32Array(1);
|
|
11354
|
+
const dateView = getDataView(dateArray);
|
|
11355
|
+
setUint16(dateView, 0, (((lastModDate.getHours() << 6) | lastModDate.getMinutes()) << 5) | lastModDate.getSeconds() / 2);
|
|
11356
|
+
setUint16(dateView, 2, ((((lastModDate.getFullYear() - 1980) << 4) | (lastModDate.getMonth() + 1)) << 5) | lastModDate.getDate());
|
|
11357
|
+
const rawLastModDate = dateArray[0];
|
|
11358
|
+
setUint32(headerView, 6, rawLastModDate);
|
|
11359
|
+
if (zip64CompressedSize || compressedSize !== UNDEFINED_VALUE) {
|
|
11360
|
+
setUint32(headerView, HEADER_OFFSET_COMPRESSED_SIZE, zip64CompressedSize ? MAX_32_BITS : compressedSize);
|
|
11361
|
+
}
|
|
11362
|
+
if (zip64UncompressedSize || uncompressedSize !== UNDEFINED_VALUE) {
|
|
11363
|
+
setUint32(headerView, HEADER_OFFSET_UNCOMPRESSED_SIZE, zip64UncompressedSize ? MAX_32_BITS : uncompressedSize);
|
|
11364
|
+
}
|
|
11365
|
+
setUint16(headerView, 22, getLength(rawFilename));
|
|
11366
|
+
setUint16(headerView, 24, extraFieldLength);
|
|
11367
|
+
return {
|
|
11368
|
+
headerArray,
|
|
11369
|
+
headerView,
|
|
11370
|
+
rawLastModDate
|
|
11371
|
+
};
|
|
11372
|
+
}
|
|
11373
|
+
|
|
11374
|
+
|
|
11375
|
+
function getBitflag(level, useUnicodeFileNames, dataDescriptor, encrypted) {
|
|
11376
|
+
let bitFlag = 0;
|
|
11377
|
+
if (useUnicodeFileNames) {
|
|
11378
|
+
bitFlag = bitFlag | BITFLAG_LANG_ENCODING_FLAG;
|
|
11379
|
+
}
|
|
11380
|
+
if (dataDescriptor) {
|
|
11381
|
+
bitFlag = bitFlag | BITFLAG_DATA_DESCRIPTOR;
|
|
11382
|
+
}
|
|
11383
|
+
if (level >= 0 && level < 2) {
|
|
11384
|
+
bitFlag = bitFlag | BITFLAG_LEVEL_SUPER_FAST_MASK;
|
|
11385
|
+
}
|
|
11386
|
+
if (level >= 3 && level < 6) {
|
|
11387
|
+
bitFlag = bitFlag | BITFLAG_LEVEL_FAST_MASK;
|
|
11388
|
+
}
|
|
11389
|
+
if (level == 9) {
|
|
11390
|
+
bitFlag = bitFlag | BITFLAG_LEVEL_MAX_MASK;
|
|
11391
|
+
}
|
|
11392
|
+
if (encrypted) {
|
|
11393
|
+
bitFlag = bitFlag | BITFLAG_ENCRYPTED;
|
|
11394
|
+
}
|
|
11395
|
+
return bitFlag;
|
|
11396
|
+
}
|
|
11397
|
+
|
|
11107
11398
|
/*
|
|
11108
11399
|
Copyright (c) 2022 Gildas Lormeau. All rights reserved.
|
|
11109
11400
|
|
|
@@ -11223,8 +11514,8 @@ class ZipFileEntry extends ZipEntry {
|
|
|
11223
11514
|
const reader = zipEntry.reader = new zipEntry.Reader(zipEntry.data, options);
|
|
11224
11515
|
const uncompressedSize = zipEntry.data ? zipEntry.data.uncompressedSize : reader.size;
|
|
11225
11516
|
await Promise.all([initStream(reader), initStream(writer, uncompressedSize)]);
|
|
11226
|
-
const readable = reader
|
|
11227
|
-
|
|
11517
|
+
const { readable } = reader;
|
|
11518
|
+
zipEntry.uncompressedSize = reader.size;
|
|
11228
11519
|
await readable.pipeTo(writer.writable);
|
|
11229
11520
|
return writer.getData ? writer.getData() : writer.writable;
|
|
11230
11521
|
}
|
|
@@ -11274,6 +11565,10 @@ class ZipFileEntry extends ZipEntry {
|
|
|
11274
11565
|
return this.getData({ writable }, options);
|
|
11275
11566
|
}
|
|
11276
11567
|
|
|
11568
|
+
getArrayBuffer(options) {
|
|
11569
|
+
return this.data.arrayBuffer(options);
|
|
11570
|
+
}
|
|
11571
|
+
|
|
11277
11572
|
replaceBlob(blob) {
|
|
11278
11573
|
Object.assign(this, {
|
|
11279
11574
|
data: blob,
|
|
@@ -11850,9 +12145,8 @@ async function exportZip(zipWriter, entry, totalSize, options) {
|
|
|
11850
12145
|
});
|
|
11851
12146
|
}
|
|
11852
12147
|
}
|
|
11853
|
-
await zipWriter.add(name, child.reader, Object.assign({
|
|
11854
|
-
directory: child.directory
|
|
11855
|
-
}, Object.assign({}, options, zipEntryOptions, childOptions, {
|
|
12148
|
+
await zipWriter.add(name, child.reader, Object.assign({}, options, zipEntryOptions, childOptions, {
|
|
12149
|
+
directory: child.directory,
|
|
11856
12150
|
onprogress: async indexProgress => {
|
|
11857
12151
|
if (options.onprogress) {
|
|
11858
12152
|
entryOffsets.set(name, indexProgress);
|
|
@@ -11864,7 +12158,7 @@ async function exportZip(zipWriter, entry, totalSize, options) {
|
|
|
11864
12158
|
}
|
|
11865
12159
|
}
|
|
11866
12160
|
}
|
|
11867
|
-
}))
|
|
12161
|
+
}));
|
|
11868
12162
|
await process(zipWriter, child);
|
|
11869
12163
|
}
|
|
11870
12164
|
}
|
|
@@ -12045,6 +12339,7 @@ exports.ERR_UNSUPPORTED_COMPRESSION = ERR_UNSUPPORTED_COMPRESSION;
|
|
|
12045
12339
|
exports.ERR_UNSUPPORTED_ENCRYPTION = ERR_UNSUPPORTED_ENCRYPTION;
|
|
12046
12340
|
exports.ERR_UNSUPPORTED_FORMAT = ERR_UNSUPPORTED_FORMAT;
|
|
12047
12341
|
exports.ERR_WRITER_NOT_INITIALIZED = ERR_WRITER_NOT_INITIALIZED;
|
|
12342
|
+
exports.ERR_ZIP_NOT_EMPTY = ERR_ZIP_NOT_EMPTY;
|
|
12048
12343
|
exports.HttpRangeReader = HttpRangeReader;
|
|
12049
12344
|
exports.HttpReader = HttpReader;
|
|
12050
12345
|
exports.Reader = Reader;
|