@pixelation/aseprite
Version:
A library for parsing Aseprite files.
1,177 lines (1,176 loc) • 91.9 kB
JavaScript
/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */
function dt(t) {
let n = t.length;
for (; --n >= 0; )
t[n] = 0;
}
const Xn = 0, fn = 1, Yn = 2, jn = 3, Vn = 258, we = 29, Rt = 256, kt = Rt + 1 + we, st = 30, be = 19, hn = 2 * kt + 1, Q = 15, Yt = 16, Wn = 7, xe = 256, dn = 16, cn = 17, _n = 18, le = (
/* extra bits for each length code */
new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0])
), Ft = (
/* extra bits for each distance code */
new Uint8Array([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13])
), Kn = (
/* extra bits for each bit length code */
new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7])
), un = new Uint8Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]), Jn = 512, G = new Array((kt + 2) * 2);
dt(G);
const bt = new Array(st * 2);
dt(bt);
const vt = new Array(Jn);
dt(vt);
const St = new Array(Vn - jn + 1);
dt(St);
const pe = new Array(we);
dt(pe);
const Pt = new Array(st);
dt(Pt);
function jt(t, n, e, a, r) {
this.static_tree = t, this.extra_bits = n, this.extra_base = e, this.elems = a, this.max_length = r, this.has_stree = t && t.length;
}
let gn, wn, bn;
function Vt(t, n) {
this.dyn_tree = t, this.max_code = 0, this.stat_desc = n;
}
const xn = (t) => t < 256 ? vt[t] : vt[256 + (t >>> 7)], mt = (t, n) => {
t.pending_buf[t.pending++] = n & 255, t.pending_buf[t.pending++] = n >>> 8 & 255;
}, T = (t, n, e) => {
t.bi_valid > Yt - e ? (t.bi_buf |= n << t.bi_valid & 65535, mt(t, t.bi_buf), t.bi_buf = n >> Yt - t.bi_valid, t.bi_valid += e - Yt) : (t.bi_buf |= n << t.bi_valid & 65535, t.bi_valid += e);
}, P = (t, n, e) => {
T(
t,
e[n * 2],
e[n * 2 + 1]
/*.Len*/
);
}, pn = (t, n) => {
let e = 0;
do
e |= t & 1, t >>>= 1, e <<= 1;
while (--n > 0);
return e >>> 1;
}, Qn = (t) => {
t.bi_valid === 16 ? (mt(t, t.bi_buf), t.bi_buf = 0, t.bi_valid = 0) : t.bi_valid >= 8 && (t.pending_buf[t.pending++] = t.bi_buf & 255, t.bi_buf >>= 8, t.bi_valid -= 8);
}, qn = (t, n) => {
const e = n.dyn_tree, a = n.max_code, r = n.stat_desc.static_tree, i = n.stat_desc.has_stree, s = n.stat_desc.extra_bits, o = n.stat_desc.extra_base, d = n.stat_desc.max_length;
let l, f, g, c, h, u, z = 0;
for (c = 0; c <= Q; c++)
t.bl_count[c] = 0;
for (e[t.heap[t.heap_max] * 2 + 1] = 0, l = t.heap_max + 1; l < hn; l++)
f = t.heap[l], c = e[e[f * 2 + 1] * 2 + 1] + 1, c > d && (c = d, z++), e[f * 2 + 1] = c, !(f > a) && (t.bl_count[c]++, h = 0, f >= o && (h = s[f - o]), u = e[f * 2], t.opt_len += u * (c + h), i && (t.static_len += u * (r[f * 2 + 1] + h)));
if (z !== 0) {
do {
for (c = d - 1; t.bl_count[c] === 0; )
c--;
t.bl_count[c]--, t.bl_count[c + 1] += 2, t.bl_count[d]--, z -= 2;
} while (z > 0);
for (c = d; c !== 0; c--)
for (f = t.bl_count[c]; f !== 0; )
g = t.heap[--l], !(g > a) && (e[g * 2 + 1] !== c && (t.opt_len += (c - e[g * 2 + 1]) * e[g * 2], e[g * 2 + 1] = c), f--);
}
}, kn = (t, n, e) => {
const a = new Array(Q + 1);
let r = 0, i, s;
for (i = 1; i <= Q; i++)
r = r + e[i - 1] << 1, a[i] = r;
for (s = 0; s <= n; s++) {
let o = t[s * 2 + 1];
o !== 0 && (t[s * 2] = pn(a[o]++, o));
}
}, ta = () => {
let t, n, e, a, r;
const i = new Array(Q + 1);
for (e = 0, a = 0; a < we - 1; a++)
for (pe[a] = e, t = 0; t < 1 << le[a]; t++)
St[e++] = a;
for (St[e - 1] = a, r = 0, a = 0; a < 16; a++)
for (Pt[a] = r, t = 0; t < 1 << Ft[a]; t++)
vt[r++] = a;
for (r >>= 7; a < st; a++)
for (Pt[a] = r << 7, t = 0; t < 1 << Ft[a] - 7; t++)
vt[256 + r++] = a;
for (n = 0; n <= Q; n++)
i[n] = 0;
for (t = 0; t <= 143; )
G[t * 2 + 1] = 8, t++, i[8]++;
for (; t <= 255; )
G[t * 2 + 1] = 9, t++, i[9]++;
for (; t <= 279; )
G[t * 2 + 1] = 7, t++, i[7]++;
for (; t <= 287; )
G[t * 2 + 1] = 8, t++, i[8]++;
for (kn(G, kt + 1, i), t = 0; t < st; t++)
bt[t * 2 + 1] = 5, bt[t * 2] = pn(t, 5);
gn = new jt(G, le, Rt + 1, kt, Q), wn = new jt(bt, Ft, 0, st, Q), bn = new jt(new Array(0), Kn, 0, be, Wn);
}, vn = (t) => {
let n;
for (n = 0; n < kt; n++)
t.dyn_ltree[n * 2] = 0;
for (n = 0; n < st; n++)
t.dyn_dtree[n * 2] = 0;
for (n = 0; n < be; n++)
t.bl_tree[n * 2] = 0;
t.dyn_ltree[xe * 2] = 1, t.opt_len = t.static_len = 0, t.sym_next = t.matches = 0;
}, Sn = (t) => {
t.bi_valid > 8 ? mt(t, t.bi_buf) : t.bi_valid > 0 && (t.pending_buf[t.pending++] = t.bi_buf), t.bi_buf = 0, t.bi_valid = 0;
}, Ee = (t, n, e, a) => {
const r = n * 2, i = e * 2;
return t[r] < t[i] || t[r] === t[i] && a[n] <= a[e];
}, Wt = (t, n, e) => {
const a = t.heap[e];
let r = e << 1;
for (; r <= t.heap_len && (r < t.heap_len && Ee(n, t.heap[r + 1], t.heap[r], t.depth) && r++, !Ee(n, a, t.heap[r], t.depth)); )
t.heap[e] = t.heap[r], e = r, r <<= 1;
t.heap[e] = a;
}, Ie = (t, n, e) => {
let a, r, i = 0, s, o;
if (t.sym_next !== 0)
do
a = t.pending_buf[t.sym_buf + i++] & 255, a += (t.pending_buf[t.sym_buf + i++] & 255) << 8, r = t.pending_buf[t.sym_buf + i++], a === 0 ? P(t, r, n) : (s = St[r], P(t, s + Rt + 1, n), o = le[s], o !== 0 && (r -= pe[s], T(t, r, o)), a--, s = xn(a), P(t, s, e), o = Ft[s], o !== 0 && (a -= Pt[s], T(t, a, o)));
while (i < t.sym_next);
P(t, xe, n);
}, oe = (t, n) => {
const e = n.dyn_tree, a = n.stat_desc.static_tree, r = n.stat_desc.has_stree, i = n.stat_desc.elems;
let s, o, d = -1, l;
for (t.heap_len = 0, t.heap_max = hn, s = 0; s < i; s++)
e[s * 2] !== 0 ? (t.heap[++t.heap_len] = d = s, t.depth[s] = 0) : e[s * 2 + 1] = 0;
for (; t.heap_len < 2; )
l = t.heap[++t.heap_len] = d < 2 ? ++d : 0, e[l * 2] = 1, t.depth[l] = 0, t.opt_len--, r && (t.static_len -= a[l * 2 + 1]);
for (n.max_code = d, s = t.heap_len >> 1; s >= 1; s--)
Wt(t, e, s);
l = i;
do
s = t.heap[
1
/*SMALLEST*/
], t.heap[
1
/*SMALLEST*/
] = t.heap[t.heap_len--], Wt(
t,
e,
1
/*SMALLEST*/
), o = t.heap[
1
/*SMALLEST*/
], t.heap[--t.heap_max] = s, t.heap[--t.heap_max] = o, e[l * 2] = e[s * 2] + e[o * 2], t.depth[l] = (t.depth[s] >= t.depth[o] ? t.depth[s] : t.depth[o]) + 1, e[s * 2 + 1] = e[o * 2 + 1] = l, t.heap[
1
/*SMALLEST*/
] = l++, Wt(
t,
e,
1
/*SMALLEST*/
);
while (t.heap_len >= 2);
t.heap[--t.heap_max] = t.heap[
1
/*SMALLEST*/
], qn(t, n), kn(e, d, t.bl_count);
}, ye = (t, n, e) => {
let a, r = -1, i, s = n[0 * 2 + 1], o = 0, d = 7, l = 4;
for (s === 0 && (d = 138, l = 3), n[(e + 1) * 2 + 1] = 65535, a = 0; a <= e; a++)
i = s, s = n[(a + 1) * 2 + 1], !(++o < d && i === s) && (o < l ? t.bl_tree[i * 2] += o : i !== 0 ? (i !== r && t.bl_tree[i * 2]++, t.bl_tree[dn * 2]++) : o <= 10 ? t.bl_tree[cn * 2]++ : t.bl_tree[_n * 2]++, o = 0, r = i, s === 0 ? (d = 138, l = 3) : i === s ? (d = 6, l = 3) : (d = 7, l = 4));
}, ze = (t, n, e) => {
let a, r = -1, i, s = n[0 * 2 + 1], o = 0, d = 7, l = 4;
for (s === 0 && (d = 138, l = 3), a = 0; a <= e; a++)
if (i = s, s = n[(a + 1) * 2 + 1], !(++o < d && i === s)) {
if (o < l)
do
P(t, i, t.bl_tree);
while (--o !== 0);
else i !== 0 ? (i !== r && (P(t, i, t.bl_tree), o--), P(t, dn, t.bl_tree), T(t, o - 3, 2)) : o <= 10 ? (P(t, cn, t.bl_tree), T(t, o - 3, 3)) : (P(t, _n, t.bl_tree), T(t, o - 11, 7));
o = 0, r = i, s === 0 ? (d = 138, l = 3) : i === s ? (d = 6, l = 3) : (d = 7, l = 4);
}
}, ea = (t) => {
let n;
for (ye(t, t.dyn_ltree, t.l_desc.max_code), ye(t, t.dyn_dtree, t.d_desc.max_code), oe(t, t.bl_desc), n = be - 1; n >= 3 && t.bl_tree[un[n] * 2 + 1] === 0; n--)
;
return t.opt_len += 3 * (n + 1) + 5 + 5 + 4, n;
}, na = (t, n, e, a) => {
let r;
for (T(t, n - 257, 5), T(t, e - 1, 5), T(t, a - 4, 4), r = 0; r < a; r++)
T(t, t.bl_tree[un[r] * 2 + 1], 3);
ze(t, t.dyn_ltree, n - 1), ze(t, t.dyn_dtree, e - 1);
}, aa = (t) => {
let n = 4093624447, e;
for (e = 0; e <= 31; e++, n >>>= 1)
if (n & 1 && t.dyn_ltree[e * 2] !== 0)
return 0;
if (t.dyn_ltree[9 * 2] !== 0 || t.dyn_ltree[10 * 2] !== 0 || t.dyn_ltree[13 * 2] !== 0)
return 1;
for (e = 32; e < Rt; e++)
if (t.dyn_ltree[e * 2] !== 0)
return 1;
return 0;
};
let Re = !1;
const ia = (t) => {
Re || (ta(), Re = !0), t.l_desc = new Vt(t.dyn_ltree, gn), t.d_desc = new Vt(t.dyn_dtree, wn), t.bl_desc = new Vt(t.bl_tree, bn), t.bi_buf = 0, t.bi_valid = 0, vn(t);
}, mn = (t, n, e, a) => {
T(t, (Xn << 1) + (a ? 1 : 0), 3), Sn(t), mt(t, e), mt(t, ~e), e && t.pending_buf.set(t.window.subarray(n, n + e), t.pending), t.pending += e;
}, ra = (t) => {
T(t, fn << 1, 3), P(t, xe, G), Qn(t);
}, la = (t, n, e, a) => {
let r, i, s = 0;
t.level > 0 ? (t.strm.data_type === 2 && (t.strm.data_type = aa(t)), oe(t, t.l_desc), oe(t, t.d_desc), s = ea(t), r = t.opt_len + 3 + 7 >>> 3, i = t.static_len + 3 + 7 >>> 3, i <= r && (r = i)) : r = i = e + 5, e + 4 <= r && n !== -1 ? mn(t, n, e, a) : t.strategy === 4 || i === r ? (T(t, (fn << 1) + (a ? 1 : 0), 3), Ie(t, G, bt)) : (T(t, (Yn << 1) + (a ? 1 : 0), 3), na(t, t.l_desc.max_code + 1, t.d_desc.max_code + 1, s + 1), Ie(t, t.dyn_ltree, t.dyn_dtree)), vn(t), a && Sn(t);
}, oa = (t, n, e) => (t.pending_buf[t.sym_buf + t.sym_next++] = n, t.pending_buf[t.sym_buf + t.sym_next++] = n >> 8, t.pending_buf[t.sym_buf + t.sym_next++] = e, n === 0 ? t.dyn_ltree[e * 2]++ : (t.matches++, n--, t.dyn_ltree[(St[e] + Rt + 1) * 2]++, t.dyn_dtree[xn(n) * 2]++), t.sym_next === t.sym_end);
var sa = ia, fa = mn, ha = la, da = oa, ca = ra, _a = {
_tr_init: sa,
_tr_stored_block: fa,
_tr_flush_block: ha,
_tr_tally: da,
_tr_align: ca
};
const ua = (t, n, e, a) => {
let r = t & 65535 | 0, i = t >>> 16 & 65535 | 0, s = 0;
for (; e !== 0; ) {
s = e > 2e3 ? 2e3 : e, e -= s;
do
r = r + n[a++] | 0, i = i + r | 0;
while (--s);
r %= 65521, i %= 65521;
}
return r | i << 16 | 0;
};
var Et = ua;
const ga = () => {
let t, n = [];
for (var e = 0; e < 256; e++) {
t = e;
for (var a = 0; a < 8; a++)
t = t & 1 ? 3988292384 ^ t >>> 1 : t >>> 1;
n[e] = t;
}
return n;
}, wa = new Uint32Array(ga()), ba = (t, n, e, a) => {
const r = wa, i = a + e;
t ^= -1;
for (let s = a; s < i; s++)
t = t >>> 8 ^ r[(t ^ n[s]) & 255];
return t ^ -1;
};
var U = ba, et = {
2: "need dictionary",
/* Z_NEED_DICT 2 */
1: "stream end",
/* Z_STREAM_END 1 */
0: "",
/* Z_OK 0 */
"-1": "file error",
/* Z_ERRNO (-1) */
"-2": "stream error",
/* Z_STREAM_ERROR (-2) */
"-3": "data error",
/* Z_DATA_ERROR (-3) */
"-4": "insufficient memory",
/* Z_MEM_ERROR (-4) */
"-5": "buffer error",
/* Z_BUF_ERROR (-5) */
"-6": "incompatible version"
/* Z_VERSION_ERROR (-6) */
}, it = {
/* Allowed flush values; see deflate() and inflate() below for details */
Z_NO_FLUSH: 0,
Z_PARTIAL_FLUSH: 1,
Z_SYNC_FLUSH: 2,
Z_FULL_FLUSH: 3,
Z_FINISH: 4,
Z_BLOCK: 5,
Z_TREES: 6,
/* Return codes for the compression/decompression functions. Negative values
* are errors, positive values are used for special but normal events.
*/
Z_OK: 0,
Z_STREAM_END: 1,
Z_NEED_DICT: 2,
Z_ERRNO: -1,
Z_STREAM_ERROR: -2,
Z_DATA_ERROR: -3,
Z_MEM_ERROR: -4,
Z_BUF_ERROR: -5,
//Z_VERSION_ERROR: -6,
/* compression levels */
Z_NO_COMPRESSION: 0,
Z_BEST_SPEED: 1,
Z_BEST_COMPRESSION: 9,
Z_DEFAULT_COMPRESSION: -1,
Z_FILTERED: 1,
Z_HUFFMAN_ONLY: 2,
Z_RLE: 3,
Z_FIXED: 4,
Z_DEFAULT_STRATEGY: 0,
/* Possible values of the data_type field (though see inflate()) */
Z_BINARY: 0,
Z_TEXT: 1,
//Z_ASCII: 1, // = Z_TEXT (deprecated)
Z_UNKNOWN: 2,
/* The deflate compression method */
Z_DEFLATED: 8
//Z_NULL: null // Use -1 or null inline, depending on var type
};
const { _tr_init: xa, _tr_stored_block: se, _tr_flush_block: pa, _tr_tally: V, _tr_align: ka } = _a, {
Z_NO_FLUSH: W,
Z_PARTIAL_FLUSH: va,
Z_FULL_FLUSH: Sa,
Z_FINISH: H,
Z_BLOCK: Ze,
Z_OK: N,
Z_STREAM_END: Oe,
Z_STREAM_ERROR: L,
Z_DATA_ERROR: ma,
Z_BUF_ERROR: Kt,
Z_DEFAULT_COMPRESSION: Ea,
Z_FILTERED: Ia,
Z_HUFFMAN_ONLY: Tt,
Z_RLE: ya,
Z_FIXED: za,
Z_DEFAULT_STRATEGY: Ra,
Z_UNKNOWN: Za,
Z_DEFLATED: At
} = it, Oa = 9, Ua = 15, Na = 8, Da = 29, Ta = 256, fe = Ta + 1 + Da, $a = 30, Ba = 19, Ha = 2 * fe + 1, Ca = 15, S = 3, j = 258, M = j + S + 1, Fa = 32, ft = 42, ke = 57, he = 69, de = 73, ce = 91, _e = 103, q = 113, gt = 666, D = 1, ct = 2, nt = 3, _t = 4, Pa = 3, tt = (t, n) => (t.msg = et[n], n), Ue = (t) => t * 2 - (t > 4 ? 9 : 0), Y = (t) => {
let n = t.length;
for (; --n >= 0; )
t[n] = 0;
}, La = (t) => {
let n, e, a, r = t.w_size;
n = t.hash_size, a = n;
do
e = t.head[--a], t.head[a] = e >= r ? e - r : 0;
while (--n);
n = r, a = n;
do
e = t.prev[--a], t.prev[a] = e >= r ? e - r : 0;
while (--n);
};
let Ma = (t, n, e) => (n << t.hash_shift ^ e) & t.hash_mask, K = Ma;
const $ = (t) => {
const n = t.state;
let e = n.pending;
e > t.avail_out && (e = t.avail_out), e !== 0 && (t.output.set(n.pending_buf.subarray(n.pending_out, n.pending_out + e), t.next_out), t.next_out += e, n.pending_out += e, t.total_out += e, t.avail_out -= e, n.pending -= e, n.pending === 0 && (n.pending_out = 0));
}, B = (t, n) => {
pa(t, t.block_start >= 0 ? t.block_start : -1, t.strstart - t.block_start, n), t.block_start = t.strstart, $(t.strm);
}, I = (t, n) => {
t.pending_buf[t.pending++] = n;
}, ut = (t, n) => {
t.pending_buf[t.pending++] = n >>> 8 & 255, t.pending_buf[t.pending++] = n & 255;
}, ue = (t, n, e, a) => {
let r = t.avail_in;
return r > a && (r = a), r === 0 ? 0 : (t.avail_in -= r, n.set(t.input.subarray(t.next_in, t.next_in + r), e), t.state.wrap === 1 ? t.adler = Et(t.adler, n, r, e) : t.state.wrap === 2 && (t.adler = U(t.adler, n, r, e)), t.next_in += r, t.total_in += r, r);
}, En = (t, n) => {
let e = t.max_chain_length, a = t.strstart, r, i, s = t.prev_length, o = t.nice_match;
const d = t.strstart > t.w_size - M ? t.strstart - (t.w_size - M) : 0, l = t.window, f = t.w_mask, g = t.prev, c = t.strstart + j;
let h = l[a + s - 1], u = l[a + s];
t.prev_length >= t.good_match && (e >>= 2), o > t.lookahead && (o = t.lookahead);
do
if (r = n, !(l[r + s] !== u || l[r + s - 1] !== h || l[r] !== l[a] || l[++r] !== l[a + 1])) {
a += 2, r++;
do
;
while (l[++a] === l[++r] && l[++a] === l[++r] && l[++a] === l[++r] && l[++a] === l[++r] && l[++a] === l[++r] && l[++a] === l[++r] && l[++a] === l[++r] && l[++a] === l[++r] && a < c);
if (i = j - (c - a), a = c - j, i > s) {
if (t.match_start = n, s = i, i >= o)
break;
h = l[a + s - 1], u = l[a + s];
}
}
while ((n = g[n & f]) > d && --e !== 0);
return s <= t.lookahead ? s : t.lookahead;
}, ht = (t) => {
const n = t.w_size;
let e, a, r;
do {
if (a = t.window_size - t.lookahead - t.strstart, t.strstart >= n + (n - M) && (t.window.set(t.window.subarray(n, n + n - a), 0), t.match_start -= n, t.strstart -= n, t.block_start -= n, t.insert > t.strstart && (t.insert = t.strstart), La(t), a += n), t.strm.avail_in === 0)
break;
if (e = ue(t.strm, t.window, t.strstart + t.lookahead, a), t.lookahead += e, t.lookahead + t.insert >= S)
for (r = t.strstart - t.insert, t.ins_h = t.window[r], t.ins_h = K(t, t.ins_h, t.window[r + 1]); t.insert && (t.ins_h = K(t, t.ins_h, t.window[r + S - 1]), t.prev[r & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = r, r++, t.insert--, !(t.lookahead + t.insert < S)); )
;
} while (t.lookahead < M && t.strm.avail_in !== 0);
}, In = (t, n) => {
let e = t.pending_buf_size - 5 > t.w_size ? t.w_size : t.pending_buf_size - 5, a, r, i, s = 0, o = t.strm.avail_in;
do {
if (a = 65535, i = t.bi_valid + 42 >> 3, t.strm.avail_out < i || (i = t.strm.avail_out - i, r = t.strstart - t.block_start, a > r + t.strm.avail_in && (a = r + t.strm.avail_in), a > i && (a = i), a < e && (a === 0 && n !== H || n === W || a !== r + t.strm.avail_in)))
break;
s = n === H && a === r + t.strm.avail_in ? 1 : 0, se(t, 0, 0, s), t.pending_buf[t.pending - 4] = a, t.pending_buf[t.pending - 3] = a >> 8, t.pending_buf[t.pending - 2] = ~a, t.pending_buf[t.pending - 1] = ~a >> 8, $(t.strm), r && (r > a && (r = a), t.strm.output.set(t.window.subarray(t.block_start, t.block_start + r), t.strm.next_out), t.strm.next_out += r, t.strm.avail_out -= r, t.strm.total_out += r, t.block_start += r, a -= r), a && (ue(t.strm, t.strm.output, t.strm.next_out, a), t.strm.next_out += a, t.strm.avail_out -= a, t.strm.total_out += a);
} while (s === 0);
return o -= t.strm.avail_in, o && (o >= t.w_size ? (t.matches = 2, t.window.set(t.strm.input.subarray(t.strm.next_in - t.w_size, t.strm.next_in), 0), t.strstart = t.w_size, t.insert = t.strstart) : (t.window_size - t.strstart <= o && (t.strstart -= t.w_size, t.window.set(t.window.subarray(t.w_size, t.w_size + t.strstart), 0), t.matches < 2 && t.matches++, t.insert > t.strstart && (t.insert = t.strstart)), t.window.set(t.strm.input.subarray(t.strm.next_in - o, t.strm.next_in), t.strstart), t.strstart += o, t.insert += o > t.w_size - t.insert ? t.w_size - t.insert : o), t.block_start = t.strstart), t.high_water < t.strstart && (t.high_water = t.strstart), s ? _t : n !== W && n !== H && t.strm.avail_in === 0 && t.strstart === t.block_start ? ct : (i = t.window_size - t.strstart, t.strm.avail_in > i && t.block_start >= t.w_size && (t.block_start -= t.w_size, t.strstart -= t.w_size, t.window.set(t.window.subarray(t.w_size, t.w_size + t.strstart), 0), t.matches < 2 && t.matches++, i += t.w_size, t.insert > t.strstart && (t.insert = t.strstart)), i > t.strm.avail_in && (i = t.strm.avail_in), i && (ue(t.strm, t.window, t.strstart, i), t.strstart += i, t.insert += i > t.w_size - t.insert ? t.w_size - t.insert : i), t.high_water < t.strstart && (t.high_water = t.strstart), i = t.bi_valid + 42 >> 3, i = t.pending_buf_size - i > 65535 ? 65535 : t.pending_buf_size - i, e = i > t.w_size ? t.w_size : i, r = t.strstart - t.block_start, (r >= e || (r || n === H) && n !== W && t.strm.avail_in === 0 && r <= i) && (a = r > i ? i : r, s = n === H && t.strm.avail_in === 0 && a === r ? 1 : 0, se(t, t.block_start, a, s), t.block_start += a, $(t.strm)), s ? nt : D);
}, Jt = (t, n) => {
let e, a;
for (; ; ) {
if (t.lookahead < M) {
if (ht(t), t.lookahead < M && n === W)
return D;
if (t.lookahead === 0)
break;
}
if (e = 0, t.lookahead >= S && (t.ins_h = K(t, t.ins_h, t.window[t.strstart + S - 1]), e = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = t.strstart), e !== 0 && t.strstart - e <= t.w_size - M && (t.match_length = En(t, e)), t.match_length >= S)
if (a = V(t, t.strstart - t.match_start, t.match_length - S), t.lookahead -= t.match_length, t.match_length <= t.max_lazy_match && t.lookahead >= S) {
t.match_length--;
do
t.strstart++, t.ins_h = K(t, t.ins_h, t.window[t.strstart + S - 1]), e = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = t.strstart;
while (--t.match_length !== 0);
t.strstart++;
} else
t.strstart += t.match_length, t.match_length = 0, t.ins_h = t.window[t.strstart], t.ins_h = K(t, t.ins_h, t.window[t.strstart + 1]);
else
a = V(t, 0, t.window[t.strstart]), t.lookahead--, t.strstart++;
if (a && (B(t, !1), t.strm.avail_out === 0))
return D;
}
return t.insert = t.strstart < S - 1 ? t.strstart : S - 1, n === H ? (B(t, !0), t.strm.avail_out === 0 ? nt : _t) : t.sym_next && (B(t, !1), t.strm.avail_out === 0) ? D : ct;
}, lt = (t, n) => {
let e, a, r;
for (; ; ) {
if (t.lookahead < M) {
if (ht(t), t.lookahead < M && n === W)
return D;
if (t.lookahead === 0)
break;
}
if (e = 0, t.lookahead >= S && (t.ins_h = K(t, t.ins_h, t.window[t.strstart + S - 1]), e = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = t.strstart), t.prev_length = t.match_length, t.prev_match = t.match_start, t.match_length = S - 1, e !== 0 && t.prev_length < t.max_lazy_match && t.strstart - e <= t.w_size - M && (t.match_length = En(t, e), t.match_length <= 5 && (t.strategy === Ia || t.match_length === S && t.strstart - t.match_start > 4096) && (t.match_length = S - 1)), t.prev_length >= S && t.match_length <= t.prev_length) {
r = t.strstart + t.lookahead - S, a = V(t, t.strstart - 1 - t.prev_match, t.prev_length - S), t.lookahead -= t.prev_length - 1, t.prev_length -= 2;
do
++t.strstart <= r && (t.ins_h = K(t, t.ins_h, t.window[t.strstart + S - 1]), e = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = t.strstart);
while (--t.prev_length !== 0);
if (t.match_available = 0, t.match_length = S - 1, t.strstart++, a && (B(t, !1), t.strm.avail_out === 0))
return D;
} else if (t.match_available) {
if (a = V(t, 0, t.window[t.strstart - 1]), a && B(t, !1), t.strstart++, t.lookahead--, t.strm.avail_out === 0)
return D;
} else
t.match_available = 1, t.strstart++, t.lookahead--;
}
return t.match_available && (a = V(t, 0, t.window[t.strstart - 1]), t.match_available = 0), t.insert = t.strstart < S - 1 ? t.strstart : S - 1, n === H ? (B(t, !0), t.strm.avail_out === 0 ? nt : _t) : t.sym_next && (B(t, !1), t.strm.avail_out === 0) ? D : ct;
}, Aa = (t, n) => {
let e, a, r, i;
const s = t.window;
for (; ; ) {
if (t.lookahead <= j) {
if (ht(t), t.lookahead <= j && n === W)
return D;
if (t.lookahead === 0)
break;
}
if (t.match_length = 0, t.lookahead >= S && t.strstart > 0 && (r = t.strstart - 1, a = s[r], a === s[++r] && a === s[++r] && a === s[++r])) {
i = t.strstart + j;
do
;
while (a === s[++r] && a === s[++r] && a === s[++r] && a === s[++r] && a === s[++r] && a === s[++r] && a === s[++r] && a === s[++r] && r < i);
t.match_length = j - (i - r), t.match_length > t.lookahead && (t.match_length = t.lookahead);
}
if (t.match_length >= S ? (e = V(t, 1, t.match_length - S), t.lookahead -= t.match_length, t.strstart += t.match_length, t.match_length = 0) : (e = V(t, 0, t.window[t.strstart]), t.lookahead--, t.strstart++), e && (B(t, !1), t.strm.avail_out === 0))
return D;
}
return t.insert = 0, n === H ? (B(t, !0), t.strm.avail_out === 0 ? nt : _t) : t.sym_next && (B(t, !1), t.strm.avail_out === 0) ? D : ct;
}, Ga = (t, n) => {
let e;
for (; ; ) {
if (t.lookahead === 0 && (ht(t), t.lookahead === 0)) {
if (n === W)
return D;
break;
}
if (t.match_length = 0, e = V(t, 0, t.window[t.strstart]), t.lookahead--, t.strstart++, e && (B(t, !1), t.strm.avail_out === 0))
return D;
}
return t.insert = 0, n === H ? (B(t, !0), t.strm.avail_out === 0 ? nt : _t) : t.sym_next && (B(t, !1), t.strm.avail_out === 0) ? D : ct;
};
function F(t, n, e, a, r) {
this.good_length = t, this.max_lazy = n, this.nice_length = e, this.max_chain = a, this.func = r;
}
const wt = [
/* good lazy nice chain */
new F(0, 0, 0, 0, In),
/* 0 store only */
new F(4, 4, 8, 4, Jt),
/* 1 max speed, no lazy matches */
new F(4, 5, 16, 8, Jt),
/* 2 */
new F(4, 6, 32, 32, Jt),
/* 3 */
new F(4, 4, 16, 16, lt),
/* 4 lazy matches */
new F(8, 16, 32, 32, lt),
/* 5 */
new F(8, 16, 128, 128, lt),
/* 6 */
new F(8, 32, 128, 256, lt),
/* 7 */
new F(32, 128, 258, 1024, lt),
/* 8 */
new F(32, 258, 258, 4096, lt)
/* 9 max compression */
], Xa = (t) => {
t.window_size = 2 * t.w_size, Y(t.head), t.max_lazy_match = wt[t.level].max_lazy, t.good_match = wt[t.level].good_length, t.nice_match = wt[t.level].nice_length, t.max_chain_length = wt[t.level].max_chain, t.strstart = 0, t.block_start = 0, t.lookahead = 0, t.insert = 0, t.match_length = t.prev_length = S - 1, t.match_available = 0, t.ins_h = 0;
};
function Ya() {
this.strm = null, this.status = 0, this.pending_buf = null, this.pending_buf_size = 0, this.pending_out = 0, this.pending = 0, this.wrap = 0, this.gzhead = null, this.gzindex = 0, this.method = At, this.last_flush = -1, this.w_size = 0, this.w_bits = 0, this.w_mask = 0, this.window = null, this.window_size = 0, this.prev = null, this.head = null, this.ins_h = 0, this.hash_size = 0, this.hash_bits = 0, this.hash_mask = 0, this.hash_shift = 0, this.block_start = 0, this.match_length = 0, this.prev_match = 0, this.match_available = 0, this.strstart = 0, this.match_start = 0, this.lookahead = 0, this.prev_length = 0, this.max_chain_length = 0, this.max_lazy_match = 0, this.level = 0, this.strategy = 0, this.good_match = 0, this.nice_match = 0, this.dyn_ltree = new Uint16Array(Ha * 2), this.dyn_dtree = new Uint16Array((2 * $a + 1) * 2), this.bl_tree = new Uint16Array((2 * Ba + 1) * 2), Y(this.dyn_ltree), Y(this.dyn_dtree), Y(this.bl_tree), this.l_desc = null, this.d_desc = null, this.bl_desc = null, this.bl_count = new Uint16Array(Ca + 1), this.heap = new Uint16Array(2 * fe + 1), Y(this.heap), this.heap_len = 0, this.heap_max = 0, this.depth = new Uint16Array(2 * fe + 1), Y(this.depth), this.sym_buf = 0, this.lit_bufsize = 0, this.sym_next = 0, this.sym_end = 0, this.opt_len = 0, this.static_len = 0, this.matches = 0, this.insert = 0, this.bi_buf = 0, this.bi_valid = 0;
}
const Zt = (t) => {
if (!t)
return 1;
const n = t.state;
return !n || n.strm !== t || n.status !== ft && //#ifdef GZIP
n.status !== ke && //#endif
n.status !== he && n.status !== de && n.status !== ce && n.status !== _e && n.status !== q && n.status !== gt ? 1 : 0;
}, yn = (t) => {
if (Zt(t))
return tt(t, L);
t.total_in = t.total_out = 0, t.data_type = Za;
const n = t.state;
return n.pending = 0, n.pending_out = 0, n.wrap < 0 && (n.wrap = -n.wrap), n.status = //#ifdef GZIP
n.wrap === 2 ? ke : (
//#endif
n.wrap ? ft : q
), t.adler = n.wrap === 2 ? 0 : 1, n.last_flush = -2, xa(n), N;
}, zn = (t) => {
const n = yn(t);
return n === N && Xa(t.state), n;
}, ja = (t, n) => Zt(t) || t.state.wrap !== 2 ? L : (t.state.gzhead = n, N), Rn = (t, n, e, a, r, i) => {
if (!t)
return L;
let s = 1;
if (n === Ea && (n = 6), a < 0 ? (s = 0, a = -a) : a > 15 && (s = 2, a -= 16), r < 1 || r > Oa || e !== At || a < 8 || a > 15 || n < 0 || n > 9 || i < 0 || i > za || a === 8 && s !== 1)
return tt(t, L);
a === 8 && (a = 9);
const o = new Ya();
return t.state = o, o.strm = t, o.status = ft, o.wrap = s, o.gzhead = null, o.w_bits = a, o.w_size = 1 << o.w_bits, o.w_mask = o.w_size - 1, o.hash_bits = r + 7, o.hash_size = 1 << o.hash_bits, o.hash_mask = o.hash_size - 1, o.hash_shift = ~~((o.hash_bits + S - 1) / S), o.window = new Uint8Array(o.w_size * 2), o.head = new Uint16Array(o.hash_size), o.prev = new Uint16Array(o.w_size), o.lit_bufsize = 1 << r + 6, o.pending_buf_size = o.lit_bufsize * 4, o.pending_buf = new Uint8Array(o.pending_buf_size), o.sym_buf = o.lit_bufsize, o.sym_end = (o.lit_bufsize - 1) * 3, o.level = n, o.strategy = i, o.method = e, zn(t);
}, Va = (t, n) => Rn(t, n, At, Ua, Na, Ra), Wa = (t, n) => {
if (Zt(t) || n > Ze || n < 0)
return t ? tt(t, L) : L;
const e = t.state;
if (!t.output || t.avail_in !== 0 && !t.input || e.status === gt && n !== H)
return tt(t, t.avail_out === 0 ? Kt : L);
const a = e.last_flush;
if (e.last_flush = n, e.pending !== 0) {
if ($(t), t.avail_out === 0)
return e.last_flush = -1, N;
} else if (t.avail_in === 0 && Ue(n) <= Ue(a) && n !== H)
return tt(t, Kt);
if (e.status === gt && t.avail_in !== 0)
return tt(t, Kt);
if (e.status === ft && e.wrap === 0 && (e.status = q), e.status === ft) {
let r = At + (e.w_bits - 8 << 4) << 8, i = -1;
if (e.strategy >= Tt || e.level < 2 ? i = 0 : e.level < 6 ? i = 1 : e.level === 6 ? i = 2 : i = 3, r |= i << 6, e.strstart !== 0 && (r |= Fa), r += 31 - r % 31, ut(e, r), e.strstart !== 0 && (ut(e, t.adler >>> 16), ut(e, t.adler & 65535)), t.adler = 1, e.status = q, $(t), e.pending !== 0)
return e.last_flush = -1, N;
}
if (e.status === ke) {
if (t.adler = 0, I(e, 31), I(e, 139), I(e, 8), e.gzhead)
I(
e,
(e.gzhead.text ? 1 : 0) + (e.gzhead.hcrc ? 2 : 0) + (e.gzhead.extra ? 4 : 0) + (e.gzhead.name ? 8 : 0) + (e.gzhead.comment ? 16 : 0)
), I(e, e.gzhead.time & 255), I(e, e.gzhead.time >> 8 & 255), I(e, e.gzhead.time >> 16 & 255), I(e, e.gzhead.time >> 24 & 255), I(e, e.level === 9 ? 2 : e.strategy >= Tt || e.level < 2 ? 4 : 0), I(e, e.gzhead.os & 255), e.gzhead.extra && e.gzhead.extra.length && (I(e, e.gzhead.extra.length & 255), I(e, e.gzhead.extra.length >> 8 & 255)), e.gzhead.hcrc && (t.adler = U(t.adler, e.pending_buf, e.pending, 0)), e.gzindex = 0, e.status = he;
else if (I(e, 0), I(e, 0), I(e, 0), I(e, 0), I(e, 0), I(e, e.level === 9 ? 2 : e.strategy >= Tt || e.level < 2 ? 4 : 0), I(e, Pa), e.status = q, $(t), e.pending !== 0)
return e.last_flush = -1, N;
}
if (e.status === he) {
if (e.gzhead.extra) {
let r = e.pending, i = (e.gzhead.extra.length & 65535) - e.gzindex;
for (; e.pending + i > e.pending_buf_size; ) {
let o = e.pending_buf_size - e.pending;
if (e.pending_buf.set(e.gzhead.extra.subarray(e.gzindex, e.gzindex + o), e.pending), e.pending = e.pending_buf_size, e.gzhead.hcrc && e.pending > r && (t.adler = U(t.adler, e.pending_buf, e.pending - r, r)), e.gzindex += o, $(t), e.pending !== 0)
return e.last_flush = -1, N;
r = 0, i -= o;
}
let s = new Uint8Array(e.gzhead.extra);
e.pending_buf.set(s.subarray(e.gzindex, e.gzindex + i), e.pending), e.pending += i, e.gzhead.hcrc && e.pending > r && (t.adler = U(t.adler, e.pending_buf, e.pending - r, r)), e.gzindex = 0;
}
e.status = de;
}
if (e.status === de) {
if (e.gzhead.name) {
let r = e.pending, i;
do {
if (e.pending === e.pending_buf_size) {
if (e.gzhead.hcrc && e.pending > r && (t.adler = U(t.adler, e.pending_buf, e.pending - r, r)), $(t), e.pending !== 0)
return e.last_flush = -1, N;
r = 0;
}
e.gzindex < e.gzhead.name.length ? i = e.gzhead.name.charCodeAt(e.gzindex++) & 255 : i = 0, I(e, i);
} while (i !== 0);
e.gzhead.hcrc && e.pending > r && (t.adler = U(t.adler, e.pending_buf, e.pending - r, r)), e.gzindex = 0;
}
e.status = ce;
}
if (e.status === ce) {
if (e.gzhead.comment) {
let r = e.pending, i;
do {
if (e.pending === e.pending_buf_size) {
if (e.gzhead.hcrc && e.pending > r && (t.adler = U(t.adler, e.pending_buf, e.pending - r, r)), $(t), e.pending !== 0)
return e.last_flush = -1, N;
r = 0;
}
e.gzindex < e.gzhead.comment.length ? i = e.gzhead.comment.charCodeAt(e.gzindex++) & 255 : i = 0, I(e, i);
} while (i !== 0);
e.gzhead.hcrc && e.pending > r && (t.adler = U(t.adler, e.pending_buf, e.pending - r, r));
}
e.status = _e;
}
if (e.status === _e) {
if (e.gzhead.hcrc) {
if (e.pending + 2 > e.pending_buf_size && ($(t), e.pending !== 0))
return e.last_flush = -1, N;
I(e, t.adler & 255), I(e, t.adler >> 8 & 255), t.adler = 0;
}
if (e.status = q, $(t), e.pending !== 0)
return e.last_flush = -1, N;
}
if (t.avail_in !== 0 || e.lookahead !== 0 || n !== W && e.status !== gt) {
let r = e.level === 0 ? In(e, n) : e.strategy === Tt ? Ga(e, n) : e.strategy === ya ? Aa(e, n) : wt[e.level].func(e, n);
if ((r === nt || r === _t) && (e.status = gt), r === D || r === nt)
return t.avail_out === 0 && (e.last_flush = -1), N;
if (r === ct && (n === va ? ka(e) : n !== Ze && (se(e, 0, 0, !1), n === Sa && (Y(e.head), e.lookahead === 0 && (e.strstart = 0, e.block_start = 0, e.insert = 0))), $(t), t.avail_out === 0))
return e.last_flush = -1, N;
}
return n !== H ? N : e.wrap <= 0 ? Oe : (e.wrap === 2 ? (I(e, t.adler & 255), I(e, t.adler >> 8 & 255), I(e, t.adler >> 16 & 255), I(e, t.adler >> 24 & 255), I(e, t.total_in & 255), I(e, t.total_in >> 8 & 255), I(e, t.total_in >> 16 & 255), I(e, t.total_in >> 24 & 255)) : (ut(e, t.adler >>> 16), ut(e, t.adler & 65535)), $(t), e.wrap > 0 && (e.wrap = -e.wrap), e.pending !== 0 ? N : Oe);
}, Ka = (t) => {
if (Zt(t))
return L;
const n = t.state.status;
return t.state = null, n === q ? tt(t, ma) : N;
}, Ja = (t, n) => {
let e = n.length;
if (Zt(t))
return L;
const a = t.state, r = a.wrap;
if (r === 2 || r === 1 && a.status !== ft || a.lookahead)
return L;
if (r === 1 && (t.adler = Et(t.adler, n, e, 0)), a.wrap = 0, e >= a.w_size) {
r === 0 && (Y(a.head), a.strstart = 0, a.block_start = 0, a.insert = 0);
let d = new Uint8Array(a.w_size);
d.set(n.subarray(e - a.w_size, e), 0), n = d, e = a.w_size;
}
const i = t.avail_in, s = t.next_in, o = t.input;
for (t.avail_in = e, t.next_in = 0, t.input = n, ht(a); a.lookahead >= S; ) {
let d = a.strstart, l = a.lookahead - (S - 1);
do
a.ins_h = K(a, a.ins_h, a.window[d + S - 1]), a.prev[d & a.w_mask] = a.head[a.ins_h], a.head[a.ins_h] = d, d++;
while (--l);
a.strstart = d, a.lookahead = S - 1, ht(a);
}
return a.strstart += a.lookahead, a.block_start = a.strstart, a.insert = a.lookahead, a.lookahead = 0, a.match_length = a.prev_length = S - 1, a.match_available = 0, t.next_in = s, t.input = o, t.avail_in = i, a.wrap = r, N;
};
var Qa = Va, qa = Rn, ti = zn, ei = yn, ni = ja, ai = Wa, ii = Ka, ri = Ja, li = "pako deflate (from Nodeca project)", xt = {
deflateInit: Qa,
deflateInit2: qa,
deflateReset: ti,
deflateResetKeep: ei,
deflateSetHeader: ni,
deflate: ai,
deflateEnd: ii,
deflateSetDictionary: ri,
deflateInfo: li
};
const oi = (t, n) => Object.prototype.hasOwnProperty.call(t, n);
var si = function(t) {
const n = Array.prototype.slice.call(arguments, 1);
for (; n.length; ) {
const e = n.shift();
if (e) {
if (typeof e != "object")
throw new TypeError(e + "must be non-object");
for (const a in e)
oi(e, a) && (t[a] = e[a]);
}
}
return t;
}, fi = (t) => {
let n = 0;
for (let a = 0, r = t.length; a < r; a++)
n += t[a].length;
const e = new Uint8Array(n);
for (let a = 0, r = 0, i = t.length; a < i; a++) {
let s = t[a];
e.set(s, r), r += s.length;
}
return e;
}, Gt = {
assign: si,
flattenChunks: fi
};
let Zn = !0;
try {
String.fromCharCode.apply(null, new Uint8Array(1));
} catch {
Zn = !1;
}
const It = new Uint8Array(256);
for (let t = 0; t < 256; t++)
It[t] = t >= 252 ? 6 : t >= 248 ? 5 : t >= 240 ? 4 : t >= 224 ? 3 : t >= 192 ? 2 : 1;
It[254] = It[254] = 1;
var hi = (t) => {
if (typeof TextEncoder == "function" && TextEncoder.prototype.encode)
return new TextEncoder().encode(t);
let n, e, a, r, i, s = t.length, o = 0;
for (r = 0; r < s; r++)
e = t.charCodeAt(r), (e & 64512) === 55296 && r + 1 < s && (a = t.charCodeAt(r + 1), (a & 64512) === 56320 && (e = 65536 + (e - 55296 << 10) + (a - 56320), r++)), o += e < 128 ? 1 : e < 2048 ? 2 : e < 65536 ? 3 : 4;
for (n = new Uint8Array(o), i = 0, r = 0; i < o; r++)
e = t.charCodeAt(r), (e & 64512) === 55296 && r + 1 < s && (a = t.charCodeAt(r + 1), (a & 64512) === 56320 && (e = 65536 + (e - 55296 << 10) + (a - 56320), r++)), e < 128 ? n[i++] = e : e < 2048 ? (n[i++] = 192 | e >>> 6, n[i++] = 128 | e & 63) : e < 65536 ? (n[i++] = 224 | e >>> 12, n[i++] = 128 | e >>> 6 & 63, n[i++] = 128 | e & 63) : (n[i++] = 240 | e >>> 18, n[i++] = 128 | e >>> 12 & 63, n[i++] = 128 | e >>> 6 & 63, n[i++] = 128 | e & 63);
return n;
};
const di = (t, n) => {
if (n < 65534 && t.subarray && Zn)
return String.fromCharCode.apply(null, t.length === n ? t : t.subarray(0, n));
let e = "";
for (let a = 0; a < n; a++)
e += String.fromCharCode(t[a]);
return e;
};
var ci = (t, n) => {
const e = n || t.length;
if (typeof TextDecoder == "function" && TextDecoder.prototype.decode)
return new TextDecoder().decode(t.subarray(0, n));
let a, r;
const i = new Array(e * 2);
for (r = 0, a = 0; a < e; ) {
let s = t[a++];
if (s < 128) {
i[r++] = s;
continue;
}
let o = It[s];
if (o > 4) {
i[r++] = 65533, a += o - 1;
continue;
}
for (s &= o === 2 ? 31 : o === 3 ? 15 : 7; o > 1 && a < e; )
s = s << 6 | t[a++] & 63, o--;
if (o > 1) {
i[r++] = 65533;
continue;
}
s < 65536 ? i[r++] = s : (s -= 65536, i[r++] = 55296 | s >> 10 & 1023, i[r++] = 56320 | s & 1023);
}
return di(i, r);
}, _i = (t, n) => {
n = n || t.length, n > t.length && (n = t.length);
let e = n - 1;
for (; e >= 0 && (t[e] & 192) === 128; )
e--;
return e < 0 || e === 0 ? n : e + It[t[e]] > n ? e : n;
}, yt = {
string2buf: hi,
buf2string: ci,
utf8border: _i
};
function ui() {
this.input = null, this.next_in = 0, this.avail_in = 0, this.total_in = 0, this.output = null, this.next_out = 0, this.avail_out = 0, this.total_out = 0, this.msg = "", this.state = null, this.data_type = 2, this.adler = 0;
}
var On = ui;
const Un = Object.prototype.toString, {
Z_NO_FLUSH: gi,
Z_SYNC_FLUSH: wi,
Z_FULL_FLUSH: bi,
Z_FINISH: xi,
Z_OK: Lt,
Z_STREAM_END: pi,
Z_DEFAULT_COMPRESSION: ki,
Z_DEFAULT_STRATEGY: vi,
Z_DEFLATED: Si
} = it;
function Ot(t) {
this.options = Gt.assign({
level: ki,
method: Si,
chunkSize: 16384,
windowBits: 15,
memLevel: 8,
strategy: vi
}, t || {});
let n = this.options;
n.raw && n.windowBits > 0 ? n.windowBits = -n.windowBits : n.gzip && n.windowBits > 0 && n.windowBits < 16 && (n.windowBits += 16), this.err = 0, this.msg = "", this.ended = !1, this.chunks = [], this.strm = new On(), this.strm.avail_out = 0;
let e = xt.deflateInit2(
this.strm,
n.level,
n.method,
n.windowBits,
n.memLevel,
n.strategy
);
if (e !== Lt)
throw new Error(et[e]);
if (n.header && xt.deflateSetHeader(this.strm, n.header), n.dictionary) {
let a;
if (typeof n.dictionary == "string" ? a = yt.string2buf(n.dictionary) : Un.call(n.dictionary) === "[object ArrayBuffer]" ? a = new Uint8Array(n.dictionary) : a = n.dictionary, e = xt.deflateSetDictionary(this.strm, a), e !== Lt)
throw new Error(et[e]);
this._dict_set = !0;
}
}
Ot.prototype.push = function(t, n) {
const e = this.strm, a = this.options.chunkSize;
let r, i;
if (this.ended)
return !1;
for (n === ~~n ? i = n : i = n === !0 ? xi : gi, typeof t == "string" ? e.input = yt.string2buf(t) : Un.call(t) === "[object ArrayBuffer]" ? e.input = new Uint8Array(t) : e.input = t, e.next_in = 0, e.avail_in = e.input.length; ; ) {
if (e.avail_out === 0 && (e.output = new Uint8Array(a), e.next_out = 0, e.avail_out = a), (i === wi || i === bi) && e.avail_out <= 6) {
this.onData(e.output.subarray(0, e.next_out)), e.avail_out = 0;
continue;
}
if (r = xt.deflate(e, i), r === pi)
return e.next_out > 0 && this.onData(e.output.subarray(0, e.next_out)), r = xt.deflateEnd(this.strm), this.onEnd(r), this.ended = !0, r === Lt;
if (e.avail_out === 0) {
this.onData(e.output);
continue;
}
if (i > 0 && e.next_out > 0) {
this.onData(e.output.subarray(0, e.next_out)), e.avail_out = 0;
continue;
}
if (e.avail_in === 0) break;
}
return !0;
};
Ot.prototype.onData = function(t) {
this.chunks.push(t);
};
Ot.prototype.onEnd = function(t) {
t === Lt && (this.result = Gt.flattenChunks(this.chunks)), this.chunks = [], this.err = t, this.msg = this.strm.msg;
};
function ve(t, n) {
const e = new Ot(n);
if (e.push(t, !0), e.err)
throw e.msg || et[e.err];
return e.result;
}
function mi(t, n) {
return n = n || {}, n.raw = !0, ve(t, n);
}
function Ei(t, n) {
return n = n || {}, n.gzip = !0, ve(t, n);
}
var Ii = Ot, yi = ve, zi = mi, Ri = Ei, Zi = it, Oi = {
Deflate: Ii,
deflate: yi,
deflateRaw: zi,
gzip: Ri,
constants: Zi
};
const $t = 16209, Ui = 16191;
var Ni = function(n, e) {
let a, r, i, s, o, d, l, f, g, c, h, u, z, p, x, y, k, _, E, O, w, R, m, b;
const v = n.state;
a = n.next_in, m = n.input, r = a + (n.avail_in - 5), i = n.next_out, b = n.output, s = i - (e - n.avail_out), o = i + (n.avail_out - 257), d = v.dmax, l = v.wsize, f = v.whave, g = v.wnext, c = v.window, h = v.hold, u = v.bits, z = v.lencode, p = v.distcode, x = (1 << v.lenbits) - 1, y = (1 << v.distbits) - 1;
t:
do {
u < 15 && (h += m[a++] << u, u += 8, h += m[a++] << u, u += 8), k = z[h & x];
e:
for (; ; ) {
if (_ = k >>> 24, h >>>= _, u -= _, _ = k >>> 16 & 255, _ === 0)
b[i++] = k & 65535;
else if (_ & 16) {
E = k & 65535, _ &= 15, _ && (u < _ && (h += m[a++] << u, u += 8), E += h & (1 << _) - 1, h >>>= _, u -= _), u < 15 && (h += m[a++] << u, u += 8, h += m[a++] << u, u += 8), k = p[h & y];
n:
for (; ; ) {
if (_ = k >>> 24, h >>>= _, u -= _, _ = k >>> 16 & 255, _ & 16) {
if (O = k & 65535, _ &= 15, u < _ && (h += m[a++] << u, u += 8, u < _ && (h += m[a++] << u, u += 8)), O += h & (1 << _) - 1, O > d) {
n.msg = "invalid distance too far back", v.mode = $t;
break t;
}
if (h >>>= _, u -= _, _ = i - s, O > _) {
if (_ = O - _, _ > f && v.sane) {
n.msg = "invalid distance too far back", v.mode = $t;
break t;
}
if (w = 0, R = c, g === 0) {
if (w += l - _, _ < E) {
E -= _;
do
b[i++] = c[w++];
while (--_);
w = i - O, R = b;
}
} else if (g < _) {
if (w += l + g - _, _ -= g, _ < E) {
E -= _;
do
b[i++] = c[w++];
while (--_);
if (w = 0, g < E) {
_ = g, E -= _;
do
b[i++] = c[w++];
while (--_);
w = i - O, R = b;
}
}
} else if (w += g - _, _ < E) {
E -= _;
do
b[i++] = c[w++];
while (--_);
w = i - O, R = b;
}
for (; E > 2; )
b[i++] = R[w++], b[i++] = R[w++], b[i++] = R[w++], E -= 3;
E && (b[i++] = R[w++], E > 1 && (b[i++] = R[w++]));
} else {
w = i - O;
do
b[i++] = b[w++], b[i++] = b[w++], b[i++] = b[w++], E -= 3;
while (E > 2);
E && (b[i++] = b[w++], E > 1 && (b[i++] = b[w++]));
}
} else if (_ & 64) {
n.msg = "invalid distance code", v.mode = $t;
break t;
} else {
k = p[(k & 65535) + (h & (1 << _) - 1)];
continue n;
}
break;
}
} else if (_ & 64)
if (_ & 32) {
v.mode = Ui;
break t;
} else {
n.msg = "invalid literal/length code", v.mode = $t;
break t;
}
else {
k = z[(k & 65535) + (h & (1 << _) - 1)];
continue e;
}
break;
}
} while (a < r && i < o);
E = u >> 3, a -= E, u -= E << 3, h &= (1 << u) - 1, n.next_in = a, n.next_out = i, n.avail_in = a < r ? 5 + (r - a) : 5 - (a - r), n.avail_out = i < o ? 257 + (o - i) : 257 - (i - o), v.hold = h, v.bits = u;
};
const ot = 15, Ne = 852, De = 592, Te = 0, Qt = 1, $e = 2, Di = new Uint16Array([
/* Length codes 257..285 base */
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
]), Ti = new Uint8Array([
/* Length codes 257..285 extra */
16,
16,
16,
16,
16,
16,
16,
16,
17,
17,
17,
17,
18,
18,
18,
18,
19,
19,
19,
19,
20,
20,
20,
20,
21,
21,
21,
21,
16,
72,
78
]), $i = new Uint16Array([
/* Distance codes 0..29 base */
1,
2,
3,
4,
5,
7,
9,
13,
17,
25,
33,
49,
65,
97,
129,
193,
257,
385,
513,
769,
1025,
1537,
2049,
3073,
4097,
6145,
8193,
12289,
16385,
24577,
0,
0
]), Bi = new Uint8Array([
/* Distance codes 0..29 extra */
16,
16,
16,
16,
17,
17,
18,
18,
19,
19,
20,
20,
21,
21,
22,
22,
23,
23,
24,
24,
25,
25,
26,
26,
27,
27,
28,
28,
29,
29,
64,
64
]), Hi = (t, n, e, a, r, i, s, o) => {
const d = o.bits;
let l = 0, f = 0, g = 0, c = 0, h = 0, u = 0, z = 0, p = 0, x = 0, y = 0, k, _, E, O, w, R = null, m;
const b = new Uint16Array(ot + 1), v = new Uint16Array(ot + 1);
let J = null, me, Nt, Dt;
for (l = 0; l <= ot; l++)
b[l] = 0;
for (f = 0; f < a; f++)
b[n[e + f]]++;
for (h = d, c = ot; c >= 1 && b[c] === 0; c--)
;
if (h > c && (h = c), c === 0)
return r[i++] = 1 << 24 | 64 << 16 | 0, r[i++] = 1 << 24 | 64 << 16 | 0, o.bits = 1, 0;
for (g = 1; g < c && b[g] === 0; g++)
;
for (h < g && (h = g), p = 1, l = 1; l <= ot; l++)
if (p <<= 1, p -= b[l], p < 0)
return -1;
if (p > 0 && (t === Te || c !== 1))
return -1;
for (v[1] = 0, l = 1; l < ot; l++)
v[l + 1] = v[l] + b[l];
for (f = 0; f < a; f++)
n[e + f] !== 0 && (s[v[n[e + f]]++] = f);
if (t === Te ? (R = J = s, m = 20) : t === Qt ? (R = Di, J = Ti, m = 257) : (R = $i, J = Bi, m = 0), y = 0, f = 0, l = g, w = i, u = h, z = 0, E = -1, x = 1 << h, O = x - 1, t === Qt && x > Ne || t === $e && x > De)
return 1;
for (; ; ) {
me = l - z, s[f] + 1 < m ? (Nt = 0, Dt = s[f]) : s[f] >= m ? (Nt = J[s[f] - m], Dt = R[s[f] - m]) : (Nt = 96, Dt = 0), k = 1 << l - z, _ = 1 << u, g = _;
do
_ -= k, r[w + (y >> z) + _] = me << 24 | Nt << 16 | Dt | 0;
while (_ !== 0);
for (k = 1 << l - 1; y & k; )
k >>= 1;
if (k !== 0 ? (y &= k - 1, y += k) : y = 0, f++, --b[l] === 0) {
if (l === c)
break;
l = n[e + s[f]];
}
if (l > h && (y & O) !== E) {
for (z === 0 && (z = h), w += g, u = l - z, p = 1 << u; u + z < c && (p -= b[u + z], !(p <= 0)); )
u++, p <<= 1;
if (x += 1 << u, t === Qt && x > Ne || t === $e && x > De)
return 1;
E = y & O, r[E] = h << 24 | u << 16 | w - i | 0;
}
}
return y !== 0 && (r[w + y] = l - z << 24 | 64 << 16 | 0), o.bits = h, 0;
};
var pt = Hi;
const Ci = 0, Nn = 1, Dn = 2, {
Z_FINISH: Be,
Z_BLOCK: Fi,
Z_TREES: Bt,
Z_OK: at,
Z_STREAM_END: Pi,
Z_NEED_DICT: Li,
Z_STREAM_ERROR: C,
Z_DATA_ERROR: Tn,
Z_MEM_ERROR: $n,
Z_BUF_ERROR: Mi,
Z_DEFLATED: He
} = it, Xt = 16180, Ce = 16181, Fe = 16182, Pe = 16183, Le = 16184, Me = 16185, Ae = 16186, Ge = 16187, Xe = 16188, Ye = 16189, Mt = 16190, A = 16191, qt = 16192, je = 16193, te = 16194, Ve = 16195, We = 16196, Ke = 16197, Je = 16198, Ht = 16199, Ct = 16200, Qe = 16201, qe = 16202, tn = 16203, en = 16204, nn = 16205, ee = 16206, an = 16207, rn = 16208, Z = 16209, Bn = 16210, Hn = 16211, Ai = 852, Gi = 592, Xi = 15, Yi = Xi, ln = (t) => (t >>> 24 & 255) + (t >>> 8 & 65280) + ((t & 65280) << 8) + ((t & 255) << 24);
function ji() {
this.strm = null, this.mode = 0, this.last = !1, this.wrap = 0, this.havedict = !1, this.flags = 0, this.dmax = 0, this.check = 0, this.total = 0, this.head = null, this.wbits = 0, this.wsize = 0, this.whave = 0, this.wnext = 0, this.window = null, this.hold = 0, this.bits = 0, this.length = 0, this.offset = 0, this.extra = 0, this.lencode = null, this.distcode = null, this.lenbits = 0, this.distbits = 0, this.ncode = 0, this.nlen = 0, this.ndist = 0, this.have = 0, this.next = null, this.lens = new Uint16Array(320), this.work = new Uint16Array(288), this.lendyn = null, this.distdyn = null, this.sane = 0, this.back = 0, this.was = 0;
}
const rt = (t) => {
if (!t)
return 1;
const n = t.state;
return !n || n.strm !== t || n.mode < Xt || n.mode > Hn ? 1 : 0;
}, Cn = (t) => {
if (rt(t))
return C;
const n = t.state;
return t.total_in = t.total_out = n.total = 0, t.msg = "", n.wrap && (t.adler = n.wrap & 1), n.mode = Xt, n.last = 0, n.havedict = 0, n.flags = -1, n.dmax = 32768, n.head = null, n.hold = 0, n.bits = 0, n.lencode = n.lendyn = new Int32Array(Ai), n.distcode = n.distdyn = new Int32Array(Gi), n.sane = 1, n.back = -1, at;
}, Fn = (t) => {
if (rt(t))
return C;
const n = t.state;
return n.wsize = 0, n.whave = 0, n.wnext = 0, Cn(t);
}, Pn = (t, n) => {
let e;
if (rt(t))
return C;
const a = t.state;
return n < 0 ? (e = 0, n = -n) : (e = (n >> 4) + 5, n < 48 && (n &= 15)), n && (n < 8 || n > 15) ? C : (a.window !== null && a.wbits !== n && (a.window = null), a.wrap = e, a.wbits = n, Fn(t));
}, Ln = (t, n) => {
if (!t)
return C;
const e = new ji();
t.state = e, e.strm = t, e.window = null, e.mode = Xt;
const a = Pn(t, n);
return a !== at && (t.state = null), a;
}, Vi = (t) => Ln(t, Yi);
let on = !0, ne, ae;
const Wi = (t) => {
if (on) {
ne = new Int32Array(512), ae = new Int32Array(32);
let n = 0;
for (; n < 144; )
t.lens[n++] = 8;
for (; n < 256; )