@maplat/tin
Version:
JavaScript library which performs homeomorphic conversion mutually between the coordinate systems of two planes based on the control points.
1,067 lines • 147 kB
JavaScript
function Te(s, t, e = {}) {
const n = { type: "Feature" };
return (e.id === 0 || e.id) && (n.id = e.id), e.bbox && (n.bbox = e.bbox), n.properties = t || {}, n.geometry = s, n;
}
function he(s, t, e = {}) {
if (!s)
throw new Error("coordinates is required");
if (!Array.isArray(s))
throw new Error("coordinates must be an Array");
if (s.length < 2)
throw new Error("coordinates must be at least 2 numbers long");
if (!xn(s[0]) || !xn(s[1]))
throw new Error("coordinates must contain numbers");
return Te({
type: "Point",
coordinates: s
}, t, e);
}
function Oe(s, t, e = {}) {
for (const r of s) {
if (r.length < 4)
throw new Error(
"Each LinearRing of a Polygon must have 4 or more Positions."
);
if (r[r.length - 1].length !== r[0].length)
throw new Error("First and last Position are not equivalent.");
for (let i = 0; i < r[r.length - 1].length; i++)
if (r[r.length - 1][i] !== r[0][i])
throw new Error("First and last Position are not equivalent.");
}
return Te({
type: "Polygon",
coordinates: s
}, t, e);
}
function yn(s, t, e = {}) {
if (s.length < 2)
throw new Error("coordinates must be an array of two or more positions");
return Te({
type: "LineString",
coordinates: s
}, t, e);
}
function Qt(s, t = {}) {
const e = { type: "FeatureCollection" };
return t.id && (e.id = t.id), t.bbox && (e.bbox = t.bbox), e.features = s, e;
}
function xn(s) {
return !isNaN(s) && s !== null && !Array.isArray(s);
}
function sr(s) {
if (!s)
throw new Error("coord is required");
if (!Array.isArray(s)) {
if (s.type === "Feature" && s.geometry !== null && s.geometry.type === "Point")
return [...s.geometry.coordinates];
if (s.type === "Point")
return [...s.coordinates];
}
if (Array.isArray(s) && s.length >= 2 && !Array.isArray(s[0]) && !Array.isArray(s[1]))
return [...s];
throw new Error("coord must be GeoJSON Point or an Array of numbers");
}
function ar(s) {
return s.type === "Feature" ? s.geometry : s;
}
function dn(s, t, e) {
if (s !== null)
for (var n, r, i, o, a, c, f, l = 0, h = 0, d, b = s.type, k = b === "FeatureCollection", E = b === "Feature", F = k ? s.features.length : 1, L = 0; L < F; L++) {
f = k ? s.features[L].geometry : E ? s.geometry : s, d = f ? f.type === "GeometryCollection" : !1, a = d ? f.geometries.length : 1;
for (var g = 0; g < a; g++) {
var x = 0, u = 0;
if (o = d ? f.geometries[g] : f, o !== null) {
c = o.coordinates;
var w = o.type;
switch (l = e && (w === "Polygon" || w === "MultiPolygon") ? 1 : 0, w) {
case null:
break;
case "Point":
if (t(
c,
h,
L,
x,
u
) === !1)
return !1;
h++, x++;
break;
case "LineString":
case "MultiPoint":
for (n = 0; n < c.length; n++) {
if (t(
c[n],
h,
L,
x,
u
) === !1)
return !1;
h++, w === "MultiPoint" && x++;
}
w === "LineString" && x++;
break;
case "Polygon":
case "MultiLineString":
for (n = 0; n < c.length; n++) {
for (r = 0; r < c[n].length - l; r++) {
if (t(
c[n][r],
h,
L,
x,
u
) === !1)
return !1;
h++;
}
w === "MultiLineString" && x++, w === "Polygon" && u++;
}
w === "Polygon" && x++;
break;
case "MultiPolygon":
for (n = 0; n < c.length; n++) {
for (u = 0, r = 0; r < c[n].length; r++) {
for (i = 0; i < c[n][r].length - l; i++) {
if (t(
c[n][r][i],
h,
L,
x,
u
) === !1)
return !1;
h++;
}
u++;
}
x++;
}
break;
case "GeometryCollection":
for (n = 0; n < o.geometries.length; n++)
if (dn(o.geometries[n], t, e) === !1)
return !1;
break;
default:
throw new Error("Unknown Geometry Type");
}
}
}
}
}
const Rt = 11102230246251565e-32, st = 134217729, Wn = (3 + 8 * Rt) * Rt;
function Dt(s, t, e, n, r) {
let i, o, a, c, f = t[0], l = n[0], h = 0, d = 0;
l > f == l > -f ? (i = f, f = t[++h]) : (i = l, l = n[++d]);
let b = 0;
if (h < s && d < e)
for (l > f == l > -f ? (o = f + i, a = i - (o - f), f = t[++h]) : (o = l + i, a = i - (o - l), l = n[++d]), i = o, a !== 0 && (r[b++] = a); h < s && d < e; )
l > f == l > -f ? (o = i + f, c = o - i, a = i - (o - c) + (f - c), f = t[++h]) : (o = i + l, c = o - i, a = i - (o - c) + (l - c), l = n[++d]), i = o, a !== 0 && (r[b++] = a);
for (; h < s; )
o = i + f, c = o - i, a = i - (o - c) + (f - c), f = t[++h], i = o, a !== 0 && (r[b++] = a);
for (; d < e; )
o = i + l, c = o - i, a = i - (o - c) + (l - c), l = n[++d], i = o, a !== 0 && (r[b++] = a);
return (i !== 0 || b === 0) && (r[b++] = i), b;
}
function zt(s, t, e, n, r, i, o, a) {
return Dt(Dt(s, t, e, n, o), o, r, i, a);
}
function U(s, t, e, n) {
let r, i, o, a, c, f, l, h, d, b, k;
l = st * e, b = l - (l - e), k = e - b;
let E = t[0];
r = E * e, l = st * E, h = l - (l - E), d = E - h, o = d * k - (r - h * b - d * b - h * k);
let F = 0;
o !== 0 && (n[F++] = o);
for (let L = 1; L < s; L++)
E = t[L], a = E * e, l = st * E, h = l - (l - E), d = E - h, c = d * k - (a - h * b - d * b - h * k), i = r + c, f = i - r, o = r - (i - f) + (c - f), o !== 0 && (n[F++] = o), r = a + i, o = i - (r - a), o !== 0 && (n[F++] = o);
return (r !== 0 || F === 0) && (n[F++] = r), F;
}
function Gn(s, t) {
let e = t[0];
for (let n = 1; n < s; n++) e += t[n];
return e;
}
function bt(s) {
return new Float64Array(s);
}
const cr = (3 + 16 * Rt) * Rt, fr = (2 + 12 * Rt) * Rt, hr = (9 + 64 * Rt) * Rt * Rt, xe = bt(4), bn = bt(8), vn = bt(12), _n = bt(16), Yt = bt(4);
function lr(s, t, e, n, r, i, o) {
let a, c, f, l, h, d, b, k, E, F, L, g, x, u, w, m, T, O;
const I = s - r, P = e - r, C = t - i, R = n - i;
u = I * R, d = st * I, b = d - (d - I), k = I - b, d = st * R, E = d - (d - R), F = R - E, w = k * F - (u - b * E - k * E - b * F), m = C * P, d = st * C, b = d - (d - C), k = C - b, d = st * P, E = d - (d - P), F = P - E, T = k * F - (m - b * E - k * E - b * F), L = w - T, h = w - L, xe[0] = w - (L + h) + (h - T), g = u + L, h = g - u, x = u - (g - h) + (L - h), L = x - m, h = x - L, xe[1] = x - (L + h) + (h - m), O = g + L, h = O - g, xe[2] = g - (O - h) + (L - h), xe[3] = O;
let G = Gn(4, xe), p = fr * o;
if (G >= p || -G >= p || (h = s - I, a = s - (I + h) + (h - r), h = e - P, f = e - (P + h) + (h - r), h = t - C, c = t - (C + h) + (h - i), h = n - R, l = n - (R + h) + (h - i), a === 0 && c === 0 && f === 0 && l === 0) || (p = hr * o + Wn * Math.abs(G), G += I * l + R * a - (C * f + P * c), G >= p || -G >= p)) return G;
u = a * R, d = st * a, b = d - (d - a), k = a - b, d = st * R, E = d - (d - R), F = R - E, w = k * F - (u - b * E - k * E - b * F), m = c * P, d = st * c, b = d - (d - c), k = c - b, d = st * P, E = d - (d - P), F = P - E, T = k * F - (m - b * E - k * E - b * F), L = w - T, h = w - L, Yt[0] = w - (L + h) + (h - T), g = u + L, h = g - u, x = u - (g - h) + (L - h), L = x - m, h = x - L, Yt[1] = x - (L + h) + (h - m), O = g + L, h = O - g, Yt[2] = g - (O - h) + (L - h), Yt[3] = O;
const M = Dt(4, xe, 4, Yt, bn);
u = I * l, d = st * I, b = d - (d - I), k = I - b, d = st * l, E = d - (d - l), F = l - E, w = k * F - (u - b * E - k * E - b * F), m = C * f, d = st * C, b = d - (d - C), k = C - b, d = st * f, E = d - (d - f), F = f - E, T = k * F - (m - b * E - k * E - b * F), L = w - T, h = w - L, Yt[0] = w - (L + h) + (h - T), g = u + L, h = g - u, x = u - (g - h) + (L - h), L = x - m, h = x - L, Yt[1] = x - (L + h) + (h - m), O = g + L, h = O - g, Yt[2] = g - (O - h) + (L - h), Yt[3] = O;
const _ = Dt(M, bn, 4, Yt, vn);
u = a * l, d = st * a, b = d - (d - a), k = a - b, d = st * l, E = d - (d - l), F = l - E, w = k * F - (u - b * E - k * E - b * F), m = c * f, d = st * c, b = d - (d - c), k = c - b, d = st * f, E = d - (d - f), F = f - E, T = k * F - (m - b * E - k * E - b * F), L = w - T, h = w - L, Yt[0] = w - (L + h) + (h - T), g = u + L, h = g - u, x = u - (g - h) + (L - h), L = x - m, h = x - L, Yt[1] = x - (L + h) + (h - m), O = g + L, h = O - g, Yt[2] = g - (O - h) + (L - h), Yt[3] = O;
const X = Dt(_, vn, 4, Yt, _n);
return _n[X - 1];
}
function ne(s, t, e, n, r, i) {
const o = (t - i) * (e - r), a = (s - r) * (n - i), c = o - a, f = Math.abs(o + a);
return Math.abs(c) >= cr * f ? c : -lr(s, t, e, n, r, i, f);
}
const ur = (10 + 96 * Rt) * Rt, pr = (4 + 48 * Rt) * Rt, dr = (44 + 576 * Rt) * Rt * Rt, oe = bt(4), se = bt(4), ae = bt(4), Zt = bt(4), te = bt(4), ee = bt(4), Lt = bt(4), $t = bt(4), en = bt(8), nn = bt(8), rn = bt(8), on = bt(8), sn = bt(8), an = bt(8), De = bt(8), Ce = bt(8), Re = bt(8), de = bt(4), me = bt(4), ge = bt(4), ct = bt(8), pt = bt(16), kt = bt(16), Et = bt(16), vt = bt(32), ce = bt(32), Tt = bt(48), Vt = bt(64);
let ve = bt(1152), cn = bt(1152);
function Pt(s, t, e) {
s = Dt(s, ve, t, e, cn);
const n = ve;
return ve = cn, cn = n, s;
}
function mr(s, t, e, n, r, i, o, a, c) {
let f, l, h, d, b, k, E, F, L, g, x, u, w, m, T, O, I, P, C, R, G, p, M, _, X, B, Y, y, D, j, q, Q, H, rt, J;
const lt = s - o, ht = e - o, ut = r - o, dt = t - a, gt = n - a, mt = i - a;
q = ht * mt, M = st * ht, _ = M - (M - ht), X = ht - _, M = st * mt, B = M - (M - mt), Y = mt - B, Q = X * Y - (q - _ * B - X * B - _ * Y), H = ut * gt, M = st * ut, _ = M - (M - ut), X = ut - _, M = st * gt, B = M - (M - gt), Y = gt - B, rt = X * Y - (H - _ * B - X * B - _ * Y), y = Q - rt, p = Q - y, oe[0] = Q - (y + p) + (p - rt), D = q + y, p = D - q, j = q - (D - p) + (y - p), y = j - H, p = j - y, oe[1] = j - (y + p) + (p - H), J = D + y, p = J - D, oe[2] = D - (J - p) + (y - p), oe[3] = J, q = ut * dt, M = st * ut, _ = M - (M - ut), X = ut - _, M = st * dt, B = M - (M - dt), Y = dt - B, Q = X * Y - (q - _ * B - X * B - _ * Y), H = lt * mt, M = st * lt, _ = M - (M - lt), X = lt - _, M = st * mt, B = M - (M - mt), Y = mt - B, rt = X * Y - (H - _ * B - X * B - _ * Y), y = Q - rt, p = Q - y, se[0] = Q - (y + p) + (p - rt), D = q + y, p = D - q, j = q - (D - p) + (y - p), y = j - H, p = j - y, se[1] = j - (y + p) + (p - H), J = D + y, p = J - D, se[2] = D - (J - p) + (y - p), se[3] = J, q = lt * gt, M = st * lt, _ = M - (M - lt), X = lt - _, M = st * gt, B = M - (M - gt), Y = gt - B, Q = X * Y - (q - _ * B - X * B - _ * Y), H = ht * dt, M = st * ht, _ = M - (M - ht), X = ht - _, M = st * dt, B = M - (M - dt), Y = dt - B, rt = X * Y - (H - _ * B - X * B - _ * Y), y = Q - rt, p = Q - y, ae[0] = Q - (y + p) + (p - rt), D = q + y, p = D - q, j = q - (D - p) + (y - p), y = j - H, p = j - y, ae[1] = j - (y + p) + (p - H), J = D + y, p = J - D, ae[2] = D - (J - p) + (y - p), ae[3] = J, f = Dt(
Dt(
Dt(
U(U(4, oe, lt, ct), ct, lt, pt),
pt,
U(U(4, oe, dt, ct), ct, dt, kt),
kt,
vt
),
vt,
Dt(
U(U(4, se, ht, ct), ct, ht, pt),
pt,
U(U(4, se, gt, ct), ct, gt, kt),
kt,
ce
),
ce,
Vt
),
Vt,
Dt(
U(U(4, ae, ut, ct), ct, ut, pt),
pt,
U(U(4, ae, mt, ct), ct, mt, kt),
kt,
vt
),
vt,
ve
);
let It = Gn(f, ve), Nt = pr * c;
if (It >= Nt || -It >= Nt || (p = s - lt, l = s - (lt + p) + (p - o), p = t - dt, b = t - (dt + p) + (p - a), p = e - ht, h = e - (ht + p) + (p - o), p = n - gt, k = n - (gt + p) + (p - a), p = r - ut, d = r - (ut + p) + (p - o), p = i - mt, E = i - (mt + p) + (p - a), l === 0 && h === 0 && d === 0 && b === 0 && k === 0 && E === 0) || (Nt = dr * c + Wn * Math.abs(It), It += (lt * lt + dt * dt) * (ht * E + mt * h - (gt * d + ut * k)) + 2 * (lt * l + dt * b) * (ht * mt - gt * ut) + ((ht * ht + gt * gt) * (ut * b + dt * d - (mt * l + lt * E)) + 2 * (ht * h + gt * k) * (ut * dt - mt * lt)) + ((ut * ut + mt * mt) * (lt * k + gt * l - (dt * h + ht * b)) + 2 * (ut * d + mt * E) * (lt * gt - dt * ht)), It >= Nt || -It >= Nt))
return It;
if ((h !== 0 || k !== 0 || d !== 0 || E !== 0) && (q = lt * lt, M = st * lt, _ = M - (M - lt), X = lt - _, Q = X * X - (q - _ * _ - (_ + _) * X), H = dt * dt, M = st * dt, _ = M - (M - dt), X = dt - _, rt = X * X - (H - _ * _ - (_ + _) * X), y = Q + rt, p = y - Q, Zt[0] = Q - (y - p) + (rt - p), D = q + y, p = D - q, j = q - (D - p) + (y - p), y = j + H, p = y - j, Zt[1] = j - (y - p) + (H - p), J = D + y, p = J - D, Zt[2] = D - (J - p) + (y - p), Zt[3] = J), (d !== 0 || E !== 0 || l !== 0 || b !== 0) && (q = ht * ht, M = st * ht, _ = M - (M - ht), X = ht - _, Q = X * X - (q - _ * _ - (_ + _) * X), H = gt * gt, M = st * gt, _ = M - (M - gt), X = gt - _, rt = X * X - (H - _ * _ - (_ + _) * X), y = Q + rt, p = y - Q, te[0] = Q - (y - p) + (rt - p), D = q + y, p = D - q, j = q - (D - p) + (y - p), y = j + H, p = y - j, te[1] = j - (y - p) + (H - p), J = D + y, p = J - D, te[2] = D - (J - p) + (y - p), te[3] = J), (l !== 0 || b !== 0 || h !== 0 || k !== 0) && (q = ut * ut, M = st * ut, _ = M - (M - ut), X = ut - _, Q = X * X - (q - _ * _ - (_ + _) * X), H = mt * mt, M = st * mt, _ = M - (M - mt), X = mt - _, rt = X * X - (H - _ * _ - (_ + _) * X), y = Q + rt, p = y - Q, ee[0] = Q - (y - p) + (rt - p), D = q + y, p = D - q, j = q - (D - p) + (y - p), y = j + H, p = y - j, ee[1] = j - (y - p) + (H - p), J = D + y, p = J - D, ee[2] = D - (J - p) + (y - p), ee[3] = J), l !== 0 && (F = U(4, oe, l, en), f = Pt(f, zt(
U(F, en, 2 * lt, pt),
pt,
U(U(4, ee, l, ct), ct, gt, kt),
kt,
U(U(4, te, l, ct), ct, -mt, Et),
Et,
vt,
Tt
), Tt)), b !== 0 && (L = U(4, oe, b, nn), f = Pt(f, zt(
U(L, nn, 2 * dt, pt),
pt,
U(U(4, te, b, ct), ct, ut, kt),
kt,
U(U(4, ee, b, ct), ct, -ht, Et),
Et,
vt,
Tt
), Tt)), h !== 0 && (g = U(4, se, h, rn), f = Pt(f, zt(
U(g, rn, 2 * ht, pt),
pt,
U(U(4, Zt, h, ct), ct, mt, kt),
kt,
U(U(4, ee, h, ct), ct, -dt, Et),
Et,
vt,
Tt
), Tt)), k !== 0 && (x = U(4, se, k, on), f = Pt(f, zt(
U(x, on, 2 * gt, pt),
pt,
U(U(4, ee, k, ct), ct, lt, kt),
kt,
U(U(4, Zt, k, ct), ct, -ut, Et),
Et,
vt,
Tt
), Tt)), d !== 0 && (u = U(4, ae, d, sn), f = Pt(f, zt(
U(u, sn, 2 * ut, pt),
pt,
U(U(4, te, d, ct), ct, dt, kt),
kt,
U(U(4, Zt, d, ct), ct, -gt, Et),
Et,
vt,
Tt
), Tt)), E !== 0 && (w = U(4, ae, E, an), f = Pt(f, zt(
U(w, an, 2 * mt, pt),
pt,
U(U(4, Zt, E, ct), ct, ht, kt),
kt,
U(U(4, te, E, ct), ct, -lt, Et),
Et,
vt,
Tt
), Tt)), l !== 0 || b !== 0) {
if (h !== 0 || k !== 0 || d !== 0 || E !== 0 ? (q = h * mt, M = st * h, _ = M - (M - h), X = h - _, M = st * mt, B = M - (M - mt), Y = mt - B, Q = X * Y - (q - _ * B - X * B - _ * Y), H = ht * E, M = st * ht, _ = M - (M - ht), X = ht - _, M = st * E, B = M - (M - E), Y = E - B, rt = X * Y - (H - _ * B - X * B - _ * Y), y = Q + rt, p = y - Q, Lt[0] = Q - (y - p) + (rt - p), D = q + y, p = D - q, j = q - (D - p) + (y - p), y = j + H, p = y - j, Lt[1] = j - (y - p) + (H - p), J = D + y, p = J - D, Lt[2] = D - (J - p) + (y - p), Lt[3] = J, q = d * -gt, M = st * d, _ = M - (M - d), X = d - _, M = st * -gt, B = M - (M - -gt), Y = -gt - B, Q = X * Y - (q - _ * B - X * B - _ * Y), H = ut * -k, M = st * ut, _ = M - (M - ut), X = ut - _, M = st * -k, B = M - (M - -k), Y = -k - B, rt = X * Y - (H - _ * B - X * B - _ * Y), y = Q + rt, p = y - Q, $t[0] = Q - (y - p) + (rt - p), D = q + y, p = D - q, j = q - (D - p) + (y - p), y = j + H, p = y - j, $t[1] = j - (y - p) + (H - p), J = D + y, p = J - D, $t[2] = D - (J - p) + (y - p), $t[3] = J, T = Dt(4, Lt, 4, $t, Ce), q = h * E, M = st * h, _ = M - (M - h), X = h - _, M = st * E, B = M - (M - E), Y = E - B, Q = X * Y - (q - _ * B - X * B - _ * Y), H = d * k, M = st * d, _ = M - (M - d), X = d - _, M = st * k, B = M - (M - k), Y = k - B, rt = X * Y - (H - _ * B - X * B - _ * Y), y = Q - rt, p = Q - y, me[0] = Q - (y + p) + (p - rt), D = q + y, p = D - q, j = q - (D - p) + (y - p), y = j - H, p = j - y, me[1] = j - (y + p) + (p - H), J = D + y, p = J - D, me[2] = D - (J - p) + (y - p), me[3] = J, P = 4) : (Ce[0] = 0, T = 1, me[0] = 0, P = 1), l !== 0) {
const _t = U(T, Ce, l, Et);
f = Pt(f, Dt(
U(F, en, l, pt),
pt,
U(_t, Et, 2 * lt, vt),
vt,
Tt
), Tt);
const Mt = U(P, me, l, ct);
f = Pt(f, zt(
U(Mt, ct, 2 * lt, pt),
pt,
U(Mt, ct, l, kt),
kt,
U(_t, Et, l, vt),
vt,
ce,
Vt
), Vt), k !== 0 && (f = Pt(f, U(U(4, ee, l, ct), ct, k, pt), pt)), E !== 0 && (f = Pt(f, U(U(4, te, -l, ct), ct, E, pt), pt));
}
if (b !== 0) {
const _t = U(T, Ce, b, Et);
f = Pt(f, Dt(
U(L, nn, b, pt),
pt,
U(_t, Et, 2 * dt, vt),
vt,
Tt
), Tt);
const Mt = U(P, me, b, ct);
f = Pt(f, zt(
U(Mt, ct, 2 * dt, pt),
pt,
U(Mt, ct, b, kt),
kt,
U(_t, Et, b, vt),
vt,
ce,
Vt
), Vt);
}
}
if (h !== 0 || k !== 0) {
if (d !== 0 || E !== 0 || l !== 0 || b !== 0 ? (q = d * dt, M = st * d, _ = M - (M - d), X = d - _, M = st * dt, B = M - (M - dt), Y = dt - B, Q = X * Y - (q - _ * B - X * B - _ * Y), H = ut * b, M = st * ut, _ = M - (M - ut), X = ut - _, M = st * b, B = M - (M - b), Y = b - B, rt = X * Y - (H - _ * B - X * B - _ * Y), y = Q + rt, p = y - Q, Lt[0] = Q - (y - p) + (rt - p), D = q + y, p = D - q, j = q - (D - p) + (y - p), y = j + H, p = y - j, Lt[1] = j - (y - p) + (H - p), J = D + y, p = J - D, Lt[2] = D - (J - p) + (y - p), Lt[3] = J, R = -mt, G = -E, q = l * R, M = st * l, _ = M - (M - l), X = l - _, M = st * R, B = M - (M - R), Y = R - B, Q = X * Y - (q - _ * B - X * B - _ * Y), H = lt * G, M = st * lt, _ = M - (M - lt), X = lt - _, M = st * G, B = M - (M - G), Y = G - B, rt = X * Y - (H - _ * B - X * B - _ * Y), y = Q + rt, p = y - Q, $t[0] = Q - (y - p) + (rt - p), D = q + y, p = D - q, j = q - (D - p) + (y - p), y = j + H, p = y - j, $t[1] = j - (y - p) + (H - p), J = D + y, p = J - D, $t[2] = D - (J - p) + (y - p), $t[3] = J, O = Dt(4, Lt, 4, $t, Re), q = d * b, M = st * d, _ = M - (M - d), X = d - _, M = st * b, B = M - (M - b), Y = b - B, Q = X * Y - (q - _ * B - X * B - _ * Y), H = l * E, M = st * l, _ = M - (M - l), X = l - _, M = st * E, B = M - (M - E), Y = E - B, rt = X * Y - (H - _ * B - X * B - _ * Y), y = Q - rt, p = Q - y, ge[0] = Q - (y + p) + (p - rt), D = q + y, p = D - q, j = q - (D - p) + (y - p), y = j - H, p = j - y, ge[1] = j - (y + p) + (p - H), J = D + y, p = J - D, ge[2] = D - (J - p) + (y - p), ge[3] = J, C = 4) : (Re[0] = 0, O = 1, ge[0] = 0, C = 1), h !== 0) {
const _t = U(O, Re, h, Et);
f = Pt(f, Dt(
U(g, rn, h, pt),
pt,
U(_t, Et, 2 * ht, vt),
vt,
Tt
), Tt);
const Mt = U(C, ge, h, ct);
f = Pt(f, zt(
U(Mt, ct, 2 * ht, pt),
pt,
U(Mt, ct, h, kt),
kt,
U(_t, Et, h, vt),
vt,
ce,
Vt
), Vt), E !== 0 && (f = Pt(f, U(U(4, Zt, h, ct), ct, E, pt), pt)), b !== 0 && (f = Pt(f, U(U(4, ee, -h, ct), ct, b, pt), pt));
}
if (k !== 0) {
const _t = U(O, Re, k, Et);
f = Pt(f, Dt(
U(x, on, k, pt),
pt,
U(_t, Et, 2 * gt, vt),
vt,
Tt
), Tt);
const Mt = U(C, ge, k, ct);
f = Pt(f, zt(
U(Mt, ct, 2 * gt, pt),
pt,
U(Mt, ct, k, kt),
kt,
U(_t, Et, k, vt),
vt,
ce,
Vt
), Vt);
}
}
if (d !== 0 || E !== 0) {
if (l !== 0 || b !== 0 || h !== 0 || k !== 0 ? (q = l * gt, M = st * l, _ = M - (M - l), X = l - _, M = st * gt, B = M - (M - gt), Y = gt - B, Q = X * Y - (q - _ * B - X * B - _ * Y), H = lt * k, M = st * lt, _ = M - (M - lt), X = lt - _, M = st * k, B = M - (M - k), Y = k - B, rt = X * Y - (H - _ * B - X * B - _ * Y), y = Q + rt, p = y - Q, Lt[0] = Q - (y - p) + (rt - p), D = q + y, p = D - q, j = q - (D - p) + (y - p), y = j + H, p = y - j, Lt[1] = j - (y - p) + (H - p), J = D + y, p = J - D, Lt[2] = D - (J - p) + (y - p), Lt[3] = J, R = -dt, G = -b, q = h * R, M = st * h, _ = M - (M - h), X = h - _, M = st * R, B = M - (M - R), Y = R - B, Q = X * Y - (q - _ * B - X * B - _ * Y), H = ht * G, M = st * ht, _ = M - (M - ht), X = ht - _, M = st * G, B = M - (M - G), Y = G - B, rt = X * Y - (H - _ * B - X * B - _ * Y), y = Q + rt, p = y - Q, $t[0] = Q - (y - p) + (rt - p), D = q + y, p = D - q, j = q - (D - p) + (y - p), y = j + H, p = y - j, $t[1] = j - (y - p) + (H - p), J = D + y, p = J - D, $t[2] = D - (J - p) + (y - p), $t[3] = J, m = Dt(4, Lt, 4, $t, De), q = l * k, M = st * l, _ = M - (M - l), X = l - _, M = st * k, B = M - (M - k), Y = k - B, Q = X * Y - (q - _ * B - X * B - _ * Y), H = h * b, M = st * h, _ = M - (M - h), X = h - _, M = st * b, B = M - (M - b), Y = b - B, rt = X * Y - (H - _ * B - X * B - _ * Y), y = Q - rt, p = Q - y, de[0] = Q - (y + p) + (p - rt), D = q + y, p = D - q, j = q - (D - p) + (y - p), y = j - H, p = j - y, de[1] = j - (y + p) + (p - H), J = D + y, p = J - D, de[2] = D - (J - p) + (y - p), de[3] = J, I = 4) : (De[0] = 0, m = 1, de[0] = 0, I = 1), d !== 0) {
const _t = U(m, De, d, Et);
f = Pt(f, Dt(
U(u, sn, d, pt),
pt,
U(_t, Et, 2 * ut, vt),
vt,
Tt
), Tt);
const Mt = U(I, de, d, ct);
f = Pt(f, zt(
U(Mt, ct, 2 * ut, pt),
pt,
U(Mt, ct, d, kt),
kt,
U(_t, Et, d, vt),
vt,
ce,
Vt
), Vt), b !== 0 && (f = Pt(f, U(U(4, te, d, ct), ct, b, pt), pt)), k !== 0 && (f = Pt(f, U(U(4, Zt, -d, ct), ct, k, pt), pt));
}
if (E !== 0) {
const _t = U(m, De, E, Et);
f = Pt(f, Dt(
U(w, an, E, pt),
pt,
U(_t, Et, 2 * mt, vt),
vt,
Tt
), Tt);
const Mt = U(I, de, E, ct);
f = Pt(f, zt(
U(Mt, ct, 2 * mt, pt),
pt,
U(Mt, ct, E, kt),
kt,
U(_t, Et, E, vt),
vt,
ce,
Vt
), Vt);
}
}
return ve[f - 1];
}
function gr(s, t, e, n, r, i, o, a) {
const c = s - o, f = e - o, l = r - o, h = t - a, d = n - a, b = i - a, k = f * b, E = l * d, F = c * c + h * h, L = l * h, g = c * b, x = f * f + d * d, u = c * d, w = f * h, m = l * l + b * b, T = F * (k - E) + x * (L - g) + m * (u - w), O = (Math.abs(k) + Math.abs(E)) * F + (Math.abs(L) + Math.abs(g)) * x + (Math.abs(u) + Math.abs(w)) * m, I = ur * O;
return T > I || -T > I ? T : mr(s, t, e, n, r, i, o, a, O);
}
function wr(s, t) {
var e, n, r = 0, i, o, a, c, f, l, h, d = s[0], b = s[1], k = t.length;
for (e = 0; e < k; e++) {
n = 0;
var E = t[e], F = E.length - 1;
if (l = E[0], l[0] !== E[F][0] && l[1] !== E[F][1])
throw new Error("First and last coordinates in a ring must be the same");
for (o = l[0] - d, a = l[1] - b, n; n < F; n++) {
if (h = E[n + 1], c = h[0] - d, f = h[1] - b, a === 0 && f === 0) {
if (c <= 0 && o >= 0 || o <= 0 && c >= 0)
return 0;
} else if (f >= 0 && a <= 0 || f <= 0 && a >= 0) {
if (i = ne(o, c, a, f, 0, 0), i === 0)
return 0;
(i > 0 && f > 0 && a <= 0 || i < 0 && f <= 0 && a > 0) && r++;
}
l = h, a = f, o = c;
}
}
return r % 2 !== 0;
}
function fn(s, t, e = {}) {
if (!s)
throw new Error("point is required");
if (!t)
throw new Error("polygon is required");
const n = sr(s), r = ar(t), i = r.type, o = t.bbox;
let a = r.coordinates;
if (o && yr(n, o) === !1)
return !1;
i === "Polygon" && (a = [a]);
let c = !1;
for (var f = 0; f < a.length; ++f) {
const l = wr(n, a[f]);
if (l === 0) return !e.ignoreBoundary;
l && (c = !0);
}
return c;
}
function yr(s, t) {
return t[0] <= s[0] && t[1] <= s[1] && t[2] >= s[0] && t[3] >= s[1];
}
let Jn = class {
constructor(t = [], e = xr) {
if (this.data = t, this.length = this.data.length, this.compare = e, this.length > 0)
for (let n = (this.length >> 1) - 1; n >= 0; n--) this._down(n);
}
push(t) {
this.data.push(t), this.length++, this._up(this.length - 1);
}
pop() {
if (this.length === 0) return;
const t = this.data[0], e = this.data.pop();
return this.length--, this.length > 0 && (this.data[0] = e, this._down(0)), t;
}
peek() {
return this.data[0];
}
_up(t) {
const { data: e, compare: n } = this, r = e[t];
for (; t > 0; ) {
const i = t - 1 >> 1, o = e[i];
if (n(r, o) >= 0) break;
e[t] = o, t = i;
}
e[t] = r;
}
_down(t) {
const { data: e, compare: n } = this, r = this.length >> 1, i = e[t];
for (; t < r; ) {
let o = (t << 1) + 1, a = e[o];
const c = o + 1;
if (c < this.length && n(e[c], a) < 0 && (o = c, a = e[c]), n(a, i) >= 0) break;
e[t] = a, t = o;
}
e[t] = i;
}
};
function xr(s, t) {
return s < t ? -1 : s > t ? 1 : 0;
}
function Kn(s, t) {
return s.p.x > t.p.x ? 1 : s.p.x < t.p.x ? -1 : s.p.y !== t.p.y ? s.p.y > t.p.y ? 1 : -1 : 1;
}
function br(s, t) {
return s.rightSweepEvent.p.x > t.rightSweepEvent.p.x ? 1 : s.rightSweepEvent.p.x < t.rightSweepEvent.p.x ? -1 : s.rightSweepEvent.p.y !== t.rightSweepEvent.p.y ? s.rightSweepEvent.p.y < t.rightSweepEvent.p.y ? 1 : -1 : 1;
}
class Mn {
constructor(t, e, n, r) {
this.p = {
x: t[0],
y: t[1]
}, this.featureId = e, this.ringId = n, this.eventId = r, this.otherEvent = null, this.isLeftEndpoint = null;
}
isSamePoint(t) {
return this.p.x === t.p.x && this.p.y === t.p.y;
}
}
function vr(s, t) {
if (s.type === "FeatureCollection") {
const e = s.features;
for (let n = 0; n < e.length; n++)
Sn(e[n], t);
} else
Sn(s, t);
}
let Fe = 0, Ye = 0, Le = 0;
function Sn(s, t) {
const e = s.type === "Feature" ? s.geometry : s;
let n = e.coordinates;
(e.type === "Polygon" || e.type === "MultiLineString") && (n = [n]), e.type === "LineString" && (n = [[n]]);
for (let r = 0; r < n.length; r++)
for (let i = 0; i < n[r].length; i++) {
let o = n[r][i][0], a = null;
Ye = Ye + 1;
for (let c = 0; c < n[r][i].length - 1; c++) {
a = n[r][i][c + 1];
const f = new Mn(o, Fe, Ye, Le), l = new Mn(a, Fe, Ye, Le + 1);
f.otherEvent = l, l.otherEvent = f, Kn(f, l) > 0 ? (l.isLeftEndpoint = !0, f.isLeftEndpoint = !1) : (f.isLeftEndpoint = !0, l.isLeftEndpoint = !1), t.push(f), t.push(l), o = a, Le = Le + 1;
}
}
Fe = Fe + 1;
}
class _r {
constructor(t) {
this.leftSweepEvent = t, this.rightSweepEvent = t.otherEvent;
}
}
function Mr(s, t) {
if (s === null || t === null || s.leftSweepEvent.ringId === t.leftSweepEvent.ringId && (s.rightSweepEvent.isSamePoint(t.leftSweepEvent) || s.rightSweepEvent.isSamePoint(t.leftSweepEvent) || s.rightSweepEvent.isSamePoint(t.rightSweepEvent) || s.leftSweepEvent.isSamePoint(t.leftSweepEvent) || s.leftSweepEvent.isSamePoint(t.rightSweepEvent))) return !1;
const e = s.leftSweepEvent.p.x, n = s.leftSweepEvent.p.y, r = s.rightSweepEvent.p.x, i = s.rightSweepEvent.p.y, o = t.leftSweepEvent.p.x, a = t.leftSweepEvent.p.y, c = t.rightSweepEvent.p.x, f = t.rightSweepEvent.p.y, l = (f - a) * (r - e) - (c - o) * (i - n), h = (c - o) * (n - a) - (f - a) * (e - o), d = (r - e) * (n - a) - (i - n) * (e - o);
if (l === 0)
return !1;
const b = h / l, k = d / l;
if (b >= 0 && b <= 1 && k >= 0 && k <= 1) {
const E = e + b * (r - e), F = n + b * (i - n);
return [E, F];
}
return !1;
}
function Sr(s, t) {
t = t || !1;
const e = [], n = new Jn([], br);
for (; s.length; ) {
const r = s.pop();
if (r.isLeftEndpoint) {
const i = new _r(r);
for (let o = 0; o < n.data.length; o++) {
const a = n.data[o];
if (t && a.leftSweepEvent.featureId === r.featureId)
continue;
const c = Mr(i, a);
c !== !1 && e.push(c);
}
n.push(i);
} else r.isLeftEndpoint === !1 && n.pop();
}
return e;
}
function kr(s, t) {
const e = new Jn([], Kn);
return vr(s, e), Sr(e, t);
}
var Er = kr;
function Ar(s, t, e = {}) {
const { removeDuplicates: n = !0, ignoreSelfIntersections: r = !0 } = e;
let i = [];
s.type === "FeatureCollection" ? i = i.concat(s.features) : s.type === "Feature" ? i.push(s) : (s.type === "LineString" || s.type === "Polygon" || s.type === "MultiLineString" || s.type === "MultiPolygon") && i.push(Te(s)), t.type === "FeatureCollection" ? i = i.concat(t.features) : t.type === "Feature" ? i.push(t) : (t.type === "LineString" || t.type === "Polygon" || t.type === "MultiLineString" || t.type === "MultiPolygon") && i.push(Te(t));
const o = Er(
Qt(i),
r
);
let a = [];
if (n) {
const c = {};
o.forEach((f) => {
const l = f.join(",");
c[l] || (c[l] = !0, a.push(f));
});
} else
a = o;
return Qt(a.map((c) => he(c)));
}
function Ir(s) {
return s && s.__esModule && Object.prototype.hasOwnProperty.call(s, "default") ? s.default : s;
}
function Br(s) {
if (Object.prototype.hasOwnProperty.call(s, "__esModule")) return s;
var t = s.default;
if (typeof t == "function") {
var e = function n() {
var r = !1;
try {
r = this instanceof n;
} catch {
}
return r ? Reflect.construct(t, arguments, this.constructor) : t.apply(this, arguments);
};
e.prototype = t.prototype;
} else e = {};
return Object.defineProperty(e, "__esModule", { value: !0 }), Object.keys(s).forEach(function(n) {
var r = Object.getOwnPropertyDescriptor(s, n);
Object.defineProperty(e, n, r.get ? r : {
enumerable: !0,
get: function() {
return s[n];
}
});
}), e;
}
function Tr(s, t = {}) {
let e = 0, n = 0, r = 0;
return dn(
s,
function(i) {
e += i[0], n += i[1], r++;
},
!0
), he([e / r, n / r], t.properties);
}
var $e = { exports: {} }, Je = { exports: {} }, Pr = Je.exports, kn;
function Or() {
return kn || (kn = 1, (function(s, t) {
(function(e, n) {
s.exports = n();
})(Pr, function() {
function e(g, x, u, w, m) {
(function T(O, I, P, C, R) {
for (; C > P; ) {
if (C - P > 600) {
var G = C - P + 1, p = I - P + 1, M = Math.log(G), _ = 0.5 * Math.exp(2 * M / 3), X = 0.5 * Math.sqrt(M * _ * (G - _) / G) * (p - G / 2 < 0 ? -1 : 1), B = Math.max(P, Math.floor(I - p * _ / G + X)), Y = Math.min(C, Math.floor(I + (G - p) * _ / G + X));
T(O, I, B, Y, R);
}
var y = O[I], D = P, j = C;
for (n(O, P, I), R(O[C], y) > 0 && n(O, P, C); D < j; ) {
for (n(O, D, j), D++, j--; R(O[D], y) < 0; ) D++;
for (; R(O[j], y) > 0; ) j--;
}
R(O[P], y) === 0 ? n(O, P, j) : n(O, ++j, C), j <= I && (P = j + 1), I <= j && (C = j - 1);
}
})(g, x, u || 0, w || g.length - 1, m || r);
}
function n(g, x, u) {
var w = g[x];
g[x] = g[u], g[u] = w;
}
function r(g, x) {
return g < x ? -1 : g > x ? 1 : 0;
}
var i = function(g) {
g === void 0 && (g = 9), this._maxEntries = Math.max(4, g), this._minEntries = Math.max(2, Math.ceil(0.4 * this._maxEntries)), this.clear();
};
function o(g, x, u) {
if (!u) return x.indexOf(g);
for (var w = 0; w < x.length; w++) if (u(g, x[w])) return w;
return -1;
}
function a(g, x) {
c(g, 0, g.children.length, x, g);
}
function c(g, x, u, w, m) {
m || (m = F(null)), m.minX = 1 / 0, m.minY = 1 / 0, m.maxX = -1 / 0, m.maxY = -1 / 0;
for (var T = x; T < u; T++) {
var O = g.children[T];
f(m, g.leaf ? w(O) : O);
}
return m;
}
function f(g, x) {
return g.minX = Math.min(g.minX, x.minX), g.minY = Math.min(g.minY, x.minY), g.maxX = Math.max(g.maxX, x.maxX), g.maxY = Math.max(g.maxY, x.maxY), g;
}
function l(g, x) {
return g.minX - x.minX;
}
function h(g, x) {
return g.minY - x.minY;
}
function d(g) {
return (g.maxX - g.minX) * (g.maxY - g.minY);
}
function b(g) {
return g.maxX - g.minX + (g.maxY - g.minY);
}
function k(g, x) {
return g.minX <= x.minX && g.minY <= x.minY && x.maxX <= g.maxX && x.maxY <= g.maxY;
}
function E(g, x) {
return x.minX <= g.maxX && x.minY <= g.maxY && x.maxX >= g.minX && x.maxY >= g.minY;
}
function F(g) {
return { children: g, height: 1, leaf: !0, minX: 1 / 0, minY: 1 / 0, maxX: -1 / 0, maxY: -1 / 0 };
}
function L(g, x, u, w, m) {
for (var T = [x, u]; T.length; ) if (!((u = T.pop()) - (x = T.pop()) <= w)) {
var O = x + Math.ceil((u - x) / w / 2) * w;
e(g, O, x, u, m), T.push(x, O, O, u);
}
}
return i.prototype.all = function() {
return this._all(this.data, []);
}, i.prototype.search = function(g) {
var x = this.data, u = [];
if (!E(g, x)) return u;
for (var w = this.toBBox, m = []; x; ) {
for (var T = 0; T < x.children.length; T++) {
var O = x.children[T], I = x.leaf ? w(O) : O;
E(g, I) && (x.leaf ? u.push(O) : k(g, I) ? this._all(O, u) : m.push(O));
}
x = m.pop();
}
return u;
}, i.prototype.collides = function(g) {
var x = this.data;
if (!E(g, x)) return !1;
for (var u = []; x; ) {
for (var w = 0; w < x.children.length; w++) {
var m = x.children[w], T = x.leaf ? this.toBBox(m) : m;
if (E(g, T)) {
if (x.leaf || k(g, T)) return !0;
u.push(m);
}
}
x = u.pop();
}
return !1;
}, i.prototype.load = function(g) {
if (!g || !g.length) return this;
if (g.length < this._minEntries) {
for (var x = 0; x < g.length; x++) this.insert(g[x]);
return this;
}
var u = this._build(g.slice(), 0, g.length - 1, 0);
if (this.data.children.length) if (this.data.height === u.height) this._splitRoot(this.data, u);
else {
if (this.data.height < u.height) {
var w = this.data;
this.data = u, u = w;
}
this._insert(u, this.data.height - u.height - 1, !0);
}
else this.data = u;
return this;
}, i.prototype.insert = function(g) {
return g && this._insert(g, this.data.height - 1), this;
}, i.prototype.clear = function() {
return this.data = F([]), this;
}, i.prototype.remove = function(g, x) {
if (!g) return this;
for (var u, w, m, T = this.data, O = this.toBBox(g), I = [], P = []; T || I.length; ) {
if (T || (T = I.pop(), w = I[I.length - 1], u = P.pop(), m = !0), T.leaf) {
var C = o(g, T.children, x);
if (C !== -1) return T.children.splice(C, 1), I.push(T), this._condense(I), this;
}
m || T.leaf || !k(T, O) ? w ? (u++, T = w.children[u], m = !1) : T = null : (I.push(T), P.push(u), u = 0, w = T, T = T.children[0]);
}
return this;
}, i.prototype.toBBox = function(g) {
return g;
}, i.prototype.compareMinX = function(g, x) {
return g.minX - x.minX;
}, i.prototype.compareMinY = function(g, x) {
return g.minY - x.minY;
}, i.prototype.toJSON = function() {
return this.data;
}, i.prototype.fromJSON = function(g) {
return this.data = g, this;
}, i.prototype._all = function(g, x) {
for (var u = []; g; ) g.leaf ? x.push.apply(x, g.children) : u.push.apply(u, g.children), g = u.pop();
return x;
}, i.prototype._build = function(g, x, u, w) {
var m, T = u - x + 1, O = this._maxEntries;
if (T <= O) return a(m = F(g.slice(x, u + 1)), this.toBBox), m;
w || (w = Math.ceil(Math.log(T) / Math.log(O)), O = Math.ceil(T / Math.pow(O, w - 1))), (m = F([])).leaf = !1, m.height = w;
var I = Math.ceil(T / O), P = I * Math.ceil(Math.sqrt(O));
L(g, x, u, P, this.compareMinX);
for (var C = x; C <= u; C += P) {
var R = Math.min(C + P - 1, u);
L(g, C, R, I, this.compareMinY);
for (var G = C; G <= R; G += I) {
var p = Math.min(G + I - 1, R);
m.children.push(this._build(g, G, p, w - 1));
}
}
return a(m, this.toBBox), m;
}, i.prototype._chooseSubtree = function(g, x, u, w) {
for (; w.push(x), !x.leaf && w.length - 1 !== u; ) {
for (var m = 1 / 0, T = 1 / 0, O = void 0, I = 0; I < x.children.length; I++) {
var P = x.children[I], C = d(P), R = (G = g, p = P, (Math.max(p.maxX, G.maxX) - Math.min(p.minX, G.minX)) * (Math.max(p.maxY, G.maxY) - Math.min(p.minY, G.minY)) - C);
R < T ? (T = R, m = C < m ? C : m, O = P) : R === T && C < m && (m = C, O = P);
}
x = O || x.children[0];
}
var G, p;
return x;
}, i.prototype._insert = function(g, x, u) {
var w = u ? g : this.toBBox(g), m = [], T = this._chooseSubtree(w, this.data, x, m);
for (T.children.push(g), f(T, w); x >= 0 && m[x].children.length > this._maxEntries; ) this._split(m, x), x--;
this._adjustParentBBoxes(w, m, x);
}, i.prototype._split = function(g, x) {
var u = g[x], w = u.children.length, m = this._minEntries;
this._chooseSplitAxis(u, m, w);
var T = this._chooseSplitIndex(u, m, w), O = F(u.children.splice(T, u.children.length - T));
O.height = u.height, O.leaf = u.leaf, a(u, this.toBBox), a(O, this.toBBox), x ? g[x - 1].children.push(O) : this._splitRoot(u, O);
}, i.prototype._splitRoot = function(g, x) {
this.data = F([g, x]), this.data.height = g.height + 1, this.data.leaf = !1, a(this.data, this.toBBox);
}, i.prototype._chooseSplitIndex = function(g, x, u) {
for (var w, m, T, O, I, P, C, R = 1 / 0, G = 1 / 0, p = x; p <= u - x; p++) {
var M = c(g, 0, p, this.toBBox), _ = c(g, p, u, this.toBBox), X = (m = M, T = _, O = void 0, I = void 0, P = void 0, C = void 0, O = Math.max(m.minX, T.minX), I = Math.max(m.minY, T.minY), P = Math.min(m.maxX, T.maxX), C = Math.min(m.maxY, T.maxY), Math.max(0, P - O) * Math.max(0, C - I)), B = d(M) + d(_);
X < R ? (R = X, w = p, G = B < G ? B : G) : X === R && B < G && (G = B, w = p);
}
return w || u - x;
}, i.prototype._chooseSplitAxis = function(g, x, u) {
var w = g.leaf ? this.compareMinX : l, m = g.leaf ? this.compareMinY : h;
this._allDistMargin(g, x, u, w) < this._allDistMargin(g, x, u, m) && g.children.sort(w);
}, i.prototype._allDistMargin = function(g, x, u, w) {
g.children.sort(w);
for (var m = this.toBBox, T = c(g, 0, x, m), O = c(g, u - x, u, m), I = b(T) + b(O), P = x; P < u - x; P++) {
var C = g.children[P];
f(T, g.leaf ? m(C) : C), I += b(T);
}
for (var R = u - x - 1; R >= x; R--) {
var G = g.children[R];
f(O, g.leaf ? m(G) : G), I += b(O);
}
return I;
}, i.prototype._adjustParentBBoxes = function(g, x, u) {
for (var w = u; w >= 0; w--) f(x[w], g);
}, i.prototype._condense = function(g) {
for (var x = g.length - 1, u = void 0; x >= 0; x--) g[x].children.length === 0 ? x > 0 ? (u = g[x - 1].children).splice(u.indexOf(g[x]), 1) : this.clear() : a(g[x], this.toBBox);
}, i;
});
})(Je)), Je.exports;
}
class Nr {
constructor(t = [], e = Xr) {
if (this.data = t, this.length = this.data.length, this.compare = e, this.length > 0)
for (let n = (this.length >> 1) - 1; n >= 0; n--) this._down(n);
}
push(t) {
this.data.push(t), this.length++, this._up(this.length - 1);
}
pop() {
if (this.length === 0) return;
const t = this.data[0], e = this.data.pop();
return this.length--, this.length > 0 && (this.data[0] = e, this._down(0)), t;
}
peek() {
return this.data[0];
}
_up(t) {
const { data: e, compare: n } = this, r = e[t];
for (; t > 0; ) {
const i = t - 1 >> 1, o = e[i];
if (n(r, o) >= 0) break;
e[t] = o, t = i;
}
e[t] = r;
}
_down(t) {
const { data: e, compare: n } = this, r = this.length >> 1, i = e[t];
for (; t < r; ) {
let o = (t << 1) + 1, a = e[o];
const c = o + 1;
if (c < this.length && n(e[c], a) < 0 && (o = c, a = e[c]), n(a, i) >= 0) break;
e[t] = a, t = o;
}
e[t] = i;
}
}
function Xr(s, t) {
return s < t ? -1 : s > t ? 1 : 0;
}
const Dr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
__proto__: null,
default: Nr
}, Symbol.toStringTag, { value: "Module" })), Cr = /* @__PURE__ */ Br(Dr);
var Se = { exports: {} }, hn, En;
function Rr() {
return En || (En = 1, hn = function(t, e, n, r) {
var i = t[0], o = t[1], a = !1;
n === void 0 && (n = 0), r === void 0 && (r = e.length);
for (var c = (r - n) / 2, f = 0, l = c - 1; f < c; l = f++) {
var h = e[n + f * 2 + 0], d = e[n + f * 2 + 1], b = e[n + l * 2 + 0], k = e[n + l * 2 + 1], E = d > o != k > o && i < (b - h) * (o - d) / (k - d) + h;
E && (a = !a);
}
return a;
}), hn;
}
var ln, An;
function Fr() {
return An || (An = 1, ln = function(t, e, n, r) {
var i = t[0], o = t[1], a = !1;
n === void 0 && (n = 0), r === void 0 && (r = e.length);
for (var c = r - n, f = 0, l = c - 1; f < c; l = f++) {
var h = e[f + n][0], d = e[f + n][1], b = e[l + n][0], k = e[l + n][1], E = d > o != k > o && i < (b - h) * (o - d) / (k - d) + h;
E && (a = !a);
}
return a;
}), ln;
}
var In;
function Yr() {
if (In) return Se.exports;
In = 1;
var s = Rr(), t = Fr();
return Se.exports = function(n, r, i, o) {
return r.length > 0 && Array.isArray(r[0]) ? t(n, r, i, o) : s(n, r, i, o);
}, Se.exports.nested = t, Se.exports.flat = s, Se.exports;
}
var Ee = { exports: {} }, Lr = Ee.exports, Bn;
function $r() {
return Bn || (Bn = 1, (function(s, t) {
(function(e, n) {
n(t);
})(Lr, function(e) {
const r = 33306690738754706e-32;
function i(E, F, L, g, x) {
let u, w, m, T, O = F[0], I = g[0], P = 0, C = 0;
I > O == I > -O ? (u = O, O = F[++P]) : (u = I, I = g[++C]);
let R = 0;
if (P < E && C < L) for (I > O == I > -O ? (m = u - ((w = O + u) - O), O = F[++P]) : (m = u - ((w = I + u) - I), I = g[++C]), u = w, m !== 0 && (x[R++] = m); P < E && C < L; ) I > O == I > -O ? (m = u - ((w = u + O) - (T = w - u)) + (O - T), O = F[++P]) : (m = u - ((w = u + I) - (T = w - u)) + (I - T), I = g[++C]), u = w, m !== 0 && (x[R++] = m);
for (; P < E; ) m = u - ((w = u + O) - (T = w - u)) + (O - T), O = F[++P], u = w, m !== 0 && (x[R++] = m);
for (; C < L; ) m = u - ((w = u + I) - (T = w - u)) + (I - T), I = g[++C], u = w, m !== 0 && (x[R++] = m);
return u === 0 && R !== 0 || (x[R++] = u), R;
}
function o(E) {
return new Float64Array(E);
}
const a = 33306690738754716e-32, c = 22204460492503146e-32, f = 11093356479670487e-47, l = o(4), h = o(8), d = o(12), b = o(16), k = o(4);
e.orient2d = function(E, F, L, g, x, u) {
const w = (F - u) * (L - x), m = (E - x) * (g - u), T = w - m;
if (w === 0 || m === 0 || w > 0 != m > 0) return T;
const O = Math.abs(w + m);
return Math.abs(T) >= a * O ? T : -(function(I, P, C, R, G, p, M) {
let _, X, B, Y, y, D, j, q, Q, H, rt, J, lt, ht, ut, dt, gt, mt;
const It = I - G, Nt = C - G, _t = P - p, Mt = R - p;
y = (ut = (q = It - (j = (D = 134217729 * It) - (D - It))) * (H = Mt - (Q = (D = 134217729 * Mt) - (D - Mt))) - ((ht = It * Mt) - j * Q - q * Q - j * H)) - (rt = ut - (gt = (q = _t - (j = (D = 134217729 * _t) - (D - _t))) * (H = Nt - (Q = (D = 134217729 * Nt) - (D - Nt))) - ((dt = _t * Nt) - j * Q - q * Q - j * H))), l[0] = ut - (rt + y) + (y - gt), y = (lt = ht - ((J = ht + rt) - (y = J - ht)) + (rt - y)) - (rt = lt - dt), l[1] = lt - (rt + y) + (y - dt), y = (mt = J + rt) - J, l[2] = J - (mt - y) + (rt - y), l[3] = mt;
let Ht = (function(Ne, ye) {
let _e = ye[0];
for (let ue = 1; ue < Ne; ue++) _e += ye[ue];
return _e;
})(4, l), le = c * M;
if (Ht >= le || -Ht >= le || (_ = I - (It + (y = I - It)) + (y - G), B = C - (Nt + (y = C - Nt)) + (y - G), X = P - (_t + (y = P - _t)) + (y - p), Y = R - (Mt + (y = R - Mt)) + (y - p), _ === 0 && X === 0 && B === 0 && Y === 0) || (le = f * M + r * Math.abs(Ht), (Ht += It * Y + Mt * _ - (_t * B + Nt * X)) >= le || -Ht >= le)) return Ht;
y = (ut = (q = _ - (j = (D = 134217729 * _) - (D - _))) * (H = Mt - (Q = (D = 134217729 * Mt) - (D - Mt))) - ((ht = _ * Mt) - j * Q - q * Q - j * H)) - (rt = ut - (gt = (q = X - (j = (D = 134217729 * X) - (D - X))) * (H = Nt - (Q = (D = 134217729 * Nt) - (D - Nt))) - ((dt = X * Nt) - j * Q - q * Q - j * H))), k[0] = ut - (rt + y) + (y - gt), y = (lt = ht - ((J = ht + rt) - (y = J - ht)) + (rt - y)) - (rt = lt - dt), k[1] = lt - (rt + y) + (y - dt), y = (mt = J + rt) - J, k[2] = J - (mt - y) + (rt - y), k[3] = mt;
const Qe = i(4, l, 4, k, h);
y = (ut = (q = It - (j = (D = 134217729 * It) - (D - It))) * (H = Y - (Q = (D = 134217729 * Y) - (D - Y))) - ((ht = It * Y) - j * Q - q * Q - j * H)) - (rt = ut - (gt = (q = _t - (j = (D = 134217729 * _t) - (D - _t))) * (H = B - (Q = (D = 134217729 * B) - (D - B))) - ((dt = _t * B) - j * Q - q * Q - j * H))), k[0] = ut - (rt + y) + (y - gt), y = (lt = ht - ((J = ht + rt) - (y = J - ht)) + (rt - y)) - (rt = lt - dt), k[1] = lt - (rt + y) + (y - dt), y = (mt = J + rt) - J, k[2] = J - (mt - y) + (rt - y), k[3] = mt;
const Ft = i(Qe, h, 4, k, d);
y = (ut = (q = _ - (j = (D = 134217729 * _) - (D - _))) * (H = Y - (Q = (D = 134217729 * Y) - (D - Y))) - ((ht = _ * Y) - j * Q - q * Q - j * H)) - (rt = ut - (gt = (q = X - (j = (D = 134217729 * X) - (D - X))) * (H = B - (Q = (D = 134217729 * B) - (D - B))) - ((dt = X * B) - j * Q - q * Q - j * H))), k[0] = ut - (rt + y) + (y - gt), y = (lt = ht - ((J = ht + rt) - (y = J - ht)) + (rt - y)) - (rt = lt - dt), k[1] = lt - (rt + y) + (y - dt), y = (mt = J + rt) - J, k[2] = J - (mt - y) + (rt - y), k[3] = mt;
const qt = i(Ft, d, 4, k, b);
return b[qt - 1];
})(E, F, L, g, x, u, O);
}, e.orient2dfast = function(E, F, L, g, x, u) {
return (F - u) * (L - x) - (E - x) * (g - u);
}, Object.defineProperty(e, "__esModule", { value: !0 });
});
})(Ee, Ee.exports)), Ee.exports;
}
var Tn;
function Vr() {
if (Tn) return $e.exports;
Tn = 1;
var s = Or(), t = Cr, e = Yr(), n = $r().orient2d;
t.default && (t = t.default), $e.exports = r, $e.exports.default = r;
function r(u, w, m) {
w = Math.max(0, w === void 0 ? 2 : w), m = m || 0;
var T = b(u), O = new s(16);
O.toBBox = function(j) {
return {
minX: j[0],
minY: j[1],
maxX: j[0],
maxY: j[1]
};
}, O.compareMinX = function(j, q) {
return j[0] - q[0];
}, O.compareMinY = function(j, q) {
return j[1] - q[1];
}, O.load(u);
for (var I = [], P = 0, C; P < T.length; P++) {
var R = T[P];
O.remove(R), C = k(R, C), I.push(C);
}
var G = new s(16);
for (P = 0; P < I.length; P++) G.insert(d(I[P]));
for (var p = w * w, M = m * m; I.length; ) {
var _ = I.shift(), X = _.p, B = _.next.p, Y = E(X, B);
if (!(Y < M)) {
var y = Y / p;
R = i(O, _.prev.p, X, B, _.next.next.p, y, G), R && Math.min(E(R, X), E(R, B)) <= y && (I.push(_), I.push(k(R, _)), O.remove(R), G.remove(_), G.insert(d(_)), G.insert(d(_.next)));
}
}
_ = C;
var D = [];
do
D.push(_.p), _ = _.next;
while (_ !== C);
return D.push(_.p), D;
}
function i(u, w, m, T, O, I, P) {
for (var C = new t([], o), R = u.data; R; ) {
for (var G = 0; G < R.children.length; G++) {
var p = R.children[G], M = R.leaf ? F(p, m, T) : a(m, T, p);
M > I || C.push({
node: p,
dist: M
});
}
for (; C.length && !C.peek().node.children; ) {
var _ = C.pop(), X = _.node, B = F(X, w, m), Y = F(X, T, O);
if (_.dist < B && _.dist < Y && f(m, X, P) && f(T, X, P)) return X;
}
R = C.pop(), R && (R = R.node);
}
return null;
}
function o(u, w) {
return u.dist - w.dist;
}
function a(u, w, m) {
if (c(u, m) || c(w, m)) return 0;
var T = L(u[0], u[1], w[0], w[1], m.minX, m.minY, m.maxX, m.minY);
if (T === 0) return 0;
var O = L(u[0], u[1], w[0], w[1], m.minX, m.minY