cesium-mars-op-cog 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +338 -337
- package/dist/index.js.map +1 -1
- package/dist/workers/cogTile.worker.bundle.d.ts +2 -0
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import { Event as
|
|
3
|
-
import
|
|
4
|
-
import { onUnmounted as
|
|
5
|
-
var
|
|
1
|
+
import * as u from "cesium";
|
|
2
|
+
import { Event as N, GeographicTilingScheme as k, Rectangle as p } from "cesium";
|
|
3
|
+
import S from "proj4";
|
|
4
|
+
import { onUnmounted as _, ref as G, shallowRef as F } from "vue";
|
|
5
|
+
var R = class {
|
|
6
6
|
poolSize;
|
|
7
7
|
maxLoadPerWorker;
|
|
8
8
|
workers = [];
|
|
@@ -14,137 +14,137 @@ var w = class {
|
|
|
14
14
|
workerInitializing = /* @__PURE__ */ new Set();
|
|
15
15
|
initPayload = null;
|
|
16
16
|
_initPromise = null;
|
|
17
|
-
constructor(
|
|
18
|
-
this.poolSize =
|
|
19
|
-
for (let
|
|
20
|
-
const
|
|
21
|
-
|
|
17
|
+
constructor(A, t = navigator.hardwareConcurrency || 4, e = 4) {
|
|
18
|
+
this.poolSize = t, this.maxLoadPerWorker = e;
|
|
19
|
+
for (let i = 0; i < t; i++) {
|
|
20
|
+
const I = A();
|
|
21
|
+
I.onmessage = (g) => this._handleMessage(g, i), I.onerror = (g) => console.error("Worker error:", g), this.workers.push(I), this.workerLoad.set(i, 0);
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
-
async initOne(
|
|
25
|
-
this.initPayload =
|
|
26
|
-
const
|
|
27
|
-
const
|
|
28
|
-
this.taskMap.set(
|
|
29
|
-
resolve:
|
|
30
|
-
reject:
|
|
24
|
+
async initOne(A) {
|
|
25
|
+
this.initPayload = A, this.workerInitialized.clear(), this.workerInitializing.clear();
|
|
26
|
+
const t = await new Promise((e, i) => {
|
|
27
|
+
const I = ++this.taskIdCounter;
|
|
28
|
+
this.taskMap.set(I, {
|
|
29
|
+
resolve: e,
|
|
30
|
+
reject: i
|
|
31
31
|
}), this.workerLoad.set(0, (this.workerLoad.get(0) || 0) + 1), this.workerInitializing.add(0), this.workers[0].postMessage({
|
|
32
32
|
type: "INIT",
|
|
33
|
-
payload:
|
|
34
|
-
taskId:
|
|
33
|
+
payload: A,
|
|
34
|
+
taskId: I
|
|
35
35
|
});
|
|
36
36
|
});
|
|
37
|
-
return this._initPromise = this._initRemainingWorkers(),
|
|
37
|
+
return this._initPromise = this._initRemainingWorkers(), t;
|
|
38
38
|
}
|
|
39
39
|
async _initRemainingWorkers() {
|
|
40
|
-
const
|
|
41
|
-
for (let
|
|
42
|
-
this.workerInitializing.add(
|
|
43
|
-
const
|
|
44
|
-
this.taskMap.set(
|
|
45
|
-
resolve: () =>
|
|
46
|
-
reject: () =>
|
|
47
|
-
}), this.workerLoad.set(
|
|
40
|
+
const A = [];
|
|
41
|
+
for (let t = 1; t < this.poolSize; t++) !this.workerInitialized.has(t) && !this.workerInitializing.has(t) && A.push(new Promise((e) => {
|
|
42
|
+
this.workerInitializing.add(t);
|
|
43
|
+
const i = ++this.taskIdCounter;
|
|
44
|
+
this.taskMap.set(i, {
|
|
45
|
+
resolve: () => e(),
|
|
46
|
+
reject: () => e()
|
|
47
|
+
}), this.workerLoad.set(t, (this.workerLoad.get(t) || 0) + 1), this.workers[t].postMessage({
|
|
48
48
|
type: "LAZY_INIT",
|
|
49
49
|
payload: this.initPayload,
|
|
50
|
-
taskId:
|
|
50
|
+
taskId: i
|
|
51
51
|
});
|
|
52
52
|
}));
|
|
53
|
-
await Promise.allSettled(
|
|
53
|
+
await Promise.allSettled(A);
|
|
54
54
|
}
|
|
55
55
|
_getLeastLoadedWorker() {
|
|
56
|
-
let
|
|
57
|
-
for (const
|
|
58
|
-
const
|
|
59
|
-
|
|
56
|
+
let A = -1, t = 1 / 0;
|
|
57
|
+
for (const e of this.workerInitialized) {
|
|
58
|
+
const i = this.workerLoad.get(e) ?? 0;
|
|
59
|
+
i < t && (t = i, A = e);
|
|
60
60
|
}
|
|
61
|
-
if (
|
|
62
|
-
for (const [
|
|
63
|
-
return
|
|
61
|
+
if (A === -1)
|
|
62
|
+
for (const [e, i] of this.workerLoad.entries()) i < t && (t = i, A = e);
|
|
63
|
+
return A >= 0 ? A : 0;
|
|
64
64
|
}
|
|
65
|
-
_handleMessage(
|
|
66
|
-
const { type:
|
|
67
|
-
if (!
|
|
68
|
-
const
|
|
69
|
-
this.workerLoad.set(
|
|
65
|
+
_handleMessage(A, t) {
|
|
66
|
+
const { type: e, taskId: i, payload: I } = A.data, g = this.taskMap.get(i);
|
|
67
|
+
if (!g) return;
|
|
68
|
+
const s = this.workerLoad.get(t) || 1;
|
|
69
|
+
this.workerLoad.set(t, Math.max(0, s - 1)), e === "INIT_DONE" ? (this.workerInitialized.add(t), this.workerInitializing.delete(t), g.resolve(I)) : e === "TILE_DONE" ? g.resolve(I) : e === "ERROR" && (this.workerInitializing.has(t) && (this.workerInitialized.add(t), this.workerInitializing.delete(t)), g.reject(new Error(I?.error || "Worker error"))), this.taskMap.delete(i), this._processQueue();
|
|
70
70
|
}
|
|
71
71
|
_processQueue() {
|
|
72
72
|
if (this.queue.length === 0) return;
|
|
73
|
-
let
|
|
74
|
-
const
|
|
75
|
-
for (let
|
|
76
|
-
let
|
|
77
|
-
for (const
|
|
78
|
-
const
|
|
79
|
-
|
|
73
|
+
let A = 0;
|
|
74
|
+
const t = Math.min(this.queue.length, this.poolSize);
|
|
75
|
+
for (let e = 0; e < t; e++) {
|
|
76
|
+
let i = -1, I = 1 / 0;
|
|
77
|
+
for (const a of this.workerInitialized) {
|
|
78
|
+
const n = this.workerLoad.get(a) ?? 0;
|
|
79
|
+
n < this.maxLoadPerWorker && n < I && (I = n, i = a);
|
|
80
80
|
}
|
|
81
|
-
if (
|
|
82
|
-
for (let
|
|
83
|
-
this.workerInitializing.add(
|
|
84
|
-
const
|
|
85
|
-
this.taskMap.set(
|
|
81
|
+
if (i === -1) {
|
|
82
|
+
for (let a = 0; a < this.poolSize; a++) if (!this.workerInitialized.has(a) && !this.workerInitializing.has(a)) {
|
|
83
|
+
this.workerInitializing.add(a);
|
|
84
|
+
const n = ++this.taskIdCounter;
|
|
85
|
+
this.taskMap.set(n, {
|
|
86
86
|
resolve: () => {
|
|
87
87
|
},
|
|
88
88
|
reject: () => {
|
|
89
89
|
}
|
|
90
|
-
}), this.workerLoad.set(
|
|
90
|
+
}), this.workerLoad.set(a, (this.workerLoad.get(a) || 0) + 1), this.workers[a].postMessage({
|
|
91
91
|
type: "LAZY_INIT",
|
|
92
92
|
payload: this.initPayload,
|
|
93
|
-
taskId:
|
|
93
|
+
taskId: n
|
|
94
94
|
});
|
|
95
95
|
break;
|
|
96
96
|
}
|
|
97
97
|
break;
|
|
98
98
|
}
|
|
99
|
-
const
|
|
100
|
-
|
|
101
|
-
const
|
|
102
|
-
this.taskMap.set(
|
|
103
|
-
resolve:
|
|
104
|
-
reject:
|
|
105
|
-
}), this.workerLoad.set(
|
|
106
|
-
type:
|
|
107
|
-
payload:
|
|
108
|
-
taskId:
|
|
99
|
+
const g = this.queue.shift();
|
|
100
|
+
A++;
|
|
101
|
+
const s = ++this.taskIdCounter;
|
|
102
|
+
this.taskMap.set(s, {
|
|
103
|
+
resolve: g.resolve,
|
|
104
|
+
reject: g.reject
|
|
105
|
+
}), this.workerLoad.set(i, (this.workerLoad.get(i) || 0) + 1), this.workers[i].postMessage({
|
|
106
|
+
type: g.type,
|
|
107
|
+
payload: g.payload,
|
|
108
|
+
taskId: s
|
|
109
109
|
});
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
|
-
execute(
|
|
113
|
-
return new Promise((
|
|
112
|
+
execute(A, t) {
|
|
113
|
+
return new Promise((e, i) => {
|
|
114
114
|
this.queue.push({
|
|
115
|
-
type:
|
|
116
|
-
payload:
|
|
117
|
-
resolve:
|
|
118
|
-
reject:
|
|
115
|
+
type: A,
|
|
116
|
+
payload: t,
|
|
117
|
+
resolve: e,
|
|
118
|
+
reject: i
|
|
119
119
|
}), this._processQueue();
|
|
120
120
|
});
|
|
121
121
|
}
|
|
122
122
|
terminate() {
|
|
123
|
-
for (const
|
|
124
|
-
for (const [,
|
|
125
|
-
for (const
|
|
123
|
+
for (const A of this.queue) A.reject?.(/* @__PURE__ */ new Error("WorkerPool 已终止"));
|
|
124
|
+
for (const [, A] of this.taskMap) A.reject?.(/* @__PURE__ */ new Error("WorkerPool 已终止"));
|
|
125
|
+
for (const A of this.workers) A.terminate();
|
|
126
126
|
this.workers = [], this.queue = [], this.taskMap.clear(), this.workerInitialized.clear(), this.workerInitializing.clear();
|
|
127
127
|
}
|
|
128
|
-
},
|
|
128
|
+
}, L = class {
|
|
129
129
|
max;
|
|
130
130
|
map;
|
|
131
131
|
onEvict;
|
|
132
|
-
constructor(
|
|
133
|
-
this.max =
|
|
132
|
+
constructor(A = 256, t) {
|
|
133
|
+
this.max = A, this.map = /* @__PURE__ */ new Map(), this.onEvict = t ?? null;
|
|
134
134
|
}
|
|
135
|
-
get(
|
|
136
|
-
if (!this.map.has(
|
|
137
|
-
const
|
|
138
|
-
return this.map.delete(
|
|
135
|
+
get(A) {
|
|
136
|
+
if (!this.map.has(A)) return;
|
|
137
|
+
const t = this.map.get(A);
|
|
138
|
+
return this.map.delete(A), this.map.set(A, t), t;
|
|
139
139
|
}
|
|
140
|
-
set(
|
|
141
|
-
if (this.map.has(
|
|
142
|
-
const
|
|
143
|
-
this.map.delete(
|
|
140
|
+
set(A, t) {
|
|
141
|
+
if (this.map.has(A) && this.map.delete(A), this.map.set(A, t), this.map.size > this.max) {
|
|
142
|
+
const e = this.map.keys().next().value, i = this.map.get(e);
|
|
143
|
+
this.map.delete(e), this.onEvict?.(e, i);
|
|
144
144
|
}
|
|
145
145
|
}
|
|
146
|
-
delete(
|
|
147
|
-
return this.map.delete(
|
|
146
|
+
delete(A) {
|
|
147
|
+
return this.map.delete(A);
|
|
148
148
|
}
|
|
149
149
|
clear() {
|
|
150
150
|
this.map.clear();
|
|
@@ -153,28 +153,29 @@ var w = class {
|
|
|
153
153
|
return this.map.size;
|
|
154
154
|
}
|
|
155
155
|
};
|
|
156
|
-
function
|
|
157
|
-
|
|
158
|
-
for (let
|
|
159
|
-
const
|
|
160
|
-
|
|
156
|
+
function U() {
|
|
157
|
+
S.defs("EPSG:3857", "+proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs"), S.defs("EPSG:4326", "+proj=longlat +datum=WGS84 +no_defs"), S.defs("EPSG:4548", "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
|
|
158
|
+
for (let A = 75; A <= 135; A += 3) {
|
|
159
|
+
const t = 4524 + Math.floor((A - 75) / 3);
|
|
160
|
+
S.defs(`EPSG:${t}`, `+proj=tmerc +lat_0=0 +lon_0=${A} +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs`);
|
|
161
161
|
}
|
|
162
162
|
}
|
|
163
|
-
function F() {
|
|
164
|
-
const g = new URL("data:video/mp2t;base64,aW1wb3J0ICogYXMgR2VvVElGRiBmcm9tICdnZW90aWZmJw0KaW1wb3J0IHR5cGUgeyBHZW9USUZGIGFzIEdlb1RJRkZUeXBlLCBHZW9USUZGSW1hZ2UgfSBmcm9tICdnZW90aWZmJw0KaW1wb3J0IHByb2o0IGZyb20gJ3Byb2o0Jw0KDQovLyBaU1REIOWOi+e8qeino+eggeWZqOmdmeaAgeWvvOWFpQ0KLy8gZ2VvdGlmZi5qcyDlhoXpg6jkvb/nlKjliqjmgIEgaW1wb3J0KCkg5p2l5Yqg6L29IHpzdGQg6Kej56CB5Zmo77yM5L2GIFZpdGUg55qE57uP5YW4IFdvcmtlciAoID93b3JrZXIgKQ0KLy8g5LiN5pSv5oyB5Yqo5oCB5a+85YWl44CC5q2k5aSE6Z2Z5oCB5a+85YWl5bm25o+Q5YmN5rOo5YaM77yM56Gu5L+dIDM4NTcg5b2x5YOP77yI5L2/55SoIFpTVEQg5Y6L57yp77yJ6IO95q2j5bi46Kej56CB44CCDQppbXBvcnQgeyBaU1RERGVjb2RlciB9IGZyb20gJ3pzdGRkZWMvc3RyZWFtJw0KDQovLyAtLS0tIFdvcmtlciDmtojmga/nsbvlnovlrprkuYkgLS0tLQ0KDQovKiog5Li757q/56iLIOKGkiBXb3JrZXIg5raI5oGvICovDQp0eXBlIFdvcmtlckluTWVzc2FnZSA9DQogIHwgeyB0eXBlOiAnSU5JVCc7IHBheWxvYWQ6IHsgdXJsOiBzdHJpbmcgfTsgdGFza0lkOiBudW1iZXIgfQ0KICB8IHsgdHlwZTogJ0xBWllfSU5JVCc7IHBheWxvYWQ6IHsgdXJsOiBzdHJpbmcgfTsgdGFza0lkOiBudW1iZXIgfQ0KICB8IHsNCiAgICAgIHR5cGU6ICdQUk9DRVNTX1RJTEUnDQogICAgICBwYXlsb2FkOiB7DQogICAgICAgIHg6IG51bWJlcg0KICAgICAgICB5OiBudW1iZXINCiAgICAgICAgbGV2ZWw6IG51bWJlcg0KICAgICAgICB0aWxlUmVjdDogeyB3ZXN0OiBudW1iZXI7IHNvdXRoOiBudW1iZXI7IGVhc3Q6IG51bWJlcjsgbm9ydGg6IG51bWJlciB9DQogICAgICAgIGFscGhhPzogbnVtYmVyDQogICAgICB9DQogICAgICB0YXNrSWQ6IG51bWJlcg0KICAgIH0NCg0KLyoqIFdvcmtlciDihpIg5Li757q/56iLIOWTjeW6lOa2iOaBryAqLw0KdHlwZSBXb3JrZXJPdXRNZXNzYWdlID0NCiAgfCB7DQogICAgICB0eXBlOiAnSU5JVF9ET05FJw0KICAgICAgdGFza0lkOiBudW1iZXINCiAgICAgIHBheWxvYWQ6IHsNCiAgICAgICAgc3VjY2VzczogYm9vbGVhbg0KICAgICAgICBiYm94OiBudW1iZXJbXQ0KICAgICAgICBjcnNUeXBlOiBDcnNUeXBlDQogICAgICAgIG1heExldmVsOiBudW1iZXINCiAgICAgICAgbWluTGV2ZWw6IG51bWJlcg0KICAgICAgfQ0KICAgIH0NCiAgfCB7IHR5cGU6ICdUSUxFX0RPTkUnOyB0YXNrSWQ6IG51bWJlcjsgcGF5bG9hZDogeyBiaXRtYXA/OiBJbWFnZUJpdG1hcDsgZW1wdHk6IGJvb2xlYW4gfSB9DQogIHwgeyB0eXBlOiAnRVJST1InOyB0YXNrSWQ6IG51bWJlcjsgcGF5bG9hZDogeyBlcnJvcjogc3RyaW5nIH0gfQ0KDQovKiogQ1JTIOexu+WeiyAqLw0KdHlwZSBDcnNUeXBlID0gJzQzMjYnIHwgJzM4NTcnIHwgJzQ1NDgnDQoNCi8qKiDnsbvlnovljJbmlbDnu4TogZTlkIjnsbvlnosgKi8NCnR5cGUgVHlwZWRBcnJheSA9DQogIHwgSW50OEFycmF5DQogIHwgVWludDhBcnJheQ0KICB8IEludDE2QXJyYXkNCiAgfCBVaW50MTZBcnJheQ0KICB8IEludDMyQXJyYXkNCiAgfCBVaW50MzJBcnJheQ0KICB8IFVpbnQ4Q2xhbXBlZEFycmF5DQogIHwgRmxvYXQzMkFycmF5DQogIHwgRmxvYXQ2NEFycmF5DQoNCi8qKiDlr7npvZDnqpflj6PorqHnrpfnu5PmnpwgKi8NCmludGVyZmFjZSBBbGlnbmVkV2luZG93IHsNCiAgYmxvY2tzOiBudW1iZXINCiAgaW1nVzogbnVtYmVyDQogIGltZ0g6IG51bWJlcg0KICByZWFkWDogbnVtYmVyDQogIHJlYWRZOiBudW1iZXINCiAgcmVhZFc6IG51bWJlcg0KICByZWFkSDogbnVtYmVyDQogIGFsaWduZWRYOiBudW1iZXINCiAgYWxpZ25lZFk6IG51bWJlcg0KICBhbGlnbmVkVzogbnVtYmVyDQogIGFsaWduZWRIOiBudW1iZXINCn0NCg0KLy8g5omp5bGVIFdvcmtlciDlhajlsYDkvZznlKjln5/nsbvlnovvvIjkuI3kvp3otZYgd2Vid29ya2VyIGxpYu+8iQ0KZGVjbGFyZSBjb25zdCBzZWxmOiB7DQogIHBvc3RNZXNzYWdlKG1lc3NhZ2U6IFdvcmtlck91dE1lc3NhZ2UsIHRyYW5zZmVyPzogVHJhbnNmZXJhYmxlW10pOiB2b2lkDQogIG9ubWVzc2FnZTogKChldjogTWVzc2FnZUV2ZW50PFdvcmtlckluTWVzc2FnZT4pID0+IHZvaWQpIHwgbnVsbA0KfQ0KDQovLyAtLS0tIENSUyDms6jlhowgLS0tLQ0KDQovLyDms6jlhozluLjnlKggQ1JTIOWumuS5iQ0KcHJvajQuZGVmcygNCiAgJ0VQU0c6Mzg1NycsDQogICcrcHJvaj1tZXJjICthPTYzNzgxMzcgK2I9NjM3ODEzNyArbGF0X3RzPTAgK2xvbl8wPTAgK3hfMD0wICt5XzA9MCAraz0xICt1bml0cz1tICtuYWRncmlkcz1AbnVsbCArd2t0ZXh0ICtub19kZWZzJywNCikNCnByb2o0LmRlZnMoJ0VQU0c6NDMyNicsICcrcHJvaj1sb25nbGF0ICtkYXR1bT1XR1M4NCArbm9fZGVmcycpDQovLyBFUFNHOjQ1NDggPSBDR0NTMjAwMCAvIDMtZGVncmVlIEdhdXNzLUtydWdlciB6b25lIDQwIChDTSAxMjDCsEUpDQovLyDms6jmhI/vvJrpg6jliIYgQ09HIOaWh+S7tiBFUFNHIOWFg+aVsOaNrue8uuWkse+8jOWunumZheWdkOagh+WxnuS6juS4jeWQjCAzwrAg5bim44CCDQovLyDmoIflh4YgM8KwIOW4pu+8muS4nOe7jyAxMTjCsDMwJ34xMjHCsDMwJyDkuLogem9uZSAzOSAoQ00gMTE3wrBFKeOAgg0KLy8gR2V0R2VvS2V5cyDml6Dms5Xor7vlj5YgRVBTRyDlj7fml7bvvIxkZXRlY3RDcnNUeXBlIOm7mOiupOWIpOS4uiA0NTQ4IOS9huS4reWkrue7j+e6v+WPr+iDveS4jeWMuemFjeOAgg0KLy8g5pys5paH5Lu25Z2Q5qCHIGVhc3Rpbmcg4omIIDcwNmtt77yI5ZCrIDUwMGttIOWBh+S4nOenu++8ie+8jOeUqCBDTSAxMTfCsEUg6K6h566XIOKGkiDpmYblnLANCnByb2o0LmRlZnMoDQogICdFUFNHOjQ1NDgnLA0KICAnK3Byb2o9dG1lcmMgK2xhdF8wPTAgK2xvbl8wPTExNyAraz0xICt4XzA9NTAwMDAwICt5XzA9MCArZWxscHM9R1JTODAgK3VuaXRzPW0gK25vX2RlZnMnLA0KKQ0KDQovLyAtLS0tIOW4uOmHj+S4jueKtuaAgSAtLS0tDQoNCmNvbnN0IFRJTEVfU0laRSA9IDI1Ng0KDQpjb25zdCB0aWxlQ2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcyhUSUxFX1NJWkUsIFRJTEVfU0laRSkNCmNvbnN0IHRpbGVDdHggPSB0aWxlQ2FudmFzLmdldENvbnRleHQoJzJkJywgew0KICB3aWxsUmVhZEZyZXF1ZW50bHk6IGZhbHNlLA0KICBhbHBoYTogdHJ1ZSwNCn0pIQ0KDQovLyDkuK3pl7QgQ2FudmFz77ya55So5LqO5Y6f55Sf5YiG6L6o546H5riy5p+T5ZCO6YCa6L+HIEdQVSDnvKnmlL7vvIjlsLrlr7jlnKjliJ3lp4vljJbml7bliqjmgIHorr7lrprvvIkNCmxldCBzdGFnaW5nQ2FudmFzOiBPZmZzY3JlZW5DYW52YXMNCmxldCBzdGFnaW5nQ3R4OiBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgfCBudWxsID0gbnVsbA0KDQpmdW5jdGlvbiBlbnN1cmVTdGFnaW5nQ2FudmFzKHNpemU6IG51bWJlcik6IE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB7DQogIGlmICghc3RhZ2luZ0NhbnZhcyB8fCBzdGFnaW5nQ2FudmFzLndpZHRoIDwgc2l6ZSB8fCBzdGFnaW5nQ2FudmFzLmhlaWdodCA8IHNpemUpIHsNCiAgICBjb25zdCBuZXdTaXplID0gTWF0aC5jZWlsKHNpemUgLyA1MTIpICogNTEyDQogICAgc3RhZ2luZ0NhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMobmV3U2l6ZSwgbmV3U2l6ZSkNCiAgICBzdGFnaW5nQ3R4ID0gc3RhZ2luZ0NhbnZhcy5nZXRDb250ZXh0KCcyZCcsIHsNCiAgICAgIGFscGhhOiB0cnVlLA0KICAgICAgZGVzeW5jaHJvbml6ZWQ6IHRydWUsDQogICAgfSkhDQogIH0NCiAgcmV0dXJuIHN0YWdpbmdDdHghDQp9DQoNCi8vIOmihOWIhumFjeWPr+WkjeeUqOeahOWDj+e0oOe8k+WGsuWMuu+8jOmBv+WFjeavj+S4queTpueJh+mDvemHjeaWsOWIhumFjeWGheWtmA0KY29uc3QgTUFYX1NUQUdJTkdfU0laRSA9IDQwOTYNCmNvbnN0IHJldXNhYmxlUGl4ZWxCdWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoTUFYX1NUQUdJTkdfU0laRSAqIE1BWF9TVEFHSU5HX1NJWkUgKiA0KQ0KY29uc3QgcmV1c2FibGVQeDMyID0gbmV3IFVpbnQzMkFycmF5KHJldXNhYmxlUGl4ZWxCdWZmZXIpDQpjb25zdCByZXVzYWJsZVB4OCA9IG5ldyBVaW50OENsYW1wZWRBcnJheShyZXVzYWJsZVBpeGVsQnVmZmVyKQ0KDQovKiog5Yqo5oCB6I635Y+W55qEIENPRyDlhoXpg6ggdGlsZSDlnZflpKflsI/vvIzliJ3lp4vljJbml7bku47mlofku7bor7vlj5YgKi8NCmxldCBibG9ja1NpemUgPSA1MTINCg0KLy8g5oeS5Yid5aeL5YyW6ZSB77yM6Ziy5q2i5aSa5LiqIFBST0NFU1NfVElMRSDlubblj5HosIPnlKggX2Z1bGxJbml0DQpsZXQgX2luaXRMb2NrOiBQcm9taXNlPHZvaWQ+IHwgbnVsbCA9IG51bGwNCg0KbGV0IHRpZmY6IEdlb1RJRkZUeXBlIHwgbnVsbCA9IG51bGwNCmxldCBpbWFnZXM6IEdlb1RJRkZJbWFnZVtdID0gW10NCmxldCBpbWFnZVJlc29sdXRpb25zOiBudW1iZXJbXSA9IFtdDQpsZXQgc2FtcGxlc1BlclBpeGVsID0gMQ0KbGV0IGhhc0FscGhhID0gZmFsc2UNCmxldCBjb2dCYm94OiBudW1iZXJbXSB8IG51bGwgPSBudWxsDQpsZXQgY3JzVHlwZTogQ3JzVHlwZSA9ICc0MzI2JyAvLyDlvZPliY0gQ09HIOeahCBDUlMg57G75Z6LDQpsZXQgYmJveElzUHJvamVjdGVkID0gZmFsc2UgLy8gY29nQmJveCDmmK/lkKbku6XmipXlvbHlnZDmoIfvvIjnsbPvvInkuLrljZXkvY3vvIxmYWxzZSDliJnkuLrluqblnZDmoIcNCg0KLy8g5oeS5Yid5aeL5YyW77ya6Z2e5Li7IFdvcmtlciDlhYjlrZggVVJM77yM6aaW5qyh5aSE55CG55Om54mH5pe25YaN5Yqg6L29DQpsZXQgbGF6eVVybDogc3RyaW5nIHwgbnVsbCA9IG51bGwNCg0KLy8gLS0tLSDovoXliqnlh73mlbAgLS0tLQ0KDQovKiog5b2T5YmNIENPRyDmmK/lkKbkuLrmipXlvbHlnZDmoIfns7vvvIgzODU3LzQ1NDgg562J57Gz5Y2V5L2NIENSU++8iSAqLw0KZnVuY3Rpb24gaXNQcm9qZWN0ZWRDcnMoKTogYm9vbGVhbiB7DQogIHJldHVybiBjcnNUeXBlID09PSAnMzg1NycgfHwgY3JzVHlwZSA9PT0gJzQ1NDgnDQp9DQoNCi8vIOe8k+WtmCBwcm9qNCDlnZDmoIfovazmjaLlmajvvIzpgb/lhY3mr4/nk6bniYfpg73ph43mlrDliJvlu7oNCmNvbnN0IHRvTWVyY2F0b3IgPSBwcm9qNCgnRVBTRzo0MzI2JywgJ0VQU0c6Mzg1NycpIC8vIOW6piDihpIgMzg1NyDnsbMNCmNvbnN0IGZyb21NZXJjYXRvciA9IHByb2o0KCdFUFNHOjM4NTcnLCAnRVBTRzo0MzI2JykgLy8gMzg1NyDnsbMg4oaSIOW6pg0KbGV0IF90bzQ1NDg6IHByb2o0LkNvbnZlcnRlciB8IG51bGwgPSBudWxsDQpsZXQgX2Zyb200NTQ4OiBwcm9qNC5Db252ZXJ0ZXIgfCBudWxsID0gbnVsbA0KDQpmdW5jdGlvbiBnZXRUbzQ1NDgoKTogcHJvajQuQ29udmVydGVyIHsNCiAgaWYgKCFfdG80NTQ4KSBfdG80NTQ4ID0gcHJvajQoJ0VQU0c6NDMyNicsICdFUFNHOjQ1NDgnKQ0KICByZXR1cm4gX3RvNDU0OA0KfQ0KZnVuY3Rpb24gZ2V0RnJvbTQ1NDgoKTogcHJvajQuQ29udmVydGVyIHsNCiAgaWYgKCFfZnJvbTQ1NDgpIF9mcm9tNDU0OCA9IHByb2o0KCdFUFNHOjQ1NDgnLCAnRVBTRzo0MzI2JykNCiAgcmV0dXJuIF9mcm9tNDU0OA0KfQ0KDQovKiog5bCGIENPRyDmipXlvbHlnZDmoIcgKDM4NTcvNDU0OCkg6L2s5o2i5Li6IFdHUzg0IOW6puWdkOaghyAqLw0KZnVuY3Rpb24gcHJvamVjdGVkVG9EZWdyZWVzKHg6IG51bWJlciwgeTogbnVtYmVyKTogW251bWJlciwgbnVtYmVyXSB7DQogIGlmIChjcnNUeXBlID09PSAnMzg1NycpIHJldHVybiBmcm9tTWVyY2F0b3IuZm9yd2FyZChbeCwgeV0pIGFzIFtudW1iZXIsIG51bWJlcl0NCiAgaWYgKGNyc1R5cGUgPT09ICc0NTQ4JykgcmV0dXJuIGdldEZyb200NTQ4KCkuZm9yd2FyZChbeCwgeV0pIGFzIFtudW1iZXIsIG51bWJlcl0NCiAgcmV0dXJuIFt4LCB5XQ0KfQ0KDQovKiog5bCGIFdHUzg0IOW6puWdkOagh+i9rOaNouS4uiBDT0cg5oqV5b2x5Z2Q5qCHICovDQpmdW5jdGlvbiBkZWdyZWVzVG9Qcm9qZWN0ZWQoeDogbnVtYmVyLCB5OiBudW1iZXIpOiBbbnVtYmVyLCBudW1iZXJdIHsNCiAgaWYgKGNyc1R5cGUgPT09ICczODU3JykgcmV0dXJuIHRvTWVyY2F0b3IuZm9yd2FyZChbeCwgeV0pIGFzIFtudW1iZXIsIG51bWJlcl0NCiAgaWYgKGNyc1R5cGUgPT09ICc0NTQ4JykgcmV0dXJuIGdldFRvNDU0OCgpLmZvcndhcmQoW3gsIHldKSBhcyBbbnVtYmVyLCBudW1iZXJdDQogIHJldHVybiBbeCwgeV0NCn0NCg0KLyoqDQogKiDmo4DmtYsgQ1JTIOexu+Weiw0KICogQHBhcmFtIGJib3ggLSBDT0cg55qE5Y6f5aeLIGJib3gNCiAqIEBwYXJhbSBlcHNnIC0g5LuOIENPRyDlhYPmlbDmja7or7vlj5bnmoQgRVBTRyDnvJblj7cNCiAqLw0KZnVuY3Rpb24gZGV0ZWN0Q3JzVHlwZShiYm94OiBudW1iZXJbXSwgZXBzZzogbnVtYmVyIHwgbnVsbCk6IENyc1R5cGUgew0KICAvLyBXZWIgTWVyY2F0b3Ig55qE5bi46KeBIEVQU0cg5Luj56CBDQogIC8vIDM4NTcgKFdHUyA4NCAvIFBzZXVkby1NZXJjYXRvcikNCiAgLy8gMTAyMTAwIChFc3JpIFdlYiBNZXJjYXRvcikNCiAgLy8gOTAwOTEzIChHb29nbGUgV2ViIE1lcmNhdG9yKQ0KICAvLyA0MTAwMSAocG9wdWxhciBXZWIgTWVyY2F0b3IgYWxpYXMpDQogIGlmIChlcHNnID09PSAzODU3IHx8IGVwc2cgPT09IDEwMjEwMCB8fCBlcHNnID09PSA5MDA5MTMgfHwgZXBzZyA9PT0gNDEwMDEpIHJldHVybiAnMzg1NycNCiAgaWYgKGVwc2cgPT09IDQ1NDgpIHJldHVybiAnNDU0OCcNCiAgaWYgKGVwc2cgPT09IDQzMjYpIHJldHVybiAnNDMyNicNCiAgLy8g5pegIEVQU0cg5oiW5pyq6K+G5Yir55qEIEVQU0cg5pe26Z2gIGJib3gg5YC86IyD5Zu05Yik5patDQogIGlmICghZXBzZyB8fCBlcHNnID09PSAwIHx8IGVwc2cgPiA0MDAwKSB7DQogICAgY29uc3QgW3csIHMsIGUsIG5dID0gYmJveCBhcyBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXQ0KICAgIGNvbnN0IGFueUxhcmdlID0gTWF0aC5hYnModykgPiAzNjAgfHwgTWF0aC5hYnMoZSkgPiAzNjAgfHwgTWF0aC5hYnMocykgPiA5MCB8fCBNYXRoLmFicyhuKSA+IDkwDQogICAgaWYgKGFueUxhcmdlKSB7DQogICAgICAvLyDljLrliIYgMzg1N++8iOWFqOeQg+iMg+WbtCDCsTIwMDM3NTA477yJ5LiO5pys5Zyw5oqV5b2xIENSU++8iOWmgiA0NTQ4IOeahOWAvOi+g+Wwj++8iQ0KICAgICAgLy8gMzg1NyDnmoTnsbPlnZDmoIfpgJrluLjlnKjljYPkuIfnuqfvvIjlpoIgMTMwMDAwMDAr77yJ77yM6ICMIDQ1NDgg562J5pys5Zyw5oqV5b2x5Zyo55m+5LiH57qn77yI5aaCIDcwNDcyMO+8iQ0KICAgICAgY29uc3QgbWF4QWJzID0gTWF0aC5tYXgoTWF0aC5hYnModyksIE1hdGguYWJzKGUpLCBNYXRoLmFicyhzKSwgTWF0aC5hYnMobikpDQogICAgICBpZiAobWF4QWJzID49IDEwMDAwMDAwKSByZXR1cm4gJzM4NTcnDQogICAgICAvLyDlsI/kuo4gMTAwMCDkuIfkuJQgPiAzNjAg4oaSIOW+iOWPr+iDveaYr+acrOWcsOaKleW9sSBDUlPvvIjlpoIgNDU0OC80NTQ5LzQ1NTAg562J77yJDQogICAgICAvLyDov5Tlm54gJzQ1NDgnIOS9nOS4uuacgOS9s+m7mOiupOWAvO+8iOWvueS4reWbveWMuuWfn+mAgueUqO+8iQ0KICAgICAgcmV0dXJuICc0NTQ4Jw0KICAgIH0NCiAgfQ0KICByZXR1cm4gJzQzMjYnDQp9DQoNCi8vID09PT09PSBIVFRQIOivt+axguiKgua1geWZqO+8iOW3suemgeeUqCDigJQg5rWP6KeI5Zmo6buY6K6kIDYg5bm25Y+RL+Wfn+WQjeabtOWPr+mdoO+8iSA9PT09PT0NCg0KLy8g5q+P55Om54mH5pyA5aSn5Z2X5pWw6ZmQ5Yi277ya6K6+5Li66L6D5aSn5YC877yM6YG/5YWN5aSn5paH5Lu2IDM4NTcg5Zug6LaF6ZmQ6L+U5Zue56m65a+86Ie0IENlc2l1bSDlgZzmraLor7fmsYINCi8vIOS5i+WJjemZkOWItui/h+Wwj++8iDI1LzQ577yJ5pivIDM4NTcg5Yqg6L295LiN5Ye655qE5Li76KaB5Y6f5Zug5LmL5LiADQovLyDlkI7mj5DljYfliLAgMjU2IOS7jeS4jeWkn++8iDM4NTcg5aSn5b2x5YOP5ZyoIGxldmVsIDEzLTE0IOS7jei2hemZkO+8ie+8jOWGjeaPkOWNh+WIsCA0MDk2DQpjb25zdCBNQVhfQkxPQ0tTX1BFUl9USUxFID0gNDA5Ng0KDQovLyDnroDljZXnmoQgV29ya2VyIOWGhemDqOWdl+e8k+WtmA0KY29uc3QgYmxvY2tDYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBUeXBlZEFycmF5W10+KCkNCmNvbnN0IE1BWF9DQUNIRV9TSVpFID0gNTAwDQoNCi8vIC0tLS0g5a6M5pW05Yid5aeL5YyW77yI5oeS5Yqg6L295pe25Lmf5aSN55So5q2k5Ye95pWw77yJIC0tLS0NCg0KLyoqDQogKiDlrozmlbTnmoQgQ09HIOWIneWni+WMlua1geeoi++8muazqOWGjOino+eggeWZqOOAgeaJk+W8gOaWh+S7tuOAgeino+aekOWFg+aVsOaNrg0KICog6K6+572u5YWo5bGA5Y+Y6YeP77yadGlmZiwgaW1hZ2VzLCBpbWFnZVJlc29sdXRpb25zLCBjb2dCYm94LCBjcnNUeXBlIOetiQ0KICovDQphc3luYyBmdW5jdGlvbiBfZnVsbEluaXQodXJsOiBzdHJpbmcpOiBQcm9taXNlPHsNCiAgYmJveERlZ3JlZXM6IG51bWJlcltdDQogIGNyc1R5cGU6IENyc1R5cGUNCiAgbWF4TGV2ZWw6IG51bWJlcg0KICBtaW5MZXZlbDogbnVtYmVyDQogIG1haW5JbWc6IEdlb1RJRkZJbWFnZQ0KfT4gew0KICAvLyDpooTms6jlhowgWlNURCDop6PnoIHlmagNCiAgY29uc3QgenN0ZEluc3RhbmNlID0gbmV3IFpTVEREZWNvZGVyKCkNCiAgYXdhaXQgenN0ZEluc3RhbmNlLmluaXQoKQ0KICBHZW9USUZGLmFkZERlY29kZXIoDQogICAgNTAwMDAsDQogICAgKCk6IFByb21pc2U8dHlwZW9mIEdlb1RJRkYuQmFzZURlY29kZXI+ID0+DQogICAgICBQcm9taXNlLnJlc29sdmUoDQogICAgICAgIGNsYXNzIGV4dGVuZHMgR2VvVElGRi5CYXNlRGVjb2RlciB7DQogICAgICAgICAgZGVjb2RlQmxvY2soYnVmZmVyOiBBcnJheUJ1ZmZlcik6IEFycmF5QnVmZmVyIHsNCiAgICAgICAgICAgIHJldHVybiB6c3RkSW5zdGFuY2UuZGVjb2RlKG5ldyBVaW50OEFycmF5KGJ1ZmZlcikpLmJ1ZmZlciBhcyBBcnJheUJ1ZmZlcg0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICksDQogICkNCg0KICB0aWZmID0gYXdhaXQgR2VvVElGRi5mcm9tVXJsKHVybCwgew0KICAgIHVzZVdvcmtlcnM6IGZhbHNlLA0KICAgIG1heFJhbmdlczogNTAwLA0KICB9IGFzIFBhcmFtZXRlcnM8dHlwZW9mIEdlb1RJRkYuZnJvbVVybD5bMV0pDQogIGNvbnN0IGltYWdlQ291bnQgPSBhd2FpdCB0aWZmLmdldEltYWdlQ291bnQoKQ0KICBpbWFnZXMgPSBbXQ0KICBmb3IgKGxldCBpID0gMDsgaSA8IGltYWdlQ291bnQ7IGkrKykgew0KICAgIGltYWdlcy5wdXNoKGF3YWl0IHRpZmYuZ2V0SW1hZ2UoaSkpDQogIH0NCiAgY29uc3QgbWFpbkltZyA9IGltYWdlc1swXSEgYXMgR2VvVElGRkltYWdlDQoNCiAgLy8g5Yqo5oCB6K+75Y+WIENPRyDlhoXpg6ggdGlsZSDlnZflpKflsI8NCiAgLy8gZ2VvdGlmZi5qcyDnmoQgZ2V0VGlsZVdpZHRoL2dldFRpbGVIZWlnaHQg6L+U5ZueIFRJRkYg5YaF6YOoIHRpbGUg5bC65a+4DQogIC8vIOWmguaenOmdniB0aWxlZO+8iHN0cmlwcGVk77yJ77yM5YiZ5Zue6YCA5YiwIDUxMg0KICB0cnkgew0KICAgIGNvbnN0IHR3ID0gbWFpbkltZy5nZXRUaWxlV2lkdGgoKQ0KICAgIGNvbnN0IHRoID0gbWFpbkltZy5nZXRUaWxlSGVpZ2h0KCkNCiAgICBpZiAodHcgPiAwICYmIHRoID4gMCkgew0KICAgICAgYmxvY2tTaXplID0gTWF0aC5tYXgodHcsIHRoKQ0KICAgIH0NCiAgfSBjYXRjaCB7DQogICAgYmxvY2tTaXplID0gNTEyDQogIH0NCiAgLy8g56Gu5L+dIHN0YWdpbmcgY2FudmFzIOWwuuWvuOWMuemFjQ0KICBlbnN1cmVTdGFnaW5nQ2FudmFzKGJsb2NrU2l6ZSkNCg0KICAvLyDojrflj5YgYmJveA0KICBjb2dCYm94ID0gbWFpbkltZy5nZXRCb3VuZGluZ0JveCgpIGFzIG51bWJlcltdIHwgbnVsbA0KICBpZiAoDQogICAgIWNvZ0Jib3ggfHwNCiAgICAhQXJyYXkuaXNBcnJheShjb2dCYm94KSB8fA0KICAgIGNvZ0Jib3gubGVuZ3RoICE9PSA0IHx8DQogICAgIWlzRmluaXRlKGNvZ0Jib3hbMF0hKSB8fA0KICAgICFpc0Zpbml0ZShjb2dCYm94WzFdISkgfHwNCiAgICAhaXNGaW5pdGUoY29nQmJveFsyXSEpIHx8DQogICAgIWlzRmluaXRlKGNvZ0Jib3hbM10hKQ0KICApIHsNCiAgICBsZXQgb3JpZ2luWDogbnVtYmVyIHwgdW5kZWZpbmVkDQogICAgbGV0IG9yaWdpblk6IG51bWJlciB8IHVuZGVmaW5lZA0KICAgIGxldCByZXNYOiBudW1iZXIgfCB1bmRlZmluZWQNCiAgICBsZXQgcmVzWTogbnVtYmVyIHwgdW5kZWZpbmVkDQogICAgbGV0IGZhbGxiYWNrT2sgPSBmYWxzZQ0KICAgIHRyeSB7DQogICAgICBjb25zdCBbb3gsIG95XSA9IG1haW5JbWcuZ2V0T3JpZ2luKCkgYXMgW251bWJlciwgbnVtYmVyXQ0KICAgICAgY29uc3QgW3J4LCByeV0gPSBtYWluSW1nLmdldFJlc29sdXRpb24oKSBhcyBbbnVtYmVyLCBudW1iZXJdDQogICAgICBvcmlnaW5YID0gb3gNCiAgICAgIG9yaWdpblkgPSBveQ0KICAgICAgcmVzWCA9IHJ4DQogICAgICByZXNZID0gcnkNCiAgICAgIGlmIChpc0Zpbml0ZShvcmlnaW5YKSAmJiBpc0Zpbml0ZShvcmlnaW5ZKSAmJiBpc0Zpbml0ZShyZXNYKSAmJiBpc0Zpbml0ZShyZXNZKSkNCiAgICAgICAgZmFsbGJhY2tPayA9IHRydWUNCiAgICB9IGNhdGNoIHsNCiAgICAgIC8qIGlnbm9yZSAqLw0KICAgIH0NCiAgICBpZiAoIWZhbGxiYWNrT2spIHsNCiAgICAgIHRyeSB7DQogICAgICAgIGNvbnN0IGZkID0gKG1haW5JbWcgYXMgdW5rbm93biBhcyB7IGZpbGVEaXJlY3Rvcnk/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB9KS5maWxlRGlyZWN0b3J5DQogICAgICAgIGlmIChmZCAmJiB0eXBlb2YgKGZkIGFzIHsgbG9hZFZhbHVlPzogdW5rbm93biB9KS5sb2FkVmFsdWUgPT09ICdmdW5jdGlvbicpIHsNCiAgICAgICAgICBjb25zdCB0aWVQb2ludHMgPSBhd2FpdCAoDQogICAgICAgICAgICBmZCBhcyB1bmtub3duIGFzIHsgbG9hZFZhbHVlOiAodGFnOiBzdHJpbmcpID0+IFByb21pc2U8bnVtYmVyW10+IH0NCiAgICAgICAgICApLmxvYWRWYWx1ZSgnTW9kZWxUaWVwb2ludCcpDQogICAgICAgICAgY29uc3QgcGl4ZWxTY2FsZSA9IGF3YWl0ICgNCiAgICAgICAgICAgIGZkIGFzIHVua25vd24gYXMgeyBsb2FkVmFsdWU6ICh0YWc6IHN0cmluZykgPT4gUHJvbWlzZTxudW1iZXJbXT4gfQ0KICAgICAgICAgICkubG9hZFZhbHVlKCdNb2RlbFBpeGVsU2NhbGUnKQ0KICAgICAgICAgIGlmICh0aWVQb2ludHMgJiYgdGllUG9pbnRzLmxlbmd0aCA+PSA2ICYmIHBpeGVsU2NhbGUgJiYgcGl4ZWxTY2FsZS5sZW5ndGggPj0gMikgew0KICAgICAgICAgICAgb3JpZ2luWCA9IHRpZVBvaW50c1szXSENCiAgICAgICAgICAgIG9yaWdpblkgPSB0aWVQb2ludHNbNF0hDQogICAgICAgICAgICByZXNYID0gcGl4ZWxTY2FsZVswXSENCiAgICAgICAgICAgIHJlc1kgPSAtcGl4ZWxTY2FsZVsxXSENCiAgICAgICAgICAgIGZhbGxiYWNrT2sgPSB0cnVlDQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICB9IGNhdGNoIHsNCiAgICAgICAgLyogaWdub3JlICovDQogICAgICB9DQogICAgfQ0KICAgIGlmIChmYWxsYmFja09rKSB7DQogICAgICBjb25zdCB3ID0gbWFpbkltZy5nZXRXaWR0aCgpDQogICAgICBjb25zdCBoID0gbWFpbkltZy5nZXRIZWlnaHQoKQ0KICAgICAgY29nQmJveCA9IFtvcmlnaW5YISwgb3JpZ2luWSEgKyByZXNZISAqIGgsIG9yaWdpblghICsgcmVzWCEgKiB3LCBvcmlnaW5ZIV0NCiAgICB9IGVsc2Ugew0KICAgICAgdGhyb3cgbmV3IEVycm9yKCfml6Dms5Xojrflj5YgQ09HIGJib3gnKQ0KICAgIH0NCiAgfQ0KDQogIHNhbXBsZXNQZXJQaXhlbCA9IG1haW5JbWcuZ2V0U2FtcGxlc1BlclBpeGVsKCkNCg0KICAvLyDmo4DmtYsgQWxwaGENCiAgaGFzQWxwaGEgPSBmYWxzZQ0KICBpZiAoc2FtcGxlc1BlclBpeGVsID49IDQpIHsNCiAgICB0cnkgew0KICAgICAgY29uc3QgZmlsZURpciA9DQogICAgICAgIChtYWluSW1nIGFzIHVua25vd24gYXMgeyBmaWxlRGlyZWN0b3J5PzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfSkuZmlsZURpcmVjdG9yeSB8fA0KICAgICAgICAoYXdhaXQgKA0KICAgICAgICAgIG1haW5JbWcgYXMgdW5rbm93biBhcyB7IGdldEZpbGVEaXJlY3Rvcnk/OiAoKSA9PiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB9DQogICAgICAgICkuZ2V0RmlsZURpcmVjdG9yeT8uKCkpIHx8DQogICAgICAgIHt9DQogICAgICBjb25zdCBleHRyYVNhbXBsZXMgPSBmaWxlRGlyLkV4dHJhU2FtcGxlcyBhcyBudW1iZXJbXSB8IHVuZGVmaW5lZA0KICAgICAgaWYgKGV4dHJhU2FtcGxlcyAmJiBleHRyYVNhbXBsZXMubGVuZ3RoID4gMCkNCiAgICAgICAgaGFzQWxwaGEgPSBleHRyYVNhbXBsZXNbMF0gPT09IDEgfHwgZXh0cmFTYW1wbGVzWzBdID09PSAyDQogICAgfSBjYXRjaCB7DQogICAgICAvKiBpZ25vcmUgKi8NCiAgICB9DQogIH0NCg0KICAvLyDmo4DmtYsgQ1JTDQogIGxldCBlcHNnOiBudW1iZXIgfCBudWxsID0gbnVsbA0KICB0cnkgew0KICAgIGNvbnN0IGdlb0tleXMgPSBtYWluSW1nLmdldEdlb0tleXMoKSBhcyB7DQogICAgICBQcm9qZWN0ZWRDU1R5cGVHZW9LZXk/OiBudW1iZXINCiAgICAgIEdlb2dyYXBoaWNUeXBlR2VvS2V5PzogbnVtYmVyDQogICAgfSB8IG51bGwNCiAgICBpZiAoZ2VvS2V5cykgZXBzZyA9IGdlb0tleXMuUHJvamVjdGVkQ1NUeXBlR2VvS2V5IHx8IGdlb0tleXMuR2VvZ3JhcGhpY1R5cGVHZW9LZXkgfHwgbnVsbA0KICB9IGNhdGNoIHsNCiAgICAvKiBpZ25vcmUgKi8NCiAgfQ0KICBjcnNUeXBlID0gZGV0ZWN0Q3JzVHlwZShjb2dCYm94ISwgZXBzZykNCg0KICBjb25zb2xlLmxvZygNCiAgICBgW0NPRzpJTklUXSBjcnNUeXBlPSR7Y3JzVHlwZX0sIGNvZ0Jib3g9WyR7KGNvZ0Jib3ghIGFzIG51bWJlcltdKS5tYXAoKHYpID0+IHYudG9GaXhlZCgxKSkuam9pbignLCcpfV0sIGVwc2c9JHtlcHNnfWAsDQogICkNCg0KICAvLyDovazmjaLkuLogV0dTODQg5bqmIGJib3gNCiAgbGV0IGJib3hEZWdyZWVzOiBudW1iZXJbXQ0KICBpZiAoaXNQcm9qZWN0ZWRDcnMoKSkgew0KICAgIGNvbnN0IFt3LCBzLCBlLCBuXSA9IGNvZ0Jib3ghIGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdDQogICAgY29uc3QgaXNEZWcgPSBNYXRoLmFicyh3KSA8PSAxODAgJiYgTWF0aC5hYnMoZSkgPD0gMTgwICYmIE1hdGguYWJzKHMpIDw9IDkwICYmIE1hdGguYWJzKG4pIDw9IDkwDQogICAgaWYgKGlzRGVnKSB7DQogICAgICBiYm94RGVncmVlcyA9IGNvZ0Jib3ghDQogICAgICBiYm94SXNQcm9qZWN0ZWQgPSBmYWxzZQ0KICAgIH0gZWxzZSB7DQogICAgICBjb25zdCBbbG9uVywgbGF0U10gPSBwcm9qZWN0ZWRUb0RlZ3JlZXModywgcykNCiAgICAgIGNvbnN0IFtsb25FLCBsYXROXSA9IHByb2plY3RlZFRvRGVncmVlcyhlLCBuKQ0KICAgICAgaWYgKGlzRmluaXRlKGxvblcpICYmIGlzRmluaXRlKGxhdFMpICYmIGlzRmluaXRlKGxvbkUpICYmIGlzRmluaXRlKGxhdE4pKSB7DQogICAgICAgIGJib3hEZWdyZWVzID0gW2xvblcsIGxhdFMsIGxvbkUsIGxhdE5dDQogICAgICAgIGJib3hJc1Byb2plY3RlZCA9IHRydWUNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIGJib3hEZWdyZWVzID0gY29nQmJveCENCiAgICAgICAgYmJveElzUHJvamVjdGVkID0gZmFsc2UNCiAgICAgIH0NCiAgICB9DQogIH0gZWxzZSB7DQogICAgYmJveERlZ3JlZXMgPSBjb2dCYm94IQ0KICAgIGJib3hJc1Byb2plY3RlZCA9IGZhbHNlDQogIH0NCg0KICBjb25zb2xlLmxvZygNCiAgICBgW0NPRzpJTklUXSBiYm94SXNQcm9qZWN0ZWQ9JHtiYm94SXNQcm9qZWN0ZWR9LCBiYm94RGVncmVlcz1bJHtiYm94RGVncmVlcy5tYXAoKHYpID0+IHYudG9GaXhlZCg0KSkuam9pbignLCcpfV1gLA0KICApDQoNCiAgLy8g6aKE6K6h566X5YiG6L6o546HDQogIGNvbnN0IFtjb2dXLCBjb2dTLCBjb2dFLCBjb2dOXSA9IGNvZ0Jib3ghIGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdDQogIGNvbnN0IHNwYW4gPSBjb2dFIC0gY29nVw0KICBpbWFnZVJlc29sdXRpb25zID0gaW1hZ2VzLm1hcCgoaW1nKSA9PiBzcGFuIC8gaW1nLmdldFdpZHRoKCkpDQoNCiAgLy8g6K6h566XIG1heExldmVsDQogIGNvbnN0IGJib3hMb25TcGFuID0gYmJveERlZ3JlZXNbMl0hIC0gYmJveERlZ3JlZXNbMF0hDQogIGNvbnN0IGNvZ1JlcyA9IGJib3hMb25TcGFuIC8gbWFpbkltZy5nZXRXaWR0aCgpDQogIGxldCBtYXhMZXZlbCA9IE1hdGgubWluKDE3LCBNYXRoLmNlaWwoTWF0aC5sb2cyKDM2MCAvICgyNTYgKiBjb2dSZXMpKSkpDQoNCiAgLy8g6K6h566XIG1pbkxldmVs77yI5L2/55So5pyA5bCPIG92ZXJ2aWV3IOWBmuWGheWtmOmihOeul++8iQ0KICBjb25zdCBNQVhfVElMRV9CVUZGRVJfQllURVMgPSA2NCAqIDEwMjQgKiAxMDI0DQogIGNvbnN0IE1BWF9USUxFX1BJWEVMUyA9IE1BWF9USUxFX0JVRkZFUl9CWVRFUyAvIDQNCiAgY29uc3QgbGFzdEltZyA9IGltYWdlc1tpbWFnZXMubGVuZ3RoIC0gMV0hDQogIGNvbnN0IGVmZmVjdGl2ZUltZ1cgPSBNYXRoLm1heChsYXN0SW1nLmdldFdpZHRoKCksIDUxMikNCiAgY29uc3QgZWZmZWN0aXZlSW1nSCA9IE1hdGgubWF4KGxhc3RJbWcuZ2V0SGVpZ2h0KCksIDUxMikNCiAgY29uc3QgYmJveExhdFNwYW4gPSBiYm94RGVncmVlc1szXSEgLSBiYm94RGVncmVlc1sxXSENCiAgY29uc3QgY29nU3BhbiA9IE1hdGgubWF4KGJib3hMb25TcGFuLCBiYm94TGF0U3BhbikNCiAgbGV0IG1pbkxldmVsID0gMA0KICBpZiAoY29nU3BhbiA+IDApIHsNCiAgICBtaW5MZXZlbCA9IE1hdGguZmxvb3IoTWF0aC5sb2cyKDM2MCAvIGNvZ1NwYW4pKQ0KICAgIG1pbkxldmVsID0gTWF0aC5tYXgoMCwgTWF0aC5taW4obWluTGV2ZWwsIG1heExldmVsKSkNCiAgfQ0KICBmb3IgKGxldCBsdmwgPSBtaW5MZXZlbDsgbHZsIDw9IG1heExldmVsOyBsdmwrKykgew0KICAgIGNvbnN0IHR3ID0gMzYwIC8gTWF0aC5wb3coMiwgbHZsICsgMSkNCiAgICBjb25zdCB0aCA9IDE4MCAvIE1hdGgucG93KDIsIGx2bCkNCiAgICBjb25zdCBydyA9DQogICAgICBNYXRoLmNlaWwoKChNYXRoLm1pbih0dywgYmJveExvblNwYW4pIC8gYmJveExvblNwYW4pICogZWZmZWN0aXZlSW1nVykgLyBibG9ja1NpemUpICogYmxvY2tTaXplDQogICAgY29uc3QgcmggPQ0KICAgICAgTWF0aC5jZWlsKCgoTWF0aC5taW4odGgsIGJib3hMYXRTcGFuKSAvIGJib3hMYXRTcGFuKSAqIGVmZmVjdGl2ZUltZ0gpIC8gYmxvY2tTaXplKSAqIGJsb2NrU2l6ZQ0KICAgIGlmIChydyAqIHJoIDw9IE1BWF9USUxFX1BJWEVMUykgew0KICAgICAgaWYgKGx2bCA+IG1pbkxldmVsKQ0KICAgICAgICBjb25zb2xlLmxvZygNCiAgICAgICAgICBgW0NPRzpJTklUXSBtaW5MZXZlbCDku44gJHttaW5MZXZlbH0g5o+Q5Y2H5YiwICR7bHZsfSAo55Om54mH57yT5a2YIH4keygocncgKiByaCAqIDQpIC8gMTAyNCAvIDEwMjQpLnRvRml4ZWQoMCl9TUIsIElGRCAke2ltYWdlcy5sZW5ndGggLSAxfSlgLA0KICAgICAgICApDQogICAgICBtaW5MZXZlbCA9IGx2bA0KICAgICAgYnJlYWsNCiAgICB9DQogIH0NCg0KICAvLyDkv67mraMgbWF4TGV2ZWzvvJrljZXlsYIgQ09HDQogIGlmIChpbWFnZUNvdW50IDw9IDEpIHsNCiAgICBsZXQgbGltaXRlZE1heCA9IG1heExldmVsDQogICAgZm9yIChsZXQgbHZsID0gbWF4TGV2ZWw7IGx2bCA+PSBtaW5MZXZlbDsgbHZsLS0pIHsNCiAgICAgIGNvbnN0IHRpbGVXID0gMzYwIC8gTWF0aC5wb3coMiwgbHZsICsgMSkNCiAgICAgIGNvbnN0IHRpbGVIID0gMTgwIC8gTWF0aC5wb3coMiwgbHZsKQ0KICAgICAgaWYgKE1hdGguY2VpbChiYm94TG9uU3BhbiAvIHRpbGVXKSAqIE1hdGguY2VpbChiYm94TGF0U3BhbiAvIHRpbGVIKSA8PSAxMDAwKSB7DQogICAgICAgIGxpbWl0ZWRNYXggPSBsdmwNCiAgICAgICAgYnJlYWsNCiAgICAgIH0NCiAgICB9DQogICAgaWYgKGxpbWl0ZWRNYXggPCBtYXhMZXZlbCkgew0KICAgICAgY29uc29sZS5sb2coYFtDT0c6SU5JVF0gbWF4TGV2ZWwg5LuOICR7bWF4TGV2ZWx9IOS/ruato+S4uiAke2xpbWl0ZWRNYXh9ICjljZXlsYIgQ09H77yM55Om54mH6L+H5aSaKWApDQogICAgICBtYXhMZXZlbCA9IGxpbWl0ZWRNYXgNCiAgICB9DQogIH0NCg0KICBjb25zb2xlLmxvZygNCiAgICBgW0NPR10g5Yid5aeL5YyW5a6M5oiQOiBFUFNHOiR7Y3JzVHlwZX0sICR7aW1hZ2VDb3VudH0g5bGCLCDkuLvlm74gJHttYWluSW1nLmdldFdpZHRoKCl9eCR7bWFpbkltZy5nZXRIZWlnaHQoKX0sIGAgKw0KICAgICAgYGJib3g9WyR7YmJveERlZ3JlZXMubWFwKCh2KSA9PiB2LnRvRml4ZWQoNCkpLmpvaW4oJywnKX1dLCBtYXhMZXZlbD0ke21heExldmVsfSwgbWluTGV2ZWw9JHttaW5MZXZlbH0sIHNhbXBsZXM9JHtzYW1wbGVzUGVyUGl4ZWx9YCwNCiAgKQ0KDQogIHJldHVybiB7IGJib3hEZWdyZWVzLCBjcnNUeXBlLCBtYXhMZXZlbCwgbWluTGV2ZWwsIG1haW5JbWcgfQ0KfQ0KDQovLyAtLS0tIFdvcmtlciDmtojmga/lpITnkIYgLS0tLQ0KDQpzZWxmLm9ubWVzc2FnZSA9IGFzeW5jIChlOiBNZXNzYWdlRXZlbnQ8V29ya2VySW5NZXNzYWdlPikgPT4gew0KICBjb25zdCB7IHR5cGUsIHBheWxvYWQsIHRhc2tJZCB9ID0gZS5kYXRhDQoNCiAgdHJ5IHsNCiAgICBzd2l0Y2ggKHR5cGUpIHsNCiAgICAgIGNhc2UgJ0xBWllfSU5JVCc6IHsNCiAgICAgICAgLy8g5oeS5Yid5aeL5YyW77ya5Y+q5a2YIFVSTO+8jOS4jeino+aekCBDT0fvvIzpppbmrKEgUFJPQ0VTU19USUxFIOaXtuWGjeWKoOi9vQ0KICAgICAgICBsYXp5VXJsID0gcGF5bG9hZC51cmwNCiAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSh7DQogICAgICAgICAgdHlwZTogJ0lOSVRfRE9ORScsDQogICAgICAgICAgdGFza0lkLA0KICAgICAgICAgIHBheWxvYWQ6IHsNCiAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsDQogICAgICAgICAgICBiYm94OiBbMCwgMCwgMCwgMF0sDQogICAgICAgICAgICBjcnNUeXBlOiAnNDMyNicsDQogICAgICAgICAgICBtYXhMZXZlbDogMTcsDQogICAgICAgICAgICBtaW5MZXZlbDogOSwNCiAgICAgICAgICB9LA0KICAgICAgICB9KQ0KICAgICAgICBicmVhaw0KICAgICAgfQ0KICAgICAgY2FzZSAnSU5JVCc6IHsNCiAgICAgICAgY29uc3QgeyB1cmwgfSA9IHBheWxvYWQNCiAgICAgICAgY29uc3QgbWV0YSA9IGF3YWl0IF9mdWxsSW5pdCh1cmwpDQogICAgICAgIHNlbGYucG9zdE1lc3NhZ2Uoew0KICAgICAgICAgIHR5cGU6ICdJTklUX0RPTkUnLA0KICAgICAgICAgIHRhc2tJZCwNCiAgICAgICAgICBwYXlsb2FkOiB7DQogICAgICAgICAgICBzdWNjZXNzOiB0cnVlLA0KICAgICAgICAgICAgYmJveDogbWV0YS5iYm94RGVncmVlcywNCiAgICAgICAgICAgIGNyc1R5cGU6IG1ldGEuY3JzVHlwZSwNCiAgICAgICAgICAgIG1heExldmVsOiBtZXRhLm1heExldmVsLA0KICAgICAgICAgICAgbWluTGV2ZWw6IG1ldGEubWluTGV2ZWwsDQogICAgICAgICAgfSwNCiAgICAgICAgfSkNCiAgICAgICAgYnJlYWsNCiAgICAgIH0NCg0KICAgICAgY2FzZSAnUFJPQ0VTU19USUxFJzogew0KICAgICAgICBjb25zdCB7IHgsIHksIGxldmVsLCB0aWxlUmVjdCB9ID0gcGF5bG9hZA0KICAgICAgICBpZiAobGV2ZWwgPCAwIHx8IHggPCAwIHx8IHkgPCAwKSB7DQogICAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSh7IHR5cGU6ICdUSUxFX0RPTkUnLCB0YXNrSWQsIHBheWxvYWQ6IHsgZW1wdHk6IHRydWUgfSB9KQ0KICAgICAgICAgIHJldHVybg0KICAgICAgICB9DQoNCiAgICAgICAgLy8g5oeS5Yid5aeL5YyW77ya5aaC5p6cIHRpZmYg5pyq5Yid5aeL5YyW5L2GIGxhenlVcmwg5a2Y5Zyo77yM6aaW5qyh5L2/55So5YmN5Yqg6L29IENPRw0KICAgICAgICBpZiAoIXRpZmYgJiYgbGF6eVVybCkgew0KICAgICAgICAgIGlmICghX2luaXRMb2NrKSB7DQogICAgICAgICAgICBfaW5pdExvY2sgPSAoYXN5bmMgKCkgPT4gew0KICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgIGF3YWl0IF9mdWxsSW5pdChsYXp5VXJsISkNCiAgICAgICAgICAgICAgICBsYXp5VXJsID0gbnVsbA0KICAgICAgICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgICAgIF9pbml0TG9jayA9IG51bGwNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSkoKQ0KICAgICAgICAgIH0NCiAgICAgICAgICBhd2FpdCBfaW5pdExvY2sNCiAgICAgICAgfQ0KDQogICAgICAgIGNvbnN0IFtjb2dXLCBjb2dTLCBjb2dFLCBjb2dOXSA9IGNvZ0Jib3ghIGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdDQoNCiAgICAgICAgLy8g5bCG55Om54mH55+p5b2i57uf5LiA5YiwIENPRyDlnZDmoIfnqbrpl7QNCiAgICAgICAgbGV0IHRXOiBudW1iZXIsIHRTOiBudW1iZXIsIHRFOiBudW1iZXIsIHROOiBudW1iZXINCiAgICAgICAgaWYgKGJib3hJc1Byb2plY3RlZCkgew0KICAgICAgICAgIGNvbnN0IHN3ID0gZGVncmVlc1RvUHJvamVjdGVkKHRpbGVSZWN0Lndlc3QsIHRpbGVSZWN0LnNvdXRoKQ0KICAgICAgICAgIGNvbnN0IG5lID0gZGVncmVlc1RvUHJvamVjdGVkKHRpbGVSZWN0LmVhc3QsIHRpbGVSZWN0Lm5vcnRoKQ0KICAgICAgICAgIDtbdFcsIHRTXSA9IHN3DQogICAgICAgICAgO1t0RSwgdE5dID0gbmUNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICB0VyA9IHRpbGVSZWN0Lndlc3QNCiAgICAgICAgICB0UyA9IHRpbGVSZWN0LnNvdXRoDQogICAgICAgICAgdEUgPSB0aWxlUmVjdC5lYXN0DQogICAgICAgICAgdE4gPSB0aWxlUmVjdC5ub3J0aA0KICAgICAgICB9DQoNCiAgICAgICAgLy8g6K6h566X5Lqk6ZuGDQogICAgICAgIGNvbnN0IGludGVyVyA9IE1hdGgubWF4KHRXLCBjb2dXKQ0KICAgICAgICBjb25zdCBpbnRlclMgPSBNYXRoLm1heCh0UywgY29nUykNCiAgICAgICAgY29uc3QgaW50ZXJFID0gTWF0aC5taW4odEUsIGNvZ0UpDQogICAgICAgIGNvbnN0IGludGVyTiA9IE1hdGgubWluKHROLCBjb2dOKQ0KDQogICAgICAgIGlmIChpbnRlclcgPj0gaW50ZXJFIHx8IGludGVyUyA+PSBpbnRlck4pIHsNCiAgICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKHsgdHlwZTogJ1RJTEVfRE9ORScsIHRhc2tJZCwgcGF5bG9hZDogeyBlbXB0eTogdHJ1ZSB9IH0pDQogICAgICAgICAgcmV0dXJuDQogICAgICAgIH0NCg0KICAgICAgICAvLyDpgInmi6kgb3ZlcnZpZXcg5bGCDQogICAgICAgIGNvbnN0IHJlc05lZWRlZCA9ICh0RSAtIHRXKSAvIFRJTEVfU0laRQ0KICAgICAgICBjb25zdCBvdmVydmlld0JpYXMgPSBpc1Byb2plY3RlZENycygpID8gMS4wIDogMS4wDQogICAgICAgIGxldCBpbWFnZUluZGV4ID0gMA0KICAgICAgICBmb3IgKGxldCBpID0gaW1hZ2VSZXNvbHV0aW9ucy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgew0KICAgICAgICAgIGlmIChpbWFnZVJlc29sdXRpb25zW2ldISA8PSByZXNOZWVkZWQgKiBvdmVydmlld0JpYXMpIHsNCiAgICAgICAgICAgIGltYWdlSW5kZXggPSBpDQogICAgICAgICAgICBicmVhaw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vIOi+heWKqe+8muiuoeeul+WcqOaMh+WumiBJRkQg5LiK6K+75Y+W55qE5a+56b2Q5Yy65Z+fDQogICAgICAgIGNvbnN0IGNhbGNBbGlnbmVkV2luZG93ID0gKGlmZElkeDogbnVtYmVyKTogQWxpZ25lZFdpbmRvdyA9PiB7DQogICAgICAgICAgY29uc3QgaW1nID0gaW1hZ2VzW2lmZElkeF0hDQogICAgICAgICAgY29uc3QgaXcgPSBpbWcuZ2V0V2lkdGgoKQ0KICAgICAgICAgIGNvbnN0IGloID0gaW1nLmdldEhlaWdodCgpDQogICAgICAgICAgY29uc3QgcnggPSBNYXRoLmZsb29yKCgoaW50ZXJXIC0gY29nVykgLyAoY29nRSAtIGNvZ1cpKSAqIGl3KQ0KICAgICAgICAgIGNvbnN0IHJ5ID0gTWF0aC5mbG9vcigoKGNvZ04gLSBpbnRlck4pIC8gKGNvZ04gLSBjb2dTKSkgKiBpaCkNCiAgICAgICAgICBjb25zdCBydyA9IE1hdGguY2VpbCgoKGludGVyRSAtIGludGVyVykgLyAoY29nRSAtIGNvZ1cpKSAqIGl3KQ0KICAgICAgICAgIGNvbnN0IHJoID0gTWF0aC5jZWlsKCgoaW50ZXJOIC0gaW50ZXJTKSAvIChjb2dOIC0gY29nUykpICogaWgpDQogICAgICAgICAgLy8g5a+56b2Q5YiwIGJsb2NrIOi+ueeVjA0KICAgICAgICAgIGNvbnN0IGF4ID0gTWF0aC5mbG9vcihyeCAvIGJsb2NrU2l6ZSkgKiBibG9ja1NpemUNCiAgICAgICAgICBjb25zdCBheSA9IE1hdGguZmxvb3IocnkgLyBibG9ja1NpemUpICogYmxvY2tTaXplDQogICAgICAgICAgY29uc3QgYXcgPSBNYXRoLm1pbihNYXRoLmNlaWwoKHJ4ICsgcncpIC8gYmxvY2tTaXplKSAqIGJsb2NrU2l6ZSAtIGF4LCBpdyAtIGF4KQ0KICAgICAgICAgIGNvbnN0IGFoID0gTWF0aC5taW4oTWF0aC5jZWlsKChyeSArIHJoKSAvIGJsb2NrU2l6ZSkgKiBibG9ja1NpemUgLSBheSwgaWggLSBheSkNCiAgICAgICAgICBjb25zdCBibG9ja3MgPSBNYXRoLmNlaWwoYXcgLyBibG9ja1NpemUpICogTWF0aC5jZWlsKGFoIC8gYmxvY2tTaXplKQ0KICAgICAgICAgIHJldHVybiB7DQogICAgICAgICAgICBibG9ja3MsDQogICAgICAgICAgICBpbWdXOiBpdywNCiAgICAgICAgICAgIGltZ0g6IGloLA0KICAgICAgICAgICAgcmVhZFg6IHJ4LA0KICAgICAgICAgICAgcmVhZFk6IHJ5LA0KICAgICAgICAgICAgcmVhZFc6IHJ3LA0KICAgICAgICAgICAgcmVhZEg6IHJoLA0KICAgICAgICAgICAgYWxpZ25lZFg6IGF4LA0KICAgICAgICAgICAgYWxpZ25lZFk6IGF5LA0KICAgICAgICAgICAgYWxpZ25lZFc6IGF3LA0KICAgICAgICAgICAgYWxpZ25lZEg6IGFoLA0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vIOS7juW9k+WJjSBJRkQg5byA5aeL77yM5bCd6K+V5om+5Yiw5Z2X5pWw5rKh6LaF6ZmQ55qEIElGRA0KICAgICAgICBsZXQgaW5mbyA9IGNhbGNBbGlnbmVkV2luZG93KGltYWdlSW5kZXgpDQogICAgICAgIGlmIChpbmZvLmJsb2NrcyA+IE1BWF9CTE9DS1NfUEVSX1RJTEUpIHsNCiAgICAgICAgICBsZXQgZm91bmQgPSBmYWxzZQ0KICAgICAgICAgIGlmIChpbWFnZXMubGVuZ3RoID4gMSkgew0KICAgICAgICAgICAgZm9yIChsZXQgaSA9IGltYWdlSW5kZXggKyAxOyBpIDwgaW1hZ2VzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICAgIGNvbnN0IGFsdCA9IGNhbGNBbGlnbmVkV2luZG93KGkpDQogICAgICAgICAgICAgIGlmIChhbHQuYmxvY2tzIDw9IE1BWF9CTE9DS1NfUEVSX1RJTEUgfHwgaSA9PT0gaW1hZ2VzLmxlbmd0aCAtIDEpIHsNCiAgICAgICAgICAgICAgICBpbmZvID0gYWx0DQogICAgICAgICAgICAgICAgaW1hZ2VJbmRleCA9IGkNCiAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWUNCiAgICAgICAgICAgICAgICBicmVhaw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgfQ0KICAgICAgICAgIC8vIOWNleWxgiBDT0cg5LiU6LaF6ZmQ5pe25LiN6L+U5Zue56m677yM55u05o6l55So5Y6f57uT5p6c57un57ut77yI6Jm954S25oWi5L2G5LiN5Ye656m655Om54mH77yJDQogICAgICAgICAgaWYgKCFmb3VuZCAmJiBpbWFnZXMubGVuZ3RoIDw9IDEpIHsNCiAgICAgICAgICAgIGNvbnNvbGUud2FybigNCiAgICAgICAgICAgICAgYFtDT0ddIOeTpueJhyAke3h9LCR7eX1AJHtsZXZlbH06IOWdl+aVsOi2hemZkCAoJHtpbmZvLmJsb2Nrc30gPiAke01BWF9CTE9DS1NfUEVSX1RJTEV9Ke+8jOS7jee7p+e7reWkhOeQhmAsDQogICAgICAgICAgICApDQogICAgICAgICAgICAvLyDkuI3ov5Tlm57nqbrvvIznu6fnu63lpITnkIYNCiAgICAgICAgICB9IGVsc2UgaWYgKCFmb3VuZCkgew0KICAgICAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSh7IHR5cGU6ICdUSUxFX0RPTkUnLCB0YXNrSWQsIHBheWxvYWQ6IHsgZW1wdHk6IHRydWUgfSB9KQ0KICAgICAgICAgICAgcmV0dXJuDQogICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgY29uc3QgeyByZWFkWCwgcmVhZFksIHJlYWRXLCByZWFkSCwgYWxpZ25lZFgsIGFsaWduZWRZLCBhbGlnbmVkVywgYWxpZ25lZEggfSA9IGluZm8NCg0KICAgICAgICBpZiAocmVhZFcgPD0gMCB8fCByZWFkSCA8PSAwKSB7DQogICAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSh7IHR5cGU6ICdUSUxFX0RPTkUnLCB0YXNrSWQsIHBheWxvYWQ6IHsgZW1wdHk6IHRydWUgfSB9KQ0KICAgICAgICAgIHJldHVybg0KICAgICAgICB9DQoNCiAgICAgICAgLy8g6K+75Y+W5rOi5q6177yI5bimIFdvcmtlciDlhoXpg6jnvJPlrZjvvIkNCiAgICAgICAgY29uc3Qgc2FtcGxlTGlzdDogbnVtYmVyW10gPSBoYXNBbHBoYQ0KICAgICAgICAgID8gWzAsIDEsIDIsIDNdDQogICAgICAgICAgOiBzYW1wbGVzUGVyUGl4ZWwgPj0gMw0KICAgICAgICAgICAgPyBbMCwgMSwgMl0NCiAgICAgICAgICAgIDogWzBdDQogICAgICAgIGNvbnN0IHdpbmRvd0tleSA9IGAke2ltYWdlSW5kZXh9XyR7YWxpZ25lZFh9XyR7YWxpZ25lZFl9XyR7YWxpZ25lZFd9XyR7YWxpZ25lZEh9XyR7c2FtcGxlTGlzdC5qb2luKCcsJyl9YA0KICAgICAgICBsZXQgcmFzdGVycyA9IGJsb2NrQ2FjaGUuZ2V0KHdpbmRvd0tleSkgYXMgVHlwZWRBcnJheVtdIHwgdW5kZWZpbmVkDQogICAgICAgIGlmICghcmFzdGVycykgew0KICAgICAgICAgIHJhc3RlcnMgPSAoYXdhaXQgaW1hZ2VzW2ltYWdlSW5kZXhdIS5yZWFkUmFzdGVycyh7DQogICAgICAgICAgICB3aW5kb3c6IFthbGlnbmVkWCwgYWxpZ25lZFksIGFsaWduZWRYICsgYWxpZ25lZFcsIGFsaWduZWRZICsgYWxpZ25lZEhdLA0KICAgICAgICAgICAgc2FtcGxlczogc2FtcGxlTGlzdCwNCiAgICAgICAgICB9KSkgYXMgVHlwZWRBcnJheVtdDQogICAgICAgICAgLy8g57yT5a2Y6Kej56CB57uT5p6c77yM5o6n5Yi257yT5a2Y5aSn5bCPDQogICAgICAgICAgaWYgKGJsb2NrQ2FjaGUuc2l6ZSA+IE1BWF9DQUNIRV9TSVpFKSB7DQogICAgICAgICAgICBjb25zdCBmaXJzdEtleSA9IGJsb2NrQ2FjaGUua2V5cygpLm5leHQoKS52YWx1ZQ0KICAgICAgICAgICAgaWYgKGZpcnN0S2V5KSBibG9ja0NhY2hlLmRlbGV0ZShmaXJzdEtleSBhcyBzdHJpbmcpDQogICAgICAgICAgfQ0KICAgICAgICAgIGJsb2NrQ2FjaGUuc2V0KHdpbmRvd0tleSwgcmFzdGVycykNCiAgICAgICAgfQ0KDQogICAgICAgIC8vIOehruS/nSBzdGFnaW5nIGNhbnZhcyDotrPlpJ/lpKcNCiAgICAgICAgZW5zdXJlU3RhZ2luZ0NhbnZhcyhNYXRoLm1heChhbGlnbmVkVywgYWxpZ25lZEgpKQ0KDQogICAgICAgIC8vIOS9v+eUqOmihOWIhumFjeeahOWDj+e0oOe8k+WGsuWMug0KICAgICAgICBjb25zdCBwaXhlbENvdW50ID0gYWxpZ25lZFcgKiBhbGlnbmVkSA0KICAgICAgICBsZXQgcHgzMjogVWludDMyQXJyYXkgPSByZXVzYWJsZVB4MzINCiAgICAgICAgbGV0IHB4ODogVWludDhDbGFtcGVkQXJyYXkgPSByZXVzYWJsZVB4OA0KICAgICAgICBpZiAocGl4ZWxDb3VudCAqIDQgPiByZXVzYWJsZVBpeGVsQnVmZmVyLmJ5dGVMZW5ndGgpIHsNCiAgICAgICAgICBjb25zdCBiaWdCdWYgPSBuZXcgQXJyYXlCdWZmZXIocGl4ZWxDb3VudCAqIDQpDQogICAgICAgICAgcHgzMiA9IG5ldyBVaW50MzJBcnJheShiaWdCdWYpDQogICAgICAgICAgcHg4ID0gbmV3IFVpbnQ4Q2xhbXBlZEFycmF5KGJpZ0J1ZikNCiAgICAgICAgfQ0KDQogICAgICAgIGNvbnN0IHIwID0gcmFzdGVyc1swXSENCiAgICAgICAgY29uc3QgbGVuID0gcjAubGVuZ3RoDQoNCiAgICAgICAgaWYgKGhhc0FscGhhKSB7DQogICAgICAgICAgY29uc3QgcjEgPSByYXN0ZXJzWzFdISwNCiAgICAgICAgICAgIHIyID0gcmFzdGVyc1syXSEsDQogICAgICAgICAgICByMyA9IHJhc3RlcnNbM10hDQogICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykgew0KICAgICAgICAgICAgY29uc3QgYSA9IHIzW2ldIQ0KICAgICAgICAgICAgcHgzMltpXSA9IGEgPCAzMCA/IDAgOiAoYSA8PCAyNCkgfCAocjJbaV0hIDw8IDE2KSB8IChyMVtpXSEgPDwgOCkgfCByMFtpXSENCiAgICAgICAgICB9DQogICAgICAgIH0gZWxzZSBpZiAoc2FtcGxlc1BlclBpeGVsID49IDMpIHsNCiAgICAgICAgICBjb25zdCByMSA9IHJhc3RlcnNbMV0hLA0KICAgICAgICAgICAgcjIgPSByYXN0ZXJzWzJdIQ0KICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHsNCiAgICAgICAgICAgIGNvbnN0IHIgPSByMFtpXSEsDQogICAgICAgICAgICAgIGcgPSByMVtpXSEsDQogICAgICAgICAgICAgIGIgPSByMltpXSENCiAgICAgICAgICAgIHB4MzJbaV0gPSByICsgZyArIGIgPCA5MCA/IDAgOiAoMHhmZjAwMDAwMCB8IChiIDw8IDE2KSB8IChnIDw8IDgpIHwgcikgPj4+IDANCiAgICAgICAgICB9DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykgew0KICAgICAgICAgICAgY29uc3QgdiA9IHIwW2ldIQ0KICAgICAgICAgICAgcHgzMltpXSA9ICgweGZmMDAwMDAwIHwgKHYgPDwgMTYpIHwgKHYgPDwgOCkgfCB2KSA+Pj4gMA0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIGNvbnN0IHJhd0ltZ0RhdGEgPSBuZXcgSW1hZ2VEYXRhKA0KICAgICAgICAgIHB4OC5zdWJhcnJheSgwLCBwaXhlbENvdW50ICogNCkgYXMgVWludDhDbGFtcGVkQXJyYXk8QXJyYXlCdWZmZXI+LA0KICAgICAgICAgIGFsaWduZWRXLA0KICAgICAgICAgIGFsaWduZWRILA0KICAgICAgICApDQogICAgICAgIHN0YWdpbmdDdHghLnB1dEltYWdlRGF0YShyYXdJbWdEYXRhLCAwLCAwKQ0KDQogICAgICAgIC8vIEdQVSDliqDpgJ/nvKnmlL4gKyDoo4HliarvvIhkcmF3SW1hZ2Ug6KaG55uW5YWo5Yy65Z+f77yM5peg6ZyAIGNsZWFyUmVjdO+8iQ0KICAgICAgICBjb25zdCBzcmNYID0gcmVhZFggLSBhbGlnbmVkWA0KICAgICAgICBjb25zdCBzcmNZID0gcmVhZFkgLSBhbGlnbmVkWQ0KICAgICAgICBjb25zdCBkZXN0VyA9IE1hdGgucm91bmQoKChpbnRlckUgLSBpbnRlclcpIC8gKHRFIC0gdFcpKSAqIFRJTEVfU0laRSkNCiAgICAgICAgY29uc3QgZGVzdEggPSBNYXRoLnJvdW5kKCgoaW50ZXJOIC0gaW50ZXJTKSAvICh0TiAtIHRTKSkgKiBUSUxFX1NJWkUpDQogICAgICAgIGNvbnN0IGRlc3RYID0gTWF0aC5mbG9vcigoKGludGVyVyAtIHRXKSAvICh0RSAtIHRXKSkgKiBUSUxFX1NJWkUpDQogICAgICAgIGNvbnN0IGRlc3RZID0gTWF0aC5mbG9vcigoKHROIC0gaW50ZXJOKSAvICh0TiAtIHRTKSkgKiBUSUxFX1NJWkUpDQogICAgICAgIHRpbGVDdHguZHJhd0ltYWdlKHN0YWdpbmdDYW52YXMsIHNyY1gsIHNyY1ksIHJlYWRXLCByZWFkSCwgZGVzdFgsIGRlc3RZLCBkZXN0VywgZGVzdEgpDQoNCiAgICAgICAgLy8gdHJhbnNmZXJUb0ltYWdlQml0bWFwIOavlCBjcmVhdGVJbWFnZUJpdG1hcCDmm7Tlv6vvvIznm7TmjqXovaznp7sgR1BVIOe6ueeQhuiAjOaXoOmcgOaLt+i0nQ0KICAgICAgICBjb25zdCBiaXRtYXAgPSB0aWxlQ2FudmFzLnRyYW5zZmVyVG9JbWFnZUJpdG1hcCgpDQoNCiAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSh7IHR5cGU6ICdUSUxFX0RPTkUnLCB0YXNrSWQsIHBheWxvYWQ6IHsgYml0bWFwLCBlbXB0eTogZmFsc2UgfSB9LCBbYml0bWFwXSkNCiAgICAgICAgYnJlYWsNCiAgICAgIH0NCg0KICAgICAgZGVmYXVsdDoNCiAgICAgICAgYnJlYWsNCiAgICB9DQogIH0gY2F0Y2ggKGVycjogdW5rbm93bikgew0KICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogU3RyaW5nKGVycikNCiAgICBjb25zdCBzdGFjayA9IGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLnN0YWNrIDogdW5kZWZpbmVkDQogICAgY29uc29sZS5lcnJvcihgW0NPRyBXb3JrZXJdIOmUmeivryAodHlwZT0ke3R5cGV9LCB0YXNrSWQ9JHt0YXNrSWR9KTpgLCBtZXNzYWdlLCBzdGFjaykNCiAgICBzZWxmLnBvc3RNZXNzYWdlKHsgdHlwZTogJ0VSUk9SJywgdGFza0lkLCBwYXlsb2FkOiB7IGVycm9yOiBtZXNzYWdlIH0gfSkNCiAgfQ0KfQ0K", "" + import.meta.url);
|
|
165
|
-
|
|
163
|
+
var b = '(()=>{var pC=Object.create;var qg=Object.defineProperty;var _C=Object.getOwnPropertyDescriptor;var FC=Object.getOwnPropertyNames;var RC=Object.getPrototypeOf,kC=Object.prototype.hasOwnProperty;var MA=(A,t)=>()=>(A&&(t=A(A=0)),t);var wi=(A,t)=>()=>(t||A((t={exports:{}}).exports,t),t.exports),ut=(A,t)=>{for(var e in t)qg(A,e,{get:t[e],enumerable:!0})},LC=(A,t,e,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let g of FC(t))!kC.call(A,g)&&g!==e&&qg(A,g,{get:()=>t[g],enumerable:!(i=_C(t,g))||i.enumerable});return A};var yi=(A,t,e)=>(e=A!=null?pC(RC(A)):{},LC(t||!A||!A.__esModule?qg(e,"default",{value:A,enumerable:!0}):e,A));function _t(A){let t=WC[A];if(t===void 0)throw new RangeError(`Invalid field type: ${A}`);return t}function as(A,t,e,i=!1,g=!1){Is[t]=A,zt[A]={tag:A,name:t,type:typeof e=="string"?S[e]:e,isArray:i,eager:g}}function Fe(A){return typeof A=="number"?A:Is[A]}var S,WC,XC,Is,zt,NA,ss,rs,Ri,eI,$C,Re=MA(()=>{S={BYTE:1,ASCII:2,SHORT:3,LONG:4,RATIONAL:5,SBYTE:6,UNDEFINED:7,SSHORT:8,SLONG:9,SRATIONAL:10,FLOAT:11,DOUBLE:12,IFD:13,LONG8:16,SLONG8:17,IFD8:18},WC={[S.BYTE]:1,[S.ASCII]:1,[S.SBYTE]:1,[S.UNDEFINED]:1,[S.SHORT]:2,[S.SSHORT]:2,[S.LONG]:4,[S.SLONG]:4,[S.FLOAT]:4,[S.IFD]:4,[S.RATIONAL]:8,[S.SRATIONAL]:8,[S.DOUBLE]:8,[S.LONG8]:8,[S.SLONG8]:8,[S.IFD8]:8};XC={NewSubfileType:{tag:254,type:S.LONG,eager:!0},SubfileType:{tag:255,type:S.SHORT,eager:!0},ImageWidth:{tag:256,type:S.SHORT,eager:!0},ImageLength:{tag:257,type:S.SHORT,eager:!0},BitsPerSample:{tag:258,type:S.SHORT,isArray:!0,eager:!0},Compression:{tag:259,type:S.SHORT,eager:!0},PhotometricInterpretation:{tag:262,type:S.SHORT,eager:!0},Threshholding:{tag:263,type:S.SHORT},CellWidth:{tag:264,type:S.SHORT},CellLength:{tag:265,type:S.SHORT},FillOrder:{tag:266,type:S.SHORT},DocumentName:{tag:269,type:S.ASCII},ImageDescription:{tag:270,type:S.ASCII},Make:{tag:271,type:S.ASCII},Model:{tag:272,type:S.ASCII},StripOffsets:{tag:273,type:S.SHORT,isArray:!0},Orientation:{tag:274,type:S.SHORT},SamplesPerPixel:{tag:277,type:S.SHORT,eager:!0},RowsPerStrip:{tag:278,type:S.SHORT,eager:!0},StripByteCounts:{tag:279,type:S.LONG,isArray:!0},MinSampleValue:{tag:280,type:S.SHORT,isArray:!0},MaxSampleValue:{tag:281,type:S.SHORT,isArray:!0},XResolution:{tag:282,type:S.RATIONAL},YResolution:{tag:283,type:S.RATIONAL},PlanarConfiguration:{tag:284,type:S.SHORT,eager:!0},PageName:{tag:285,type:S.ASCII},XPosition:{tag:286,type:S.RATIONAL},YPosition:{tag:287,type:S.RATIONAL},FreeOffsets:{tag:288,type:S.LONG},FreeByteCounts:{tag:289,type:S.LONG},GrayResponseUnit:{tag:290,type:S.SHORT},GrayResponseCurve:{tag:291,type:S.SHORT,isArray:!0},T4Options:{tag:292,type:S.LONG},T6Options:{tag:293,type:S.LONG},ResolutionUnit:{tag:296,type:S.SHORT},PageNumber:{tag:297,type:S.SHORT,isArray:!0},TransferFunction:{tag:301,type:S.SHORT,isArray:!0},Software:{tag:305,type:S.ASCII},DateTime:{tag:306,type:S.ASCII},Artist:{tag:315,type:S.ASCII},HostComputer:{tag:316,type:S.ASCII},Predictor:{tag:317,type:S.SHORT},WhitePoint:{tag:318,type:S.RATIONAL,isArray:!0},PrimaryChromaticities:{tag:319,type:S.RATIONAL,isArray:!0},ColorMap:{tag:320,type:S.SHORT,isArray:!0},HalftoneHints:{tag:321,type:S.SHORT,isArray:!0},TileWidth:{tag:322,type:S.SHORT,eager:!0},TileLength:{tag:323,type:S.SHORT,eager:!0},TileOffsets:{tag:324,type:S.LONG,isArray:!0},TileByteCounts:{tag:325,type:S.SHORT,isArray:!0},InkSet:{tag:332,type:S.SHORT},InkNames:{tag:333,type:S.ASCII},NumberOfInks:{tag:334,type:S.SHORT},DotRange:{tag:336,type:S.BYTE,isArray:!0},TargetPrinter:{tag:337,type:S.ASCII},ExtraSamples:{tag:338,type:S.BYTE,isArray:!0,eager:!0},SampleFormat:{tag:339,type:S.SHORT,isArray:!0,eager:!0},SMinSampleValue:{tag:340,isArray:!0},SMaxSampleValue:{tag:341,isArray:!0},TransferRange:{tag:342,type:S.SHORT,isArray:!0},JPEGProc:{tag:512,type:S.SHORT},JPEGInterchangeFormat:{tag:513,type:S.LONG},JPEGInterchangeFormatLngth:{tag:514,type:S.LONG},JPEGRestartInterval:{tag:515,type:S.SHORT},JPEGLosslessPredictors:{tag:517,type:S.SHORT,isArray:!0},JPEGPointTransforms:{tag:518,type:S.SHORT,isArray:!0},JPEGQTables:{tag:519,type:S.LONG,isArray:!0},JPEGDCTables:{tag:520,type:S.LONG,isArray:!0},JPEGACTables:{tag:521,type:S.LONG,isArray:!0},YCbCrCoefficients:{tag:529,type:S.RATIONAL,isArray:!0},YCbCrSubSampling:{tag:530,type:S.SHORT,isArray:!0},YCbCrPositioning:{tag:531,type:S.SHORT},ReferenceBlackWhite:{tag:532,type:S.LONG,isArray:!0},Copyright:{tag:33432,type:S.ASCII},BadFaxLines:{tag:326},CleanFaxData:{tag:327},ClipPath:{tag:343},ConsecutiveBadFaxLines:{tag:328},Decode:{tag:433},DefaultImageColor:{tag:434},Indexed:{tag:346},JPEGTables:{tag:347,isArray:!0,eager:!0},StripRowCounts:{tag:559,isArray:!0},SubIFDs:{tag:330,isArray:!0},XClipPathUnits:{tag:344},YClipPathUnits:{tag:345},ApertureValue:{tag:37378},ColorSpace:{tag:40961},DateTimeDigitized:{tag:36868},DateTimeOriginal:{tag:36867},ExifIFD:{tag:34665,name:"Exif IFD",type:S.LONG},ExifVersion:{tag:36864},ExposureTime:{tag:33434},FileSource:{tag:41728},Flash:{tag:37385},FlashpixVersion:{tag:40960},FNumber:{tag:33437},ImageUniqueID:{tag:42016},LightSource:{tag:37384},MakerNote:{tag:37500},ShutterSpeedValue:{tag:37377},UserComment:{tag:37510},IPTC:{tag:33723},CZ_LSMINFO:{tag:34412},ICCProfile:{tag:34675,name:"ICC Profile"},XMP:{tag:700},GDAL_METADATA:{tag:42112},GDAL_NODATA:{tag:42113,type:S.ASCII,eager:!0},Photoshop:{tag:34377},ModelPixelScale:{tag:33550,type:S.DOUBLE,isArray:!0,eager:!0},ModelTiepoint:{tag:33922,type:S.DOUBLE,isArray:!0,eager:!0},ModelTransformation:{tag:34264,type:S.DOUBLE,isArray:!0,eager:!0},GeoKeyDirectory:{tag:34735,type:S.SHORT,isArray:!0,eager:!0},GeoDoubleParams:{tag:34736,type:S.DOUBLE,isArray:!0,eager:!0},GeoAsciiParams:{tag:34737,type:S.ASCII,eager:!0},LercParameters:{tag:50674,eager:!0}},Is={},zt={};for(let[A,t]of Object.entries(XC)){let e=t;as(e.tag,e.name||A,e.type,e.isArray,e.eager)}NA={WhiteIsZero:0,BlackIsZero:1,RGB:2,Palette:3,TransparencyMask:4,CMYK:5,YCbCr:6,CIELab:8,ICCLab:9},ss={Unspecified:0,Assocalpha:1,Unassalpha:2},rs={Version:0,AddCompression:1},Ri={None:0,Deflate:1,Zstandard:2},eI={1024:"GTModelTypeGeoKey",1025:"GTRasterTypeGeoKey",1026:"GTCitationGeoKey",2048:"GeographicTypeGeoKey",2049:"GeogCitationGeoKey",2050:"GeogGeodeticDatumGeoKey",2051:"GeogPrimeMeridianGeoKey",2052:"GeogLinearUnitsGeoKey",2053:"GeogLinearUnitSizeGeoKey",2054:"GeogAngularUnitsGeoKey",2055:"GeogAngularUnitSizeGeoKey",2056:"GeogEllipsoidGeoKey",2057:"GeogSemiMajorAxisGeoKey",2058:"GeogSemiMinorAxisGeoKey",2059:"GeogInvFlatteningGeoKey",2060:"GeogAzimuthUnitsGeoKey",2061:"GeogPrimeMeridianLongGeoKey",2062:"GeogTOWGS84GeoKey",3072:"ProjectedCSTypeGeoKey",3073:"PCSCitationGeoKey",3074:"ProjectionGeoKey",3075:"ProjCoordTransGeoKey",3076:"ProjLinearUnitsGeoKey",3077:"ProjLinearUnitSizeGeoKey",3078:"ProjStdParallel1GeoKey",3079:"ProjStdParallel2GeoKey",3080:"ProjNatOriginLongGeoKey",3081:"ProjNatOriginLatGeoKey",3082:"ProjFalseEastingGeoKey",3083:"ProjFalseNorthingGeoKey",3084:"ProjFalseOriginLongGeoKey",3085:"ProjFalseOriginLatGeoKey",3086:"ProjFalseOriginEastingGeoKey",3087:"ProjFalseOriginNorthingGeoKey",3088:"ProjCenterLongGeoKey",3089:"ProjCenterLatGeoKey",3090:"ProjCenterEastingGeoKey",3091:"ProjCenterNorthingGeoKey",3092:"ProjScaleAtNatOriginGeoKey",3093:"ProjScaleAtCenterGeoKey",3094:"ProjAzimuthAngleGeoKey",3095:"ProjStraightVertPoleLongGeoKey",3096:"ProjRectifiedGridAngleGeoKey",4096:"VerticalCSTypeGeoKey",4097:"VerticalCitationGeoKey",4098:"VerticalDatumGeoKey",4099:"VerticalUnitsGeoKey"},$C={};for(let[A,t]of Object.entries(eI))$C[t]=parseInt(A,10)});function iB(A,t){let e=A.length-t,i=0;do{for(let g=t;g>0;g--)A[i+t]+=A[i],i++;e-=t}while(e>0)}function gB(A,t,e){let i=0,g=A.length,I=g/e;for(;g>t;){for(let a=t;a>0;--a)A[i+t]+=A[i],++i;g-=t}let r=A.slice();for(let a=0;a<I;++a)for(let o=0;o<e;++o)A[e*a+o]=r[(e-o-1)*I+a]}function Qs(A,t,e,i,g,I){if(!t||t===1)return A;for(let o=0;o<g.length;++o){if(g[o]%8!==0)throw new Error("When decoding with predictor, only multiple of 8 bits are supported.");if(g[o]!==g[0])throw new Error("When decoding with predictor, all samples must have the same size.")}let r=g[0]/8,a=I===2?1:g.length;for(let o=0;o<i&&!(o*a*e*r>=A.byteLength);++o){let s;if(t===2){switch(g[0]){case 8:s=new Uint8Array(A,o*a*e*r,a*e*r);break;case 16:s=new Uint16Array(A,o*a*e*r,a*e*r/2);break;case 32:s=new Uint32Array(A,o*a*e*r,a*e*r/4);break;default:throw new Error(`Predictor 2 not allowed with ${g[0]} bits per sample.`)}iB(s,a)}else t===3&&(s=new Uint8Array(A,o*a*e*r,a*e*r),gB(s,a,r))}return A}var ls=MA(()=>{});var CA,WA=MA(()=>{ls();CA=class{constructor(t){this.parameters=t}decodeBlock(t){throw new Error("decodeBlock not implemented")}async decode(t){let e=await this.decodeBlock(t),{tileWidth:i,tileHeight:g,predictor:I,bitsPerSample:r,planarConfiguration:a}=this.parameters;if(I!==1){let s=Array.isArray(r)||ArrayBuffer.isView(r)?Array.from(r):[r];return Qs(e,I,i,g,s,a)}return e}}});var fs={};ut(fs,{default:()=>ki});var ki,cs=MA(()=>{WA();ki=class extends CA{decodeBlock(t){return t}}});var ds={};ut(ds,{default:()=>Li});function aB(A,t,e){let i=t%8,g=Math.floor(t/8),I=8-i,r=t+e-(g+1)*8,a=8*(g+2)-(t+e),o=(g+2)*8-t;if(a=Math.max(0,a),g>=A.length)return console.warn("ran off the end of the buffer before finding EOI_CODE (end on input code)"),II;let s=A[g]&2**(8-i)-1;s<<=e-I;let n=s;if(g+1<A.length){let E=A[g+1]>>>a;E<<=Math.max(0,e-o),n+=E}if(r>8&&g+2<A.length){let E=(g+3)*8-(t+e),B=A[g+2]>>>E;n+=B}return n}function gI(A,t){for(let e=t.length-1;e>=0;e--)A.push(t[e]);return A}function sB(A){let t=new Uint16Array(4093),e=new Uint8Array(4093);for(let h=0;h<=257;h++)t[h]=4096,e[h]=h;let i=258,g=us,I=0;function r(){i=258,g=us}function a(h){let Q=aB(h,I,g);return I+=g,Q}function o(h,Q){return e[i]=Q,t[i]=h,i++,i-1}function s(h){let Q=[];for(let l=h;l!==4096;l=t[l])Q.push(e[l]);return Q}let n=[];r();let E=new Uint8Array(A),B=a(E),C;for(;B!==II;){if(B===iI){for(r(),B=a(E);B===iI;)B=a(E);if(B===II)break;if(B>iI)throw new Error(`corrupted code at scanline ${B}`);{let h=s(B);gI(n,h),C=B}}else if(B<i){let h=s(B);gI(n,h),C!==void 0&&o(C,h[h.length-1]),C=B}else{if(C===void 0)throw new Error(`Invalid LZW code: ${B} with no previous code`);let h=s(C);if(!h)throw new Error(`Bogus entry. Not in dictionary, ${C} / ${i}, position: ${I}`);gI(n,h),n.push(h[h.length-1]),o(C,h[h.length-1]),C=B}i+1>=2**g&&(g===IB?C=void 0:g++),B=a(E)}return new Uint8Array(n)}var us,iI,II,IB,Li,ws=MA(()=>{WA();us=9,iI=256,II=257,IB=12;Li=class extends CA{decodeBlock(t){return sB(t).buffer}}});var Ds={};ut(Ds,{default:()=>Ti});function ys(A,t){let e=0,i=[],g=16;for(;g>0&&!A[g-1];)--g;i.push({children:[],index:0});let I=i[0],r;for(let a=0;a<g;a++){for(let o=0;o<A[a];o++){if(I=i.pop(),!I)throw new Error("buildHuffmanTable: codeLength mismatch");for(I.children[I.index]=t[e];I.index>0;)if(I=i.pop(),!I)throw new Error("buildHuffmanTable: codeLength mismatch");for(I.index++,i.push(I);i.length<=a;)i.push(r={children:[],index:0}),I.children[I.index]=r.children,I=r;e++}a+1<g&&(i.push(r={children:[],index:0}),I.children[I.index]=r.children,I=r)}return i[0].children}function rB(A,t,e,i,g,I,r,a,o){let{mcusPerLine:s,progressive:n}=e;if(i.length>1&&(s===void 0||e.mcusPerColumn===void 0))throw new Error("Missing MCU dimensions");if(i.length===1&&(i[0].blocksPerLine===void 0||i[0].blocksPerColumn===void 0))throw new Error("Missing block dimensions");let E=t,B=t,C=0,h=0;function Q(){if(h>0)return h--,C>>h&1;if(C=A[B++],C===255){let K=A[B++];if(K)throw new Error(`unexpected marker: ${(C<<8|K).toString(16)}`)}return h=7,C>>>7}function l(K){if(!K)throw new Error("Huffman table not found");let T=K,H;for(;(H=Q())!==null;){let j=T[H];if(typeof j=="number")return j;if(typeof j!="object")throw new Error("invalid huffman sequence");T=j}return null}function c(K){let T=K,H=0;for(;T>0;){let j=Q();if(j===null)return;H=H<<1|j,--T}return H}function w(K){let T=c(K);if(T!==void 0)return T>=1<<K-1?T:T+(-1<<K)+1}function D(K,T){let H=l(K.huffmanTableDC);if(H===null)throw new Error("Huffman error");let j=H===0?0:w(H);if(j===void 0)throw new Error("Unexpected end of stream");K.pred===void 0&&(K.pred=0),K.pred+=j,T[0]=K.pred;let V=1;for(;V<64;){let sA=l(K.huffmanTableAC);if(sA===null)throw new Error("Unexpected end of data in AC coefficient decoding");let nA=sA&15,O=sA>>4;if(nA===0){if(O<15)break;V+=16}else{V+=O;let QA=ke[V],P=w(nA);if(P===void 0)throw new Error("Unexpected end of stream");T[QA]=P,V++}}}function y(K,T){let H=l(K.huffmanTableDC);if(H===null)throw new Error("Huffman error");let j=w(H);if(j===void 0)throw new Error("Unexpected end of data in DC coefficient decoding");let V=H===0?0:j<<o;K.pred===void 0&&(K.pred=0),K.pred+=V,T[0]=K.pred}function f(K,T){let H=Q();if(H===null)throw new Error("Unexpected end of data in DC coefficient decoding");T[0]|=H<<o}let u=0;function d(K,T){if(u>0){u--;return}let H=I,j=r;for(;H<=j;){let V=l(K.huffmanTableAC);if(V===null)throw new Error("Unexpected end of data in AC coefficient decoding");let sA=V&15,nA=V>>4;if(sA===0){if(nA<15){let O=c(nA);if(O===void 0)throw new Error("Unexpected end of data in AC coefficient decoding");u=O+(1<<nA)-1;break}H+=16}else{H+=nA;let O=ke[H],QA=w(sA);if(QA===void 0)throw new Error("Unexpected end of data in AC coefficient decoding");T[O]=QA*(1<<o),H++}}}let G=0,M;function m(K,T){let H=I,j=r,V=0;for(;H<=j;){let sA=ke[H],nA=T[sA]<0?-1:1;switch(G){case 0:{let O=l(K.huffmanTableAC);if(O===null)throw new Error("Unexpected end of data in AC coefficient decoding");let QA=O&15;if(V=O>>4,QA===0)if(V<15){let P=c(V);if(P===void 0)throw new Error("Unexpected end of data in AC coefficient decoding");u=P+(1<<V),G=4}else V=16,G=1;else{if(QA!==1)throw new Error("invalid ACn encoding");let P=w(QA);if(P===void 0)throw new Error("Unexpected end of data in AC coefficient decoding");M=P,G=V?2:3}continue}case 1:case 2:if(T[sA]){let O=Q();if(O===null)throw new Error("Unexpected end of data in AC coefficient decoding");T[sA]+=(O<<o)*nA}else V--,V===0&&(G=G===2?3:0);break;case 3:if(T[sA]){let O=Q();if(O===null)throw new Error("Unexpected end of data in AC coefficient decoding");T[sA]+=(O<<o)*nA}else T[sA]=M<<o,G=0;break;case 4:if(T[sA]){let O=Q();if(O===null)throw new Error("Unexpected end of data in AC coefficient decoding");T[sA]+=(O<<o)*nA}break;default:break}H++}G===4&&(u--,u===0&&(G=0))}function _(K,T,H,j,V){let sA=H/s|0,nA=H%s,O=sA*K.v+j,QA=nA*K.h+V;if(!K.blocks)throw new Error("Missing blocks");T(K,K.blocks[O][QA])}function k(K,T,H){let j=H/K.blocksPerLine|0,V=H%K.blocksPerLine;if(!K.blocks)throw new Error("Missing blocks");T(K,K.blocks[j][V])}let v=i.length,L,p,U,J,x,b;n?I===0?b=a===0?y:f:b=a===0?d:m:b=D;let Y=0,q,W;v===1?W=i[0].blocksPerLine*i[0].blocksPerColumn:W=s*e.mcusPerColumn;let AA=g||W;for(;Y<W;){for(p=0;p<v;p++)i[p].pred=0;if(u=0,v===1)for(L=i[0],x=0;x<AA;x++)k(L,b,Y),Y++;else for(x=0;x<AA;x++){for(p=0;p<v;p++){L=i[p];let{h:K,v:T}=L;for(U=0;U<T;U++)for(J=0;J<K;J++)_(L,b,Y,U,J)}if(Y++,Y===W)break}if(h=0,q=A[B]<<8|A[B+1],q<65280)throw new Error("marker was not found");if(q>=65488&&q<=65495)B+=2;else break}return B-E}function oB(A){let t=[],{blocksPerLine:e,blocksPerColumn:i}=A;if(!e||!i||!A.blocks)throw new Error("Missing component data");let g=e<<3,I=new Int32Array(64),r=new Uint8Array(64);function a(o,s,n){let E=A.quantizationTable;if(!E)throw new Error("No quantization table found");let B,C,h,Q,l,c,w,D,y,f=n,u;for(u=0;u<64;u++)f[u]=o[u]*E[u];for(u=0;u<8;++u){let d=8*u;if(f[1+d]===0&&f[2+d]===0&&f[3+d]===0&&f[4+d]===0&&f[5+d]===0&&f[6+d]===0&&f[7+d]===0){y=Vt*f[0+d]+512>>10,f[0+d]=y,f[1+d]=y,f[2+d]=y,f[3+d]=y,f[4+d]=y,f[5+d]=y,f[6+d]=y,f[7+d]=y;continue}B=Vt*f[0+d]+128>>8,C=Vt*f[4+d]+128>>8,h=f[2+d],Q=f[6+d],l=Hi*(f[1+d]-f[7+d])+128>>8,D=Hi*(f[1+d]+f[7+d])+128>>8,c=f[3+d]<<4,w=f[5+d]<<4,y=B-C+1>>1,B=B+C+1>>1,C=y,y=h*Ki+Q*Yi+128>>8,h=h*Yi-Q*Ki+128>>8,Q=y,y=l-w+1>>1,l=l+w+1>>1,w=y,y=D+c+1>>1,c=D-c+1>>1,D=y,y=B-Q+1>>1,B=B+Q+1>>1,Q=y,y=C-h+1>>1,C=C+h+1>>1,h=y,y=l*bi+D*vi+2048>>12,l=l*vi-D*bi+2048>>12,D=y,y=c*Ui+w*xi+2048>>12,c=c*xi-w*Ui+2048>>12,w=y,f[0+d]=B+D,f[7+d]=B-D,f[1+d]=C+w,f[6+d]=C-w,f[2+d]=h+c,f[5+d]=h-c,f[3+d]=Q+l,f[4+d]=Q-l}for(u=0;u<8;++u){let d=u;if(f[8+d]===0&&f[16+d]===0&&f[24+d]===0&&f[32+d]===0&&f[40+d]===0&&f[48+d]===0&&f[56+d]===0){y=Vt*n[u+0]+8192>>14,f[0+d]=y,f[8+d]=y,f[16+d]=y,f[24+d]=y,f[32+d]=y,f[40+d]=y,f[48+d]=y,f[56+d]=y;continue}B=Vt*f[0+d]+2048>>12,C=Vt*f[32+d]+2048>>12,h=f[16+d],Q=f[48+d],l=Hi*(f[8+d]-f[56+d])+2048>>12,D=Hi*(f[8+d]+f[56+d])+2048>>12,c=f[24+d],w=f[40+d],y=B-C+1>>1,B=B+C+1>>1,C=y,y=h*Ki+Q*Yi+2048>>12,h=h*Yi-Q*Ki+2048>>12,Q=y,y=l-w+1>>1,l=l+w+1>>1,w=y,y=D+c+1>>1,c=D-c+1>>1,D=y,y=B-Q+1>>1,B=B+Q+1>>1,Q=y,y=C-h+1>>1,C=C+h+1>>1,h=y,y=l*bi+D*vi+2048>>12,l=l*vi-D*bi+2048>>12,D=y,y=c*Ui+w*xi+2048>>12,c=c*xi-w*Ui+2048>>12,w=y,f[0+d]=B+D,f[56+d]=B-D,f[8+d]=C+w,f[48+d]=C-w,f[16+d]=h+c,f[40+d]=h-c,f[24+d]=Q+l,f[32+d]=Q-l}for(u=0;u<64;++u){let d=128+(f[u]+8>>4);d<0?s[u]=0:d>255?s[u]=255:s[u]=d}}for(let o=0;o<i;o++){let s=o<<3;for(let n=0;n<8;n++)t.push(new Uint8Array(g));for(let n=0;n<e;n++){a(A.blocks[o][n],r,I);let E=0,B=n<<3;for(let C=0;C<8;C++){let h=t[s+C];for(let Q=0;Q<8;Q++)h[B+Q]=r[E++]}}}return t}var ke,xi,Ui,vi,bi,Yi,Ki,Vt,Hi,aI,Ti,Ss=MA(()=>{WA();ke=new Int32Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),xi=4017,Ui=799,vi=3406,bi=2276,Yi=1567,Ki=3784,Vt=5793,Hi=2896;aI=class{constructor(){this.jfif=null,this.adobe=null,this.resetInterval=0,this.quantizationTables=[],this.huffmanTablesAC=[],this.huffmanTablesDC=[],this.frames=[]}resetFrames(){this.frames=[]}parse(t){let e=0;function i(){let a=t[e]<<8|t[e+1];return e+=2,a}function g(){let a=i(),o=t.subarray(e,e+a-2);return e+=o.length,o}function I(a){let o=0,s=0,n,E;for(E in a.components)a.components.hasOwnProperty(E)&&(n=a.components[E],o<n.h&&(o=n.h),s<n.v&&(s=n.v));let B=Math.ceil(a.samplesPerLine/8/o),C=Math.ceil(a.scanLines/8/s);for(E in a.components)if(a.components.hasOwnProperty(E)){n=a.components[E];let h=Math.ceil(Math.ceil(a.samplesPerLine/8)*n.h/o),Q=Math.ceil(Math.ceil(a.scanLines/8)*n.v/s),l=B*n.h,c=C*n.v,w=[];for(let D=0;D<c;D++){let y=[];for(let f=0;f<l;f++)y.push(new Int32Array(64));w.push(y)}n.blocksPerLine=h,n.blocksPerColumn=Q,n.blocks=w}a.maxH=o,a.maxV=s,a.mcusPerLine=B,a.mcusPerColumn=C}let r=i();if(r!==65496)throw new Error("SOI not found");for(r=i();r!==65497;){switch(r){case 65280:break;case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:case 65534:{let a=g();r===65504&&a[0]===74&&a[1]===70&&a[2]===73&&a[3]===70&&a[4]===0&&(this.jfif={version:{major:a[5],minor:a[6]},densityUnits:a[7],xDensity:a[8]<<8|a[9],yDensity:a[10]<<8|a[11],thumbWidth:a[12],thumbHeight:a[13],thumbData:a.subarray(14,14+3*a[12]*a[13])}),r===65518&&a[0]===65&&a[1]===100&&a[2]===111&&a[3]===98&&a[4]===101&&a[5]===0&&(this.adobe={version:a[6],flags0:a[7]<<8|a[8],flags1:a[9]<<8|a[10],transformCode:a[11]});break}case 65499:{let o=i()+e-2;for(;e<o;){let s=t[e++],n=new Int32Array(64);if(s>>4===0)for(let E=0;E<64;E++){let B=ke[E];n[B]=t[e++]}else if(s>>4===1)for(let E=0;E<64;E++){let B=ke[E];n[B]=i()}else throw new Error("DQT: invalid table spec");this.quantizationTables[s&15]=n}break}case 65472:case 65473:case 65474:{i();let a={extended:r===65473,progressive:r===65474,precision:t[e++],scanLines:i(),samplesPerLine:i(),components:{},componentsOrder:[],maxH:0,maxV:0,mcusPerLine:0,mcusPerColumn:0},o=t[e++],s;for(let n=0;n<o;n++){s=t[e];let E=t[e+1]>>4,B=t[e+1]&15,C=t[e+2];a.componentsOrder.push(s),a.components[s]={h:E,v:B,quantizationIdx:C,blocksPerLine:0,blocksPerColumn:0,blocks:[]},e+=3}I(a),this.frames.push(a);break}case 65476:{let a=i();for(let o=2;o<a;){let s=t[e++],n=new Uint8Array(16),E=0;for(let C=0;C<16;C++,e++)n[C]=t[e],E+=n[C];let B=new Uint8Array(E);for(let C=0;C<E;C++,e++)B[C]=t[e];o+=17+E,s>>4===0?this.huffmanTablesDC[s&15]=ys(n,B):this.huffmanTablesAC[s&15]=ys(n,B)}break}case 65501:i(),this.resetInterval=i();break;case 65498:{i();let a=t[e++],o=[],s=this.frames[0];for(let h=0;h<a;h++){let Q=s.components[t[e++]],l=t[e++];Q.huffmanTableDC=this.huffmanTablesDC[l>>4],Q.huffmanTableAC=this.huffmanTablesAC[l&15],o.push(Q)}let n=t[e++],E=t[e++],B=t[e++],C=rB(t,e,s,o,this.resetInterval,n,E,B>>4,B&15);e+=C;break}case 65535:t[e]!==255&&e--;break;default:if(t[e-3]===255&&t[e-2]>=192&&t[e-2]<=254){e-=3;break}throw new Error(`unknown JPEG marker ${r.toString(16)}`)}r=i()}}getResult(){let{frames:t}=this;if(this.frames.length===0)throw new Error("no frames were decoded");this.frames.length>1&&console.warn("more than one frame is not supported");for(let n=0;n<this.frames.length;n++){let E=this.frames[n].components;for(let B of Object.keys(E)){let C=E[B].quantizationIdx;typeof C=="number"&&(E[B].quantizationTable=this.quantizationTables[C],delete E[B].quantizationIdx)}}let e=t[0];if(!e.maxH||!e.maxV)throw new Error("Invalid frame dimensions");let{components:i,componentsOrder:g}=e,I=[],r=e.samplesPerLine,a=e.scanLines;for(let n=0;n<g.length;n++){let E=i[g[n]];I.push({lines:oB(E),scaleX:E.h/e.maxH,scaleY:E.v/e.maxV})}let o=new Uint8Array(r*a*I.length),s=0;for(let n=0;n<a;++n)for(let E=0;E<r;++E)for(let B=0;B<I.length;++B){let C=I[B];o[s]=C.lines[0|n*C.scaleY][0|E*C.scaleX],++s}return o}},Ti=class extends CA{constructor(t){super(t),this.reader=new aI,t.JPEGTables&&this.reader.parse(t.JPEGTables)}decodeBlock(t){return this.reader.resetFrames(),this.reader.parse(new Uint8Array(t)),this.reader.getResult().buffer}}});function ee(A){let t=A.length;for(;--t>=0;)A[t]=0}function rI(A,t,e,i,g){this.static_tree=A,this.extra_bits=t,this.extra_base=e,this.elems=i,this.max_length=g,this.has_stree=A&&A.length}function oI(A,t){this.dyn_tree=A,this.max_code=0,this.stat_desc=t}function XA(A,t,e,i,g){this.good_length=A,this.max_lazy=t,this.nice_length=e,this.max_chain=i,this.func=g}function CE(){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=Xi,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(eE*2),this.dyn_dtree=new Uint16Array((2*AE+1)*2),this.bl_tree=new Uint16Array((2*tE+1)*2),dt(this.dyn_ltree),dt(this.dyn_dtree),dt(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(iE+1),this.heap=new Uint16Array(2*SI+1),dt(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*SI+1),dt(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}function kE(){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}function Ve(A){this.options=$i.assign({level:YE,method:HE,chunkSize:16384,windowBits:15,memLevel:8,strategy:KE},A||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new _r,this.strm.avail_out=0;let e=be.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(e!==Vi)throw new Error(Lt[e]);if(t.header&&be.deflateSetHeader(this.strm,t.header),t.dictionary){let i;if(typeof t.dictionary=="string"?i=Oe.string2buf(t.dictionary):Fr.call(t.dictionary)==="[object ArrayBuffer]"?i=new Uint8Array(t.dictionary):i=t.dictionary,e=be.deflateSetDictionary(this.strm,i),e!==Vi)throw new Error(Lt[e]);this._dict_set=!0}}function xI(A,t){let e=new Ve(t);if(e.push(A,!0),e.err)throw e.msg||Lt[e.err];return e.result}function TE(A,t){return t=t||{},t.raw=!0,xI(A,t)}function JE(A,t){return t=t||{},t.gzip=!0,xI(A,t)}function Bh(){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}function ph(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}function We(A){this.options=$i.assign({chunkSize:1024*64,windowBits:15,to:""},A||{});let t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(A&&A.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15)===0&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new _r,this.strm.avail_out=0;let e=ot.inflateInit2(this.strm,t.windowBits);if(e!==je)throw new Error(Lt[e]);if(this.header=new _h,ot.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Oe.string2buf(t.dictionary):Jr.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(e=ot.inflateSetDictionary(this.strm,t.dictionary),e!==je)))throw new Error(Lt[e])}function UI(A,t){let e=new We(t);if(e.push(A),e.err)throw e.msg||Lt[e.err];return e.result}function xh(A,t){return t=t||{},t.raw=!0,UI(A,t)}var nB,or,CB,BB,EB,_I,Ze,Ke,$t,FI,nr,Ft,sI,hB,RI,Cr,Br,Er,wI,Zi,QB,hr,lB,rt,ve,He,Te,kI,zi,Qr,lr,fr,cr,Je,pA,$A,ur,fB,cB,dr,uB,wr,yr,ms,nI,Gs,yI,Ms,Ns,dB,wB,yB,ps,DB,Dr,SB,mB,GB,MB,NB,pB,_B,FB,RB,kB,Pe,LB,xB,UB,lA,Lt,ie,vB,DI,bB,yt,YB,Dt,KB,HB,HA,_s,cA,Fs,At,TB,CI,JB,PB,Ji,qB,OB,jB,ZB,Xi,zB,VB,WB,XB,$B,SI,AE,tE,eE,iE,Z,wt,tt,gE,Ae,LI,mI,GI,MI,NI,Rt,xe,mA,ge,xt,Ie,IE,kt,Rs,dt,aE,sE,St,xA,UA,X,Le,pI,Sr,te,mr,BI,Wt,rE,oE,Ue,nE,ze,Gr,Mr,BE,Nr,EE,hE,QE,lE,fE,cE,uE,dE,wE,yE,DE,SE,mE,be,GE,ME,NE,$i,pr,qe,pE,_E,FE,RE,Oe,_r,Fr,LE,xE,UE,vE,Vi,bE,YE,KE,HE,PE,qE,OE,jE,ZE,zE,Pi,VE,WE,Xt,ks,Ls,xs,EI,Us,XE,$E,Ah,th,eh,Ye,ih,Rr,kr,vs,gh,qi,Ut,Ih,ah,TA,Lr,xr,sh,bs,Ag,Ys,Ks,Hs,Ts,Js,Ps,qs,Os,js,Wi,st,hI,Zs,QI,zs,Vs,Ws,Xs,Oi,ji,$s,Ar,tr,er,ir,lI,gr,Ir,aA,Ur,vr,rh,oh,nh,Ch,ar,vt,br,Yr,Kr,Hr,Eh,sr,fI,cI,hh,Tr,Qh,lh,fh,ch,uh,dh,wh,yh,Dh,Sh,mh,Gh,Mh,Nh,ot,_h,Jr,Fh,Rh,je,uI,dI,kh,rr,Lh,Uh,vh,bh,Yh,Kh,Hh,_u,Fu,Ru,ku,Lu,Th,xu,Uu,tg,vI=MA(()=>{nB=0,or=1,CB=2,BB=3,EB=258,_I=29,Ze=256,Ke=Ze+1+_I,$t=30,FI=19,nr=2*Ke+1,Ft=15,sI=16,hB=7,RI=256,Cr=16,Br=17,Er=18,wI=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]),Zi=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]),QB=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),hr=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),lB=512,rt=new Array((Ke+2)*2);ee(rt);ve=new Array($t*2);ee(ve);He=new Array(lB);ee(He);Te=new Array(EB-BB+1);ee(Te);kI=new Array(_I);ee(kI);zi=new Array($t);ee(zi);cr=A=>A<256?He[A]:He[256+(A>>>7)],Je=(A,t)=>{A.pending_buf[A.pending++]=t&255,A.pending_buf[A.pending++]=t>>>8&255},pA=(A,t,e)=>{A.bi_valid>sI-e?(A.bi_buf|=t<<A.bi_valid&65535,Je(A,A.bi_buf),A.bi_buf=t>>sI-A.bi_valid,A.bi_valid+=e-sI):(A.bi_buf|=t<<A.bi_valid&65535,A.bi_valid+=e)},$A=(A,t,e)=>{pA(A,e[t*2],e[t*2+1])},ur=(A,t)=>{let e=0;do e|=A&1,A>>>=1,e<<=1;while(--t>0);return e>>>1},fB=A=>{A.bi_valid===16?(Je(A,A.bi_buf),A.bi_buf=0,A.bi_valid=0):A.bi_valid>=8&&(A.pending_buf[A.pending++]=A.bi_buf&255,A.bi_buf>>=8,A.bi_valid-=8)},cB=(A,t)=>{let e=t.dyn_tree,i=t.max_code,g=t.stat_desc.static_tree,I=t.stat_desc.has_stree,r=t.stat_desc.extra_bits,a=t.stat_desc.extra_base,o=t.stat_desc.max_length,s,n,E,B,C,h,Q=0;for(B=0;B<=Ft;B++)A.bl_count[B]=0;for(e[A.heap[A.heap_max]*2+1]=0,s=A.heap_max+1;s<nr;s++)n=A.heap[s],B=e[e[n*2+1]*2+1]+1,B>o&&(B=o,Q++),e[n*2+1]=B,!(n>i)&&(A.bl_count[B]++,C=0,n>=a&&(C=r[n-a]),h=e[n*2],A.opt_len+=h*(B+C),I&&(A.static_len+=h*(g[n*2+1]+C)));if(Q!==0){do{for(B=o-1;A.bl_count[B]===0;)B--;A.bl_count[B]--,A.bl_count[B+1]+=2,A.bl_count[o]--,Q-=2}while(Q>0);for(B=o;B!==0;B--)for(n=A.bl_count[B];n!==0;)E=A.heap[--s],!(E>i)&&(e[E*2+1]!==B&&(A.opt_len+=(B-e[E*2+1])*e[E*2],e[E*2+1]=B),n--)}},dr=(A,t,e)=>{let i=new Array(Ft+1),g=0,I,r;for(I=1;I<=Ft;I++)g=g+e[I-1]<<1,i[I]=g;for(r=0;r<=t;r++){let a=A[r*2+1];a!==0&&(A[r*2]=ur(i[a]++,a))}},uB=()=>{let A,t,e,i,g,I=new Array(Ft+1);for(e=0,i=0;i<_I-1;i++)for(kI[i]=e,A=0;A<1<<wI[i];A++)Te[e++]=i;for(Te[e-1]=i,g=0,i=0;i<16;i++)for(zi[i]=g,A=0;A<1<<Zi[i];A++)He[g++]=i;for(g>>=7;i<$t;i++)for(zi[i]=g<<7,A=0;A<1<<Zi[i]-7;A++)He[256+g++]=i;for(t=0;t<=Ft;t++)I[t]=0;for(A=0;A<=143;)rt[A*2+1]=8,A++,I[8]++;for(;A<=255;)rt[A*2+1]=9,A++,I[9]++;for(;A<=279;)rt[A*2+1]=7,A++,I[7]++;for(;A<=287;)rt[A*2+1]=8,A++,I[8]++;for(dr(rt,Ke+1,I),A=0;A<$t;A++)ve[A*2+1]=5,ve[A*2]=ur(A,5);Qr=new rI(rt,wI,Ze+1,Ke,Ft),lr=new rI(ve,Zi,0,$t,Ft),fr=new rI(new Array(0),QB,0,FI,hB)},wr=A=>{let t;for(t=0;t<Ke;t++)A.dyn_ltree[t*2]=0;for(t=0;t<$t;t++)A.dyn_dtree[t*2]=0;for(t=0;t<FI;t++)A.bl_tree[t*2]=0;A.dyn_ltree[RI*2]=1,A.opt_len=A.static_len=0,A.sym_next=A.matches=0},yr=A=>{A.bi_valid>8?Je(A,A.bi_buf):A.bi_valid>0&&(A.pending_buf[A.pending++]=A.bi_buf),A.bi_buf=0,A.bi_valid=0},ms=(A,t,e,i)=>{let g=t*2,I=e*2;return A[g]<A[I]||A[g]===A[I]&&i[t]<=i[e]},nI=(A,t,e)=>{let i=A.heap[e],g=e<<1;for(;g<=A.heap_len&&(g<A.heap_len&&ms(t,A.heap[g+1],A.heap[g],A.depth)&&g++,!ms(t,i,A.heap[g],A.depth));)A.heap[e]=A.heap[g],e=g,g<<=1;A.heap[e]=i},Gs=(A,t,e)=>{let i,g,I=0,r,a;if(A.sym_next!==0)do i=A.pending_buf[A.sym_buf+I++]&255,i+=(A.pending_buf[A.sym_buf+I++]&255)<<8,g=A.pending_buf[A.sym_buf+I++],i===0?$A(A,g,t):(r=Te[g],$A(A,r+Ze+1,t),a=wI[r],a!==0&&(g-=kI[r],pA(A,g,a)),i--,r=cr(i),$A(A,r,e),a=Zi[r],a!==0&&(i-=zi[r],pA(A,i,a)));while(I<A.sym_next);$A(A,RI,t)},yI=(A,t)=>{let e=t.dyn_tree,i=t.stat_desc.static_tree,g=t.stat_desc.has_stree,I=t.stat_desc.elems,r,a,o=-1,s;for(A.heap_len=0,A.heap_max=nr,r=0;r<I;r++)e[r*2]!==0?(A.heap[++A.heap_len]=o=r,A.depth[r]=0):e[r*2+1]=0;for(;A.heap_len<2;)s=A.heap[++A.heap_len]=o<2?++o:0,e[s*2]=1,A.depth[s]=0,A.opt_len--,g&&(A.static_len-=i[s*2+1]);for(t.max_code=o,r=A.heap_len>>1;r>=1;r--)nI(A,e,r);s=I;do r=A.heap[1],A.heap[1]=A.heap[A.heap_len--],nI(A,e,1),a=A.heap[1],A.heap[--A.heap_max]=r,A.heap[--A.heap_max]=a,e[s*2]=e[r*2]+e[a*2],A.depth[s]=(A.depth[r]>=A.depth[a]?A.depth[r]:A.depth[a])+1,e[r*2+1]=e[a*2+1]=s,A.heap[1]=s++,nI(A,e,1);while(A.heap_len>=2);A.heap[--A.heap_max]=A.heap[1],cB(A,t),dr(e,o,A.bl_count)},Ms=(A,t,e)=>{let i,g=-1,I,r=t[1],a=0,o=7,s=4;for(r===0&&(o=138,s=3),t[(e+1)*2+1]=65535,i=0;i<=e;i++)I=r,r=t[(i+1)*2+1],!(++a<o&&I===r)&&(a<s?A.bl_tree[I*2]+=a:I!==0?(I!==g&&A.bl_tree[I*2]++,A.bl_tree[Cr*2]++):a<=10?A.bl_tree[Br*2]++:A.bl_tree[Er*2]++,a=0,g=I,r===0?(o=138,s=3):I===r?(o=6,s=3):(o=7,s=4))},Ns=(A,t,e)=>{let i,g=-1,I,r=t[1],a=0,o=7,s=4;for(r===0&&(o=138,s=3),i=0;i<=e;i++)if(I=r,r=t[(i+1)*2+1],!(++a<o&&I===r)){if(a<s)do $A(A,I,A.bl_tree);while(--a!==0);else I!==0?(I!==g&&($A(A,I,A.bl_tree),a--),$A(A,Cr,A.bl_tree),pA(A,a-3,2)):a<=10?($A(A,Br,A.bl_tree),pA(A,a-3,3)):($A(A,Er,A.bl_tree),pA(A,a-11,7));a=0,g=I,r===0?(o=138,s=3):I===r?(o=6,s=3):(o=7,s=4)}},dB=A=>{let t;for(Ms(A,A.dyn_ltree,A.l_desc.max_code),Ms(A,A.dyn_dtree,A.d_desc.max_code),yI(A,A.bl_desc),t=FI-1;t>=3&&A.bl_tree[hr[t]*2+1]===0;t--);return A.opt_len+=3*(t+1)+5+5+4,t},wB=(A,t,e,i)=>{let g;for(pA(A,t-257,5),pA(A,e-1,5),pA(A,i-4,4),g=0;g<i;g++)pA(A,A.bl_tree[hr[g]*2+1],3);Ns(A,A.dyn_ltree,t-1),Ns(A,A.dyn_dtree,e-1)},yB=A=>{let t=4093624447,e;for(e=0;e<=31;e++,t>>>=1)if(t&1&&A.dyn_ltree[e*2]!==0)return 0;if(A.dyn_ltree[18]!==0||A.dyn_ltree[20]!==0||A.dyn_ltree[26]!==0)return 1;for(e=32;e<Ze;e++)if(A.dyn_ltree[e*2]!==0)return 1;return 0},ps=!1,DB=A=>{ps||(uB(),ps=!0),A.l_desc=new oI(A.dyn_ltree,Qr),A.d_desc=new oI(A.dyn_dtree,lr),A.bl_desc=new oI(A.bl_tree,fr),A.bi_buf=0,A.bi_valid=0,wr(A)},Dr=(A,t,e,i)=>{pA(A,(nB<<1)+(i?1:0),3),yr(A),Je(A,e),Je(A,~e),e&&A.pending_buf.set(A.window.subarray(t,t+e),A.pending),A.pending+=e},SB=A=>{pA(A,or<<1,3),$A(A,RI,rt),fB(A)},mB=(A,t,e,i)=>{let g,I,r=0;A.level>0?(A.strm.data_type===2&&(A.strm.data_type=yB(A)),yI(A,A.l_desc),yI(A,A.d_desc),r=dB(A),g=A.opt_len+3+7>>>3,I=A.static_len+3+7>>>3,I<=g&&(g=I)):g=I=e+5,e+4<=g&&t!==-1?Dr(A,t,e,i):A.strategy===4||I===g?(pA(A,(or<<1)+(i?1:0),3),Gs(A,rt,ve)):(pA(A,(CB<<1)+(i?1:0),3),wB(A,A.l_desc.max_code+1,A.d_desc.max_code+1,r+1),Gs(A,A.dyn_ltree,A.dyn_dtree)),wr(A),i&&yr(A)},GB=(A,t,e)=>(A.pending_buf[A.sym_buf+A.sym_next++]=t,A.pending_buf[A.sym_buf+A.sym_next++]=t>>8,A.pending_buf[A.sym_buf+A.sym_next++]=e,t===0?A.dyn_ltree[e*2]++:(A.matches++,t--,A.dyn_ltree[(Te[e]+Ze+1)*2]++,A.dyn_dtree[cr(t)*2]++),A.sym_next===A.sym_end),MB=DB,NB=Dr,pB=mB,_B=GB,FB=SB,RB={_tr_init:MB,_tr_stored_block:NB,_tr_flush_block:pB,_tr_tally:_B,_tr_align:FB},kB=(A,t,e,i)=>{let g=A&65535|0,I=A>>>16&65535|0,r=0;for(;e!==0;){r=e>2e3?2e3:e,e-=r;do g=g+t[i++]|0,I=I+g|0;while(--r);g%=65521,I%=65521}return g|I<<16|0},Pe=kB,LB=()=>{let A,t=[];for(var e=0;e<256;e++){A=e;for(var i=0;i<8;i++)A=A&1?3988292384^A>>>1:A>>>1;t[e]=A}return t},xB=new Uint32Array(LB()),UB=(A,t,e,i)=>{let g=xB,I=i+e;A^=-1;for(let r=i;r<I;r++)A=A>>>8^g[(A^t[r])&255];return A^-1},lA=UB,Lt={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"},ie={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:vB,_tr_stored_block:DI,_tr_flush_block:bB,_tr_tally:yt,_tr_align:YB}=RB,{Z_NO_FLUSH:Dt,Z_PARTIAL_FLUSH:KB,Z_FULL_FLUSH:HB,Z_FINISH:HA,Z_BLOCK:_s,Z_OK:cA,Z_STREAM_END:Fs,Z_STREAM_ERROR:At,Z_DATA_ERROR:TB,Z_BUF_ERROR:CI,Z_DEFAULT_COMPRESSION:JB,Z_FILTERED:PB,Z_HUFFMAN_ONLY:Ji,Z_RLE:qB,Z_FIXED:OB,Z_DEFAULT_STRATEGY:jB,Z_UNKNOWN:ZB,Z_DEFLATED:Xi}=ie,zB=9,VB=15,WB=8,XB=29,$B=256,SI=$B+1+XB,AE=30,tE=19,eE=2*SI+1,iE=15,Z=3,wt=258,tt=wt+Z+1,gE=32,Ae=42,LI=57,mI=69,GI=73,MI=91,NI=103,Rt=113,xe=666,mA=1,ge=2,xt=3,Ie=4,IE=3,kt=(A,t)=>(A.msg=Lt[t],t),Rs=A=>A*2-(A>4?9:0),dt=A=>{let t=A.length;for(;--t>=0;)A[t]=0},aE=A=>{let t,e,i,g=A.w_size;t=A.hash_size,i=t;do e=A.head[--i],A.head[i]=e>=g?e-g:0;while(--t);t=g,i=t;do e=A.prev[--i],A.prev[i]=e>=g?e-g:0;while(--t)},sE=(A,t,e)=>(t<<A.hash_shift^e)&A.hash_mask,St=sE,xA=A=>{let t=A.state,e=t.pending;e>A.avail_out&&(e=A.avail_out),e!==0&&(A.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+e),A.next_out),A.next_out+=e,t.pending_out+=e,A.total_out+=e,A.avail_out-=e,t.pending-=e,t.pending===0&&(t.pending_out=0))},UA=(A,t)=>{bB(A,A.block_start>=0?A.block_start:-1,A.strstart-A.block_start,t),A.block_start=A.strstart,xA(A.strm)},X=(A,t)=>{A.pending_buf[A.pending++]=t},Le=(A,t)=>{A.pending_buf[A.pending++]=t>>>8&255,A.pending_buf[A.pending++]=t&255},pI=(A,t,e,i)=>{let g=A.avail_in;return g>i&&(g=i),g===0?0:(A.avail_in-=g,t.set(A.input.subarray(A.next_in,A.next_in+g),e),A.state.wrap===1?A.adler=Pe(A.adler,t,g,e):A.state.wrap===2&&(A.adler=lA(A.adler,t,g,e)),A.next_in+=g,A.total_in+=g,g)},Sr=(A,t)=>{let e=A.max_chain_length,i=A.strstart,g,I,r=A.prev_length,a=A.nice_match,o=A.strstart>A.w_size-tt?A.strstart-(A.w_size-tt):0,s=A.window,n=A.w_mask,E=A.prev,B=A.strstart+wt,C=s[i+r-1],h=s[i+r];A.prev_length>=A.good_match&&(e>>=2),a>A.lookahead&&(a=A.lookahead);do if(g=t,!(s[g+r]!==h||s[g+r-1]!==C||s[g]!==s[i]||s[++g]!==s[i+1])){i+=2,g++;do;while(s[++i]===s[++g]&&s[++i]===s[++g]&&s[++i]===s[++g]&&s[++i]===s[++g]&&s[++i]===s[++g]&&s[++i]===s[++g]&&s[++i]===s[++g]&&s[++i]===s[++g]&&i<B);if(I=wt-(B-i),i=B-wt,I>r){if(A.match_start=t,r=I,I>=a)break;C=s[i+r-1],h=s[i+r]}}while((t=E[t&n])>o&&--e!==0);return r<=A.lookahead?r:A.lookahead},te=A=>{let t=A.w_size,e,i,g;do{if(i=A.window_size-A.lookahead-A.strstart,A.strstart>=t+(t-tt)&&(A.window.set(A.window.subarray(t,t+t-i),0),A.match_start-=t,A.strstart-=t,A.block_start-=t,A.insert>A.strstart&&(A.insert=A.strstart),aE(A),i+=t),A.strm.avail_in===0)break;if(e=pI(A.strm,A.window,A.strstart+A.lookahead,i),A.lookahead+=e,A.lookahead+A.insert>=Z)for(g=A.strstart-A.insert,A.ins_h=A.window[g],A.ins_h=St(A,A.ins_h,A.window[g+1]);A.insert&&(A.ins_h=St(A,A.ins_h,A.window[g+Z-1]),A.prev[g&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=g,g++,A.insert--,!(A.lookahead+A.insert<Z)););}while(A.lookahead<tt&&A.strm.avail_in!==0)},mr=(A,t)=>{let e=A.pending_buf_size-5>A.w_size?A.w_size:A.pending_buf_size-5,i,g,I,r=0,a=A.strm.avail_in;do{if(i=65535,I=A.bi_valid+42>>3,A.strm.avail_out<I||(I=A.strm.avail_out-I,g=A.strstart-A.block_start,i>g+A.strm.avail_in&&(i=g+A.strm.avail_in),i>I&&(i=I),i<e&&(i===0&&t!==HA||t===Dt||i!==g+A.strm.avail_in)))break;r=t===HA&&i===g+A.strm.avail_in?1:0,DI(A,0,0,r),A.pending_buf[A.pending-4]=i,A.pending_buf[A.pending-3]=i>>8,A.pending_buf[A.pending-2]=~i,A.pending_buf[A.pending-1]=~i>>8,xA(A.strm),g&&(g>i&&(g=i),A.strm.output.set(A.window.subarray(A.block_start,A.block_start+g),A.strm.next_out),A.strm.next_out+=g,A.strm.avail_out-=g,A.strm.total_out+=g,A.block_start+=g,i-=g),i&&(pI(A.strm,A.strm.output,A.strm.next_out,i),A.strm.next_out+=i,A.strm.avail_out-=i,A.strm.total_out+=i)}while(r===0);return a-=A.strm.avail_in,a&&(a>=A.w_size?(A.matches=2,A.window.set(A.strm.input.subarray(A.strm.next_in-A.w_size,A.strm.next_in),0),A.strstart=A.w_size,A.insert=A.strstart):(A.window_size-A.strstart<=a&&(A.strstart-=A.w_size,A.window.set(A.window.subarray(A.w_size,A.w_size+A.strstart),0),A.matches<2&&A.matches++,A.insert>A.strstart&&(A.insert=A.strstart)),A.window.set(A.strm.input.subarray(A.strm.next_in-a,A.strm.next_in),A.strstart),A.strstart+=a,A.insert+=a>A.w_size-A.insert?A.w_size-A.insert:a),A.block_start=A.strstart),A.high_water<A.strstart&&(A.high_water=A.strstart),r?Ie:t!==Dt&&t!==HA&&A.strm.avail_in===0&&A.strstart===A.block_start?ge:(I=A.window_size-A.strstart,A.strm.avail_in>I&&A.block_start>=A.w_size&&(A.block_start-=A.w_size,A.strstart-=A.w_size,A.window.set(A.window.subarray(A.w_size,A.w_size+A.strstart),0),A.matches<2&&A.matches++,I+=A.w_size,A.insert>A.strstart&&(A.insert=A.strstart)),I>A.strm.avail_in&&(I=A.strm.avail_in),I&&(pI(A.strm,A.window,A.strstart,I),A.strstart+=I,A.insert+=I>A.w_size-A.insert?A.w_size-A.insert:I),A.high_water<A.strstart&&(A.high_water=A.strstart),I=A.bi_valid+42>>3,I=A.pending_buf_size-I>65535?65535:A.pending_buf_size-I,e=I>A.w_size?A.w_size:I,g=A.strstart-A.block_start,(g>=e||(g||t===HA)&&t!==Dt&&A.strm.avail_in===0&&g<=I)&&(i=g>I?I:g,r=t===HA&&A.strm.avail_in===0&&i===g?1:0,DI(A,A.block_start,i,r),A.block_start+=i,xA(A.strm)),r?xt:mA)},BI=(A,t)=>{let e,i;for(;;){if(A.lookahead<tt){if(te(A),A.lookahead<tt&&t===Dt)return mA;if(A.lookahead===0)break}if(e=0,A.lookahead>=Z&&(A.ins_h=St(A,A.ins_h,A.window[A.strstart+Z-1]),e=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart),e!==0&&A.strstart-e<=A.w_size-tt&&(A.match_length=Sr(A,e)),A.match_length>=Z)if(i=yt(A,A.strstart-A.match_start,A.match_length-Z),A.lookahead-=A.match_length,A.match_length<=A.max_lazy_match&&A.lookahead>=Z){A.match_length--;do A.strstart++,A.ins_h=St(A,A.ins_h,A.window[A.strstart+Z-1]),e=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart;while(--A.match_length!==0);A.strstart++}else A.strstart+=A.match_length,A.match_length=0,A.ins_h=A.window[A.strstart],A.ins_h=St(A,A.ins_h,A.window[A.strstart+1]);else i=yt(A,0,A.window[A.strstart]),A.lookahead--,A.strstart++;if(i&&(UA(A,!1),A.strm.avail_out===0))return mA}return A.insert=A.strstart<Z-1?A.strstart:Z-1,t===HA?(UA(A,!0),A.strm.avail_out===0?xt:Ie):A.sym_next&&(UA(A,!1),A.strm.avail_out===0)?mA:ge},Wt=(A,t)=>{let e,i,g;for(;;){if(A.lookahead<tt){if(te(A),A.lookahead<tt&&t===Dt)return mA;if(A.lookahead===0)break}if(e=0,A.lookahead>=Z&&(A.ins_h=St(A,A.ins_h,A.window[A.strstart+Z-1]),e=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart),A.prev_length=A.match_length,A.prev_match=A.match_start,A.match_length=Z-1,e!==0&&A.prev_length<A.max_lazy_match&&A.strstart-e<=A.w_size-tt&&(A.match_length=Sr(A,e),A.match_length<=5&&(A.strategy===PB||A.match_length===Z&&A.strstart-A.match_start>4096)&&(A.match_length=Z-1)),A.prev_length>=Z&&A.match_length<=A.prev_length){g=A.strstart+A.lookahead-Z,i=yt(A,A.strstart-1-A.prev_match,A.prev_length-Z),A.lookahead-=A.prev_length-1,A.prev_length-=2;do++A.strstart<=g&&(A.ins_h=St(A,A.ins_h,A.window[A.strstart+Z-1]),e=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart);while(--A.prev_length!==0);if(A.match_available=0,A.match_length=Z-1,A.strstart++,i&&(UA(A,!1),A.strm.avail_out===0))return mA}else if(A.match_available){if(i=yt(A,0,A.window[A.strstart-1]),i&&UA(A,!1),A.strstart++,A.lookahead--,A.strm.avail_out===0)return mA}else A.match_available=1,A.strstart++,A.lookahead--}return A.match_available&&(i=yt(A,0,A.window[A.strstart-1]),A.match_available=0),A.insert=A.strstart<Z-1?A.strstart:Z-1,t===HA?(UA(A,!0),A.strm.avail_out===0?xt:Ie):A.sym_next&&(UA(A,!1),A.strm.avail_out===0)?mA:ge},rE=(A,t)=>{let e,i,g,I,r=A.window;for(;;){if(A.lookahead<=wt){if(te(A),A.lookahead<=wt&&t===Dt)return mA;if(A.lookahead===0)break}if(A.match_length=0,A.lookahead>=Z&&A.strstart>0&&(g=A.strstart-1,i=r[g],i===r[++g]&&i===r[++g]&&i===r[++g])){I=A.strstart+wt;do;while(i===r[++g]&&i===r[++g]&&i===r[++g]&&i===r[++g]&&i===r[++g]&&i===r[++g]&&i===r[++g]&&i===r[++g]&&g<I);A.match_length=wt-(I-g),A.match_length>A.lookahead&&(A.match_length=A.lookahead)}if(A.match_length>=Z?(e=yt(A,1,A.match_length-Z),A.lookahead-=A.match_length,A.strstart+=A.match_length,A.match_length=0):(e=yt(A,0,A.window[A.strstart]),A.lookahead--,A.strstart++),e&&(UA(A,!1),A.strm.avail_out===0))return mA}return A.insert=0,t===HA?(UA(A,!0),A.strm.avail_out===0?xt:Ie):A.sym_next&&(UA(A,!1),A.strm.avail_out===0)?mA:ge},oE=(A,t)=>{let e;for(;;){if(A.lookahead===0&&(te(A),A.lookahead===0)){if(t===Dt)return mA;break}if(A.match_length=0,e=yt(A,0,A.window[A.strstart]),A.lookahead--,A.strstart++,e&&(UA(A,!1),A.strm.avail_out===0))return mA}return A.insert=0,t===HA?(UA(A,!0),A.strm.avail_out===0?xt:Ie):A.sym_next&&(UA(A,!1),A.strm.avail_out===0)?mA:ge};Ue=[new XA(0,0,0,0,mr),new XA(4,4,8,4,BI),new XA(4,5,16,8,BI),new XA(4,6,32,32,BI),new XA(4,4,16,16,Wt),new XA(8,16,32,32,Wt),new XA(8,16,128,128,Wt),new XA(8,32,128,256,Wt),new XA(32,128,258,1024,Wt),new XA(32,258,258,4096,Wt)],nE=A=>{A.window_size=2*A.w_size,dt(A.head),A.max_lazy_match=Ue[A.level].max_lazy,A.good_match=Ue[A.level].good_length,A.nice_match=Ue[A.level].nice_length,A.max_chain_length=Ue[A.level].max_chain,A.strstart=0,A.block_start=0,A.lookahead=0,A.insert=0,A.match_length=A.prev_length=Z-1,A.match_available=0,A.ins_h=0};ze=A=>{if(!A)return 1;let t=A.state;return!t||t.strm!==A||t.status!==Ae&&t.status!==LI&&t.status!==mI&&t.status!==GI&&t.status!==MI&&t.status!==NI&&t.status!==Rt&&t.status!==xe?1:0},Gr=A=>{if(ze(A))return kt(A,At);A.total_in=A.total_out=0,A.data_type=ZB;let t=A.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?LI:t.wrap?Ae:Rt,A.adler=t.wrap===2?0:1,t.last_flush=-2,vB(t),cA},Mr=A=>{let t=Gr(A);return t===cA&&nE(A.state),t},BE=(A,t)=>ze(A)||A.state.wrap!==2?At:(A.state.gzhead=t,cA),Nr=(A,t,e,i,g,I)=>{if(!A)return At;let r=1;if(t===JB&&(t=6),i<0?(r=0,i=-i):i>15&&(r=2,i-=16),g<1||g>zB||e!==Xi||i<8||i>15||t<0||t>9||I<0||I>OB||i===8&&r!==1)return kt(A,At);i===8&&(i=9);let a=new CE;return A.state=a,a.strm=A,a.status=Ae,a.wrap=r,a.gzhead=null,a.w_bits=i,a.w_size=1<<a.w_bits,a.w_mask=a.w_size-1,a.hash_bits=g+7,a.hash_size=1<<a.hash_bits,a.hash_mask=a.hash_size-1,a.hash_shift=~~((a.hash_bits+Z-1)/Z),a.window=new Uint8Array(a.w_size*2),a.head=new Uint16Array(a.hash_size),a.prev=new Uint16Array(a.w_size),a.lit_bufsize=1<<g+6,a.pending_buf_size=a.lit_bufsize*4,a.pending_buf=new Uint8Array(a.pending_buf_size),a.sym_buf=a.lit_bufsize,a.sym_end=(a.lit_bufsize-1)*3,a.level=t,a.strategy=I,a.method=e,Mr(A)},EE=(A,t)=>Nr(A,t,Xi,VB,WB,jB),hE=(A,t)=>{if(ze(A)||t>_s||t<0)return A?kt(A,At):At;let e=A.state;if(!A.output||A.avail_in!==0&&!A.input||e.status===xe&&t!==HA)return kt(A,A.avail_out===0?CI:At);let i=e.last_flush;if(e.last_flush=t,e.pending!==0){if(xA(A),A.avail_out===0)return e.last_flush=-1,cA}else if(A.avail_in===0&&Rs(t)<=Rs(i)&&t!==HA)return kt(A,CI);if(e.status===xe&&A.avail_in!==0)return kt(A,CI);if(e.status===Ae&&e.wrap===0&&(e.status=Rt),e.status===Ae){let g=Xi+(e.w_bits-8<<4)<<8,I=-1;if(e.strategy>=Ji||e.level<2?I=0:e.level<6?I=1:e.level===6?I=2:I=3,g|=I<<6,e.strstart!==0&&(g|=gE),g+=31-g%31,Le(e,g),e.strstart!==0&&(Le(e,A.adler>>>16),Le(e,A.adler&65535)),A.adler=1,e.status=Rt,xA(A),e.pending!==0)return e.last_flush=-1,cA}if(e.status===LI){if(A.adler=0,X(e,31),X(e,139),X(e,8),e.gzhead)X(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)),X(e,e.gzhead.time&255),X(e,e.gzhead.time>>8&255),X(e,e.gzhead.time>>16&255),X(e,e.gzhead.time>>24&255),X(e,e.level===9?2:e.strategy>=Ji||e.level<2?4:0),X(e,e.gzhead.os&255),e.gzhead.extra&&e.gzhead.extra.length&&(X(e,e.gzhead.extra.length&255),X(e,e.gzhead.extra.length>>8&255)),e.gzhead.hcrc&&(A.adler=lA(A.adler,e.pending_buf,e.pending,0)),e.gzindex=0,e.status=mI;else if(X(e,0),X(e,0),X(e,0),X(e,0),X(e,0),X(e,e.level===9?2:e.strategy>=Ji||e.level<2?4:0),X(e,IE),e.status=Rt,xA(A),e.pending!==0)return e.last_flush=-1,cA}if(e.status===mI){if(e.gzhead.extra){let g=e.pending,I=(e.gzhead.extra.length&65535)-e.gzindex;for(;e.pending+I>e.pending_buf_size;){let a=e.pending_buf_size-e.pending;if(e.pending_buf.set(e.gzhead.extra.subarray(e.gzindex,e.gzindex+a),e.pending),e.pending=e.pending_buf_size,e.gzhead.hcrc&&e.pending>g&&(A.adler=lA(A.adler,e.pending_buf,e.pending-g,g)),e.gzindex+=a,xA(A),e.pending!==0)return e.last_flush=-1,cA;g=0,I-=a}let r=new Uint8Array(e.gzhead.extra);e.pending_buf.set(r.subarray(e.gzindex,e.gzindex+I),e.pending),e.pending+=I,e.gzhead.hcrc&&e.pending>g&&(A.adler=lA(A.adler,e.pending_buf,e.pending-g,g)),e.gzindex=0}e.status=GI}if(e.status===GI){if(e.gzhead.name){let g=e.pending,I;do{if(e.pending===e.pending_buf_size){if(e.gzhead.hcrc&&e.pending>g&&(A.adler=lA(A.adler,e.pending_buf,e.pending-g,g)),xA(A),e.pending!==0)return e.last_flush=-1,cA;g=0}e.gzindex<e.gzhead.name.length?I=e.gzhead.name.charCodeAt(e.gzindex++)&255:I=0,X(e,I)}while(I!==0);e.gzhead.hcrc&&e.pending>g&&(A.adler=lA(A.adler,e.pending_buf,e.pending-g,g)),e.gzindex=0}e.status=MI}if(e.status===MI){if(e.gzhead.comment){let g=e.pending,I;do{if(e.pending===e.pending_buf_size){if(e.gzhead.hcrc&&e.pending>g&&(A.adler=lA(A.adler,e.pending_buf,e.pending-g,g)),xA(A),e.pending!==0)return e.last_flush=-1,cA;g=0}e.gzindex<e.gzhead.comment.length?I=e.gzhead.comment.charCodeAt(e.gzindex++)&255:I=0,X(e,I)}while(I!==0);e.gzhead.hcrc&&e.pending>g&&(A.adler=lA(A.adler,e.pending_buf,e.pending-g,g))}e.status=NI}if(e.status===NI){if(e.gzhead.hcrc){if(e.pending+2>e.pending_buf_size&&(xA(A),e.pending!==0))return e.last_flush=-1,cA;X(e,A.adler&255),X(e,A.adler>>8&255),A.adler=0}if(e.status=Rt,xA(A),e.pending!==0)return e.last_flush=-1,cA}if(A.avail_in!==0||e.lookahead!==0||t!==Dt&&e.status!==xe){let g=e.level===0?mr(e,t):e.strategy===Ji?oE(e,t):e.strategy===qB?rE(e,t):Ue[e.level].func(e,t);if((g===xt||g===Ie)&&(e.status=xe),g===mA||g===xt)return A.avail_out===0&&(e.last_flush=-1),cA;if(g===ge&&(t===KB?YB(e):t!==_s&&(DI(e,0,0,!1),t===HB&&(dt(e.head),e.lookahead===0&&(e.strstart=0,e.block_start=0,e.insert=0))),xA(A),A.avail_out===0))return e.last_flush=-1,cA}return t!==HA?cA:e.wrap<=0?Fs:(e.wrap===2?(X(e,A.adler&255),X(e,A.adler>>8&255),X(e,A.adler>>16&255),X(e,A.adler>>24&255),X(e,A.total_in&255),X(e,A.total_in>>8&255),X(e,A.total_in>>16&255),X(e,A.total_in>>24&255)):(Le(e,A.adler>>>16),Le(e,A.adler&65535)),xA(A),e.wrap>0&&(e.wrap=-e.wrap),e.pending!==0?cA:Fs)},QE=A=>{if(ze(A))return At;let t=A.state.status;return A.state=null,t===Rt?kt(A,TB):cA},lE=(A,t)=>{let e=t.length;if(ze(A))return At;let i=A.state,g=i.wrap;if(g===2||g===1&&i.status!==Ae||i.lookahead)return At;if(g===1&&(A.adler=Pe(A.adler,t,e,0)),i.wrap=0,e>=i.w_size){g===0&&(dt(i.head),i.strstart=0,i.block_start=0,i.insert=0);let o=new Uint8Array(i.w_size);o.set(t.subarray(e-i.w_size,e),0),t=o,e=i.w_size}let I=A.avail_in,r=A.next_in,a=A.input;for(A.avail_in=e,A.next_in=0,A.input=t,te(i);i.lookahead>=Z;){let o=i.strstart,s=i.lookahead-(Z-1);do i.ins_h=St(i,i.ins_h,i.window[o+Z-1]),i.prev[o&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=o,o++;while(--s);i.strstart=o,i.lookahead=Z-1,te(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=Z-1,i.match_available=0,A.next_in=r,A.input=a,A.avail_in=I,i.wrap=g,cA},fE=EE,cE=Nr,uE=Mr,dE=Gr,wE=BE,yE=hE,DE=QE,SE=lE,mE="pako deflate (from Nodeca project)",be={deflateInit:fE,deflateInit2:cE,deflateReset:uE,deflateResetKeep:dE,deflateSetHeader:wE,deflate:yE,deflateEnd:DE,deflateSetDictionary:SE,deflateInfo:mE},GE=(A,t)=>Object.prototype.hasOwnProperty.call(A,t),ME=function(A){let t=Array.prototype.slice.call(arguments,1);for(;t.length;){let e=t.shift();if(e){if(typeof e!="object")throw new TypeError(e+"must be non-object");for(let i in e)GE(e,i)&&(A[i]=e[i])}}return A},NE=A=>{let t=0;for(let i=0,g=A.length;i<g;i++)t+=A[i].length;let e=new Uint8Array(t);for(let i=0,g=0,I=A.length;i<I;i++){let r=A[i];e.set(r,g),g+=r.length}return e},$i={assign:ME,flattenChunks:NE},pr=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{pr=!1}qe=new Uint8Array(256);for(let A=0;A<256;A++)qe[A]=A>=252?6:A>=248?5:A>=240?4:A>=224?3:A>=192?2:1;qe[254]=qe[254]=1;pE=A=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(A);let t,e,i,g,I,r=A.length,a=0;for(g=0;g<r;g++)e=A.charCodeAt(g),(e&64512)===55296&&g+1<r&&(i=A.charCodeAt(g+1),(i&64512)===56320&&(e=65536+(e-55296<<10)+(i-56320),g++)),a+=e<128?1:e<2048?2:e<65536?3:4;for(t=new Uint8Array(a),I=0,g=0;I<a;g++)e=A.charCodeAt(g),(e&64512)===55296&&g+1<r&&(i=A.charCodeAt(g+1),(i&64512)===56320&&(e=65536+(e-55296<<10)+(i-56320),g++)),e<128?t[I++]=e:e<2048?(t[I++]=192|e>>>6,t[I++]=128|e&63):e<65536?(t[I++]=224|e>>>12,t[I++]=128|e>>>6&63,t[I++]=128|e&63):(t[I++]=240|e>>>18,t[I++]=128|e>>>12&63,t[I++]=128|e>>>6&63,t[I++]=128|e&63);return t},_E=(A,t)=>{if(t<65534&&A.subarray&&pr)return String.fromCharCode.apply(null,A.length===t?A:A.subarray(0,t));let e="";for(let i=0;i<t;i++)e+=String.fromCharCode(A[i]);return e},FE=(A,t)=>{let e=t||A.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(A.subarray(0,t));let i,g,I=new Array(e*2);for(g=0,i=0;i<e;){let r=A[i++];if(r<128){I[g++]=r;continue}let a=qe[r];if(a>4){I[g++]=65533,i+=a-1;continue}for(r&=a===2?31:a===3?15:7;a>1&&i<e;)r=r<<6|A[i++]&63,a--;if(a>1){I[g++]=65533;continue}r<65536?I[g++]=r:(r-=65536,I[g++]=55296|r>>10&1023,I[g++]=56320|r&1023)}return _E(I,g)},RE=(A,t)=>{t=t||A.length,t>A.length&&(t=A.length);let e=t-1;for(;e>=0&&(A[e]&192)===128;)e--;return e<0||e===0?t:e+qe[A[e]]>t?e:t},Oe={string2buf:pE,buf2string:FE,utf8border:RE};_r=kE,Fr=Object.prototype.toString,{Z_NO_FLUSH:LE,Z_SYNC_FLUSH:xE,Z_FULL_FLUSH:UE,Z_FINISH:vE,Z_OK:Vi,Z_STREAM_END:bE,Z_DEFAULT_COMPRESSION:YE,Z_DEFAULT_STRATEGY:KE,Z_DEFLATED:HE}=ie;Ve.prototype.push=function(A,t){let e=this.strm,i=this.options.chunkSize,g,I;if(this.ended)return!1;for(t===~~t?I=t:I=t===!0?vE:LE,typeof A=="string"?e.input=Oe.string2buf(A):Fr.call(A)==="[object ArrayBuffer]"?e.input=new Uint8Array(A):e.input=A,e.next_in=0,e.avail_in=e.input.length;;){if(e.avail_out===0&&(e.output=new Uint8Array(i),e.next_out=0,e.avail_out=i),(I===xE||I===UE)&&e.avail_out<=6){this.onData(e.output.subarray(0,e.next_out)),e.avail_out=0;continue}if(g=be.deflate(e,I),g===bE)return e.next_out>0&&this.onData(e.output.subarray(0,e.next_out)),g=be.deflateEnd(this.strm),this.onEnd(g),this.ended=!0,g===Vi;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};Ve.prototype.onData=function(A){this.chunks.push(A)};Ve.prototype.onEnd=function(A){A===Vi&&(this.result=$i.flattenChunks(this.chunks)),this.chunks=[],this.err=A,this.msg=this.strm.msg};PE=Ve,qE=xI,OE=TE,jE=JE,ZE=ie,zE={Deflate:PE,deflate:qE,deflateRaw:OE,gzip:jE,constants:ZE},Pi=16209,VE=16191,WE=function(t,e){let i,g,I,r,a,o,s,n,E,B,C,h,Q,l,c,w,D,y,f,u,d,G,M,m,_=t.state;i=t.next_in,M=t.input,g=i+(t.avail_in-5),I=t.next_out,m=t.output,r=I-(e-t.avail_out),a=I+(t.avail_out-257),o=_.dmax,s=_.wsize,n=_.whave,E=_.wnext,B=_.window,C=_.hold,h=_.bits,Q=_.lencode,l=_.distcode,c=(1<<_.lenbits)-1,w=(1<<_.distbits)-1;A:do{h<15&&(C+=M[i++]<<h,h+=8,C+=M[i++]<<h,h+=8),D=Q[C&c];t:for(;;){if(y=D>>>24,C>>>=y,h-=y,y=D>>>16&255,y===0)m[I++]=D&65535;else if(y&16){f=D&65535,y&=15,y&&(h<y&&(C+=M[i++]<<h,h+=8),f+=C&(1<<y)-1,C>>>=y,h-=y),h<15&&(C+=M[i++]<<h,h+=8,C+=M[i++]<<h,h+=8),D=l[C&w];e:for(;;){if(y=D>>>24,C>>>=y,h-=y,y=D>>>16&255,y&16){if(u=D&65535,y&=15,h<y&&(C+=M[i++]<<h,h+=8,h<y&&(C+=M[i++]<<h,h+=8)),u+=C&(1<<y)-1,u>o){t.msg="invalid distance too far back",_.mode=Pi;break A}if(C>>>=y,h-=y,y=I-r,u>y){if(y=u-y,y>n&&_.sane){t.msg="invalid distance too far back",_.mode=Pi;break A}if(d=0,G=B,E===0){if(d+=s-y,y<f){f-=y;do m[I++]=B[d++];while(--y);d=I-u,G=m}}else if(E<y){if(d+=s+E-y,y-=E,y<f){f-=y;do m[I++]=B[d++];while(--y);if(d=0,E<f){y=E,f-=y;do m[I++]=B[d++];while(--y);d=I-u,G=m}}}else if(d+=E-y,y<f){f-=y;do m[I++]=B[d++];while(--y);d=I-u,G=m}for(;f>2;)m[I++]=G[d++],m[I++]=G[d++],m[I++]=G[d++],f-=3;f&&(m[I++]=G[d++],f>1&&(m[I++]=G[d++]))}else{d=I-u;do m[I++]=m[d++],m[I++]=m[d++],m[I++]=m[d++],f-=3;while(f>2);f&&(m[I++]=m[d++],f>1&&(m[I++]=m[d++]))}}else if((y&64)===0){D=l[(D&65535)+(C&(1<<y)-1)];continue e}else{t.msg="invalid distance code",_.mode=Pi;break A}break}}else if((y&64)===0){D=Q[(D&65535)+(C&(1<<y)-1)];continue t}else if(y&32){_.mode=VE;break A}else{t.msg="invalid literal/length code",_.mode=Pi;break A}break}}while(i<g&&I<a);f=h>>3,i-=f,h-=f<<3,C&=(1<<h)-1,t.next_in=i,t.next_out=I,t.avail_in=i<g?5+(g-i):5-(i-g),t.avail_out=I<a?257+(a-I):257-(I-a),_.hold=C,_.bits=h},Xt=15,ks=852,Ls=592,xs=0,EI=1,Us=2,XE=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),$E=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),Ah=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),th=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),eh=(A,t,e,i,g,I,r,a)=>{let o=a.bits,s=0,n=0,E=0,B=0,C=0,h=0,Q=0,l=0,c=0,w=0,D,y,f,u,d,G=null,M,m=new Uint16Array(Xt+1),_=new Uint16Array(Xt+1),k=null,v,L,p;for(s=0;s<=Xt;s++)m[s]=0;for(n=0;n<i;n++)m[t[e+n]]++;for(C=o,B=Xt;B>=1&&m[B]===0;B--);if(C>B&&(C=B),B===0)return g[I++]=1<<24|64<<16|0,g[I++]=1<<24|64<<16|0,a.bits=1,0;for(E=1;E<B&&m[E]===0;E++);for(C<E&&(C=E),l=1,s=1;s<=Xt;s++)if(l<<=1,l-=m[s],l<0)return-1;if(l>0&&(A===xs||B!==1))return-1;for(_[1]=0,s=1;s<Xt;s++)_[s+1]=_[s]+m[s];for(n=0;n<i;n++)t[e+n]!==0&&(r[_[t[e+n]]++]=n);if(A===xs?(G=k=r,M=20):A===EI?(G=XE,k=$E,M=257):(G=Ah,k=th,M=0),w=0,n=0,s=E,d=I,h=C,Q=0,f=-1,c=1<<C,u=c-1,A===EI&&c>ks||A===Us&&c>Ls)return 1;for(;;){v=s-Q,r[n]+1<M?(L=0,p=r[n]):r[n]>=M?(L=k[r[n]-M],p=G[r[n]-M]):(L=96,p=0),D=1<<s-Q,y=1<<h,E=y;do y-=D,g[d+(w>>Q)+y]=v<<24|L<<16|p|0;while(y!==0);for(D=1<<s-1;w&D;)D>>=1;if(D!==0?(w&=D-1,w+=D):w=0,n++,--m[s]===0){if(s===B)break;s=t[e+r[n]]}if(s>C&&(w&u)!==f){for(Q===0&&(Q=C),d+=E,h=s-Q,l=1<<h;h+Q<B&&(l-=m[h+Q],!(l<=0));)h++,l<<=1;if(c+=1<<h,A===EI&&c>ks||A===Us&&c>Ls)return 1;f=w&u,g[f]=C<<24|h<<16|d-I|0}}return w!==0&&(g[d+w]=s-Q<<24|64<<16|0),a.bits=C,0},Ye=eh,ih=0,Rr=1,kr=2,{Z_FINISH:vs,Z_BLOCK:gh,Z_TREES:qi,Z_OK:Ut,Z_STREAM_END:Ih,Z_NEED_DICT:ah,Z_STREAM_ERROR:TA,Z_DATA_ERROR:Lr,Z_MEM_ERROR:xr,Z_BUF_ERROR:sh,Z_DEFLATED:bs}=ie,Ag=16180,Ys=16181,Ks=16182,Hs=16183,Ts=16184,Js=16185,Ps=16186,qs=16187,Os=16188,js=16189,Wi=16190,st=16191,hI=16192,Zs=16193,QI=16194,zs=16195,Vs=16196,Ws=16197,Xs=16198,Oi=16199,ji=16200,$s=16201,Ar=16202,tr=16203,er=16204,ir=16205,lI=16206,gr=16207,Ir=16208,aA=16209,Ur=16210,vr=16211,rh=852,oh=592,nh=15,Ch=nh,ar=A=>(A>>>24&255)+(A>>>8&65280)+((A&65280)<<8)+((A&255)<<24);vt=A=>{if(!A)return 1;let t=A.state;return!t||t.strm!==A||t.mode<Ag||t.mode>vr?1:0},br=A=>{if(vt(A))return TA;let t=A.state;return A.total_in=A.total_out=t.total=0,A.msg="",t.wrap&&(A.adler=t.wrap&1),t.mode=Ag,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(rh),t.distcode=t.distdyn=new Int32Array(oh),t.sane=1,t.back=-1,Ut},Yr=A=>{if(vt(A))return TA;let t=A.state;return t.wsize=0,t.whave=0,t.wnext=0,br(A)},Kr=(A,t)=>{let e;if(vt(A))return TA;let i=A.state;return t<0?(e=0,t=-t):(e=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?TA:(i.window!==null&&i.wbits!==t&&(i.window=null),i.wrap=e,i.wbits=t,Yr(A))},Hr=(A,t)=>{if(!A)return TA;let e=new Bh;A.state=e,e.strm=A,e.window=null,e.mode=Ag;let i=Kr(A,t);return i!==Ut&&(A.state=null),i},Eh=A=>Hr(A,Ch),sr=!0,hh=A=>{if(sr){fI=new Int32Array(512),cI=new Int32Array(32);let t=0;for(;t<144;)A.lens[t++]=8;for(;t<256;)A.lens[t++]=9;for(;t<280;)A.lens[t++]=7;for(;t<288;)A.lens[t++]=8;for(Ye(Rr,A.lens,0,288,fI,0,A.work,{bits:9}),t=0;t<32;)A.lens[t++]=5;Ye(kr,A.lens,0,32,cI,0,A.work,{bits:5}),sr=!1}A.lencode=fI,A.lenbits=9,A.distcode=cI,A.distbits=5},Tr=(A,t,e,i)=>{let g,I=A.state;return I.window===null&&(I.wsize=1<<I.wbits,I.wnext=0,I.whave=0,I.window=new Uint8Array(I.wsize)),i>=I.wsize?(I.window.set(t.subarray(e-I.wsize,e),0),I.wnext=0,I.whave=I.wsize):(g=I.wsize-I.wnext,g>i&&(g=i),I.window.set(t.subarray(e-i,e-i+g),I.wnext),i-=g,i?(I.window.set(t.subarray(e-i,e),0),I.wnext=i,I.whave=I.wsize):(I.wnext+=g,I.wnext===I.wsize&&(I.wnext=0),I.whave<I.wsize&&(I.whave+=g))),0},Qh=(A,t)=>{let e,i,g,I,r,a,o,s,n,E,B,C,h,Q,l=0,c,w,D,y,f,u,d,G,M=new Uint8Array(4),m,_,k=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(vt(A)||!A.output||!A.input&&A.avail_in!==0)return TA;e=A.state,e.mode===st&&(e.mode=hI),r=A.next_out,g=A.output,o=A.avail_out,I=A.next_in,i=A.input,a=A.avail_in,s=e.hold,n=e.bits,E=a,B=o,G=Ut;A:for(;;)switch(e.mode){case Ag:if(e.wrap===0){e.mode=hI;break}for(;n<16;){if(a===0)break A;a--,s+=i[I++]<<n,n+=8}if(e.wrap&2&&s===35615){e.wbits===0&&(e.wbits=15),e.check=0,M[0]=s&255,M[1]=s>>>8&255,e.check=lA(e.check,M,2,0),s=0,n=0,e.mode=Ys;break}if(e.head&&(e.head.done=!1),!(e.wrap&1)||(((s&255)<<8)+(s>>8))%31){A.msg="incorrect header check",e.mode=aA;break}if((s&15)!==bs){A.msg="unknown compression method",e.mode=aA;break}if(s>>>=4,n-=4,d=(s&15)+8,e.wbits===0&&(e.wbits=d),d>15||d>e.wbits){A.msg="invalid window size",e.mode=aA;break}e.dmax=1<<e.wbits,e.flags=0,A.adler=e.check=1,e.mode=s&512?js:st,s=0,n=0;break;case Ys:for(;n<16;){if(a===0)break A;a--,s+=i[I++]<<n,n+=8}if(e.flags=s,(e.flags&255)!==bs){A.msg="unknown compression method",e.mode=aA;break}if(e.flags&57344){A.msg="unknown header flags set",e.mode=aA;break}e.head&&(e.head.text=s>>8&1),e.flags&512&&e.wrap&4&&(M[0]=s&255,M[1]=s>>>8&255,e.check=lA(e.check,M,2,0)),s=0,n=0,e.mode=Ks;case Ks:for(;n<32;){if(a===0)break A;a--,s+=i[I++]<<n,n+=8}e.head&&(e.head.time=s),e.flags&512&&e.wrap&4&&(M[0]=s&255,M[1]=s>>>8&255,M[2]=s>>>16&255,M[3]=s>>>24&255,e.check=lA(e.check,M,4,0)),s=0,n=0,e.mode=Hs;case Hs:for(;n<16;){if(a===0)break A;a--,s+=i[I++]<<n,n+=8}e.head&&(e.head.xflags=s&255,e.head.os=s>>8),e.flags&512&&e.wrap&4&&(M[0]=s&255,M[1]=s>>>8&255,e.check=lA(e.check,M,2,0)),s=0,n=0,e.mode=Ts;case Ts:if(e.flags&1024){for(;n<16;){if(a===0)break A;a--,s+=i[I++]<<n,n+=8}e.length=s,e.head&&(e.head.extra_len=s),e.flags&512&&e.wrap&4&&(M[0]=s&255,M[1]=s>>>8&255,e.check=lA(e.check,M,2,0)),s=0,n=0}else e.head&&(e.head.extra=null);e.mode=Js;case Js:if(e.flags&1024&&(C=e.length,C>a&&(C=a),C&&(e.head&&(d=e.head.extra_len-e.length,e.head.extra||(e.head.extra=new Uint8Array(e.head.extra_len)),e.head.extra.set(i.subarray(I,I+C),d)),e.flags&512&&e.wrap&4&&(e.check=lA(e.check,i,C,I)),a-=C,I+=C,e.length-=C),e.length))break A;e.length=0,e.mode=Ps;case Ps:if(e.flags&2048){if(a===0)break A;C=0;do d=i[I+C++],e.head&&d&&e.length<65536&&(e.head.name+=String.fromCharCode(d));while(d&&C<a);if(e.flags&512&&e.wrap&4&&(e.check=lA(e.check,i,C,I)),a-=C,I+=C,d)break A}else e.head&&(e.head.name=null);e.length=0,e.mode=qs;case qs:if(e.flags&4096){if(a===0)break A;C=0;do d=i[I+C++],e.head&&d&&e.length<65536&&(e.head.comment+=String.fromCharCode(d));while(d&&C<a);if(e.flags&512&&e.wrap&4&&(e.check=lA(e.check,i,C,I)),a-=C,I+=C,d)break A}else e.head&&(e.head.comment=null);e.mode=Os;case Os:if(e.flags&512){for(;n<16;){if(a===0)break A;a--,s+=i[I++]<<n,n+=8}if(e.wrap&4&&s!==(e.check&65535)){A.msg="header crc mismatch",e.mode=aA;break}s=0,n=0}e.head&&(e.head.hcrc=e.flags>>9&1,e.head.done=!0),A.adler=e.check=0,e.mode=st;break;case js:for(;n<32;){if(a===0)break A;a--,s+=i[I++]<<n,n+=8}A.adler=e.check=ar(s),s=0,n=0,e.mode=Wi;case Wi:if(e.havedict===0)return A.next_out=r,A.avail_out=o,A.next_in=I,A.avail_in=a,e.hold=s,e.bits=n,ah;A.adler=e.check=1,e.mode=st;case st:if(t===gh||t===qi)break A;case hI:if(e.last){s>>>=n&7,n-=n&7,e.mode=lI;break}for(;n<3;){if(a===0)break A;a--,s+=i[I++]<<n,n+=8}switch(e.last=s&1,s>>>=1,n-=1,s&3){case 0:e.mode=Zs;break;case 1:if(hh(e),e.mode=Oi,t===qi){s>>>=2,n-=2;break A}break;case 2:e.mode=Vs;break;case 3:A.msg="invalid block type",e.mode=aA}s>>>=2,n-=2;break;case Zs:for(s>>>=n&7,n-=n&7;n<32;){if(a===0)break A;a--,s+=i[I++]<<n,n+=8}if((s&65535)!==(s>>>16^65535)){A.msg="invalid stored block lengths",e.mode=aA;break}if(e.length=s&65535,s=0,n=0,e.mode=QI,t===qi)break A;case QI:e.mode=zs;case zs:if(C=e.length,C){if(C>a&&(C=a),C>o&&(C=o),C===0)break A;g.set(i.subarray(I,I+C),r),a-=C,I+=C,o-=C,r+=C,e.length-=C;break}e.mode=st;break;case Vs:for(;n<14;){if(a===0)break A;a--,s+=i[I++]<<n,n+=8}if(e.nlen=(s&31)+257,s>>>=5,n-=5,e.ndist=(s&31)+1,s>>>=5,n-=5,e.ncode=(s&15)+4,s>>>=4,n-=4,e.nlen>286||e.ndist>30){A.msg="too many length or distance symbols",e.mode=aA;break}e.have=0,e.mode=Ws;case Ws:for(;e.have<e.ncode;){for(;n<3;){if(a===0)break A;a--,s+=i[I++]<<n,n+=8}e.lens[k[e.have++]]=s&7,s>>>=3,n-=3}for(;e.have<19;)e.lens[k[e.have++]]=0;if(e.lencode=e.lendyn,e.lenbits=7,m={bits:e.lenbits},G=Ye(ih,e.lens,0,19,e.lencode,0,e.work,m),e.lenbits=m.bits,G){A.msg="invalid code lengths set",e.mode=aA;break}e.have=0,e.mode=Xs;case Xs:for(;e.have<e.nlen+e.ndist;){for(;l=e.lencode[s&(1<<e.lenbits)-1],c=l>>>24,w=l>>>16&255,D=l&65535,!(c<=n);){if(a===0)break A;a--,s+=i[I++]<<n,n+=8}if(D<16)s>>>=c,n-=c,e.lens[e.have++]=D;else{if(D===16){for(_=c+2;n<_;){if(a===0)break A;a--,s+=i[I++]<<n,n+=8}if(s>>>=c,n-=c,e.have===0){A.msg="invalid bit length repeat",e.mode=aA;break}d=e.lens[e.have-1],C=3+(s&3),s>>>=2,n-=2}else if(D===17){for(_=c+3;n<_;){if(a===0)break A;a--,s+=i[I++]<<n,n+=8}s>>>=c,n-=c,d=0,C=3+(s&7),s>>>=3,n-=3}else{for(_=c+7;n<_;){if(a===0)break A;a--,s+=i[I++]<<n,n+=8}s>>>=c,n-=c,d=0,C=11+(s&127),s>>>=7,n-=7}if(e.have+C>e.nlen+e.ndist){A.msg="invalid bit length repeat",e.mode=aA;break}for(;C--;)e.lens[e.have++]=d}}if(e.mode===aA)break;if(e.lens[256]===0){A.msg="invalid code -- missing end-of-block",e.mode=aA;break}if(e.lenbits=9,m={bits:e.lenbits},G=Ye(Rr,e.lens,0,e.nlen,e.lencode,0,e.work,m),e.lenbits=m.bits,G){A.msg="invalid literal/lengths set",e.mode=aA;break}if(e.distbits=6,e.distcode=e.distdyn,m={bits:e.distbits},G=Ye(kr,e.lens,e.nlen,e.ndist,e.distcode,0,e.work,m),e.distbits=m.bits,G){A.msg="invalid distances set",e.mode=aA;break}if(e.mode=Oi,t===qi)break A;case Oi:e.mode=ji;case ji:if(a>=6&&o>=258){A.next_out=r,A.avail_out=o,A.next_in=I,A.avail_in=a,e.hold=s,e.bits=n,WE(A,B),r=A.next_out,g=A.output,o=A.avail_out,I=A.next_in,i=A.input,a=A.avail_in,s=e.hold,n=e.bits,e.mode===st&&(e.back=-1);break}for(e.back=0;l=e.lencode[s&(1<<e.lenbits)-1],c=l>>>24,w=l>>>16&255,D=l&65535,!(c<=n);){if(a===0)break A;a--,s+=i[I++]<<n,n+=8}if(w&&(w&240)===0){for(y=c,f=w,u=D;l=e.lencode[u+((s&(1<<y+f)-1)>>y)],c=l>>>24,w=l>>>16&255,D=l&65535,!(y+c<=n);){if(a===0)break A;a--,s+=i[I++]<<n,n+=8}s>>>=y,n-=y,e.back+=y}if(s>>>=c,n-=c,e.back+=c,e.length=D,w===0){e.mode=ir;break}if(w&32){e.back=-1,e.mode=st;break}if(w&64){A.msg="invalid literal/length code",e.mode=aA;break}e.extra=w&15,e.mode=$s;case $s:if(e.extra){for(_=e.extra;n<_;){if(a===0)break A;a--,s+=i[I++]<<n,n+=8}e.length+=s&(1<<e.extra)-1,s>>>=e.extra,n-=e.extra,e.back+=e.extra}e.was=e.length,e.mode=Ar;case Ar:for(;l=e.distcode[s&(1<<e.distbits)-1],c=l>>>24,w=l>>>16&255,D=l&65535,!(c<=n);){if(a===0)break A;a--,s+=i[I++]<<n,n+=8}if((w&240)===0){for(y=c,f=w,u=D;l=e.distcode[u+((s&(1<<y+f)-1)>>y)],c=l>>>24,w=l>>>16&255,D=l&65535,!(y+c<=n);){if(a===0)break A;a--,s+=i[I++]<<n,n+=8}s>>>=y,n-=y,e.back+=y}if(s>>>=c,n-=c,e.back+=c,w&64){A.msg="invalid distance code",e.mode=aA;break}e.offset=D,e.extra=w&15,e.mode=tr;case tr:if(e.extra){for(_=e.extra;n<_;){if(a===0)break A;a--,s+=i[I++]<<n,n+=8}e.offset+=s&(1<<e.extra)-1,s>>>=e.extra,n-=e.extra,e.back+=e.extra}if(e.offset>e.dmax){A.msg="invalid distance too far back",e.mode=aA;break}e.mode=er;case er:if(o===0)break A;if(C=B-o,e.offset>C){if(C=e.offset-C,C>e.whave&&e.sane){A.msg="invalid distance too far back",e.mode=aA;break}C>e.wnext?(C-=e.wnext,h=e.wsize-C):h=e.wnext-C,C>e.length&&(C=e.length),Q=e.window}else Q=g,h=r-e.offset,C=e.length;C>o&&(C=o),o-=C,e.length-=C;do g[r++]=Q[h++];while(--C);e.length===0&&(e.mode=ji);break;case ir:if(o===0)break A;g[r++]=e.length,o--,e.mode=ji;break;case lI:if(e.wrap){for(;n<32;){if(a===0)break A;a--,s|=i[I++]<<n,n+=8}if(B-=o,A.total_out+=B,e.total+=B,e.wrap&4&&B&&(A.adler=e.check=e.flags?lA(e.check,g,B,r-B):Pe(e.check,g,B,r-B)),B=o,e.wrap&4&&(e.flags?s:ar(s))!==e.check){A.msg="incorrect data check",e.mode=aA;break}s=0,n=0}e.mode=gr;case gr:if(e.wrap&&e.flags){for(;n<32;){if(a===0)break A;a--,s+=i[I++]<<n,n+=8}if(e.wrap&4&&s!==(e.total&4294967295)){A.msg="incorrect length check",e.mode=aA;break}s=0,n=0}e.mode=Ir;case Ir:G=Ih;break A;case aA:G=Lr;break A;case Ur:return xr;case vr:default:return TA}return A.next_out=r,A.avail_out=o,A.next_in=I,A.avail_in=a,e.hold=s,e.bits=n,(e.wsize||B!==A.avail_out&&e.mode<aA&&(e.mode<lI||t!==vs))&&Tr(A,A.output,A.next_out,B-A.avail_out),E-=A.avail_in,B-=A.avail_out,A.total_in+=E,A.total_out+=B,e.total+=B,e.wrap&4&&B&&(A.adler=e.check=e.flags?lA(e.check,g,B,A.next_out-B):Pe(e.check,g,B,A.next_out-B)),A.data_type=e.bits+(e.last?64:0)+(e.mode===st?128:0)+(e.mode===Oi||e.mode===QI?256:0),(E===0&&B===0||t===vs)&&G===Ut&&(G=sh),G},lh=A=>{if(vt(A))return TA;let t=A.state;return t.window&&(t.window=null),A.state=null,Ut},fh=(A,t)=>{if(vt(A))return TA;let e=A.state;return(e.wrap&2)===0?TA:(e.head=t,t.done=!1,Ut)},ch=(A,t)=>{let e=t.length,i,g,I;return vt(A)||(i=A.state,i.wrap!==0&&i.mode!==Wi)?TA:i.mode===Wi&&(g=1,g=Pe(g,t,e,0),g!==i.check)?Lr:(I=Tr(A,t,e,e),I?(i.mode=Ur,xr):(i.havedict=1,Ut))},uh=Yr,dh=Kr,wh=br,yh=Eh,Dh=Hr,Sh=Qh,mh=lh,Gh=fh,Mh=ch,Nh="pako inflate (from Nodeca project)",ot={inflateReset:uh,inflateReset2:dh,inflateResetKeep:wh,inflateInit:yh,inflateInit2:Dh,inflate:Sh,inflateEnd:mh,inflateGetHeader:Gh,inflateSetDictionary:Mh,inflateInfo:Nh};_h=ph,Jr=Object.prototype.toString,{Z_NO_FLUSH:Fh,Z_FINISH:Rh,Z_OK:je,Z_STREAM_END:uI,Z_NEED_DICT:dI,Z_STREAM_ERROR:kh,Z_DATA_ERROR:rr,Z_MEM_ERROR:Lh}=ie;We.prototype.push=function(A,t){let e=this.strm,i=this.options.chunkSize,g=this.options.dictionary,I,r,a;if(this.ended)return!1;for(t===~~t?r=t:r=t===!0?Rh:Fh,Jr.call(A)==="[object ArrayBuffer]"?e.input=new Uint8Array(A):e.input=A,e.next_in=0,e.avail_in=e.input.length;;){for(e.avail_out===0&&(e.output=new Uint8Array(i),e.next_out=0,e.avail_out=i),I=ot.inflate(e,r),I===dI&&g&&(I=ot.inflateSetDictionary(e,g),I===je?I=ot.inflate(e,r):I===rr&&(I=dI));e.avail_in>0&&I===uI&&e.state.wrap>0&&A[e.next_in]!==0;)ot.inflateReset(e),I=ot.inflate(e,r);switch(I){case kh:case rr:case dI:case Lh:return this.onEnd(I),this.ended=!0,!1}if(a=e.avail_out,e.next_out&&(e.avail_out===0||I===uI))if(this.options.to==="string"){let o=Oe.utf8border(e.output,e.next_out),s=e.next_out-o,n=Oe.buf2string(e.output,o);e.next_out=s,e.avail_out=i-s,s&&e.output.set(e.output.subarray(o,o+s),0),this.onData(n)}else this.onData(e.output.length===e.next_out?e.output:e.output.subarray(0,e.next_out));if(!(I===je&&a===0)){if(I===uI)return I=ot.inflateEnd(this.strm),this.onEnd(I),this.ended=!0,!0;if(e.avail_in===0)break}}return!0};We.prototype.onData=function(A){this.chunks.push(A)};We.prototype.onEnd=function(A){A===je&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=$i.flattenChunks(this.chunks)),this.chunks=[],this.err=A,this.msg=this.strm.msg};Uh=We,vh=UI,bh=xh,Yh=UI,Kh=ie,Hh={Inflate:Uh,inflate:vh,inflateRaw:bh,ungzip:Yh,constants:Kh},{Deflate:_u,deflate:Fu,deflateRaw:Ru,gzip:ku}=zE,{Inflate:Lu,inflate:Th,inflateRaw:xu,ungzip:Uu}=Hh,tg=Th});var Pr={};ut(Pr,{default:()=>eg});var eg,qr=MA(()=>{vI();WA();eg=class extends CA{decodeBlock(t){return tg(new Uint8Array(t)).buffer}}});var Or={};ut(Or,{default:()=>ig});var ig,jr=MA(()=>{WA();ig=class extends CA{decodeBlock(t){let e=new DataView(t),i=[];for(let g=0;g<t.byteLength;++g){let I=e.getInt8(g);if(I<0){let r=e.getUint8(g+1);I=-I;for(let a=0;a<=I;++a)i.push(r);g+=1}else{for(let r=0;r<=I;++r)i.push(e.getUint8(g+r+1));g+=I+1}}return new Uint8Array(i).buffer}}});var Zr=wi((Hu,gg)=>{(function(){var A=(function(){var g={};g.defaultNoDataValue=-34027999387901484e22,g.decode=function(n,E){E=E||{};var B=E.encodedMaskData||E.encodedMaskData===null,C=o(n,E.inputOffset||0,B),h=E.noDataValue!==null?E.noDataValue:g.defaultNoDataValue,Q=I(C,E.pixelType||Float32Array,E.encodedMaskData,h,E.returnMask),l={width:C.width,height:C.height,pixelData:Q.resultPixels,minValue:Q.minValue,maxValue:C.pixels.maxValue,noDataValue:h};return Q.resultMask&&(l.maskData=Q.resultMask),E.returnEncodedMask&&C.mask&&(l.encodedMaskData=C.mask.bitset?C.mask.bitset:null),E.returnFileInfo&&(l.fileInfo=r(C),E.computeUsedBitDepths&&(l.fileInfo.bitDepths=a(C))),l};var I=function(n,E,B,C,h){var Q=0,l=n.pixels.numBlocksX,c=n.pixels.numBlocksY,w=Math.floor(n.width/l),D=Math.floor(n.height/c),y=2*n.maxZError,f=Number.MAX_VALUE,u;B=B||(n.mask?n.mask.bitset:null);var d,G;d=new E(n.width*n.height),h&&B&&(G=new Uint8Array(n.width*n.height));for(var M=new Float32Array(w*D),m,_,k=0;k<=c;k++){var v=k!==c?D:n.height%c;if(v!==0)for(var L=0;L<=l;L++){var p=L!==l?w:n.width%l;if(p!==0){var U=k*n.width*D+L*w,J=n.width-p,x=n.pixels.blocks[Q],b,Y,q;x.encoding<2?(x.encoding===0?b=x.rawData:(s(x.stuffedData,x.bitsPerPixel,x.numValidPixels,x.offset,y,M,n.pixels.maxValue),b=M),Y=0):x.encoding===2?q=0:q=x.offset;var W;if(B)for(_=0;_<v;_++){for(U&7&&(W=B[U>>3],W<<=U&7),m=0;m<p;m++)U&7||(W=B[U>>3]),W&128?(G&&(G[U]=1),u=x.encoding<2?b[Y++]:q,f=f>u?u:f,d[U++]=u):(G&&(G[U]=0),d[U++]=C),W<<=1;U+=J}else if(x.encoding<2)for(_=0;_<v;_++){for(m=0;m<p;m++)u=b[Y++],f=f>u?u:f,d[U++]=u;U+=J}else for(f=f>q?q:f,_=0;_<v;_++){for(m=0;m<p;m++)d[U++]=q;U+=J}if(x.encoding===1&&Y!==x.numValidPixels)throw"Block and Mask do not match";Q++}}}return{resultPixels:d,resultMask:G,minValue:f}},r=function(n){return{fileIdentifierString:n.fileIdentifierString,fileVersion:n.fileVersion,imageType:n.imageType,height:n.height,width:n.width,maxZError:n.maxZError,eofOffset:n.eofOffset,mask:n.mask?{numBlocksX:n.mask.numBlocksX,numBlocksY:n.mask.numBlocksY,numBytes:n.mask.numBytes,maxValue:n.mask.maxValue}:null,pixels:{numBlocksX:n.pixels.numBlocksX,numBlocksY:n.pixels.numBlocksY,numBytes:n.pixels.numBytes,maxValue:n.pixels.maxValue,noDataValue:n.noDataValue}}},a=function(n){for(var E=n.pixels.numBlocksX*n.pixels.numBlocksY,B={},C=0;C<E;C++){var h=n.pixels.blocks[C];h.encoding===0?B.float32=!0:h.encoding===1?B[h.bitsPerPixel]=!0:B[0]=!0}return Object.keys(B)},o=function(n,E,B){var C={},h=new Uint8Array(n,E,10);if(C.fileIdentifierString=String.fromCharCode.apply(null,h),C.fileIdentifierString.trim()!=="CntZImage")throw"Unexpected file identifier string: "+C.fileIdentifierString;E+=10;var Q=new DataView(n,E,24);if(C.fileVersion=Q.getInt32(0,!0),C.imageType=Q.getInt32(4,!0),C.height=Q.getUint32(8,!0),C.width=Q.getUint32(12,!0),C.maxZError=Q.getFloat64(16,!0),E+=24,!B)if(Q=new DataView(n,E,16),C.mask={},C.mask.numBlocksY=Q.getUint32(0,!0),C.mask.numBlocksX=Q.getUint32(4,!0),C.mask.numBytes=Q.getUint32(8,!0),C.mask.maxValue=Q.getFloat32(12,!0),E+=16,C.mask.numBytes>0){var l=new Uint8Array(Math.ceil(C.width*C.height/8));Q=new DataView(n,E,C.mask.numBytes);var c=Q.getInt16(0,!0),w=2,D=0;do{if(c>0)for(;c--;)l[D++]=Q.getUint8(w++);else{var y=Q.getUint8(w++);for(c=-c;c--;)l[D++]=y}c=Q.getInt16(w,!0),w+=2}while(w<C.mask.numBytes);if(c!==-32768||D<l.length)throw"Unexpected end of mask RLE encoding";C.mask.bitset=l,E+=C.mask.numBytes}else(C.mask.numBytes|C.mask.numBlocksY|C.mask.maxValue)===0&&(C.mask.bitset=new Uint8Array(Math.ceil(C.width*C.height/8)));Q=new DataView(n,E,16),C.pixels={},C.pixels.numBlocksY=Q.getUint32(0,!0),C.pixels.numBlocksX=Q.getUint32(4,!0),C.pixels.numBytes=Q.getUint32(8,!0),C.pixels.maxValue=Q.getFloat32(12,!0),E+=16;var f=C.pixels.numBlocksX,u=C.pixels.numBlocksY,d=f+(C.width%f>0?1:0),G=u+(C.height%u>0?1:0);C.pixels.blocks=new Array(d*G);for(var M=0,m=0;m<G;m++)for(var _=0;_<d;_++){var k=0,v=n.byteLength-E;Q=new DataView(n,E,Math.min(10,v));var L={};C.pixels.blocks[M++]=L;var p=Q.getUint8(0);if(k++,L.encoding=p&63,L.encoding>3)throw"Invalid block encoding ("+L.encoding+")";if(L.encoding===2){E++;continue}if(p!==0&&p!==2){if(p>>=6,L.offsetType=p,p===2)L.offset=Q.getInt8(1),k++;else if(p===1)L.offset=Q.getInt16(1,!0),k+=2;else if(p===0)L.offset=Q.getFloat32(1,!0),k+=4;else throw"Invalid block offset type";if(L.encoding===1)if(p=Q.getUint8(k),k++,L.bitsPerPixel=p&63,p>>=6,L.numValidPixelsType=p,p===2)L.numValidPixels=Q.getUint8(k),k++;else if(p===1)L.numValidPixels=Q.getUint16(k,!0),k+=2;else if(p===0)L.numValidPixels=Q.getUint32(k,!0),k+=4;else throw"Invalid valid pixel count type"}if(E+=k,L.encoding!==3){var U,J;if(L.encoding===0){var x=(C.pixels.numBytes-1)/4;if(x!==Math.floor(x))throw"uncompressed block has invalid length";U=new ArrayBuffer(x*4),J=new Uint8Array(U),J.set(new Uint8Array(n,E,x*4));var b=new Float32Array(U);L.rawData=b,E+=x*4}else if(L.encoding===1){var Y=Math.ceil(L.numValidPixels*L.bitsPerPixel/8),q=Math.ceil(Y/4);U=new ArrayBuffer(q*4),J=new Uint8Array(U),J.set(new Uint8Array(n,E,Y)),L.stuffedData=new Uint32Array(U),E+=Y}}}return C.eofOffset=E,C},s=function(n,E,B,C,h,Q,l){var c=(1<<E)-1,w=0,D,y=0,f,u,d=Math.ceil((l-C)/h),G=n.length*4-Math.ceil(E*B/8);for(n[n.length-1]<<=8*G,D=0;D<B;D++){if(y===0&&(u=n[w++],y=32),y>=E)f=u>>>y-E&c,y-=E;else{var M=E-y;f=(u&c)<<M&c,u=n[w++],y=32-M,f+=u>>>y}Q[D]=f<d?C+f*h:l}return Q};return g})(),t=(function(){"use strict";var g={unstuff:function(o,s,n,E,B,C,h,Q){var l=(1<<n)-1,c=0,w,D=0,y,f,u,d,G=o.length*4-Math.ceil(n*E/8);if(o[o.length-1]<<=8*G,B)for(w=0;w<E;w++)D===0&&(f=o[c++],D=32),D>=n?(y=f>>>D-n&l,D-=n):(u=n-D,y=(f&l)<<u&l,f=o[c++],D=32-u,y+=f>>>D),s[w]=B[y];else for(d=Math.ceil((Q-C)/h),w=0;w<E;w++)D===0&&(f=o[c++],D=32),D>=n?(y=f>>>D-n&l,D-=n):(u=n-D,y=(f&l)<<u&l,f=o[c++],D=32-u,y+=f>>>D),s[w]=y<d?C+y*h:Q},unstuffLUT:function(o,s,n,E,B,C){var h=(1<<s)-1,Q=0,l=0,c=0,w=0,D=0,y,f=[],u=o.length*4-Math.ceil(s*n/8);o[o.length-1]<<=8*u;var d=Math.ceil((C-E)/B);for(l=0;l<n;l++)w===0&&(y=o[Q++],w=32),w>=s?(D=y>>>w-s&h,w-=s):(c=s-w,D=(y&h)<<c&h,y=o[Q++],w=32-c,D+=y>>>w),f[l]=D<d?E+D*B:C;return f.unshift(E),f},unstuff2:function(o,s,n,E,B,C,h,Q){var l=(1<<n)-1,c=0,w,D=0,y=0,f,u,d;if(B)for(w=0;w<E;w++)D===0&&(u=o[c++],D=32,y=0),D>=n?(f=u>>>y&l,D-=n,y+=n):(d=n-D,f=u>>>y&l,u=o[c++],D=32-d,f|=(u&(1<<d)-1)<<n-d,y=d),s[w]=B[f];else{var G=Math.ceil((Q-C)/h);for(w=0;w<E;w++)D===0&&(u=o[c++],D=32,y=0),D>=n?(f=u>>>y&l,D-=n,y+=n):(d=n-D,f=u>>>y&l,u=o[c++],D=32-d,f|=(u&(1<<d)-1)<<n-d,y=d),s[w]=f<G?C+f*h:Q}return s},unstuffLUT2:function(o,s,n,E,B,C){var h=(1<<s)-1,Q=0,l=0,c=0,w=0,D=0,y=0,f,u=[],d=Math.ceil((C-E)/B);for(l=0;l<n;l++)w===0&&(f=o[Q++],w=32,y=0),w>=s?(D=f>>>y&h,w-=s,y+=s):(c=s-w,D=f>>>y&h,f=o[Q++],w=32-c,D|=(f&(1<<c)-1)<<s-c,y=c),u[l]=D<d?E+D*B:C;return u.unshift(E),u},originalUnstuff:function(o,s,n,E){var B=(1<<n)-1,C=0,h,Q=0,l,c,w,D=o.length*4-Math.ceil(n*E/8);for(o[o.length-1]<<=8*D,h=0;h<E;h++)Q===0&&(c=o[C++],Q=32),Q>=n?(l=c>>>Q-n&B,Q-=n):(w=n-Q,l=(c&B)<<w&B,c=o[C++],Q=32-w,l+=c>>>Q),s[h]=l;return s},originalUnstuff2:function(o,s,n,E){var B=(1<<n)-1,C=0,h,Q=0,l=0,c,w,D;for(h=0;h<E;h++)Q===0&&(w=o[C++],Q=32,l=0),Q>=n?(c=w>>>l&B,Q-=n,l+=n):(D=n-Q,c=w>>>l&B,w=o[C++],Q=32-D,c|=(w&(1<<D)-1)<<n-D,l=D),s[h]=c;return s}},I={HUFFMAN_LUT_BITS_MAX:12,computeChecksumFletcher32:function(o){for(var s=65535,n=65535,E=o.length,B=Math.floor(E/2),C=0;B;){var h=B>=359?359:B;B-=h;do s+=o[C++]<<8,n+=s+=o[C++];while(--h);s=(s&65535)+(s>>>16),n=(n&65535)+(n>>>16)}return E&1&&(n+=s+=o[C]<<8),s=(s&65535)+(s>>>16),n=(n&65535)+(n>>>16),(n<<16|s)>>>0},readHeaderInfo:function(o,s){var n=s.ptr,E=new Uint8Array(o,n,6),B={};if(B.fileIdentifierString=String.fromCharCode.apply(null,E),B.fileIdentifierString.lastIndexOf("Lerc2",0)!==0)throw"Unexpected file identifier string (expect Lerc2 ): "+B.fileIdentifierString;n+=6;var C=new DataView(o,n,8),h=C.getInt32(0,!0);B.fileVersion=h,n+=4,h>=3&&(B.checksum=C.getUint32(4,!0),n+=4),C=new DataView(o,n,12),B.height=C.getUint32(0,!0),B.width=C.getUint32(4,!0),n+=8,h>=4?(B.numDims=C.getUint32(8,!0),n+=4):B.numDims=1,C=new DataView(o,n,40),B.numValidPixel=C.getUint32(0,!0),B.microBlockSize=C.getInt32(4,!0),B.blobSize=C.getInt32(8,!0),B.imageType=C.getInt32(12,!0),B.maxZError=C.getFloat64(16,!0),B.zMin=C.getFloat64(24,!0),B.zMax=C.getFloat64(32,!0),n+=40,s.headerInfo=B,s.ptr=n;var Q,l;if(h>=3&&(l=h>=4?52:48,Q=this.computeChecksumFletcher32(new Uint8Array(o,n-l,B.blobSize-14)),Q!==B.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(o,s){var n=s.headerInfo,E=this.getDataTypeArray(n.imageType),B=n.numDims*this.getDataTypeSize(n.imageType),C=this.readSubArray(o,s.ptr,E,B),h=this.readSubArray(o,s.ptr+B,E,B);s.ptr+=2*B;var Q,l=!0;for(Q=0;Q<n.numDims;Q++)if(C[Q]!==h[Q]){l=!1;break}return n.minValues=C,n.maxValues=h,l},readSubArray:function(o,s,n,E){var B;if(n===Uint8Array)B=new Uint8Array(o,s,E);else{var C=new ArrayBuffer(E),h=new Uint8Array(C);h.set(new Uint8Array(o,s,E)),B=new n(C)}return B},readMask:function(o,s){var n=s.ptr,E=s.headerInfo,B=E.width*E.height,C=E.numValidPixel,h=new DataView(o,n,4),Q={};if(Q.numBytes=h.getUint32(0,!0),n+=4,(C===0||B===C)&&Q.numBytes!==0)throw"invalid mask";var l,c;if(C===0)l=new Uint8Array(Math.ceil(B/8)),Q.bitset=l,c=new Uint8Array(B),s.pixels.resultMask=c,n+=Q.numBytes;else if(Q.numBytes>0){l=new Uint8Array(Math.ceil(B/8)),h=new DataView(o,n,Q.numBytes);var w=h.getInt16(0,!0),D=2,y=0,f=0;do{if(w>0)for(;w--;)l[y++]=h.getUint8(D++);else for(f=h.getUint8(D++),w=-w;w--;)l[y++]=f;w=h.getInt16(D,!0),D+=2}while(D<Q.numBytes);if(w!==-32768||y<l.length)throw"Unexpected end of mask RLE encoding";c=new Uint8Array(B);var u=0,d=0;for(d=0;d<B;d++)d&7?(u=l[d>>3],u<<=d&7):u=l[d>>3],u&128&&(c[d]=1);s.pixels.resultMask=c,Q.bitset=l,n+=Q.numBytes}return s.ptr=n,s.mask=Q,!0},readDataOneSweep:function(o,s,n,E){var B=s.ptr,C=s.headerInfo,h=C.numDims,Q=C.width*C.height,l=C.imageType,c=C.numValidPixel*I.getDataTypeSize(l)*h,w,D=s.pixels.resultMask;if(n===Uint8Array)w=new Uint8Array(o,B,c);else{var y=new ArrayBuffer(c),f=new Uint8Array(y);f.set(new Uint8Array(o,B,c)),w=new n(y)}if(w.length===Q*h)E?s.pixels.resultPixels=I.swapDimensionOrder(w,Q,h,n,!0):s.pixels.resultPixels=w;else{s.pixels.resultPixels=new n(Q*h);var u=0,d=0,G=0,M=0;if(h>1){if(E){for(d=0;d<Q;d++)if(D[d])for(M=d,G=0;G<h;G++,M+=Q)s.pixels.resultPixels[M]=w[u++]}else for(d=0;d<Q;d++)if(D[d])for(M=d*h,G=0;G<h;G++)s.pixels.resultPixels[M+G]=w[u++]}else for(d=0;d<Q;d++)D[d]&&(s.pixels.resultPixels[d]=w[u++])}return B+=c,s.ptr=B,!0},readHuffmanTree:function(o,s){var n=this.HUFFMAN_LUT_BITS_MAX,E=new DataView(o,s.ptr,16);s.ptr+=16;var B=E.getInt32(0,!0);if(B<2)throw"unsupported Huffman version";var C=E.getInt32(4,!0),h=E.getInt32(8,!0),Q=E.getInt32(12,!0);if(h>=Q)return!1;var l=new Uint32Array(Q-h);I.decodeBits(o,s,l);var c=[],w,D,y,f;for(w=h;w<Q;w++)D=w-(w<C?0:C),c[D]={first:l[w-h],second:null};var u=o.byteLength-s.ptr,d=Math.ceil(u/4),G=new ArrayBuffer(d*4),M=new Uint8Array(G);M.set(new Uint8Array(o,s.ptr,u));var m=new Uint32Array(G),_=0,k,v=0;for(k=m[0],w=h;w<Q;w++)D=w-(w<C?0:C),f=c[D].first,f>0&&(c[D].second=k<<_>>>32-f,32-_>=f?(_+=f,_===32&&(_=0,v++,k=m[v])):(_+=f-32,v++,k=m[v],c[D].second|=k>>>32-_));var L=0,p=0,U=new r;for(w=0;w<c.length;w++)c[w]!==void 0&&(L=Math.max(L,c[w].first));L>=n?p=n:p=L;var J=[],x,b,Y,q,W,AA;for(w=h;w<Q;w++)if(D=w-(w<C?0:C),f=c[D].first,f>0)if(x=[f,D],f<=p)for(b=c[D].second<<p-f,Y=1<<p-f,y=0;y<Y;y++)J[b|y]=x;else for(b=c[D].second,AA=U,q=f-1;q>=0;q--)W=b>>>q&1,W?(AA.right||(AA.right=new r),AA=AA.right):(AA.left||(AA.left=new r),AA=AA.left),q===0&&!AA.val&&(AA.val=x[1]);return{decodeLut:J,numBitsLUTQick:p,numBitsLUT:L,tree:U,stuffedData:m,srcPtr:v,bitPos:_}},readHuffman:function(o,s,n,E){var B=s.headerInfo,C=B.numDims,h=s.headerInfo.height,Q=s.headerInfo.width,l=Q*h,c=this.readHuffmanTree(o,s),w=c.decodeLut,D=c.tree,y=c.stuffedData,f=c.srcPtr,u=c.bitPos,d=c.numBitsLUTQick,G=c.numBitsLUT,M=s.headerInfo.imageType===0?128:0,m,_,k,v=s.pixels.resultMask,L,p,U,J,x,b,Y,q=0;u>0&&(f++,u=0);var W=y[f],AA=s.encodeMode===1,K=new n(l*C),T=K,H;if(C<2||AA){for(H=0;H<C;H++)if(C>1&&(T=new n(K.buffer,l*H,l),q=0),s.headerInfo.numValidPixel===Q*h)for(b=0,J=0;J<h;J++)for(x=0;x<Q;x++,b++){if(_=0,L=W<<u>>>32-d,p=L,32-u<d&&(L|=y[f+1]>>>64-u-d,p=L),w[p])_=w[p][1],u+=w[p][0];else for(L=W<<u>>>32-G,p=L,32-u<G&&(L|=y[f+1]>>>64-u-G,p=L),m=D,Y=0;Y<G;Y++)if(U=L>>>G-Y-1&1,m=U?m.right:m.left,!(m.left||m.right)){_=m.val,u=u+Y+1;break}u>=32&&(u-=32,f++,W=y[f]),k=_-M,AA?(x>0?k+=q:J>0?k+=T[b-Q]:k+=q,k&=255,T[b]=k,q=k):T[b]=k}else for(b=0,J=0;J<h;J++)for(x=0;x<Q;x++,b++)if(v[b]){if(_=0,L=W<<u>>>32-d,p=L,32-u<d&&(L|=y[f+1]>>>64-u-d,p=L),w[p])_=w[p][1],u+=w[p][0];else for(L=W<<u>>>32-G,p=L,32-u<G&&(L|=y[f+1]>>>64-u-G,p=L),m=D,Y=0;Y<G;Y++)if(U=L>>>G-Y-1&1,m=U?m.right:m.left,!(m.left||m.right)){_=m.val,u=u+Y+1;break}u>=32&&(u-=32,f++,W=y[f]),k=_-M,AA?(x>0&&v[b-1]?k+=q:J>0&&v[b-Q]?k+=T[b-Q]:k+=q,k&=255,T[b]=k,q=k):T[b]=k}}else for(b=0,J=0;J<h;J++)for(x=0;x<Q;x++)if(b=J*Q+x,!v||v[b])for(H=0;H<C;H++,b+=l){if(_=0,L=W<<u>>>32-d,p=L,32-u<d&&(L|=y[f+1]>>>64-u-d,p=L),w[p])_=w[p][1],u+=w[p][0];else for(L=W<<u>>>32-G,p=L,32-u<G&&(L|=y[f+1]>>>64-u-G,p=L),m=D,Y=0;Y<G;Y++)if(U=L>>>G-Y-1&1,m=U?m.right:m.left,!(m.left||m.right)){_=m.val,u=u+Y+1;break}u>=32&&(u-=32,f++,W=y[f]),k=_-M,T[b]=k}s.ptr=s.ptr+(f+1)*4+(u>0?4:0),s.pixels.resultPixels=K,C>1&&!E&&(s.pixels.resultPixels=I.swapDimensionOrder(K,l,C,n))},decodeBits:function(o,s,n,E,B){{var C=s.headerInfo,h=C.fileVersion,Q=0,l=o.byteLength-s.ptr>=5?5:o.byteLength-s.ptr,c=new DataView(o,s.ptr,l),w=c.getUint8(0);Q++;var D=w>>6,y=D===0?4:3-D,f=(w&32)>0,u=w&31,d=0;if(y===1)d=c.getUint8(Q),Q++;else if(y===2)d=c.getUint16(Q,!0),Q+=2;else if(y===4)d=c.getUint32(Q,!0),Q+=4;else throw"Invalid valid pixel count type";var G=2*C.maxZError,M,m,_,k,v,L,p,U,J,x,b=C.numDims>1?C.maxValues[B]:C.zMax;if(f){for(s.counter.lut++,U=c.getUint8(Q),J=u,Q++,k=Math.ceil((U-1)*u/8),v=Math.ceil(k/4),m=new ArrayBuffer(v*4),_=new Uint8Array(m),s.ptr+=Q,_.set(new Uint8Array(o,s.ptr,k)),p=new Uint32Array(m),s.ptr+=k,x=0;U-1>>>x;)x++;k=Math.ceil(d*x/8),v=Math.ceil(k/4),m=new ArrayBuffer(v*4),_=new Uint8Array(m),_.set(new Uint8Array(o,s.ptr,k)),M=new Uint32Array(m),s.ptr+=k,h>=3?L=g.unstuffLUT2(p,u,U-1,E,G,b):L=g.unstuffLUT(p,u,U-1,E,G,b),h>=3?g.unstuff2(M,n,x,d,L):g.unstuff(M,n,x,d,L)}else s.counter.bitstuffer++,x=u,s.ptr+=Q,x>0&&(k=Math.ceil(d*x/8),v=Math.ceil(k/4),m=new ArrayBuffer(v*4),_=new Uint8Array(m),_.set(new Uint8Array(o,s.ptr,k)),M=new Uint32Array(m),s.ptr+=k,h>=3?E==null?g.originalUnstuff2(M,n,x,d):g.unstuff2(M,n,x,d,!1,E,G,b):E==null?g.originalUnstuff(M,n,x,d):g.unstuff(M,n,x,d,!1,E,G,b))}},readTiles:function(o,s,n,E){var B=s.headerInfo,C=B.width,h=B.height,Q=C*h,l=B.microBlockSize,c=B.imageType,w=I.getDataTypeSize(c),D=Math.ceil(C/l),y=Math.ceil(h/l);s.pixels.numBlocksY=y,s.pixels.numBlocksX=D,s.pixels.ptr=0;var f=0,u=0,d=0,G=0,M=0,m=0,_=0,k=0,v=0,L=0,p=0,U=0,J=0,x=0,b=0,Y=0,q,W,AA,K,T,H,j=new n(l*l),V=h%l||l,sA=C%l||l,nA,O,QA=B.numDims,P,tA=s.pixels.resultMask,eA=s.pixels.resultPixels,fA=B.fileVersion,KA=fA>=5?14:15,DA,Pt=B.zMax,PA;for(d=0;d<y;d++)for(M=d!==y-1?l:V,G=0;G<D;G++)for(m=G!==D-1?l:sA,p=d*C*l+G*l,U=C-m,P=0;P<QA;P++){if(QA>1?(PA=eA,p=d*C*l+G*l,eA=new n(s.pixels.resultPixels.buffer,Q*P*w,Q),Pt=B.maxValues[P]):PA=null,_=o.byteLength-s.ptr,q=new DataView(o,s.ptr,Math.min(10,_)),W={},Y=0,k=q.getUint8(0),Y++,DA=B.fileVersion>=5?k&4:0,v=k>>6&255,L=k>>2&KA,L!==(G*l>>3&KA)||DA&&P===0)throw"integrity issue";if(H=k&3,H>3)throw s.ptr+=Y,"Invalid block encoding ("+H+")";if(H===2){if(DA)if(tA)for(f=0;f<M;f++)for(u=0;u<m;u++)tA[p]&&(eA[p]=PA[p]),p++;else for(f=0;f<M;f++)for(u=0;u<m;u++)eA[p]=PA[p],p++;s.counter.constant++,s.ptr+=Y;continue}else if(H===0){if(DA)throw"integrity issue";if(s.counter.uncompressed++,s.ptr+=Y,J=M*m*w,x=o.byteLength-s.ptr,J=J<x?J:x,AA=new ArrayBuffer(J%w===0?J:J+w-J%w),K=new Uint8Array(AA),K.set(new Uint8Array(o,s.ptr,J)),T=new n(AA),b=0,tA)for(f=0;f<M;f++){for(u=0;u<m;u++)tA[p]&&(eA[p]=T[b++]),p++;p+=U}else for(f=0;f<M;f++){for(u=0;u<m;u++)eA[p++]=T[b++];p+=U}s.ptr+=b*w}else if(nA=I.getDataTypeUsed(DA&&c<6?4:c,v),O=I.getOnePixel(W,Y,nA,q),Y+=I.getDataTypeSize(nA),H===3)if(s.ptr+=Y,s.counter.constantoffset++,tA)for(f=0;f<M;f++){for(u=0;u<m;u++)tA[p]&&(eA[p]=DA?Math.min(Pt,PA[p]+O):O),p++;p+=U}else for(f=0;f<M;f++){for(u=0;u<m;u++)eA[p]=DA?Math.min(Pt,PA[p]+O):O,p++;p+=U}else if(s.ptr+=Y,I.decodeBits(o,s,j,O,P),Y=0,DA)if(tA)for(f=0;f<M;f++){for(u=0;u<m;u++)tA[p]&&(eA[p]=j[Y++]+PA[p]),p++;p+=U}else for(f=0;f<M;f++){for(u=0;u<m;u++)eA[p]=j[Y++]+PA[p],p++;p+=U}else if(tA)for(f=0;f<M;f++){for(u=0;u<m;u++)tA[p]&&(eA[p]=j[Y++]),p++;p+=U}else for(f=0;f<M;f++){for(u=0;u<m;u++)eA[p++]=j[Y++];p+=U}}QA>1&&!E&&(s.pixels.resultPixels=I.swapDimensionOrder(s.pixels.resultPixels,Q,QA,n))},formatFileInfo:function(o){return{fileIdentifierString:o.headerInfo.fileIdentifierString,fileVersion:o.headerInfo.fileVersion,imageType:o.headerInfo.imageType,height:o.headerInfo.height,width:o.headerInfo.width,numValidPixel:o.headerInfo.numValidPixel,microBlockSize:o.headerInfo.microBlockSize,blobSize:o.headerInfo.blobSize,maxZError:o.headerInfo.maxZError,pixelType:I.getPixelType(o.headerInfo.imageType),eofOffset:o.eofOffset,mask:o.mask?{numBytes:o.mask.numBytes}:null,pixels:{numBlocksX:o.pixels.numBlocksX,numBlocksY:o.pixels.numBlocksY,maxValue:o.headerInfo.zMax,minValue:o.headerInfo.zMin,noDataValue:o.noDataValue}}},constructConstantSurface:function(o,s){var n=o.headerInfo.zMax,E=o.headerInfo.zMin,B=o.headerInfo.maxValues,C=o.headerInfo.numDims,h=o.headerInfo.height*o.headerInfo.width,Q=0,l=0,c=0,w=o.pixels.resultMask,D=o.pixels.resultPixels;if(w)if(C>1){if(s)for(Q=0;Q<C;Q++)for(c=Q*h,n=B[Q],l=0;l<h;l++)w[l]&&(D[c+l]=n);else for(l=0;l<h;l++)if(w[l])for(c=l*C,Q=0;Q<C;Q++)D[c+C]=B[Q]}else for(l=0;l<h;l++)w[l]&&(D[l]=n);else if(C>1&&E!==n)if(s)for(Q=0;Q<C;Q++)for(c=Q*h,n=B[Q],l=0;l<h;l++)D[c+l]=n;else for(l=0;l<h;l++)for(c=l*C,Q=0;Q<C;Q++)D[c+Q]=B[Q];else for(l=0;l<h*C;l++)D[l]=n},getDataTypeArray:function(o){var s;switch(o){case 0:s=Int8Array;break;case 1:s=Uint8Array;break;case 2:s=Int16Array;break;case 3:s=Uint16Array;break;case 4:s=Int32Array;break;case 5:s=Uint32Array;break;case 6:s=Float32Array;break;case 7:s=Float64Array;break;default:s=Float32Array}return s},getPixelType:function(o){var s;switch(o){case 0:s="S8";break;case 1:s="U8";break;case 2:s="S16";break;case 3:s="U16";break;case 4:s="S32";break;case 5:s="U32";break;case 6:s="F32";break;case 7:s="F64";break;default:s="F32"}return s},isValidPixelValue:function(o,s){if(s==null)return!1;var n;switch(o){case 0:n=s>=-128&&s<=127;break;case 1:n=s>=0&&s<=255;break;case 2:n=s>=-32768&&s<=32767;break;case 3:n=s>=0&&s<=65536;break;case 4:n=s>=-2147483648&&s<=2147483647;break;case 5:n=s>=0&&s<=4294967296;break;case 6:n=s>=-34027999387901484e22&&s<=34027999387901484e22;break;case 7:n=s>=-17976931348623157e292&&s<=17976931348623157e292;break;default:n=!1}return n},getDataTypeSize:function(o){var s=0;switch(o){case 0:case 1:s=1;break;case 2:case 3:s=2;break;case 4:case 5:case 6:s=4;break;case 7:s=8;break;default:s=o}return s},getDataTypeUsed:function(o,s){var n=o;switch(o){case 2:case 4:n=o-s;break;case 3:case 5:n=o-2*s;break;case 6:s===0?n=o:s===1?n=2:n=1;break;case 7:s===0?n=o:n=o-2*s+1;break;default:n=o;break}return n},getOnePixel:function(o,s,n,E){var B=0;switch(n){case 0:B=E.getInt8(s);break;case 1:B=E.getUint8(s);break;case 2:B=E.getInt16(s,!0);break;case 3:B=E.getUint16(s,!0);break;case 4:B=E.getInt32(s,!0);break;case 5:B=E.getUInt32(s,!0);break;case 6:B=E.getFloat32(s,!0);break;case 7:B=E.getFloat64(s,!0);break;default:throw"the decoder does not understand this pixel type"}return B},swapDimensionOrder:function(o,s,n,E,B){var C=0,h=0,Q=0,l=0,c=o;if(n>1)if(c=new E(s*n),B)for(C=0;C<s;C++)for(l=C,Q=0;Q<n;Q++,l+=s)c[l]=o[h++];else for(C=0;C<s;C++)for(l=C,Q=0;Q<n;Q++,l+=s)c[h++]=o[l];return c}},r=function(o,s,n){this.val=o,this.left=s,this.right=n},a={decode:function(o,s){s=s||{};var n=s.noDataValue,E=0,B={};if(B.ptr=s.inputOffset||0,B.pixels={},!!I.readHeaderInfo(o,B)){var C=B.headerInfo,h=C.fileVersion,Q=I.getDataTypeArray(C.imageType);if(h>5)throw"unsupported lerc version 2."+h;I.readMask(o,B),C.numValidPixel!==C.width*C.height&&!B.pixels.resultMask&&(B.pixels.resultMask=s.maskData);var l=C.width*C.height;B.pixels.resultPixels=new Q(l*C.numDims),B.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0};var c=!s.returnPixelInterleavedDims;if(C.numValidPixel!==0)if(C.zMax===C.zMin)I.constructConstantSurface(B,c);else if(h>=4&&I.checkMinMaxRanges(o,B))I.constructConstantSurface(B,c);else{var w=new DataView(o,B.ptr,2),D=w.getUint8(0);if(B.ptr++,D)I.readDataOneSweep(o,B,Q,c);else if(h>1&&C.imageType<=1&&Math.abs(C.maxZError-.5)<1e-5){var y=w.getUint8(1);if(B.ptr++,B.encodeMode=y,y>2||h<4&&y>1)throw"Invalid Huffman flag "+y;y?I.readHuffman(o,B,Q,c):I.readTiles(o,B,Q,c)}else I.readTiles(o,B,Q,c)}B.eofOffset=B.ptr;var f;s.inputOffset?(f=B.headerInfo.blobSize+s.inputOffset-B.ptr,Math.abs(f)>=1&&(B.eofOffset=s.inputOffset+B.headerInfo.blobSize)):(f=B.headerInfo.blobSize-B.ptr,Math.abs(f)>=1&&(B.eofOffset=B.headerInfo.blobSize));var u={width:C.width,height:C.height,pixelData:B.pixels.resultPixels,minValue:C.zMin,maxValue:C.zMax,validPixelCount:C.numValidPixel,dimCount:C.numDims,dimStats:{minValues:C.minValues,maxValues:C.maxValues},maskData:B.pixels.resultMask};if(B.pixels.resultMask&&I.isValidPixelValue(C.imageType,n)){var d=B.pixels.resultMask;for(E=0;E<l;E++)d[E]||(u.pixelData[E]=n);u.noDataValue=n}return B.noDataValue=n,s.returnFileInfo&&(u.fileInfo=I.formatFileInfo(B)),u}},getBandCount:function(o){var s=0,n=0,E={};for(E.ptr=0,E.pixels={};n<o.byteLength-58;)I.readHeaderInfo(o,E),n+=E.headerInfo.blobSize,s++,E.ptr=n;return s}};return a})(),e=(function(){var g=new ArrayBuffer(4),I=new Uint8Array(g),r=new Uint32Array(g);return r[0]=1,I[0]===1})(),i={decode:function(g,I){if(!e)throw"Big endian system is not supported.";I=I||{};var r=I.inputOffset||0,a=new Uint8Array(g,r,10),o=String.fromCharCode.apply(null,a),s,n;if(o.trim()==="CntZImage")s=A,n=1;else if(o.substring(0,5)==="Lerc2")s=t,n=2;else throw"Unexpected file identifier string: "+o;for(var E=0,B=g.byteLength-10,C,h=[],Q,l,c={width:0,height:0,pixels:[],pixelType:I.pixelType,mask:null,statistics:[]},w=0;r<B;){var D=s.decode(g,{inputOffset:r,encodedMaskData:C,maskData:l,returnMask:E===0,returnEncodedMask:E===0,returnFileInfo:!0,returnPixelInterleavedDims:I.returnPixelInterleavedDims,pixelType:I.pixelType||null,noDataValue:I.noDataValue||null});r=D.fileInfo.eofOffset,l=D.maskData,E===0&&(C=D.encodedMaskData,c.width=D.width,c.height=D.height,c.dimCount=D.dimCount||1,c.pixelType=D.pixelType||D.fileInfo.pixelType,c.mask=l),n>1&&(l&&h.push(l),D.fileInfo.mask&&D.fileInfo.mask.numBytes>0&&w++),E++,c.pixels.push(D.pixelData),c.statistics.push({minValue:D.minValue,maxValue:D.maxValue,noDataValue:D.noDataValue,dimStats:D.dimStats})}var y,f,u;if(n>1&&w>1){for(u=c.width*c.height,c.bandMasks=h,l=new Uint8Array(u),l.set(h[0]),y=1;y<h.length;y++)for(Q=h[y],f=0;f<u;f++)l[f]=l[f]&Q[f];c.maskData=l}return c}};typeof define=="function"&&define.amd?define([],function(){return i}):typeof gg<"u"&&gg.exports?gg.exports=i:this.Lerc=i})()});var Xe,nt,YI,bI,Ig,zr,Vr=MA(()=>{bI={env:{emscripten_notify_memory_growth:A=>{YI=new Uint8Array(nt.exports.memory.buffer)}}},Ig=class{init(){return Xe||(typeof fetch<"u"?Xe=fetch(`data:application/wasm;base64,${zr}`).then(t=>t.arrayBuffer()).then(t=>WebAssembly.instantiate(t,bI)).then(this._init):Xe=WebAssembly.instantiate(Buffer.from(zr,"base64"),bI).then(this._init),Xe)}_init(t){nt=t.instance,bI.env.emscripten_notify_memory_growth(0)}decode(t,e=0){if(!nt)throw new Error("ZSTDDecoder: Await .init() before decoding.");let i=t.byteLength,g=nt.exports.malloc(i);YI.set(t,g),e=e||Number(nt.exports.ZSTD_findDecompressedSize(g,i));let I=nt.exports.malloc(e),r=nt.exports.ZSTD_decompress(I,e,g,i),a=YI.slice(I,I+r);return nt.exports.free(g),nt.exports.free(I),a}},zr="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AikACDcACCAHIDo3AAAgEUEZSA0BIARBGGohBANAIAIpABAhOiAEIAIpABg3AAggBCA6NwAAIAIpACAhOiAEIAIpACg3ABggBCA6NwAQIAJBIGohAiAEQSBqIgQgCkkNAAsMAQsCQAJAIAUoAswCIhEgBUHgAWogJUEHcUEMbGoiDygCACICaiIHIBxLDQAgCSAPKAIEIgogAmoiBmogG0sNACAGQSBqIBQgCWtNDQELIAUgDygCCDYCoAEgBSAPKQIANwOYASAJIBQgBUGYAWogBUHMAmogHCALIBcgIhAgIQYMAQsgAiAJaiEEIA8oAgghFSARKQAAITogCSARKQAINwAIIAkgOjcAAAJAIAJBEUkNACARKQAQITogCSARKQAYNwAYIAkgOjcAECACQRBrQRFIDQAgEUEQaiECIAlBIGohEgNAIAIpABAhOiASIAIpABg3AAggEiA6NwAAIAIpACAhOiASIAIpACg3ABggEiA6NwAQIAJBIGohAiASQSBqIhIgBEkNAAsLIAQgFWshAiAFIAc2AswCIAQgC2sgFUkEQCAVIAQgF2tLDQwgIiAiIAIgC2siD2oiByAKak8EQCAKRQ0CIAQgByAK/AoAAAwCC0EAIA9rIgIEQCAEIAcgAvwKAAALIAogD2ohCiAEIA9rIQQgCyECCyAVQRBPBEAgAikAACE6IAQgAikACDcACCAEIDo3AAAgCkERSA0BIAQgCmohByAEQRBqIQQDQCACKQAQITogBCACKQAYNwAIIAQgOjcAACACKQAgITogBCACKQAoNwAYIAQgOjcAECACQSBqIQIgBEEgaiIEIAdJDQALDAELAkAgFUEHTQRAIAQgAi0AADoAACAEIAItAAE6AAEgBCACLQACOgACIAQgAi0AAzoAAyAEIAIgFUECdCIHQeAaaigCAGoiAigAADYABCACIAdBgBtqKAIAayECDAELIAQgAikAADcAAAsgCkEJSQ0AIAQgCmohDyAEQQhqIgcgAkEIaiICa0EPTARAA0AgByACKQAANwAAIAJBCGohAiAHQQhqIgcgD0kNAAwCCwALIAIpAAAhOiAHIAIpAAg3AAggByA6NwAAIApBGUgNACAEQRhqIQQDQCACKQAQITogBCACKQAYNwAIIAQgOjcAACACKQAgITogBCACKQAoNwAYIAQgOjcAECACQSBqIQIgBEEgaiIEIA9JDQALCyAGQYh/SwRAIAYhAwwLCyAFQeABaiAlQQdxQQxsaiICIA02AgggAiAMNgIEIAIgEDYCAAsgBiAJaiEJICVBAWohJSAQIC1qIAxqIS0MAQsLIAUoArABIAUoArQBRw0HIAUoAqwBQSBHDQcgDiAoayEQA0ACQCAOIBBMBEBBACECA0AgAkEDRg0CIDIgAkECdCIDaiADICZqKAIANgIAIAJBAWohAgwACwALIAVB4AFqIBBBB3FBDGxqIQoCfwJAIAgoAoTsAUECRgRAIAUoAswCIg8gCigCACIEaiIHIAgoAoDsASICSwRAIAIgD0cEQCACIA9rIgIgFCAJa0sNCyAJIA8gAhAfIAogBCACayIENgIAIAIgCWohCQsgBSAWNgLMAiAIQQA2AoTsAQJAAkACQCAEQYCABEoNACAJIAooAgQiDSAEaiIGaiAbSw0AIAZBIGogFCAJa00NAQsgBSAKKAIINgJQIAUgCikCADcDSCAJIBQgBUHIAGogBUHMAmogGSALIBcgIhAgIQYMAQsgBCAWaiEHIAQgCWohDCAKKAIIIQogFikAACE6IAkgFikACDcACCAJIDo3AAACQCAEQRFJDQAgHikAACE6IAkgHikACDcAGCAJIDo3ABAgBEEQa0ERSA0AIAlBIGohAiAeIQQDQCAEKQAQITogAiAEKQAYNwAIIAIgOjcAACAEKQAgITogAiAEKQAoNwAYIAIgOjcAECAEQSBqIQQgAkEgaiICIAxJDQALCyAMIAprIQIgBSAHNgLMAiAMIAtrIApJBEAgCiAMIBdrSw0PICIgIiACIAtrIgdqIgQgDWpPBEAgDUUNAiAMIAQgDfwKAAAMAgtBACAHayICBEAgDCAEIAL8CgAACyAHIA1qIQ0gDCAHayEMIAshAgsgCkEQTwRAIAIpAAAhOiAMIAIpAAg3AAggDCA6NwAAIA1BEUgNASAMIA1qIQcgDEEQaiEEA0AgAikAECE6IAQgAikAGDcACCAEIDo3AAAgAikAICE6IAQgAikAKDcAGCAEIDo3ABAgAkEgaiECIARBIGoiBCAHSQ0ACwwBCwJAIApBB00EQCAMIAItAAA6AAAgDCACLQABOgABIAwgAi0AAjoAAiAMIAItAAM6AAMgDCACIApBAnQiBEHgGmooAgBqIgIoAAA2AAQgAiAEQYAbaigCAGshAgwBCyAMIAIpAAA3AAALIA1BCUkNACAMIA1qIQcgDEEIaiIEIAJBCGoiAmtBD0wEQANAIAQgAikAADcAACACQQhqIQIgBEEIaiIEIAdJDQAMAgsACyACKQAAITogBCACKQAINwAIIAQgOjcAACANQRlIDQAgDEEYaiEEA0AgAikAECE6IAQgAikAGDcACCAEIDo3AAAgAikAICE6IAQgAikAKDcAGCAEIDo3ABAgAkEgaiECIARBIGoiBCAHSQ0ACwsgBkGJf08EQCAGIQMMDgsgGSEcIAYgCWoMAwsgB0EgayECAkACQCAHIBxLDQAgCSAKKAIEIhIgBGoiDGogAksNACAMQSBqIBQgCWtNDQELIAUgCigCCDYCYCAFIAopAgA3A1ggCSAUIAIgBUHYAGogBUHMAmogHCALIBcgIhAhIQwMAgsgBCAJaiEGIAooAgghCiAPKQAAITogCSAPKQAINwAIIAkgOjcAAAJAIARBEUkNACAPKQAQITogCSAPKQAYNwAYIAkgOjcAECAEQRBrQRFIDQAgD0EQaiECIAlBIGohBANAIAIpABAhOiAEIAIpABg3AAggBCA6NwAAIAIpACAhOiAEIAIpACg3ABggBCA6NwAQIAJBIGohAiAEQSBqIgQgBkkNAAsLIAYgCmshAiAFIAc2AswCIAYgC2sgCkkEQCAKIAYgF2tLDQ0gIiAiIAIgC2siB2oiBCASak8EQCASRQ0DIAYgBCAS/AoAAAwDC0EAIAdrIgIEQCAGIAQgAvwKAAALIAcgEmohEiAGIAdrIQYgCyECCyAKQRBPBEAgAikAACE6IAYgAikACDcACCAGIDo3AAAgEkERSA0CIAYgEmohByAGQRBqIQQDQCACKQAQITogBCACKQAYNwAIIAQgOjcAACACKQAgITogBCACKQAoNwAYIAQgOjcAECACQSBqIQIgBEEgaiIEIAdJDQALDAILAkAgCkEHTQRAIAYgAi0AADoAACAGIAItAAE6AAEgBiACLQACOgACIAYgAi0AAzoAAyAGIAIgCkECdCIEQeAaaigCAGoiAigAADYABCACIARBgBtqKAIAayECDAELIAYgAikAADcAAAsgEkEJSQ0BIAYgEmohByAGQQhqIgQgAkEIaiICa0EPTARAA0AgBCACKQAANwAAIAJBCGohAiAE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"});var $r={};ut($r,{default:()=>ag,zstd:()=>Xr});var Wr,Xr,ag,Ao=MA(()=>{vI();Wr=yi(Zr(),1);Vr();WA();Re();Xr=new Ig,ag=class extends CA{decodeBlock(t){let i=this.parameters.LercParameters?.[rs.AddCompression],g=t;switch(i){case Ri.None:break;case Ri.Deflate:g=tg(new Uint8Array(g)).buffer;break;case Ri.Zstandard:g=Xr.decode(new Uint8Array(g)).buffer;break;default:throw new Error(`Unsupported LERC additional compression method identifier: ${i}`)}return Wr.default.decode(g,{returnPixelInterleavedDims:this.parameters.planarConfiguration===1}).pixels[0].buffer}}});var $e,IA,ae,et,KI,se,to,HI=MA(()=>{KI={env:{emscripten_notify_memory_growth:A=>{ae=new Uint8Array(IA.exports.memory.buffer),et=new DataView(ae.buffer)}}},se=class{init(){return $e||(typeof fetch<"u"?$e=fetch(`data:application/wasm;base64,${to}`).then(t=>t.arrayBuffer()).then(t=>WebAssembly.instantiate(t,KI)).then(this._init):$e=WebAssembly.instantiate(Buffer.from(to,"base64"),KI).then(this._init),$e)}_init(t){IA=t.instance,KI.env.emscripten_notify_memory_growth(0)}decode(t,e=0){if(!IA)throw new Error("ZSTDDecoder: Await .init() before decoding.");let i=t.byteLength,g=IA.exports.malloc(i);if(ae.set(t,g),e===0&&(e=Number(IA.exports.ZSTD_findDecompressedSize(g,i))),e===-1){IA.exports.free(g);let o=[];for(let B of this.decodeStreaming([t]))o.push(B);if(o.length===1)return o[0];let s=o.reduce((B,C)=>B+C.byteLength,0),n=new Uint8Array(s),E=0;for(let B of o)n.set(B,E),E+=B.byteLength;return n}let I=IA.exports.malloc(e),r=IA.exports.ZSTD_decompress(I,e,g,i),a=ae.slice(I,I+r);return IA.exports.free(g),IA.exports.free(I),a}*decodeStreaming(t){if(!IA)throw new Error("ZSTDDecoder: Await .init() before decoding.");let e=IA.exports.ZSTD_DStreamInSize(),i=IA.exports.malloc(e),g=IA.exports.ZSTD_DStreamOutSize(),I=IA.exports.malloc(g),r=IA.exports.ZSTD_createDCtx(),a=4,o=4,s=IA.exports.malloc(a+o*2),n=IA.exports.malloc(a+o*2),E=0;for(let B of t){let C=IA.exports.malloc(B.byteLength);for(ae.set(B,C),et.setInt32(s,C,!0),et.setInt32(s+a,B.byteLength,!0),et.setInt32(s+a+o,0,!0);et.getUint32(s+a+o,!0)<et.getUint32(s+a,!0);){et.setInt32(n,I,!0),et.setInt32(n+a,g,!0),et.setInt32(n+a+o,0,!0),E=IA.exports.ZSTD_decompressStream(r,n,s);let h=et.getUint32(n+a+o,!0);yield ae.slice(I,I+h)}IA.exports.free(C)}if(IA.exports.ZSTD_freeDCtx(r),IA.exports.free(i),IA.exports.free(I),IA.exports.free(s),IA.exports.free(n),E!==0)throw new Error("Incomplete stream, more data expected.")}},to="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QQhyIQBBACEDA0AgACADTQ0DIANBQGshAwwACwALQWwhCiAOIA5B/ABqIA5B+ABqIAUgBhAGIgJBiH9LDQEgDigCeCIDIARLDQEgACAOIA4oAnwgByAIIAMgDRAlIAEgADYCACACIQoMAQtBbCEKCyAOQYABaiQAIAoLcAEEfyAAQgA3AgAgAgRAIAFBCmohBiABKAIEIQRBACECQQAhAQNAIAEgBHZFBEAgAiAGIAFBA3RqLQAAIgUgAiAFSxshAiABQQFqIQEgAyAFQRZLaiEDDAELCyAAIAI2AgQgACADQQggBGt0NgIACwuuAQEEfyABIAIoAgQiAyABKAIEaiIENgIEIAAgA0ECdEGwGWooAgAgASgCAEEAIARrdnE2AgACQCAEQSFPBEAgAUGwGjYCCAwBCyABKAIIIgMgASgCEE8EQCABEAwMAQsgAyABKAIMIgVGDQAgASADIAMgBWsgBEEDdiIGIAMgBmsgBUkbIgNrIgU2AgggASAEIANBA3RrNgIEIAEgBSgAADYCAAsgACACQQhqNgIEC40CAgN/AX4gACACaiEEAkACQCACQQhOBEAgACABayICQXlIDQELA0AgACAETw0CIAAgAS0AADoAACAAQQFqIQAgAUEBaiEBDAALAAsCQAJAIAJBb0sNACAAIARBIGsiAksNACABKQAAIQYgACABKQAINwAIIAAgBjcAACACIABrIgVBEU4EQCAAQRBqIQAgASEDA0AgAykAECEGIAAgAykAGDcACCAAIAY3AAAgAykAICEGIAAgAykAKDcAGCAAIAY3ABAgA0EgaiEDIABBIGoiACACSQ0ACwsgASAFaiEBDAELIAAhAgsDQCACIARPDQEgAiABLQAAOgAAIAJBAWohAiABQQFqIQEMAAsACwvfAQEGf0G6fyEKAkAgAigCBCIIIAIoAgAiCWoiDSABIABrSw0AQWwhCiAJIAQgAygCACILa0sNACAAIAlqIgQgAigCCCIMayECIAAgAUEgayIBIAsgCUEAEDMgAyAJIAtqNgIAAkACQCAEIAVrIAxPBEAgAiEFDAELIAwgBCAGa0sNAiAHIAcgAiAFayIDaiICIAhqTwRAIAhFDQIgBCACIAj8CgAADAILQQAgA2siAARAIAQgAiAA/AoAAAsgAyAIaiEIIAQgA2shBAsgBCABIAUgCEEBEDML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"});var io={};ut(io,{default:()=>sg,zstd:()=>eo});var eo,sg,go=MA(()=>{HI();WA();eo=new se,sg=class extends CA{decodeBlock(t){return eo.decode(new Uint8Array(t)).buffer}}});var Io={};ut(Io,{default:()=>rg});var rg,ao=MA(()=>{WA();rg=class extends CA{constructor(t){if(super(t),typeof createImageBitmap>"u")throw new Error("Cannot decode WebImage as `createImageBitmap` is not available");if(typeof document>"u"&&typeof OffscreenCanvas>"u")throw new Error("Cannot decode WebImage as neither `document` nor `OffscreenCanvas` is not available")}async decodeBlock(t){let e=new Blob([t]),i=await createImageBitmap(e),g;typeof document<"u"?(g=document.createElement("canvas"),g.width=i.width,g.height=i.height):g=new OffscreenCanvas(i.width,i.height);let I=g.getContext("2d");I.drawImage(i,0,0);let r=I.getImageData(0,0,i.width,i.height).data,a=this.parameters.samplesPerPixel||4;if(a===4)return r.buffer;if(a===3){let o=new Uint8ClampedArray(i.width*i.height*3);for(let s=0,n=0;s<o.length;s+=3,n+=4)o[s]=r[n],o[s+1]=r[n+1],o[s+2]=r[n+2];return o.buffer}else throw new Error(`Unsupported SamplesPerPixel value: ${a}`)}}});var co=wi(()=>{});var uo=wi(()=>{});var wo=wi(()=>{});var Ua="Cannot convert undefined or null to object";function gA(A){return(t,...e)=>xC(A,t,e)}function qt(A,t){return gA(Di(A,t).get)}var{apply:xC,construct:Cc,defineProperty:Bc,get:Ec,getOwnPropertyDescriptor:Di,getPrototypeOf:Si,has:hc,ownKeys:ba,set:Qc,setPrototypeOf:lc}=Reflect;var{EPSILON:Ya,MAX_SAFE_INTEGER:fc,isFinite:UC,isNaN:vC}=Number,{iterator:Ot,species:cc,toStringTag:bC,for:uc}=Symbol,mi=Object,{create:Gi,defineProperty:Ka,freeze:dc,is:wc}=mi,Og=mi.prototype,yc=Og.__lookupGetter__?gA(Og.__lookupGetter__):(A,t)=>{if(A==null)throw TC(Ua);let e=mi(A);do{let i=Di(e,t);if(i!==void 0)return YC(i,"get")?i.get:void 0}while((e=Si(e))!==null)},YC=mi.hasOwn||gA(Og.hasOwnProperty),Ha=Array,Dc=Ha.isArray,Mi=Ha.prototype,Sc=gA(Mi.join),mc=gA(Mi.push),Gc=gA(Mi.toLocaleString),jg=Mi[Ot],Ta=gA(jg),{abs:KC,trunc:Mc}=Math,Ni=ArrayBuffer,Nc=Ni.isView,Ja=Ni.prototype,pc=gA(Ja.slice),_c=qt(Ja,"byteLength"),va=typeof SharedArrayBuffer<"u"?SharedArrayBuffer:null,Fc=va&&qt(va.prototype,"byteLength"),Pa=Si(Uint8Array),Rc=Pa.from,SA=Pa.prototype,kc=SA[Ot],Lc=gA(SA.keys),xc=gA(SA.values),Uc=gA(SA.entries),vc=gA(SA.set),bc=gA(SA.reverse),Yc=gA(SA.fill),Kc=gA(SA.copyWithin),Hc=gA(SA.sort),Tc=gA(SA.slice),Jc=gA(SA.subarray),Pc=qt(SA,"buffer"),qc=qt(SA,"byteOffset"),Oc=qt(SA,"length"),jc=qt(SA,bC),qa=Uint8Array,Zg=Uint16Array;var pi=Uint32Array,Oa=Float32Array,jt=Si([][Ot]()),zg=gA(jt.next),ja=gA((function*(){})().next),Za=Si(jt),za=DataView.prototype,Va=gA(za.getUint16),HC=gA(za.setUint16),TC=TypeError;var JC=WeakSet,Wa=JC.prototype,Zc=gA(Wa.add),zc=gA(Wa.has),_i=WeakMap,Vg=_i.prototype,Wg=gA(Vg.get),Vc=gA(Vg.has),Xa=gA(Vg.set);var $a=new _i,PC=Gi(null,{next:{value:function(){let t=Wg($a,this);return zg(t)}},[Ot]:{value:function(){return this}}});function As(A){if(A[Ot]===jg&&jt.next===zg)return A;let t=Gi(PC);return Xa($a,t,Ta(A)),t}var qC=new _i,OC=Gi(Za,{next:{value:function(){let t=Wg(qC,this);return ja(t)},writable:!0,configurable:!0}});for(let A of ba(jt))A!=="next"&&Ka(OC,A,Di(jt,A));var jC=1/Ya;var ZC=6103515625e-14;var ts=.0009765625,tu=ts*ZC,eu=ts*jC;var es=new Ni(4),zC=new Oa(es),VC=new pi(es),zA=new Zg(512),VA=new qa(512);for(let A=0;A<256;++A){let t=A-127;t<-24?(zA[A]=0,zA[A|256]=32768,VA[A]=24,VA[A|256]=24):t<-14?(zA[A]=1024>>-t-14,zA[A|256]=1024>>-t-14|32768,VA[A]=-t-1,VA[A|256]=-t-1):t<=15?(zA[A]=t+15<<10,zA[A|256]=t+15<<10|32768,VA[A]=13,VA[A|256]=13):t<128?(zA[A]=31744,zA[A|256]=64512,VA[A]=24,VA[A|256]=24):(zA[A]=31744,zA[A|256]=64512,VA[A]=13,VA[A|256]=13)}var Xg=new pi(2048);for(let A=1;A<1024;++A){let t=A<<13,e=0;for(;(t&8388608)===0;)t<<=1,e-=8388608;t&=-8388609,e+=947912704,Xg[A]=t|e}for(let A=1024;A<2048;++A)Xg[A]=939524096+(A-1024<<13);var Zt=new pi(64);for(let A=1;A<31;++A)Zt[A]=A<<23;Zt[31]=1199570944;Zt[32]=2147483648;for(let A=33;A<63;++A)Zt[A]=2147483648+(A-32<<23);Zt[63]=3347054592;var is=new Zg(64);for(let A=1;A<64;++A)A!==32&&(is[A]=1024);function gs(A){let t=A>>10;return VC[0]=Xg[is[t]+(A&1023)]+Zt[t],zC[0]}function Ne(A,t,...e){return gs(Va(A,t,...As(e)))}function pe(A,t,e){let i=e&&e.debug||!1;i&&console.log("[xml-utils] getting "+t+" in "+A);let g=typeof A=="object"?A.outer:A,I=g.slice(0,g.indexOf(">")+1),r=[\'"\',"\'"];for(let a=0;a<r.length;a++){let o=r[a],s=t+"\\\\="+o+"([^"+o+"]*)"+o;i&&console.log("[xml-utils] pattern:",s);let E=new RegExp(s).exec(I);if(i&&console.log("[xml-utils] match:",E),E)return E[1]}}function $g(A,t,e){let g=new RegExp(t).exec(A.slice(e));return g?e+g.index:-1}function _e(A,t,e){let g=new RegExp(t).exec(A.slice(e));return g?e+g.index+g[0].length-1:-1}function Fi(A,t){let e=new RegExp(t,"g"),i=A.match(e);return i?i.length:0}function AI(A,t,e){let i=e&&e.debug||!1,g=!(e&&typeof e.nested===!1),I=e&&e.startIndex||0;i&&console.log("[xml-utils] starting findTagByName with",t," and ",e);let r=$g(A,`<${t}[ \n>/]`,I);if(i&&console.log("[xml-utils] start:",r),r===-1)return;let a=A.slice(r+t.length),o=_e(a,"^[^<]*[ /]>",0),s=o!==-1&&a[o-1]==="/";if(i&&console.log("[xml-utils] selfClosing:",s),s===!1)if(g){let C=0,h=1,Q=0;for(;(o=_e(a,"[ /]"+t+">",C))!==-1;){let l=a.substring(C,o+1);if(h+=Fi(l,"<"+t+`[ \n >]`),Q+=Fi(l,"</"+t+">"),Q>=h)break;C=o}}else o=_e(a,"[ /]"+t+">",0);let n=r+t.length+o+1;if(i&&console.log("[xml-utils] end:",n),n===-1)return;let E=A.slice(r,n),B;return s?B=null:B=E.slice(E.indexOf(">")+1,E.lastIndexOf("<")),{inner:B,outer:E,start:r,end:n}}function tI(A,t,e){let i=[],g=e&&e.debug||!1,I=e&&typeof e.nested=="boolean"?e.nested:!0,r=e&&e.startIndex||0,a;for(;a=AI(A,t,{debug:g,startIndex:r});)I?r=a.start+1+t.length:r=a.end,i.push(a);return g&&console.log("findTagsByName found",i.length,"tags"),i}Re();function os(A,t){let{width:e,height:i}=A,g=new Uint8Array(e*i*3),I;for(let r=0,a=0;r<A.length;++r,a+=3)I=256-A[r]/t*256,g[a]=I,g[a+1]=I,g[a+2]=I;return g}function ns(A,t){let{width:e,height:i}=A,g=new Uint8Array(e*i*3),I;for(let r=0,a=0;r<A.length;++r,a+=3)I=A[r]/t*256,g[a]=I,g[a+1]=I,g[a+2]=I;return g}function Cs(A,t){let{width:e,height:i}=A,g=new Uint8Array(e*i*3),I=t.length/3,r=t.length/3*2;for(let a=0,o=0;a<A.length;++a,o+=3){let s=A[a];g[o]=t[s]/65536*256,g[o+1]=t[s+I]/65536*256,g[o+2]=t[s+r]/65536*256}return g}function Bs(A){let{width:t,height:e}=A,i=new Uint8Array(t*e*3);for(let g=0,I=0;g<A.length;g+=4,I+=3){let r=A[g],a=A[g+1],o=A[g+2],s=A[g+3];i[I]=255*((255-r)/256)*((255-s)/256),i[I+1]=255*((255-a)/256)*((255-s)/256),i[I+2]=255*((255-o)/256)*((255-s)/256)}return i}function Es(A){let{width:t,height:e}=A,i=new Uint8ClampedArray(t*e*3);for(let g=0,I=0;g<A.length;g+=3,I+=3){let r=A[g],a=A[g+1],o=A[g+2];i[I]=r+1.402*(o-128),i[I+1]=r-.34414*(a-128)-.71414*(o-128),i[I+2]=r+1.772*(a-128)}return i}var AB=.95047,tB=1,eB=1.08883;function hs(A){let{width:t,height:e}=A,i=new Uint8Array(t*e*3);for(let g=0,I=0;g<A.length;g+=3,I+=3){let r=A[g+0],a=A[g+1]<<24>>24,o=A[g+2]<<24>>24,s=(r+16)/116,n=a/500+s,E=s-o/200,B,C,h;n=AB*(n*n*n>.008856?n*n*n:(n-16/116)/7.787),s=tB*(s*s*s>.008856?s*s*s:(s-16/116)/7.787),E=eB*(E*E*E>.008856?E*E*E:(E-16/116)/7.787),B=n*3.2406+s*-1.5372+E*-.4986,C=n*-.9689+s*1.8758+E*.0415,h=n*.0557+s*-.204+E*1.057,B=B>.0031308?1.055*B**(1/2.4)-.055:12.92*B,C=C>.0031308?1.055*C**(1/2.4)-.055:12.92*C,h=h>.0031308?1.055*h**(1/2.4)-.055:12.92*h,i[I]=Math.max(0,Math.min(1,B))*255,i[I+1]=Math.max(0,Math.min(1,C))*255,i[I+2]=Math.max(0,Math.min(1,h))*255}return i}var Ai=new Map;async function og(A){let t=!A.hasTag("StripOffsets");return{tileWidth:t?await A.loadValue("TileWidth"):await A.loadValue("ImageWidth"),tileHeight:t?await A.loadValue("TileLength"):await A.loadValue("RowsPerStrip")||await A.loadValue("ImageLength"),planarConfiguration:await A.loadValue("PlanarConfiguration"),bitsPerSample:await A.loadValue("BitsPerSample"),predictor:await A.loadValue("Predictor")||1}}function ng(A,t,e=og,i=!0){Array.isArray(A)||(A=[A]),A.forEach(g=>{Ai.set(g,{importFn:t,decoderParameterFn:e,preferWorker:i})})}async function so(A,t){if(!Ai.has(A))throw new Error(`Unknown compression method identifier: ${A}`);let{decoderParameterFn:e}=Ai.get(A);return e(t)}async function TI(A,t){if(!Ai.has(A))throw new Error(`Unknown compression method identifier: ${A}`);let{importFn:e}=Ai.get(A),i=await e();return new i(t)}var Jh=[{cases:[void 0,1],importFn:()=>Promise.resolve().then(()=>(cs(),fs)).then(A=>A.default),preferWorker:!1},{cases:5,importFn:()=>Promise.resolve().then(()=>(ws(),ds)).then(A=>A.default)},{cases:6,importFn:()=>{throw new Error("old style JPEG compression is not supported.")}},{cases:7,importFn:()=>Promise.resolve().then(()=>(Ss(),Ds)).then(A=>A.default),decoderParameterFn:async A=>({...await og(A),JPEGTables:await A.loadValue("JPEGTables")})},{cases:[8,32946],importFn:()=>Promise.resolve().then(()=>(qr(),Pr)).then(A=>A.default)},{cases:32773,importFn:()=>Promise.resolve().then(()=>(jr(),Or)).then(A=>A.default)},{cases:34887,importFn:()=>Promise.resolve().then(()=>(Ao(),$r)).then(async A=>(await A.zstd.init(),A)).then(A=>A.default),decoderParameterFn:async A=>({...await og(A),LercParameters:await A.loadValue("LercParameters")})},{cases:5e4,importFn:()=>Promise.resolve().then(()=>(go(),io)).then(async A=>(await A.zstd.init(),A)).then(A=>A.default)},{cases:50001,importFn:()=>Promise.resolve().then(()=>(ao(),Io)).then(A=>A.default),decoderParameterFn:async A=>({...await og(A),samplesPerPixel:Number(await A.loadValue("SamplesPerPixel"))||4}),preferWorker:!1}];for(let A of Jh){let{cases:t,importFn:e,decoderParameterFn:i,preferWorker:g}=A;ng(t,e,i,g)}function Cg(A,t,e,i=1){return new(Object.getPrototypeOf(A)).constructor(t*e*i)}function Ph(A,t,e,i,g){let I=t/i,r=e/g;return A.map(a=>{let o=Cg(a,i,g);for(let s=0;s<g;++s){let n=Math.min(Math.round(r*s),e-1);for(let E=0;E<i;++E){let B=Math.min(Math.round(I*E),t-1),C=a[n*t+B];o[s*i+E]=C}}return o})}function re(A,t,e){return(1-e)*A+e*t}function qh(A,t,e,i,g){let I=t/i,r=e/g;return A.map(a=>{let o=Cg(a,i,g);for(let s=0;s<g;++s){let n=r*s,E=Math.floor(n),B=Math.min(Math.ceil(n),e-1);for(let C=0;C<i;++C){let h=I*C,Q=h%1,l=Math.floor(h),c=Math.min(Math.ceil(h),t-1),w=a[E*t+l],D=a[E*t+c],y=a[B*t+l],f=a[B*t+c],u=re(re(w,D,Q),re(y,f,Q),n%1);o[s*i+C]=u}}return o})}function ro(A,t,e,i,g,I="nearest"){switch(I.toLowerCase()){case"nearest":return Ph(A,t,e,i,g);case"bilinear":case"linear":return qh(A,t,e,i,g);default:throw new Error(`Unsupported resampling method: \'${I}\'`)}}function Oh(A,t,e,i,g,I){let r=t/i,a=e/g,o=Cg(A,i,g,I);for(let s=0;s<g;++s){let n=Math.min(Math.round(a*s),e-1);for(let E=0;E<i;++E){let B=Math.min(Math.round(r*E),t-1);for(let C=0;C<I;++C){let h=A[n*t*I+B*I+C];o[s*i*I+E*I+C]=h}}}return o}function jh(A,t,e,i,g,I){let r=t/i,a=e/g,o=Cg(A,i,g,I);for(let s=0;s<g;++s){let n=a*s,E=Math.floor(n),B=Math.min(Math.ceil(n),e-1);for(let C=0;C<i;++C){let h=r*C,Q=h%1,l=Math.floor(h),c=Math.min(Math.ceil(h),t-1);for(let w=0;w<I;++w){let D=A[E*t*I+l*I+w],y=A[E*t*I+c*I+w],f=A[B*t*I+l*I+w],u=A[B*t*I+c*I+w],d=re(re(D,y,Q),re(f,u,Q),n%1);o[s*i*I+C*I+w]=d}}}return o}function oo(A,t,e,i,g,I,r="nearest"){switch(r.toLowerCase()){case"nearest":return Oh(A,t,e,i,g,I);case"bilinear":case"linear":return jh(A,t,e,i,g,I);default:throw new Error(`Unsupported resampling method: \'${r}\'`)}}function Zh(A,t,e){let i=0;for(let g=t;g<e;++g)i+=A[g];return i}function JI(A,t,e){let i;switch(A){case 1:t<=8?i=Uint8Array:t<=16?i=Uint16Array:t<=32&&(i=Uint32Array);break;case 2:t===8?i=Int8Array:t===16?i=Int16Array:t===32&&(i=Int32Array);break;case 3:switch(t){case 16:case 32:i=Float32Array;break;case 64:i=Float64Array;break;default:break}break;default:break}if(i){if(typeof e=="number")return new i(e);if(e instanceof ArrayBuffer)return new i(e)}throw Error("Unsupported data format/bitsPerSample")}function zh(A,t){return(A===1||A===2)&&t<=32&&t%8===0?!1:!(A===3&&(t===16||t===32||t===64))}function Vh(A,t,e,i,g,I,r){let a=new DataView(A),o=e===2?r*I:r*I*i,s=e===2?1:i,n=JI(t,g,o),E=parseInt("1".repeat(g),2);if(t===1){let B;e===1?B=i*g:B=g;let C=I*B;(C&7)!==0&&(C=C+7&-8);for(let h=0;h<r;++h){let Q=h*C;for(let l=0;l<I;++l){let c=Q+l*s*g;for(let w=0;w<s;++w){let D=c+w*g,y=(h*I+l)*s+w,f=Math.floor(D/8),u=D%8;if(u+g<=8)n[y]=a.getUint8(f)>>8-g-u&E;else if(u+g<=16)n[y]=a.getUint16(f)>>16-g-u&E;else if(u+g<=24){let d=a.getUint16(f)<<8|a.getUint8(f+2);n[y]=d>>24-g-u&E}else n[y]=a.getUint32(f)>>32-g-u&E}}}}return n.buffer}var PI=class{constructor(t,e,i,g){this.fileDirectory=t,this.littleEndian=e,this.tiles=i?[]:null,this.isTiled=!t.hasTag("StripOffsets");let I=t.getValue("PlanarConfiguration")??1;if(I!==1&&I!==2)throw new Error("Invalid planar configuration.");this.planarConfiguration=I,this.source=g}getFileDirectory(){return this.fileDirectory}getGeoKeys(){return this.fileDirectory.parseGeoKeyDirectory()}getWidth(){return this.fileDirectory.getValue("ImageWidth")||0}getHeight(){return this.fileDirectory.getValue("ImageLength")||0}getSamplesPerPixel(){return this.fileDirectory.getValue("SamplesPerPixel")??1}getTileWidth(){return this.isTiled?this.fileDirectory.getValue("TileWidth")||0:this.getWidth()}getTileHeight(){if(this.isTiled)return this.fileDirectory.getValue("TileLength")||0;let t=this.fileDirectory.hasTag("RowsPerStrip")&&this.fileDirectory.getValue("RowsPerStrip");return t?Math.min(t,this.getHeight()):this.getHeight()}getBlockWidth(){return this.getTileWidth()}getBlockHeight(t){return this.isTiled||(t+1)*this.getTileHeight()<=this.getHeight()?this.getTileHeight():this.getHeight()-t*this.getTileHeight()}getBytesPerPixel(){let t=0,e=this.fileDirectory.getValue("BitsPerSample")||[];for(let i=0;i<e.length;++i)t+=this.getSampleByteSize(i);return t}getSampleByteSize(t){let e=this.fileDirectory.getValue("BitsPerSample")||[];if(t>=e.length)throw new RangeError(`Sample index ${t} is out of range.`);return Math.ceil(e[t]/8)}getReaderForSample(t){let e=this.fileDirectory.getValue("SampleFormat"),i=e?e[t]:1,g=(this.fileDirectory.getValue("BitsPerSample")||[])[t];switch(i){case 1:if(g<=8)return DataView.prototype.getUint8;if(g<=16)return DataView.prototype.getUint16;if(g<=32)return DataView.prototype.getUint32;break;case 2:if(g<=8)return DataView.prototype.getInt8;if(g<=16)return DataView.prototype.getInt16;if(g<=32)return DataView.prototype.getInt32;break;case 3:switch(g){case 16:return function(I,r){return Ne(this,I,r)};case 32:return DataView.prototype.getFloat32;case 64:return DataView.prototype.getFloat64;default:break}break;default:break}throw Error("Unsupported data format/bitsPerSample")}getSampleFormat(t=0){let e=this.fileDirectory.getValue("SampleFormat");return e?e[t]:1}getBitsPerSample(t=0){let e=this.fileDirectory.getValue("BitsPerSample");return e?e[t]:0}getArrayForSample(t,e){let i=this.getSampleFormat(t),g=this.getBitsPerSample(t);return JI(i,g,e)}async getTileOrStrip(t,e,i,g,I){let r=Math.ceil(this.getWidth()/this.getTileWidth()),a=Math.ceil(this.getHeight()/this.getTileHeight()),o,{tiles:s}=this;if(this.planarConfiguration===1?o=e*r+t:this.planarConfiguration===2&&(o=i*r*a+e*r+t),o===void 0)throw new Error("Could not determine tile or strip index.");let n,E;if(this.isTiled?(n=Number(await this.fileDirectory.loadValueIndexed("TileOffsets",o)),E=Number(await this.fileDirectory.loadValueIndexed("TileByteCounts",o))):(n=Number(await this.fileDirectory.loadValueIndexed("StripOffsets",o)),E=Number(await this.fileDirectory.loadValueIndexed("StripByteCounts",o))),E===0){let h=this.getBlockHeight(e)*this.getTileWidth(),Q=this.planarConfiguration===2?this.getSampleByteSize(i):this.getBytesPerPixel(),l=new ArrayBuffer(h*Q);return this.getArrayForSample(i,l).fill(this.getGDALNoData()||0),{x:t,y:e,sample:i,data:l}}let B=(await this.source.fetch([{offset:n,length:E}],I))[0],C;return s===null||!s[o]?(C=(async()=>{let h=await g.decode(B),Q=this.getSampleFormat(),l=this.getBitsPerSample();return zh(Q,l)&&(h=Vh(h,Q,this.planarConfiguration,this.getSamplesPerPixel(),l,this.getTileWidth(),this.getBlockHeight(e))),h})(),s!==null&&(s[o]=C)):C=s[o],{x:t,y:e,sample:i,data:await C}}async _readRaster(t,e,i,g,I,r,a,o,s){let n=this.getTileWidth(),E=this.getTileHeight(),B=this.getWidth(),C=this.getHeight(),h=Math.max(Math.floor(t[0]/n),0),Q=Math.min(Math.ceil(t[2]/n),Math.ceil(B/n)),l=Math.max(Math.floor(t[1]/E),0),c=Math.min(Math.ceil(t[3]/E),Math.ceil(C/E)),w=t[2]-t[0],D=this.getBytesPerPixel(),y=[],f=[];for(let M=0;M<e.length;++M){if(this.planarConfiguration===1){let m=await this.fileDirectory.loadValue("BitsPerSample");if(typeof m!="object")throw new Error("Expected BitsPerSample to be an array or typed array.");y.push(Zh(m,0,e[M])/8)}else y.push(0);f.push(this.getReaderForSample(e[M]))}let u=[],{littleEndian:d}=this;for(let M=l;M<c;++M)for(let m=h;m<Q;++m){let _;this.planarConfiguration===1&&(_=this.getTileOrStrip(m,M,0,I,s));for(let k=0;k<e.length;++k){let v=k,L=e[k];if(this.planarConfiguration===2&&(D=this.getSampleByteSize(L),_=this.getTileOrStrip(m,M,L,I,s)),!_)throw new Error("Could not get tile or strip data.");let p=_.then(U=>{let J=U.data,x=new DataView(J),b=this.getBlockHeight(U.y),Y=U.y*E,q=U.x*n,W=Y+b,AA=(U.x+1)*n,K=f[v],T=Math.min(b,b-(W-t[3]),C-Y),H=Math.min(n,n-(AA-t[2]),B-q);for(let j=Math.max(0,t[1]-Y);j<T;++j)for(let V=Math.max(0,t[0]-q);V<H;++V){let sA=(j*n+V)*D,nA=K.call(x,sA+y[v],d),O;g?(O=(j+Y-t[1])*w*e.length+(V+q-t[0])*e.length+v,i[O]=nA):(O=(j+Y-t[1])*w+V+q-t[0],i[v][O]=nA)}});u.push(p)}}if(await Promise.all(u),r&&t[2]-t[0]!==r||a&&t[3]-t[1]!==a){let M;g?M=oo(i,t[2]-t[0],t[3]-t[1],r,a,e.length,o):M=ro(i,t[2]-t[0],t[3]-t[1],r,a,o);let m=M;return m.width=r??t[2]-t[0],m.height=a??t[3]-t[1],m}let G=i;return G.width=r||t[2]-t[0],G.height=a||t[3]-t[1],G}async readRasters(t={}){let{window:e,samples:i=[],pool:g=null,width:I,height:r,resampleMethod:a,fillValue:o,signal:s}=t,n="interleave"in t&&t.interleave,E=e||[0,0,this.getWidth(),this.getHeight()];if(E[0]>E[2]||E[1]>E[3])throw new Error("Invalid subsets");let B=E[2]-E[0],C=E[3]-E[1],h=B*C,Q=this.getSamplesPerPixel();if(!i||!i.length)for(let f=0;f<Q;++f)i.push(f);else for(let f=0;f<i.length;++f)if(i[f]>=Q)return Promise.reject(new RangeError(`Invalid sample index \'${i[f]}\'.`));let l;if(n){let{fileDirectory:f}=this,u=f.getValue("SampleFormat"),d=u?Math.max.apply(null,Array.from(u)):1;if(d!==1&&d!==2&&d!==3)throw new Error("Unsupported sample format for interleaved data. Must be 1, 2, or 3.");let G=f.getValue("BitsPerSample"),M=G?Math.max.apply(null,Array.from(G)):8;if(l=JI(d,M,h*i.length),o){if(Array.isArray(o))throw new Error("When reading interleaved data, fillValue must be a single number.");l.fill(o)}}else{l=[];for(let f=0;f<i.length;++f){let u=this.getArrayForSample(i[f],h);Array.isArray(o)&&f<o.length?u.fill(o[f]):o&&!Array.isArray(o)&&u.fill(o),l.push(u)}}let c=this.fileDirectory.getValue("Compression")||1,w=await so(c,this.fileDirectory),D=g?g.bindParameters(c,w):await TI(c,w);return await this._readRaster(E,i,l,n,D,I,r,a,s)}async readRGB(t={}){let{window:e,pool:i=null,width:g,height:I,resampleMethod:r,enableAlpha:a=!1,signal:o}=t,s=("interleave"in t&&t.interleave)??!1,n=e||[0,0,this.getWidth(),this.getHeight()];if(n[0]>n[2]||n[1]>n[3])throw new Error("Invalid subsets");let E=this.fileDirectory.getValue("PhotometricInterpretation");if(E===NA.RGB){let D=[0,1,2],y=this.fileDirectory.getValue("ExtraSamples");if(y&&y[0]!==ss.Unspecified&&a){D=[];let f=this.fileDirectory.getValue("BitsPerSample")||[];for(let u=0;u<f.length;u+=1)D.push(u)}return this.readRasters({window:e,interleave:s,samples:D,pool:i,width:g,height:I,resampleMethod:r,signal:o})}let B;switch(E){case NA.WhiteIsZero:case NA.BlackIsZero:case NA.Palette:B=[0];break;case NA.CMYK:B=[0,1,2,3];break;case NA.YCbCr:case NA.CIELab:B=[0,1,2];break;default:throw new Error("Invalid or unsupported photometric interpretation.")}let C={window:n,interleave:!0,samples:B,pool:i,width:g,height:I,resampleMethod:r,signal:o},{fileDirectory:h}=this,Q=await this.readRasters(C),l=2**this.getBitsPerSample(0),c;switch(E){case NA.WhiteIsZero:c=os(Q,l);break;case NA.BlackIsZero:c=ns(Q,l);break;case NA.Palette:c=Cs(Q,await h.loadValue("ColorMap"));break;case NA.CMYK:c=Bs(Q);break;case NA.YCbCr:c=Es(Q);break;case NA.CIELab:c=hs(Q);break;default:throw new Error("Unsupported photometric interpretation.")}if(!s){let D=new Uint8Array(c.length/3),y=new Uint8Array(c.length/3),f=new Uint8Array(c.length/3);for(let u=0,d=0;u<c.length;u+=3,++d)D[d]=c[u],y[d]=c[u+1],f[d]=c[u+2];c=[D,y,f]}let w=c;return w.width=Q.width,w.height=Q.height,w}async getTiePoints(){if(!this.fileDirectory.hasTag("ModelTiepoint"))return[];let t=await this.fileDirectory.loadValue("ModelTiepoint");if(typeof t!="object")throw new Error("Expected ModelTiepoint to be an array or typed array.");let e=[];for(let i=0;i<t.length;i+=6)e.push({i:t[i],j:t[i+1],k:t[i+2],x:t[i+3],y:t[i+4],z:t[i+5]});return e}async getGDALMetadata(t=null){let e={};if(!this.fileDirectory.hasTag("GDAL_METADATA"))return null;let i=await this.fileDirectory.loadValue("GDAL_METADATA"),g=tI(i,"Item");t===null?g=g.filter(I=>pe(I,"sample")===void 0):g=g.filter(I=>Number(pe(I,"sample"))===t);for(let I=0;I<g.length;++I){let r=g[I];e[pe(r,"name")]=r.inner}return e}getGDALNoData(){let t=this.fileDirectory.hasTag("GDAL_NODATA")&&this.fileDirectory.getValue("GDAL_NODATA");return t?Number(t.substring(0,t.length-1)):null}getOrigin(){let t=this.fileDirectory.getValue("ModelTiepoint"),e=this.fileDirectory.getValue("ModelTransformation");if(t&&t.length===6)return[t[3],t[4],t[5]];if(e)return[e[3],e[7],e[11]];throw new Error("The image does not have an affine transformation.")}getResolution(t=null){let e=this.fileDirectory.getValue("ModelPixelScale"),i=this.fileDirectory.getValue("ModelTransformation");if(e)return[e[0],-e[1],e[2]];if(i)return i[1]===0&&i[4]===0?[i[0],-i[5],i[10]]:[Math.sqrt(i[0]*i[0]+i[4]*i[4]),-Math.sqrt(i[1]*i[1]+i[5]*i[5]),i[10]];if(t){let[g,I,r]=t.getResolution();return[g*t.getWidth()/this.getWidth(),I*t.getHeight()/this.getHeight(),r*t.getWidth()/this.getWidth()]}throw new Error("The image does not have an affine transformation.")}pixelIsArea(){return this.getGeoKeys()?.GTRasterTypeGeoKey===1}getBoundingBox(t=!1){let e=this.getHeight(),i=this.getWidth(),g=this.fileDirectory.getValue("ModelTransformation");if(g&&!t){let[I,r,,a,o,s,,n]=g,B=[[0,0],[0,e],[i,0],[i,e]].map(([Q,l])=>[a+I*Q+r*l,n+o*Q+s*l]),C=B.map(Q=>Q[0]),h=B.map(Q=>Q[1]);return[Math.min(...C),Math.min(...h),Math.max(...C),Math.max(...h)]}else{let I=this.getOrigin(),r=this.getResolution(),a=I[0],o=I[1],s=a+r[0]*i,n=o+r[1]*e;return[Math.min(a,s),Math.min(o,n),Math.max(a,s),Math.max(o,n)]}}},no=PI;var ti=class{constructor(t){this._dataView=new DataView(t)}get buffer(){return this._dataView.buffer}getUint64(t,e){let i=this.getUint32(t,e),g=this.getUint32(t+4,e),I;if(e){if(I=i+2**32*g,!Number.isSafeInteger(I))throw new Error(`${I} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return I}if(I=2**32*i+g,!Number.isSafeInteger(I))throw new Error(`${I} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return I}getInt64(t,e){let i=0,g=(this._dataView.getUint8(t+(e?7:0))&128)>0,I=!0;for(let r=0;r<8;r++){let a=this._dataView.getUint8(t+(e?r:7-r));g&&(I?a!==0&&(a=~(a-1)&255,I=!1):a=~a&255),i+=a*256**r}return g&&(i=-i),i}getUint8(t){return this._dataView.getUint8(t)}getInt8(t){return this._dataView.getInt8(t)}getUint16(t,e){return this._dataView.getUint16(t,e)}getInt16(t,e){return this._dataView.getInt16(t,e)}getUint32(t,e){return this._dataView.getUint32(t,e)}getInt32(t,e){return this._dataView.getInt32(t,e)}getFloat16(t,e){return Ne(this._dataView,t,e)}getFloat32(t,e){return this._dataView.getFloat32(t,e)}getFloat64(t,e){return this._dataView.getFloat64(t,e)}};var Ct=class{constructor(t,e,i,g){this._dataView=new DataView(t),this._sliceOffset=e,this._littleEndian=i,this._bigTiff=g}get sliceOffset(){return this._sliceOffset}get sliceTop(){return this._sliceOffset+this.buffer.byteLength}get littleEndian(){return this._littleEndian}get bigTiff(){return this._bigTiff}get buffer(){return this._dataView.buffer}covers(t,e){return this.sliceOffset<=t&&this.sliceTop>=t+e}readUint8(t){return this._dataView.getUint8(t-this._sliceOffset)}readInt8(t){return this._dataView.getInt8(t-this._sliceOffset)}readUint16(t){return this._dataView.getUint16(t-this._sliceOffset,this._littleEndian)}readInt16(t){return this._dataView.getInt16(t-this._sliceOffset,this._littleEndian)}readUint32(t){return this._dataView.getUint32(t-this._sliceOffset,this._littleEndian)}readInt32(t){return this._dataView.getInt32(t-this._sliceOffset,this._littleEndian)}readFloat32(t){return this._dataView.getFloat32(t-this._sliceOffset,this._littleEndian)}readFloat64(t){return this._dataView.getFloat64(t-this._sliceOffset,this._littleEndian)}readUint64(t){let e=this.readUint32(t),i=this.readUint32(t+4),g;if(this._littleEndian){if(g=e+2**32*i,!Number.isSafeInteger(g))throw new Error(`${g} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return g}if(g=2**32*e+i,!Number.isSafeInteger(g))throw new Error(`${g} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return g}readInt64(t){let e=0,i=(this._dataView.getUint8(t+(this._littleEndian?7:0))&128)>0,g=!0;for(let I=0;I<8;I++){let r=this._dataView.getUint8(t+(this._littleEndian?I:7-I));i&&(g?r!==0&&(r=~(r-1)&255,g=!1):r=~r&255),e+=r*256**I}return i&&(e=-e),e}readOffset(t){return this._bigTiff?this.readUint64(t):this.readUint32(t)}};var Co=`\\r\n\\r\n`;function Bo(A){if(typeof Object.fromEntries<"u")return Object.fromEntries(A);let t={};for(let[e,i]of A)t[e.toLowerCase()]=i;return t}function Wh(A){let t=A.split(`\\r\n`).map(e=>{let i=e.split(":").map(g=>g.trim());return i[0]=i[0].toLowerCase(),i});return Bo(t)}function Eo(A){if(!A)return{type:null,params:{}};let[t,...e]=A.split(";").map(g=>g.trim()),i=e.map(g=>g.split("="));return{type:t,params:Bo(i)}}function Bg(A){let t=NaN,e=NaN,i=NaN;return A&&([,t,e,i]=(A.match(/bytes (\\d+)-(\\d+)\\/(\\d+)/)||[]).map(Number)),{start:t,end:e,total:i}}function ho(A,t){let e=-1,i=new TextDecoder("ascii"),g=[],I=`--${t}`,r=`${I}--`;for(let a=0;a<10;++a)i.decode(new Uint8Array(A,a,I.length))===I&&(e=a);if(e===-1)throw new Error("Could not find initial boundary");for(;e<A.byteLength;){let a=i.decode(new Uint8Array(A,e,Math.min(I.length+1024,A.byteLength-e)));if(a.length===0||a.startsWith(r))break;if(!a.startsWith(I))throw new Error("Part does not start with boundary");let o=a.substr(I.length+2);if(o.length===0)break;let s=o.indexOf(Co),n=Wh(o.substr(0,s)),{start:E,end:B,total:C}=Bg(n["content-range"]),h=e+I.length+s+Co.length,Q=B+1-E;g.push({headers:n,data:A.slice(h,h+Q),offset:E,length:Q,fileSize:C}),e=h+Q+4}return g}var oe=class{async fetch(t,e){return Promise.all(t.map(async i=>(await this.fetchSlice(i,e)).data))}async fetchSlice(t,e){throw new Error(`fetching of slice ${t} not possible, not implemented`)}get fileSize(){return null}async close(){}};var ei=class extends Map{constructor(t={}){if(super(),!(t.maxSize&&t.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if(typeof t.maxAge=="number"&&t.maxAge===0)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=t.maxSize,this.maxAge=t.maxAge||Number.POSITIVE_INFINITY,this.onEviction=t.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(t){if(typeof this.onEviction=="function")for(let[e,i]of t)this.onEviction(e,i.value)}_deleteIfExpired(t,e){return typeof e.expiry=="number"&&e.expiry<=Date.now()?(typeof this.onEviction=="function"&&this.onEviction(t,e.value),this.delete(t)):!1}_getOrDeleteIfExpired(t,e){if(this._deleteIfExpired(t,e)===!1)return e.value}_getItemValue(t,e){return e.expiry?this._getOrDeleteIfExpired(t,e):e.value}_peek(t,e){let i=e.get(t);return this._getItemValue(t,i)}_set(t,e){this.cache.set(t,e),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(t,e){this.oldCache.delete(t),this._set(t,e)}*_entriesAscending(){for(let t of this.oldCache){let[e,i]=t;this.cache.has(e)||this._deleteIfExpired(e,i)===!1&&(yield t)}for(let t of this.cache){let[e,i]=t;this._deleteIfExpired(e,i)===!1&&(yield t)}}get(t){if(this.cache.has(t)){let e=this.cache.get(t);return this._getItemValue(t,e)}if(this.oldCache.has(t)){let e=this.oldCache.get(t);if(this._deleteIfExpired(t,e)===!1)return this._moveToRecent(t,e),e.value}}set(t,e,{maxAge:i=this.maxAge}={}){let g=typeof i=="number"&&i!==Number.POSITIVE_INFINITY?Date.now()+i:void 0;return this.cache.has(t)?this.cache.set(t,{value:e,expiry:g}):this._set(t,{value:e,expiry:g}),this}has(t){return this.cache.has(t)?!this._deleteIfExpired(t,this.cache.get(t)):this.oldCache.has(t)?!this._deleteIfExpired(t,this.oldCache.get(t)):!1}peek(t){if(this.cache.has(t))return this._peek(t,this.cache);if(this.oldCache.has(t))return this._peek(t,this.oldCache)}delete(t){let e=this.cache.delete(t);return e&&this._size--,this.oldCache.delete(t)||e}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(t){if(!(t&&t>0))throw new TypeError("`maxSize` must be a number greater than 0");let e=[...this._entriesAscending()],i=e.length-t;i<0?(this.cache=new Map(e),this.oldCache=new Map,this._size=e.length):(i>0&&this._emitEvictions(e.slice(0,i)),this.oldCache=new Map(e.slice(i)),this.cache=new Map,this._size=0),this.maxSize=t}*keys(){for(let[t]of this)yield t}*values(){for(let[,t]of this)yield t}*[Symbol.iterator](){for(let t of this.cache){let[e,i]=t;this._deleteIfExpired(e,i)===!1&&(yield[e,i.value])}for(let t of this.oldCache){let[e,i]=t;this.cache.has(e)||this._deleteIfExpired(e,i)===!1&&(yield[e,i.value])}}*entriesDescending(){let t=[...this.cache];for(let e=t.length-1;e>=0;--e){let i=t[e],[g,I]=i;this._deleteIfExpired(g,I)===!1&&(yield[g,I.value])}t=[...this.oldCache];for(let e=t.length-1;e>=0;--e){let i=t[e],[g,I]=i;this.cache.has(g)||this._deleteIfExpired(g,I)===!1&&(yield[g,I.value])}}*entriesAscending(){for(let[t,e]of this._entriesAscending())yield[t,e.value]}get size(){if(!this._size)return this.oldCache.size;let t=0;for(let e of this.oldCache.keys())this.cache.has(e)||t++;return Math.min(this._size+t,this.maxSize)}entries(){return this.entriesAscending()}forEach(t,e=this){for(let[i,g]of this.entriesAscending())t.call(e,g,i,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}};async function Qo(A){return new Promise(t=>setTimeout(t,A))}function lo(A,t){let e=Array.isArray(A)?A:Array.from(A),i=Array.isArray(t)?t:Array.from(t);return e.map((g,I)=>[g,i[I]])}var it=class A extends Error{constructor(...t){super(...t),Error.captureStackTrace&&Error.captureStackTrace(this,A),this.name="AbortError",this.signal=void 0}},qI=class extends Error{constructor(t,e){super(e),this.errors=t,this.message=e,this.name="AggregateError"}},fo=qI;var OI=class{constructor(t,e,i){this.offset=t,this.length=e,this.data=i}get top(){return this.offset+this.length}},Eg=class{constructor(t,e,i){this.offset=t,this.length=e,this.blockIds=i}},hg=class extends oe{constructor(t,{blockSize:e=65536,cacheSize:i=100}={}){super(),this.source=t,this.blockSize=e,this.blockCache=new ei({maxSize:i,onEviction:(g,I)=>{this.evictedBlocks.set(g,I)}}),this.evictedBlocks=new Map,this.blockRequests=new Map,this.blockIdsToFetch=new Set,this.abortedBlockIds=new Set}get fileSize(){return this.source.fileSize}async fetch(t,e){let i=[],g=[],I=[];this.evictedBlocks.clear();for(let{offset:B,length:C}of t){let h=B+C,{fileSize:Q}=this;Q!==null&&(h=Math.min(h,Q));let l=Math.floor(B/this.blockSize)*this.blockSize;for(let c=l;c<h;c+=this.blockSize){let w=Math.floor(c/this.blockSize);!this.blockCache.has(w)&&!this.blockRequests.has(w)&&(this.blockIdsToFetch.add(w),g.push(w)),this.blockRequests.has(w)&&i.push(this.blockRequests.get(w)),I.push(w)}}await Qo(),this.fetchBlocks(e);let r=[];for(let B of g)this.blockRequests.has(B)&&r.push(this.blockRequests.get(B));await Promise.allSettled(i),await Promise.allSettled(r);let a=[],o=I.filter(B=>this.abortedBlockIds.has(B)||!this.blockCache.has(B));if(o.forEach(B=>this.blockIdsToFetch.add(B)),o.length>0&&e&&!e.aborted){this.fetchBlocks();for(let B of o){let C=this.blockRequests.get(B);if(!C)throw new Error(`Block ${B} is not in the block requests`);a.push(C)}await Promise.allSettled(a)}if(e&&e.aborted)throw new it("Request was aborted");let s=I.map(B=>this.blockCache.get(B)||this.evictedBlocks.get(B)),n=s.filter(B=>!B);if(n.length)throw new fo(n,"Request failed");let E=new Map(lo(I,s));return this.readSliceData(t,E)}fetchBlocks(t){if(this.blockIdsToFetch.size>0){let e=this.groupBlocks(this.blockIdsToFetch),i=e.map(async g=>({...g,...await this.source.fetchSlice(g,t)}));for(let g=0;g<e.length;++g){let I=e[g];for(let r of I.blockIds)this.blockRequests.set(r,(async()=>{try{let a=(await Promise.all(i))[g],o=r*this.blockSize,s=o-a.offset,n=Math.min(s+this.blockSize,a.data.byteLength),E=a.data.slice(s,n),B=new OI(o,E.byteLength,E);this.blockCache.set(r,B),this.abortedBlockIds.delete(r)}catch(a){if(a instanceof it&&a.name==="AbortError")a.signal=t,this.blockCache.delete(r),this.abortedBlockIds.add(r);else throw a}finally{this.blockRequests.delete(r)}})())}this.blockIdsToFetch.clear()}}groupBlocks(t){let e=Array.from(t).sort((r,a)=>r-a);if(e.length===0)return[];let i=[],g=null,I=[];for(let r of e)g===null||g+1===r?(i.push(r),g=r):(I.push(new Eg(i[0]*this.blockSize,i.length*this.blockSize,i)),i=[r],g=r);return I.push(new Eg(i[0]*this.blockSize,i.length*this.blockSize,i)),I}readSliceData(t,e){return t.map(i=>{let g=i.offset+i.length;this.fileSize!==null&&(g=Math.min(this.fileSize,g));let I=Math.floor(i.offset/this.blockSize),r=Math.floor((g-1)/this.blockSize),a=new ArrayBuffer(i.length),o=new Uint8Array(a);for(let s=I;s<=r;++s){let n=e.get(s);if(!n)continue;let E=n.offset-i.offset,B=n.top-g,C=0,h=0,Q;E<0?C=-E:E>0&&(h=E),B<0?Q=n.length-C:Q=g-n.offset-C;let l=new Uint8Array(n.data,C,Q);o.set(l,h)}return a})}};var mt=class{get ok(){return this.status>=200&&this.status<=299}get status(){throw new Error("not implemented")}getHeader(t){throw new Error("not implemented")}async getData(){throw new Error("not implemented")}},Gt=class{constructor(t){this.url=t}async request(t){throw new Error("request is not implemented")}};var jI=class extends mt{constructor(t){super(),this.response=t}get status(){return this.response.status}getHeader(t){return this.response.headers.get(t)||void 0}async getData(){return this.response.arrayBuffer?await this.response.arrayBuffer():(await this.response.buffer()).buffer}},Qg=class extends Gt{constructor(t,e){super(t),this.credentials=e}async request({headers:t,signal:e}={}){let i=await fetch(this.url,{headers:t,credentials:this.credentials,signal:e});return new jI(i)}};var ZI=class extends mt{constructor(t,e){super(),this.xhr=t,this.data=e}get status(){return this.xhr.status}getHeader(t){return this.xhr.getResponseHeader(t)||void 0}async getData(){return this.data}},lg=class extends Gt{constructRequest(t,e){return new Promise((i,g)=>{let I=new XMLHttpRequest;I.open("GET",this.url),I.responseType="arraybuffer";for(let[r,a]of Object.entries(t))I.setRequestHeader(r,a);I.onload=()=>{let r=I.response;i(new ZI(I,r))},I.onerror=g,I.onabort=()=>g(new it("Request aborted")),I.send(),e&&(e.aborted&&I.abort(),e.addEventListener("abort",()=>I.abort()))})}async request({headers:t={},signal:e=void 0}={}){return await this.constructRequest(t,e)}};var yo=yi(co(),1),Do=yi(uo(),1),So=yi(wo(),1);var zI=class extends mt{constructor(t,e){super(),this.response=t,this.dataPromise=e}get status(){return this.response.statusCode}getHeader(t){let e=this.response.headers[t];return Array.isArray(e)?e.join(", "):e}async getData(){return await this.dataPromise}},fg=class extends Gt{constructor(t){super(t),this.parsedUrl=So.default.parse(this.url),this.httpApi=this.parsedUrl.protocol==="http:"?yo.default:Do.default}constructRequest(t,e){return new Promise((i,g)=>{let I=this.httpApi.get({...this.parsedUrl,headers:t},r=>{let a=new Promise(o=>{let s=[];r.on("data",n=>{s.push(n)}),r.on("end",()=>{let n=Buffer.concat(s).buffer;o(n)}),r.on("error",g)});i(new zI(r,a))});I.on("error",g),e&&(e.aborted&&I.destroy(new it("Request aborted")),e.addEventListener("abort",()=>I.destroy(new it("Request aborted"))))})}async request({headers:t={},signal:e=void 0}={}){return await this.constructRequest(t,e)}};var ii=class extends oe{constructor(t,{headers:e,maxRanges:i=0,allowFullFile:g}={}){super(),this.client=t,this.headers=e,this.maxRanges=i,this.allowFullFile=g,this._fileSize=null}async fetch(t,e){return this.maxRanges>=t.length?this.fetchSlices(t,e).then(i=>i.map(g=>g.data)):(this.maxRanges>0&&t.length>1,Promise.all(t.map(async i=>(await this.fetchSlice(i,e)).data)))}async fetchSlices(t,e){let i=await this.client.request({headers:{...this.headers,Range:`bytes=${t.map(({offset:g,length:I})=>`${g}-${g+I-1}`).join(",")}`},signal:e});if(i.ok)if(i.status===206){let{type:g,params:I}=Eo(i.getHeader("content-type"));if(g==="multipart/byteranges"){let E=ho(await i.getData(),I.boundary);return this._fileSize=E[0].fileSize||null,E}let r=await i.getData(),{start:a,end:o,total:s}=Bg(i.getHeader("content-range"));this._fileSize=s||null;let n=[{data:r,offset:a,length:o+1-a}];if(t.length>1){let E=await Promise.all(t.slice(1).map(B=>this.fetchSlice(B,e)));return n.concat(E)}return n}else{if(!this.allowFullFile)throw new Error("Server responded with full file");let g=await i.getData();return this._fileSize=g.byteLength,[{data:g,offset:0,length:g.byteLength}]}else throw new Error("Error fetching data.")}async fetchSlice(t,e){let{offset:i,length:g}=t,I=await this.client.request({headers:{...this.headers,Range:`bytes=${i}-${i+g-1}`},signal:e});if(I.ok)if(I.status===206){let r=await I.getData(),{total:a}=Bg(I.getHeader("content-range"));return this._fileSize=a||null,{data:r,offset:i,length:g}}else{if(!this.allowFullFile)throw new Error("Server responded with full file");let r=await I.getData();return this._fileSize=r.byteLength,{data:r,offset:0,length:r.byteLength}}else throw new Error("Error fetching data.")}get fileSize(){return this._fileSize}};function VI(A,{blockSize:t,cacheSize:e}){return t===void 0?A:new hg(A,{blockSize:t,cacheSize:e})}function Xh(A,{headers:t={},credentials:e,maxRanges:i=0,allowFullFile:g=!1,...I}={}){let r=new Qg(A,e),a=new ii(r,{headers:t,maxRanges:i,allowFullFile:g});return VI(a,I)}function $h(A,{headers:t={},maxRanges:e=0,allowFullFile:i=!1,...g}={}){let I=new lg(A),r=new ii(I,{headers:t,maxRanges:e,allowFullFile:i});return VI(r,g)}function AQ(A,{headers:t={},maxRanges:e=0,allowFullFile:i=!1,...g}={}){let I=new fg(A),r=new ii(I,{headers:t,maxRanges:e,allowFullFile:i});return VI(r,g)}function mo(A,{forceXHR:t=!1,...e}={}){return typeof fetch=="function"&&!t?Xh(A,e):typeof XMLHttpRequest<"u"?$h(A,e):AQ(A,e)}Re();function ne(A,t){switch(A){case S.BYTE:case S.ASCII:case S.UNDEFINED:return new Uint8Array(t);case S.SBYTE:return new Int8Array(t);case S.SHORT:return new Uint16Array(t);case S.SSHORT:return new Int16Array(t);case S.LONG:case S.IFD:return new Uint32Array(t);case S.SLONG:return new Int32Array(t);case S.LONG8:case S.IFD8:return new Array(t);case S.SLONG8:return new Array(t);case S.RATIONAL:return new Uint32Array(t*2);case S.SRATIONAL:return new Int32Array(t*2);case S.FLOAT:return new Float32Array(t);case S.DOUBLE:return new Float64Array(t);default:throw new RangeError(`Invalid field type: ${A}`)}}function Ce(A,t){switch(t){case S.BYTE:case S.ASCII:case S.UNDEFINED:return A.readUint8;case S.SBYTE:return A.readInt8;case S.SHORT:return A.readUint16;case S.SSHORT:return A.readInt16;case S.LONG:case S.IFD:return A.readUint32;case S.SLONG:return A.readInt32;case S.LONG8:case S.IFD8:return A.readUint64;case S.SLONG8:return A.readInt64;case S.RATIONAL:return A.readUint32;case S.SRATIONAL:return A.readInt32;case S.FLOAT:return A.readFloat32;case S.DOUBLE:return A.readFloat64;default:throw new RangeError(`Invalid field type: ${t}`)}}function gi(A=null,t,e,i,g,I,r=!1){let a=_t(i),o=A||ne(i,g),s=i===S.RATIONAL||i===S.SRATIONAL;if(s)for(let n=0;n<g;n+=2)o[n]=t.call(e,I+n*a),o[n+1]=t.call(e,I+(n*a+4));else for(let n=0;n<g;++n)o[n]=t.call(e,I+n*a);return i===S.ASCII?new TextDecoder("utf-8").decode(o):g===1&&!r&&!s?o[0]:o}var WI=class{constructor(t,e,i,g,I){this.source=t,this.arrayOffset=e,this.littleEndian=i,this.fieldType=g,this.length=I,this.data=ne(g,I),this.itemSize=_t(g),this.maskBitmap=new Uint8Array(Math.ceil(I/8)),this.fetchIndexPromises=new Map,this.fullFetchPromise=null}async loadAll(){return this.fullFetchPromise||(this.fullFetchPromise=this.source.fetch([{offset:this.arrayOffset,length:this.itemSize*this.length}]).then(t=>{let e=new Ct(t[0],this.arrayOffset,!0,!1),i=gi(this.data,Ce(e,this.fieldType),e,this.fieldType,this.length,this.arrayOffset,!0);return this.maskBitmap.fill(255),this.fetchIndexPromises.clear(),i})),this.fullFetchPromise}async get(t){if(t<0||t>=this.data.length)throw new RangeError(`Index ${t} out of bounds for length ${this.data.length}`);let e=Math.floor(t/8),i=1<<t%8,g=this.arrayOffset+t*this.itemSize;if((this.maskBitmap[e]&i)===0){if(!this.fetchIndexPromises.has(t)){let I=this.source.fetch([{offset:g,length:this.itemSize}]).then(r=>{let a=new Ct(r[0],this.arrayOffset+t*this.itemSize,!0,!1),s=Ce(a,this.fieldType).call(a,g);return this.data[t]=s,this.maskBitmap[e]|=i,this.fetchIndexPromises.delete(t),s});this.fetchIndexPromises.set(t,I)}return this.fetchIndexPromises.get(t)}return this.data[t]}},XI=class{constructor(t,e,i,g){this.actualizedFields=t,this.deferredFields=e,this.deferredFieldsBeingResolved=new Map,this.deferredArrays=i,this.nextIFDByteOffset=g}hasTag(t){let e=Fe(t);return this.actualizedFields.has(e)||this.deferredFields.has(e)||this.deferredArrays.has(e)}getValue(t){let e=Fe(t);if(this.deferredFields.has(e)||this.deferredArrays.has(e)){let g=zt[e]?.name||`Tag${e}`;throw new Error(`Field \'${g}\' (${e}) is deferred. Use loadValue() to load it asynchronously.`)}if(this.actualizedFields.has(e))return this.actualizedFields.get(e)}async loadValue(t){let e=Fe(t);if(this.actualizedFields.has(e))return this.actualizedFields.get(e);if(this.deferredFieldsBeingResolved.has(e))return this.deferredFieldsBeingResolved.get(e);let i=this.deferredFields.get(e);if(i){this.deferredFields.delete(e);let I=(async()=>{try{let r=await i();return this.actualizedFields.set(e,r),r}finally{this.deferredFieldsBeingResolved.delete(e)}})();return this.deferredFieldsBeingResolved.set(e,I),I}let g=this.deferredArrays.get(e);if(g)return g.loadAll()}async loadValueIndexed(t,e){let i=Fe(t);if(this.actualizedFields.has(i))return this.actualizedFields.get(i)[e];if(this.deferredArrays.has(i))return this.deferredArrays.get(i).get(e);if(this.hasTag(i)){let g=await this.loadValue(i);if(g&&typeof g!="number")return g[e]}}parseGeoKeyDirectory(){let t=this.getValue("GeoKeyDirectory");if(!t)return null;let e={};for(let i=4;i<=t[3]*4;i+=4){let g=eI[t[i]],I=t[i+1]||null,r=t[i+2],a=t[i+3],o=null;if(!I)o=a;else{if(o=this.getValue(I),typeof o>"u"||o===null)throw new Error(`Could not get value of geoKey \'${g}\'.`);typeof o=="string"?o=o.substring(a,a+r-1):o.subarray&&(o=o.subarray(a,a+r),r===1&&(o=o[0]))}e[g]=o}return e}toObject(){let t={};for(let[e,i]of this.actualizedFields.entries()){let g=typeof e=="number"?zt[e]:void 0,I=g?g.name:`Tag${e}`;t[I]=i}return t}},cg=class{constructor(t,e,i,g=!1){this.source=t,this.littleEndian=e,this.bigTiff=i,this.eager=g}async getSlice(t,e){let i=this.bigTiff?4048:1024;return new Ct((await this.source.fetch([{offset:t,length:typeof e<"u"?e:i}]))[0],t,this.littleEndian,this.bigTiff)}async parseFileDirectoryAt(t){let e=this.bigTiff?20:12,i=this.bigTiff?8:2,g=await this.getSlice(t),I=this.bigTiff?g.readUint64(t):g.readUint16(t),r=I*(e+(this.bigTiff?16:6));g.covers(t,r)||(g=await this.getSlice(t,r));let a=new Map,o=new Map,s=new Map,n=t+(this.bigTiff?8:2);for(let B=0;B<I;n+=e,++B){let C=g.readUint16(n),h=g.readUint16(n+2),Q=this.bigTiff?g.readUint64(n+4):g.readUint32(n+4),l=null,c=null,w=null,D=_t(h),y=n+(this.bigTiff?12:8),f=zt[C]?.isArray,u=zt[C]?.eager||this.eager;if(D*Q<=(this.bigTiff?8:4))l=gi(ne(h,Q),Ce(g,h),g,h,Q,y,f);else{let d=g.readOffset(y),G=_t(h)*Q;if(g.covers(d,G))l=gi(ne(h,Q),Ce(g,h),g,h,Q,d,f);else if(u){let M=await this.getSlice(d,G);l=gi(ne(h,Q),Ce(M,h),M,h,Q,d,f)}else f?w=new WI(this.source,d,this.littleEndian,h,Q):c=async()=>{let M=await this.getSlice(d,G);return gi(ne(h,Q),Ce(M,h),M,h,Q,d,f)}}l!==null?a.set(C,l):c!==null?o.set(C,c):w!==null&&s.set(C,w)}let E=g.readOffset(t+i+e*I);return new XI(a,o,s,E)}};Re();WA();function $I(A,t,e,i){let g=null,I=null,r=_t(t);switch(t){case S.BYTE:case S.ASCII:case S.UNDEFINED:g=new Uint8Array(e),I=A.readUint8;break;case S.SBYTE:g=new Int8Array(e),I=A.readInt8;break;case S.SHORT:g=new Uint16Array(e),I=A.readUint16;break;case S.SSHORT:g=new Int16Array(e),I=A.readInt16;break;case S.LONG:case S.IFD:g=new Uint32Array(e),I=A.readUint32;break;case S.SLONG:g=new Int32Array(e),I=A.readInt32;break;case S.LONG8:case S.IFD8:g=new Array(e),I=A.readUint64;break;case S.SLONG8:g=new Array(e),I=A.readInt64;break;case S.RATIONAL:g=new Uint32Array(e*2),I=A.readUint32;break;case S.SRATIONAL:g=new Int32Array(e*2),I=A.readInt32;break;case S.FLOAT:g=new Float32Array(e),I=A.readFloat32;break;case S.DOUBLE:g=new Float64Array(e),I=A.readFloat64;break;default:}if(g===null||I===null)throw new RangeError(`Invalid field type: ${t}`);if(t===S.RATIONAL||t===S.SRATIONAL)for(let a=0;a<e;a+=2)g[a]=I.call(A,i+a*r),g[a+1]=I.call(A,i+(a*r+4));else for(let a=0;a<e;++a)g[a]=I.call(A,i+a*r);return t===S.ASCII?new TextDecoder("utf-8").decode(g):g}var Be=class extends Error{constructor(t){super(`No image at index ${t}`),this.index=t}},Aa=class{async getImage(t=0){throw new Error("Not implemented")}async getImageCount(){throw new Error("Not implemented")}async readRasters(t={}){let{window:e,width:i,height:g}=t,{resX:I,resY:r,bbox:a}=t,o=await this.getImage(),s=o,n=await this.getImageCount(),E=o.getBoundingBox();if(e&&a)throw new Error(\'Both "bbox" and "window" passed.\');if(i||g){if(e){let[h,Q]=o.getOrigin(),[l,c]=o.getResolution();a=[h+e[0]*l,Q+e[1]*c,h+e[2]*l,Q+e[3]*c]}let C=a||E;if(i){if(I)throw new Error("Both width and resX passed");I=(C[2]-C[0])/i}if(g){if(r)throw new Error("Both width and resY passed");r=(C[3]-C[1])/g}}if(I||r){let C=[];for(let h=0;h<n;++h){let Q=await this.getImage(h),l=Q.fileDirectory.getValue("SubfileType"),c=Q.fileDirectory.getValue("NewSubfileType");(h===0||l===2||(c||0)&1)&&C.push(Q)}C.sort((h,Q)=>h.getWidth()-Q.getWidth());for(let h=0;h<C.length;++h){let Q=C[h],l=(E[2]-E[0])/Q.getWidth(),c=(E[3]-E[1])/Q.getHeight();if(s=Q,I&&I>l||r&&r>c)break}}let B=e;if(a){let[C,h]=o.getOrigin(),[Q,l]=s.getResolution(o);B=[Math.round((a[0]-C)/Q),Math.round((a[1]-h)/l),Math.round((a[2]-C)/Q),Math.round((a[3]-h)/l)],B=[Math.min(B[0],B[2]),Math.min(B[1],B[3]),Math.max(B[0],B[2]),Math.max(B[1],B[3])]}return s.readRasters({...t,window:B})}},ta=class A extends Aa{constructor(t,e,i,g,I={}){super(),this.source=t,this.parser=new cg(t,e,i,!1),this.littleEndian=e,this.bigTiff=i,this.firstIFDOffset=g,this.cache=I.cache||!1,this.ifdRequests=[],this.ghostValues=null}async getSlice(t,e){let i=this.bigTiff?4048:1024;return new Ct((await this.source.fetch([{offset:t,length:typeof e<"u"?e:i}]))[0],t,this.littleEndian,this.bigTiff)}async requestIFD(t){if(this.ifdRequests[t])return this.ifdRequests[t];if(t===0)return this.ifdRequests[t]=this.parser.parseFileDirectoryAt(this.firstIFDOffset),this.ifdRequests[t];if(!this.ifdRequests[t-1])try{this.ifdRequests[t-1]=this.requestIFD(t-1)}catch(e){throw e instanceof Be?new Be(t):e}return this.ifdRequests[t]=(async()=>{let e=this.ifdRequests[t-1];if(!e)throw new Error("Previous IFD request missing");let i=await e;if(i.nextIFDByteOffset===0)throw new Be(t);return this.parser.parseFileDirectoryAt(i.nextIFDByteOffset)})(),this.ifdRequests[t]}async getImage(t=0){return new no(await this.requestIFD(t),this.littleEndian,this.cache,this.source)}async getImageCount(){let t=0,e=!0;for(;e;)try{await this.requestIFD(t),++t}catch(i){if(i instanceof Be)e=!1;else throw i}return t}async getGhostValues(){let t=this.bigTiff?16:8;if(this.ghostValues!==null)return this.ghostValues;let e="GDAL_STRUCTURAL_METADATA_SIZE=",i=e.length+100,g=await this.getSlice(t,i);if(e===$I(g,S.ASCII,e.length,t)){let r=$I(g,S.ASCII,i,t).split(`\n`)[0],a=Number(r.split("=")[1].split(" ")[0])+r.length;a>i&&(g=await this.getSlice(t,a));let o=$I(g,S.ASCII,a,t),s={};o.split(`\n`).filter(n=>n.length>0).map(n=>n.split("=")).forEach(([n,E])=>{s[n]=E}),this.ghostValues=s}return this.ghostValues}static async fromSource(t,e,i){let g=(await t.fetch([{offset:0,length:1024}],i))[0],I=new ti(g),r=I.getUint16(0,!1),a;if(r===18761)a=!0;else if(r===19789)a=!1;else throw new TypeError("Invalid byte order value.");let o=I.getUint16(2,a),s;if(o===42)s=!1;else if(o===43){if(s=!0,I.getUint16(4,a)!==8)throw new Error("Unsupported offset byte-size.")}else throw new TypeError("Invalid magic number.");let n=s?I.getUint64(8,a):I.getUint32(4,a);return new A(t,a,s,n,e)}close(){return typeof this.source.close=="function"?this.source.close():!1}};async function Go(A,t={},e){return ta.fromSource(mo(A,t),void 0,e)}function Mo(A){A("EPSG:4326","+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees"),A("EPSG:4269","+title=NAD83 (long/lat) +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees"),A("EPSG:3857","+title=WGS 84 / Pseudo-Mercator +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs");for(var t=1;t<=60;++t)A("EPSG:"+(32600+t),"+proj=utm +zone="+t+" +datum=WGS84 +units=m"),A("EPSG:"+(32700+t),"+proj=utm +zone="+t+" +south +datum=WGS84 +units=m");A("EPSG:5041","+title=WGS 84 / UPS North (E,N) +proj=stere +lat_0=90 +lon_0=0 +k=0.994 +x_0=2000000 +y_0=2000000 +datum=WGS84 +units=m"),A("EPSG:5042","+title=WGS 84 / UPS South (E,N) +proj=stere +lat_0=-90 +lon_0=0 +k=0.994 +x_0=2000000 +y_0=2000000 +datum=WGS84 +units=m"),A.WGS84=A["EPSG:4326"],A["EPSG:3785"]=A["EPSG:3857"],A.GOOGLE=A["EPSG:3857"],A["EPSG:900913"]=A["EPSG:3857"],A["EPSG:102113"]=A["EPSG:3857"]}var qA=1,OA=2,Bt=3,No=4,Ii=5,ea=6378137,po=6356752314e-3,ia=.0066943799901413165,bt=484813681109536e-20,N=Math.PI/2,_o=.16666666666666666,Fo=.04722222222222222,Ro=.022156084656084655,F=1e-10,iA=.017453292519943295,EA=57.29577951308232,z=Math.PI/4,Mt=Math.PI*2,rA=3.14159265359;var _A={};_A.greenwich=0;_A.lisbon=-9.131906111111;_A.paris=2.337229166667;_A.bogota=-74.080916666667;_A.madrid=-3.687938888889;_A.rome=12.452333333333;_A.bern=7.439583333333;_A.jakarta=106.807719444444;_A.ferro=-17.666666666667;_A.brussels=4.367975;_A.stockholm=18.058277777778;_A.athens=23.7163375;_A.oslo=10.722916666667;var ko=_A;var Lo={mm:{to_meter:.001},cm:{to_meter:.01},ft:{to_meter:.3048},"us-ft":{to_meter:1200/3937},fath:{to_meter:1.8288},kmi:{to_meter:1852},"us-ch":{to_meter:20.1168402336805},"us-mi":{to_meter:1609.34721869444},km:{to_meter:1e3},"ind-ft":{to_meter:.30479841},"ind-yd":{to_meter:.91439523},mi:{to_meter:1609.344},yd:{to_meter:.9144},ch:{to_meter:20.1168},link:{to_meter:.201168},dm:{to_meter:.1},in:{to_meter:.0254},"ind-ch":{to_meter:20.11669506},"us-in":{to_meter:.025400050800101},"us-yd":{to_meter:.914401828803658}};var xo=/[\\s_\\-\\/\\(\\)]/g;function vA(A,t){if(A[t])return A[t];for(var e=Object.keys(A),i=t.toLowerCase().replace(xo,""),g=-1,I,r;++g<e.length;)if(I=e[g],r=I.toLowerCase().replace(xo,""),r===i)return A[I]}function ai(A){var t={},e=A.split("+").map(function(a){return a.trim()}).filter(function(a){return a}).reduce(function(a,o){var s=o.split("=");return s.push(!0),a[s[0].toLowerCase()]=s[1],a},{}),i,g,I,r={proj:"projName",datum:"datumCode",rf:function(a){t.rf=parseFloat(a)},lat_0:function(a){t.lat0=a*iA},lat_1:function(a){t.lat1=a*iA},lat_2:function(a){t.lat2=a*iA},lat_ts:function(a){t.lat_ts=a*iA},lon_0:function(a){t.long0=a*iA},lon_1:function(a){t.long1=a*iA},lon_2:function(a){t.long2=a*iA},alpha:function(a){t.alpha=parseFloat(a)*iA},gamma:function(a){t.rectified_grid_angle=parseFloat(a)*iA},lonc:function(a){t.longc=a*iA},x_0:function(a){t.x0=parseFloat(a)},y_0:function(a){t.y0=parseFloat(a)},k_0:function(a){t.k0=parseFloat(a)},k:function(a){t.k0=parseFloat(a)},a:function(a){t.a=parseFloat(a)},b:function(a){t.b=parseFloat(a)},r:function(a){t.a=t.b=parseFloat(a)},r_a:function(){t.R_A=!0},zone:function(a){t.zone=parseInt(a,10)},south:function(){t.utmSouth=!0},towgs84:function(a){t.datum_params=a.split(",").map(function(o){return parseFloat(o)})},to_meter:function(a){t.to_meter=parseFloat(a)},units:function(a){t.units=a;var o=vA(Lo,a);o&&(t.to_meter=o.to_meter)},from_greenwich:function(a){t.from_greenwich=a*iA},pm:function(a){var o=vA(ko,a);t.from_greenwich=(o||parseFloat(a))*iA},nadgrids:function(a){a==="@null"?t.datumCode="none":t.nadgrids=a},axis:function(a){var o="ewnsud";a.length===3&&o.indexOf(a.substr(0,1))!==-1&&o.indexOf(a.substr(1,1))!==-1&&o.indexOf(a.substr(2,1))!==-1&&(t.axis=a)},approx:function(){t.approx=!0},over:function(){t.over=!0}};for(i in e)g=e[i],i in r?(I=r[i],typeof I=="function"?I(g):t[I]=g):t[i]=g;return typeof t.datumCode=="string"&&t.datumCode!=="WGS84"&&(t.datumCode=t.datumCode.toLowerCase()),t.projStr=A,t}var ga=class{static getId(t){let e=t.find(i=>Array.isArray(i)&&i[0]==="ID");return e&&e.length>=3?{authority:e[1],code:parseInt(e[2],10)}:null}static convertUnit(t,e="unit"){if(!t||t.length<3)return{type:e,name:"unknown",conversion_factor:null};let i=t[1],g=parseFloat(t[2])||null,I=t.find(a=>Array.isArray(a)&&a[0]==="ID"),r=I?{authority:I[1],code:parseInt(I[2],10)}:null;return{type:e,name:i,conversion_factor:g,id:r}}static convertAxis(t){let e=t[1]||"Unknown",i,g=e.match(/^\\((.)\\)$/);if(g){let s=g[1].toUpperCase();if(s==="E")i="east";else if(s==="N")i="north";else if(s==="U")i="up";else if(t[2])i=t[2];else throw new Error(`Unknown axis abbreviation: ${s}`)}else i=t[2]||"unknown";let I=t.find(s=>Array.isArray(s)&&s[0]==="ORDER"),r=I?parseInt(I[1],10):null,a=t.find(s=>Array.isArray(s)&&(s[0]==="LENGTHUNIT"||s[0]==="ANGLEUNIT"||s[0]==="SCALEUNIT")),o=this.convertUnit(a);return{name:e,direction:i,unit:o,order:r}}static extractAxes(t){return t.filter(e=>Array.isArray(e)&&e[0]==="AXIS").map(e=>this.convertAxis(e)).sort((e,i)=>(e.order||0)-(i.order||0))}static convert(t,e={}){switch(t[0]){case"PROJCRS":e.type="ProjectedCRS",e.name=t[1],e.base_crs=t.find(C=>Array.isArray(C)&&C[0]==="BASEGEOGCRS")?this.convert(t.find(C=>Array.isArray(C)&&C[0]==="BASEGEOGCRS")):null,e.conversion=t.find(C=>Array.isArray(C)&&C[0]==="CONVERSION")?this.convert(t.find(C=>Array.isArray(C)&&C[0]==="CONVERSION")):null;let i=t.find(C=>Array.isArray(C)&&C[0]==="CS");i&&(e.coordinate_system={type:i[1],axis:this.extractAxes(t)});let g=t.find(C=>Array.isArray(C)&&C[0]==="LENGTHUNIT");if(g){let C=this.convertUnit(g);e.coordinate_system.unit=C}e.id=this.getId(t);break;case"BASEGEOGCRS":case"GEOGCRS":case"GEODCRS":e.type=t[0]==="GEODCRS"?"GeodeticCRS":"GeographicCRS",e.name=t[1];let I=t.find(C=>Array.isArray(C)&&(C[0]==="DATUM"||C[0]==="ENSEMBLE"));if(I){let C=this.convert(I);I[0]==="ENSEMBLE"?e.datum_ensemble=C:e.datum=C;let h=t.find(Q=>Array.isArray(Q)&&Q[0]==="PRIMEM");h&&h[1]!=="Greenwich"&&(C.prime_meridian={name:h[1],longitude:parseFloat(h[2])})}e.coordinate_system={type:"ellipsoidal",axis:this.extractAxes(t)},e.id=this.getId(t);break;case"DATUM":e.type="GeodeticReferenceFrame",e.name=t[1],e.ellipsoid=t.find(C=>Array.isArray(C)&&C[0]==="ELLIPSOID")?this.convert(t.find(C=>Array.isArray(C)&&C[0]==="ELLIPSOID")):null;break;case"ENSEMBLE":e.type="DatumEnsemble",e.name=t[1],e.members=t.filter(C=>Array.isArray(C)&&C[0]==="MEMBER").map(C=>({type:"DatumEnsembleMember",name:C[1],id:this.getId(C)}));let r=t.find(C=>Array.isArray(C)&&C[0]==="ENSEMBLEACCURACY");r&&(e.accuracy=parseFloat(r[1]));let a=t.find(C=>Array.isArray(C)&&C[0]==="ELLIPSOID");a&&(e.ellipsoid=this.convert(a)),e.id=this.getId(t);break;case"ELLIPSOID":e.type="Ellipsoid",e.name=t[1],e.semi_major_axis=parseFloat(t[2]),e.inverse_flattening=parseFloat(t[3]);let o=t.find(C=>Array.isArray(C)&&C[0]==="LENGTHUNIT")?this.convert(t.find(C=>Array.isArray(C)&&C[0]==="LENGTHUNIT"),e):null;break;case"CONVERSION":e.type="Conversion",e.name=t[1],e.method=t.find(C=>Array.isArray(C)&&C[0]==="METHOD")?this.convert(t.find(C=>Array.isArray(C)&&C[0]==="METHOD")):null,e.parameters=t.filter(C=>Array.isArray(C)&&C[0]==="PARAMETER").map(C=>this.convert(C));break;case"METHOD":e.type="Method",e.name=t[1],e.id=this.getId(t);break;case"PARAMETER":e.type="Parameter",e.name=t[1],e.value=parseFloat(t[2]),e.unit=this.convertUnit(t.find(C=>Array.isArray(C)&&(C[0]==="LENGTHUNIT"||C[0]==="ANGLEUNIT"||C[0]==="SCALEUNIT"))),e.id=this.getId(t);break;case"BOUNDCRS":e.type="BoundCRS";let s=t.find(C=>Array.isArray(C)&&C[0]==="SOURCECRS");if(s){let C=s.find(h=>Array.isArray(h));e.source_crs=C?this.convert(C):null}let n=t.find(C=>Array.isArray(C)&&C[0]==="TARGETCRS");if(n){let C=n.find(h=>Array.isArray(h));e.target_crs=C?this.convert(C):null}let E=t.find(C=>Array.isArray(C)&&C[0]==="ABRIDGEDTRANSFORMATION");E?e.transformation=this.convert(E):e.transformation=null;break;case"ABRIDGEDTRANSFORMATION":if(e.type="Transformation",e.name=t[1],e.method=t.find(C=>Array.isArray(C)&&C[0]==="METHOD")?this.convert(t.find(C=>Array.isArray(C)&&C[0]==="METHOD")):null,e.parameters=t.filter(C=>Array.isArray(C)&&(C[0]==="PARAMETER"||C[0]==="PARAMETERFILE")).map(C=>{if(C[0]==="PARAMETER")return this.convert(C);if(C[0]==="PARAMETERFILE")return{name:C[1],value:C[2],id:{authority:"EPSG",code:8656}}}),e.parameters.length===7){let C=e.parameters[6];C.name==="Scale difference"&&(C.value=Math.round((C.value-1)*1e12)/1e6)}e.id=this.getId(t);break;case"AXIS":e.coordinate_system||(e.coordinate_system={type:"unspecified",axis:[]}),e.coordinate_system.axis.push(this.convertAxis(t));break;case"LENGTHUNIT":let B=this.convertUnit(t,"LinearUnit");e.coordinate_system&&e.coordinate_system.axis&&e.coordinate_system.axis.forEach(C=>{C.unit||(C.unit=B)}),B.conversion_factor&&B.conversion_factor!==1&&e.semi_major_axis&&(e.semi_major_axis={value:e.semi_major_axis,unit:B});break;default:e.keyword=t[0];break}return e}},ug=ga;var Ia=class extends ug{static convert(t,e={}){return super.convert(t,e),e.coordinate_system&&e.coordinate_system.subtype==="Cartesian"&&delete e.coordinate_system,e.usage&&delete e.usage,e}},Uo=Ia;var aa=class extends ug{static convert(t,e={}){super.convert(t,e);let i=t.find(I=>Array.isArray(I)&&I[0]==="CS");i&&(e.coordinate_system={subtype:i[1],axis:this.extractAxes(t)});let g=t.find(I=>Array.isArray(I)&&I[0]==="USAGE");if(g){let I=g.find(o=>Array.isArray(o)&&o[0]==="SCOPE"),r=g.find(o=>Array.isArray(o)&&o[0]==="AREA"),a=g.find(o=>Array.isArray(o)&&o[0]==="BBOX");e.usage={},I&&(e.usage.scope=I[1]),r&&(e.usage.area=r[1]),a&&(e.usage.bbox=a.slice(1))}return e}},vo=aa;function eQ(A){return A.find(t=>Array.isArray(t)&&t[0]==="USAGE")?"2019":(A.find(t=>Array.isArray(t)&&t[0]==="CS")||A[0]==="BOUNDCRS"||A[0]==="PROJCRS"||A[0]==="GEOGCRS","2015")}function bo(A){return(eQ(A)==="2019"?vo:Uo).convert(A)}function Yo(A){let t=A.toUpperCase();return t.includes("PROJCRS")||t.includes("GEOGCRS")||t.includes("BOUNDCRS")||t.includes("VERTCRS")||t.includes("LENGTHUNIT")||t.includes("ANGLEUNIT")||t.includes("SCALEUNIT")?"WKT2":(t.includes("PROJCS")||t.includes("GEOGCS")||t.includes("LOCAL_CS")||t.includes("VERT_CS")||t.includes("UNIT"),"WKT1")}var Ko=aQ,si=1,Ho=2,To=3,dg=4,Jo=5,sa=-1,iQ=/\\s/,gQ=/[A-Za-z]/,IQ=/[A-Za-z84_]/,wg=/[,\\]]/,Po=/[\\d\\.E\\-\\+]/;function Et(A){if(typeof A!="string")throw new Error("not a string");this.text=A.trim(),this.level=0,this.place=0,this.root=null,this.stack=[],this.currentObject=null,this.state=si}Et.prototype.readCharicter=function(){var A=this.text[this.place++];if(this.state!==dg)for(;iQ.test(A);){if(this.place>=this.text.length)return;A=this.text[this.place++]}switch(this.state){case si:return this.neutral(A);case Ho:return this.keyword(A);case dg:return this.quoted(A);case Jo:return this.afterquote(A);case To:return this.number(A);case sa:return}};Et.prototype.afterquote=function(A){if(A===\'"\'){this.word+=\'"\',this.state=dg;return}if(wg.test(A)){this.word=this.word.trim(),this.afterItem(A);return}throw new Error(`havn\'t handled "`+A+\'" in afterquote yet, index \'+this.place)};Et.prototype.afterItem=function(A){if(A===","){this.word!==null&&this.currentObject.push(this.word),this.word=null,this.state=si;return}if(A==="]"){this.level--,this.word!==null&&(this.currentObject.push(this.word),this.word=null),this.state=si,this.currentObject=this.stack.pop(),this.currentObject||(this.state=sa);return}};Et.prototype.number=function(A){if(Po.test(A)){this.word+=A;return}if(wg.test(A)){this.word=parseFloat(this.word),this.afterItem(A);return}throw new Error(`havn\'t handled "`+A+\'" in number yet, index \'+this.place)};Et.prototype.quoted=function(A){if(A===\'"\'){this.state=Jo;return}this.word+=A};Et.prototype.keyword=function(A){if(IQ.test(A)){this.word+=A;return}if(A==="["){var t=[];t.push(this.word),this.level++,this.root===null?this.root=t:this.currentObject.push(t),this.stack.push(this.currentObject),this.currentObject=t,this.state=si;return}if(wg.test(A)){this.afterItem(A);return}throw new Error(`havn\'t handled "`+A+\'" in keyword yet, index \'+this.place)};Et.prototype.neutral=function(A){if(gQ.test(A)){this.word=A,this.state=Ho;return}if(A===\'"\'){this.word="",this.state=dg;return}if(Po.test(A)){this.word=A,this.state=To;return}if(wg.test(A)){this.afterItem(A);return}throw new Error(`havn\'t handled "`+A+\'" in neutral yet, index \'+this.place)};Et.prototype.output=function(){for(;this.place<this.text.length;)this.readCharicter();if(this.state===sa)return this.root;throw new Error(\'unable to parse string "\'+this.text+\'". State is \'+this.state)};function aQ(A){var t=new Et(A);return t.output()}function ra(A,t,e){Array.isArray(t)&&(e.unshift(t),t=null);var i=t?{}:A,g=e.reduce(function(I,r){return Yt(r,I),I},i);t&&(A[t]=g)}function Yt(A,t){if(!Array.isArray(A)){t[A]=!0;return}var e=A.shift();if(e==="PARAMETER"&&(e=A.shift()),A.length===1){if(Array.isArray(A[0])){t[e]={},Yt(A[0],t[e]);return}t[e]=A[0];return}if(!A.length){t[e]=!0;return}if(e==="TOWGS84"){t[e]=A;return}if(e==="AXIS"){e in t||(t[e]=[]),t[e].push(A);return}Array.isArray(e)||(t[e]={});var i;switch(e){case"UNIT":case"PRIMEM":case"VERT_DATUM":t[e]={name:A[0].toLowerCase(),convert:A[1]},A.length===3&&Yt(A[2],t[e]);return;case"SPHEROID":case"ELLIPSOID":t[e]={name:A[0],a:A[1],rf:A[2]},A.length===4&&Yt(A[3],t[e]);return;case"EDATUM":case"ENGINEERINGDATUM":case"LOCAL_DATUM":case"DATUM":case"VERT_CS":case"VERTCRS":case"VERTICALCRS":A[0]=["name",A[0]],ra(t,e,A);return;case"COMPD_CS":case"COMPOUNDCRS":case"FITTED_CS":case"PROJECTEDCRS":case"PROJCRS":case"GEOGCS":case"GEOCCS":case"PROJCS":case"LOCAL_CS":case"GEODCRS":case"GEODETICCRS":case"GEODETICDATUM":case"ENGCRS":case"ENGINEERINGCRS":A[0]=["name",A[0]],ra(t,e,A),t[e].type=e;return;default:for(i=-1;++i<A.length;)if(!Array.isArray(A[i]))return Yt(A,t[e]);return ra(t,e,A)}}var sQ=.017453292519943295;function bA(A){return A*sQ}function yg(A){let t=(A.projName||"").toLowerCase().replace(/_/g," ");A.long0===void 0&&A.longc!==void 0&&(A.long0=A.longc),!A.lat_ts&&A.lat1&&(t==="stereographic south pole"||t==="polar stereographic (variant b)")?(A.lat0=bA(A.lat1>0?90:-90),A.lat_ts=A.lat1,delete A.lat1):!A.lat_ts&&A.lat0&&(t==="polar stereographic"||t==="polar stereographic (variant a)")&&(A.lat_ts=A.lat0,A.lat0=bA(A.lat0>0?90:-90),delete A.lat1)}function qo(A){let t={units:null,to_meter:void 0};return typeof A=="string"?(t.units=A.toLowerCase(),t.units==="metre"&&(t.units="meter"),t.units==="meter"&&(t.to_meter=1)):A&&A.name&&(t.units=A.name.toLowerCase(),t.units==="metre"&&(t.units="meter"),t.to_meter=A.conversion_factor),t}function Oo(A){return typeof A=="object"?A.value*A.unit.conversion_factor:A}function jo(A,t){A.ellipsoid.radius?(t.a=A.ellipsoid.radius,t.rf=0):(t.a=Oo(A.ellipsoid.semi_major_axis),A.ellipsoid.inverse_flattening!==void 0?t.rf=A.ellipsoid.inverse_flattening:A.ellipsoid.semi_major_axis!==void 0&&A.ellipsoid.semi_minor_axis!==void 0&&(t.rf=t.a/(t.a-Oo(A.ellipsoid.semi_minor_axis))))}function ri(A,t={}){return!A||typeof A!="object"?A:A.type==="BoundCRS"?(ri(A.source_crs,t),A.transformation&&(A.transformation.method&&A.transformation.method.name==="NTv2"?t.nadgrids=A.transformation.parameters[0].value:t.datum_params=A.transformation.parameters.map(e=>e.value)),t):(Object.keys(A).forEach(e=>{let i=A[e];if(i!==null)switch(e){case"name":if(t.srsCode)break;t.name=i,t.srsCode=i;break;case"type":i==="GeographicCRS"?t.projName="longlat":i==="GeodeticCRS"?A.coordinate_system&&A.coordinate_system.subtype==="Cartesian"?t.projName="geocent":t.projName="longlat":i==="ProjectedCRS"&&A.conversion&&A.conversion.method&&(t.projName=A.conversion.method.name);break;case"datum":case"datum_ensemble":i.ellipsoid&&(t.ellps=i.ellipsoid.name,jo(i,t)),i.prime_meridian&&(t.from_greenwich=i.prime_meridian.longitude*Math.PI/180);break;case"ellipsoid":t.ellps=i.name,jo(i,t);break;case"prime_meridian":t.long0=(i.longitude||0)*Math.PI/180;break;case"coordinate_system":if(i.axis){let g={east:"e",north:"n",west:"w",south:"s",up:"u",down:"d",geocentricx:"e",geocentricy:"n",geocentricz:"u"},I=i.axis.map(r=>g[r.direction.toLowerCase()]);if(I.every(Boolean)&&(t.axis=I.join(""),t.axis.length===2&&(t.axis+="u")),i.unit){let{units:r,to_meter:a}=qo(i.unit);t.units=r,t.to_meter=a}else if(i.axis[0]&&i.axis[0].unit){let{units:r,to_meter:a}=qo(i.axis[0].unit);t.units=r,t.to_meter=a}}break;case"id":i.authority&&i.code&&(t.title=i.authority+":"+i.code);break;case"conversion":i.method&&i.method.name&&(t.projName=i.method.name),i.parameters&&i.parameters.forEach(g=>{let I=g.name.toLowerCase().replace(/\\s+/g,"_"),r=g.value;g.unit&&g.unit.conversion_factor?t[I]=r*g.unit.conversion_factor:g.unit==="degree"?t[I]=r*Math.PI/180:t[I]=r});break;case"unit":i.name&&(t.units=i.name.toLowerCase(),t.units==="metre"&&(t.units="meter")),i.conversion_factor&&(t.to_meter=i.conversion_factor);break;case"base_crs":ri(i,t),t.datumCode=i.id?i.id.authority+"_"+i.id.code:i.name;break;default:break}}),t.latitude_of_false_origin!==void 0&&(t.lat0=t.latitude_of_false_origin),t.longitude_of_false_origin!==void 0&&(t.long0=t.longitude_of_false_origin),t.latitude_of_standard_parallel!==void 0&&(t.lat0=t.latitude_of_standard_parallel,t.lat1=t.latitude_of_standard_parallel),t.latitude_of_1st_standard_parallel!==void 0&&(t.lat1=t.latitude_of_1st_standard_parallel),t.latitude_of_2nd_standard_parallel!==void 0&&(t.lat2=t.latitude_of_2nd_standard_parallel),t.latitude_of_projection_centre!==void 0&&(t.lat0=t.latitude_of_projection_centre),t.longitude_of_projection_centre!==void 0&&(t.longc=t.longitude_of_projection_centre),t.easting_at_false_origin!==void 0&&(t.x0=t.easting_at_false_origin),t.northing_at_false_origin!==void 0&&(t.y0=t.northing_at_false_origin),t.latitude_of_natural_origin!==void 0&&(t.lat0=t.latitude_of_natural_origin),t.longitude_of_natural_origin!==void 0&&(t.long0=t.longitude_of_natural_origin),t.longitude_of_origin!==void 0&&(t.long0=t.longitude_of_origin),t.false_easting!==void 0&&(t.x0=t.false_easting),t.easting_at_projection_centre&&(t.x0=t.easting_at_projection_centre),t.false_northing!==void 0&&(t.y0=t.false_northing),t.northing_at_projection_centre&&(t.y0=t.northing_at_projection_centre),t.standard_parallel_1!==void 0&&(t.lat1=t.standard_parallel_1),t.standard_parallel_2!==void 0&&(t.lat2=t.standard_parallel_2),t.scale_factor_at_natural_origin!==void 0&&(t.k0=t.scale_factor_at_natural_origin),t.scale_factor_at_projection_centre!==void 0&&(t.k0=t.scale_factor_at_projection_centre),t.scale_factor_on_pseudo_standard_parallel!==void 0&&(t.k0=t.scale_factor_on_pseudo_standard_parallel),t.azimuth!==void 0&&(t.alpha=t.azimuth),t.azimuth_at_projection_centre!==void 0&&(t.alpha=t.azimuth_at_projection_centre),t.angle_from_rectified_to_skew_grid&&(t.rectified_grid_angle=t.angle_from_rectified_to_skew_grid),yg(t),t)}var rQ=["PROJECTEDCRS","PROJCRS","GEOGCS","GEOCCS","PROJCS","LOCAL_CS","GEODCRS","GEODETICCRS","GEODETICDATUM","ENGCRS","ENGINEERINGCRS"];function oQ(A,t){var e=t[0],i=t[1];!(e in A)&&i in A&&(A[e]=A[i],t.length===3&&(A[e]=t[2](A[e])))}function Zo(A){for(var t=Object.keys(A),e=0,i=t.length;e<i;++e){var g=t[e];rQ.indexOf(g)!==-1&&nQ(A[g]),typeof A[g]=="object"&&Zo(A[g])}}function nQ(A){if(A.AUTHORITY){var t=Object.keys(A.AUTHORITY)[0];t&&t in A.AUTHORITY&&(A.title=t+":"+A.AUTHORITY[t])}if(A.type==="GEOGCS"?A.projName="longlat":A.type==="LOCAL_CS"?(A.projName="identity",A.local=!0):typeof A.PROJECTION=="object"?A.projName=Object.keys(A.PROJECTION)[0]:A.projName=A.PROJECTION,A.AXIS){for(var e="",i=0,g=A.AXIS.length;i<g;++i){var I=[A.AXIS[i][0].toLowerCase(),A.AXIS[i][1].toLowerCase()];I[0].indexOf("north")!==-1||(I[0]==="y"||I[0]==="lat")&&I[1]==="north"?e+="n":I[0].indexOf("south")!==-1||(I[0]==="y"||I[0]==="lat")&&I[1]==="south"?e+="s":I[0].indexOf("east")!==-1||(I[0]==="x"||I[0]==="lon")&&I[1]==="east"?e+="e":(I[0].indexOf("west")!==-1||(I[0]==="x"||I[0]==="lon")&&I[1]==="west")&&(e+="w")}e.length===2&&(e+="u"),e.length===3&&(A.axis=e)}A.UNIT&&(A.units=A.UNIT.name.toLowerCase(),A.units==="metre"&&(A.units="meter"),A.UNIT.convert&&(A.type==="GEOGCS"?A.DATUM&&A.DATUM.SPHEROID&&(A.to_meter=A.UNIT.convert*A.DATUM.SPHEROID.a):A.to_meter=A.UNIT.convert));var r=A.GEOGCS;A.type==="GEOGCS"&&(r=A),r&&(r.PRIMEM&&r.PRIMEM.convert&&(A.from_greenwich=bA(r.PRIMEM.convert)),r.DATUM?A.datumCode=r.DATUM.name.toLowerCase():A.datumCode=r.name.toLowerCase(),A.datumCode.slice(0,2)==="d_"&&(A.datumCode=A.datumCode.slice(2)),A.datumCode==="new_zealand_1949"&&(A.datumCode="nzgd49"),(A.datumCode==="wgs_1984"||A.datumCode==="world_geodetic_system_1984")&&(A.PROJECTION==="Mercator_Auxiliary_Sphere"&&(A.sphere=!0),A.datumCode="wgs84"),A.datumCode==="belge_1972"&&(A.datumCode="rnb72"),r.DATUM&&r.DATUM.SPHEROID&&(A.ellps=r.DATUM.SPHEROID.name.replace("_19","").replace(/[Cc]larke\\_18/,"clrk"),A.ellps.toLowerCase().slice(0,13)==="international"&&(A.ellps="intl"),A.a=r.DATUM.SPHEROID.a,A.rf=parseFloat(r.DATUM.SPHEROID.rf)),r.DATUM&&r.DATUM.TOWGS84&&(A.datum_params=r.DATUM.TOWGS84),~A.datumCode.indexOf("osgb_1936")&&(A.datumCode="osgb36"),~A.datumCode.indexOf("osni_1952")&&(A.datumCode="osni52"),(~A.datumCode.indexOf("tm65")||~A.datumCode.indexOf("geodetic_datum_of_1965"))&&(A.datumCode="ire65"),A.datumCode==="ch1903+"&&(A.datumCode="ch1903"),~A.datumCode.indexOf("israel")&&(A.datumCode="isr93")),A.b&&!isFinite(A.b)&&(A.b=A.a),A.rectified_grid_angle&&(A.rectified_grid_angle=bA(A.rectified_grid_angle));function a(n){var E=A.to_meter||1;return n*E}var o=function(n){return oQ(A,n)},s=[["standard_parallel_1","Standard_Parallel_1"],["standard_parallel_1","Latitude of 1st standard parallel"],["standard_parallel_2","Standard_Parallel_2"],["standard_parallel_2","Latitude of 2nd standard parallel"],["false_easting","False_Easting"],["false_easting","False easting"],["false-easting","Easting at false origin"],["false_northing","False_Northing"],["false_northing","False northing"],["false_northing","Northing at false origin"],["central_meridian","Central_Meridian"],["central_meridian","Longitude of natural origin"],["central_meridian","Longitude of false origin"],["latitude_of_origin","Latitude_Of_Origin"],["latitude_of_origin","Central_Parallel"],["latitude_of_origin","Latitude of natural origin"],["latitude_of_origin","Latitude of false origin"],["scale_factor","Scale_Factor"],["k0","scale_factor"],["latitude_of_center","Latitude_Of_Center"],["latitude_of_center","Latitude_of_center"],["lat0","latitude_of_center",bA],["longitude_of_center","Longitude_Of_Center"],["longitude_of_center","Longitude_of_center"],["longc","longitude_of_center",bA],["x0","false_easting",a],["y0","false_northing",a],["long0","central_meridian",bA],["lat0","latitude_of_origin",bA],["lat0","standard_parallel_1",bA],["lat1","standard_parallel_1",bA],["lat2","standard_parallel_2",bA],["azimuth","Azimuth"],["alpha","azimuth",bA],["srsCode","name"]];s.forEach(o),yg(A)}function Ee(A){if(typeof A=="object")return ri(A);let t=Yo(A);var e=Ko(A);if(t==="WKT2"){let I=bo(e);return ri(I)}var i=e[0],g={};return Yt(e,g),Zo(g),g[i]}function FA(A){var t=this;if(arguments.length===2){var e=arguments[1];typeof e=="string"?e.charAt(0)==="+"?FA[A]=ai(arguments[1]):FA[A]=Ee(arguments[1]):e&&typeof e=="object"&&!("projName"in e)?FA[A]=Ee(arguments[1]):(FA[A]=e,e||delete FA[A])}else if(arguments.length===1){if(Array.isArray(A))return A.map(function(i){return Array.isArray(i)?FA.apply(t,i):FA(i)});if(typeof A=="string"){if(A in FA)return FA[A]}else"EPSG"in A?FA["EPSG:"+A.EPSG]=A:"ESRI"in A?FA["ESRI:"+A.ESRI]=A:"IAU2000"in A?FA["IAU2000:"+A.IAU2000]=A:console.log(A);return}}Mo(FA);var he=FA;function CQ(A){return typeof A=="string"}function BQ(A){return A in he}function EQ(A){return A.indexOf("+")!==0&&A.indexOf("[")!==-1||typeof A=="object"&&!("srsCode"in A)}var zo=["3857","900913","3785","102113"];function hQ(A){if(A.title)return A.title.toLowerCase().indexOf("epsg:")===0&&zo.indexOf(A.title.substr(5))>-1;var t=vA(A,"authority");if(t){var e=vA(t,"epsg");return e&&zo.indexOf(e)>-1}}function QQ(A){var t=vA(A,"extension");if(t)return vA(t,"proj4")}function lQ(A){return A[0]==="+"}function fQ(A){let t;if(CQ(A))if(BQ(A))t=he[A];else if(EQ(A)){t=Ee(A);var e=QQ(t);e&&(t=ai(e))}else lQ(A)&&(t=ai(A));else"projName"in A?t=A:t=Ee(A);return t&&hQ(t)?he["EPSG:3857"]:t}var Vo=fQ;function oa(A,t){A=A||{};var e,i;if(!t)return A;for(i in t)e=t[i],e!==void 0&&(A[i]=e);return A}function wA(A,t,e){var i=A*t;return e/Math.sqrt(1-i*i)}function gt(A){return A<0?-1:1}function R(A,t){return t||Math.abs(A)<=rA?A:A-gt(A)*Mt}function GA(A,t,e){var i=A*e,g=.5*A;return i=Math.pow((1-i)/(1+i),g),Math.tan(.5*(N-t))/i}function ht(A,t){for(var e=.5*A,i,g,I=N-2*Math.atan(t),r=0;r<=15;r++)if(i=A*Math.sin(I),g=N-2*Math.atan(t*Math.pow((1-i)/(1+i),e))-I,I+=g,Math.abs(g)<=1e-10)return I;return-9999}function cQ(){var A=this.b/this.a;this.es=1-A*A,"x0"in this||(this.x0=0),"y0"in this||(this.y0=0),this.e=Math.sqrt(this.es),this.lat_ts?this.sphere?this.k0=Math.cos(this.lat_ts):this.k0=wA(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)):this.k0||(this.k?this.k0=this.k:this.k0=1)}function uQ(A){var t=A.x,e=A.y;if(e*EA>90&&e*EA<-90&&t*EA>180&&t*EA<-180)return null;var i,g;if(Math.abs(Math.abs(e)-N)<=F)return null;if(this.sphere)i=this.x0+this.a*this.k0*R(t-this.long0,this.over),g=this.y0+this.a*this.k0*Math.log(Math.tan(z+.5*e));else{var I=Math.sin(e),r=GA(this.e,e,I);i=this.x0+this.a*this.k0*R(t-this.long0,this.over),g=this.y0-this.a*this.k0*Math.log(r)}return A.x=i,A.y=g,A}function dQ(A){var t=A.x-this.x0,e=A.y-this.y0,i,g;if(this.sphere)g=N-2*Math.atan(Math.exp(-e/(this.a*this.k0)));else{var I=Math.exp(-e/(this.a*this.k0));if(g=ht(this.e,I),g===-9999)return null}return i=R(this.long0+t/(this.a*this.k0),this.over),A.x=i,A.y=g,A}var wQ=["Mercator","Popular Visualisation Pseudo Mercator","Mercator_1SP","Mercator_Auxiliary_Sphere","Mercator_Variant_A","merc"],Wo={init:cQ,forward:uQ,inverse:dQ,names:wQ};function yQ(){}function Xo(A){return A}var na=["longlat","identity"],$o={init:yQ,forward:Xo,inverse:Xo,names:na};var DQ=[Wo,$o],Kt={},Qe=[];function An(A,t){var e=Qe.length;return A.names?(Qe[e]=A,A.names.forEach(function(i){Kt[i.toLowerCase()]=e}),this):(console.log(t),!0)}function Ca(A){return A.replace(/[-\\(\\)\\s]+/g," ").trim().replace(/ /g,"_")}function SQ(A){if(!A)return!1;var t=A.toLowerCase();if(typeof Kt[t]<"u"&&Qe[Kt[t]]||(t=Ca(t),t in Kt&&Qe[Kt[t]]))return Qe[Kt[t]]}function mQ(){DQ.forEach(An)}var tn={start:mQ,add:An,get:SQ};var GQ={MERIT:{a:6378137,rf:298.257,ellipseName:"MERIT 1983"},SGS85:{a:6378136,rf:298.257,ellipseName:"Soviet Geodetic System 85"},GRS80:{a:6378137,rf:298.257222101,ellipseName:"GRS 1980(IUGG, 1980)"},IAU76:{a:6378140,rf:298.257,ellipseName:"IAU 1976"},airy:{a:6377563396e-3,b:635625691e-2,ellipseName:"Airy 1830"},APL4:{a:6378137,rf:298.25,ellipseName:"Appl. Physics. 1965"},NWL9D:{a:6378145,rf:298.25,ellipseName:"Naval Weapons Lab., 1965"},mod_airy:{a:6377340189e-3,b:6356034446e-3,ellipseName:"Modified Airy"},andrae:{a:637710443e-2,rf:300,ellipseName:"Andrae 1876 (Den., Iclnd.)"},aust_SA:{a:6378160,rf:298.25,ellipseName:"Australian Natl & S. Amer. 1969"},GRS67:{a:6378160,rf:298.247167427,ellipseName:"GRS 67(IUGG 1967)"},bessel:{a:6377397155e-3,rf:299.1528128,ellipseName:"Bessel 1841"},bess_nam:{a:6377483865e-3,rf:299.1528128,ellipseName:"Bessel 1841 (Namibia)"},clrk66:{a:63782064e-1,b:63565838e-1,ellipseName:"Clarke 1866"},clrk80:{a:6378249145e-3,rf:293.4663,ellipseName:"Clarke 1880 mod."},clrk80ign:{a:63782492e-1,b:6356515,rf:293.4660213,ellipseName:"Clarke 1880 (IGN)"},clrk58:{a:6378293645208759e-9,rf:294.2606763692654,ellipseName:"Clarke 1858"},CPM:{a:63757387e-1,rf:334.29,ellipseName:"Comm. des Poids et Mesures 1799"},delmbr:{a:6376428,rf:311.5,ellipseName:"Delambre 1810 (Belgium)"},engelis:{a:637813605e-2,rf:298.2566,ellipseName:"Engelis 1985"},evrst30:{a:6377276345e-3,rf:300.8017,ellipseName:"Everest 1830"},evrst48:{a:6377304063e-3,rf:300.8017,ellipseName:"Everest 1948"},evrst56:{a:6377301243e-3,rf:300.8017,ellipseName:"Everest 1956"},evrst69:{a:6377295664e-3,rf:300.8017,ellipseName:"Everest 1969"},evrstSS:{a:6377298556e-3,rf:300.8017,ellipseName:"Everest (Sabah & Sarawak)"},fschr60:{a:6378166,rf:298.3,ellipseName:"Fischer (Mercury Datum) 1960"},fschr60m:{a:6378155,rf:298.3,ellipseName:"Fischer 1960"},fschr68:{a:6378150,rf:298.3,ellipseName:"Fischer 1968"},helmert:{a:6378200,rf:298.3,ellipseName:"Helmert 1906"},hough:{a:6378270,rf:297,ellipseName:"Hough"},intl:{a:6378388,rf:297,ellipseName:"International 1909 (Hayford)"},kaula:{a:6378163,rf:298.24,ellipseName:"Kaula 1961"},lerch:{a:6378139,rf:298.257,ellipseName:"Lerch 1979"},mprts:{a:6397300,rf:191,ellipseName:"Maupertius 1738"},new_intl:{a:63781575e-1,b:63567722e-1,ellipseName:"New International 1967"},plessis:{a:6376523,rf:6355863,ellipseName:"Plessis 1817 (France)"},krass:{a:6378245,rf:298.3,ellipseName:"Krassovsky, 1942"},SEasia:{a:6378155,b:63567733205e-4,ellipseName:"Southeast Asia"},walbeck:{a:6376896,b:63558348467e-4,ellipseName:"Walbeck"},WGS60:{a:6378165,rf:298.3,ellipseName:"WGS 60"},WGS66:{a:6378145,rf:298.25,ellipseName:"WGS 66"},WGS7:{a:6378135,rf:298.26,ellipseName:"WGS 72"},WGS84:{a:6378137,rf:298.257223563,ellipseName:"WGS 84"},sphere:{a:6370997,b:6370997,ellipseName:"Normal Sphere (r=6370997)"}},Ba=GQ;var MQ=Ba.WGS84;function en(A,t,e,i){var g=A*A,I=t*t,r=(g-I)/g,a=0;i?(A*=1-r*(_o+r*(Fo+r*Ro)),g=A*A,r=0):a=Math.sqrt(r);var o=(g-I)/I;return{es:r,e:a,ep2:o}}function gn(A,t,e,i,g){if(!A){var I=vA(Ba,i);I||(I=MQ),A=I.a,t=I.b,e=I.rf}return e&&!t&&(t=(1-1/e)*A),(e===0||Math.abs(A-t)<F)&&(g=!0,t=A),{a:A,b:t,rf:e,sphere:g}}var Sg={wgs84:{towgs84:"0,0,0",ellipse:"WGS84",datumName:"WGS84"},ch1903:{towgs84:"674.374,15.056,405.346",ellipse:"bessel",datumName:"swiss"},ggrs87:{towgs84:"-199.87,74.79,246.62",ellipse:"GRS80",datumName:"Greek_Geodetic_Reference_System_1987"},nad83:{towgs84:"0,0,0",ellipse:"GRS80",datumName:"North_American_Datum_1983"},nad27:{nadgrids:"@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat",ellipse:"clrk66",datumName:"North_American_Datum_1927"},potsdam:{towgs84:"598.1,73.7,418.2,0.202,0.045,-2.455,6.7",ellipse:"bessel",datumName:"Potsdam Rauenberg 1950 DHDN"},carthage:{towgs84:"-263.0,6.0,431.0",ellipse:"clark80",datumName:"Carthage 1934 Tunisia"},hermannskogel:{towgs84:"577.326,90.129,463.919,5.137,1.474,5.297,2.4232",ellipse:"bessel",datumName:"Hermannskogel"},mgi:{towgs84:"577.326,90.129,463.919,5.137,1.474,5.297,2.4232",ellipse:"bessel",datumName:"Militar-Geographische Institut"},osni52:{towgs84:"482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15",ellipse:"airy",datumName:"Irish National"},ire65:{towgs84:"482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15",ellipse:"mod_airy",datumName:"Ireland 1965"},rassadiran:{towgs84:"-133.63,-157.5,-158.62",ellipse:"intl",datumName:"Rassadiran"},nzgd49:{towgs84:"59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993",ellipse:"intl",datumName:"New Zealand Geodetic Datum 1949"},osgb36:{towgs84:"446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894",ellipse:"airy",datumName:"Ordnance Survey of Great Britain 1936"},s_jtsk:{towgs84:"589,76,480",ellipse:"bessel",datumName:"S-JTSK (Ferro)"},beduaram:{towgs84:"-106,-87,188",ellipse:"clrk80",datumName:"Beduaram"},gunung_segara:{towgs84:"-403,684,41",ellipse:"bessel",datumName:"Gunung Segara Jakarta"},rnb72:{towgs84:"106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1",ellipse:"intl",datumName:"Reseau National Belge 1972"},EPSG_5451:{towgs84:"6.41,-49.05,-11.28,1.5657,0.5242,6.9718,-5.7649"},IGNF_LURESG:{towgs84:"-192.986,13.673,-39.309,-0.4099,-2.9332,2.6881,0.43"},EPSG_4614:{towgs84:"-119.4248,-303.65872,-11.00061,1.164298,0.174458,1.096259,3.657065"},EPSG_4615:{towgs84:"-494.088,-312.129,279.877,-1.423,-1.013,1.59,-0.748"},ESRI_37241:{towgs84:"-76.822,257.457,-12.817,2.136,-0.033,-2.392,-0.031"},ESRI_37249:{towgs84:"-440.296,58.548,296.265,1.128,10.202,4.559,-0.438"},ESRI_37245:{towgs84:"-511.151,-181.269,139.609,1.05,2.703,1.798,3.071"},EPSG_4178:{towgs84:"24.9,-126.4,-93.2,-0.063,-0.247,-0.041,1.01"},EPSG_4622:{towgs84:"-472.29,-5.63,-304.12,0.4362,-0.8374,0.2563,1.8984"},EPSG_4625:{towgs84:"126.93,547.94,130.41,-2.7867,5.1612,-0.8584,13.8227"},EPSG_5252:{towgs84:"0.023,0.036,-0.068,0.00176,0.00912,-0.01136,0.00439"},EPSG_4314:{towgs84:"597.1,71.4,412.1,0.894,0.068,-1.563,7.58"},EPSG_4282:{towgs84:"-178.3,-316.7,-131.5,5.278,6.077,10.979,19.166"},EPSG_4231:{towgs84:"-83.11,-97.38,-117.22,0.005693,-0.044698,0.044285,0.1218"},EPSG_4274:{towgs84:"-230.994,102.591,25.199,0.633,-0.239,0.9,1.95"},EPSG_4134:{towgs84:"-180.624,-225.516,173.919,-0.81,-1.898,8.336,16.71006"},EPSG_4254:{towgs84:"18.38,192.45,96.82,0.056,-0.142,-0.2,-0.0013"},EPSG_4159:{towgs84:"-194.513,-63.978,-25.759,-3.4027,3.756,-3.352,-0.9175"},EPSG_4687:{towgs84:"0.072,-0.507,-0.245,0.0183,-0.0003,0.007,-0.0093"},EPSG_4227:{towgs84:"-83.58,-397.54,458.78,-17.595,-2.847,4.256,3.225"},EPSG_4746:{towgs84:"599.4,72.4,419.2,-0.062,-0.022,-2.723,6.46"},EPSG_4745:{towgs84:"612.4,77,440.2,-0.054,0.057,-2.797,2.55"},EPSG_6311:{towgs84:"8.846,-4.394,-1.122,-0.00237,-0.146528,0.130428,0.783926"},EPSG_4289:{towgs84:"565.7381,50.4018,465.2904,-0.395026,0.330772,-1.876073,4.07244"},EPSG_4230:{towgs84:"-68.863,-134.888,-111.49,-0.53,-0.14,0.57,-3.4"},EPSG_4154:{towgs84:"-123.02,-158.95,-168.47"},EPSG_4156:{towgs84:"570.8,85.7,462.8,4.998,1.587,5.261,3.56"},EPSG_4299:{towgs84:"482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15"},EPSG_4179:{towgs84:"33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84"},EPSG_4313:{towgs84:"-106.8686,52.2978,-103.7239,0.3366,-0.457,1.8422,-1.2747"},EPSG_4194:{towgs84:"163.511,127.533,-159.789"},EPSG_4195:{towgs84:"105,326,-102.5"},EPSG_4196:{towgs84:"-45,417,-3.5"},EPSG_4611:{towgs84:"-162.619,-276.959,-161.764,0.067753,-2.243648,-1.158828,-1.094246"},EPSG_4633:{towgs84:"137.092,131.66,91.475,-1.9436,-11.5993,-4.3321,-7.4824"},EPSG_4641:{towgs84:"-408.809,366.856,-412.987,1.8842,-0.5308,2.1655,-121.0993"},EPSG_4643:{towgs84:"-480.26,-438.32,-643.429,16.3119,20.1721,-4.0349,-111.7002"},EPSG_4300:{towgs84:"482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15"},EPSG_4188:{towgs84:"482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15"},EPSG_4660:{towgs84:"982.6087,552.753,-540.873,6.681627,-31.611492,-19.848161,16.805"},EPSG_4662:{towgs84:"97.295,-263.247,310.882,-1.5999,0.8386,3.1409,13.3259"},EPSG_3906:{towgs84:"577.88891,165.22205,391.18289,4.9145,-0.94729,-13.05098,7.78664"},EPSG_4307:{towgs84:"-209.3622,-87.8162,404.6198,0.0046,3.4784,0.5805,-1.4547"},EPSG_6892:{towgs84:"-76.269,-16.683,68.562,-6.275,10.536,-4.286,-13.686"},EPSG_4690:{towgs84:"221.597,152.441,176.523,2.403,1.3893,0.884,11.4648"},EPSG_4691:{towgs84:"218.769,150.75,176.75,3.5231,2.0037,1.288,10.9817"},EPSG_4629:{towgs84:"72.51,345.411,79.241,-1.5862,-0.8826,-0.5495,1.3653"},EPSG_4630:{towgs84:"165.804,216.213,180.26,-0.6251,-0.4515,-0.0721,7.4111"},EPSG_4692:{towgs84:"217.109,86.452,23.711,0.0183,-0.0003,0.007,-0.0093"},EPSG_9333:{towgs84:"0,0,0,-0.008393,0.000749,-0.010276,0"},EPSG_9059:{towgs84:"0,0,0"},EPSG_4312:{towgs84:"601.705,84.263,485.227,4.7354,1.3145,5.393,-2.3887"},EPSG_4123:{towgs84:"-96.062,-82.428,-121.753,4.801,0.345,-1.376,1.496"},EPSG_4309:{towgs84:"-124.45,183.74,44.64,-0.4384,0.5446,-0.9706,-2.1365"},ESRI_104106:{towgs84:"-283.088,-70.693,117.445,-1.157,0.059,-0.652,-4.058"},EPSG_4281:{towgs84:"-219.247,-73.802,269.529"},EPSG_4322:{towgs84:"0,0,4.5"},EPSG_4324:{towgs84:"0,0,1.9"},EPSG_4284:{towgs84:"43.822,-108.842,-119.585,1.455,-0.761,0.737,0.549"},EPSG_4277:{towgs84:"446.448,-125.157,542.06,0.15,0.247,0.842,-20.489"},EPSG_4207:{towgs84:"-282.1,-72.2,120,-1.529,0.145,-0.89,-4.46"},EPSG_4688:{towgs84:"347.175,1077.618,2623.677,33.9058,-70.6776,9.4013,186.0647"},EPSG_4689:{towgs84:"410.793,54.542,80.501,-2.5596,-2.3517,-0.6594,17.3218"},EPSG_4720:{towgs84:"0,0,4.5"},EPSG_4273:{towgs84:"278.3,93,474.5,7.889,0.05,-6.61,6.21"},EPSG_4240:{towgs84:"204.64,834.74,293.8"},EPSG_4817:{towgs84:"278.3,93,474.5,7.889,0.05,-6.61,6.21"},ESRI_104131:{towgs84:"426.62,142.62,460.09,4.98,4.49,-12.42,-17.1"},EPSG_4265:{towgs84:"-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68"},EPSG_4263:{towgs84:"-111.92,-87.85,114.5,1.875,0.202,0.219,0.032"},EPSG_4298:{towgs84:"-689.5937,623.84046,-65.93566,-0.02331,1.17094,-0.80054,5.88536"},EPSG_4270:{towgs84:"-253.4392,-148.452,386.5267,0.15605,0.43,-0.1013,-0.0424"},EPSG_4229:{towgs84:"-121.8,98.1,-10.7"},EPSG_4220:{towgs84:"-55.5,-348,-229.2"},EPSG_4214:{towgs84:"12.646,-155.176,-80.863"},EPSG_4232:{towgs84:"-345,3,223"},EPSG_4238:{towgs84:"-1.977,-13.06,-9.993,0.364,0.254,0.689,-1.037"},EPSG_4168:{towgs84:"-170,33,326"},EPSG_4131:{towgs84:"199,931,318.9"},EPSG_4152:{towgs84:"-0.9102,2.0141,0.5602,0.029039,0.010065,0.010101,0"},EPSG_5228:{towgs84:"572.213,85.334,461.94,4.9732,1.529,5.2484,3.5378"},EPSG_8351:{towgs84:"485.021,169.465,483.839,7.786342,4.397554,4.102655,0"},EPSG_4683:{towgs84:"-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06"},EPSG_4133:{towgs84:"0,0,0"},EPSG_7373:{towgs84:"0.819,-0.5762,-1.6446,-0.00378,-0.03317,0.00318,0.0693"},EPSG_9075:{towgs84:"-0.9102,2.0141,0.5602,0.029039,0.010065,0.010101,0"},EPSG_9072:{towgs84:"-0.9102,2.0141,0.5602,0.029039,0.010065,0.010101,0"},EPSG_9294:{towgs84:"1.16835,-1.42001,-2.24431,-0.00822,-0.05508,0.01818,0.23388"},EPSG_4212:{towgs84:"-267.434,173.496,181.814,-13.4704,8.7154,7.3926,14.7492"},EPSG_4191:{towgs84:"-44.183,-0.58,-38.489,2.3867,2.7072,-3.5196,-8.2703"},EPSG_4237:{towgs84:"52.684,-71.194,-13.975,-0.312,-0.1063,-0.3729,1.0191"},EPSG_4740:{towgs84:"-1.08,-0.27,-0.9"},EPSG_4124:{towgs84:"419.3836,99.3335,591.3451,0.850389,1.817277,-7.862238,-0.99496"},EPSG_5681:{towgs84:"584.9636,107.7175,413.8067,1.1155,0.2824,-3.1384,7.9922"},EPSG_4141:{towgs84:"23.772,17.49,17.859,-0.3132,-1.85274,1.67299,-5.4262"},EPSG_4204:{towgs84:"-85.645,-273.077,-79.708,2.289,-1.421,2.532,3.194"},EPSG_4319:{towgs84:"226.702,-193.337,-35.371,-2.229,-4.391,9.238,0.9798"},EPSG_4200:{towgs84:"24.82,-131.21,-82.66"},EPSG_4130:{towgs84:"0,0,0"},EPSG_4127:{towgs84:"-82.875,-57.097,-156.768,-2.158,1.524,-0.982,-0.359"},EPSG_4149:{towgs84:"674.374,15.056,405.346"},EPSG_4617:{towgs84:"-0.991,1.9072,0.5129,0.02579,0.00965,0.01166,0"},EPSG_4663:{towgs84:"-210.502,-66.902,-48.476,2.094,-15.067,-5.817,0.485"},EPSG_4664:{towgs84:"-211.939,137.626,58.3,-0.089,0.251,0.079,0.384"},EPSG_4665:{towgs84:"-105.854,165.589,-38.312,-0.003,-0.026,0.024,-0.048"},EPSG_4666:{towgs84:"631.392,-66.551,481.442,1.09,-4.445,-4.487,-4.43"},EPSG_4756:{towgs84:"-192.873,-39.382,-111.202,-0.00205,-0.0005,0.00335,0.0188"},EPSG_4723:{towgs84:"-179.483,-69.379,-27.584,-7.862,8.163,6.042,-13.925"},EPSG_4726:{towgs84:"8.853,-52.644,180.304,-0.393,-2.323,2.96,-24.081"},EPSG_4267:{towgs84:"-8.0,160.0,176.0"},EPSG_5365:{towgs84:"-0.16959,0.35312,0.51846,0.03385,-0.16325,0.03446,0.03693"},EPSG_4218:{towgs84:"304.5,306.5,-318.1"},EPSG_4242:{towgs84:"-33.722,153.789,94.959,-8.581,-4.478,4.54,8.95"},EPSG_4216:{towgs84:"-292.295,248.758,429.447,4.9971,2.99,6.6906,1.0289"},ESRI_104105:{towgs84:"631.392,-66.551,481.442,1.09,-4.445,-4.487,-4.43"},ESRI_104129:{towgs84:"0,0,0"},EPSG_4673:{towgs84:"174.05,-25.49,112.57"},EPSG_4202:{towgs84:"-124,-60,154"},EPSG_4203:{towgs84:"-117.763,-51.51,139.061,0.292,0.443,0.277,-0.191"},EPSG_3819:{towgs84:"595.48,121.69,515.35,4.115,-2.9383,0.853,-3.408"},EPSG_8694:{towgs84:"-93.799,-132.737,-219.073,-1.844,0.648,-6.37,-0.169"},EPSG_4145:{towgs84:"275.57,676.78,229.6"},EPSG_4283:{towgs84:"0.06155,-0.01087,-0.04019,0.039492,0.032722,0.032898,-0.009994"},EPSG_4317:{towgs84:"2.3287,-147.0425,-92.0802,-0.309248,0.324822,0.497299,5.689063"},EPSG_4272:{towgs84:"59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993"},EPSG_4248:{towgs84:"-307.7,265.3,-363.5"},EPSG_5561:{towgs84:"24,-121,-76"},EPSG_5233:{towgs84:"-0.293,766.95,87.713,0.195704,1.695068,3.473016,-0.039338"},ESRI_104130:{towgs84:"-86,-98,-119"},ESRI_104102:{towgs84:"682,-203,480"},ESRI_37207:{towgs84:"7,-10,-26"},EPSG_4675:{towgs84:"59.935,118.4,-10.871"},ESRI_104109:{towgs84:"-89.121,-348.182,260.871"},ESRI_104112:{towgs84:"-185.583,-230.096,281.361"},ESRI_104113:{towgs84:"25.1,-275.6,222.6"},IGNF_WGS72G:{towgs84:"0,12,6"},IGNF_NTFG:{towgs84:"-168,-60,320"},IGNF_EFATE57G:{towgs84:"-127,-769,472"},IGNF_PGP50G:{towgs84:"324.8,153.6,172.1"},IGNF_REUN47G:{towgs84:"94,-948,-1262"},IGNF_CSG67G:{towgs84:"-186,230,110"},IGNF_GUAD48G:{towgs84:"-467,-16,-300"},IGNF_TAHI51G:{towgs84:"162,117,154"},IGNF_TAHAAG:{towgs84:"65,342,77"},IGNF_NUKU72G:{towgs84:"84,274,65"},IGNF_PETRELS72G:{towgs84:"365,194,166"},IGNF_WALL78G:{towgs84:"253,-133,-127"},IGNF_MAYO50G:{towgs84:"-382,-59,-262"},IGNF_TANNAG:{towgs84:"-139,-967,436"},IGNF_IGN72G:{towgs84:"-13,-348,292"},IGNF_ATIGG:{towgs84:"1118,23,66"},IGNF_FANGA84G:{towgs84:"150.57,158.33,118.32"},IGNF_RUSAT84G:{towgs84:"202.13,174.6,-15.74"},IGNF_KAUE70G:{towgs84:"126.74,300.1,-75.49"},IGNF_MOP90G:{towgs84:"-10.8,-1.8,12.77"},IGNF_MHPF67G:{towgs84:"338.08,212.58,-296.17"},IGNF_TAHI79G:{towgs84:"160.61,116.05,153.69"},IGNF_ANAA92G:{towgs84:"1.5,3.84,4.81"},IGNF_MARQUI72G:{towgs84:"330.91,-13.92,58.56"},IGNF_APAT86G:{towgs84:"143.6,197.82,74.05"},IGNF_TUBU69G:{towgs84:"237.17,171.61,-77.84"},IGNF_STPM50G:{towgs84:"11.363,424.148,373.13"},EPSG_4150:{towgs84:"674.374,15.056,405.346"},EPSG_4754:{towgs84:"-208.4058,-109.8777,-2.5764"},ESRI_104101:{towgs84:"372.87,149.23,585.29"},EPSG_4693:{towgs84:"0,-0.15,0.68"},EPSG_6207:{towgs84:"293.17,726.18,245.36"},EPSG_4153:{towgs84:"-133.63,-157.5,-158.62"},EPSG_4132:{towgs84:"-241.54,-163.64,396.06"},EPSG_4221:{towgs84:"-154.5,150.7,100.4"},EPSG_4266:{towgs84:"-80.7,-132.5,41.1"},EPSG_4193:{towgs84:"-70.9,-151.8,-41.4"},EPSG_5340:{towgs84:"-0.41,0.46,-0.35"},EPSG_4246:{towgs84:"-294.7,-200.1,525.5"},EPSG_4318:{towgs84:"-3.2,-5.7,2.8"},EPSG_4121:{towgs84:"-199.87,74.79,246.62"},EPSG_4223:{towgs84:"-260.1,5.5,432.2"},EPSG_4158:{towgs84:"-0.465,372.095,171.736"},EPSG_4285:{towgs84:"-128.16,-282.42,21.93"},EPSG_4613:{towgs84:"-404.78,685.68,45.47"},EPSG_4607:{towgs84:"195.671,332.517,274.607"},EPSG_4475:{towgs84:"-381.788,-57.501,-256.673"},EPSG_4208:{towgs84:"-157.84,308.54,-146.6"},EPSG_4743:{towgs84:"70.995,-335.916,262.898"},EPSG_4710:{towgs84:"-323.65,551.39,-491.22"},EPSG_7881:{towgs84:"-0.077,0.079,0.086"},EPSG_4682:{towgs84:"283.729,735.942,261.143"},EPSG_4739:{towgs84:"-156,-271,-189"},EPSG_4679:{towgs84:"-80.01,253.26,291.19"},EPSG_4750:{towgs84:"-56.263,16.136,-22.856"},EPSG_4644:{towgs84:"-10.18,-350.43,291.37"},EPSG_4695:{towgs84:"-103.746,-9.614,-255.95"},EPSG_4292:{towgs84:"-355,21,72"},EPSG_4302:{towgs84:"-61.702,284.488,472.052"},EPSG_4143:{towgs84:"-124.76,53,466.79"},EPSG_4606:{towgs84:"-153,153,307"},EPSG_4699:{towgs84:"-770.1,158.4,-498.2"},EPSG_4247:{towgs84:"-273.5,110.6,-357.9"},EPSG_4160:{towgs84:"8.88,184.86,106.69"},EPSG_4161:{towgs84:"-233.43,6.65,173.64"},EPSG_9251:{towgs84:"-9.5,122.9,138.2"},EPSG_9253:{towgs84:"-78.1,101.6,133.3"},EPSG_4297:{towgs84:"-198.383,-240.517,-107.909"},EPSG_4269:{towgs84:"0,0,0"},EPSG_4301:{towgs84:"-147,506,687"},EPSG_4618:{towgs84:"-59,-11,-52"},EPSG_4612:{towgs84:"0,0,0"},EPSG_4678:{towgs84:"44.585,-131.212,-39.544"},EPSG_4250:{towgs84:"-130,29,364"},EPSG_4144:{towgs84:"214,804,268"},EPSG_4147:{towgs84:"-17.51,-108.32,-62.39"},EPSG_4259:{towgs84:"-254.1,-5.36,-100.29"},EPSG_4164:{towgs84:"-76,-138,67"},EPSG_4211:{towgs84:"-378.873,676.002,-46.255"},EPSG_4182:{towgs84:"-422.651,-172.995,84.02"},EPSG_4224:{towgs84:"-143.87,243.37,-33.52"},EPSG_4225:{towgs84:"-205.57,168.77,-4.12"},EPSG_5527:{towgs84:"-67.35,3.88,-38.22"},EPSG_4752:{towgs84:"98,390,-22"},EPSG_4310:{towgs84:"-30,190,89"},EPSG_9248:{towgs84:"-192.26,65.72,132.08"},EPSG_4680:{towgs84:"124.5,-63.5,-281"},EPSG_4701:{towgs84:"-79.9,-158,-168.9"},EPSG_4706:{towgs84:"-146.21,112.63,4.05"},EPSG_4805:{towgs84:"682,-203,480"},EPSG_4201:{towgs84:"-165,-11,206"},EPSG_4210:{towgs84:"-157,-2,-299"},EPSG_4183:{towgs84:"-104,167,-38"},EPSG_4139:{towgs84:"11,72,-101"},EPSG_4668:{towgs84:"-86,-98,-119"},EPSG_4717:{towgs84:"-2,151,181"},EPSG_4732:{towgs84:"102,52,-38"},EPSG_4280:{towgs84:"-377,681,-50"},EPSG_4209:{towgs84:"-138,-105,-289"},EPSG_4261:{towgs84:"31,146,47"},EPSG_4658:{towgs84:"-73,46,-86"},EPSG_4721:{towgs84:"265.025,384.929,-194.046"},EPSG_4222:{towgs84:"-136,-108,-292"},EPSG_4601:{towgs84:"-255,-15,71"},EPSG_4602:{towgs84:"725,685,536"},EPSG_4603:{towgs84:"72,213.7,93"},EPSG_4605:{towgs84:"9,183,236"},EPSG_4621:{towgs84:"137,248,-430"},EPSG_4657:{towgs84:"-28,199,5"},EPSG_4316:{towgs84:"103.25,-100.4,-307.19"},EPSG_4642:{towgs84:"-13,-348,292"},EPSG_4698:{towgs84:"145,-187,103"},EPSG_4192:{towgs84:"-206.1,-174.7,-87.7"},EPSG_4311:{towgs84:"-265,120,-358"},EPSG_4135:{towgs84:"58,-283,-182"},ESRI_104138:{towgs84:"198,-226,-347"},EPSG_4245:{towgs84:"-11,851,5"},EPSG_4142:{towgs84:"-125,53,467"},EPSG_4213:{towgs84:"-106,-87,188"},EPSG_4253:{towgs84:"-133,-77,-51"},EPSG_4129:{towgs84:"-132,-110,-335"},EPSG_4713:{towgs84:"-77,-128,142"},EPSG_4239:{towgs84:"217,823,299"},EPSG_4146:{towgs84:"295,736,257"},EPSG_4155:{towgs84:"-83,37,124"},EPSG_4165:{towgs84:"-173,253,27"},EPSG_4672:{towgs84:"175,-38,113"},EPSG_4236:{towgs84:"-637,-549,-203"},EPSG_4251:{towgs84:"-90,40,88"},EPSG_4271:{towgs84:"-2,374,172"},EPSG_4175:{towgs84:"-88,4,101"},EPSG_4716:{towgs84:"298,-304,-375"},EPSG_4315:{towgs84:"-23,259,-9"},EPSG_4744:{towgs84:"-242.2,-144.9,370.3"},EPSG_4244:{towgs84:"-97,787,86"},EPSG_4293:{towgs84:"616,97,-251"},EPSG_4714:{towgs84:"-127,-769,472"},EPSG_4736:{towgs84:"260,12,-147"},EPSG_6883:{towgs84:"-235,-110,393"},EPSG_6894:{towgs84:"-63,176,185"},EPSG_4205:{towgs84:"-43,-163,45"},EPSG_4256:{towgs84:"41,-220,-134"},EPSG_4262:{towgs84:"639,405,60"},EPSG_4604:{towgs84:"174,359,365"},EPSG_4169:{towgs84:"-115,118,426"},EPSG_4620:{towgs84:"-106,-129,165"},EPSG_4184:{towgs84:"-203,141,53"},EPSG_4616:{towgs84:"-289,-124,60"},EPSG_9403:{towgs84:"-307,-92,127"},EPSG_4684:{towgs84:"-133,-321,50"},EPSG_4708:{towgs84:"-491,-22,435"},EPSG_4707:{towgs84:"114,-116,-333"},EPSG_4709:{towgs84:"145,75,-272"},EPSG_4712:{towgs84:"-205,107,53"},EPSG_4711:{towgs84:"124,-234,-25"},EPSG_4718:{towgs84:"230,-199,-752"},EPSG_4719:{towgs84:"211,147,111"},EPSG_4724:{towgs84:"208,-435,-229"},EPSG_4725:{towgs84:"189,-79,-202"},EPSG_4735:{towgs84:"647,1777,-1124"},EPSG_4722:{towgs84:"-794,119,-298"},EPSG_4728:{towgs84:"-307,-92,127"},EPSG_4734:{towgs84:"-632,438,-609"},EPSG_4727:{towgs84:"912,-58,1227"},EPSG_4729:{towgs84:"185,165,42"},EPSG_4730:{towgs84:"170,42,84"},EPSG_4733:{towgs84:"276,-57,149"},ESRI_37218:{towgs84:"230,-199,-752"},ESRI_37240:{towgs84:"-7,215,225"},ESRI_37221:{towgs84:"252,-209,-751"},ESRI_4305:{towgs84:"-123,-206,219"},ESRI_104139:{towgs84:"-73,-247,227"},EPSG_4748:{towgs84:"51,391,-36"},EPSG_4219:{towgs84:"-384,664,-48"},EPSG_4255:{towgs84:"-333,-222,114"},EPSG_4257:{towgs84:"-587.8,519.75,145.76"},EPSG_4646:{towgs84:"-963,510,-359"},EPSG_6881:{towgs84:"-24,-203,268"},EPSG_6882:{towgs84:"-183,-15,273"},EPSG_4715:{towgs84:"-104,-129,239"},IGNF_RGF93GDD:{towgs84:"0,0,0"},IGNF_RGM04GDD:{towgs84:"0,0,0"},IGNF_RGSPM06GDD:{towgs84:"0,0,0"},IGNF_RGTAAF07GDD:{towgs84:"0,0,0"},IGNF_RGFG95GDD:{towgs84:"0,0,0"},IGNF_RGNCG:{towgs84:"0,0,0"},IGNF_RGPFGDD:{towgs84:"0,0,0"},IGNF_ETRS89G:{towgs84:"0,0,0"},IGNF_RGR92GDD:{towgs84:"0,0,0"},EPSG_4173:{towgs84:"0,0,0"},EPSG_4180:{towgs84:"0,0,0"},EPSG_4619:{towgs84:"0,0,0"},EPSG_4667:{towgs84:"0,0,0"},EPSG_4075:{towgs84:"0,0,0"},EPSG_6706:{towgs84:"0,0,0"},EPSG_7798:{towgs84:"0,0,0"},EPSG_4661:{towgs84:"0,0,0"},EPSG_4669:{towgs84:"0,0,0"},EPSG_8685:{towgs84:"0,0,0"},EPSG_4151:{towgs84:"0,0,0"},EPSG_9702:{towgs84:"0,0,0"},EPSG_4758:{towgs84:"0,0,0"},EPSG_4761:{towgs84:"0,0,0"},EPSG_4765:{towgs84:"0,0,0"},EPSG_8997:{towgs84:"0,0,0"},EPSG_4023:{towgs84:"0,0,0"},EPSG_4670:{towgs84:"0,0,0"},EPSG_4694:{towgs84:"0,0,0"},EPSG_4148:{towgs84:"0,0,0"},EPSG_4163:{towgs84:"0,0,0"},EPSG_4167:{towgs84:"0,0,0"},EPSG_4189:{towgs84:"0,0,0"},EPSG_4190:{towgs84:"0,0,0"},EPSG_4176:{towgs84:"0,0,0"},EPSG_4659:{towgs84:"0,0,0"},EPSG_3824:{towgs84:"0,0,0"},EPSG_3889:{towgs84:"0,0,0"},EPSG_4046:{towgs84:"0,0,0"},EPSG_4081:{towgs84:"0,0,0"},EPSG_4558:{towgs84:"0,0,0"},EPSG_4483:{towgs84:"0,0,0"},EPSG_5013:{towgs84:"0,0,0"},EPSG_5264:{towgs84:"0,0,0"},EPSG_5324:{towgs84:"0,0,0"},EPSG_5354:{towgs84:"0,0,0"},EPSG_5371:{towgs84:"0,0,0"},EPSG_5373:{towgs84:"0,0,0"},EPSG_5381:{towgs84:"0,0,0"},EPSG_5393:{towgs84:"0,0,0"},EPSG_5489:{towgs84:"0,0,0"},EPSG_5593:{towgs84:"0,0,0"},EPSG_6135:{towgs84:"0,0,0"},EPSG_6365:{towgs84:"0,0,0"},EPSG_5246:{towgs84:"0,0,0"},EPSG_7886:{towgs84:"0,0,0"},EPSG_8431:{towgs84:"0,0,0"},EPSG_8427:{towgs84:"0,0,0"},EPSG_8699:{towgs84:"0,0,0"},EPSG_8818:{towgs84:"0,0,0"},EPSG_4757:{towgs84:"0,0,0"},EPSG_9140:{towgs84:"0,0,0"},EPSG_8086:{towgs84:"0,0,0"},EPSG_4686:{towgs84:"0,0,0"},EPSG_4737:{towgs84:"0,0,0"},EPSG_4702:{towgs84:"0,0,0"},EPSG_4747:{towgs84:"0,0,0"},EPSG_4749:{towgs84:"0,0,0"},EPSG_4674:{towgs84:"0,0,0"},EPSG_4755:{towgs84:"0,0,0"},EPSG_4759:{towgs84:"0,0,0"},EPSG_4762:{towgs84:"0,0,0"},EPSG_4763:{towgs84:"0,0,0"},EPSG_4764:{towgs84:"0,0,0"},EPSG_4166:{towgs84:"0,0,0"},EPSG_4170:{towgs84:"0,0,0"},EPSG_5546:{towgs84:"0,0,0"},EPSG_7844:{towgs84:"0,0,0"},EPSG_4818:{towgs84:"589,76,480"},EPSG_10328:{towgs84:"0,0,0"},EPSG_9782:{towgs84:"0,0,0"},EPSG_9777:{towgs84:"0,0,0"},EPSG_10690:{towgs84:"0,0,0"},EPSG_10639:{towgs84:"0,0,0"},EPSG_10739:{towgs84:"0,0,0"},EPSG_7686:{towgs84:"0,0,0"},EPSG_8900:{towgs84:"0,0,0"},EPSG_5886:{towgs84:"0,0,0"},EPSG_7683:{towgs84:"0,0,0"},EPSG_6668:{towgs84:"0,0,0"},EPSG_20046:{towgs84:"0,0,0"},EPSG_10299:{towgs84:"0,0,0"},EPSG_10310:{towgs84:"0,0,0"},EPSG_10475:{towgs84:"0,0,0"},EPSG_4742:{towgs84:"0,0,0"},EPSG_10671:{towgs84:"0,0,0"},EPSG_10762:{towgs84:"0,0,0"},EPSG_10725:{towgs84:"0,0,0"},EPSG_10791:{towgs84:"0,0,0"},EPSG_10800:{towgs84:"0,0,0"},EPSG_10305:{towgs84:"0,0,0"},EPSG_10941:{towgs84:"0,0,0"},EPSG_10968:{towgs84:"0,0,0"},EPSG_10875:{towgs84:"0,0,0"},EPSG_6318:{towgs84:"0,0,0"},EPSG_10910:{towgs84:"0,0,0"}};for(In in Sg)Dg=Sg[In],Dg.datumName&&(Sg[Dg.datumName]=Dg);var Dg,In,an=Sg;function NQ(A,t,e,i,g,I,r){var a={};return A===void 0||A==="none"?a.datum_type=Ii:a.datum_type=No,t&&(a.datum_params=t.map(parseFloat),(a.datum_params[0]!==0||a.datum_params[1]!==0||a.datum_params[2]!==0)&&(a.datum_type=qA),a.datum_params.length>3&&(a.datum_params[3]!==0||a.datum_params[4]!==0||a.datum_params[5]!==0||a.datum_params[6]!==0)&&(a.datum_type=OA,a.datum_params[3]*=bt,a.datum_params[4]*=bt,a.datum_params[5]*=bt,a.datum_params[6]=a.datum_params[6]/1e6+1)),r&&(a.datum_type=Bt,a.grids=r),a.a=e,a.b=i,a.es=g,a.ep2=I,a}var sn=NQ;var ha={};function Qa(A,t,e){return t instanceof ArrayBuffer?pQ(A,t,e):{ready:_Q(A,t)}}function pQ(A,t,e){var i=!0;e!==void 0&&e.includeErrorFields===!1&&(i=!1);var g=new DataView(t),I=RQ(g),r=kQ(g,I),a=LQ(g,r,I,i),o={header:r,subgrids:a};return ha[A]=o,o}async function _Q(A,t){for(var e=[],i=await t.getImageCount(),g=i-1;g>=0;g--){var I=await t.getImage(g),r=await I.readRasters(),a=r,o=[I.getWidth(),I.getHeight()],s=I.getBoundingBox().map(rn),n=[I.fileDirectory.ModelPixelScale[0],I.fileDirectory.ModelPixelScale[1]].map(rn),E=s[0]+(o[0]-1)*n[0],B=s[3]-(o[1]-1)*n[1],C=a[0],h=a[1],Q=[];for(let w=o[1]-1;w>=0;w--)for(let D=o[0]-1;D>=0;D--){var l=w*o[0]+D;Q.push([-Nt(h[l]),Nt(C[l])])}e.push({del:n,lim:o,ll:[-E,B],cvs:Q})}var c={header:{nSubgrids:i},subgrids:e};return ha[A]=c,c}function on(A){if(A===void 0)return null;var t=A.split(",");return t.map(FQ)}function FQ(A){if(A.length===0)return null;var t=A[0]==="@";return t&&(A=A.slice(1)),A==="null"?{name:"null",mandatory:!t,grid:null,isNull:!0}:{name:A,mandatory:!t,grid:ha[A]||null,isNull:!1}}function rn(A){return A*Math.PI/180}function Nt(A){return A/3600*Math.PI/180}function RQ(A){var t=A.getInt32(8,!1);return t===11?!1:(t=A.getInt32(8,!0),t!==11&&console.warn("Failed to detect nadgrid endian-ness, defaulting to little-endian"),!0)}function kQ(A,t){return{nFields:A.getInt32(8,t),nSubgridFields:A.getInt32(24,t),nSubgrids:A.getInt32(40,t),shiftType:Ea(A,56,64).trim(),fromSemiMajorAxis:A.getFloat64(120,t),fromSemiMinorAxis:A.getFloat64(136,t),toSemiMajorAxis:A.getFloat64(152,t),toSemiMinorAxis:A.getFloat64(168,t)}}function Ea(A,t,e){return String.fromCharCode.apply(null,new Uint8Array(A.buffer.slice(t,e)))}function LQ(A,t,e,i){for(var g=176,I=[],r=0;r<t.nSubgrids;r++){var a=UQ(A,g,e),o=vQ(A,g,a,e,i),s=Math.round(1+(a.upperLongitude-a.lowerLongitude)/a.longitudeInterval),n=Math.round(1+(a.upperLatitude-a.lowerLatitude)/a.latitudeInterval);I.push({ll:[Nt(a.lowerLongitude),Nt(a.lowerLatitude)],del:[Nt(a.longitudeInterval),Nt(a.latitudeInterval)],lim:[s,n],count:a.gridNodeCount,cvs:xQ(o)});var E=16;i===!1&&(E=8),g+=176+a.gridNodeCount*E}return I}function xQ(A){return A.map(function(t){return[Nt(t.longitudeShift),Nt(t.latitudeShift)]})}function UQ(A,t,e){return{name:Ea(A,t+8,t+16).trim(),parent:Ea(A,t+24,t+24+8).trim(),lowerLatitude:A.getFloat64(t+72,e),upperLatitude:A.getFloat64(t+88,e),lowerLongitude:A.getFloat64(t+104,e),upperLongitude:A.getFloat64(t+120,e),latitudeInterval:A.getFloat64(t+136,e),longitudeInterval:A.getFloat64(t+152,e),gridNodeCount:A.getInt32(t+168,e)}}function vQ(A,t,e,i,g){var I=t+176,r=16;g===!1&&(r=8);for(var a=[],o=0;o<e.gridNodeCount;o++){var s={latitudeShift:A.getFloat32(I+o*r,i),longitudeShift:A.getFloat32(I+o*r+4,i)};g!==!1&&(s.latitudeAccuracy=A.getFloat32(I+o*r+8,i),s.longitudeAccuracy=A.getFloat32(I+o*r+12,i)),a.push(s)}return a}function le(A,t){if(!(this instanceof le))return new le(A);this.forward=null,this.inverse=null,this.init=null,this.name,this.names=null,this.title,t=t||function(s){if(s)throw s};var e=Vo(A);if(typeof e!="object"){t("Could not parse to valid json: "+A);return}var i=le.projections.get(e.projName);if(!i){t("Could not get projection name from: "+A);return}if(e.datumCode&&e.datumCode!=="none"){var g=vA(an,e.datumCode);g&&(e.datum_params=e.datum_params||(g.towgs84?g.towgs84.split(","):null),e.ellps=g.ellipse,e.datumName=g.datumName?g.datumName:e.datumCode)}e.k0=e.k0||1,e.axis=e.axis||"enu",e.ellps=e.ellps||"wgs84",e.lat1=e.lat1||e.lat0;var I=gn(e.a,e.b,e.rf,e.ellps,e.sphere),r=en(I.a,I.b,I.rf,e.R_A),a=on(e.nadgrids),o=e.datum||sn(e.datumCode,e.datum_params,I.a,I.b,r.es,r.ep2,a);oa(this,e),oa(this,i),this.a=I.a,this.b=I.b,this.rf=I.rf,this.sphere=I.sphere,this.es=r.es,this.e=r.e,this.ep2=r.ep2,this.datum=o,"init"in this&&typeof this.init=="function"&&this.init(),t(null,this)}le.projections=tn;le.projections.start();var jA=le;function nn(A,t){return A.datum_type!==t.datum_type||A.a!==t.a||Math.abs(A.es-t.es)>5e-11?!1:A.datum_type===qA?A.datum_params[0]===t.datum_params[0]&&A.datum_params[1]===t.datum_params[1]&&A.datum_params[2]===t.datum_params[2]:A.datum_type===OA?A.datum_params[0]===t.datum_params[0]&&A.datum_params[1]===t.datum_params[1]&&A.datum_params[2]===t.datum_params[2]&&A.datum_params[3]===t.datum_params[3]&&A.datum_params[4]===t.datum_params[4]&&A.datum_params[5]===t.datum_params[5]&&A.datum_params[6]===t.datum_params[6]:!0}function mg(A,t,e){var i=A.x,g=A.y,I=A.z?A.z:0,r,a,o,s;if(g<-N&&g>-1.001*N)g=-N;else if(g>N&&g<1.001*N)g=N;else{if(g<-N)return{x:-1/0,y:-1/0,z:A.z};if(g>N)return{x:1/0,y:1/0,z:A.z}}return i>Math.PI&&(i-=2*Math.PI),a=Math.sin(g),s=Math.cos(g),o=a*a,r=e/Math.sqrt(1-t*o),{x:(r+I)*s*Math.cos(i),y:(r+I)*s*Math.sin(i),z:(r*(1-t)+I)*a}}function Gg(A,t,e,i){var g=1e-12,I=g*g,r=30,a,o,s,n,E,B,C,h,Q,l,c,w,D,y=A.x,f=A.y,u=A.z?A.z:0,d,G,M;if(a=Math.sqrt(y*y+f*f),o=Math.sqrt(y*y+f*f+u*u),a/e<g){if(d=0,o/e<g)return G=N,M=-i,{x:A.x,y:A.y,z:A.z}}else d=Math.atan2(f,y);s=u/o,n=a/o,E=1/Math.sqrt(1-t*(2-t)*n*n),h=n*(1-t)*E,Q=s*E,D=0;do D++,C=e/Math.sqrt(1-t*Q*Q),M=a*h+u*Q-C*(1-t*Q*Q),B=t*C/(C+M),E=1/Math.sqrt(1-B*(2-B)*n*n),l=n*(1-B)*E,c=s*E,w=c*h-l*Q,h=l,Q=c;while(w*w>I&&D<r);return G=Math.atan(c/Math.abs(l)),{x:d,y:G,z:M}}function Cn(A,t,e){if(t===qA)return{x:A.x+e[0],y:A.y+e[1],z:A.z+e[2]};if(t===OA){var i=e[0],g=e[1],I=e[2],r=e[3],a=e[4],o=e[5],s=e[6];return{x:s*(A.x-o*A.y+a*A.z)+i,y:s*(o*A.x+A.y-r*A.z)+g,z:s*(-a*A.x+r*A.y+A.z)+I}}}function Bn(A,t,e){if(t===qA)return{x:A.x-e[0],y:A.y-e[1],z:A.z-e[2]};if(t===OA){var i=e[0],g=e[1],I=e[2],r=e[3],a=e[4],o=e[5],s=e[6],n=(A.x-i)/s,E=(A.y-g)/s,B=(A.z-I)/s;return{x:n+o*E-a*B,y:-o*n+E+r*B,z:a*n-r*E+B}}}function Mg(A){return A===qA||A===OA}function Qn(A,t,e){if(nn(A,t)||A.datum_type===Ii||t.datum_type===Ii)return e;var i=A.a,g=A.es;if(A.datum_type===Bt){var I=En(A,!1,e);if(I!==0)return;i=ea,g=ia}var r=t.a,a=t.b,o=t.es;if(t.datum_type===Bt&&(r=ea,a=po,o=ia),g===o&&i===r&&!Mg(A.datum_type)&&!Mg(t.datum_type))return e;if(e=mg(e,g,i),Mg(A.datum_type)&&(e=Cn(e,A.datum_type,A.datum_params)),Mg(t.datum_type)&&(e=Bn(e,t.datum_type,t.datum_params)),e=Gg(e,o,r,a),t.datum_type===Bt){var s=En(t,!0,e);if(s!==0)return}return e}function En(A,t,e){if(A.grids===null||A.grids.length===0)return console.log("Grid shift grids not found"),-1;var i={x:-e.x,y:e.y},g={x:Number.NaN,y:Number.NaN},I=[];A:for(var r=0;r<A.grids.length;r++){var a=A.grids[r];if(I.push(a.name),a.isNull){g=i;break}if(a.grid===null){if(a.mandatory)return console.log("Unable to find mandatory grid \'"+a.name+"\'"),-1;continue}for(var o=a.grid.subgrids,s=0,n=o.length;s<n;s++){var E=o[s],B=(Math.abs(E.del[1])+Math.abs(E.del[0]))/1e4,C=E.ll[0]-B,h=E.ll[1]-B,Q=E.ll[0]+(E.lim[0]-1)*E.del[0]+B,l=E.ll[1]+(E.lim[1]-1)*E.del[1]+B;if(!(h>i.y||C>i.x||l<i.y||Q<i.x)&&(g=bQ(i,t,E),!isNaN(g.x)))break A}}return isNaN(g.x)?(console.log("Failed to find a grid shift table for location \'"+-i.x*EA+" "+i.y*EA+" tried: \'"+I+"\'"),-1):(e.x=-g.x,e.y=g.y,0)}function bQ(A,t,e){var i={x:Number.NaN,y:Number.NaN};if(isNaN(A.x))return i;var g={x:A.x,y:A.y};g.x-=e.ll[0],g.y-=e.ll[1],g.x=R(g.x-Math.PI)+Math.PI;var I=hn(g,e);if(t){if(isNaN(I.x))return i;I.x=g.x-I.x,I.y=g.y-I.y;var r=9,a=1e-12,o,s;do{if(s=hn(I,e),isNaN(s.x)){console.log("Inverse grid shift iteration failed, presumably at grid edge. Using first approximation.");break}o={x:g.x-(s.x+I.x),y:g.y-(s.y+I.y)},I.x+=o.x,I.y+=o.y}while(r--&&Math.abs(o.x)>a&&Math.abs(o.y)>a);if(r<0)return console.log("Inverse grid shift iterator failed to converge."),i;i.x=R(I.x+e.ll[0]),i.y=I.y+e.ll[1]}else isNaN(I.x)||(i.x=A.x+I.x,i.y=A.y+I.y);return i}function hn(A,t){var e={x:A.x/t.del[0],y:A.y/t.del[1]},i={x:Math.floor(e.x),y:Math.floor(e.y)},g={x:e.x-1*i.x,y:e.y-1*i.y},I={x:Number.NaN,y:Number.NaN},r;if(i.x<0||i.x>=t.lim[0]||i.y<0||i.y>=t.lim[1])return I;r=i.y*t.lim[0]+i.x;var a={x:t.cvs[r][0],y:t.cvs[r][1]};r++;var o={x:t.cvs[r][0],y:t.cvs[r][1]};r+=t.lim[0];var s={x:t.cvs[r][0],y:t.cvs[r][1]};r--;var n={x:t.cvs[r][0],y:t.cvs[r][1]},E=g.x*g.y,B=g.x*(1-g.y),C=(1-g.x)*(1-g.y),h=(1-g.x)*g.y;return I.x=C*a.x+B*o.x+h*n.x+E*s.x,I.y=C*a.y+B*o.y+h*n.y+E*s.y,I}function la(A,t,e){var i=e.x,g=e.y,I=e.z||0,r,a,o,s={};for(o=0;o<3;o++)if(!(t&&o===2&&e.z===void 0))switch(o===0?(r=i,"ew".indexOf(A.axis[o])!==-1?a="x":a="y"):o===1?(r=g,"ns".indexOf(A.axis[o])!==-1?a="y":a="x"):(r=I,a="z"),A.axis[o]){case"e":s[a]=r;break;case"w":s[a]=-r;break;case"n":s[a]=r;break;case"s":s[a]=-r;break;case"u":e[a]!==void 0&&(s.z=r);break;case"d":e[a]!==void 0&&(s.z=-r);break;default:return null}return s}function Ng(A){var t={x:A[0],y:A[1]};return A.length>2&&(t.z=A[2]),A.length>3&&(t.m=A[3]),t}function fn(A){ln(A.x),ln(A.y)}function ln(A){if(typeof Number.isFinite=="function"){if(Number.isFinite(A))return;throw new TypeError("coordinates must be finite numbers")}if(typeof A!="number"||A!==A||!isFinite(A))throw new TypeError("coordinates must be finite numbers")}function YQ(A,t){return(A.datum.datum_type===qA||A.datum.datum_type===OA||A.datum.datum_type===Bt)&&t.datumCode!=="WGS84"||(t.datum.datum_type===qA||t.datum.datum_type===OA||t.datum.datum_type===Bt)&&A.datumCode!=="WGS84"}function Ht(A,t,e,i){var g;Array.isArray(e)?e=Ng(e):e={x:e.x,y:e.y,z:e.z,m:e.m};var I=e.z!==void 0;if(fn(e),A.datum&&t.datum&&YQ(A,t)&&(g=new jA("WGS84"),e=Ht(A,g,e,i),A=g),i&&A.axis!=="enu"&&(e=la(A,!1,e)),A.projName==="longlat")e={x:e.x*iA,y:e.y*iA,z:e.z||0};else if(A.to_meter&&(e={x:e.x*A.to_meter,y:e.y*A.to_meter,z:e.z||0}),e=A.inverse(e),!e)return;if(A.from_greenwich&&(e.x+=A.from_greenwich),e=Qn(A.datum,t.datum,e),!!e)return e=e,t.from_greenwich&&(e={x:e.x-t.from_greenwich,y:e.y,z:e.z||0}),t.projName==="longlat"?e={x:e.x*EA,y:e.y*EA,z:e.z||0}:(e=t.forward(e),t.to_meter&&(e={x:e.x/t.to_meter,y:e.y/t.to_meter,z:e.z||0})),i&&t.axis!=="enu"?la(t,!0,e):(e&&!I&&t.projName!=="geocent"&&delete e.z,e)}var cn=jA("WGS84");function fa(A,t,e,i){var g,I,r;return Array.isArray(e)?(g=Ht(A,t,e,i)||{x:NaN,y:NaN},e.length>2?typeof A.name<"u"&&A.name==="geocent"||typeof t.name<"u"&&t.name==="geocent"?typeof g.z=="number"?[g.x,g.y,g.z].concat(e.slice(3)):[g.x,g.y,e[2]].concat(e.slice(3)):[g.x,g.y].concat(e.slice(2)):[g.x,g.y]):(I=Ht(A,t,e,i),r=Object.keys(e),r.length===2||r.forEach(function(a){if(typeof A.name<"u"&&A.name==="geocent"||typeof t.name<"u"&&t.name==="geocent"){if(a==="x"||a==="y"||a==="z")return}else if(a==="x"||a==="y")return;I[a]=e[a]}),I)}function pg(A){return A instanceof jA?A:typeof A=="object"&&"oProj"in A?A.oProj:jA(A)}function KQ(A,t,e){var i,g,I=!1,r;return typeof t>"u"?(g=pg(A),i=cn,I=!0):(typeof t.x<"u"||Array.isArray(t))&&(e=t,g=pg(A),i=cn,I=!0),i||(i=pg(A)),g||(g=pg(t)),e?fa(i,g,e):(r={forward:function(a,o){return fa(i,g,a,o)},inverse:function(a,o){return fa(g,i,a,o)}},I&&(r.oProj=g),r)}var un=KQ;var dn=6,yn="AJSAJS",Dn="AFAFAF",fe=65,RA=73,JA=79,oi=86,ni=90,Sn={forward:ua,inverse:HQ,toPoint:da};function ua(A,t){return t=t||5,PQ(TQ({lat:A[1],lon:A[0]}),t)}function HQ(A){var t=wa(Gn(A.toUpperCase()));return t.lat&&t.lon?[t.lon,t.lat,t.lon,t.lat]:[t.left,t.bottom,t.right,t.top]}function da(A){var t=wa(Gn(A.toUpperCase()));return t.lat&&t.lon?[t.lon,t.lat]:[(t.left+t.right)/2,(t.top+t.bottom)/2]}function ca(A){return A*(Math.PI/180)}function wn(A){return 180*(A/Math.PI)}function TQ(A){var t=A.lat,e=A.lon,i=6378137,g=.00669438,I=.9996,r,a,o,s,n,E,B,C=ca(t),h=ca(e),Q,l;l=Math.floor((e+180)/6)+1,e===180&&(l=60),t>=56&&t<64&&e>=3&&e<12&&(l=32),t>=72&&t<84&&(e>=0&&e<9?l=31:e>=9&&e<21?l=33:e>=21&&e<33?l=35:e>=33&&e<42&&(l=37)),r=(l-1)*6-180+3,Q=ca(r),a=g/(1-g),o=i/Math.sqrt(1-g*Math.sin(C)*Math.sin(C)),s=Math.tan(C)*Math.tan(C),n=a*Math.cos(C)*Math.cos(C),E=Math.cos(C)*(h-Q),B=i*((1-g/4-3*g*g/64-5*g*g*g/256)*C-(3*g/8+3*g*g/32+45*g*g*g/1024)*Math.sin(2*C)+(15*g*g/256+45*g*g*g/1024)*Math.sin(4*C)-35*g*g*g/3072*Math.sin(6*C));var c=I*o*(E+(1-s+n)*E*E*E/6+(5-18*s+s*s+72*n-58*a)*E*E*E*E*E/120)+5e5,w=I*(B+o*Math.tan(C)*(E*E/2+(5-s+9*n+4*n*n)*E*E*E*E/24+(61-58*s+s*s+600*n-330*a)*E*E*E*E*E*E/720));return t<0&&(w+=1e7),{northing:Math.round(w),easting:Math.round(c),zoneNumber:l,zoneLetter:JQ(t)}}function wa(A){var t=A.northing,e=A.easting,i=A.zoneLetter,g=A.zoneNumber;if(g<0||g>60)return null;var I=.9996,r=6378137,a=.00669438,o,s=(1-Math.sqrt(1-a))/(1+Math.sqrt(1-a)),n,E,B,C,h,Q,l,c,w,D=e-5e5,y=t;i<"N"&&(y-=1e7),l=(g-1)*6-180+3,o=a/(1-a),Q=y/I,c=Q/(r*(1-a/4-3*a*a/64-5*a*a*a/256)),w=c+(3*s/2-27*s*s*s/32)*Math.sin(2*c)+(21*s*s/16-55*s*s*s*s/32)*Math.sin(4*c)+151*s*s*s/96*Math.sin(6*c),n=r/Math.sqrt(1-a*Math.sin(w)*Math.sin(w)),E=Math.tan(w)*Math.tan(w),B=o*Math.cos(w)*Math.cos(w),C=r*(1-a)/Math.pow(1-a*Math.sin(w)*Math.sin(w),1.5),h=D/(n*I);var f=w-n*Math.tan(w)/C*(h*h/2-(5+3*E+10*B-4*B*B-9*o)*h*h*h*h/24+(61+90*E+298*B+45*E*E-252*o-3*B*B)*h*h*h*h*h*h/720);f=wn(f);var u=(h-(1+2*E+B)*h*h*h/6+(5-2*B+28*E-3*B*B+8*o+24*E*E)*h*h*h*h*h/120)/Math.cos(w);u=l+wn(u);var d;if(A.accuracy){var G=wa({northing:A.northing+A.accuracy,easting:A.easting+A.accuracy,zoneLetter:A.zoneLetter,zoneNumber:A.zoneNumber});d={top:G.lat,right:G.lon,bottom:f,left:u}}else d={lat:f,lon:u};return d}function JQ(A){var t="Z";return 84>=A&&A>=72?t="X":72>A&&A>=64?t="W":64>A&&A>=56?t="V":56>A&&A>=48?t="U":48>A&&A>=40?t="T":40>A&&A>=32?t="S":32>A&&A>=24?t="R":24>A&&A>=16?t="Q":16>A&&A>=8?t="P":8>A&&A>=0?t="N":0>A&&A>=-8?t="M":-8>A&&A>=-16?t="L":-16>A&&A>=-24?t="K":-24>A&&A>=-32?t="J":-32>A&&A>=-40?t="H":-40>A&&A>=-48?t="G":-48>A&&A>=-56?t="F":-56>A&&A>=-64?t="E":-64>A&&A>=-72?t="D":-72>A&&A>=-80&&(t="C"),t}function PQ(A,t){var e="00000"+A.easting,i="00000"+A.northing;return A.zoneNumber+A.zoneLetter+qQ(A.easting,A.northing,A.zoneNumber)+e.substr(e.length-5,t)+i.substr(i.length-5,t)}function qQ(A,t,e){var i=mn(e),g=Math.floor(A/1e5),I=Math.floor(t/1e5)%20;return OQ(g,I,i)}function mn(A){var t=A%dn;return t===0&&(t=dn),t}function OQ(A,t,e){var i=e-1,g=yn.charCodeAt(i),I=Dn.charCodeAt(i),r=g+A-1,a=I+t,o=!1;r>ni&&(r=r-ni+fe-1,o=!0),(r===RA||g<RA&&r>RA||(r>RA||g<RA)&&o)&&r++,(r===JA||g<JA&&r>JA||(r>JA||g<JA)&&o)&&(r++,r===RA&&r++),r>ni&&(r=r-ni+fe-1),a>oi?(a=a-oi+fe-1,o=!0):o=!1,(a===RA||I<RA&&a>RA||(a>RA||I<RA)&&o)&&a++,(a===JA||I<JA&&a>JA||(a>JA||I<JA)&&o)&&(a++,a===RA&&a++),a>oi&&(a=a-oi+fe-1);var s=String.fromCharCode(r)+String.fromCharCode(a);return s}function Gn(A){if(A&&A.length===0)throw"MGRSPoint coverting from nothing";for(var t=A.length,e=null,i="",g,I=0;!/[A-Z]/.test(g=A.charAt(I));){if(I>=2)throw"MGRSPoint bad conversion from: "+A;i+=g,I++}var r=parseInt(i,10);if(I===0||I+3>t)throw"MGRSPoint bad conversion from: "+A;var a=A.charAt(I++);if(a<="A"||a==="B"||a==="Y"||a>="Z"||a==="I"||a==="O")throw"MGRSPoint zone letter "+a+" not handled: "+A;e=A.substring(I,I+=2);for(var o=mn(r),s=jQ(e.charAt(0),o),n=ZQ(e.charAt(1),o);n<zQ(a);)n+=2e6;var E=t-I;if(E%2!==0)throw`MGRSPoint has to have an even number \nof digits after the zone letter and two 100km letters - front \nhalf for easting meters, second half for \nnorthing meters`+A;var B=E/2,C=0,h=0,Q,l,c,w,D;return B>0&&(Q=1e5/Math.pow(10,B),l=A.substring(I,I+B),C=parseFloat(l)*Q,c=A.substring(I+B),h=parseFloat(c)*Q),w=C+s,D=h+n,{easting:w,northing:D,zoneLetter:a,zoneNumber:r,accuracy:Q}}function jQ(A,t){for(var e=yn.charCodeAt(t-1),i=1e5,g=!1;e!==A.charCodeAt(0);){if(e++,e===RA&&e++,e===JA&&e++,e>ni){if(g)throw"Bad character: "+A;e=fe,g=!0}i+=1e5}return i}function ZQ(A,t){if(A>"V")throw"MGRSPoint given invalid Northing "+A;for(var e=Dn.charCodeAt(t-1),i=0,g=!1;e!==A.charCodeAt(0);){if(e++,e===RA&&e++,e===JA&&e++,e>oi){if(g)throw"Bad character: "+A;e=fe,g=!0}i+=1e5}return i}function zQ(A){var t;switch(A){case"C":t=11e5;break;case"D":t=2e6;break;case"E":t=28e5;break;case"F":t=37e5;break;case"G":t=46e5;break;case"H":t=55e5;break;case"J":t=64e5;break;case"K":t=73e5;break;case"L":t=82e5;break;case"M":t=91e5;break;case"N":t=0;break;case"P":t=8e5;break;case"Q":t=17e5;break;case"R":t=26e5;break;case"S":t=35e5;break;case"T":t=44e5;break;case"U":t=53e5;break;case"V":t=62e5;break;case"W":t=7e6;break;case"X":t=79e5;break;default:t=-1}if(t>=0)return t;throw"Invalid zone letter: "+A}function ce(A,t,e){if(!(this instanceof ce))return new ce(A,t,e);if(Array.isArray(A))this.x=A[0],this.y=A[1],this.z=A[2]||0;else if(typeof A=="object")this.x=A.x,this.y=A.y,this.z=A.z||0;else if(typeof A=="string"&&typeof t>"u"){var i=A.split(",");this.x=parseFloat(i[0]),this.y=parseFloat(i[1]),this.z=parseFloat(i[2])||0}else this.x=A,this.y=t,this.z=e||0;console.warn("proj4.Point will be removed in version 3, use proj4.toPoint")}ce.fromMGRS=function(A){return new ce(da(A))};ce.prototype.toMGRS=function(A){return ua([this.x,this.y],A)};var Mn=ce;var VQ=1,WQ=.25,Nn=.046875,pn=.01953125,_n=.01068115234375,XQ=.75,$Q=.46875,A0=.013020833333333334,t0=.007120768229166667,e0=.3645833333333333,i0=.005696614583333333,g0=.3076171875;function ue(A){var t=[];t[0]=VQ-A*(WQ+A*(Nn+A*(pn+A*_n))),t[1]=A*(XQ-A*(Nn+A*(pn+A*_n)));var e=A*A;return t[2]=e*($Q-A*(A0+A*t0)),e*=A,t[3]=e*(e0-A*i0),t[4]=e*A*g0,t}function It(A,t,e,i){return e*=t,t*=t,i[0]*A-e*(i[1]+t*(i[2]+t*(i[3]+t*i[4])))}var I0=20;function de(A,t,e){for(var i=1/(1-t),g=A,I=I0;I;--I){var r=Math.sin(g),a=1-t*r*r;if(a=(It(g,r,Math.cos(g),e)-A)*(a*Math.sqrt(a))*i,g-=a,Math.abs(a)<F)return g}return g}function a0(){this.x0=this.x0!==void 0?this.x0:0,this.y0=this.y0!==void 0?this.y0:0,this.long0=this.long0!==void 0?this.long0:0,this.lat0=this.lat0!==void 0?this.lat0:0,this.es&&(this.en=ue(this.es),this.ml0=It(this.lat0,Math.sin(this.lat0),Math.cos(this.lat0),this.en))}function s0(A){var t=A.x,e=A.y,i=R(t-this.long0,this.over),g,I,r,a=Math.sin(e),o=Math.cos(e);if(this.es){var n=o*i,E=Math.pow(n,2),B=this.ep2*Math.pow(o,2),C=Math.pow(B,2),h=Math.abs(o)>F?Math.tan(e):0,Q=Math.pow(h,2),l=Math.pow(Q,2);g=1-this.es*Math.pow(a,2),n=n/Math.sqrt(g);var c=It(e,a,o,this.en);I=this.a*(this.k0*n*(1+E/6*(1-Q+B+E/20*(5-18*Q+l+14*B-58*Q*B+E/42*(61+179*l-l*Q-479*Q)))))+this.x0,r=this.a*(this.k0*(c-this.ml0+a*i*n/2*(1+E/12*(5-Q+9*B+4*C+E/30*(61+l-58*Q+270*B-330*Q*B+E/56*(1385+543*l-l*Q-3111*Q))))))+this.y0}else{var s=o*Math.sin(i);if(Math.abs(Math.abs(s)-1)<F)return 93;if(I=.5*this.a*this.k0*Math.log((1+s)/(1-s))+this.x0,r=o*Math.cos(i)/Math.sqrt(1-Math.pow(s,2)),s=Math.abs(r),s>=1){if(s-1>F)return 93;r=0}else r=Math.acos(r);e<0&&(r=-r),r=this.a*this.k0*(r-this.lat0)+this.y0}return A.x=I,A.y=r,A}function r0(A){var t,e,i,g,I=(A.x-this.x0)*(1/this.a),r=(A.y-this.y0)*(1/this.a);if(this.es)if(t=this.ml0+r/this.k0,e=de(t,this.es,this.en),Math.abs(e)<N){var E=Math.sin(e),B=Math.cos(e),C=Math.abs(B)>F?Math.tan(e):0,h=this.ep2*Math.pow(B,2),Q=Math.pow(h,2),l=Math.pow(C,2),c=Math.pow(l,2);t=1-this.es*Math.pow(E,2);var w=I*Math.sqrt(t)/this.k0,D=Math.pow(w,2);t=t*C,i=e-t*D/(1-this.es)*.5*(1-D/12*(5+3*l-9*h*l+h-4*Q-D/30*(61+90*l-252*h*l+45*c+46*h-D/56*(1385+3633*l+4095*c+1574*c*l)))),g=R(this.long0+w*(1-D/6*(1+2*l+h-D/20*(5+28*l+24*c+8*h*l+6*h-D/42*(61+662*l+1320*c+720*c*l))))/B,this.over)}else i=N*gt(r),g=0;else{var a=Math.exp(I/this.k0),o=.5*(a-1/a),s=this.lat0+r/this.k0,n=Math.cos(s);t=Math.sqrt((1-Math.pow(n,2))/(1+Math.pow(o,2))),i=Math.asin(t),r<0&&(i=-i),o===0&&n===0?g=0:g=R(Math.atan2(o,n)+this.long0,this.over)}return A.x=g,A.y=i,A}var o0=["Fast_Transverse_Mercator","Fast Transverse Mercator"],we={init:a0,forward:s0,inverse:r0,names:o0};function _g(A){var t=Math.exp(A);return t=(t-1/t)/2,t}function BA(A,t){A=Math.abs(A),t=Math.abs(t);var e=Math.max(A,t),i=Math.min(A,t)/(e||1);return e*Math.sqrt(1+Math.pow(i,2))}function Fn(A){var t=1+A,e=t-1;return e===0?A:A*Math.log(t)/e}function Rn(A){var t=Math.abs(A);return t=Fn(t*(1+t/(BA(1,t)+1))),A<0?-t:t}function Fg(A,t){for(var e=2*Math.cos(2*t),i=A.length-1,g=A[i],I=0,r;--i>=0;)r=-I+e*g+A[i],I=g,g=r;return t+r*Math.sin(2*t)}function kn(A,t){for(var e=2*Math.cos(t),i=A.length-1,g=A[i],I=0,r;--i>=0;)r=-I+e*g+A[i],I=g,g=r;return Math.sin(t)*r}function Ln(A){var t=Math.exp(A);return t=(t+1/t)/2,t}function ya(A,t,e){for(var i=Math.sin(t),g=Math.cos(t),I=_g(e),r=Ln(e),a=2*g*r,o=-2*i*I,s=A.length-1,n=A[s],E=0,B=0,C=0,h,Q;--s>=0;)h=B,Q=E,B=n,E=C,n=-h+a*B-o*E+A[s],C=-Q+o*B+a*E;return a=i*r,o=g*I,[a*n-o*C,a*C+o*n]}function n0(){if(!this.approx&&(isNaN(this.es)||this.es<=0))throw new Error(\'Incorrect elliptical usage. Try using the +approx option in the proj string, or PROJECTION["Fast_Transverse_Mercator"] in the WKT.\');this.approx&&(we.init.apply(this),this.forward=we.forward,this.inverse=we.inverse),this.x0=this.x0!==void 0?this.x0:0,this.y0=this.y0!==void 0?this.y0:0,this.long0=this.long0!==void 0?this.long0:0,this.lat0=this.lat0!==void 0?this.lat0:0,this.cgb=[],this.cbg=[],this.utg=[],this.gtu=[];var A=this.es/(1+Math.sqrt(1-this.es)),t=A/(2-A),e=t;this.cgb[0]=t*(2+t*(-2/3+t*(-2+t*(116/45+t*(26/45+t*(-2854/675)))))),this.cbg[0]=t*(-2+t*(2/3+t*(4/3+t*(-82/45+t*(32/45+t*(4642/4725)))))),e=e*t,this.cgb[1]=e*(7/3+t*(-8/5+t*(-227/45+t*(2704/315+t*(2323/945))))),this.cbg[1]=e*(5/3+t*(-16/15+t*(-13/9+t*(904/315+t*(-1522/945))))),e=e*t,this.cgb[2]=e*(56/15+t*(-136/35+t*(-1262/105+t*(73814/2835)))),this.cbg[2]=e*(-26/15+t*(34/21+t*(8/5+t*(-12686/2835)))),e=e*t,this.cgb[3]=e*(4279/630+t*(-332/35+t*(-399572/14175))),this.cbg[3]=e*(1237/630+t*(-12/5+t*(-24832/14175))),e=e*t,this.cgb[4]=e*(4174/315+t*(-144838/6237)),this.cbg[4]=e*(-734/315+t*(109598/31185)),e=e*t,this.cgb[5]=e*(601676/22275),this.cbg[5]=e*(444337/155925),e=Math.pow(t,2),this.Qn=this.k0/(1+t)*(1+e*(1/4+e*(1/64+e/256))),this.utg[0]=t*(-.5+t*(2/3+t*(-37/96+t*(1/360+t*(81/512+t*(-96199/604800)))))),this.gtu[0]=t*(.5+t*(-2/3+t*(5/16+t*(41/180+t*(-127/288+t*(7891/37800)))))),this.utg[1]=e*(-1/48+t*(-1/15+t*(437/1440+t*(-46/105+t*(1118711/3870720))))),this.gtu[1]=e*(13/48+t*(-3/5+t*(557/1440+t*(281/630+t*(-1983433/1935360))))),e=e*t,this.utg[2]=e*(-17/480+t*(37/840+t*(209/4480+t*(-5569/90720)))),this.gtu[2]=e*(61/240+t*(-103/140+t*(15061/26880+t*(167603/181440)))),e=e*t,this.utg[3]=e*(-4397/161280+t*(11/504+t*(830251/7257600))),this.gtu[3]=e*(49561/161280+t*(-179/168+t*(6601661/7257600))),e=e*t,this.utg[4]=e*(-4583/161280+t*(108847/3991680)),this.gtu[4]=e*(34729/80640+t*(-3418889/1995840)),e=e*t,this.utg[5]=e*(-20648693/638668800),this.gtu[5]=e*(212378941/319334400);var i=Fg(this.cbg,this.lat0);this.Zb=-this.Qn*(i+kn(this.gtu,2*i))}function C0(A){var t=R(A.x-this.long0,this.over),e=A.y;e=Fg(this.cbg,e);var i=Math.sin(e),g=Math.cos(e),I=Math.sin(t),r=Math.cos(t);e=Math.atan2(i,r*g),t=Math.atan2(I*g,BA(i,g*r)),t=Rn(Math.tan(t));var a=ya(this.gtu,2*e,2*t);e=e+a[0],t=t+a[1];var o,s;return Math.abs(t)<=2.623395162778?(o=this.a*(this.Qn*t)+this.x0,s=this.a*(this.Qn*e+this.Zb)+this.y0):(o=1/0,s=1/0),A.x=o,A.y=s,A}function B0(A){var t=(A.x-this.x0)*(1/this.a),e=(A.y-this.y0)*(1/this.a);e=(e-this.Zb)/this.Qn,t=t/this.Qn;var i,g;if(Math.abs(t)<=2.623395162778){var I=ya(this.utg,2*e,2*t);e=e+I[0],t=t+I[1],t=Math.atan(_g(t));var r=Math.sin(e),a=Math.cos(e),o=Math.sin(t),s=Math.cos(t);e=Math.atan2(r*s,BA(o,s*a)),t=Math.atan2(o,s*a),i=R(t+this.long0,this.over),g=Fg(this.cgb,e)}else i=1/0,g=1/0;return A.x=i,A.y=g,A}var E0=["Extended_Transverse_Mercator","Extended Transverse Mercator","etmerc","Transverse_Mercator","Transverse Mercator","Gauss Kruger","Gauss_Kruger","tmerc"],ye={init:n0,forward:C0,inverse:B0,names:E0};function xn(A,t){if(A===void 0){if(A=Math.floor((R(t)+Math.PI)*30/Math.PI)+1,A<0)return 0;if(A>60)return 60}return A}var h0="etmerc";function Q0(){var A=xn(this.zone,this.long0);if(A===void 0)throw new Error("unknown utm zone");this.lat0=0,this.long0=(6*Math.abs(A)-183)*iA,this.x0=5e5,this.y0=this.utmSouth?1e7:0,this.k0=.9996,ye.init.apply(this),this.forward=ye.forward,this.inverse=ye.inverse}var l0=["Universal Transverse Mercator System","utm"],Un={init:Q0,names:l0,dependsOn:h0};function Rg(A,t){return Math.pow((1-A)/(1+A),t)}var f0=20;function c0(){var A=Math.sin(this.lat0),t=Math.cos(this.lat0);t*=t,this.rc=Math.sqrt(1-this.es)/(1-this.es*A*A),this.C=Math.sqrt(1+this.es*t*t/(1-this.es)),this.phic0=Math.asin(A/this.C),this.ratexp=.5*this.C*this.e,this.K=Math.tan(.5*this.phic0+z)/(Math.pow(Math.tan(.5*this.lat0+z),this.C)*Rg(this.e*A,this.ratexp))}function u0(A){var t=A.x,e=A.y;return A.y=2*Math.atan(this.K*Math.pow(Math.tan(.5*e+z),this.C)*Rg(this.e*Math.sin(e),this.ratexp))-N,A.x=this.C*t,A}function d0(A){for(var t=1e-14,e=A.x/this.C,i=A.y,g=Math.pow(Math.tan(.5*i+z)/this.K,1/this.C),I=f0;I>0&&(i=2*Math.atan(g*Rg(this.e*Math.sin(A.y),-.5*this.e))-N,!(Math.abs(i-A.y)<t));--I)A.y=i;return I?(A.x=e,A.y=i,A):null}var w0=["gauss"],kg={init:c0,forward:u0,inverse:d0,names:w0};function y0(){kg.init.apply(this),this.rc&&(this.sinc0=Math.sin(this.phic0),this.cosc0=Math.cos(this.phic0),this.R2=2*this.rc,this.title||(this.title="Oblique Stereographic Alternative"))}function D0(A){var t,e,i,g;return A.x=R(A.x-this.long0,this.over),kg.forward.apply(this,[A]),t=Math.sin(A.y),e=Math.cos(A.y),i=Math.cos(A.x),g=this.k0*this.R2/(1+this.sinc0*t+this.cosc0*e*i),A.x=g*e*Math.sin(A.x),A.y=g*(this.cosc0*t-this.sinc0*e*i),A.x=this.a*A.x+this.x0,A.y=this.a*A.y+this.y0,A}function S0(A){var t,e,i,g,I;if(A.x=(A.x-this.x0)/this.a,A.y=(A.y-this.y0)/this.a,A.x/=this.k0,A.y/=this.k0,I=BA(A.x,A.y)){var r=2*Math.atan2(I,this.R2);t=Math.sin(r),e=Math.cos(r),g=Math.asin(e*this.sinc0+A.y*t*this.cosc0/I),i=Math.atan2(A.x*t,I*this.cosc0*e-A.y*this.sinc0*t)}else g=this.phic0,i=0;return A.x=i,A.y=g,kg.inverse.apply(this,[A]),A.x=R(A.x+this.long0,this.over),A}var m0=["Stereographic_North_Pole","Oblique_Stereographic","sterea","Oblique Stereographic Alternative","Double_Stereographic"],vn={init:y0,forward:D0,inverse:S0,names:m0};function Da(A,t,e){return t*=e,Math.tan(.5*(N+A))*Math.pow((1-t)/(1+t),.5*e)}function G0(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.coslat0=Math.cos(this.lat0),this.sinlat0=Math.sin(this.lat0),this.sphere?this.k0===1&&!isNaN(this.lat_ts)&&Math.abs(this.coslat0)<=F&&(this.k0=.5*(1+gt(this.lat0)*Math.sin(this.lat_ts))):(Math.abs(this.coslat0)<=F&&(this.lat0>0?this.con=1:this.con=-1),this.cons=Math.sqrt(Math.pow(1+this.e,1+this.e)*Math.pow(1-this.e,1-this.e)),this.k0===1&&!isNaN(this.lat_ts)&&Math.abs(this.coslat0)<=F&&Math.abs(Math.cos(this.lat_ts))>F&&(this.k0=.5*this.cons*wA(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts))/GA(this.e,this.con*this.lat_ts,this.con*Math.sin(this.lat_ts))),this.ms1=wA(this.e,this.sinlat0,this.coslat0),this.X0=2*Math.atan(Da(this.lat0,this.sinlat0,this.e))-N,this.cosX0=Math.cos(this.X0),this.sinX0=Math.sin(this.X0))}function M0(A){var t=A.x,e=A.y,i=Math.sin(e),g=Math.cos(e),I,r,a,o,s,n,E=R(t-this.long0,this.over);return Math.abs(Math.abs(t-this.long0)-Math.PI)<=F&&Math.abs(e+this.lat0)<=F?(A.x=NaN,A.y=NaN,A):this.sphere?(I=2*this.k0/(1+this.sinlat0*i+this.coslat0*g*Math.cos(E)),A.x=this.a*I*g*Math.sin(E)+this.x0,A.y=this.a*I*(this.coslat0*i-this.sinlat0*g*Math.cos(E))+this.y0,A):(r=2*Math.atan(Da(e,i,this.e))-N,o=Math.cos(r),a=Math.sin(r),Math.abs(this.coslat0)<=F?(s=GA(this.e,e*this.con,this.con*i),n=2*this.a*this.k0*s/this.cons,A.x=this.x0+n*Math.sin(t-this.long0),A.y=this.y0-this.con*n*Math.cos(t-this.long0),A):(Math.abs(this.sinlat0)<F?(I=2*this.a*this.k0/(1+o*Math.cos(E)),A.y=I*a):(I=2*this.a*this.k0*this.ms1/(this.cosX0*(1+this.sinX0*a+this.cosX0*o*Math.cos(E))),A.y=I*(this.cosX0*a-this.sinX0*o*Math.cos(E))+this.y0),A.x=I*o*Math.sin(E)+this.x0,A))}function N0(A){A.x-=this.x0,A.y-=this.y0;var t,e,i,g,I,r=Math.sqrt(A.x*A.x+A.y*A.y);if(this.sphere){var a=2*Math.atan(r/(2*this.a*this.k0));return t=this.long0,e=this.lat0,r<=F?(A.x=t,A.y=e,A):(e=Math.asin(Math.cos(a)*this.sinlat0+A.y*Math.sin(a)*this.coslat0/r),Math.abs(this.coslat0)<F?this.lat0>0?t=R(this.long0+Math.atan2(A.x,-1*A.y),this.over):t=R(this.long0+Math.atan2(A.x,A.y),this.over):t=R(this.long0+Math.atan2(A.x*Math.sin(a),r*this.coslat0*Math.cos(a)-A.y*this.sinlat0*Math.sin(a)),this.over),A.x=t,A.y=e,A)}else if(Math.abs(this.coslat0)<=F){if(r<=F)return e=this.lat0,t=this.long0,A.x=t,A.y=e,A;A.x*=this.con,A.y*=this.con,i=r*this.cons/(2*this.a*this.k0),e=this.con*ht(this.e,i),t=this.con*R(this.con*this.long0+Math.atan2(A.x,-1*A.y),this.over)}else g=2*Math.atan(r*this.cosX0/(2*this.a*this.k0*this.ms1)),t=this.long0,r<=F?I=this.X0:(I=Math.asin(Math.cos(g)*this.sinX0+A.y*Math.sin(g)*this.cosX0/r),t=R(this.long0+Math.atan2(A.x*Math.sin(g),r*this.cosX0*Math.cos(g)-A.y*this.sinX0*Math.sin(g)),this.over)),e=-1*ht(this.e,Math.tan(.5*(N+I)));return A.x=t,A.y=e,A}var p0=["stere","Stereographic_South_Pole","Polar_Stereographic_variant_A","Polar_Stereographic_variant_B","Polar_Stereographic"],bn={init:G0,forward:M0,inverse:N0,names:p0,ssfn_:Da};function _0(){var A=this.lat0;this.lambda0=this.long0;var t=Math.sin(A),e=this.a,i=this.rf,g=1/i,I=2*g-Math.pow(g,2),r=this.e=Math.sqrt(I);this.R=this.k0*e*Math.sqrt(1-I)/(1-I*Math.pow(t,2)),this.alpha=Math.sqrt(1+I/(1-I)*Math.pow(Math.cos(A),4)),this.b0=Math.asin(t/this.alpha);var a=Math.log(Math.tan(Math.PI/4+this.b0/2)),o=Math.log(Math.tan(Math.PI/4+A/2)),s=Math.log((1+r*t)/(1-r*t));this.K=a-this.alpha*o+this.alpha*r/2*s}function F0(A){var t=Math.log(Math.tan(Math.PI/4-A.y/2)),e=this.e/2*Math.log((1+this.e*Math.sin(A.y))/(1-this.e*Math.sin(A.y))),i=-this.alpha*(t+e)+this.K,g=2*(Math.atan(Math.exp(i))-Math.PI/4),I=this.alpha*(A.x-this.lambda0),r=Math.atan(Math.sin(I)/(Math.sin(this.b0)*Math.tan(g)+Math.cos(this.b0)*Math.cos(I))),a=Math.asin(Math.cos(this.b0)*Math.sin(g)-Math.sin(this.b0)*Math.cos(g)*Math.cos(I));return A.y=this.R/2*Math.log((1+Math.sin(a))/(1-Math.sin(a)))+this.y0,A.x=this.R*r+this.x0,A}function R0(A){for(var t=A.x-this.x0,e=A.y-this.y0,i=t/this.R,g=2*(Math.atan(Math.exp(e/this.R))-Math.PI/4),I=Math.asin(Math.cos(this.b0)*Math.sin(g)+Math.sin(this.b0)*Math.cos(g)*Math.cos(i)),r=Math.atan(Math.sin(i)/(Math.cos(this.b0)*Math.cos(i)-Math.sin(this.b0)*Math.tan(g))),a=this.lambda0+r/this.alpha,o=0,s=I,n=-1e3,E=0;Math.abs(s-n)>1e-7;){if(++E>20)return;o=1/this.alpha*(Math.log(Math.tan(Math.PI/4+I/2))-this.K)+this.e*Math.log(Math.tan(Math.PI/4+Math.asin(this.e*Math.sin(s))/2)),n=s,s=2*Math.atan(Math.exp(o))-Math.PI/2}return A.x=a,A.y=s,A}var k0=["somerc"],Yn={init:_0,forward:F0,inverse:R0,names:k0};var De=1e-7;function L0(A){var t=["Hotine_Oblique_Mercator","Hotine_Oblique_Mercator_variant_A","Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],e=typeof A.projName=="object"?Object.keys(A.projName)[0]:A.projName;return"no_uoff"in A||"no_off"in A||t.indexOf(e)!==-1||t.indexOf(Ca(e))!==-1}function x0(){var A,t,e,i,g,I,r,a,o,s,n=0,E,B=0,C=0,h=0,Q=0,l=0,c=0;this.no_off=L0(this),this.no_rot="no_rot"in this;var w=!1;"alpha"in this&&(w=!0);var D=!1;if("rectified_grid_angle"in this&&(D=!0),w&&(c=this.alpha),D&&(n=this.rectified_grid_angle),w||D)B=this.longc;else if(C=this.long1,Q=this.lat1,h=this.long2,l=this.lat2,Math.abs(Q-l)<=De||(A=Math.abs(Q))<=De||Math.abs(A-N)<=De||Math.abs(Math.abs(this.lat0)-N)<=De||Math.abs(Math.abs(l)-N)<=De)throw new Error;var y=1-this.es;t=Math.sqrt(y),Math.abs(this.lat0)>F?(a=Math.sin(this.lat0),e=Math.cos(this.lat0),A=1-this.es*a*a,this.B=e*e,this.B=Math.sqrt(1+this.es*this.B*this.B/y),this.A=this.B*this.k0*t/A,i=this.B*t/(e*Math.sqrt(A)),g=i*i-1,g<=0?g=0:(g=Math.sqrt(g),this.lat0<0&&(g=-g)),this.E=g+=i,this.E*=Math.pow(GA(this.e,this.lat0,a),this.B)):(this.B=1/t,this.A=this.k0,this.E=i=g=1),w||D?(w?(E=Math.asin(Math.sin(c)/i),D||(n=c)):(E=n,c=Math.asin(i*Math.sin(E))),this.lam0=B-Math.asin(.5*(g-1/g)*Math.tan(E))/this.B):(I=Math.pow(GA(this.e,Q,Math.sin(Q)),this.B),r=Math.pow(GA(this.e,l,Math.sin(l)),this.B),g=this.E/I,o=(r-I)/(r+I),s=this.E*this.E,s=(s-r*I)/(s+r*I),A=C-h,A<-Math.PI?h-=Mt:A>Math.PI&&(h+=Mt),this.lam0=R(.5*(C+h)-Math.atan(s*Math.tan(.5*this.B*(C-h))/o)/this.B,this.over),E=Math.atan(2*Math.sin(this.B*R(C-this.lam0,this.over))/(g-1/g)),n=c=Math.asin(i*Math.sin(E))),this.singam=Math.sin(E),this.cosgam=Math.cos(E),this.sinrot=Math.sin(n),this.cosrot=Math.cos(n),this.rB=1/this.B,this.ArB=this.A*this.rB,this.BrA=1/this.ArB,this.no_off?this.u_0=0:(this.u_0=Math.abs(this.ArB*Math.atan(Math.sqrt(i*i-1)/Math.cos(c))),this.lat0<0&&(this.u_0=-this.u_0)),g=.5*E,this.v_pole_n=this.ArB*Math.log(Math.tan(z-g)),this.v_pole_s=this.ArB*Math.log(Math.tan(z+g))}function U0(A){var t={},e,i,g,I,r,a,o,s;if(A.x=A.x-this.lam0,Math.abs(Math.abs(A.y)-N)>F){if(r=this.E/Math.pow(GA(this.e,A.y,Math.sin(A.y)),this.B),a=1/r,e=.5*(r-a),i=.5*(r+a),I=Math.sin(this.B*A.x),g=(e*this.singam-I*this.cosgam)/i,Math.abs(Math.abs(g)-1)<F)throw new Error;s=.5*this.ArB*Math.log((1-g)/(1+g)),a=Math.cos(this.B*A.x),Math.abs(a)<De?o=this.A*A.x:o=this.ArB*Math.atan2(e*this.cosgam+I*this.singam,a)}else s=A.y>0?this.v_pole_n:this.v_pole_s,o=this.ArB*A.y;return this.no_rot?(t.x=o,t.y=s):(o-=this.u_0,t.x=s*this.cosrot+o*this.sinrot,t.y=o*this.cosrot-s*this.sinrot),t.x=this.a*t.x+this.x0,t.y=this.a*t.y+this.y0,t}function v0(A){var t,e,i,g,I,r,a,o={};if(A.x=(A.x-this.x0)*(1/this.a),A.y=(A.y-this.y0)*(1/this.a),this.no_rot?(e=A.y,t=A.x):(e=A.x*this.cosrot-A.y*this.sinrot,t=A.y*this.cosrot+A.x*this.sinrot+this.u_0),i=Math.exp(-this.BrA*e),g=.5*(i-1/i),I=.5*(i+1/i),r=Math.sin(this.BrA*t),a=(r*this.cosgam+g*this.singam)/I,Math.abs(Math.abs(a)-1)<F)o.x=0,o.y=a<0?-N:N;else{if(o.y=this.E/Math.sqrt((1+a)/(1-a)),o.y=ht(this.e,Math.pow(o.y,1/this.B)),o.y===1/0)throw new Error;o.x=-this.rB*Math.atan2(g*this.cosgam-r*this.singam,Math.cos(this.BrA*t))}return o.x+=this.lam0,o}var b0=["Hotine_Oblique_Mercator","Hotine Oblique Mercator","Hotine_Oblique_Mercator_variant_A","Hotine_Oblique_Mercator_Variant_B","Hotine_Oblique_Mercator_Azimuth_Natural_Origin","Hotine_Oblique_Mercator_Two_Point_Natural_Origin","Hotine_Oblique_Mercator_Azimuth_Center","Oblique_Mercator","omerc"],Kn={init:x0,forward:U0,inverse:v0,names:b0};function Y0(){if(this.lat2||(this.lat2=this.lat1),this.k0||(this.k0=1),this.x0=this.x0||0,this.y0=this.y0||0,!(Math.abs(this.lat1+this.lat2)<F)){var A=this.b/this.a;this.e=Math.sqrt(1-A*A);var t=Math.sin(this.lat1),e=Math.cos(this.lat1),i=wA(this.e,t,e),g=GA(this.e,this.lat1,t),I=Math.sin(this.lat2),r=Math.cos(this.lat2),a=wA(this.e,I,r),o=GA(this.e,this.lat2,I),s=Math.abs(Math.abs(this.lat0)-N)<F?0:GA(this.e,this.lat0,Math.sin(this.lat0));Math.abs(this.lat1-this.lat2)>F?this.ns=Math.log(i/a)/Math.log(g/o):this.ns=t,isNaN(this.ns)&&(this.ns=t),this.f0=i/(this.ns*Math.pow(g,this.ns)),this.rh=this.a*this.f0*Math.pow(s,this.ns),this.title||(this.title="Lambert Conformal Conic")}}function K0(A){var t=A.x,e=A.y;Math.abs(2*Math.abs(e)-Math.PI)<=F&&(e=gt(e)*(N-2*F));var i=Math.abs(Math.abs(e)-N),g,I;if(i>F)g=GA(this.e,e,Math.sin(e)),I=this.a*this.f0*Math.pow(g,this.ns);else{if(i=e*this.ns,i<=0)return null;I=0}var r=this.ns*R(t-this.long0,this.over);return A.x=this.k0*(I*Math.sin(r))+this.x0,A.y=this.k0*(this.rh-I*Math.cos(r))+this.y0,A}function H0(A){var t,e,i,g,I,r=(A.x-this.x0)/this.k0,a=this.rh-(A.y-this.y0)/this.k0;this.ns>0?(t=Math.sqrt(r*r+a*a),e=1):(t=-Math.sqrt(r*r+a*a),e=-1);var o=0;if(t!==0&&(o=Math.atan2(e*r,e*a)),t!==0||this.ns>0){if(e=1/this.ns,i=Math.pow(t/(this.a*this.f0),e),g=ht(this.e,i),g===-9999)return null}else g=-N;return I=R(o/this.ns+this.long0,this.over),A.x=I,A.y=g,A}var T0=["Lambert Tangential Conformal Conic Projection","Lambert_Conformal_Conic","Lambert_Conformal_Conic_1SP","Lambert_Conformal_Conic_2SP","lcc","Lambert Conic Conformal (1SP)","Lambert Conic Conformal (2SP)"],Hn={init:Y0,forward:K0,inverse:H0,names:T0};function J0(){this.a=6377397155e-3,this.es=.006674372230614,this.e=Math.sqrt(this.es),this.lat0||(this.lat0=.863937979737193),this.long0||(this.long0=.7417649320975901-.308341501185665),this.k0||(this.k0=.9999),this.s45=.785398163397448,this.s90=2*this.s45,this.fi0=this.lat0,this.e2=this.es,this.e=Math.sqrt(this.e2),this.alfa=Math.sqrt(1+this.e2*Math.pow(Math.cos(this.fi0),4)/(1-this.e2)),this.uq=1.04216856380474,this.u0=Math.asin(Math.sin(this.fi0)/this.alfa),this.g=Math.pow((1+this.e*Math.sin(this.fi0))/(1-this.e*Math.sin(this.fi0)),this.alfa*this.e/2),this.k=Math.tan(this.u0/2+this.s45)/Math.pow(Math.tan(this.fi0/2+this.s45),this.alfa)*this.g,this.k1=this.k0,this.n0=this.a*Math.sqrt(1-this.e2)/(1-this.e2*Math.pow(Math.sin(this.fi0),2)),this.s0=1.37008346281555,this.n=Math.sin(this.s0),this.ro0=this.k1*this.n0/Math.tan(this.s0),this.ad=this.s90-this.uq}function P0(A){var t,e,i,g,I,r,a,o=A.x,s=A.y,n=R(o-this.long0,this.over);return t=Math.pow((1+this.e*Math.sin(s))/(1-this.e*Math.sin(s)),this.alfa*this.e/2),e=2*(Math.atan(this.k*Math.pow(Math.tan(s/2+this.s45),this.alfa)/t)-this.s45),i=-n*this.alfa,g=Math.asin(Math.cos(this.ad)*Math.sin(e)+Math.sin(this.ad)*Math.cos(e)*Math.cos(i)),I=Math.asin(Math.cos(e)*Math.sin(i)/Math.cos(g)),r=this.n*I,a=this.ro0*Math.pow(Math.tan(this.s0/2+this.s45),this.n)/Math.pow(Math.tan(g/2+this.s45),this.n),A.y=a*Math.cos(r)/1,A.x=a*Math.sin(r)/1,this.czech||(A.y*=-1,A.x*=-1),A}function q0(A){var t,e,i,g,I,r,a,o,s=A.x;A.x=A.y,A.y=s,this.czech||(A.y*=-1,A.x*=-1),r=Math.sqrt(A.x*A.x+A.y*A.y),I=Math.atan2(A.y,A.x),g=I/Math.sin(this.s0),i=2*(Math.atan(Math.pow(this.ro0/r,1/this.n)*Math.tan(this.s0/2+this.s45))-this.s45),t=Math.asin(Math.cos(this.ad)*Math.sin(i)-Math.sin(this.ad)*Math.cos(i)*Math.cos(g)),e=Math.asin(Math.cos(i)*Math.sin(g)/Math.cos(t)),A.x=this.long0-e/this.alfa,a=t,o=0;var n=0;do A.y=2*(Math.atan(Math.pow(this.k,-1/this.alfa)*Math.pow(Math.tan(t/2+this.s45),1/this.alfa)*Math.pow((1+this.e*Math.sin(a))/(1-this.e*Math.sin(a)),this.e/2))-this.s45),Math.abs(a-A.y)<1e-10&&(o=1),a=A.y,n+=1;while(o===0&&n<15);return n>=15?null:A}var O0=["Krovak","Krovak Modified","Krovak (North Orientated)","Krovak Modified (North Orientated)","krovak"],Tn={init:J0,forward:P0,inverse:q0,names:O0};function hA(A,t,e,i,g){return A*g-t*Math.sin(2*g)+e*Math.sin(4*g)-i*Math.sin(6*g)}function Qt(A){return 1-.25*A*(1+A/16*(3+1.25*A))}function lt(A){return .375*A*(1+.25*A*(1+.46875*A))}function ft(A){return .05859375*A*A*(1+.75*A)}function ct(A){return A*A*A*(35/3072)}function Ci(A,t,e){var i=t*e;return A/Math.sqrt(1-i*i)}function kA(A){return Math.abs(A)<N?A:A-gt(A)*Math.PI}function Tt(A,t,e,i,g){var I,r;I=A/t;for(var a=0;a<15;a++)if(r=(A-(t*I-e*Math.sin(2*I)+i*Math.sin(4*I)-g*Math.sin(6*I)))/(t-2*e*Math.cos(2*I)+4*i*Math.cos(4*I)-6*g*Math.cos(6*I)),I+=r,Math.abs(r)<=1e-10)return I;return NaN}function j0(){this.sphere||(this.e0=Qt(this.es),this.e1=lt(this.es),this.e2=ft(this.es),this.e3=ct(this.es),this.ml0=this.a*hA(this.e0,this.e1,this.e2,this.e3,this.lat0))}function Z0(A){var t,e,i=A.x,g=A.y;if(i=R(i-this.long0,this.over),this.sphere)t=this.a*Math.asin(Math.cos(g)*Math.sin(i)),e=this.a*(Math.atan2(Math.tan(g),Math.cos(i))-this.lat0);else{var I=Math.sin(g),r=Math.cos(g),a=Ci(this.a,this.e,I),o=Math.tan(g)*Math.tan(g),s=i*Math.cos(g),n=s*s,E=this.es*r*r/(1-this.es),B=this.a*hA(this.e0,this.e1,this.e2,this.e3,g);t=a*s*(1-n*o*(1/6-(8-o+8*E)*n/120)),e=B-this.ml0+a*I/r*n*(.5+(5-o+6*E)*n/24)}return A.x=t+this.x0,A.y=e+this.y0,A}function z0(A){A.x-=this.x0,A.y-=this.y0;var t=A.x/this.a,e=A.y/this.a,i,g;if(this.sphere){var I=e+this.lat0;i=Math.asin(Math.sin(I)*Math.cos(t)),g=Math.atan2(Math.tan(t),Math.cos(I))}else{var r=this.ml0/this.a+e,a=Tt(r,this.e0,this.e1,this.e2,this.e3);if(Math.abs(Math.abs(a)-N)<=F)return A.x=this.long0,A.y=N,e<0&&(A.y*=-1),A;var o=Ci(this.a,this.e,Math.sin(a)),s=o*o*o/this.a/this.a*(1-this.es),n=Math.pow(Math.tan(a),2),E=t*this.a/o,B=E*E;i=a-o*Math.tan(a)/s*E*E*(.5-(1+3*n)*E*E/24),g=E*(1-B*(n/3+(1+3*n)*n*B/15))/Math.cos(a)}return A.x=R(g+this.long0,this.over),A.y=kA(i),A}var V0=["Cassini","Cassini_Soldner","cass"],Jn={init:j0,forward:Z0,inverse:z0,names:V0};function ZA(A,t){var e;return A>1e-7?(e=A*t,(1-A*A)*(t/(1-e*e)-.5/A*Math.log((1-e)/(1+e)))):2*t}var Sa=1,ma=2,Ga=3,Lg=4;function W0(){var A=Math.abs(this.lat0);if(Math.abs(A-N)<F?this.mode=this.lat0<0?Sa:ma:Math.abs(A)<F?this.mode=Ga:this.mode=Lg,this.es>0){var t;switch(this.qp=ZA(this.e,1),this.mmf=.5/(1-this.es),this.apa=al(this.es),this.mode){case ma:this.dd=1;break;case Sa:this.dd=1;break;case Ga:this.rq=Math.sqrt(.5*this.qp),this.dd=1/this.rq,this.xmf=1,this.ymf=.5*this.qp;break;case Lg:this.rq=Math.sqrt(.5*this.qp),t=Math.sin(this.lat0),this.sinb1=ZA(this.e,t)/this.qp,this.cosb1=Math.sqrt(1-this.sinb1*this.sinb1),this.dd=Math.cos(this.lat0)/(Math.sqrt(1-this.es*t*t)*this.rq*this.cosb1),this.ymf=(this.xmf=this.rq)/this.dd,this.xmf*=this.dd;break}}else this.mode===Lg&&(this.sinph0=Math.sin(this.lat0),this.cosph0=Math.cos(this.lat0))}function X0(A){var t,e,i,g,I,r,a,o,s,n,E=A.x,B=A.y;if(E=R(E-this.long0,this.over),this.sphere){if(I=Math.sin(B),n=Math.cos(B),i=Math.cos(E),this.mode===this.OBLIQ||this.mode===this.EQUIT){if(e=this.mode===this.EQUIT?1+n*i:1+this.sinph0*I+this.cosph0*n*i,e<=F)return null;e=Math.sqrt(2/e),t=e*n*Math.sin(E),e*=this.mode===this.EQUIT?I:this.cosph0*I-this.sinph0*n*i}else if(this.mode===this.N_POLE||this.mode===this.S_POLE){if(this.mode===this.N_POLE&&(i=-i),Math.abs(B+this.lat0)<F)return null;e=z-B*.5,e=2*(this.mode===this.S_POLE?Math.cos(e):Math.sin(e)),t=e*Math.sin(E),e*=i}}else{switch(a=0,o=0,s=0,i=Math.cos(E),g=Math.sin(E),I=Math.sin(B),r=ZA(this.e,I),(this.mode===this.OBLIQ||this.mode===this.EQUIT)&&(a=r/this.qp,o=Math.sqrt(1-a*a)),this.mode){case this.OBLIQ:s=1+this.sinb1*a+this.cosb1*o*i;break;case this.EQUIT:s=1+o*i;break;case this.N_POLE:s=N+B,r=this.qp-r;break;case this.S_POLE:s=B-N,r=this.qp+r;break}if(Math.abs(s)<F)return null;switch(this.mode){case this.OBLIQ:case this.EQUIT:s=Math.sqrt(2/s),this.mode===this.OBLIQ?e=this.ymf*s*(this.cosb1*a-this.sinb1*o*i):e=(s=Math.sqrt(2/(1+o*i)))*a*this.ymf,t=this.xmf*s*o*g;break;case this.N_POLE:case this.S_POLE:r>=0?(t=(s=Math.sqrt(r))*g,e=i*(this.mode===this.S_POLE?s:-s)):t=e=0;break}}return A.x=this.a*t+this.x0,A.y=this.a*e+this.y0,A}function $0(A){A.x-=this.x0,A.y-=this.y0;var t=A.x/this.a,e=A.y/this.a,i,g,I,r,a,o,s;if(this.sphere){var n=0,E,B=0;if(E=Math.sqrt(t*t+e*e),g=E*.5,g>1)return null;switch(g=2*Math.asin(g),(this.mode===this.OBLIQ||this.mode===this.EQUIT)&&(B=Math.sin(g),n=Math.cos(g)),this.mode){case this.EQUIT:g=Math.abs(E)<=F?0:Math.asin(e*B/E),t*=B,e=n*E;break;case this.OBLIQ:g=Math.abs(E)<=F?this.lat0:Math.asin(n*this.sinph0+e*B*this.cosph0/E),t*=B*this.cosph0,e=(n-Math.sin(g)*this.sinph0)*E;break;case this.N_POLE:e=-e,g=N-g;break;case this.S_POLE:g-=N;break}i=e===0&&(this.mode===this.EQUIT||this.mode===this.OBLIQ)?0:Math.atan2(t,e)}else{if(s=0,this.mode===this.OBLIQ||this.mode===this.EQUIT){if(t/=this.dd,e*=this.dd,o=Math.sqrt(t*t+e*e),o<F)return A.x=this.long0,A.y=this.lat0,A;r=2*Math.asin(.5*o/this.rq),I=Math.cos(r),t*=r=Math.sin(r),this.mode===this.OBLIQ?(s=I*this.sinb1+e*r*this.cosb1/o,a=this.qp*s,e=o*this.cosb1*I-e*this.sinb1*r):(s=e*r/o,a=this.qp*s,e=o*I)}else if(this.mode===this.N_POLE||this.mode===this.S_POLE){if(this.mode===this.N_POLE&&(e=-e),a=t*t+e*e,!a)return A.x=this.long0,A.y=this.lat0,A;s=1-a/this.qp,this.mode===this.S_POLE&&(s=-s)}i=Math.atan2(t,e),g=sl(Math.asin(s),this.apa)}return A.x=R(this.long0+i,this.over),A.y=g,A}var Al=.3333333333333333,tl=.17222222222222222,el=.10257936507936508,il=.06388888888888888,gl=.0664021164021164,Il=.016415012942191543;function al(A){var t,e=[];return e[0]=A*Al,t=A*A,e[0]+=t*tl,e[1]=t*il,t*=A,e[0]+=t*el,e[1]+=t*gl,e[2]=t*Il,e}function sl(A,t){var e=A+A;return A+t[0]*Math.sin(e)+t[1]*Math.sin(e+e)+t[2]*Math.sin(e+e+e)}var rl=["Lambert Azimuthal Equal Area","Lambert_Azimuthal_Equal_Area","laea"],Pn={init:W0,forward:X0,inverse:$0,names:rl,S_POLE:Sa,N_POLE:ma,EQUIT:Ga,OBLIQ:Lg};function LA(A){return Math.abs(A)>1&&(A=A>1?1:-1),Math.asin(A)}function ol(){Math.abs(this.lat1+this.lat2)<F||(this.temp=this.b/this.a,this.es=1-Math.pow(this.temp,2),this.e3=Math.sqrt(this.es),this.sin_po=Math.sin(this.lat1),this.cos_po=Math.cos(this.lat1),this.t1=this.sin_po,this.con=this.sin_po,this.ms1=wA(this.e3,this.sin_po,this.cos_po),this.qs1=ZA(this.e3,this.sin_po),this.sin_po=Math.sin(this.lat2),this.cos_po=Math.cos(this.lat2),this.t2=this.sin_po,this.ms2=wA(this.e3,this.sin_po,this.cos_po),this.qs2=ZA(this.e3,this.sin_po),this.sin_po=Math.sin(this.lat0),this.cos_po=Math.cos(this.lat0),this.t3=this.sin_po,this.qs0=ZA(this.e3,this.sin_po),Math.abs(this.lat1-this.lat2)>F?this.ns0=(this.ms1*this.ms1-this.ms2*this.ms2)/(this.qs2-this.qs1):this.ns0=this.con,this.c=this.ms1*this.ms1+this.ns0*this.qs1,this.rh=this.a*Math.sqrt(this.c-this.ns0*this.qs0)/this.ns0)}function nl(A){var t=A.x,e=A.y;this.sin_phi=Math.sin(e),this.cos_phi=Math.cos(e);var i=ZA(this.e3,this.sin_phi),g=this.a*Math.sqrt(this.c-this.ns0*i)/this.ns0,I=this.ns0*R(t-this.long0,this.over),r=g*Math.sin(I)+this.x0,a=this.rh-g*Math.cos(I)+this.y0;return A.x=r,A.y=a,A}function Cl(A){var t,e,i,g,I,r;return A.x-=this.x0,A.y=this.rh-A.y+this.y0,this.ns0>=0?(t=Math.sqrt(A.x*A.x+A.y*A.y),i=1):(t=-Math.sqrt(A.x*A.x+A.y*A.y),i=-1),g=0,t!==0&&(g=Math.atan2(i*A.x,i*A.y)),i=t*this.ns0/this.a,this.sphere?r=Math.asin((this.c-i*i)/(2*this.ns0)):(e=(this.c-i*i)/this.ns0,r=this.phi1z(this.e3,e)),I=R(g/this.ns0+this.long0,this.over),A.x=I,A.y=r,A}function Bl(A,t){var e,i,g,I,r,a=LA(.5*t);if(A<F)return a;for(var o=A*A,s=1;s<=25;s++)if(e=Math.sin(a),i=Math.cos(a),g=A*e,I=1-g*g,r=.5*I*I/i*(t/(1-o)-e/I+.5/A*Math.log((1-g)/(1+g))),a=a+r,Math.abs(r)<=1e-7)return a;return null}var El=["Albers_Conic_Equal_Area","Albers_Equal_Area","Albers","aea"],qn={init:ol,forward:nl,inverse:Cl,names:El,phi1z:Bl};function hl(){this.sin_p14=Math.sin(this.lat0),this.cos_p14=Math.cos(this.lat0),this.infinity_dist=1e3*this.a,this.rc=1}function Ql(A){var t,e,i,g,I,r,a,o,s=A.x,n=A.y;return i=R(s-this.long0,this.over),t=Math.sin(n),e=Math.cos(n),g=Math.cos(i),r=this.sin_p14*t+this.cos_p14*e*g,I=1,r>0||Math.abs(r)<=F?(a=this.x0+this.a*I*e*Math.sin(i)/r,o=this.y0+this.a*I*(this.cos_p14*t-this.sin_p14*e*g)/r):(a=this.x0+this.infinity_dist*e*Math.sin(i),o=this.y0+this.infinity_dist*(this.cos_p14*t-this.sin_p14*e*g)),A.x=a,A.y=o,A}function ll(A){var t,e,i,g,I,r;return A.x=(A.x-this.x0)/this.a,A.y=(A.y-this.y0)/this.a,A.x/=this.k0,A.y/=this.k0,(t=Math.sqrt(A.x*A.x+A.y*A.y))?(g=Math.atan2(t,this.rc),e=Math.sin(g),i=Math.cos(g),r=LA(i*this.sin_p14+A.y*e*this.cos_p14/t),I=Math.atan2(A.x*e,t*this.cos_p14*i-A.y*this.sin_p14*e),I=R(this.long0+I,this.over)):(r=this.phic0,I=0),A.x=I,A.y=r,A}var fl=["gnom"],On={init:hl,forward:Ql,inverse:ll,names:fl};function jn(A,t){var e=1-(1-A*A)/(2*A)*Math.log((1-A)/(1+A));if(Math.abs(Math.abs(t)-e)<1e-6)return t<0?-1*N:N;for(var i=Math.asin(.5*t),g,I,r,a,o=0;o<30;o++)if(I=Math.sin(i),r=Math.cos(i),a=A*I,g=Math.pow(1-a*a,2)/(2*r)*(t/(1-A*A)-I/(1-a*a)+.5/A*Math.log((1-a)/(1+a))),i+=g,Math.abs(g)<=1e-10)return i;return NaN}function cl(){this.sphere||(this.k0=wA(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)))}function ul(A){var t=A.x,e=A.y,i,g,I=R(t-this.long0,this.over);if(this.sphere)i=this.x0+this.a*I*Math.cos(this.lat_ts),g=this.y0+this.a*Math.sin(e)/Math.cos(this.lat_ts);else{var r=ZA(this.e,Math.sin(e));i=this.x0+this.a*this.k0*I,g=this.y0+this.a*r*.5/this.k0}return A.x=i,A.y=g,A}function dl(A){A.x-=this.x0,A.y-=this.y0;var t,e;return this.sphere?(t=R(this.long0+A.x/this.a/Math.cos(this.lat_ts),this.over),e=Math.asin(A.y/this.a*Math.cos(this.lat_ts))):(e=jn(this.e,2*A.y*this.k0/this.a),t=R(this.long0+A.x/(this.a*this.k0),this.over)),A.x=t,A.y=e,A}var wl=["cea"],Zn={init:cl,forward:ul,inverse:dl,names:wl};function yl(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||"Equidistant Cylindrical (Plate Carre)",this.rc=Math.cos(this.lat_ts)}function Dl(A){var t=A.x,e=A.y,i=R(t-this.long0,this.over),g=kA(e-this.lat0);return A.x=this.x0+this.a*i*this.rc,A.y=this.y0+this.a*g,A}function Sl(A){var t=A.x,e=A.y;return A.x=R(this.long0+(t-this.x0)/(this.a*this.rc),this.over),A.y=kA(this.lat0+(e-this.y0)/this.a),A}var ml=["Equirectangular","Equidistant_Cylindrical","Equidistant_Cylindrical_Spherical","eqc"],zn={init:yl,forward:Dl,inverse:Sl,names:ml};var Vn=20;function Gl(){this.temp=this.b/this.a,this.es=1-Math.pow(this.temp,2),this.e=Math.sqrt(this.es),this.e0=Qt(this.es),this.e1=lt(this.es),this.e2=ft(this.es),this.e3=ct(this.es),this.ml0=this.a*hA(this.e0,this.e1,this.e2,this.e3,this.lat0)}function Ml(A){var t=A.x,e=A.y,i,g,I,r=R(t-this.long0,this.over);if(I=r*Math.sin(e),this.sphere)Math.abs(e)<=F?(i=this.a*r,g=-1*this.a*this.lat0):(i=this.a*Math.sin(I)/Math.tan(e),g=this.a*(kA(e-this.lat0)+(1-Math.cos(I))/Math.tan(e)));else if(Math.abs(e)<=F)i=this.a*r,g=-1*this.ml0;else{var a=Ci(this.a,this.e,Math.sin(e))/Math.tan(e);i=a*Math.sin(I),g=this.a*hA(this.e0,this.e1,this.e2,this.e3,e)-this.ml0+a*(1-Math.cos(I))}return A.x=i+this.x0,A.y=g+this.y0,A}function Nl(A){var t,e,i,g,I,r,a,o,s;if(i=A.x-this.x0,g=A.y-this.y0,this.sphere)if(Math.abs(g+this.a*this.lat0)<=F)t=R(i/this.a+this.long0,this.over),e=0;else{r=this.lat0+g/this.a,a=i*i/this.a/this.a+r*r,o=r;var n;for(I=Vn;I;--I)if(n=Math.tan(o),s=-1*(r*(o*n+1)-o-.5*(o*o+a)*n)/((o-r)/n-1),o+=s,Math.abs(s)<=F){e=o;break}t=R(this.long0+Math.asin(i*Math.tan(o)/this.a)/Math.sin(e),this.over)}else if(Math.abs(g+this.ml0)<=F)e=0,t=R(this.long0+i/this.a,this.over);else{r=(this.ml0+g)/this.a,a=i*i/this.a/this.a+r*r,o=r;var E,B,C,h,Q;for(I=Vn;I;--I)if(Q=this.e*Math.sin(o),E=Math.sqrt(1-Q*Q)*Math.tan(o),B=this.a*hA(this.e0,this.e1,this.e2,this.e3,o),C=this.e0-2*this.e1*Math.cos(2*o)+4*this.e2*Math.cos(4*o)-6*this.e3*Math.cos(6*o),h=B/this.a,s=(r*(E*h+1)-h-.5*E*(h*h+a))/(this.es*Math.sin(2*o)*(h*h+a-2*r*h)/(4*E)+(r-h)*(E*C-2/Math.sin(2*o))-C),o-=s,Math.abs(s)<=F){e=o;break}E=Math.sqrt(1-this.es*Math.pow(Math.sin(e),2))*Math.tan(e),t=R(this.long0+Math.asin(i*E/this.a)/Math.sin(e),this.over)}return A.x=t,A.y=e,A}var pl=["Polyconic","American_Polyconic","poly"],Wn={init:Gl,forward:Ml,inverse:Nl,names:pl};function _l(){this.A=[],this.A[1]=.6399175073,this.A[2]=-.1358797613,this.A[3]=.063294409,this.A[4]=-.02526853,this.A[5]=.0117879,this.A[6]=-.0055161,this.A[7]=.0026906,this.A[8]=-.001333,this.A[9]=67e-5,this.A[10]=-34e-5,this.B_re=[],this.B_im=[],this.B_re[1]=.7557853228,this.B_im[1]=0,this.B_re[2]=.249204646,this.B_im[2]=.003371507,this.B_re[3]=-.001541739,this.B_im[3]=.04105856,this.B_re[4]=-.10162907,this.B_im[4]=.01727609,this.B_re[5]=-.26623489,this.B_im[5]=-.36249218,this.B_re[6]=-.6870983,this.B_im[6]=-1.1651967,this.C_re=[],this.C_im=[],this.C_re[1]=1.3231270439,this.C_im[1]=0,this.C_re[2]=-.577245789,this.C_im[2]=-.007809598,this.C_re[3]=.508307513,this.C_im[3]=-.112208952,this.C_re[4]=-.15094762,this.C_im[4]=.18200602,this.C_re[5]=1.01418179,this.C_im[5]=1.64497696,this.C_re[6]=1.9660549,this.C_im[6]=2.5127645,this.D=[],this.D[1]=1.5627014243,this.D[2]=.5185406398,this.D[3]=-.03333098,this.D[4]=-.1052906,this.D[5]=-.0368594,this.D[6]=.007317,this.D[7]=.0122,this.D[8]=.00394,this.D[9]=-.0013}function Fl(A){var t,e=A.x,i=A.y,g=i-this.lat0,I=e-this.long0,r=g/bt*1e-5,a=I,o=1,s=0;for(t=1;t<=10;t++)o=o*r,s=s+this.A[t]*o;var n=s,E=a,B=1,C=0,h,Q,l=0,c=0;for(t=1;t<=6;t++)h=B*n-C*E,Q=C*n+B*E,B=h,C=Q,l=l+this.B_re[t]*B-this.B_im[t]*C,c=c+this.B_im[t]*B+this.B_re[t]*C;return A.x=c*this.a+this.x0,A.y=l*this.a+this.y0,A}function Rl(A){var t,e=A.x,i=A.y,g=e-this.x0,I=i-this.y0,r=I/this.a,a=g/this.a,o=1,s=0,n,E,B=0,C=0;for(t=1;t<=6;t++)n=o*r-s*a,E=s*r+o*a,o=n,s=E,B=B+this.C_re[t]*o-this.C_im[t]*s,C=C+this.C_im[t]*o+this.C_re[t]*s;for(var h=0;h<this.iterations;h++){var Q=B,l=C,c,w,D=r,y=a;for(t=2;t<=6;t++)c=Q*B-l*C,w=l*B+Q*C,Q=c,l=w,D=D+(t-1)*(this.B_re[t]*Q-this.B_im[t]*l),y=y+(t-1)*(this.B_im[t]*Q+this.B_re[t]*l);Q=1,l=0;var f=this.B_re[1],u=this.B_im[1];for(t=2;t<=6;t++)c=Q*B-l*C,w=l*B+Q*C,Q=c,l=w,f=f+t*(this.B_re[t]*Q-this.B_im[t]*l),u=u+t*(this.B_im[t]*Q+this.B_re[t]*l);var d=f*f+u*u;B=(D*f+y*u)/d,C=(y*f-D*u)/d}var G=B,M=C,m=1,_=0;for(t=1;t<=9;t++)m=m*G,_=_+this.D[t]*m;var k=this.lat0+_*bt*1e5,v=this.long0+M;return A.x=v,A.y=k,A}var kl=["New_Zealand_Map_Grid","nzmg"],Xn={init:_l,forward:Fl,inverse:Rl,names:kl};function Ll(){}function xl(A){var t=A.x,e=A.y,i=R(t-this.long0,this.over),g=this.x0+this.a*i,I=this.y0+this.a*Math.log(Math.tan(Math.PI/4+e/2.5))*1.25;return A.x=g,A.y=I,A}function Ul(A){A.x-=this.x0,A.y-=this.y0;var t=R(this.long0+A.x/this.a,this.over),e=2.5*(Math.atan(Math.exp(.8*A.y/this.a))-Math.PI/4);return A.x=t,A.y=e,A}var vl=["Miller_Cylindrical","mill"],$n={init:Ll,forward:xl,inverse:Ul,names:vl};var bl=20;function Yl(){this.long0=this.long0||0,this.sphere?(this.n=1,this.m=0,this.es=0,this.C_y=Math.sqrt((this.m+1)/this.n),this.C_x=this.C_y/(this.m+1)):this.en=ue(this.es)}function Kl(A){var t,e,i=A.x,g=A.y;if(i=R(i-this.long0,this.over),this.sphere){if(!this.m)g=this.n!==1?Math.asin(this.n*Math.sin(g)):g;else for(var I=this.n*Math.sin(g),r=bl;r;--r){var a=(this.m*g+Math.sin(g)-I)/(this.m+Math.cos(g));if(g-=a,Math.abs(a)<F)break}t=this.a*this.C_x*i*(this.m+Math.cos(g)),e=this.a*this.C_y*g}else{var o=Math.sin(g),s=Math.cos(g);e=this.a*It(g,o,s,this.en),t=this.a*i*s/Math.sqrt(1-this.es*o*o)}return A.x=t,A.y=e,A}function Hl(A){var t,e,i,g;return A.x-=this.x0,i=A.x/this.a,A.y-=this.y0,t=A.y/this.a,this.sphere?(t/=this.C_y,i=i/(this.C_x*(this.m+Math.cos(t))),this.m?t=LA((this.m*t+Math.sin(t))/this.n):this.n!==1&&(t=LA(Math.sin(t)/this.n)),i=R(i+this.long0,this.over),t=kA(t)):(t=de(A.y/this.a,this.es,this.en),g=Math.abs(t),g<N?(g=Math.sin(t),e=this.long0+A.x*Math.sqrt(1-this.es*g*g)/(this.a*Math.cos(t)),i=R(e,this.over)):g-F<N&&(i=this.long0)),A.x=i,A.y=t,A}var Tl=["Sinusoidal","sinu"],AC={init:Yl,forward:Kl,inverse:Hl,names:Tl};function Jl(){this.x0=this.x0!==void 0?this.x0:0,this.y0=this.y0!==void 0?this.y0:0,this.long0=this.long0!==void 0?this.long0:0}function Pl(A){for(var t=A.x,e=A.y,i=R(t-this.long0,this.over),g=e,I=Math.PI*Math.sin(e);;){var r=-(g+Math.sin(g)-I)/(1+Math.cos(g));if(g+=r,Math.abs(r)<F)break}g/=2,Math.PI/2-Math.abs(e)<F&&(i=0);var a=.900316316158*this.a*i*Math.cos(g)+this.x0,o=1.4142135623731*this.a*Math.sin(g)+this.y0;return A.x=a,A.y=o,A}function ql(A){var t,e;A.x-=this.x0,A.y-=this.y0,e=A.y/(1.4142135623731*this.a),Math.abs(e)>.999999999999&&(e=.999999999999),t=Math.asin(e);var i=R(this.long0+A.x/(.900316316158*this.a*Math.cos(t)),this.over);i<-Math.PI&&(i=-Math.PI),i>Math.PI&&(i=Math.PI),e=(2*t+Math.sin(2*t))/Math.PI,Math.abs(e)>1&&(e=1);var g=Math.asin(e);return A.x=i,A.y=g,A}var Ol=["Mollweide","moll"],tC={init:Jl,forward:Pl,inverse:ql,names:Ol};function jl(){Math.abs(this.lat1+this.lat2)<F||(this.lat2=this.lat2||this.lat1,this.temp=this.b/this.a,this.es=1-Math.pow(this.temp,2),this.e=Math.sqrt(this.es),this.e0=Qt(this.es),this.e1=lt(this.es),this.e2=ft(this.es),this.e3=ct(this.es),this.sin_phi=Math.sin(this.lat1),this.cos_phi=Math.cos(this.lat1),this.ms1=wA(this.e,this.sin_phi,this.cos_phi),this.ml1=hA(this.e0,this.e1,this.e2,this.e3,this.lat1),Math.abs(this.lat1-this.lat2)<F?this.ns=this.sin_phi:(this.sin_phi=Math.sin(this.lat2),this.cos_phi=Math.cos(this.lat2),this.ms2=wA(this.e,this.sin_phi,this.cos_phi),this.ml2=hA(this.e0,this.e1,this.e2,this.e3,this.lat2),this.ns=(this.ms1-this.ms2)/(this.ml2-this.ml1)),this.g=this.ml1+this.ms1/this.ns,this.ml0=hA(this.e0,this.e1,this.e2,this.e3,this.lat0),this.rh=this.a*(this.g-this.ml0))}function Zl(A){var t=A.x,e=A.y,i;if(this.sphere)i=this.a*(this.g-e);else{var g=hA(this.e0,this.e1,this.e2,this.e3,e);i=this.a*(this.g-g)}var I=this.ns*R(t-this.long0,this.over),r=this.x0+i*Math.sin(I),a=this.y0+this.rh-i*Math.cos(I);return A.x=r,A.y=a,A}function zl(A){A.x-=this.x0,A.y=this.rh-A.y+this.y0;var t,e,i,g;this.ns>=0?(e=Math.sqrt(A.x*A.x+A.y*A.y),t=1):(e=-Math.sqrt(A.x*A.x+A.y*A.y),t=-1);var I=0;if(e!==0&&(I=Math.atan2(t*A.x,t*A.y)),this.sphere)return g=R(this.long0+I/this.ns,this.over),i=kA(this.g-e/this.a),A.x=g,A.y=i,A;var r=this.g-e/this.a;return i=Tt(r,this.e0,this.e1,this.e2,this.e3),g=R(this.long0+I/this.ns,this.over),A.x=g,A.y=i,A}var Vl=["Equidistant_Conic","eqdc"],eC={init:jl,forward:Zl,inverse:zl,names:Vl};function Wl(){this.R=this.a}function Xl(A){var t=A.x,e=A.y,i=R(t-this.long0,this.over),g,I;Math.abs(e)<=F&&(g=this.x0+this.R*i,I=this.y0);var r=LA(2*Math.abs(e/Math.PI));(Math.abs(i)<=F||Math.abs(Math.abs(e)-N)<=F)&&(g=this.x0,e>=0?I=this.y0+Math.PI*this.R*Math.tan(.5*r):I=this.y0+Math.PI*this.R*-Math.tan(.5*r));var a=.5*Math.abs(Math.PI/i-i/Math.PI),o=a*a,s=Math.sin(r),n=Math.cos(r),E=n/(s+n-1),B=E*E,C=E*(2/s-1),h=C*C,Q=Math.PI*this.R*(a*(E-h)+Math.sqrt(o*(E-h)*(E-h)-(h+o)*(B-h)))/(h+o);i<0&&(Q=-Q),g=this.x0+Q;var l=o+E;return Q=Math.PI*this.R*(C*l-a*Math.sqrt((h+o)*(o+1)-l*l))/(h+o),e>=0?I=this.y0+Q:I=this.y0-Q,A.x=g,A.y=I,A}function $l(A){var t,e,i,g,I,r,a,o,s,n,E,B,C;return A.x-=this.x0,A.y-=this.y0,E=Math.PI*this.R,i=A.x/E,g=A.y/E,I=i*i+g*g,r=-Math.abs(g)*(1+I),a=r-2*g*g+i*i,o=-2*r+1+2*g*g+I*I,C=g*g/o+(2*a*a*a/o/o/o-9*r*a/o/o)/27,s=(r-a*a/3/o)/o,n=2*Math.sqrt(-s/3),E=3*C/s/n,Math.abs(E)>1&&(E>=0?E=1:E=-1),B=Math.acos(E)/3,A.y>=0?e=(-n*Math.cos(B+Math.PI/3)-a/3/o)*Math.PI:e=-(-n*Math.cos(B+Math.PI/3)-a/3/o)*Math.PI,Math.abs(i)<F?t=this.long0:t=R(this.long0+Math.PI*(I-1+Math.sqrt(1+2*(i*i-g*g)+I*I))/2/i,this.over),A.x=t,A.y=e,A}var Af=["Van_der_Grinten_I","VanDerGrinten","Van_der_Grinten","vandg"],iC={init:Wl,forward:Xl,inverse:$l,names:Af};function gC(A,t,e,i,g,I){let r=i-t,a=Math.atan((1-I)*Math.tan(A)),o=Math.atan((1-I)*Math.tan(e)),s=Math.sin(a),n=Math.cos(a),E=Math.sin(o),B=Math.cos(o),C=r,h,Q=100,l,c,w,D,y,f,u,d,G,M,m,_,k,v;do{if(l=Math.sin(C),c=Math.cos(C),w=Math.sqrt(B*l*(B*l)+(n*E-s*B*c)*(n*E-s*B*c)),w===0)return{azi1:0,s12:0};D=s*E+n*B*c,y=Math.atan2(w,D),f=n*B*l/w,u=1-f*f,d=u!==0?D-2*s*E/u:0,G=I/16*u*(4+I*(4-3*u)),h=C,C=r+(1-G)*I*f*(y+G*w*(d+G*D*(-1+2*d*d)))}while(Math.abs(C-h)>1e-12&&--Q>0);return Q===0?{azi1:NaN,s12:NaN}:(M=u*(g*g-g*(1-I)*(g*(1-I)))/(g*(1-I)*(g*(1-I))),m=1+M/16384*(4096+M*(-768+M*(320-175*M))),_=M/1024*(256+M*(-128+M*(74-47*M))),k=_*w*(d+_/4*(D*(-1+2*d*d)-_/6*d*(-3+4*w*w)*(-3+4*d*d))),v=g*(1-I)*m*(y-k),{azi1:Math.atan2(B*l,n*E-s*B*c),s12:v})}function IC(A,t,e,i,g,I){let r=Math.atan((1-I)*Math.tan(A)),a=Math.sin(r),o=Math.cos(r),s=Math.sin(e),n=Math.cos(e),E=Math.atan2(a,o*n),B=o*s,C=1-B*B,h=C*(g*g-g*(1-I)*(g*(1-I)))/(g*(1-I)*(g*(1-I))),Q=1+h/16384*(4096+h*(-768+h*(320-175*h))),l=h/1024*(256+h*(-128+h*(74-47*h))),c=i/(g*(1-I)*Q),w,D=100,y,f,u,d;do y=Math.cos(2*E+c),f=Math.sin(c),u=Math.cos(c),d=l*f*(y+l/4*(u*(-1+2*y*y)-l/6*y*(-3+4*f*f)*(-3+4*y*y))),w=c,c=i/(g*(1-I)*Q)+d;while(Math.abs(c-w)>1e-12&&--D>0);if(D===0)return{lat2:NaN,lon2:NaN};let G=a*f-o*u*n,M=Math.atan2(a*u+o*f*n,(1-I)*Math.sqrt(B*B+G*G)),m=Math.atan2(f*s,o*u-a*f*n),_=I/16*C*(4+I*(4-3*C)),k=m-(1-_)*I*B*(c+_*f*(y+_*u*(-1+2*y*y))),v=t+k;return{lat2:M,lon2:v}}function tf(){this.sin_p12=Math.sin(this.lat0),this.cos_p12=Math.cos(this.lat0),this.f=this.es/(1+Math.sqrt(1-this.es))}function ef(A){var t=A.x,e=A.y,i=Math.sin(A.y),g=Math.cos(A.y),I=R(t-this.long0,this.over),r,a,o,s,n,E,B,C,h,Q,l;return this.sphere?Math.abs(this.sin_p12-1)<=F?(A.x=this.x0+this.a*(N-e)*Math.sin(I),A.y=this.y0-this.a*(N-e)*Math.cos(I),A):Math.abs(this.sin_p12+1)<=F?(A.x=this.x0+this.a*(N+e)*Math.sin(I),A.y=this.y0+this.a*(N+e)*Math.cos(I),A):(h=this.sin_p12*i+this.cos_p12*g*Math.cos(I),B=Math.acos(h),C=B?B/Math.sin(B):1,A.x=this.x0+this.a*C*g*Math.sin(I),A.y=this.y0+this.a*C*(this.cos_p12*i-this.sin_p12*g*Math.cos(I)),A):(r=Qt(this.es),a=lt(this.es),o=ft(this.es),s=ct(this.es),Math.abs(this.sin_p12-1)<=F?(n=this.a*hA(r,a,o,s,N),E=this.a*hA(r,a,o,s,e),A.x=this.x0+(n-E)*Math.sin(I),A.y=this.y0-(n-E)*Math.cos(I),A):Math.abs(this.sin_p12+1)<=F?(n=this.a*hA(r,a,o,s,N),E=this.a*hA(r,a,o,s,e),A.x=this.x0+(n+E)*Math.sin(I),A.y=this.y0+(n+E)*Math.cos(I),A):Math.abs(t)<F&&Math.abs(e-this.lat0)<F?(A.x=A.y=0,A):(Q=gC(this.lat0,this.long0,e,t,this.a,this.f),l=Q.azi1,A.x=Q.s12*Math.sin(l),A.y=Q.s12*Math.cos(l),A))}function gf(A){A.x-=this.x0,A.y-=this.y0;var t,e,i,g,I,r,a,o,s,n,E,B,C,h,Q,l;return this.sphere?(t=Math.sqrt(A.x*A.x+A.y*A.y),t>2*N*this.a?void 0:(e=t/this.a,i=Math.sin(e),g=Math.cos(e),I=this.long0,Math.abs(t)<=F?r=this.lat0:(r=LA(g*this.sin_p12+A.y*i*this.cos_p12/t),a=Math.abs(this.lat0)-N,Math.abs(a)<=F?this.lat0>=0?I=R(this.long0+Math.atan2(A.x,-A.y),this.over):I=R(this.long0-Math.atan2(-A.x,A.y),this.over):I=R(this.long0+Math.atan2(A.x*i,t*this.cos_p12*g-A.y*this.sin_p12*i),this.over)),A.x=I,A.y=r,A)):(o=Qt(this.es),s=lt(this.es),n=ft(this.es),E=ct(this.es),Math.abs(this.sin_p12-1)<=F?(B=this.a*hA(o,s,n,E,N),t=Math.sqrt(A.x*A.x+A.y*A.y),C=B-t,r=Tt(C/this.a,o,s,n,E),I=R(this.long0+Math.atan2(A.x,-1*A.y),this.over),A.x=I,A.y=r,A):Math.abs(this.sin_p12+1)<=F?(B=this.a*hA(o,s,n,E,N),t=Math.sqrt(A.x*A.x+A.y*A.y),C=t-B,r=Tt(C/this.a,o,s,n,E),I=R(this.long0+Math.atan2(A.x,A.y),this.over),A.x=I,A.y=r,A):(h=Math.atan2(A.x,A.y),Q=Math.sqrt(A.x*A.x+A.y*A.y),l=IC(this.lat0,this.long0,h,Q,this.a,this.f),A.x=l.lon2,A.y=l.lat2,A))}var If=["Azimuthal_Equidistant","aeqd"],aC={init:tf,forward:ef,inverse:gf,names:If};function af(){this.sin_p14=Math.sin(this.lat0||0),this.cos_p14=Math.cos(this.lat0||0)}function sf(A){var t,e,i,g,I,r,a,o,s=A.x,n=A.y;return i=R(s-(this.long0||0),this.over),t=Math.sin(n),e=Math.cos(n),g=Math.cos(i),r=this.sin_p14*t+this.cos_p14*e*g,I=1,(r>0||Math.abs(r)<=F)&&(a=this.a*I*e*Math.sin(i),o=(this.y0||0)+this.a*I*(this.cos_p14*t-this.sin_p14*e*g)),A.x=a,A.y=o,A}function rf(A){var t,e,i,g,I,r,a,o,s;return A.x-=this.x0||0,A.y-=this.y0||0,t=Math.sqrt(A.x*A.x+A.y*A.y),e=LA(t/this.a),i=Math.sin(e),g=Math.cos(e),o=this.long0||0,s=this.lat0||0,r=o,Math.abs(t)<=F?(a=s,A.x=r,A.y=a,A):(a=LA(g*this.sin_p14+A.y*i*this.cos_p14/t),I=Math.abs(s)-N,Math.abs(I)<=F?(s>=0?r=R(o+Math.atan2(A.x,-A.y),this.over):r=R(o-Math.atan2(-A.x,A.y),this.over),A.x=r,A.y=a,A):(r=R(o+Math.atan2(A.x*i,t*this.cos_p14*g-A.y*this.sin_p14*i),this.over),A.x=r,A.y=a,A))}var of=["ortho"],sC={init:af,forward:sf,inverse:rf,names:of};var oA={FRONT:1,RIGHT:2,BACK:3,LEFT:4,TOP:5,BOTTOM:6},$={AREA_0:1,AREA_1:2,AREA_2:3,AREA_3:4};function nf(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||"Quadrilateralized Spherical Cube",this.lat0>=N-z/2?this.face=oA.TOP:this.lat0<=-(N-z/2)?this.face=oA.BOTTOM:Math.abs(this.long0)<=z?this.face=oA.FRONT:Math.abs(this.long0)<=N+z?this.face=this.long0>0?oA.RIGHT:oA.LEFT:this.face=oA.BACK,this.es!==0&&(this.one_minus_f=1-(this.a-this.b)/this.a,this.one_minus_f_squared=this.one_minus_f*this.one_minus_f)}function Cf(A){var t={x:0,y:0},e,i,g,I,r,a,o={value:0};if(A.x-=this.long0,this.es!==0?e=Math.atan(this.one_minus_f_squared*Math.tan(A.y)):e=A.y,i=A.x,this.face===oA.TOP)I=N-e,i>=z&&i<=N+z?(o.value=$.AREA_0,g=i-N):i>N+z||i<=-(N+z)?(o.value=$.AREA_1,g=i>0?i-rA:i+rA):i>-(N+z)&&i<=-z?(o.value=$.AREA_2,g=i+N):(o.value=$.AREA_3,g=i);else if(this.face===oA.BOTTOM)I=N+e,i>=z&&i<=N+z?(o.value=$.AREA_0,g=-i+N):i<z&&i>=-z?(o.value=$.AREA_1,g=-i):i<-z&&i>=-(N+z)?(o.value=$.AREA_2,g=-i-N):(o.value=$.AREA_3,g=i>0?-i+rA:-i-rA);else{var s,n,E,B,C,h,Q;this.face===oA.RIGHT?i=Se(i,+N):this.face===oA.BACK?i=Se(i,+rA):this.face===oA.LEFT&&(i=Se(i,-N)),B=Math.sin(e),C=Math.cos(e),h=Math.sin(i),Q=Math.cos(i),s=C*Q,n=C*h,E=B,this.face===oA.FRONT?(I=Math.acos(s),g=xg(I,E,n,o)):this.face===oA.RIGHT?(I=Math.acos(n),g=xg(I,E,-s,o)):this.face===oA.BACK?(I=Math.acos(-s),g=xg(I,E,-n,o)):this.face===oA.LEFT?(I=Math.acos(-n),g=xg(I,E,s,o)):(I=g=0,o.value=$.AREA_0)}return a=Math.atan(12/rA*(g+Math.acos(Math.sin(g)*Math.cos(z))-N)),r=Math.sqrt((1-Math.cos(I))/(Math.cos(a)*Math.cos(a))/(1-Math.cos(Math.atan(1/Math.cos(g))))),o.value===$.AREA_1?a+=N:o.value===$.AREA_2?a+=rA:o.value===$.AREA_3&&(a+=1.5*rA),t.x=r*Math.cos(a),t.y=r*Math.sin(a),t.x=t.x*this.a+this.x0,t.y=t.y*this.a+this.y0,A.x=t.x,A.y=t.y,A}function Bf(A){var t={lam:0,phi:0},e,i,g,I,r,a,o,s,n,E={value:0};if(A.x=(A.x-this.x0)/this.a,A.y=(A.y-this.y0)/this.a,i=Math.atan(Math.sqrt(A.x*A.x+A.y*A.y)),e=Math.atan2(A.y,A.x),A.x>=0&&A.x>=Math.abs(A.y)?E.value=$.AREA_0:A.y>=0&&A.y>=Math.abs(A.x)?(E.value=$.AREA_1,e-=N):A.x<0&&-A.x>=Math.abs(A.y)?(E.value=$.AREA_2,e=e<0?e+rA:e-rA):(E.value=$.AREA_3,e+=N),n=rA/12*Math.tan(e),r=Math.sin(n)/(Math.cos(n)-1/Math.sqrt(2)),a=Math.atan(r),g=Math.cos(e),I=Math.tan(i),o=1-g*g*I*I*(1-Math.cos(Math.atan(1/Math.cos(a)))),o<-1?o=-1:o>1&&(o=1),this.face===oA.TOP)s=Math.acos(o),t.phi=N-s,E.value===$.AREA_0?t.lam=a+N:E.value===$.AREA_1?t.lam=a<0?a+rA:a-rA:E.value===$.AREA_2?t.lam=a-N:t.lam=a;else if(this.face===oA.BOTTOM)s=Math.acos(o),t.phi=s-N,E.value===$.AREA_0?t.lam=-a+N:E.value===$.AREA_1?t.lam=-a:E.value===$.AREA_2?t.lam=-a-N:t.lam=a<0?-a-rA:-a+rA;else{var B,C,h;B=o,n=B*B,n>=1?h=0:h=Math.sqrt(1-n)*Math.sin(a),n+=h*h,n>=1?C=0:C=Math.sqrt(1-n),E.value===$.AREA_1?(n=C,C=-h,h=n):E.value===$.AREA_2?(C=-C,h=-h):E.value===$.AREA_3&&(n=C,C=h,h=-n),this.face===oA.RIGHT?(n=B,B=-C,C=n):this.face===oA.BACK?(B=-B,C=-C):this.face===oA.LEFT&&(n=B,B=C,C=-n),t.phi=Math.acos(-h)-N,t.lam=Math.atan2(C,B),this.face===oA.RIGHT?t.lam=Se(t.lam,-N):this.face===oA.BACK?t.lam=Se(t.lam,-rA):this.face===oA.LEFT&&(t.lam=Se(t.lam,+N))}if(this.es!==0){var Q,l,c;Q=t.phi<0?1:0,l=Math.tan(t.phi),c=this.b/Math.sqrt(l*l+this.one_minus_f_squared),t.phi=Math.atan(Math.sqrt(this.a*this.a-c*c)/(this.one_minus_f*c)),Q&&(t.phi=-t.phi)}return t.lam+=this.long0,A.x=t.lam,A.y=t.phi,A}function xg(A,t,e,i){var g;return A<F?(i.value=$.AREA_0,g=0):(g=Math.atan2(t,e),Math.abs(g)<=z?i.value=$.AREA_0:g>z&&g<=N+z?(i.value=$.AREA_1,g-=N):g>N+z||g<=-(N+z)?(i.value=$.AREA_2,g=g>=0?g-rA:g+rA):(i.value=$.AREA_3,g+=N)),g}function Se(A,t){var e=A+t;return e<-rA?e+=Mt:e>+rA&&(e-=Mt),e}var Ef=["Quadrilateralized Spherical Cube","Quadrilateralized_Spherical_Cube","qsc"],rC={init:nf,forward:Cf,inverse:Bf,names:Ef};var Ma=[[1,22199e-21,-715515e-10,31103e-10],[.9986,-482243e-9,-24897e-9,-13309e-10],[.9954,-83103e-8,-448605e-10,-986701e-12],[.99,-.00135364,-59661e-9,36777e-10],[.9822,-.00167442,-449547e-11,-572411e-11],[.973,-.00214868,-903571e-10,18736e-12],[.96,-.00305085,-900761e-10,164917e-11],[.9427,-.00382792,-653386e-10,-26154e-10],[.9216,-.00467746,-10457e-8,481243e-11],[.8962,-.00536223,-323831e-10,-543432e-11],[.8679,-.00609363,-113898e-9,332484e-11],[.835,-.00698325,-640253e-10,934959e-12],[.7986,-.00755338,-500009e-10,935324e-12],[.7597,-.00798324,-35971e-9,-227626e-11],[.7186,-.00851367,-701149e-10,-86303e-10],[.6732,-.00986209,-199569e-9,191974e-10],[.6213,-.010418,883923e-10,624051e-11],[.5722,-.00906601,182e-6,624051e-11],[.5322,-.00677797,275608e-9,624051e-11]],Bi=[[-520417e-23,.0124,121431e-23,-845284e-16],[.062,.0124,-126793e-14,422642e-15],[.124,.0124,507171e-14,-160604e-14],[.186,.0123999,-190189e-13,600152e-14],[.248,.0124002,710039e-13,-224e-10],[.31,.0123992,-264997e-12,835986e-13],[.372,.0124029,988983e-12,-311994e-12],[.434,.0123893,-369093e-11,-435621e-12],[.4958,.0123198,-102252e-10,-345523e-12],[.5571,.0121916,-154081e-10,-582288e-12],[.6176,.0119938,-241424e-10,-525327e-12],[.6769,.011713,-320223e-10,-516405e-12],[.7346,.0113541,-397684e-10,-609052e-12],[.7903,.0109107,-489042e-10,-104739e-11],[.8435,.0103431,-64615e-9,-140374e-14],[.8936,.00969686,-64636e-9,-8547e-9],[.9394,.00840947,-192841e-9,-42106e-10],[.9761,.00616527,-256e-6,-42106e-10],[1,.00328947,-319159e-9,-42106e-10]],oC=.8487,nC=1.3523,CC=EA/5,hf=1/CC,me=18,Ug=function(A,t){return A[0]+t*(A[1]+t*(A[2]+t*A[3]))},Qf=function(A,t){return A[1]+t*(2*A[2]+t*3*A[3])};function lf(A,t,e,i){for(var g=t;i;--i){var I=A(g);if(g-=I,Math.abs(I)<e)break}return g}function ff(){this.x0=this.x0||0,this.y0=this.y0||0,this.long0=this.long0||0,this.es=0,this.title=this.title||"Robinson"}function cf(A){var t=R(A.x-this.long0,this.over),e=Math.abs(A.y),i=Math.floor(e*CC);i<0?i=0:i>=me&&(i=me-1),e=EA*(e-hf*i);var g={x:Ug(Ma[i],e)*t,y:Ug(Bi[i],e)};return A.y<0&&(g.y=-g.y),g.x=g.x*this.a*oC+this.x0,g.y=g.y*this.a*nC+this.y0,g}function uf(A){var t={x:(A.x-this.x0)/(this.a*oC),y:Math.abs(A.y-this.y0)/(this.a*nC)};if(t.y>=1)t.x/=Ma[me][0],t.y=A.y<0?-N:N;else{var e=Math.floor(t.y*me);for(e<0?e=0:e>=me&&(e=me-1);;)if(Bi[e][0]>t.y)--e;else if(Bi[e+1][0]<=t.y)++e;else break;var i=Bi[e],g=5*(t.y-i[0])/(Bi[e+1][0]-i[0]);g=lf(function(I){return(Ug(i,I)-t.y)/Qf(i,I)},g,F,100),t.x/=Ug(Ma[e],g),t.y=(5*e+g)*iA,A.y<0&&(t.y=-t.y)}return t.x=R(t.x+this.long0,this.over),t}var df=["Robinson","robin"],BC={init:ff,forward:cf,inverse:uf,names:df};function wf(){this.name="geocent"}function yf(A){var t=mg(A,this.es,this.a);return t}function Df(A){var t=Gg(A,this.es,this.a,this.b);return t}var Sf=["Geocentric","geocentric","geocent","Geocent"],EC={init:wf,forward:yf,inverse:Df,names:Sf};var yA={N_POLE:0,S_POLE:1,EQUIT:2,OBLIQ:3},Ei={h:{def:1e5,num:!0},azi:{def:0,num:!0,degrees:!0},tilt:{def:0,num:!0,degrees:!0},long0:{def:0,num:!0},lat0:{def:0,num:!0}};function mf(){if(Object.keys(Ei).forEach(function(e){if(typeof this[e]>"u")this[e]=Ei[e].def;else{if(Ei[e].num&&isNaN(this[e]))throw new Error("Invalid parameter value, must be numeric "+e+" = "+this[e]);Ei[e].num&&(this[e]=parseFloat(this[e]))}Ei[e].degrees&&(this[e]=this[e]*iA)}.bind(this)),Math.abs(Math.abs(this.lat0)-N)<F?this.mode=this.lat0<0?yA.S_POLE:yA.N_POLE:Math.abs(this.lat0)<F?this.mode=yA.EQUIT:(this.mode=yA.OBLIQ,this.sinph0=Math.sin(this.lat0),this.cosph0=Math.cos(this.lat0)),this.pn1=this.h/this.a,this.pn1<=0||this.pn1>1e10)throw new Error("Invalid height");this.p=1+this.pn1,this.rp=1/this.p,this.h1=1/this.pn1,this.pfact=(this.p+1)*this.h1,this.es=0;var A=this.tilt,t=this.azi;this.cg=Math.cos(t),this.sg=Math.sin(t),this.cw=Math.cos(A),this.sw=Math.sin(A)}function Gf(A){A.x-=this.long0;var t=Math.sin(A.y),e=Math.cos(A.y),i=Math.cos(A.x),g,I;switch(this.mode){case yA.OBLIQ:I=this.sinph0*t+this.cosph0*e*i;break;case yA.EQUIT:I=e*i;break;case yA.S_POLE:I=-t;break;case yA.N_POLE:I=t;break}switch(I=this.pn1/(this.p-I),g=I*e*Math.sin(A.x),this.mode){case yA.OBLIQ:I*=this.cosph0*t-this.sinph0*e*i;break;case yA.EQUIT:I*=t;break;case yA.N_POLE:I*=-(e*i);break;case yA.S_POLE:I*=e*i;break}var r,a;return r=I*this.cg+g*this.sg,a=1/(r*this.sw*this.h1+this.cw),g=(g*this.cg-I*this.sg)*this.cw*a,I=r*a,A.x=g*this.a,A.y=I*this.a,A}function Mf(A){A.x/=this.a,A.y/=this.a;var t={x:A.x,y:A.y},e,i,g;g=1/(this.pn1-A.y*this.sw),e=this.pn1*A.x*g,i=this.pn1*A.y*this.cw*g,A.x=e*this.cg+i*this.sg,A.y=i*this.cg-e*this.sg;var I=BA(A.x,A.y);if(Math.abs(I)<F)t.x=0,t.y=A.y;else{var r,a;switch(a=1-I*I*this.pfact,a=(this.p-Math.sqrt(a))/(this.pn1/I+I/this.pn1),r=Math.sqrt(1-a*a),this.mode){case yA.OBLIQ:t.y=Math.asin(r*this.sinph0+A.y*a*this.cosph0/I),A.y=(r-this.sinph0*Math.sin(t.y))*I,A.x*=a*this.cosph0;break;case yA.EQUIT:t.y=Math.asin(A.y*a/I),A.y=r*I,A.x*=a;break;case yA.N_POLE:t.y=Math.asin(r),A.y=-A.y;break;case yA.S_POLE:t.y=-Math.asin(r);break}t.x=Math.atan2(A.x,A.y)}return A.x=t.x+this.long0,A.y=t.y,A}var Nf=["Tilted_Perspective","tpers"],hC={init:mf,forward:Gf,inverse:Mf,names:Nf};function pf(){if(this.flip_axis=this.sweep==="x"?1:0,this.h=Number(this.h),this.radius_g_1=this.h/this.a,this.radius_g_1<=0||this.radius_g_1>1e10)throw new Error;if(this.radius_g=1+this.radius_g_1,this.C=this.radius_g*this.radius_g-1,this.es!==0){var A=1-this.es,t=1/A;this.radius_p=Math.sqrt(A),this.radius_p2=A,this.radius_p_inv2=t,this.shape="ellipse"}else this.radius_p=1,this.radius_p2=1,this.radius_p_inv2=1,this.shape="sphere";this.title||(this.title="Geostationary Satellite View")}function _f(A){var t=A.x,e=A.y,i,g,I,r;if(t=t-this.long0,this.shape==="ellipse"){e=Math.atan(this.radius_p2*Math.tan(e));var a=this.radius_p/BA(this.radius_p*Math.cos(e),Math.sin(e));if(g=a*Math.cos(t)*Math.cos(e),I=a*Math.sin(t)*Math.cos(e),r=a*Math.sin(e),(this.radius_g-g)*g-I*I-r*r*this.radius_p_inv2<0)return A.x=Number.NaN,A.y=Number.NaN,A;i=this.radius_g-g,this.flip_axis?(A.x=this.radius_g_1*Math.atan(I/BA(r,i)),A.y=this.radius_g_1*Math.atan(r/i)):(A.x=this.radius_g_1*Math.atan(I/i),A.y=this.radius_g_1*Math.atan(r/BA(I,i)))}else this.shape==="sphere"&&(i=Math.cos(e),g=Math.cos(t)*i,I=Math.sin(t)*i,r=Math.sin(e),i=this.radius_g-g,this.flip_axis?(A.x=this.radius_g_1*Math.atan(I/BA(r,i)),A.y=this.radius_g_1*Math.atan(r/i)):(A.x=this.radius_g_1*Math.atan(I/i),A.y=this.radius_g_1*Math.atan(r/BA(I,i))));return A.x=A.x*this.a,A.y=A.y*this.a,A}function Ff(A){var t=-1,e=0,i=0,g,I,r,a;if(A.x=A.x/this.a,A.y=A.y/this.a,this.shape==="ellipse"){this.flip_axis?(i=Math.tan(A.y/this.radius_g_1),e=Math.tan(A.x/this.radius_g_1)*BA(1,i)):(e=Math.tan(A.x/this.radius_g_1),i=Math.tan(A.y/this.radius_g_1)*BA(1,e));var o=i/this.radius_p;if(g=e*e+o*o+t*t,I=2*this.radius_g*t,r=I*I-4*g*this.C,r<0)return A.x=Number.NaN,A.y=Number.NaN,A;a=(-I-Math.sqrt(r))/(2*g),t=this.radius_g+a*t,e*=a,i*=a,A.x=Math.atan2(e,t),A.y=Math.atan(i*Math.cos(A.x)/t),A.y=Math.atan(this.radius_p_inv2*Math.tan(A.y))}else if(this.shape==="sphere"){if(this.flip_axis?(i=Math.tan(A.y/this.radius_g_1),e=Math.tan(A.x/this.radius_g_1)*Math.sqrt(1+i*i)):(e=Math.tan(A.x/this.radius_g_1),i=Math.tan(A.y/this.radius_g_1)*Math.sqrt(1+e*e)),g=e*e+i*i+t*t,I=2*this.radius_g*t,r=I*I-4*g*this.C,r<0)return A.x=Number.NaN,A.y=Number.NaN,A;a=(-I-Math.sqrt(r))/(2*g),t=this.radius_g+a*t,e*=a,i*=a,A.x=Math.atan2(e,t),A.y=Math.atan(i*Math.cos(A.x)/t)}return A.x=A.x+this.long0,A}var Rf=["Geostationary Satellite View","Geostationary_Satellite","geos"],QC={init:pf,forward:_f,inverse:Ff,names:Rf};var hi=1.340264,Qi=-.081106,li=893e-6,fi=.003796,vg=Math.sqrt(3)/2;function kf(){this.es=0,this.long0=this.long0!==void 0?this.long0:0,this.x0=this.x0!==void 0?this.x0:0,this.y0=this.y0!==void 0?this.y0:0}function Lf(A){var t=R(A.x-this.long0,this.over),e=A.y,i=Math.asin(vg*Math.sin(e)),g=i*i,I=g*g*g;return A.x=t*Math.cos(i)/(vg*(hi+3*Qi*g+I*(7*li+9*fi*g))),A.y=i*(hi+Qi*g+I*(li+fi*g)),A.x=this.a*A.x+this.x0,A.y=this.a*A.y+this.y0,A}function xf(A){A.x=(A.x-this.x0)/this.a,A.y=(A.y-this.y0)/this.a;var t=1e-9,e=12,i=A.y,g,I,r,a,o,s;for(s=0;s<e&&(g=i*i,I=g*g*g,r=i*(hi+Qi*g+I*(li+fi*g))-A.y,a=hi+3*Qi*g+I*(7*li+9*fi*g),i-=o=r/a,!(Math.abs(o)<t));++s);return g=i*i,I=g*g*g,A.x=vg*A.x*(hi+3*Qi*g+I*(7*li+9*fi*g))/Math.cos(i),A.y=Math.asin(Math.sin(i)/vg),A.x=R(A.x+this.long0,this.over),A}var Uf=["eqearth","Equal Earth","Equal_Earth"],lC={init:kf,forward:Lf,inverse:xf,names:Uf};var ci=1e-10;function vf(){var A;if(this.phi1=this.lat1,Math.abs(this.phi1)<ci)throw new Error;this.es?(this.en=ue(this.es),this.m1=It(this.phi1,this.am1=Math.sin(this.phi1),A=Math.cos(this.phi1),this.en),this.am1=A/(Math.sqrt(1-this.es*this.am1*this.am1)*this.am1),this.inverse=Yf,this.forward=bf):(Math.abs(this.phi1)+ci>=N?this.cphi1=0:this.cphi1=1/Math.tan(this.phi1),this.inverse=Hf,this.forward=Kf)}function bf(A){var t=R(A.x-(this.long0||0),this.over),e=A.y,i,g,I;return i=this.am1+this.m1-It(e,g=Math.sin(e),I=Math.cos(e),this.en),g=I*t/(i*Math.sqrt(1-this.es*g*g)),A.x=i*Math.sin(g),A.y=this.am1-i*Math.cos(g),A.x=this.a*A.x+(this.x0||0),A.y=this.a*A.y+(this.y0||0),A}function Yf(A){A.x=(A.x-(this.x0||0))/this.a,A.y=(A.y-(this.y0||0))/this.a;var t,e,i,g;if(e=BA(A.x,A.y=this.am1-A.y),g=de(this.am1+this.m1-e,this.es,this.en),(t=Math.abs(g))<N)t=Math.sin(g),i=e*Math.atan2(A.x,A.y)*Math.sqrt(1-this.es*t*t)/Math.cos(g);else if(Math.abs(t-N)<=ci)i=0;else throw new Error;return A.x=R(i+(this.long0||0),this.over),A.y=kA(g),A}function Kf(A){var t=R(A.x-(this.long0||0),this.over),e=A.y,i,g;return g=this.cphi1+this.phi1-e,Math.abs(g)>ci?(A.x=g*Math.sin(i=t*Math.cos(e)/g),A.y=this.cphi1-g*Math.cos(i)):A.x=A.y=0,A.x=this.a*A.x+(this.x0||0),A.y=this.a*A.y+(this.y0||0),A}function Hf(A){A.x=(A.x-(this.x0||0))/this.a,A.y=(A.y-(this.y0||0))/this.a;var t,e,i=BA(A.x,A.y=this.cphi1-A.y);if(e=this.cphi1+this.phi1-i,Math.abs(e)>N)throw new Error;return Math.abs(Math.abs(e)-N)<=ci?t=0:t=i*Math.atan2(A.x,A.y)/Math.cos(e),A.x=R(t+(this.long0||0),this.over),A.y=kA(e),A}var Tf=["bonne","Bonne (Werner lat_1=90)"],fC={init:vf,names:Tf};var cC={OBLIQUE:{forward:jf,inverse:zf},TRANSVERSE:{forward:Zf,inverse:Vf}},bg={ROTATE:{o_alpha:"oAlpha",o_lon_c:"oLongC",o_lat_c:"oLatC"},NEW_POLE:{o_lat_p:"oLatP",o_lon_p:"oLongP"},NEW_EQUATOR:{o_lon_1:"oLong1",o_lat_1:"oLat1",o_lon_2:"oLong2",o_lat_2:"oLat2"}};function Jf(){if(this.x0=this.x0||0,this.y0=this.y0||0,this.long0=this.long0||0,this.title=this.title||"General Oblique Transformation",this.isIdentity=na.includes(this.o_proj),!this.o_proj)throw new Error("Missing parameter: o_proj");if(this.o_proj==="ob_tran")throw new Error("Invalid value for o_proj: "+this.o_proj);let A=this.projStr.replace("+proj=ob_tran","").replace("+o_proj=","+proj=").trim(),t=jA(A);if(!t)throw new Error("Invalid parameter: o_proj. Unknown projection "+this.o_proj);t.long0=0,this.obliqueProjection=t;let e,i=Object.keys(bg),g=a=>{if(typeof this[a]>"u")return;let o=parseFloat(this[a])*iA;if(isNaN(o))throw new Error("Invalid value for "+a+": "+this[a]);return o};for(let a=0;a<i.length;a++){let o=i[a],s=bg[o],n=Object.entries(s);if(n.some(([B])=>typeof this[B]<"u")){e=s;for(let B=0;B<n.length;B++){let[C,h]=n[B],Q=g(C);if(typeof Q>"u")throw new Error("Missing parameter: "+C+".");this[h]=Q}break}}if(!e)throw new Error("No valid parameters provided for ob_tran projection.");let{lamp:I,phip:r}=Of(this,e);this.lamp=I,Math.abs(r)>F?(this.cphip=Math.cos(r),this.sphip=Math.sin(r),this.projectionType=cC.OBLIQUE):this.projectionType=cC.TRANSVERSE}function Pf(A){return this.projectionType.forward(this,A)}function qf(A){return this.projectionType.inverse(this,A)}function Of(A,t){let e,i;if(t===bg.ROTATE){let g=A.oLongC,I=A.oLatC,r=A.oAlpha;if(Math.abs(Math.abs(I)-N)<=F)throw new Error("Invalid value for o_lat_c: "+A.o_lat_c+" should be < 90\\xB0");i=g+Math.atan2(-1*Math.cos(r),-1*Math.sin(r)*Math.sin(I)),e=Math.asin(Math.cos(I)*Math.sin(r))}else if(t===bg.NEW_POLE)i=A.oLongP,e=A.oLatP;else{let g=A.oLong1,I=A.oLat1,r=A.oLong2,a=A.oLat2,o=Math.abs(I);if(Math.abs(I)>N-F)throw new Error("Invalid value for o_lat_1: "+A.o_lat_1+" should be < 90\\xB0");if(Math.abs(a)>N-F)throw new Error("Invalid value for o_lat_2: "+A.o_lat_2+" should be < 90\\xB0");if(Math.abs(I-a)<F)throw new Error("Invalid value for o_lat_1 and o_lat_2: o_lat_1 should be different from o_lat_2");if(o<F)throw new Error("Invalid value for o_lat_1: o_lat_1 should be different from zero");i=Math.atan2(Math.cos(I)*Math.sin(a)*Math.cos(g)-Math.sin(I)*Math.cos(a)*Math.cos(r),Math.sin(I)*Math.cos(a)*Math.sin(r)-Math.cos(I)*Math.sin(a)*Math.sin(g)),e=Math.atan(-1*Math.cos(i-g)/Math.tan(I))}return{lamp:i,phip:e}}function jf(A,t){let{x:e,y:i}=t;e+=A.long0;let g=Math.cos(e),I=Math.sin(i),r=Math.cos(i);t.x=R(Math.atan2(r*Math.sin(e),A.sphip*r*g+A.cphip*I)+A.lamp),t.y=Math.asin(A.sphip*I-A.cphip*r*g);let a=A.obliqueProjection.forward(t);return A.isIdentity&&(a.x*=EA,a.y*=EA),a}function Zf(A,t){let{x:e,y:i}=t;e+=A.long0;let g=Math.cos(i),I=Math.cos(e);t.x=R(Math.atan2(g*Math.sin(e),Math.sin(i))+A.lamp),t.y=Math.asin(-1*g*I);let r=A.obliqueProjection.forward(t);return A.isIdentity&&(r.x*=EA,r.y*=EA),r}function zf(A,t){A.isIdentity&&(t.x*=iA,t.y*=iA);let e=A.obliqueProjection.inverse(t),{x:i,y:g}=e;if(i<Number.MAX_VALUE){i-=A.lamp;let I=Math.cos(i),r=Math.sin(g),a=Math.cos(g);t.x=Math.atan2(a*Math.sin(i),A.sphip*a*I-A.cphip*r),t.y=Math.asin(A.sphip*r+A.cphip*a*I)}return t.x=R(t.x+A.long0),t}function Vf(A,t){A.isIdentity&&(t.x*=iA,t.y*=iA);let e=A.obliqueProjection.inverse(t),{x:i,y:g}=e;if(i<Number.MAX_VALUE){let I=Math.cos(g);i-=A.lamp,t.x=Math.atan2(I*Math.sin(i),-1*Math.sin(g)),t.y=Math.asin(I*Math.cos(i))}return t.x=R(t.x+A.long0),t}var Wf=["General Oblique Transformation","General_Oblique_Transformation","ob_tran"],uC={init:Jf,forward:Pf,inverse:qf,names:Wf};function dC(A){A.Proj.projections.add(we),A.Proj.projections.add(ye),A.Proj.projections.add(Un),A.Proj.projections.add(vn),A.Proj.projections.add(bn),A.Proj.projections.add(Yn),A.Proj.projections.add(Kn),A.Proj.projections.add(Hn),A.Proj.projections.add(Tn),A.Proj.projections.add(Jn),A.Proj.projections.add(Pn),A.Proj.projections.add(qn),A.Proj.projections.add(On),A.Proj.projections.add(Zn),A.Proj.projections.add(zn),A.Proj.projections.add(Wn),A.Proj.projections.add(Xn),A.Proj.projections.add($n),A.Proj.projections.add(AC),A.Proj.projections.add(tC),A.Proj.projections.add(eC),A.Proj.projections.add(iC),A.Proj.projections.add(aC),A.Proj.projections.add(sC),A.Proj.projections.add(rC),A.Proj.projections.add(BC),A.Proj.projections.add(EC),A.Proj.projections.add(hC),A.Proj.projections.add(QC),A.Proj.projections.add(lC),A.Proj.projections.add(fC),A.Proj.projections.add(uC)}var wC=Object.assign(un,{defaultDatum:"WGS84",Proj:jA,WGS84:new jA("WGS84"),Point:Mn,toPoint:Ng,defs:he,nadgrid:Qa,transform:Ht,mgrs:Sn,version:"__VERSION__"});dC(wC);var pt=wC;HI();pt.defs("EPSG:3857","+proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs");pt.defs("EPSG:4326","+proj=longlat +datum=WGS84 +no_defs");pt.defs("EPSG:4548","+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs");var Jt=256,GC=new OffscreenCanvas(Jt,Jt),Xf=GC.getContext("2d",{willReadFrequently:!1,alpha:!0}),Ge,Fa=null;function MC(A){if(!Ge||Ge.width<A||Ge.height<A){let t=Math.ceil(A/512)*512;Ge=new OffscreenCanvas(t,t),Fa=Ge.getContext("2d",{alpha:!0,desynchronized:!0})}return Fa}var yC=4096,ka=new ArrayBuffer(yC*yC*4),$f=new Uint32Array(ka),Ac=new Uint8ClampedArray(ka),dA=512,Yg=null,Hg=null,YA=[],Ra=[],di=1,Tg=!1,uA=null,at="4326",Me=!1,Kg=null;function NC(){return at==="3857"||at==="4548"}var tc=pt("EPSG:4326","EPSG:3857"),ec=pt("EPSG:3857","EPSG:4326"),Na=null,pa=null;function ic(){return Na||(Na=pt("EPSG:4326","EPSG:4548")),Na}function gc(){return pa||(pa=pt("EPSG:4548","EPSG:4326")),pa}function DC(A,t){return at==="3857"?ec.forward([A,t]):at==="4548"?gc().forward([A,t]):[A,t]}function SC(A,t){return at==="3857"?tc.forward([A,t]):at==="4548"?ic().forward([A,t]):[A,t]}function Ic(A,t){if(t===3857||t===102100||t===900913||t===41001)return"3857";if(t===4548)return"4548";if(t===4326)return"4326";if(!t||t===0||t>4e3){let[e,i,g,I]=A;if(Math.abs(e)>360||Math.abs(g)>360||Math.abs(i)>90||Math.abs(I)>90)return Math.max(Math.abs(e),Math.abs(g),Math.abs(i),Math.abs(I))>=1e7?"3857":"4548"}return"4326"}var _a=4096,ui=new Map,ac=500;async function mC(A){let t=new se;await t.init(),ng(5e4,()=>Promise.resolve(class extends CA{decodeBlock(u){return t.decode(new Uint8Array(u)).buffer}})),Hg=await Go(A,{useWorkers:!1,maxRanges:500});let e=await Hg.getImageCount();YA=[];for(let u=0;u<e;u++)YA.push(await Hg.getImage(u));let i=YA[0];try{let u=i.getTileWidth(),d=i.getTileHeight();u>0&&d>0&&(dA=Math.max(u,d))}catch{dA=512}if(MC(dA),uA=i.getBoundingBox(),!uA||!Array.isArray(uA)||uA.length!==4||!isFinite(uA[0])||!isFinite(uA[1])||!isFinite(uA[2])||!isFinite(uA[3])){let u,d,G,M,m=!1;try{let[_,k]=i.getOrigin(),[v,L]=i.getResolution();u=_,d=k,G=v,M=L,isFinite(u)&&isFinite(d)&&isFinite(G)&&isFinite(M)&&(m=!0)}catch{}if(!m)try{let _=i.fileDirectory;if(_&&typeof _.loadValue=="function"){let k=await _.loadValue("ModelTiepoint"),v=await _.loadValue("ModelPixelScale");k&&k.length>=6&&v&&v.length>=2&&(u=k[3],d=k[4],G=v[0],M=-v[1],m=!0)}}catch{}if(m){let _=i.getWidth(),k=i.getHeight();uA=[u,d+M*k,u+G*_,d]}else throw new Error("\\u65E0\\u6CD5\\u83B7\\u53D6 COG bbox")}if(di=i.getSamplesPerPixel(),Tg=!1,di>=4)try{let d=(i.fileDirectory||await i.getFileDirectory?.()||{}).ExtraSamples;d&&d.length>0&&(Tg=d[0]===1||d[0]===2)}catch{}let g=null;try{let u=i.getGeoKeys();u&&(g=u.ProjectedCSTypeGeoKey||u.GeographicTypeGeoKey||null)}catch{}at=Ic(uA,g),console.log(`[COG:INIT] crsType=${at}, cogBbox=[${uA.map(u=>u.toFixed(1)).join(",")}], epsg=${g}`);let I;if(NC()){let[u,d,G,M]=uA;if(Math.abs(u)<=180&&Math.abs(G)<=180&&Math.abs(d)<=90&&Math.abs(M)<=90)I=uA,Me=!1;else{let[_,k]=DC(u,d),[v,L]=DC(G,M);isFinite(_)&&isFinite(k)&&isFinite(v)&&isFinite(L)?(I=[_,k,v,L],Me=!0):(I=uA,Me=!1)}}else I=uA,Me=!1;console.log(`[COG:INIT] bboxIsProjected=${Me}, bboxDegrees=[${I.map(u=>u.toFixed(4)).join(",")}]`);let[r,a,o,s]=uA,n=o-r;Ra=YA.map(u=>n/u.getWidth());let E=I[2]-I[0],B=E/i.getWidth(),C=Math.min(17,Math.ceil(Math.log2(360/(256*B)))),Q=64*1024*1024/4,l=YA[YA.length-1],c=Math.max(l.getWidth(),512),w=Math.max(l.getHeight(),512),D=I[3]-I[1],y=Math.max(E,D),f=0;y>0&&(f=Math.floor(Math.log2(360/y)),f=Math.max(0,Math.min(f,C)));for(let u=f;u<=C;u++){let d=360/Math.pow(2,u+1),G=180/Math.pow(2,u),M=Math.ceil(Math.min(d,E)/E*c/dA)*dA,m=Math.ceil(Math.min(G,D)/D*w/dA)*dA;if(M*m<=Q){u>f&&console.log(`[COG:INIT] minLevel \\u4ECE ${f} \\u63D0\\u5347\\u5230 ${u} (\\u74E6\\u7247\\u7F13\\u5B58 ~${(M*m*4/1024/1024).toFixed(0)}MB, IFD ${YA.length-1})`),f=u;break}}if(e<=1){let u=C;for(let d=C;d>=f;d--){let G=360/Math.pow(2,d+1),M=180/Math.pow(2,d);if(Math.ceil(E/G)*Math.ceil(D/M)<=1e3){u=d;break}}u<C&&(console.log(`[COG:INIT] maxLevel \\u4ECE ${C} \\u4FEE\\u6B63\\u4E3A ${u} (\\u5355\\u5C42 COG\\uFF0C\\u74E6\\u7247\\u8FC7\\u591A)`),C=u)}return console.log(`[COG] \\u521D\\u59CB\\u5316\\u5B8C\\u6210: EPSG:${at}, ${e} \\u5C42, \\u4E3B\\u56FE ${i.getWidth()}x${i.getHeight()}, bbox=[${I.map(u=>u.toFixed(4)).join(",")}], maxLevel=${C}, minLevel=${f}, samples=${di}`),{bboxDegrees:I,crsType:at,maxLevel:C,minLevel:f,mainImg:i}}self.onmessage=async A=>{let{type:t,payload:e,taskId:i}=A.data;try{switch(t){case"LAZY_INIT":{Kg=e.url,self.postMessage({type:"INIT_DONE",taskId:i,payload:{success:!0,bbox:[0,0,0,0],crsType:"4326",maxLevel:17,minLevel:9}});break}case"INIT":{let{url:g}=e,I=await mC(g);self.postMessage({type:"INIT_DONE",taskId:i,payload:{success:!0,bbox:I.bboxDegrees,crsType:I.crsType,maxLevel:I.maxLevel,minLevel:I.minLevel}});break}case"PROCESS_TILE":{let{x:g,y:I,level:r,tileRect:a}=e;if(r<0||g<0||I<0){self.postMessage({type:"TILE_DONE",taskId:i,payload:{empty:!0}});return}!Hg&&Kg&&(Yg||(Yg=(async()=>{try{await mC(Kg),Kg=null}finally{Yg=null}})()),await Yg);let[o,s,n,E]=uA,B,C,h,Q;if(Me){let P=SC(a.west,a.south),tA=SC(a.east,a.north);[B,C]=P,[h,Q]=tA}else B=a.west,C=a.south,h=a.east,Q=a.north;let l=Math.max(B,o),c=Math.max(C,s),w=Math.min(h,n),D=Math.min(Q,E);if(l>=w||c>=D){self.postMessage({type:"TILE_DONE",taskId:i,payload:{empty:!0}});return}let y=(h-B)/Jt,f=(NC(),1),u=0;for(let P=Ra.length-1;P>=0;P--)if(Ra[P]<=y*f){u=P;break}let d=P=>{let tA=YA[P],eA=tA.getWidth(),fA=tA.getHeight(),KA=Math.floor((l-o)/(n-o)*eA),DA=Math.floor((E-D)/(E-s)*fA),Pt=Math.ceil((w-l)/(n-o)*eA),PA=Math.ceil((D-c)/(E-s)*fA),Jg=Math.floor(KA/dA)*dA,Pg=Math.floor(DA/dA)*dA,La=Math.min(Math.ceil((KA+Pt)/dA)*dA-Jg,eA-Jg),xa=Math.min(Math.ceil((DA+PA)/dA)*dA-Pg,fA-Pg);return{blocks:Math.ceil(La/dA)*Math.ceil(xa/dA),imgW:eA,imgH:fA,readX:KA,readY:DA,readW:Pt,readH:PA,alignedX:Jg,alignedY:Pg,alignedW:La,alignedH:xa}},G=d(u);if(G.blocks>_a){let P=!1;if(YA.length>1)for(let tA=u+1;tA<YA.length;tA++){let eA=d(tA);if(eA.blocks<=_a||tA===YA.length-1){G=eA,u=tA,P=!0;break}}if(!P&&YA.length<=1)console.warn(`[COG] \\u74E6\\u7247 ${g},${I}@${r}: \\u5757\\u6570\\u8D85\\u9650 (${G.blocks} > ${_a})\\uFF0C\\u4ECD\\u7EE7\\u7EED\\u5904\\u7406`);else if(!P){self.postMessage({type:"TILE_DONE",taskId:i,payload:{empty:!0}});return}}let{readX:M,readY:m,readW:_,readH:k,alignedX:v,alignedY:L,alignedW:p,alignedH:U}=G;if(_<=0||k<=0){self.postMessage({type:"TILE_DONE",taskId:i,payload:{empty:!0}});return}let J=Tg?[0,1,2,3]:di>=3?[0,1,2]:[0],x=`${u}_${v}_${L}_${p}_${U}_${J.join(",")}`,b=ui.get(x);if(!b){if(b=await YA[u].readRasters({window:[v,L,v+p,L+U],samples:J}),ui.size>ac){let P=ui.keys().next().value;P&&ui.delete(P)}ui.set(x,b)}MC(Math.max(p,U));let Y=p*U,q=$f,W=Ac;if(Y*4>ka.byteLength){let P=new ArrayBuffer(Y*4);q=new Uint32Array(P),W=new Uint8ClampedArray(P)}let AA=b[0],K=AA.length;if(Tg){let P=b[1],tA=b[2],eA=b[3];for(let fA=0;fA<K;fA++){let KA=eA[fA];q[fA]=KA<30?0:KA<<24|tA[fA]<<16|P[fA]<<8|AA[fA]}}else if(di>=3){let P=b[1],tA=b[2];for(let eA=0;eA<K;eA++){let fA=AA[eA],KA=P[eA],DA=tA[eA];q[eA]=fA+KA+DA<90?0:(4278190080|DA<<16|KA<<8|fA)>>>0}}else for(let P=0;P<K;P++){let tA=AA[P];q[P]=(4278190080|tA<<16|tA<<8|tA)>>>0}let T=new ImageData(W.subarray(0,Y*4),p,U);Fa.putImageData(T,0,0);let H=M-v,j=m-L,V=Math.round((w-l)/(h-B)*Jt),sA=Math.round((D-c)/(Q-C)*Jt),nA=Math.floor((l-B)/(h-B)*Jt),O=Math.floor((Q-D)/(Q-C)*Jt);Xf.drawImage(Ge,H,j,_,k,nA,O,V,sA);let QA=GC.transferToImageBitmap();self.postMessage({type:"TILE_DONE",taskId:i,payload:{bitmap:QA,empty:!1}},[QA]);break}default:break}}catch(g){let I=g instanceof Error?g.message:String(g),r=g instanceof Error?g.stack:void 0;console.error(`[COG Worker] \\u9519\\u8BEF (type=${t}, taskId=${i}):`,I,r),self.postMessage({type:"ERROR",taskId:i,payload:{error:I}})}};})();\n/*! Bundled license information:\n\npako/dist/pako.esm.mjs:\n (*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) *)\n\nlerc/LercDecode.js:\n (* Copyright 2015-2021 Esri. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 @preserve *)\n*/\n';
|
|
164
|
+
function Y() {
|
|
165
|
+
const A = new Blob([b], { type: "application/javascript" });
|
|
166
|
+
return new Worker(URL.createObjectURL(A));
|
|
166
167
|
}
|
|
167
|
-
|
|
168
|
-
var
|
|
168
|
+
U();
|
|
169
|
+
var x = {
|
|
169
170
|
poolSize: Math.max(2, Math.min(6, Math.floor((navigator.hardwareConcurrency || 4) / 2))),
|
|
170
171
|
maxLoadPerWorker: 8,
|
|
171
172
|
timeout: 3e4,
|
|
172
173
|
tileCacheSize: 512,
|
|
173
174
|
alpha: 1
|
|
174
|
-
},
|
|
175
|
+
}, M = class {
|
|
175
176
|
tileWidth = 256;
|
|
176
177
|
tileHeight = 256;
|
|
177
|
-
tilingScheme = new
|
|
178
|
+
tilingScheme = new k();
|
|
178
179
|
hasAlphaChannel = !0;
|
|
179
180
|
ready = !0;
|
|
180
181
|
maximumLevel;
|
|
@@ -201,128 +202,128 @@ var H = {
|
|
|
201
202
|
0
|
|
202
203
|
];
|
|
203
204
|
_initialized = !1;
|
|
204
|
-
constructor(
|
|
205
|
-
this._url =
|
|
206
|
-
...
|
|
207
|
-
...
|
|
208
|
-
}, this._tileCache = new
|
|
209
|
-
|
|
205
|
+
constructor(A, t) {
|
|
206
|
+
this._url = A, this._options = {
|
|
207
|
+
...x,
|
|
208
|
+
...t
|
|
209
|
+
}, this._tileCache = new L(this._options.tileCacheSize, (e, i) => {
|
|
210
|
+
i.close();
|
|
210
211
|
}), this._emptyTile = document.createElement("canvas"), this._emptyTile.width = 256, this._emptyTile.height = 256;
|
|
211
212
|
}
|
|
212
213
|
async init() {
|
|
213
214
|
if (this._initialized) return;
|
|
214
215
|
if (this._destroyed) throw new Error("CogImageryProvider 已销毁");
|
|
215
|
-
this._workerPool = new
|
|
216
|
-
const
|
|
217
|
-
if (!
|
|
218
|
-
const
|
|
219
|
-
if (!isFinite(
|
|
220
|
-
const
|
|
221
|
-
this._bbox = this._normalizeBbox(
|
|
216
|
+
this._workerPool = new R(() => Y(), this._options.poolSize, this._options.maxLoadPerWorker);
|
|
217
|
+
const A = await Promise.race([this._workerPool.initOne({ url: this._url }), new Promise((r, o) => setTimeout(() => o(/* @__PURE__ */ new Error("COG 初始化超时")), this._options.timeout))]);
|
|
218
|
+
if (!A || !Array.isArray(A.bbox) || A.bbox.length !== 4) throw new Error("COG 元数据无效: bbox 格式错误");
|
|
219
|
+
const t = A.bbox, e = t[0], i = t[1], I = t[2], g = t[3];
|
|
220
|
+
if (!isFinite(e) || !isFinite(i) || !isFinite(I) || !isFinite(g)) throw new Error("COG 元数据无效: bbox 包含非数值");
|
|
221
|
+
const s = A.maxLevel ?? 17, a = A.minLevel ?? Math.max(0, s - 8), n = A.crsType ?? "4326";
|
|
222
|
+
this._bbox = this._normalizeBbox(e, i, I, g, n), this.maximumLevel = s, this.minimumLevel = a, this.rectangle = p.fromDegrees(this._bbox[0], this._bbox[1], this._bbox[2], this._bbox[3]), this._errorEvent = new N(), this._initialized = !0, console.log(`[COG] 初始化完成, 级别 ${a}-${s}, bbox: [${this._bbox.join(", ")}]`);
|
|
222
223
|
}
|
|
223
|
-
_normalizeBbox(
|
|
224
|
-
if (Math.abs(
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
224
|
+
_normalizeBbox(A, t, e, i, I) {
|
|
225
|
+
if (Math.abs(A) <= 360 && Math.abs(e) <= 360 && Math.abs(t) <= 90 && Math.abs(i) <= 90) return [
|
|
226
|
+
A,
|
|
227
|
+
t,
|
|
228
|
+
e,
|
|
229
|
+
i
|
|
229
230
|
];
|
|
230
231
|
try {
|
|
231
|
-
const
|
|
232
|
-
if (isFinite(
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
232
|
+
const g = S(`EPSG:${I}`, "EPSG:4326"), s = g.forward([A, t]), a = g.forward([e, i]);
|
|
233
|
+
if (isFinite(s[0]) && isFinite(s[1]) && isFinite(a[0]) && isFinite(a[1]) && Math.abs(s[0]) <= 180 && Math.abs(a[0]) <= 180 && Math.abs(s[1]) <= 90 && Math.abs(a[1]) <= 90) return [
|
|
234
|
+
s[0],
|
|
235
|
+
s[1],
|
|
236
|
+
a[0],
|
|
237
|
+
a[1]
|
|
237
238
|
];
|
|
238
239
|
} catch {
|
|
239
240
|
}
|
|
240
|
-
throw new Error(`bbox 超出度坐标范围 [${
|
|
241
|
+
throw new Error(`bbox 超出度坐标范围 [${A}, ${t}, ${e}, ${i}],CRS=${I},转换失败`);
|
|
241
242
|
}
|
|
242
243
|
isDestroyed() {
|
|
243
244
|
return this._destroyed;
|
|
244
245
|
}
|
|
245
|
-
async requestImage(
|
|
246
|
+
async requestImage(A, t, e) {
|
|
246
247
|
if (this._destroyed || !this._initialized) return;
|
|
247
|
-
const [
|
|
248
|
-
if (
|
|
249
|
-
const
|
|
250
|
-
if (
|
|
251
|
-
const
|
|
252
|
-
return
|
|
248
|
+
const [i, I, g, s] = this._bbox, a = Math.pow(2, e + 1), n = Math.pow(2, e), r = 360 / a, o = 180 / n, E = A * r - 180, f = E + r, c = 90 - t * o, w = c - o;
|
|
249
|
+
if (f <= i || E >= g || c <= I || w >= s) return this._emptyTile;
|
|
250
|
+
const h = `${this._url}_${A}_${t}_${e}`, d = this._tileCache.get(h);
|
|
251
|
+
if (d) {
|
|
252
|
+
const B = document.createElement("canvas");
|
|
253
|
+
return B.width = d.width, B.height = d.height, B.getContext("2d").drawImage(d, 0, 0), B;
|
|
253
254
|
}
|
|
254
|
-
let
|
|
255
|
-
|
|
256
|
-
west:
|
|
257
|
-
south:
|
|
258
|
-
east:
|
|
259
|
-
north:
|
|
260
|
-
}), this._inflightRequests.set(
|
|
261
|
-
const
|
|
262
|
-
if (!
|
|
263
|
-
const
|
|
264
|
-
return
|
|
255
|
+
let Q = this._inflightRequests.get(h);
|
|
256
|
+
Q || (Q = this._fetchTile(h, A, t, e, {
|
|
257
|
+
west: E,
|
|
258
|
+
south: w,
|
|
259
|
+
east: f,
|
|
260
|
+
north: c
|
|
261
|
+
}), this._inflightRequests.set(h, Q));
|
|
262
|
+
const l = await Q;
|
|
263
|
+
if (!l) return this._emptyTile;
|
|
264
|
+
const C = document.createElement("canvas");
|
|
265
|
+
return C.width = l.width, C.height = l.height, C.getContext("2d").drawImage(l, 0, 0), C;
|
|
265
266
|
}
|
|
266
|
-
async _fetchTile(
|
|
267
|
+
async _fetchTile(A, t, e, i, I) {
|
|
267
268
|
try {
|
|
268
|
-
const
|
|
269
|
-
x:
|
|
270
|
-
y:
|
|
271
|
-
level:
|
|
272
|
-
tileRect:
|
|
269
|
+
const g = await this._workerPool.execute("PROCESS_TILE", {
|
|
270
|
+
x: t,
|
|
271
|
+
y: e,
|
|
272
|
+
level: i,
|
|
273
|
+
tileRect: I,
|
|
273
274
|
alpha: this._options.alpha
|
|
274
275
|
});
|
|
275
|
-
return !
|
|
276
|
+
return !g || g.empty || !g.bitmap ? null : (this._tileCache.set(A, g.bitmap), g.bitmap);
|
|
276
277
|
} finally {
|
|
277
|
-
this._inflightRequests.delete(
|
|
278
|
+
this._inflightRequests.delete(A);
|
|
278
279
|
}
|
|
279
280
|
}
|
|
280
281
|
destroy() {
|
|
281
282
|
this._destroyed = !0, this._workerPool?.terminate(), this._tileCache.clear(), this._inflightRequests.clear(), this._initialized = !1;
|
|
282
283
|
}
|
|
283
284
|
};
|
|
284
|
-
function
|
|
285
|
-
const
|
|
285
|
+
function K(A, t = 0.3) {
|
|
286
|
+
const e = A.east - A.west, i = A.north - A.south, I = e * t, g = i * t;
|
|
286
287
|
return {
|
|
287
|
-
west:
|
|
288
|
-
south:
|
|
289
|
-
east:
|
|
290
|
-
north:
|
|
288
|
+
west: A.west - I,
|
|
289
|
+
south: A.south - g,
|
|
290
|
+
east: A.east + I,
|
|
291
|
+
north: A.north + g
|
|
291
292
|
};
|
|
292
293
|
}
|
|
293
|
-
async function
|
|
294
|
-
const
|
|
295
|
-
return await
|
|
294
|
+
async function T(A, t) {
|
|
295
|
+
const e = new M(A, t);
|
|
296
|
+
return await e.init(), e;
|
|
296
297
|
}
|
|
297
|
-
async function
|
|
298
|
-
const
|
|
299
|
-
await
|
|
300
|
-
const
|
|
301
|
-
if (
|
|
302
|
-
const
|
|
303
|
-
west:
|
|
304
|
-
south:
|
|
305
|
-
east:
|
|
306
|
-
north:
|
|
298
|
+
async function O(A, t, e) {
|
|
299
|
+
const i = new M(t, e);
|
|
300
|
+
await i.init();
|
|
301
|
+
const I = A.imageryLayers.addImageryProvider(i);
|
|
302
|
+
if (I.alpha = e?.alpha ?? 1, e?.flyTo !== !1 && A.camera) {
|
|
303
|
+
const g = i.bboxDegrees, s = K({
|
|
304
|
+
west: g[0],
|
|
305
|
+
south: g[1],
|
|
306
|
+
east: g[2],
|
|
307
|
+
north: g[3]
|
|
307
308
|
}, 0.3);
|
|
308
|
-
|
|
309
|
+
A.camera.flyTo({
|
|
309
310
|
destination: {
|
|
310
|
-
west:
|
|
311
|
-
south:
|
|
312
|
-
east:
|
|
313
|
-
north:
|
|
311
|
+
west: s.west,
|
|
312
|
+
south: s.south,
|
|
313
|
+
east: s.east,
|
|
314
|
+
north: s.north
|
|
314
315
|
},
|
|
315
316
|
duration: 1.5
|
|
316
317
|
});
|
|
317
318
|
}
|
|
318
|
-
return
|
|
319
|
+
return I;
|
|
319
320
|
}
|
|
320
|
-
async function
|
|
321
|
-
const
|
|
322
|
-
await
|
|
323
|
-
const
|
|
324
|
-
for (let
|
|
325
|
-
const
|
|
321
|
+
async function j(A, t, e) {
|
|
322
|
+
const i = new M(t, e);
|
|
323
|
+
await i.init();
|
|
324
|
+
const I = i.bboxDegrees, g = i.maximumLevel, s = i.minimumLevel, a = await v(), { TileGrid: n } = a.tilegrid, r = 256, o = [];
|
|
325
|
+
for (let h = 0; h <= g; h++) o.push(360 / (r * Math.pow(2, h + 1)));
|
|
326
|
+
const E = new n({
|
|
326
327
|
extent: [
|
|
327
328
|
-180,
|
|
328
329
|
-90,
|
|
@@ -330,43 +331,43 @@ async function x(g, I, C) {
|
|
|
330
331
|
90
|
|
331
332
|
],
|
|
332
333
|
origin: [-180, 90],
|
|
333
|
-
resolutions:
|
|
334
|
-
tileSize: [
|
|
335
|
-
}),
|
|
334
|
+
resolutions: o,
|
|
335
|
+
tileSize: [r, r]
|
|
336
|
+
}), f = new a.source.TileImage({
|
|
336
337
|
projection: "EPSG:4326",
|
|
337
|
-
tileGrid:
|
|
338
|
-
tileUrlFunction: (
|
|
339
|
-
tileLoadFunction: (
|
|
340
|
-
const
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
if (
|
|
344
|
-
const
|
|
345
|
-
|
|
338
|
+
tileGrid: E,
|
|
339
|
+
tileUrlFunction: (h) => `cog://${h[0]}/${h[1]}/${h[2]}`,
|
|
340
|
+
tileLoadFunction: (h, d) => {
|
|
341
|
+
const Q = d.replace("cog://", "").split("/"), l = Number(Q[0]), C = Number(Q[1]), B = Number(Q[2]);
|
|
342
|
+
i.requestImage(C, B, l).then((D) => {
|
|
343
|
+
D && D.toBlob((y) => {
|
|
344
|
+
if (y) {
|
|
345
|
+
const m = h.getImage();
|
|
346
|
+
m.src = URL.createObjectURL(y);
|
|
346
347
|
}
|
|
347
348
|
});
|
|
348
349
|
}).catch(() => {
|
|
349
350
|
});
|
|
350
351
|
}
|
|
351
|
-
}),
|
|
352
|
-
source:
|
|
353
|
-
opacity:
|
|
352
|
+
}), c = new a.layer.Tile({
|
|
353
|
+
source: f,
|
|
354
|
+
opacity: e?.opacity ?? 1,
|
|
354
355
|
extent: [
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
356
|
+
I[0],
|
|
357
|
+
I[1],
|
|
358
|
+
I[2],
|
|
359
|
+
I[3]
|
|
359
360
|
],
|
|
360
|
-
minResolution:
|
|
361
|
-
maxResolution:
|
|
361
|
+
minResolution: o[Math.min(g, o.length - 1)],
|
|
362
|
+
maxResolution: o[Math.min(s, o.length - 1)]
|
|
362
363
|
});
|
|
363
|
-
|
|
364
|
-
const
|
|
365
|
-
return
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
364
|
+
A.addLayer(c);
|
|
365
|
+
const w = A.getView();
|
|
366
|
+
return w && w.fit([
|
|
367
|
+
I[0],
|
|
368
|
+
I[1],
|
|
369
|
+
I[2],
|
|
370
|
+
I[3]
|
|
370
371
|
], {
|
|
371
372
|
padding: [
|
|
372
373
|
50,
|
|
@@ -375,208 +376,208 @@ async function x(g, I, C) {
|
|
|
375
376
|
50
|
|
376
377
|
],
|
|
377
378
|
duration: 1500
|
|
378
|
-
}),
|
|
379
|
+
}), c;
|
|
379
380
|
}
|
|
380
|
-
async function
|
|
381
|
+
async function v() {
|
|
381
382
|
try {
|
|
382
|
-
const
|
|
383
|
+
const A = (await import("ol/tilegrid/TileGrid")).default, t = (await import("ol/source/TileImage")).default, e = (await import("ol/layer/Tile")).default;
|
|
383
384
|
return {
|
|
384
|
-
tilegrid: { TileGrid:
|
|
385
|
-
source: { TileImage:
|
|
386
|
-
layer: { Tile:
|
|
385
|
+
tilegrid: { TileGrid: A },
|
|
386
|
+
source: { TileImage: t },
|
|
387
|
+
layer: { Tile: e }
|
|
387
388
|
};
|
|
388
389
|
} catch {
|
|
389
390
|
throw new Error("OpenLayers 依赖未找到,请安装: npm install ol");
|
|
390
391
|
}
|
|
391
392
|
}
|
|
392
|
-
function
|
|
393
|
-
const
|
|
393
|
+
function H(A) {
|
|
394
|
+
const t = /* @__PURE__ */ new Map();
|
|
394
395
|
return {
|
|
395
|
-
async addCogLayer(
|
|
396
|
-
const
|
|
397
|
-
if (!
|
|
398
|
-
const
|
|
396
|
+
async addCogLayer(e, i, I = {}) {
|
|
397
|
+
const g = A();
|
|
398
|
+
if (!g) throw new Error("Cesium Viewer 未初始化");
|
|
399
|
+
const s = {
|
|
399
400
|
alpha: 1,
|
|
400
401
|
flyTo: !0,
|
|
401
|
-
...
|
|
402
|
+
...I
|
|
402
403
|
};
|
|
403
|
-
let
|
|
404
|
+
let a = null, n = null;
|
|
404
405
|
try {
|
|
405
|
-
|
|
406
|
-
const
|
|
407
|
-
imageryLayer:
|
|
408
|
-
layerId:
|
|
409
|
-
provider:
|
|
410
|
-
bbox: [...
|
|
406
|
+
a = new M(i, s), await a.init(), n = g.imageryLayers.addImageryProvider(a), n.alpha = s.alpha;
|
|
407
|
+
const r = a.bboxDegrees, o = {
|
|
408
|
+
imageryLayer: n,
|
|
409
|
+
layerId: e,
|
|
410
|
+
provider: a,
|
|
411
|
+
bbox: [...r]
|
|
411
412
|
};
|
|
412
|
-
if (
|
|
413
|
-
const [
|
|
414
|
-
|
|
415
|
-
destination:
|
|
413
|
+
if (t.set(e, o), s.flyTo !== !1) {
|
|
414
|
+
const [E, f, c, w] = r, h = c - E, d = w - f, Q = h * 0.3, l = d * 0.3, C = p.fromDegrees(E - Q, f - l, c + Q, w + l);
|
|
415
|
+
g.camera.flyTo({
|
|
416
|
+
destination: C,
|
|
416
417
|
duration: 1.5
|
|
417
418
|
});
|
|
418
419
|
}
|
|
419
|
-
return console.log("[COG] 加载成功:",
|
|
420
|
-
} catch (
|
|
421
|
-
if (
|
|
422
|
-
|
|
420
|
+
return console.log("[COG] 加载成功:", e), o;
|
|
421
|
+
} catch (r) {
|
|
422
|
+
if (a?.destroy(), n) try {
|
|
423
|
+
g.imageryLayers.remove(n, !0);
|
|
423
424
|
} catch {
|
|
424
425
|
}
|
|
425
|
-
throw
|
|
426
|
+
throw r;
|
|
426
427
|
}
|
|
427
428
|
},
|
|
428
|
-
removeCogLayer(
|
|
429
|
-
const
|
|
430
|
-
if (!
|
|
431
|
-
console.warn("[COG] 图层不存在:",
|
|
429
|
+
removeCogLayer(e) {
|
|
430
|
+
const i = t.get(e);
|
|
431
|
+
if (!i) {
|
|
432
|
+
console.warn("[COG] 图层不存在:", e);
|
|
432
433
|
return;
|
|
433
434
|
}
|
|
434
435
|
try {
|
|
435
|
-
|
|
436
|
-
const
|
|
437
|
-
|
|
436
|
+
i.provider.destroy();
|
|
437
|
+
const I = A();
|
|
438
|
+
I && (i.imageryLayer.show = !1, I.scene.requestRender(), requestAnimationFrame(() => {
|
|
438
439
|
try {
|
|
439
|
-
|
|
440
|
+
I.imageryLayers.remove(i.imageryLayer, !0), I.scene.requestRender();
|
|
440
441
|
} catch {
|
|
441
442
|
}
|
|
442
443
|
}));
|
|
443
|
-
} catch (
|
|
444
|
-
console.warn("[COG] 移除图层时出错:",
|
|
444
|
+
} catch (I) {
|
|
445
|
+
console.warn("[COG] 移除图层时出错:", I);
|
|
445
446
|
}
|
|
446
|
-
|
|
447
|
+
t.delete(e);
|
|
447
448
|
},
|
|
448
|
-
flyToCogLayer(
|
|
449
|
-
const
|
|
450
|
-
if (!
|
|
451
|
-
console.warn("[COG] 图层不存在:",
|
|
449
|
+
flyToCogLayer(e) {
|
|
450
|
+
const i = t.get(e);
|
|
451
|
+
if (!i) {
|
|
452
|
+
console.warn("[COG] 图层不存在:", e);
|
|
452
453
|
return;
|
|
453
454
|
}
|
|
454
|
-
const
|
|
455
|
-
if (!
|
|
456
|
-
const [
|
|
457
|
-
|
|
458
|
-
destination:
|
|
455
|
+
const I = A();
|
|
456
|
+
if (!I) return;
|
|
457
|
+
const [g, s, a, n] = i.bbox, r = (a - g) * 0.3, o = (n - s) * 0.3, E = p.fromDegrees(g - r, s - o, a + r, n + o);
|
|
458
|
+
I.camera.flyTo({
|
|
459
|
+
destination: E,
|
|
459
460
|
duration: 1.5
|
|
460
461
|
});
|
|
461
462
|
},
|
|
462
463
|
destroyCogTools() {
|
|
463
|
-
for (const [
|
|
464
|
-
|
|
464
|
+
for (const [e] of t) this.removeCogLayer(e);
|
|
465
|
+
t.clear();
|
|
465
466
|
}
|
|
466
467
|
};
|
|
467
468
|
}
|
|
468
|
-
function
|
|
469
|
-
const { baseUrl:
|
|
470
|
-
let
|
|
471
|
-
const
|
|
469
|
+
function z(A = {}) {
|
|
470
|
+
const { baseUrl: t = "/Cesium/", cogApiUrl: e = "http://localhost:5158/api/cog/list", cogStaticBaseUrl: i = "http://localhost:5158", viewerOptions: I = {} } = A, g = F(null), s = G([]), a = G(""), n = G(!1), r = G(null);
|
|
471
|
+
let o = null, E = null;
|
|
472
|
+
const f = async (C = "cesiumContainer") => {
|
|
472
473
|
try {
|
|
473
|
-
window.CESIUM_BASE_URL =
|
|
474
|
+
window.CESIUM_BASE_URL = t, u.RequestScheduler.maximumRequests = 100, u.RequestScheduler.maximumRequestsPerServer = 24, g.value = new u.Viewer(C, {
|
|
474
475
|
geocoder: !1,
|
|
475
476
|
animation: !1,
|
|
476
477
|
timeline: !1,
|
|
477
478
|
baseLayerPicker: !1,
|
|
478
|
-
terrainProvider: new
|
|
479
|
+
terrainProvider: new u.EllipsoidTerrainProvider(),
|
|
479
480
|
imagery: !1,
|
|
480
481
|
sun: !1,
|
|
481
482
|
moon: !1,
|
|
482
|
-
...
|
|
483
|
-
}),
|
|
483
|
+
...I
|
|
484
|
+
}), g.value.imageryLayers.length > 0 ? console.log("[CogManager] 当前已有底图,不再重复清理") : g.value.imageryLayers.addImageryProvider(new u.UrlTemplateImageryProvider({
|
|
484
485
|
url: "https://tile.openstreetmap.org/{z}/{x}/{y}.png",
|
|
485
|
-
tilingScheme: new
|
|
486
|
+
tilingScheme: new u.WebMercatorTilingScheme(),
|
|
486
487
|
maximumLevel: 18
|
|
487
488
|
}));
|
|
488
|
-
const
|
|
489
|
-
|
|
490
|
-
} catch (
|
|
491
|
-
throw
|
|
489
|
+
const B = g.value.scene;
|
|
490
|
+
B.fog.enabled = !1, B.highDynamicRange = !1, B.globe.depthTestAgainstTerrain = !1, B.globe.baseColor = u.Color.fromCssColorString("#1a1a2e"), B.backgroundColor = u.Color.fromCssColorString("#1a1a2e"), B.skyAtmosphere && (B.skyAtmosphere.show = !1), B.light.enabled = !1, g.value.cesiumWidget.creditContainer && (g.value.cesiumWidget.creditContainer.style.display = "none"), await new Promise((D) => requestAnimationFrame(() => D())), o = H(() => g.value), r.value = null;
|
|
491
|
+
} catch (B) {
|
|
492
|
+
throw r.value = B.message || "Viewer 初始化失败", console.error("[CogManager] 初始化失败:", B), B;
|
|
492
493
|
}
|
|
493
|
-
},
|
|
494
|
+
}, c = async () => {
|
|
494
495
|
try {
|
|
495
|
-
const
|
|
496
|
-
clearTimeout(
|
|
497
|
-
name:
|
|
498
|
-
url:
|
|
499
|
-
})),
|
|
500
|
-
} catch (
|
|
501
|
-
console.error("[CogManager] 获取 COG 列表失败:",
|
|
496
|
+
const C = new AbortController(), B = setTimeout(() => C.abort(), 1e4), D = await fetch(e, { signal: C.signal });
|
|
497
|
+
clearTimeout(B), s.value = (await D.json()).map((y) => ({
|
|
498
|
+
name: y.name,
|
|
499
|
+
url: y.staticUrl.startsWith("http") ? y.staticUrl : `${i}${y.staticUrl}`
|
|
500
|
+
})), s.value.length > 0 && (a.value = s.value[0].url), r.value = null;
|
|
501
|
+
} catch (C) {
|
|
502
|
+
console.error("[CogManager] 获取 COG 列表失败:", C), s.value = [], r.value = "获取 COG 列表失败: " + (C.name === "AbortError" ? "请求超时" : C.message);
|
|
502
503
|
}
|
|
503
|
-
},
|
|
504
|
-
if (!(!
|
|
505
|
-
|
|
504
|
+
}, w = async () => {
|
|
505
|
+
if (!(!a.value || n.value)) {
|
|
506
|
+
n.value = !0, r.value = null;
|
|
506
507
|
try {
|
|
507
|
-
if (
|
|
508
|
+
if (E) {
|
|
508
509
|
try {
|
|
509
|
-
|
|
510
|
-
} catch (
|
|
511
|
-
console.warn("[CogManager] 移除旧图层时出错(继续加载):",
|
|
510
|
+
o?.removeCogLayer(E);
|
|
511
|
+
} catch (B) {
|
|
512
|
+
console.warn("[CogManager] 移除旧图层时出错(继续加载):", B);
|
|
512
513
|
}
|
|
513
|
-
|
|
514
|
+
E = null, await new Promise((B) => requestAnimationFrame(() => requestAnimationFrame(() => B())));
|
|
514
515
|
}
|
|
515
|
-
const
|
|
516
|
-
await
|
|
516
|
+
const C = "cog-layer-" + Date.now();
|
|
517
|
+
await o.addCogLayer(C, a.value, {
|
|
517
518
|
alpha: 1,
|
|
518
519
|
flyTo: !0
|
|
519
|
-
}),
|
|
520
|
-
} catch (
|
|
521
|
-
throw console.error("[CogManager] 加载失败:",
|
|
520
|
+
}), E = C, console.log("[CogManager] 加载成功:", C);
|
|
521
|
+
} catch (C) {
|
|
522
|
+
throw console.error("[CogManager] 加载失败:", C), r.value = C.message, C;
|
|
522
523
|
} finally {
|
|
523
|
-
|
|
524
|
+
n.value = !1;
|
|
524
525
|
}
|
|
525
526
|
}
|
|
526
|
-
},
|
|
527
|
-
if (!
|
|
528
|
-
|
|
527
|
+
}, h = () => {
|
|
528
|
+
if (!E) {
|
|
529
|
+
r.value = "没有可移除的图层";
|
|
529
530
|
return;
|
|
530
531
|
}
|
|
531
|
-
if (!
|
|
532
|
-
|
|
532
|
+
if (!o) {
|
|
533
|
+
r.value = "系统未初始化";
|
|
533
534
|
return;
|
|
534
535
|
}
|
|
535
|
-
console.log("[CogManager] 移除图层:",
|
|
536
|
-
},
|
|
537
|
-
if (!
|
|
538
|
-
|
|
536
|
+
console.log("[CogManager] 移除图层:", E), o.removeCogLayer(E), E = null, r.value = null;
|
|
537
|
+
}, d = () => {
|
|
538
|
+
if (!E) {
|
|
539
|
+
r.value = "没有可飞行的图层";
|
|
539
540
|
return;
|
|
540
541
|
}
|
|
541
|
-
if (!
|
|
542
|
-
|
|
542
|
+
if (!o) {
|
|
543
|
+
r.value = "系统未初始化";
|
|
543
544
|
return;
|
|
544
545
|
}
|
|
545
|
-
|
|
546
|
-
},
|
|
547
|
-
|
|
546
|
+
o.flyToCogLayer(E), r.value = null;
|
|
547
|
+
}, Q = async (C) => {
|
|
548
|
+
a.value = C;
|
|
548
549
|
try {
|
|
549
|
-
await
|
|
550
|
-
} catch (
|
|
551
|
-
console.error("[CogManager] 切换 COG 失败:",
|
|
550
|
+
await w();
|
|
551
|
+
} catch (B) {
|
|
552
|
+
console.error("[CogManager] 切换 COG 失败:", B);
|
|
552
553
|
}
|
|
553
|
-
},
|
|
554
|
-
|
|
554
|
+
}, l = () => {
|
|
555
|
+
o?.destroyCogTools(), g.value?.destroy(), g.value = null, o = null, E = null;
|
|
555
556
|
};
|
|
556
|
-
return
|
|
557
|
-
viewer:
|
|
558
|
-
cogList:
|
|
559
|
-
selectedCog:
|
|
560
|
-
isLoading:
|
|
561
|
-
error:
|
|
562
|
-
initViewer:
|
|
563
|
-
fetchCogList:
|
|
564
|
-
loadCOG:
|
|
565
|
-
removeCOG:
|
|
566
|
-
flyTo:
|
|
567
|
-
switchCog:
|
|
568
|
-
destroy:
|
|
557
|
+
return _(l), {
|
|
558
|
+
viewer: g,
|
|
559
|
+
cogList: s,
|
|
560
|
+
selectedCog: a,
|
|
561
|
+
isLoading: n,
|
|
562
|
+
error: r,
|
|
563
|
+
initViewer: f,
|
|
564
|
+
fetchCogList: c,
|
|
565
|
+
loadCOG: w,
|
|
566
|
+
removeCOG: h,
|
|
567
|
+
flyTo: d,
|
|
568
|
+
switchCog: Q,
|
|
569
|
+
destroy: l
|
|
569
570
|
};
|
|
570
571
|
}
|
|
571
572
|
export {
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
573
|
+
M as CogImageryProvider,
|
|
574
|
+
L as LRUCache,
|
|
575
|
+
O as addCogLayerToMap,
|
|
576
|
+
j as addCogLayerToOpenLayers,
|
|
577
|
+
T as createCogProvider,
|
|
578
|
+
K as expandRectangle,
|
|
579
|
+
z as useCogManager,
|
|
580
|
+
H as useCogTif
|
|
580
581
|
};
|
|
581
582
|
|
|
582
583
|
//# sourceMappingURL=index.js.map
|