@watergis/maplibre-gl-export
Version:
This module adds control which can export PDF and images.
1,323 lines • 578 kB
JavaScript
import { n as e } from "./chunk-efA98nb6.js";
import { t } from "./typeof-CTd55yxz.js";
import { Map as n } from "maplibre-gl";
//#region src/lib/crosshair-manager.ts
var r = class {
map;
width;
height;
svgCanvas;
xLine;
yLine;
color = "#535353";
constructor(e) {
this.map = e, this.mapResize = this.mapResize.bind(this);
}
create() {
this.updateValues(), this.map === void 0 ? console.error("map object is null") : (this.map.on("resize", this.mapResize), this.createCanvas(this.map.getCanvasContainer()));
}
updateValues() {
this.width = this.map?.getCanvas().clientWidth, this.height = this.map?.getCanvas().clientHeight;
}
mapResize() {
this.updateValues(), this.updateCanvas();
}
updateCanvas() {
if (this.svgCanvas !== void 0 && this.yLine !== void 0 && this.xLine !== void 0 && this.width !== void 0 && this.height !== void 0) {
this.svgCanvas.setAttribute("width", `${this.width}px`), this.svgCanvas.setAttribute("height", `${this.height}px`);
let e = this.width / 2, t = this.height / 2;
this.yLine.setAttribute("x1", `${e}px`), this.yLine.setAttribute("y1", "0px"), this.yLine.setAttribute("x2", `${e}px`), this.yLine.setAttribute("y2", `${this.height}px`), this.xLine.setAttribute("x1", "0px"), this.xLine.setAttribute("y1", `${t}px`), this.xLine.setAttribute("x2", `${this.width}px`), this.xLine.setAttribute("y2", `${t}px`);
} else console.error("element value is null");
}
createCanvas(e) {
if (this.width !== void 0 && this.height !== void 0) {
let t = document.createElementNS("http://www.w3.org/2000/svg", "svg");
t.style.position = "relative", t.setAttribute("width", `${this.width}px`), t.setAttribute("height", `${this.height}px`);
let n = this.width / 2, r = this.height / 2;
this.yLine = t.appendChild(this.createLine(`${n}`, "0", `${n}`, `${this.height}`, this.color, "2px")), this.xLine = t.appendChild(this.createLine("0", `${r}`, `${this.width}`, `${r}`, this.color, "2px")), e?.appendChild(t), this.svgCanvas = t;
}
}
createLine(e, t, n, r, i, a) {
let o = document.createElementNS("http://www.w3.org/2000/svg", "line");
return o.setAttribute("x1", e), o.setAttribute("y1", t), o.setAttribute("x2", n), o.setAttribute("y2", r), o.setAttribute("stroke-dasharray", "5,5"), o.setAttribute("stroke", i), o.setAttribute("stroke-width", a), o;
}
destroy() {
this.xLine !== void 0 && (this.xLine.remove(), this.xLine = void 0), this.yLine !== void 0 && (this.yLine.remove(), this.yLine = void 0), this.svgCanvas !== void 0 && (this.svgCanvas.remove(), this.svgCanvas = void 0), this.map !== void 0 && (this.map.off("resize", this.mapResize), this.map = void 0);
}
}, i = {
72: 72,
96: 96,
200: 200,
300: 300,
400: 400
}, a = {
JPEG: "jpg",
PNG: "png",
PDF: "pdf",
SVG: "svg"
}, o = {
Landscape: "landscape",
Portrait: "portrait"
}, s = {
LETTER: [279, 216],
A2: [594, 420],
A3: [420, 297],
A4: [297, 210],
A5: [210, 148],
A6: [148, 105],
B2: [707, 500],
B3: [500, 353],
B4: [353, 250],
B5: [250, 176],
B6: [176, 125]
}, c = {
in: "in",
mm: "mm"
}, l = class {
map;
width;
height;
unit;
svgCanvas;
svgPath;
constructor(e) {
if (this.map = e, this.map === void 0) return;
this.mapResize = this.mapResize.bind(this), this.map.on("resize", this.mapResize);
let t = this.map?.getCanvas().clientWidth, n = this.map?.getCanvas().clientHeight, r = document.createElementNS("http://www.w3.org/2000/svg", "svg");
r.style.position = "absolute", r.style.top = "0px", r.style.left = "0px", r.setAttribute("width", `${t}px`), r.setAttribute("height", `${n}px`);
let i = document.createElementNS("http://www.w3.org/2000/svg", "path");
i.setAttribute("style", "fill:#888888;stroke-width:0"), i.setAttribute("fill-opacity", "0.5"), r.append(i), this.map?.getCanvasContainer().appendChild(r), this.svgCanvas = r, this.svgPath = i;
}
mapResize() {
this.generateCutOut();
}
updateArea(e, t) {
this.width = e, this.height = t, this.unit = c.mm, this.generateCutOut();
}
generateCutOut() {
if (this.map === void 0 || this.svgCanvas === void 0 || this.svgPath === void 0) return;
let e = this.toPixels(this.width), t = this.toPixels(this.height), n = this.map?.getCanvas().clientWidth, r = this.map?.getCanvas().clientHeight, i = n / 2 - e / 2, a = i + e, o = r / 2 - t / 2, s = o + t;
this.svgCanvas.setAttribute("width", `${n}px`), this.svgCanvas.setAttribute("height", `${r}px`), this.svgPath.setAttribute("d", `M 0 0 L ${n} 0 L ${n} ${r} L 0 ${r} M ${i} ${o} L ${i} ${s} L ${a} ${s} L ${a} ${o}`);
}
destroy() {
this.svgCanvas !== void 0 && (this.svgCanvas.remove(), this.svgCanvas = void 0), this.map !== void 0 && (this.map = void 0);
}
toPixels(e, t = 96) {
return this.unit === c.mm && (t /= 25.4), t * e;
}
}, u = {
PageSize: "Page Size",
PageOrientation: "Page Orientation",
Format: "Format",
DPI: "DPI",
Generate: "Generate",
LanguageName: "English",
LanguageCode: "en"
}, d = [
u,
{
PageSize: "Taille de page",
PageOrientation: "Orientation de la page",
Format: "Format",
DPI: "DPI",
Generate: "Générer",
LanguageName: "Français",
LanguageCode: "fr"
},
{
PageSize: "Sivukoko",
PageOrientation: "Sivun suunta",
Format: "Muoto",
DPI: "DPI",
Generate: "Generoi",
LanguageName: "Suomalainen",
LanguageCode: "fi"
},
{
PageSize: "Papierformat",
PageOrientation: "Papierausrichtung",
Format: "Dateiformat",
DPI: "Druckauflösung",
Generate: "Erstellen",
LanguageName: "Deutsch",
LanguageCode: "de"
},
{
PageSize: "Sidstorlek",
PageOrientation: "Sidorientering",
Format: "Format",
DPI: "DPI",
Generate: "Generera",
LanguageName: "Svenska",
LanguageCode: "sv"
},
{
PageSize: "Tamaño de página",
PageOrientation: "Orientación de página",
Format: "Formato",
DPI: "DPI",
Generate: "Generar",
LanguageName: "Española",
LanguageCode: "es"
},
{
PageSize: "Mida",
PageOrientation: "Orientació",
Format: "Format",
DPI: "DPI",
Generate: "Genera",
LanguageName: "Catalan",
LanguageCode: "ca"
},
{
PageSize: "Kích thước trang",
PageOrientation: "Loại trang",
Format: "Định dạng",
DPI: "Mật độ điểm ảnh (DPI)",
Generate: "Tạo",
LanguageName: "Tiếng Việt",
LanguageCode: "vi"
},
{
PageSize: "Розмір сторінки",
PageOrientation: "Орієнтація сторінки",
Format: "Формат",
DPI: "DPI",
Generate: "Згенерувати",
LanguageName: "українська",
LanguageCode: "uk"
},
{
PageSize: "页面大小",
PageOrientation: "页面方向",
Format: "格式",
DPI: "像素",
Generate: "导出",
LanguageName: "简体字",
LanguageCode: "zhHans"
},
{
PageSize: "頁面大小",
PageOrientation: "頁面方向",
Format: "格式",
DPI: "像素",
Generate: "導出",
LanguageName: "繁体字",
LanguageCode: "zhHant"
},
{
PageSize: "ページサイズ",
PageOrientation: "ページ方向",
Format: "フォーマット",
DPI: "DPI(解像度)",
Generate: "出力",
LanguageName: "日本語",
LanguageCode: "ja"
},
{
PageSize: "Tamanho da página",
PageOrientation: "Orientação da página",
Format: "Formato",
DPI: "DPI",
Generate: "Gerar",
LanguageName: "Português",
LanguageCode: "pt"
},
{
PageSize: "Размер страницы",
PageOrientation: "Ориентация страницы",
Format: "Формат",
DPI: "Разрешение (DPI)",
Generate: "Сгенерировать",
LanguageName: "русский",
LanguageCode: "ru"
}
], f = [
"en",
"fr",
"fi",
"de",
"sv",
"es",
"ca",
"vi",
"uk",
"zhHans",
"zhHant",
"ja",
"pt",
"ru"
], p = (e) => d.find((t) => t.LanguageCode === e) ?? u, m = Uint8Array, h = Uint16Array, g = Int32Array, _ = new m([
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
1,
1,
2,
2,
2,
2,
3,
3,
3,
3,
4,
4,
4,
4,
5,
5,
5,
5,
0,
0,
0,
0
]), v = new m([
0,
0,
0,
0,
1,
1,
2,
2,
3,
3,
4,
4,
5,
5,
6,
6,
7,
7,
8,
8,
9,
9,
10,
10,
11,
11,
12,
12,
13,
13,
0,
0
]), y = new m([
16,
17,
18,
0,
8,
7,
9,
6,
10,
5,
11,
4,
12,
3,
13,
2,
14,
1,
15
]), b = function(e, t) {
for (var n = new h(31), r = 0; r < 31; ++r) n[r] = t += 1 << e[r - 1];
for (var i = new g(n[30]), r = 1; r < 30; ++r) for (var a = n[r]; a < n[r + 1]; ++a) i[a] = a - n[r] << 5 | r;
return {
b: n,
r: i
};
}, x = b(_, 2), S = x.b, C = x.r;
S[28] = 258, C[258] = 28;
var w = b(v, 0);
w.b;
for (var T = w.r, E = new h(32768), D = 0; D < 32768; ++D) {
var O = (D & 43690) >> 1 | (D & 21845) << 1;
O = (O & 52428) >> 2 | (O & 13107) << 2, O = (O & 61680) >> 4 | (O & 3855) << 4, E[D] = ((O & 65280) >> 8 | (O & 255) << 8) >> 1;
}
for (var k = (function(e, t, n) {
for (var r = e.length, i = 0, a = new h(t); i < r; ++i) e[i] && ++a[e[i] - 1];
var o = new h(t);
for (i = 1; i < t; ++i) o[i] = o[i - 1] + a[i - 1] << 1;
var s;
if (n) {
s = new h(1 << t);
var c = 15 - t;
for (i = 0; i < r; ++i) if (e[i]) for (var l = i << 4 | e[i], u = t - e[i], d = o[e[i] - 1]++ << u, f = d | (1 << u) - 1; d <= f; ++d) s[E[d] >> c] = l;
} else for (s = new h(r), i = 0; i < r; ++i) e[i] && (s[i] = E[o[e[i] - 1]++] >> 15 - e[i]);
return s;
}), A = new m(288), D = 0; D < 144; ++D) A[D] = 8;
for (var D = 144; D < 256; ++D) A[D] = 9;
for (var D = 256; D < 280; ++D) A[D] = 7;
for (var D = 280; D < 288; ++D) A[D] = 8;
for (var j = new m(32), D = 0; D < 32; ++D) j[D] = 5;
var M = /* @__PURE__ */ k(A, 9, 0), N = /* @__PURE__ */ k(j, 5, 0), P = function(e) {
return (e + 7) / 8 | 0;
}, F = function(e, t, n) {
return (t == null || t < 0) && (t = 0), (n == null || n > e.length) && (n = e.length), new m(e.subarray(t, n));
}, I = function(e, t, n) {
n <<= t & 7;
var r = t / 8 | 0;
e[r] |= n, e[r + 1] |= n >> 8;
}, L = function(e, t, n) {
n <<= t & 7;
var r = t / 8 | 0;
e[r] |= n, e[r + 1] |= n >> 8, e[r + 2] |= n >> 16;
}, ee = function(e, t) {
for (var n = [], r = 0; r < e.length; ++r) e[r] && n.push({
s: r,
f: e[r]
});
var i = n.length, a = n.slice();
if (!i) return {
t: H,
l: 0
};
if (i == 1) {
var o = new m(n[0].s + 1);
return o[n[0].s] = 1, {
t: o,
l: 1
};
}
n.sort(function(e, t) {
return e.f - t.f;
}), n.push({
s: -1,
f: 25001
});
var s = n[0], c = n[1], l = 0, u = 1, d = 2;
for (n[0] = {
s: -1,
f: s.f + c.f,
l: s,
r: c
}; u != i - 1;) s = n[n[l].f < n[d].f ? l++ : d++], c = n[l != u && n[l].f < n[d].f ? l++ : d++], n[u++] = {
s: -1,
f: s.f + c.f,
l: s,
r: c
};
for (var f = a[0].s, r = 1; r < i; ++r) a[r].s > f && (f = a[r].s);
var p = new h(f + 1), g = R(n[u - 1], p, 0);
if (g > t) {
var r = 0, _ = 0, v = g - t, y = 1 << v;
for (a.sort(function(e, t) {
return p[t.s] - p[e.s] || e.f - t.f;
}); r < i; ++r) {
var b = a[r].s;
if (p[b] > t) _ += y - (1 << g - p[b]), p[b] = t;
else break;
}
for (_ >>= v; _ > 0;) {
var x = a[r].s;
p[x] < t ? _ -= 1 << t - p[x]++ - 1 : ++r;
}
for (; r >= 0 && _; --r) {
var S = a[r].s;
p[S] == t && (--p[S], ++_);
}
g = t;
}
return {
t: new m(p),
l: g
};
}, R = function(e, t, n) {
return e.s == -1 ? Math.max(R(e.l, t, n + 1), R(e.r, t, n + 1)) : t[e.s] = n;
}, z = function(e) {
for (var t = e.length; t && !e[--t];);
for (var n = new h(++t), r = 0, i = e[0], a = 1, o = function(e) {
n[r++] = e;
}, s = 1; s <= t; ++s) if (e[s] == i && s != t) ++a;
else {
if (!i && a > 2) {
for (; a > 138; a -= 138) o(32754);
a > 2 && (o(a > 10 ? a - 11 << 5 | 28690 : a - 3 << 5 | 12305), a = 0);
} else if (a > 3) {
for (o(i), --a; a > 6; a -= 6) o(8304);
a > 2 && (o(a - 3 << 5 | 8208), a = 0);
}
for (; a--;) o(i);
a = 1, i = e[s];
}
return {
c: n.subarray(0, r),
n: t
};
}, B = function(e, t) {
for (var n = 0, r = 0; r < t.length; ++r) n += e[r] * t[r];
return n;
}, te = function(e, t, n) {
var r = n.length, i = P(t + 2);
e[i] = r & 255, e[i + 1] = r >> 8, e[i + 2] = e[i] ^ 255, e[i + 3] = e[i + 1] ^ 255;
for (var a = 0; a < r; ++a) e[i + a + 4] = n[a];
return (i + 4 + r) * 8;
}, V = function(e, t, n, r, i, a, o, s, c, l, u) {
I(t, u++, n), ++i[256];
for (var d = ee(i, 15), f = d.t, p = d.l, m = ee(a, 15), g = m.t, b = m.l, x = z(f), S = x.c, C = x.n, w = z(g), T = w.c, E = w.n, D = new h(19), O = 0; O < S.length; ++O) ++D[S[O] & 31];
for (var O = 0; O < T.length; ++O) ++D[T[O] & 31];
for (var P = ee(D, 7), F = P.t, R = P.l, V = 19; V > 4 && !F[y[V - 1]]; --V);
var ne = l + 5 << 3, H = B(i, A) + B(a, j) + o, U = B(i, f) + B(a, g) + o + 14 + 3 * V + B(D, F) + 2 * D[16] + 3 * D[17] + 7 * D[18];
if (c >= 0 && ne <= H && ne <= U) return te(t, u, e.subarray(c, c + l));
var W, re, ie, ae;
if (I(t, u, 1 + (U < H)), u += 2, U < H) {
W = k(f, p, 0), re = f, ie = k(g, b, 0), ae = g;
var oe = k(F, R, 0);
I(t, u, C - 257), I(t, u + 5, E - 1), I(t, u + 10, V - 4), u += 14;
for (var O = 0; O < V; ++O) I(t, u + 3 * O, F[y[O]]);
u += 3 * V;
for (var G = [S, T], se = 0; se < 2; ++se) for (var ce = G[se], O = 0; O < ce.length; ++O) {
var le = ce[O] & 31;
I(t, u, oe[le]), u += F[le], le > 15 && (I(t, u, ce[O] >> 5 & 127), u += ce[O] >> 12);
}
} else W = M, re = A, ie = N, ae = j;
for (var O = 0; O < s; ++O) {
var ue = r[O];
if (ue > 255) {
var le = ue >> 18 & 31;
L(t, u, W[le + 257]), u += re[le + 257], le > 7 && (I(t, u, ue >> 23 & 31), u += _[le]);
var de = ue & 31;
L(t, u, ie[de]), u += ae[de], de > 3 && (L(t, u, ue >> 5 & 8191), u += v[de]);
} else L(t, u, W[ue]), u += re[ue];
}
return L(t, u, W[256]), u + re[256];
}, ne = /* @__PURE__ */ new g([
65540,
131080,
131088,
131104,
262176,
1048704,
1048832,
2114560,
2117632
]), H = /* @__PURE__ */ new m(0), U = function(e, t, n, r, i, a) {
var o = a.z || e.length, s = new m(r + o + 5 * (1 + Math.ceil(o / 7e3)) + i), c = s.subarray(r, s.length - i), l = a.l, u = (a.r || 0) & 7;
if (t) {
u && (c[0] = a.r >> 3);
for (var d = ne[t - 1], f = d >> 13, p = d & 8191, y = (1 << n) - 1, b = a.p || new h(32768), x = a.h || new h(y + 1), S = Math.ceil(n / 3), w = 2 * S, E = function(t) {
return (e[t] ^ e[t + 1] << S ^ e[t + 2] << w) & y;
}, D = new g(25e3), O = new h(288), k = new h(32), A = 0, j = 0, M = a.i || 0, N = 0, I = a.w || 0, L = 0; M + 2 < o; ++M) {
var ee = E(M), R = M & 32767, z = x[ee];
if (b[R] = z, x[ee] = R, I <= M) {
var B = o - M;
if ((A > 7e3 || N > 24576) && (B > 423 || !l)) {
u = V(e, c, 0, D, O, k, j, N, L, M - L, u), N = A = j = 0, L = M;
for (var H = 0; H < 286; ++H) O[H] = 0;
for (var H = 0; H < 30; ++H) k[H] = 0;
}
var U = 2, W = 0, re = p, ie = R - z & 32767;
if (B > 2 && ee == E(M - ie)) for (var ae = Math.min(f, B) - 1, oe = Math.min(32767, M), G = Math.min(258, B); ie <= oe && --re && R != z;) {
if (e[M + U] == e[M + U - ie]) {
for (var se = 0; se < G && e[M + se] == e[M + se - ie]; ++se);
if (se > U) {
if (U = se, W = ie, se > ae) break;
for (var ce = Math.min(ie, se - 2), le = 0, H = 0; H < ce; ++H) {
var ue = M - ie + H & 32767, de = ue - b[ue] & 32767;
de > le && (le = de, z = ue);
}
}
}
R = z, z = b[R], ie += R - z & 32767;
}
if (W) {
D[N++] = 268435456 | C[U] << 18 | T[W];
var fe = C[U] & 31, pe = T[W] & 31;
j += _[fe] + v[pe], ++O[257 + fe], ++k[pe], I = M + U, ++A;
} else D[N++] = e[M], ++O[e[M]];
}
}
for (M = Math.max(M, I); M < o; ++M) D[N++] = e[M], ++O[e[M]];
u = V(e, c, l, D, O, k, j, N, L, M - L, u), l || (a.r = u & 7 | c[u / 8 | 0] << 3, u -= 7, a.h = x, a.p = b, a.i = M, a.w = I);
} else {
for (var M = a.w || 0; M < o + l; M += 65535) {
var me = M + 65535;
me >= o && (c[u / 8 | 0] = l, me = o), u = te(c, u + 1, e.subarray(M, me));
}
a.i = o;
}
return F(s, 0, r + P(u) + i);
}, W = function() {
var e = 1, t = 0;
return {
p: function(n) {
for (var r = e, i = t, a = n.length | 0, o = 0; o != a;) {
for (var s = Math.min(o + 2655, a); o < s; ++o) i += r += n[o];
r = (r & 65535) + 15 * (r >> 16), i = (i & 65535) + 15 * (i >> 16);
}
e = r, t = i;
},
d: function() {
return e %= 65521, t %= 65521, (e & 255) << 24 | (e & 65280) << 8 | (t & 255) << 8 | t >> 8;
}
};
}, re = function(e, t, n, r, i) {
if (!i && (i = { l: 1 }, t.dictionary)) {
var a = t.dictionary.subarray(-32768), o = new m(a.length + e.length);
o.set(a), o.set(e, a.length), e = o, i.w = a.length;
}
return U(e, t.level == null ? 6 : t.level, t.mem == null ? i.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(e.length))) * 1.5) : 20 : 12 + t.mem, n, r, i);
}, ie = function(e, t, n) {
for (; n; ++t) e[t] = n, n >>>= 8;
}, ae = function(e, t) {
var n = t.level, r = n == 0 ? 0 : n < 6 ? 1 : n == 9 ? 3 : 2;
if (e[0] = 120, e[1] = r << 6 | (t.dictionary && 32), e[1] |= 31 - (e[0] << 8 | e[1]) % 31, t.dictionary) {
var i = W();
i.p(t.dictionary), ie(e, 2, i.d());
}
};
function oe(e, t) {
t ||= {};
var n = W();
n.p(e);
var r = re(e, t, t.dictionary ? 6 : 2, 4);
return ae(r, t), ie(r, r.length - 4, n.d()), r;
}
var G = typeof TextDecoder < "u" && /* @__PURE__ */ new TextDecoder();
try {
G.decode(H, { stream: !0 });
} catch {}
//#endregion
//#region ../../node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
function se(e) {
if (Array.isArray(e)) return e;
}
//#endregion
//#region ../../node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
function ce(e, t) {
var n = e == null ? null : typeof Symbol < "u" && e[Symbol.iterator] || e["@@iterator"];
if (n != null) {
var r, i, a, o, s = [], c = !0, l = !1;
try {
if (a = (n = n.call(e)).next, t === 0) {
if (Object(n) !== n) return;
c = !1;
} else for (; !(c = (r = a.call(n)).done) && (s.push(r.value), s.length !== t); c = !0);
} catch (e) {
l = !0, i = e;
} finally {
try {
if (!c && n.return != null && (o = n.return(), Object(o) !== o)) return;
} finally {
if (l) throw i;
}
}
return s;
}
}
//#endregion
//#region ../../node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
function le(e, t) {
(t == null || t > e.length) && (t = e.length);
for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n];
return r;
}
//#endregion
//#region ../../node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
function ue(e, t) {
if (e) {
if (typeof e == "string") return le(e, t);
var n = {}.toString.call(e).slice(8, -1);
return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? le(e, t) : void 0;
}
}
//#endregion
//#region ../../node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
function de() {
throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
//#endregion
//#region ../../node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/slicedToArray.js
function fe(e, t) {
return se(e) || ce(e, t) || ue(e, t) || de();
}
//#endregion
//#region ../../node_modules/.pnpm/iobuffer@5.4.0/node_modules/iobuffer/lib-esm/text.js
function pe(e, t = "utf8") {
return new TextDecoder(t).decode(e);
}
var me = new TextEncoder();
function he(e) {
return me.encode(e);
}
//#endregion
//#region ../../node_modules/.pnpm/iobuffer@5.4.0/node_modules/iobuffer/lib-esm/IOBuffer.js
var ge = 1024 * 8, _e = (() => {
let e = new Uint8Array(4), t = new Uint32Array(e.buffer);
return !((t[0] = 1) & e[0]);
})(), ve = {
int8: globalThis.Int8Array,
uint8: globalThis.Uint8Array,
int16: globalThis.Int16Array,
uint16: globalThis.Uint16Array,
int32: globalThis.Int32Array,
uint32: globalThis.Uint32Array,
uint64: globalThis.BigUint64Array,
int64: globalThis.BigInt64Array,
float32: globalThis.Float32Array,
float64: globalThis.Float64Array
}, ye = class e {
buffer;
byteLength;
byteOffset;
length;
offset;
lastWrittenByte;
littleEndian;
_data;
_mark;
_marks;
constructor(t = ge, n = {}) {
let r = !1;
typeof t == "number" ? t = new ArrayBuffer(t) : (r = !0, this.lastWrittenByte = t.byteLength);
let i = n.offset ? n.offset >>> 0 : 0, a = t.byteLength - i, o = i;
(ArrayBuffer.isView(t) || t instanceof e) && (t.byteLength !== t.buffer.byteLength && (o = t.byteOffset + i), t = t.buffer), r ? this.lastWrittenByte = a : this.lastWrittenByte = 0, this.buffer = t, this.length = a, this.byteLength = a, this.byteOffset = o, this.offset = 0, this.littleEndian = !0, this._data = new DataView(this.buffer, o, a), this._mark = 0, this._marks = [];
}
available(e = 1) {
return this.offset + e <= this.length;
}
isLittleEndian() {
return this.littleEndian;
}
setLittleEndian() {
return this.littleEndian = !0, this;
}
isBigEndian() {
return !this.littleEndian;
}
setBigEndian() {
return this.littleEndian = !1, this;
}
skip(e = 1) {
return this.offset += e, this;
}
back(e = 1) {
return this.offset -= e, this;
}
seek(e) {
return this.offset = e, this;
}
mark() {
return this._mark = this.offset, this;
}
reset() {
return this.offset = this._mark, this;
}
pushMark() {
return this._marks.push(this.offset), this;
}
popMark() {
let e = this._marks.pop();
if (e === void 0) throw Error("Mark stack empty");
return this.seek(e), this;
}
rewind() {
return this.offset = 0, this;
}
ensureAvailable(e = 1) {
if (!this.available(e)) {
let t = (this.offset + e) * 2, n = new Uint8Array(t);
n.set(new Uint8Array(this.buffer)), this.buffer = n.buffer, this.length = t, this.byteLength = t, this._data = new DataView(this.buffer);
}
return this;
}
readBoolean() {
return this.readUint8() !== 0;
}
readInt8() {
return this._data.getInt8(this.offset++);
}
readUint8() {
return this._data.getUint8(this.offset++);
}
readByte() {
return this.readUint8();
}
readBytes(e = 1) {
return this.readArray(e, "uint8");
}
readArray(e, t) {
let n = ve[t].BYTES_PER_ELEMENT * e, r = this.byteOffset + this.offset, i = this.buffer.slice(r, r + n);
if (this.littleEndian === _e && t !== "uint8" && t !== "int8") {
let e = new Uint8Array(this.buffer.slice(r, r + n));
e.reverse();
let i = new ve[t](e.buffer);
return this.offset += n, i.reverse(), i;
}
let a = new ve[t](i);
return this.offset += n, a;
}
readInt16() {
let e = this._data.getInt16(this.offset, this.littleEndian);
return this.offset += 2, e;
}
readUint16() {
let e = this._data.getUint16(this.offset, this.littleEndian);
return this.offset += 2, e;
}
readInt32() {
let e = this._data.getInt32(this.offset, this.littleEndian);
return this.offset += 4, e;
}
readUint32() {
let e = this._data.getUint32(this.offset, this.littleEndian);
return this.offset += 4, e;
}
readFloat32() {
let e = this._data.getFloat32(this.offset, this.littleEndian);
return this.offset += 4, e;
}
readFloat64() {
let e = this._data.getFloat64(this.offset, this.littleEndian);
return this.offset += 8, e;
}
readBigInt64() {
let e = this._data.getBigInt64(this.offset, this.littleEndian);
return this.offset += 8, e;
}
readBigUint64() {
let e = this._data.getBigUint64(this.offset, this.littleEndian);
return this.offset += 8, e;
}
readChar() {
return String.fromCharCode(this.readInt8());
}
readChars(e = 1) {
let t = "";
for (let n = 0; n < e; n++) t += this.readChar();
return t;
}
readUtf8(e = 1) {
return pe(this.readBytes(e));
}
decodeText(e = 1, t = "utf8") {
return pe(this.readBytes(e), t);
}
writeBoolean(e) {
return this.writeUint8(e ? 255 : 0), this;
}
writeInt8(e) {
return this.ensureAvailable(1), this._data.setInt8(this.offset++, e), this._updateLastWrittenByte(), this;
}
writeUint8(e) {
return this.ensureAvailable(1), this._data.setUint8(this.offset++, e), this._updateLastWrittenByte(), this;
}
writeByte(e) {
return this.writeUint8(e);
}
writeBytes(e) {
this.ensureAvailable(e.length);
for (let t = 0; t < e.length; t++) this._data.setUint8(this.offset++, e[t]);
return this._updateLastWrittenByte(), this;
}
writeInt16(e) {
return this.ensureAvailable(2), this._data.setInt16(this.offset, e, this.littleEndian), this.offset += 2, this._updateLastWrittenByte(), this;
}
writeUint16(e) {
return this.ensureAvailable(2), this._data.setUint16(this.offset, e, this.littleEndian), this.offset += 2, this._updateLastWrittenByte(), this;
}
writeInt32(e) {
return this.ensureAvailable(4), this._data.setInt32(this.offset, e, this.littleEndian), this.offset += 4, this._updateLastWrittenByte(), this;
}
writeUint32(e) {
return this.ensureAvailable(4), this._data.setUint32(this.offset, e, this.littleEndian), this.offset += 4, this._updateLastWrittenByte(), this;
}
writeFloat32(e) {
return this.ensureAvailable(4), this._data.setFloat32(this.offset, e, this.littleEndian), this.offset += 4, this._updateLastWrittenByte(), this;
}
writeFloat64(e) {
return this.ensureAvailable(8), this._data.setFloat64(this.offset, e, this.littleEndian), this.offset += 8, this._updateLastWrittenByte(), this;
}
writeBigInt64(e) {
return this.ensureAvailable(8), this._data.setBigInt64(this.offset, e, this.littleEndian), this.offset += 8, this._updateLastWrittenByte(), this;
}
writeBigUint64(e) {
return this.ensureAvailable(8), this._data.setBigUint64(this.offset, e, this.littleEndian), this.offset += 8, this._updateLastWrittenByte(), this;
}
writeChar(e) {
return this.writeUint8(e.charCodeAt(0));
}
writeChars(e) {
for (let t = 0; t < e.length; t++) this.writeUint8(e.charCodeAt(t));
return this;
}
writeUtf8(e) {
return this.writeBytes(he(e));
}
toArray() {
return new Uint8Array(this.buffer, this.byteOffset, this.lastWrittenByte);
}
getWrittenByteLength() {
return this.lastWrittenByte - this.byteOffset;
}
_updateLastWrittenByte() {
this.offset > this.lastWrittenByte && (this.lastWrittenByte = this.offset);
}
}, be = 4, xe = 0, Se = 1, Ce = 2;
function we(e) {
let t = e.length;
for (; --t >= 0;) e[t] = 0;
}
var Te = 0, Ee = 1, De = 2, Oe = 3, ke = 258, Ae = 29, je = 256, Me = je + 1 + Ae, Ne = 30, K = 19, Pe = 2 * Me + 1, Fe = 15, Ie = 16, Le = 7, Re = 256, q = 16, ze = 17, Be = 18, Ve = 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
]), He = 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
]), Ue = new Uint8Array([
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
3,
7
]), We = new Uint8Array([
16,
17,
18,
0,
8,
7,
9,
6,
10,
5,
11,
4,
12,
3,
13,
2,
14,
1,
15
]), Ge = 512, Ke = Array((Me + 2) * 2);
we(Ke);
var qe = Array(Ne * 2);
we(qe);
var Je = Array(Ge);
we(Je);
var Ye = Array(ke - Oe + 1);
we(Ye);
var Xe = Array(Ae);
we(Xe);
var Ze = Array(Ne);
we(Ze);
function Qe(e, t, n, r, i) {
this.static_tree = e, this.extra_bits = t, this.extra_base = n, this.elems = r, this.max_length = i, this.has_stree = e && e.length;
}
var $e, et, tt;
function nt(e, t) {
this.dyn_tree = e, this.max_code = 0, this.stat_desc = t;
}
var rt = (e) => e < 256 ? Je[e] : Je[256 + (e >>> 7)], it = (e, t) => {
e.pending_buf[e.pending++] = t & 255, e.pending_buf[e.pending++] = t >>> 8 & 255;
}, at = (e, t, n) => {
e.bi_valid > Ie - n ? (e.bi_buf |= t << e.bi_valid & 65535, it(e, e.bi_buf), e.bi_buf = t >> Ie - e.bi_valid, e.bi_valid += n - Ie) : (e.bi_buf |= t << e.bi_valid & 65535, e.bi_valid += n);
}, ot = (e, t, n) => {
at(e, n[t * 2], n[t * 2 + 1]);
}, st = (e, t) => {
let n = 0;
do
n |= e & 1, e >>>= 1, n <<= 1;
while (--t > 0);
return n >>> 1;
}, ct = (e) => {
e.bi_valid === 16 ? (it(e, e.bi_buf), e.bi_buf = 0, e.bi_valid = 0) : e.bi_valid >= 8 && (e.pending_buf[e.pending++] = e.bi_buf & 255, e.bi_buf >>= 8, e.bi_valid -= 8);
}, lt = (e, t) => {
let n = t.dyn_tree, r = t.max_code, i = t.stat_desc.static_tree, a = t.stat_desc.has_stree, o = t.stat_desc.extra_bits, s = t.stat_desc.extra_base, c = t.stat_desc.max_length, l, u, d, f, p, m, h = 0;
for (f = 0; f <= Fe; f++) e.bl_count[f] = 0;
for (n[e.heap[e.heap_max] * 2 + 1] = 0, l = e.heap_max + 1; l < Pe; l++) u = e.heap[l], f = n[n[u * 2 + 1] * 2 + 1] + 1, f > c && (f = c, h++), n[u * 2 + 1] = f, !(u > r) && (e.bl_count[f]++, p = 0, u >= s && (p = o[u - s]), m = n[u * 2], e.opt_len += m * (f + p), a && (e.static_len += m * (i[u * 2 + 1] + p)));
if (h !== 0) {
do {
for (f = c - 1; e.bl_count[f] === 0;) f--;
e.bl_count[f]--, e.bl_count[f + 1] += 2, e.bl_count[c]--, h -= 2;
} while (h > 0);
for (f = c; f !== 0; f--) for (u = e.bl_count[f]; u !== 0;) d = e.heap[--l], !(d > r) && (n[d * 2 + 1] !== f && (e.opt_len += (f - n[d * 2 + 1]) * n[d * 2], n[d * 2 + 1] = f), u--);
}
}, ut = (e, t, n) => {
let r = Array(Fe + 1), i = 0, a, o;
for (a = 1; a <= Fe; a++) i = i + n[a - 1] << 1, r[a] = i;
for (o = 0; o <= t; o++) {
let t = e[o * 2 + 1];
t !== 0 && (e[o * 2] = st(r[t]++, t));
}
}, dt = () => {
let e, t, n, r, i, a = Array(Fe + 1);
for (n = 0, r = 0; r < Ae - 1; r++) for (Xe[r] = n, e = 0; e < 1 << Ve[r]; e++) Ye[n++] = r;
for (Ye[n - 1] = r, i = 0, r = 0; r < 16; r++) for (Ze[r] = i, e = 0; e < 1 << He[r]; e++) Je[i++] = r;
for (i >>= 7; r < Ne; r++) for (Ze[r] = i << 7, e = 0; e < 1 << He[r] - 7; e++) Je[256 + i++] = r;
for (t = 0; t <= Fe; t++) a[t] = 0;
for (e = 0; e <= 143;) Ke[e * 2 + 1] = 8, e++, a[8]++;
for (; e <= 255;) Ke[e * 2 + 1] = 9, e++, a[9]++;
for (; e <= 279;) Ke[e * 2 + 1] = 7, e++, a[7]++;
for (; e <= 287;) Ke[e * 2 + 1] = 8, e++, a[8]++;
for (ut(Ke, Me + 1, a), e = 0; e < Ne; e++) qe[e * 2 + 1] = 5, qe[e * 2] = st(e, 5);
$e = new Qe(Ke, Ve, je + 1, Me, Fe), et = new Qe(qe, He, 0, Ne, Fe), tt = new Qe([], Ue, 0, K, Le);
}, ft = (e) => {
let t;
for (t = 0; t < Me; t++) e.dyn_ltree[t * 2] = 0;
for (t = 0; t < Ne; t++) e.dyn_dtree[t * 2] = 0;
for (t = 0; t < K; t++) e.bl_tree[t * 2] = 0;
e.dyn_ltree[Re * 2] = 1, e.opt_len = e.static_len = 0, e.sym_next = e.matches = 0;
}, pt = (e) => {
e.bi_valid > 8 ? it(e, e.bi_buf) : e.bi_valid > 0 && (e.pending_buf[e.pending++] = e.bi_buf), e.bi_buf = 0, e.bi_valid = 0;
}, mt = (e, t, n, r) => {
let i = t * 2, a = n * 2;
return e[i] < e[a] || e[i] === e[a] && r[t] <= r[n];
}, ht = (e, t, n) => {
let r = e.heap[n], i = n << 1;
for (; i <= e.heap_len && (i < e.heap_len && mt(t, e.heap[i + 1], e.heap[i], e.depth) && i++, !mt(t, r, e.heap[i], e.depth));) e.heap[n] = e.heap[i], n = i, i <<= 1;
e.heap[n] = r;
}, gt = (e, t, n) => {
let r, i, a = 0, o, s;
if (e.sym_next !== 0) do
r = e.pending_buf[e.sym_buf + a++] & 255, r += (e.pending_buf[e.sym_buf + a++] & 255) << 8, i = e.pending_buf[e.sym_buf + a++], r === 0 ? ot(e, i, t) : (o = Ye[i], ot(e, o + je + 1, t), s = Ve[o], s !== 0 && (i -= Xe[o], at(e, i, s)), r--, o = rt(r), ot(e, o, n), s = He[o], s !== 0 && (r -= Ze[o], at(e, r, s)));
while (a < e.sym_next);
ot(e, Re, t);
}, _t = (e, t) => {
let n = t.dyn_tree, r = t.stat_desc.static_tree, i = t.stat_desc.has_stree, a = t.stat_desc.elems, o, s, c = -1, l;
for (e.heap_len = 0, e.heap_max = Pe, o = 0; o < a; o++) n[o * 2] === 0 ? n[o * 2 + 1] = 0 : (e.heap[++e.heap_len] = c = o, e.depth[o] = 0);
for (; e.heap_len < 2;) l = e.heap[++e.heap_len] = c < 2 ? ++c : 0, n[l * 2] = 1, e.depth[l] = 0, e.opt_len--, i && (e.static_len -= r[l * 2 + 1]);
for (t.max_code = c, o = e.heap_len >> 1; o >= 1; o--) ht(e, n, o);
l = a;
do
o = e.heap[1], e.heap[1] = e.heap[e.heap_len--], ht(e, n, 1), s = e.heap[1], e.heap[--e.heap_max] = o, e.heap[--e.heap_max] = s, n[l * 2] = n[o * 2] + n[s * 2], e.depth[l] = (e.depth[o] >= e.depth[s] ? e.depth[o] : e.depth[s]) + 1, n[o * 2 + 1] = n[s * 2 + 1] = l, e.heap[1] = l++, ht(e, n, 1);
while (e.heap_len >= 2);
e.heap[--e.heap_max] = e.heap[1], lt(e, t), ut(n, c, e.bl_count);
}, vt = (e, t, n) => {
let r, i = -1, a, o = t[1], s = 0, c = 7, l = 4;
for (o === 0 && (c = 138, l = 3), t[(n + 1) * 2 + 1] = 65535, r = 0; r <= n; r++) a = o, o = t[(r + 1) * 2 + 1], !(++s < c && a === o) && (s < l ? e.bl_tree[a * 2] += s : a === 0 ? s <= 10 ? e.bl_tree[ze * 2]++ : e.bl_tree[Be * 2]++ : (a !== i && e.bl_tree[a * 2]++, e.bl_tree[q * 2]++), s = 0, i = a, o === 0 ? (c = 138, l = 3) : a === o ? (c = 6, l = 3) : (c = 7, l = 4));
}, yt = (e, t, n) => {
let r, i = -1, a, o = t[1], s = 0, c = 7, l = 4;
for (o === 0 && (c = 138, l = 3), r = 0; r <= n; r++) if (a = o, o = t[(r + 1) * 2 + 1], !(++s < c && a === o)) {
if (s < l) do
ot(e, a, e.bl_tree);
while (--s !== 0);
else a === 0 ? s <= 10 ? (ot(e, ze, e.bl_tree), at(e, s - 3, 3)) : (ot(e, Be, e.bl_tree), at(e, s - 11, 7)) : (a !== i && (ot(e, a, e.bl_tree), s--), ot(e, q, e.bl_tree), at(e, s - 3, 2));
s = 0, i = a, o === 0 ? (c = 138, l = 3) : a === o ? (c = 6, l = 3) : (c = 7, l = 4);
}
}, bt = (e) => {
let t;
for (vt(e, e.dyn_ltree, e.l_desc.max_code), vt(e, e.dyn_dtree, e.d_desc.max_code), _t(e, e.bl_desc), t = K - 1; t >= 3 && e.bl_tree[We[t] * 2 + 1] === 0; t--);
return e.opt_len += 3 * (t + 1) + 5 + 5 + 4, t;
}, xt = (e, t, n, r) => {
let i;
for (at(e, t - 257, 5), at(e, n - 1, 5), at(e, r - 4, 4), i = 0; i < r; i++) at(e, e.bl_tree[We[i] * 2 + 1], 3);
yt(e, e.dyn_ltree, t - 1), yt(e, e.dyn_dtree, n - 1);
}, St = (e) => {
let t = 4093624447, n;
for (n = 0; n <= 31; n++, t >>>= 1) if (t & 1 && e.dyn_ltree[n * 2] !== 0) return xe;
if (e.dyn_ltree[18] !== 0 || e.dyn_ltree[20] !== 0 || e.dyn_ltree[26] !== 0) return Se;
for (n = 32; n < je; n++) if (e.dyn_ltree[n * 2] !== 0) return Se;
return xe;
}, Ct = !1, wt = (e) => {
Ct ||= (dt(), !0), e.l_desc = new nt(e.dyn_ltree, $e), e.d_desc = new nt(e.dyn_dtree, et), e.bl_desc = new nt(e.bl_tree, tt), e.bi_buf = 0, e.bi_valid = 0, ft(e);
}, Tt = (e, t, n, r) => {
at(e, (Te << 1) + (r ? 1 : 0), 3), pt(e), it(e, n), it(e, ~n), n && e.pending_buf.set(e.window.subarray(t, t + n), e.pending), e.pending += n;
}, J = {
_tr_init: wt,
_tr_stored_block: Tt,
_tr_flush_block: (e, t, n, r) => {
let i, a, o = 0;
e.level > 0 ? (e.strm.data_type === Ce && (e.strm.data_type = St(e)), _t(e, e.l_desc), _t(e, e.d_desc), o = bt(e), i = e.opt_len + 3 + 7 >>> 3, a = e.static_len + 3 + 7 >>> 3, a <= i && (i = a)) : i = a = n + 5, n + 4 <= i && t !== -1 ? Tt(e, t, n, r) : e.strategy === be || a === i ? (at(e, (Ee << 1) + (r ? 1 : 0), 3), gt(e, Ke, qe)) : (at(e, (De << 1) + (r ? 1 : 0), 3), xt(e, e.l_desc.max_code + 1, e.d_desc.max_code + 1, o + 1), gt(e, e.dyn_ltree, e.dyn_dtree)), ft(e), r && pt(e);
},
_tr_tally: (e, t, n) => (e.pending_buf[e.sym_buf + e.sym_next++] = t, e.pending_buf[e.sym_buf + e.sym_next++] = t >> 8, e.pending_buf[e.sym_buf + e.sym_next++] = n, t === 0 ? e.dyn_ltree[n * 2]++ : (e.matches++, t--, e.dyn_ltree[(Ye[n] + je + 1) * 2]++, e.dyn_dtree[rt(t) * 2]++), e.sym_next === e.sym_end),
_tr_align: (e) => {
at(e, Ee << 1, 3), ot(e, Re, Ke), ct(e);
}
}, Et = (e, t, n, r) => {
let i = e & 65535 | 0, a = e >>> 16 & 65535 | 0, o = 0;
for (; n !== 0;) {
o = n > 2e3 ? 2e3 : n, n -= o;
do
i = i + t[r++] | 0, a = a + i | 0;
while (--o);
i %= 65521, a %= 65521;
}
return i | a << 16 | 0;
}, Dt = new Uint32Array((() => {
let e, t = [];
for (var n = 0; n < 256; n++) {
e = n;
for (var r = 0; r < 8; r++) e = e & 1 ? 3988292384 ^ e >>> 1 : e >>> 1;
t[n] = e;
}
return t;
})()), Ot = (e, t, n, r) => {
let i = Dt, a = r + n;
e ^= -1;
for (let n = r; n < a; n++) e = e >>> 8 ^ i[(e ^ t[n]) & 255];
return e ^ -1;
}, kt = {
2: "need dictionary",
1: "stream end",
0: "",
"-1": "file error",
"-2": "stream error",
"-3": "data error",
"-4": "insufficient memory",
"-5": "buffer error",
"-6": "incompatible version"
}, At = {
Z_NO_FLUSH: 0,
Z_PARTIAL_FLUSH: 1,
Z_SYNC_FLUSH: 2,
Z_FULL_FLUSH: 3,
Z_FINISH: 4,
Z_BLOCK: 5,
Z_TREES: 6,
Z_OK: 0,
Z_STREAM_END: 1,
Z_NEED_DICT: 2,
Z_ERRNO: -1,
Z_STREAM_ERROR: -2,
Z_DATA_ERROR: -3,
Z_MEM_ERROR: -4,
Z_BUF_ERROR: -5,
Z_NO_COMPRESSION: 0,
Z_BEST_SPEED: 1,
Z_BEST_COMPRESSION: 9,
Z_DEFAULT_COMPRESSION: -1,
Z_FILTERED: 1,
Z_HUFFMAN_ONLY: 2,
Z_RLE: 3,
Z_FIXED: 4,
Z_DEFAULT_STRATEGY: 0,
Z_BINARY: 0,
Z_TEXT: 1,
Z_UNKNOWN: 2,
Z_DEFLATED: 8
}, { _tr_init: jt, _tr_stored_block: Mt, _tr_flush_block: Nt, _tr_tally: Pt, _tr_align: Ft } = J, { Z_NO_FLUSH: It, Z_PARTIAL_FLUSH: Lt, Z_FULL_FLUSH: Rt, Z_FINISH: zt, Z_BLOCK: Bt, Z_OK: Vt, Z_STREAM_END: Ht, Z_STREAM_ERROR: Ut, Z_DATA_ERROR: Wt, Z_BUF_ERROR: Gt, Z_DEFAULT_COMPRESSION: Kt, Z_FILTERED: qt, Z_HUFFMAN_ONLY: Jt, Z_RLE: Yt, Z_FIXED: Xt, Z_DEFAULT_STRATEGY: Zt, Z_UNKNOWN: Qt, Z_DEFLATED: $t } = At, en = 9, tn = 15, nn = 8, rn = 286, an = 30, on = 19, sn = 2 * rn + 1, cn = 15, Y = 3, ln = 258, un = ln + Y + 1, dn = 32, fn = 42, pn = 57, mn = 69, hn = 73, gn = 91, _n = 103, vn = 113, yn = 666, bn = 1, xn = 2, Sn = 3, Cn = 4, wn = 3, Tn = (e, t) => (e.msg = kt[t], t), En = (e) => e * 2 - (e > 4 ? 9 : 0), Dn = (e) => {
let t = e.length;
for (; --t >= 0;) e[t] = 0;
}, On = (e) => {
let t, n, r, i = e.w_size;
t = e.hash_size, r = t;
do
n = e.head[--r], e.head[r] = n >= i ? n - i : 0;
while (--t);
t = i, r = t;
do
n = e.prev[--r], e.prev[r] = n >= i ? n - i : 0;
while (--t);
}, kn = (e, t, n) => (t << e.hash_shift ^ n) & e.hash_mask, An = (e) => {
let t = e.state, n = t.pending;
n > e.avail_out && (n = e.avail_out), n !== 0 && (e.output.set(t.pending_buf.subarray(t.pending_out, t.pending_out + n), e.next_out), e.next_out += n, t.pending_out += n, e.total_out += n, e.avail_out -= n, t.pending -= n, t.pending === 0 && (t.pending_out = 0));
}, jn = (e, t) => {
Nt(e, e.block_start >= 0 ? e.block_start : -1, e.strstart - e.block_start, t), e.block_start = e.strstart, An(e.strm);
}, Mn = (e, t) => {
e.pending_buf[e.pending++] = t;
}, Nn = (e, t) => {
e.pending_buf[e.pending++] = t >>> 8 & 255, e.pending_buf[e.pending++] = t & 255;
}, Pn = (e, t, n, r) => {
let i = e.avail_in;
return i > r && (i = r), i === 0 ? 0 : (e.avail_in -= i, t.set(e.input.subarray(e.next_in, e.next_in + i), n), e.state.wrap === 1 ? e.adler = Et(e.adler, t, i, n) : e.state.wrap === 2 && (e.adler = Ot(e.adler, t, i, n)), e.next_in += i, e.total_in += i, i);
}, Fn = (e, t) => {
let n = e.max_chain_length, r = e.strstart, i, a, o = e.prev_length, s = e.nice_match, c = e.strstart > e.w_size - un ? e.strstart - (e.w_size - un) : 0, l = e.window, u = e.w_mask, d = e.prev, f = e.strstart + ln, p = l[r + o - 1], m = l[r + o];
e.prev_length >= e.good_match && (n >>= 2), s > e.lookahead && (s = e.lookahead);
do {
if (i = t, l[i + o] !== m || l[i + o - 1] !== p || l[i] !== l[r] || l[++i] !== l[r + 1]) continue;
r += 2, i++;
do ;
while (l[++r] === l[++i] && l[++r] === l[++i] && l[++r] === l[++i] && l[++r] === l[++i] && l[++r] === l[++i] && l[++r] === l[++i] && l[++r] === l[++i] && l[++r] === l[++i] && r < f);
if (a = ln - (f - r), r = f - ln, a > o) {
if (e.match_start = t, o = a, a >= s) break;
p = l[r + o - 1], m = l[r + o];
}
} while ((t = d[t & u]) > c && --n !== 0);
return o <= e.lookahead ? o : e.lookahead;
}, In = (e) => {
let t = e.w_size, n, r, i;
do {
if (r = e.window_size - e.lookahead - e.strstart, e.strstart >= t + (t - un) && (e.window.set(e.window.subarray(t, t + t - r), 0), e.match_start -= t, e.strstart -= t, e.block_start -= t, e.insert > e.strstart && (e.insert = e.strstart), On(e), r += t), e.strm.avail_in === 0) break;
if (n = Pn(e.strm, e.window, e.strstart + e.lookahead, r), e.lookahead += n, e.lookahead + e.insert >= Y) for (i = e.strstart - e.insert, e.ins_h = e.window[i], e.ins_h = kn(e, e.ins_h, e.window[i + 1]); e.insert && (e.ins_h = kn(e, e.ins_h, e.window[i + Y - 1]), e.prev[i & e.w_mask] = e.head[e.ins_h], e.head[e.ins_h] = i, i++, e.insert--, !(e.lookahead + e.insert < Y)););
} while (e.lookahead < un && e.strm.avail_in !== 0);
}, Ln = (e, t) => {
let n = e.pending_buf_size - 5 > e.w_size ? e.w_size : e.pending_buf_size - 5, r, i, a, o = 0, s = e.strm.avail_in;
do {
if (r = 65535, a = e.bi_valid + 42 >> 3, e.strm.avail_out < a || (a = e.strm.avail_out - a, i = e.strstart - e.block_start, r > i + e.strm.avail_in && (r = i + e.strm.avail_in), r > a && (r = a), r < n && (r === 0 && t !== zt || t === It || r !== i + e.strm.avail_in))) break;
o = t === zt && r === i + e.strm.avail_in ? 1 : 0, Mt(e, 0, 0, o), e.pending_buf[e.pending - 4] = r, e.pending_buf[e.pending - 3] = r >> 8, e.pending_buf[e.pending - 2] = ~r, e.pending_buf[e.pending - 1] = ~r >> 8, An(e.strm), i && (i > r && (i = r), e.strm.output.set(e.window.subarray(e.block_start, e.block_start + i), e.strm.next_out), e.strm.next_out += i, e.strm.avail_out -= i, e.strm.total_out += i, e.block_start += i, r -= i), r && (Pn(e.strm, e.strm.output, e.strm.next_out, r), e.strm.next_out += r, e.strm.avail_out -= r, e.strm.total_out += r);
} while (o === 0);
return s -= e.strm.avail_in, s && (s >= e.w_size ? (e.matches = 2, e.window.set(e.strm.input.subarray(e.strm.next_in - e.w_size, e.strm.next_in), 0), e.strstart = e.w_size, e.insert = e.strstart) : (e.window_size - e.strstart <= s && (e.strstart -= e.w_size, e.window.set(e.window.subarray(e.w_size, e.w_size + e.strstart), 0), e.matches < 2 && e.matches++, e.insert > e.strstart && (e.insert = e.strstart)), e.window.set(e.strm.input.subarray(e.strm.next_in - s, e.strm.next_in), e.strstart), e.strstart += s, e.insert += s > e.w_size - e.insert ? e.w_size - e.insert : s), e.block_start = e.strstart), e.high_water < e.strstart && (e.high_water = e.strstart), o ? Cn : t !== It && t !== zt && e.strm.avail_in === 0 && e.strstart === e.block_start ? xn : (a = e.window_size - e.strstart, e.strm.avail_in > a && e.block_start >= e.w_size && (e.block_start -= e.w_size, e.strstart -= e.w_size, e.window.set(e.window.subarray(e.w_size, e.w_size + e.strstart), 0), e.matches < 2 && e.matches++, a += e.w_size, e.insert > e.strstart && (e.insert = e.strstart)), a > e.strm.avail_in && (a = e.strm.avail_in), a && (Pn(e.strm, e.window, e.strstart, a), e.strstart += a, e.insert += a > e.w_size - e.insert ? e.w_size - e.insert : a), e.high_water < e.strstart && (e.high_water = e.strstart), a = e.bi_valid + 42 >> 3, a = e.pending_buf_size - a > 65535 ? 65535 : e.pending_buf_size - a, n = a > e.w_size ? e.w_size : a, i = e.strstart - e.block_start, (i >= n || (i || t === zt) && t !== It && e.strm.avail_in === 0 && i <= a) && (r = i > a ? a : i, o = t === zt && e.strm.avail_in === 0 && r === i ? 1 : 0, Mt(e, e.block_start, r, o), e.block_start += r, An(e.strm)), o ? Sn : bn);
}, Rn = (e, t) => {
let n, r;
for (;;) {
if (e.lookahead < un) {
if (In(e), e.lookahead < un && t === It) return bn;
if (e.lookahead === 0) break;
}
if (n = 0, e.lookahead >= Y && (e.ins_h = kn(e, e.ins_h, e.window[e.strstart + Y - 1]), n = e.prev[e.strstart & e.w_mask] = e.head[e.ins_h], e.head[e.ins_h] = e.strstart), n !== 0 && e.strstart - n <= e.w_size - un && (e.match_length = Fn(e, n)), e.match_length >= Y) if (r = Pt(e, e.strstart - e.match_start, e.match_length - Y), e.lookahead -= e.match_length, e.match_length <= e.max_lazy_match && e.lookahead >= Y) {
e.match_length--;
do
e.strstart++, e.ins_h = kn(e, e.ins_h, e.window[e.strstart + Y - 1]), n = e.prev[e.strstart & e.w_mask] = e.head[e.ins_h], e.head[e.ins_h] = e.strstart;
while (--e.match_length !== 0);
e.strstart++;
} else e.strstart += e.match_length, e.match_length = 0, e.ins_h = e.window[e.strstart], e.ins_h = kn(e, e.ins_h, e.window[e.strstart + 1]);
else r = Pt(e, 0, e.window[e.strstart]), e.lookahead--, e.strstart++;
if (r && (jn(e, !1), e.strm.avail_out === 0)) return bn;
}
return e.insert = e.strstart < Y - 1 ? e.strstart : Y - 1, t === zt ? (jn(e, !0), e.strm.avail_out === 0 ? Sn : Cn) : e.sym_next && (jn(e, !1), e.strm.avail_out === 0) ? bn : xn;
}, zn = (e, t) => {
let n, r, i;
for (;;) {
if (e.lookahead < un) {
if (In(e), e.lookahead < un && t === It) return bn;
if (e.lookahead === 0) break;
}
if (n = 0, e.lookahead >= Y && (e.ins_h = kn(e, e.ins_h, e.window[e.strstart + Y - 1]), n = e.prev[e.strstart & e.w_mask] = e.head[e.ins_h], e.head[e.ins_h] = e.strstart), e.prev_length = e.match_length, e.prev_match = e.match_start, e.match_length = Y - 1, n !== 0 && e.prev_length < e.max_lazy_match && e.strstart - n <= e.w_size - un && (e.match_length = Fn(e, n), e.match_length <= 5 && (e.strategy === qt || e.match_length === Y && e.strstart - e.match_start > 4096) && (e.match_length = Y - 1)), e.prev_length >= Y && e.match_length <= e.prev_length) {
i = e.strstart + e.lookahead - Y, r = Pt(e, e.strstart - 1 - e.prev_match, e.prev_length - Y), e.lookahead -= e.prev_length - 1, e.prev_length -= 2;
do
++e.strstart <= i && (e.ins_h = kn(e, e.ins_h, e.window[e.strstart + Y - 1]), n = e.prev[e.strstart & e.w_mask] = e.head[e.ins_h], e.head[e.ins_h] = e.strstart);
while (--e.prev_length !== 0);
if (e.match_available = 0, e.match_length = Y - 1, e.strstart++, r && (jn(e, !1), e.strm.avail_out === 0)) return bn;
} else if (e.match_available) {
if (r = Pt(e, 0, e.window[e.strstart - 1]), r && jn(e, !1), e.strstart++, e.lookahead--, e.strm.avail_out === 0) return bn;
} else e.match_available = 1, e.strstart++, e.lookahead--;
}
return e.match_available &&= (r = Pt(e, 0, e.window[e.strstart - 1]), 0), e.insert = e.strstart < Y - 1 ? e.strstart : Y - 1, t === zt ? (jn(e, !0), e.strm.avail_out === 0 ? Sn : Cn) : e.sym_next && (jn(e, !1), e.strm.avail_out === 0) ? bn : xn;
}, Bn = (e, t) => {
let n, r, i, a, o = e.window;
for (;;) {
if (e.lookahead <= ln) {
if (In(e), e.lookahead <= ln && t === It) return bn;
if (e.lookahead === 0) break;
}
if (e.match_length = 0, e.lookahead >= Y && e.strstart > 0 && (i = e.strstart - 1, r = o[i], r === o[++i] && r === o[++i] && r === o[++i])) {
a = e.strstart + ln;
do ;
while (r === o[++i] && r === o[++i] && r === o[++i] && r === o[++i] && r === o[++i] && r === o[++i] && r === o[++i] && r === o[++i] && i < a);
e.match_length = ln - (a - i), e.match_length > e.lookahead && (e.match_length = e.lookahead);
}
if (e.match_length >= Y ? (n = Pt(e, 1, e.match_length - Y), e.lookahead -= e.match_length, e.strstart += e.match_length, e.match_length = 0) : (n = Pt(e, 0, e.window[e.strstart]), e.lookahead--, e.strstart++), n && (jn(e, !1), e.strm.avail_out === 0)) return bn;
}
return e.insert = 0, t === zt ? (jn(e, !0), e.strm.avail_out === 0 ? Sn : Cn) : e.sym_next && (jn(e, !1), e.strm.avail_out === 0) ? bn : xn;
}, Vn = (e, t) => {
let n;
for (;;) {
if (e.lookahead === 0 && (In(e), e.lookahead === 0)) {
if (t === It) return bn;
break;
}
if (e.match_length = 0, n = Pt(e, 0, e.window[e.strstart]), e.lookahead--, e.strstart++, n && (jn(e, !1), e.strm.avail_out === 0)) return bn;
}
return e.insert = 0, t === zt ? (jn(e, !0), e.strm.avail_out === 0 ? Sn : Cn) : e.sym_next && (jn(e, !1), e.strm.avail_out === 0) ? bn : xn;
};
function Hn(e, t, n, r, i) {
this.good_length = e, this.max_lazy = t, this.nice_length = n, this.max_chain = r, this.func = i;
}
var Un = [
new Hn(0, 0, 0, 0, Ln),
new Hn(4, 4, 8, 4, Rn),
new Hn(4, 5, 16, 8, Rn),
new Hn(4, 6, 32, 32, Rn),
new Hn(4, 4, 16, 16, zn),
new Hn(8, 16, 32, 32, zn),
new Hn(8, 16, 128, 128, zn),
new Hn(8, 32, 128, 256, zn),
new Hn(32, 128, 258, 1024, zn),
new Hn(32, 258, 258, 4096, zn)
], Wn = (e) => {
e.window_size = 2 * e.w_size, Dn(e.head), e.max_lazy_match = Un[e.level].max_lazy, e.good_match = Un[e.level].good_length, e.nice_match = Un[e.level].nice_length, e.max_chain_length = Un[e.level].max_chain, e.strstart = 0, e.block_start = 0, e.lookahead = 0, e.insert = 0, e.match_length = e.prev_length = Y - 1, e.match_available = 0, e.ins_h = 0;
};
function Gn() {
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 = $t, 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(sn * 2), this.dyn_dtree = new Uint16Array((2 * an + 1) * 2), this.bl_tree = new Uint16Array((2 * on + 1) * 2), Dn(this.dyn_ltree), Dn(this.dyn_dtree), Dn(this.bl_tree), this.l_desc = null, this.d_desc = null, this.bl_desc = null, this.bl_count = new Uint16Array(cn + 1), this.heap = new Uint16Array(2 * rn + 1), Dn(this.heap), this.heap_len = 0, this.heap_max = 0, this.depth = new Uint16Array(2 * rn + 1), Dn(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;
}
var Kn = (e) => {
if (!e) return 1;
let t = e.state;
return !t || t.strm !== e || t.status !== fn && t.status !== pn && t.status !== mn && t.status !== hn && t.status !== gn && t.status !== _n && t.status !== vn && t.status !== yn ? 1 : 0;
}, qn = (e) => {
if (Kn(e)) return Tn(e, Ut);
e.total_in = e.total_out = 0, e.data_type = Qt;
let t = e.state;
return t.pending = 0, t.pending_out = 0, t.wrap < 0 && (t.wrap = -t.wrap), t.status = t.wrap === 2 ? pn : t.wrap ? fn : vn, e.adler = t.wrap === 2 ? 0 : 1, t.last_flush = -2, jt(t), Vt;
}, Jn = (e) => {
let t = qn(e);
return t === Vt && Wn(e.state), t;
}, Yn = (e, t) => Kn(e) || e.state.wrap !== 2 ? Ut : (e.state.gzhead = t, Vt), Xn = (e, t, n, r, i, a) => {
if (!e) return Ut;
let o = 1;
if (t === Kt && (t = 6), r < 0 ? (o = 0, r = -r) : r > 15 && (o = 2, r -= 16), i < 1 || i > en || n !== $t || r < 8 || r > 15 || t < 0 || t > 9