/* @preserve
 * Leaflet 1.9.4+v1.d15112c, a JS library for interactive maps. https://leafletjs.com
 * (c) 2010-2023 Vladimir Agafonkin, (c) 2010-2011 CloudMade
 */
!(function (t, e) {
	"object" == typeof exports && "undefined" != typeof module
		? e(exports)
		: "function" == typeof define && define.amd
			? define(["exports"], e)
			: e(((t = "undefined" != typeof globalThis ? globalThis : t || self).leaflet = {}));
})(this, function (t) {
	"use strict";
	function l(t) {
		for (var e, i, n = 1, o = arguments.length; n < o; n++) for (e in (i = arguments[n])) t[e] = i[e];
		return t;
	}
	var R =
		Object.create ||
		function (t) {
			return ((N.prototype = t), new N());
		};
	function N() {}
	function a(t, e) {
		var i,
			n = Array.prototype.slice;
		return t.bind
			? t.bind.apply(t, n.call(arguments, 1))
			: ((i = n.call(arguments, 2)),
				function () {
					return t.apply(e, i.length ? i.concat(n.call(arguments)) : arguments);
				});
	}
	var D = 0;
	function h(t) {
		return ("_leaflet_id" in t || (t._leaflet_id = ++D), t._leaflet_id);
	}
	function j(t, e, i) {
		var n,
			o,
			s = function () {
				((n = !1), o && (r.apply(i, o), (o = !1)));
			},
			r = function () {
				n ? (o = arguments) : (t.apply(i, arguments), setTimeout(s, e), (n = !0));
			};
		return r;
	}
	function H(t, e, i) {
		var n = e[1],
			e = e[0],
			o = n - e;
		return t === n && i ? t : ((((t - e) % o) + o) % o) + e;
	}
	function u() {
		return !1;
	}
	function i(t, e) {
		return !1 === e ? t : ((e = Math.pow(10, void 0 === e ? 6 : e)), Math.round(t * e) / e);
	}
	function W(t) {
		return t.trim ? t.trim() : t.replace(/^\s+|\s+$/g, "");
	}
	function F(t) {
		return W(t).split(/\s+/);
	}
	function c(t, e) {
		for (var i in (Object.prototype.hasOwnProperty.call(t, "options") ||
			(t.options = t.options ? R(t.options) : {}),
		e))
			t.options[i] = e[i];
		return t.options;
	}
	function U(t, e, i) {
		var n,
			o = [];
		for (n in t) o.push(encodeURIComponent(i ? n.toUpperCase() : n) + "=" + encodeURIComponent(t[n]));
		return (e && -1 !== e.indexOf("?") ? "&" : "?") + o.join("&");
	}
	var V = /\{ *([\w_ -]+) *\}/g;
	function q(t, i) {
		return t.replace(V, function (t, e) {
			e = i[e];
			if (void 0 === e) throw new Error("No value provided for variable " + t);
			return (e = "function" == typeof e ? e(i) : e);
		});
	}
	var d =
		Array.isArray ||
		function (t) {
			return "[object Array]" === Object.prototype.toString.call(t);
		};
	function G(t, e) {
		for (var i = 0; i < t.length; i++) if (t[i] === e) return i;
		return -1;
	}
	var K = "data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=";
	function Y(t) {
		return window["webkit" + t] || window["moz" + t] || window["ms" + t];
	}
	var X = 0;
	function J(t) {
		var e = +new Date(),
			i = Math.max(0, 16 - (e - X));
		return ((X = e + i), window.setTimeout(t, i));
	}
	var $ = window.requestAnimationFrame || Y("RequestAnimationFrame") || J,
		Q =
			window.cancelAnimationFrame ||
			Y("CancelAnimationFrame") ||
			Y("CancelRequestAnimationFrame") ||
			function (t) {
				window.clearTimeout(t);
			};
	function x(t, e, i) {
		if (!i || $ !== J) return $.call(window, a(t, e));
		t.call(e);
	}
	function r(t) {
		t && Q.call(window, t);
	}
	var tt = {
		__proto__: null,
		extend: l,
		create: R,
		bind: a,
		get lastId() {
			return D;
		},
		stamp: h,
		throttle: j,
		wrapNum: H,
		falseFn: u,
		formatNum: i,
		trim: W,
		splitWords: F,
		setOptions: c,
		getParamString: U,
		template: q,
		isArray: d,
		indexOf: G,
		emptyImageUrl: K,
		requestFn: $,
		cancelFn: Q,
		requestAnimFrame: x,
		cancelAnimFrame: r,
	};
	function et() {}
	((et.extend = function (t) {
		function e() {
			(c(this), this.initialize && this.initialize.apply(this, arguments), this.callInitHooks());
		}
		var i,
			n = (e.__super__ = this.prototype),
			o = R(n);
		for (i in (((o.constructor = e).prototype = o), this))
			Object.prototype.hasOwnProperty.call(this, i) && "prototype" !== i && "__super__" !== i && (e[i] = this[i]);
		if ((t.statics && l(e, t.statics), t.includes)) {
			var s = t.includes;
			if ("undefined" != typeof L && L && L.Mixin) {
				s = d(s) ? s : [s];
				for (var r = 0; r < s.length; r++)
					s[r] === L.Mixin.Events &&
						console.warn(
							"Deprecated include of L.Mixin.Events: this property will be removed in future releases, please inherit from L.Evented instead.",
							new Error().stack,
						);
			}
			l.apply(null, [o].concat(t.includes));
		}
		return (
			l(o, t),
			delete o.statics,
			delete o.includes,
			o.options && ((o.options = n.options ? R(n.options) : {}), l(o.options, t.options)),
			(o._initHooks = []),
			(o.callInitHooks = function () {
				if (!this._initHooksCalled) {
					(n.callInitHooks && n.callInitHooks.call(this), (this._initHooksCalled = !0));
					for (var t = 0, e = o._initHooks.length; t < e; t++) o._initHooks[t].call(this);
				}
			}),
			e
		);
	}),
		(et.include = function (t) {
			var e = this.prototype.options;
			return (
				l(this.prototype, t),
				t.options && ((this.prototype.options = e), this.mergeOptions(t.options)),
				this
			);
		}),
		(et.mergeOptions = function (t) {
			return (l(this.prototype.options, t), this);
		}),
		(et.addInitHook = function (t) {
			var e = Array.prototype.slice.call(arguments, 1),
				i =
					"function" == typeof t
						? t
						: function () {
								this[t].apply(this, e);
							};
			return (
				(this.prototype._initHooks = this.prototype._initHooks || []),
				this.prototype._initHooks.push(i),
				this
			);
		}));
	var e = {
			on: function (t, e, i) {
				if ("object" == typeof t) for (var n in t) this._on(n, t[n], e);
				else for (var o = 0, s = (t = F(t)).length; o < s; o++) this._on(t[o], e, i);
				return this;
			},
			off: function (t, e, i) {
				if (arguments.length)
					if ("object" == typeof t) for (var n in t) this._off(n, t[n], e);
					else {
						t = F(t);
						for (var o = 1 === arguments.length, s = 0, r = t.length; s < r; s++)
							o ? this._off(t[s]) : this._off(t[s], e, i);
					}
				else delete this._events;
				return this;
			},
			_on: function (t, e, i, n) {
				"function" != typeof e
					? console.warn("wrong listener type: " + typeof e)
					: !1 === this._listens(t, e, i) &&
						((e = { fn: e, ctx: (i = i === this ? void 0 : i) }),
						n && (e.once = !0),
						(this._events = this._events || {}),
						(this._events[t] = this._events[t] || []),
						this._events[t].push(e));
			},
			_off: function (t, e, i) {
				var n, o, s;
				if (this._events && (n = this._events[t]))
					if (1 === arguments.length) {
						if (this._firingCount) for (o = 0, s = n.length; o < s; o++) n[o].fn = u;
						delete this._events[t];
					} else
						"function" != typeof e
							? console.warn("wrong listener type: " + typeof e)
							: !1 !== (e = this._listens(t, e, i)) &&
								((i = n[e]),
								this._firingCount && ((i.fn = u), (this._events[t] = n = n.slice())),
								n.splice(e, 1));
			},
			fire: function (t, e, i) {
				if (this.listens(t, i)) {
					var n = l({}, e, { type: t, target: this, sourceTarget: (e && e.sourceTarget) || this });
					if (this._events) {
						var o = this._events[t];
						if (o) {
							this._firingCount = this._firingCount + 1 || 1;
							for (var s = 0, r = o.length; s < r; s++) {
								var a = o[s],
									h = a.fn;
								(a.once && this.off(t, h, a.ctx), h.call(a.ctx || this, n));
							}
							this._firingCount--;
						}
					}
					i && this._propagateEvent(n);
				}
				return this;
			},
			listens: function (t, e, i, n) {
				"string" != typeof t && console.warn('"string" type argument expected');
				var o = e,
					s = ("function" != typeof e && ((n = !!e), (i = o = void 0)), this._events && this._events[t]);
				if (s && s.length && !1 !== this._listens(t, o, i)) return !0;
				if (n) for (var r in this._eventParents) if (this._eventParents[r].listens(t, e, i, n)) return !0;
				return !1;
			},
			_listens: function (t, e, i) {
				if (this._events) {
					var n = this._events[t] || [];
					if (!e) return !!n.length;
					i === this && (i = void 0);
					for (var o = 0, s = n.length; o < s; o++) if (n[o].fn === e && n[o].ctx === i) return o;
				}
				return !1;
			},
			once: function (t, e, i) {
				if ("object" == typeof t) for (var n in t) this._on(n, t[n], e, !0);
				else for (var o = 0, s = (t = F(t)).length; o < s; o++) this._on(t[o], e, i, !0);
				return this;
			},
			addEventParent: function (t) {
				return ((this._eventParents = this._eventParents || {}), (this._eventParents[h(t)] = t), this);
			},
			removeEventParent: function (t) {
				return (this._eventParents && delete this._eventParents[h(t)], this);
			},
			_propagateEvent: function (t) {
				for (var e in this._eventParents)
					this._eventParents[e].fire(t.type, l({ layer: t.target, propagatedFrom: t.target }, t), !0);
			},
		},
		it =
			((e.addEventListener = e.on),
			(e.removeEventListener = e.clearAllEventListeners = e.off),
			(e.addOneTimeEventListener = e.once),
			(e.fireEvent = e.fire),
			(e.hasEventListeners = e.listens),
			et.extend(e));
	function p(t, e, i) {
		((this.x = i ? Math.round(t) : t), (this.y = i ? Math.round(e) : e));
	}
	var nt =
		Math.trunc ||
		function (t) {
			return 0 < t ? Math.floor(t) : Math.ceil(t);
		};
	function m(t, e, i) {
		return t instanceof p
			? t
			: d(t)
				? new p(t[0], t[1])
				: null == t
					? t
					: "object" == typeof t && "x" in t && "y" in t
						? new p(t.x, t.y)
						: new p(t, e, i);
	}
	function f(t, e) {
		if (t) for (var i = e ? [t, e] : t, n = 0, o = i.length; n < o; n++) this.extend(i[n]);
	}
	function _(t, e) {
		return !t || t instanceof f ? t : new f(t, e);
	}
	function s(t, e) {
		if (t) for (var i = e ? [t, e] : t, n = 0, o = i.length; n < o; n++) this.extend(i[n]);
	}
	function g(t, e) {
		return t instanceof s ? t : new s(t, e);
	}
	function v(t, e, i) {
		if (isNaN(t) || isNaN(e)) throw new Error("Invalid LatLng object: (" + t + ", " + e + ")");
		((this.lat = +t), (this.lng = +e), void 0 !== i && (this.alt = +i));
	}
	function w(t, e, i) {
		return t instanceof v
			? t
			: d(t) && "object" != typeof t[0]
				? 3 === t.length
					? new v(t[0], t[1], t[2])
					: 2 === t.length
						? new v(t[0], t[1])
						: null
				: null == t
					? t
					: "object" == typeof t && "lat" in t
						? new v(t.lat, "lng" in t ? t.lng : t.lon, t.alt)
						: void 0 === e
							? null
							: new v(t, e, i);
	}
	((p.prototype = {
		clone: function () {
			return new p(this.x, this.y);
		},
		add: function (t) {
			return this.clone()._add(m(t));
		},
		_add: function (t) {
			return ((this.x += t.x), (this.y += t.y), this);
		},
		subtract: function (t) {
			return this.clone()._subtract(m(t));
		},
		_subtract: function (t) {
			return ((this.x -= t.x), (this.y -= t.y), this);
		},
		divideBy: function (t) {
			return this.clone()._divideBy(t);
		},
		_divideBy: function (t) {
			return ((this.x /= t), (this.y /= t), this);
		},
		multiplyBy: function (t) {
			return this.clone()._multiplyBy(t);
		},
		_multiplyBy: function (t) {
			return ((this.x *= t), (this.y *= t), this);
		},
		scaleBy: function (t) {
			return new p(this.x * t.x, this.y * t.y);
		},
		unscaleBy: function (t) {
			return new p(this.x / t.x, this.y / t.y);
		},
		round: function () {
			return this.clone()._round();
		},
		_round: function () {
			return ((this.x = Math.round(this.x)), (this.y = Math.round(this.y)), this);
		},
		floor: function () {
			return this.clone()._floor();
		},
		_floor: function () {
			return ((this.x = Math.floor(this.x)), (this.y = Math.floor(this.y)), this);
		},
		ceil: function () {
			return this.clone()._ceil();
		},
		_ceil: function () {
			return ((this.x = Math.ceil(this.x)), (this.y = Math.ceil(this.y)), this);
		},
		trunc: function () {
			return this.clone()._trunc();
		},
		_trunc: function () {
			return ((this.x = nt(this.x)), (this.y = nt(this.y)), this);
		},
		distanceTo: function (t) {
			var e = (t = m(t)).x - this.x,
				t = t.y - this.y;
			return Math.sqrt(e * e + t * t);
		},
		equals: function (t) {
			return (t = m(t)).x === this.x && t.y === this.y;
		},
		contains: function (t) {
			return ((t = m(t)), Math.abs(t.x) <= Math.abs(this.x) && Math.abs(t.y) <= Math.abs(this.y));
		},
		toString: function () {
			return "Point(" + i(this.x) + ", " + i(this.y) + ")";
		},
	}),
		(f.prototype = {
			extend: function (t) {
				var e, i;
				if (t) {
					if (t instanceof p || "number" == typeof t[0] || "x" in t) e = i = m(t);
					else if (((e = (t = _(t)).min), (i = t.max), !e || !i)) return this;
					this.min || this.max
						? ((this.min.x = Math.min(e.x, this.min.x)),
							(this.max.x = Math.max(i.x, this.max.x)),
							(this.min.y = Math.min(e.y, this.min.y)),
							(this.max.y = Math.max(i.y, this.max.y)))
						: ((this.min = e.clone()), (this.max = i.clone()));
				}
				return this;
			},
			getCenter: function (t) {
				return m((this.min.x + this.max.x) / 2, (this.min.y + this.max.y) / 2, t);
			},
			getBottomLeft: function () {
				return m(this.min.x, this.max.y);
			},
			getTopRight: function () {
				return m(this.max.x, this.min.y);
			},
			getTopLeft: function () {
				return this.min;
			},
			getBottomRight: function () {
				return this.max;
			},
			getSize: function () {
				return this.max.subtract(this.min);
			},
			contains: function (t) {
				var e, i;
				return (
					(t = ("number" == typeof t[0] || t instanceof p ? m : _)(t)) instanceof f
						? ((e = t.min), (i = t.max))
						: (e = i = t),
					e.x >= this.min.x && i.x <= this.max.x && e.y >= this.min.y && i.y <= this.max.y
				);
			},
			intersects: function (t) {
				t = _(t);
				var e = this.min,
					i = this.max,
					n = t.min,
					t = t.max,
					o = t.x >= e.x && n.x <= i.x,
					t = t.y >= e.y && n.y <= i.y;
				return o && t;
			},
			overlaps: function (t) {
				t = _(t);
				var e = this.min,
					i = this.max,
					n = t.min,
					t = t.max,
					o = t.x > e.x && n.x < i.x,
					t = t.y > e.y && n.y < i.y;
				return o && t;
			},
			isValid: function () {
				return !(!this.min || !this.max);
			},
			pad: function (t) {
				var e = this.min,
					i = this.max,
					n = Math.abs(e.x - i.x) * t,
					t = Math.abs(e.y - i.y) * t;
				return _(m(e.x - n, e.y - t), m(i.x + n, i.y + t));
			},
			equals: function (t) {
				return !!t && ((t = _(t)), this.min.equals(t.getTopLeft()) && this.max.equals(t.getBottomRight()));
			},
		}),
		(s.prototype = {
			extend: function (t) {
				var e,
					i,
					n = this._southWest,
					o = this._northEast;
				if (t instanceof v) i = e = t;
				else {
					if (!(t instanceof s)) return t ? this.extend(w(t) || g(t)) : this;
					if (((e = t._southWest), (i = t._northEast), !e || !i)) return this;
				}
				return (
					n || o
						? ((n.lat = Math.min(e.lat, n.lat)),
							(n.lng = Math.min(e.lng, n.lng)),
							(o.lat = Math.max(i.lat, o.lat)),
							(o.lng = Math.max(i.lng, o.lng)))
						: ((this._southWest = new v(e.lat, e.lng)), (this._northEast = new v(i.lat, i.lng))),
					this
				);
			},
			pad: function (t) {
				var e = this._southWest,
					i = this._northEast,
					n = Math.abs(e.lat - i.lat) * t,
					t = Math.abs(e.lng - i.lng) * t;
				return new s(new v(e.lat - n, e.lng - t), new v(i.lat + n, i.lng + t));
			},
			getCenter: function () {
				return new v(
					(this._southWest.lat + this._northEast.lat) / 2,
					(this._southWest.lng + this._northEast.lng) / 2,
				);
			},
			getSouthWest: function () {
				return this._southWest;
			},
			getNorthEast: function () {
				return this._northEast;
			},
			getNorthWest: function () {
				return new v(this.getNorth(), this.getWest());
			},
			getSouthEast: function () {
				return new v(this.getSouth(), this.getEast());
			},
			getWest: function () {
				return this._southWest.lng;
			},
			getSouth: function () {
				return this._southWest.lat;
			},
			getEast: function () {
				return this._northEast.lng;
			},
			getNorth: function () {
				return this._northEast.lat;
			},
			contains: function (t) {
				t = ("number" == typeof t[0] || t instanceof v || "lat" in t ? w : g)(t);
				var e,
					i,
					n = this._southWest,
					o = this._northEast;
				return (
					t instanceof s ? ((e = t.getSouthWest()), (i = t.getNorthEast())) : (e = i = t),
					e.lat >= n.lat && i.lat <= o.lat && e.lng >= n.lng && i.lng <= o.lng
				);
			},
			intersects: function (t) {
				t = g(t);
				var e = this._southWest,
					i = this._northEast,
					n = t.getSouthWest(),
					t = t.getNorthEast(),
					o = t.lat >= e.lat && n.lat <= i.lat,
					t = t.lng >= e.lng && n.lng <= i.lng;
				return o && t;
			},
			overlaps: function (t) {
				t = g(t);
				var e = this._southWest,
					i = this._northEast,
					n = t.getSouthWest(),
					t = t.getNorthEast(),
					o = t.lat > e.lat && n.lat < i.lat,
					t = t.lng > e.lng && n.lng < i.lng;
				return o && t;
			},
			toBBoxString: function () {
				return [this.getWest(), this.getSouth(), this.getEast(), this.getNorth()].join(",");
			},
			equals: function (t, e) {
				return (
					!!t &&
					((t = g(t)),
					this._southWest.equals(t.getSouthWest(), e) && this._northEast.equals(t.getNorthEast(), e))
				);
			},
			isValid: function () {
				return !(!this._southWest || !this._northEast);
			},
		}));
	var ot = {
			latLngToPoint: function (t, e) {
				((t = this.projection.project(t)), (e = this.scale(e)));
				return this.transformation._transform(t, e);
			},
			pointToLatLng: function (t, e) {
				((e = this.scale(e)), (t = this.transformation.untransform(t, e)));
				return this.projection.unproject(t);
			},
			project: function (t) {
				return this.projection.project(t);
			},
			unproject: function (t) {
				return this.projection.unproject(t);
			},
			scale: function (t) {
				return 256 * Math.pow(2, t);
			},
			zoom: function (t) {
				return Math.log(t / 256) / Math.LN2;
			},
			getProjectedBounds: function (t) {
				var e;
				return this.infinite
					? null
					: ((e = this.projection.bounds),
						(t = this.scale(t)),
						new f(this.transformation.transform(e.min, t), this.transformation.transform(e.max, t)));
			},
			infinite: !(v.prototype = {
				equals: function (t, e) {
					return (
						!!t &&
						((t = w(t)),
						Math.max(Math.abs(this.lat - t.lat), Math.abs(this.lng - t.lng)) <= (void 0 === e ? 1e-9 : e))
					);
				},
				toString: function (t) {
					return "LatLng(" + i(this.lat, t) + ", " + i(this.lng, t) + ")";
				},
				distanceTo: function (t) {
					return st.distance(this, w(t));
				},
				wrap: function () {
					return st.wrapLatLng(this);
				},
				toBounds: function (t) {
					var t = (180 * t) / 40075017,
						e = t / Math.cos((Math.PI / 180) * this.lat);
					return g([this.lat - t, this.lng - e], [this.lat + t, this.lng + e]);
				},
				clone: function () {
					return new v(this.lat, this.lng, this.alt);
				},
			}),
			wrapLatLng: function (t) {
				var e = this.wrapLng ? H(t.lng, this.wrapLng, !0) : t.lng;
				return new v(this.wrapLat ? H(t.lat, this.wrapLat, !0) : t.lat, e, t.alt);
			},
			wrapLatLngBounds: function (t) {
				var e = t.getCenter(),
					i = this.wrapLatLng(e),
					n = e.lat - i.lat,
					e = e.lng - i.lng;
				return 0 == n && 0 == e
					? t
					: ((i = t.getSouthWest()),
						(t = t.getNorthEast()),
						new s(new v(i.lat - n, i.lng - e), new v(t.lat - n, t.lng - e)));
			},
		},
		st = l({}, ot, {
			wrapLng: [-180, 180],
			R: 6371e3,
			distance: function (t, e) {
				var i = Math.PI / 180,
					n = t.lat * i,
					o = e.lat * i,
					s = Math.sin(((e.lat - t.lat) * i) / 2),
					e = Math.sin(((e.lng - t.lng) * i) / 2),
					t = s * s + Math.cos(n) * Math.cos(o) * e * e,
					i = 2 * Math.atan2(Math.sqrt(t), Math.sqrt(1 - t));
				return this.R * i;
			},
		}),
		rt = 6378137,
		rt = {
			R: rt,
			MAX_LATITUDE: 85.0511287798,
			project: function (t) {
				var e = Math.PI / 180,
					i = this.MAX_LATITUDE,
					i = Math.max(Math.min(i, t.lat), -i),
					i = Math.sin(i * e);
				return new p(this.R * t.lng * e, (this.R * Math.log((1 + i) / (1 - i))) / 2);
			},
			unproject: function (t) {
				var e = 180 / Math.PI;
				return new v((2 * Math.atan(Math.exp(t.y / this.R)) - Math.PI / 2) * e, (t.x * e) / this.R);
			},
			bounds: new f([-(rt = rt * Math.PI), -rt], [rt, rt]),
		};
	function at(t, e, i, n) {
		d(t)
			? ((this._a = t[0]), (this._b = t[1]), (this._c = t[2]), (this._d = t[3]))
			: ((this._a = t), (this._b = e), (this._c = i), (this._d = n));
	}
	function ht(t, e, i, n) {
		return new at(t, e, i, n);
	}
	at.prototype = {
		transform: function (t, e) {
			return this._transform(t.clone(), e);
		},
		_transform: function (t, e) {
			return ((t.x = (e = e || 1) * (this._a * t.x + this._b)), (t.y = e * (this._c * t.y + this._d)), t);
		},
		untransform: function (t, e) {
			return new p((t.x / (e = e || 1) - this._b) / this._a, (t.y / e - this._d) / this._c);
		},
	};
	var lt = l({}, st, {
			code: "EPSG:3857",
			projection: rt,
			transformation: ht((lt = 0.5 / (Math.PI * rt.R)), 0.5, -lt, 0.5),
		}),
		ut = l({}, lt, { code: "EPSG:900913" });
	function ct(t) {
		return document.createElementNS("http://www.w3.org/2000/svg", t);
	}
	function dt(t, e) {
		for (var i, n, o, s, r = "", a = 0, h = t.length; a < h; a++) {
			for (i = 0, n = (o = t[a]).length; i < n; i++) r += (i ? "L" : "M") + (s = o[i]).x + " " + s.y;
			r += e ? (b.svg ? "z" : "x") : "";
		}
		return r || "M0 0";
	}
	var _t = document.documentElement.style,
		pt = "ActiveXObject" in window,
		mt = pt && !document.addEventListener,
		n = "msLaunchUri" in navigator && !("documentMode" in document),
		ft = y("webkit"),
		gt = y("android"),
		vt = y("android 2") || y("android 3"),
		yt = parseInt(/WebKit\/([0-9]+)|$/.exec(navigator.userAgent)[1], 10),
		yt = gt && y("Google") && yt < 537 && !("AudioNode" in window),
		xt = !!window.opera,
		wt = !n && y("chrome"),
		bt = y("gecko") && !ft && !xt && !pt,
		Pt = !wt && y("safari"),
		Lt = y("phantom"),
		o = "OTransition" in _t,
		Tt = 0 === navigator.platform.indexOf("Win"),
		Mt = pt && "transition" in _t,
		zt = "WebKitCSSMatrix" in window && "m11" in new window.WebKitCSSMatrix() && !vt,
		_t = "MozPerspective" in _t,
		Ct = !window.L_DISABLE_3D && (Mt || zt || _t) && !o && !Lt,
		Zt = "undefined" != typeof orientation || y("mobile"),
		St = Zt && ft,
		Et = Zt && zt,
		kt = !window.PointerEvent && window.MSPointerEvent,
		Ot = !(!window.PointerEvent && !kt),
		At = "ontouchstart" in window || !!window.TouchEvent,
		Bt = !window.L_NO_TOUCH && (At || Ot),
		It = Zt && xt,
		Rt = Zt && bt,
		Nt = 1 < (window.devicePixelRatio || window.screen.deviceXDPI / window.screen.logicalXDPI),
		Dt = (function () {
			var t = !1;
			try {
				var e = Object.defineProperty({}, "passive", {
					get: function () {
						t = !0;
					},
				});
				(window.addEventListener("testPassiveEventSupport", u, e),
					window.removeEventListener("testPassiveEventSupport", u, e));
			} catch (t) {}
			return t;
		})(),
		jt = !!document.createElement("canvas").getContext,
		Ht = !(!document.createElementNS || !ct("svg").createSVGRect),
		Wt =
			!!Ht &&
			(((Wt = document.createElement("div")).innerHTML = "<svg/>"),
			"http://www.w3.org/2000/svg" === (Wt.firstChild && Wt.firstChild.namespaceURI));
	function y(t) {
		return 0 <= navigator.userAgent.toLowerCase().indexOf(t);
	}
	var b = {
			ie: pt,
			ielt9: mt,
			edge: n,
			webkit: ft,
			android: gt,
			android23: vt,
			androidStock: yt,
			opera: xt,
			chrome: wt,
			gecko: bt,
			safari: Pt,
			phantom: Lt,
			opera12: o,
			win: Tt,
			ie3d: Mt,
			webkit3d: zt,
			gecko3d: _t,
			any3d: Ct,
			mobile: Zt,
			mobileWebkit: St,
			mobileWebkit3d: Et,
			msPointer: kt,
			pointer: Ot,
			touch: Bt,
			touchNative: At,
			mobileOpera: It,
			mobileGecko: Rt,
			retina: Nt,
			passiveEvents: Dt,
			canvas: jt,
			svg: Ht,
			vml:
				!Ht &&
				(function () {
					try {
						var t = document.createElement("div"),
							e = ((t.innerHTML = '<v:shape adj="1"/>'), t.firstChild);
						return ((e.style.behavior = "url(#default#VML)"), e && "object" == typeof e.adj);
					} catch (t) {
						return !1;
					}
				})(),
			inlineSvg: Wt,
			mac: 0 === navigator.platform.indexOf("Mac"),
			linux: 0 === navigator.platform.indexOf("Linux"),
		},
		Ft = b.msPointer ? "MSPointerDown" : "pointerdown",
		Ut = b.msPointer ? "MSPointerMove" : "pointermove",
		Vt = b.msPointer ? "MSPointerUp" : "pointerup",
		qt = b.msPointer ? "MSPointerCancel" : "pointercancel",
		Gt = { touchstart: Ft, touchmove: Ut, touchend: Vt, touchcancel: qt },
		Kt = {
			touchstart: function (t, e) {
				e.MSPOINTER_TYPE_TOUCH && e.pointerType === e.MSPOINTER_TYPE_TOUCH && O(e);
				ee(t, e);
			},
			touchmove: ee,
			touchend: ee,
			touchcancel: ee,
		},
		Yt = {},
		Xt = !1;
	function Jt(t, e, i) {
		return (
			"touchstart" !== e ||
				Xt ||
				(document.addEventListener(Ft, $t, !0),
				document.addEventListener(Ut, Qt, !0),
				document.addEventListener(Vt, te, !0),
				document.addEventListener(qt, te, !0),
				(Xt = !0)),
			Kt[e]
				? ((i = Kt[e].bind(this, i)), t.addEventListener(Gt[e], i, !1), i)
				: (console.warn("wrong event specified:", e), u)
		);
	}
	function $t(t) {
		Yt[t.pointerId] = t;
	}
	function Qt(t) {
		Yt[t.pointerId] && (Yt[t.pointerId] = t);
	}
	function te(t) {
		delete Yt[t.pointerId];
	}
	function ee(t, e) {
		if (e.pointerType !== (e.MSPOINTER_TYPE_MOUSE || "mouse")) {
			for (var i in ((e.touches = []), Yt)) e.touches.push(Yt[i]);
			((e.changedTouches = [e]), t(e));
		}
	}
	var ie = 200;
	function ne(t, i) {
		t.addEventListener("dblclick", i);
		var n,
			o = 0;
		function e(t) {
			var e;
			1 !== t.detail
				? (n = t.detail)
				: "mouse" === t.pointerType ||
					(t.sourceCapabilities && !t.sourceCapabilities.firesTouchEvents) ||
					((e = Ne(t)).some(function (t) {
						return t instanceof HTMLLabelElement && t.attributes.for;
					}) &&
						!e.some(function (t) {
							return t instanceof HTMLInputElement || t instanceof HTMLSelectElement;
						})) ||
					((e = Date.now()) - o <= ie
						? 2 === ++n &&
							i(
								(function (t) {
									var e,
										i,
										n = {};
									for (i in t) ((e = t[i]), (n[i] = e && e.bind ? e.bind(t) : e));
									return (
										((t = n).type = "dblclick"),
										(n.detail = 2),
										(n.isTrusted = !1),
										(n._simulated = !0),
										n
									);
								})(t),
							)
						: (n = 1),
					(o = e));
		}
		return (t.addEventListener("click", e), { dblclick: i, simDblclick: e });
	}
	var oe,
		se,
		re,
		ae,
		he,
		le,
		ue = we(["transform", "webkitTransform", "OTransform", "MozTransform", "msTransform"]),
		ce = we(["webkitTransition", "transition", "OTransition", "MozTransition", "msTransition"]),
		de = "webkitTransition" === ce || "OTransition" === ce ? ce + "End" : "transitionend";
	function _e(t) {
		return "string" == typeof t ? document.getElementById(t) : t;
	}
	function pe(t, e) {
		var i = t.style[e] || (t.currentStyle && t.currentStyle[e]);
		return "auto" ===
			(i =
				(i && "auto" !== i) || !document.defaultView
					? i
					: (t = document.defaultView.getComputedStyle(t, null))
						? t[e]
						: null)
			? null
			: i;
	}
	function P(t, e, i) {
		t = document.createElement(t);
		return ((t.className = e || ""), i && i.appendChild(t), t);
	}
	function T(t) {
		var e = t.parentNode;
		e && e.removeChild(t);
	}
	function me(t) {
		for (; t.firstChild; ) t.removeChild(t.firstChild);
	}
	function fe(t) {
		var e = t.parentNode;
		e && e.lastChild !== t && e.appendChild(t);
	}
	function ge(t) {
		var e = t.parentNode;
		e && e.firstChild !== t && e.insertBefore(t, e.firstChild);
	}
	function ve(t, e) {
		return void 0 !== t.classList
			? t.classList.contains(e)
			: 0 < (t = xe(t)).length && new RegExp("(^|\\s)" + e + "(\\s|$)").test(t);
	}
	function M(t, e) {
		var i;
		if (void 0 !== t.classList) for (var n = F(e), o = 0, s = n.length; o < s; o++) t.classList.add(n[o]);
		else ve(t, e) || ye(t, ((i = xe(t)) ? i + " " : "") + e);
	}
	function z(t, e) {
		void 0 !== t.classList ? t.classList.remove(e) : ye(t, W((" " + xe(t) + " ").replace(" " + e + " ", " ")));
	}
	function ye(t, e) {
		void 0 === t.className.baseVal ? (t.className = e) : (t.className.baseVal = e);
	}
	function xe(t) {
		return void 0 === (t = t.correspondingElement ? t.correspondingElement : t).className.baseVal
			? t.className
			: t.className.baseVal;
	}
	function C(t, e) {
		if ("opacity" in t.style) t.style.opacity = e;
		else if ("filter" in t.style) {
			var i = !1,
				n = "DXImageTransform.Microsoft.Alpha";
			try {
				i = t.filters.item(n);
			} catch (t) {
				if (1 === e) return;
			}
			((e = Math.round(100 * e)),
				i
					? ((i.Enabled = 100 !== e), (i.Opacity = e))
					: (t.style.filter += " progid:" + n + "(opacity=" + e + ")"));
		}
	}
	function we(t) {
		for (var e = document.documentElement.style, i = 0; i < t.length; i++) if (t[i] in e) return t[i];
		return !1;
	}
	function be(t, e, i) {
		e = e || new p(0, 0);
		t.style[ue] =
			(b.ie3d ? "translate(" + e.x + "px," + e.y + "px)" : "translate3d(" + e.x + "px," + e.y + "px,0)") +
			(i ? " scale(" + i + ")" : "");
	}
	function Z(t, e) {
		((t._leaflet_pos = e), b.any3d ? be(t, e) : ((t.style.left = e.x + "px"), (t.style.top = e.y + "px")));
	}
	function Pe(t) {
		return t._leaflet_pos || new p(0, 0);
	}
	function Le() {
		S(window, "dragstart", O);
	}
	function Te() {
		k(window, "dragstart", O);
	}
	function Me(t) {
		for (; -1 === t.tabIndex; ) t = t.parentNode;
		t.style &&
			(ze(), (le = (he = t).style.outlineStyle), (t.style.outlineStyle = "none"), S(window, "keydown", ze));
	}
	function ze() {
		he && ((he.style.outlineStyle = le), (le = he = void 0), k(window, "keydown", ze));
	}
	function Ce(t) {
		for (; !(((t = t.parentNode).offsetWidth && t.offsetHeight) || t === document.body); );
		return t;
	}
	function Ze(t) {
		var e = t.getBoundingClientRect();
		return { x: e.width / t.offsetWidth || 1, y: e.height / t.offsetHeight || 1, boundingClientRect: e };
	}
	ae =
		"onselectstart" in document
			? ((re = function () {
					S(window, "selectstart", O);
				}),
				function () {
					k(window, "selectstart", O);
				})
			: ((se = we(["userSelect", "WebkitUserSelect", "OUserSelect", "MozUserSelect", "msUserSelect"])),
				(re = function () {
					var t;
					se && ((t = document.documentElement.style), (oe = t[se]), (t[se] = "none"));
				}),
				function () {
					se && ((document.documentElement.style[se] = oe), (oe = void 0));
				});
	pt = {
		__proto__: null,
		TRANSFORM: ue,
		TRANSITION: ce,
		TRANSITION_END: de,
		get: _e,
		getStyle: pe,
		create: P,
		remove: T,
		empty: me,
		toFront: fe,
		toBack: ge,
		hasClass: ve,
		addClass: M,
		removeClass: z,
		setClass: ye,
		getClass: xe,
		setOpacity: C,
		testProp: we,
		setTransform: be,
		setPosition: Z,
		getPosition: Pe,
		get disableTextSelection() {
			return re;
		},
		get enableTextSelection() {
			return ae;
		},
		disableImageDrag: Le,
		enableImageDrag: Te,
		preventOutline: Me,
		restoreOutline: ze,
		getSizedParentNode: Ce,
		getScale: Ze,
	};
	function S(t, e, i, n) {
		if (e && "object" == typeof e) for (var o in e) ke(t, o, e[o], i);
		else for (var s = 0, r = (e = F(e)).length; s < r; s++) ke(t, e[s], i, n);
		return this;
	}
	var E = "_leaflet_events";
	function k(t, e, i, n) {
		if (1 === arguments.length) (Se(t), delete t[E]);
		else if (e && "object" == typeof e) for (var o in e) Oe(t, o, e[o], i);
		else if (((e = F(e)), 2 === arguments.length))
			Se(t, function (t) {
				return -1 !== G(e, t);
			});
		else for (var s = 0, r = e.length; s < r; s++) Oe(t, e[s], i, n);
		return this;
	}
	function Se(t, e) {
		for (var i in t[E]) {
			var n = i.split(/\d/)[0];
			(e && !e(n)) || Oe(t, n, null, null, i);
		}
	}
	var Ee = { mouseenter: "mouseover", mouseleave: "mouseout", wheel: !("onwheel" in window) && "mousewheel" };
	function ke(e, t, i, n) {
		var o,
			s,
			r = t + h(i) + (n ? "_" + h(n) : "");
		(e[E] && e[E][r]) ||
			((s = o =
				function (t) {
					return i.call(n || e, t || window.event);
				}),
			!b.touchNative && b.pointer && 0 === t.indexOf("touch")
				? (o = Jt(e, t, o))
				: b.touch && "dblclick" === t
					? (o = ne(e, o))
					: "addEventListener" in e
						? "touchstart" === t || "touchmove" === t || "wheel" === t || "mousewheel" === t
							? e.addEventListener(Ee[t] || t, o, !!b.passiveEvents && { passive: !1 })
							: "mouseenter" === t || "mouseleave" === t
								? e.addEventListener(
										Ee[t],
										(o = function (t) {
											((t = t || window.event), We(e, t) && s(t));
										}),
										!1,
									)
								: e.addEventListener(t, s, !1)
						: e.attachEvent("on" + t, o),
			(e[E] = e[E] || {}),
			(e[E][r] = o));
	}
	function Oe(t, e, i, n, o) {
		o = o || e + h(i) + (n ? "_" + h(n) : "");
		var s,
			r,
			i = t[E] && t[E][o];
		i &&
			(!b.touchNative && b.pointer && 0 === e.indexOf("touch")
				? ((n = t),
					(r = i),
					Gt[(s = e)] ? n.removeEventListener(Gt[s], r, !1) : console.warn("wrong event specified:", s))
				: b.touch && "dblclick" === e
					? ((n = i),
						(r = t).removeEventListener("dblclick", n.dblclick),
						r.removeEventListener("click", n.simDblclick))
					: "removeEventListener" in t
						? t.removeEventListener(Ee[e] || e, i, !1)
						: t.detachEvent("on" + e, i),
			(t[E][o] = null));
	}
	function Ae(t) {
		return (
			t.stopPropagation
				? t.stopPropagation()
				: t.originalEvent
					? (t.originalEvent._stopped = !0)
					: (t.cancelBubble = !0),
			this
		);
	}
	function Be(t) {
		return (ke(t, "wheel", Ae), this);
	}
	function Ie(t) {
		return (S(t, "mousedown touchstart dblclick contextmenu", Ae), (t._leaflet_disable_click = !0), this);
	}
	function O(t) {
		return (t.preventDefault ? t.preventDefault() : (t.returnValue = !1), this);
	}
	function Re(t) {
		return (O(t), Ae(t), this);
	}
	function Ne(t) {
		if (t.composedPath) return t.composedPath();
		for (var e = [], i = t.target; i; ) (e.push(i), (i = i.parentNode));
		return e;
	}
	function De(t, e) {
		var i, n;
		return e
			? ((n = (i = Ze(e)).boundingClientRect),
				new p((t.clientX - n.left) / i.x - e.clientLeft, (t.clientY - n.top) / i.y - e.clientTop))
			: new p(t.clientX, t.clientY);
	}
	var je =
		b.linux && b.chrome
			? window.devicePixelRatio
			: b.mac
				? 3 * window.devicePixelRatio
				: 0 < window.devicePixelRatio
					? 2 * window.devicePixelRatio
					: 1;
	function He(t) {
		return b.edge
			? t.wheelDeltaY / 2
			: t.deltaY && 0 === t.deltaMode
				? -t.deltaY / je
				: t.deltaY && 1 === t.deltaMode
					? 20 * -t.deltaY
					: t.deltaY && 2 === t.deltaMode
						? 60 * -t.deltaY
						: t.deltaX || t.deltaZ
							? 0
							: t.wheelDelta
								? (t.wheelDeltaY || t.wheelDelta) / 2
								: t.detail && Math.abs(t.detail) < 32765
									? 20 * -t.detail
									: t.detail
										? (t.detail / -32765) * 60
										: 0;
	}
	function We(t, e) {
		var i = e.relatedTarget;
		if (!i) return !0;
		try {
			for (; i && i !== t; ) i = i.parentNode;
		} catch (t) {
			return !1;
		}
		return i !== t;
	}
	var mt = {
			__proto__: null,
			on: S,
			off: k,
			stopPropagation: Ae,
			disableScrollPropagation: Be,
			disableClickPropagation: Ie,
			preventDefault: O,
			stop: Re,
			getPropagationPath: Ne,
			getMousePosition: De,
			getWheelDelta: He,
			isExternalTarget: We,
			addListener: S,
			removeListener: k,
		},
		Fe = it.extend({
			run: function (t, e, i, n) {
				(this.stop(),
					(this._el = t),
					(this._inProgress = !0),
					(this._duration = i || 0.25),
					(this._easeOutPower = 1 / Math.max(n || 0.5, 0.2)),
					(this._startPos = Pe(t)),
					(this._offset = e.subtract(this._startPos)),
					(this._startTime = +new Date()),
					this.fire("start"),
					this._animate());
			},
			stop: function () {
				this._inProgress && (this._step(!0), this._complete());
			},
			_animate: function () {
				((this._animId = x(this._animate, this)), this._step());
			},
			_step: function (t) {
				var e = +new Date() - this._startTime,
					i = 1e3 * this._duration;
				e < i ? this._runFrame(this._easeOut(e / i), t) : (this._runFrame(1), this._complete());
			},
			_runFrame: function (t, e) {
				t = this._startPos.add(this._offset.multiplyBy(t));
				(e && t._round(), Z(this._el, t), this.fire("step"));
			},
			_complete: function () {
				(r(this._animId), (this._inProgress = !1), this.fire("end"));
			},
			_easeOut: function (t) {
				return 1 - Math.pow(1 - t, this._easeOutPower);
			},
		}),
		A = it.extend({
			options: {
				crs: lt,
				center: void 0,
				zoom: void 0,
				minZoom: void 0,
				maxZoom: void 0,
				layers: [],
				maxBounds: void 0,
				renderer: void 0,
				zoomAnimation: !0,
				zoomAnimationThreshold: 4,
				fadeAnimation: !0,
				markerZoomAnimation: !0,
				transform3DLimit: 8388608,
				zoomSnap: 1,
				zoomDelta: 1,
				trackResize: !0,
			},
			initialize: function (t, e) {
				((e = c(this, e)),
					(this._handlers = []),
					(this._layers = {}),
					(this._zoomBoundLayers = {}),
					(this._sizeChanged = !0),
					this._initContainer(t),
					this._initLayout(),
					(this._onResize = a(this._onResize, this)),
					this._initEvents(),
					e.maxBounds && this.setMaxBounds(e.maxBounds),
					void 0 !== e.zoom && (this._zoom = this._limitZoom(e.zoom)),
					e.center && void 0 !== e.zoom && this.setView(w(e.center), e.zoom, { reset: !0 }),
					this.callInitHooks(),
					(this._zoomAnimated = ce && b.any3d && !b.mobileOpera && this.options.zoomAnimation),
					this._zoomAnimated && (this._createAnimProxy(), S(this._proxy, de, this._catchTransitionEnd, this)),
					this._addLayers(this.options.layers));
			},
			setView: function (t, e, i) {
				if (
					((e = void 0 === e ? this._zoom : this._limitZoom(e)),
					(t = this._limitCenter(w(t), e, this.options.maxBounds)),
					(i = i || {}),
					this._stop(),
					this._loaded && !i.reset && !0 !== i) &&
					(void 0 !== i.animate &&
						((i.zoom = l({ animate: i.animate }, i.zoom)),
						(i.pan = l({ animate: i.animate, duration: i.duration }, i.pan))),
					this._zoom !== e
						? this._tryAnimatedZoom && this._tryAnimatedZoom(t, e, i.zoom)
						: this._tryAnimatedPan(t, i.pan))
				)
					return (clearTimeout(this._sizeTimer), this);
				return (this._resetView(t, e, i.pan && i.pan.noMoveStart), this);
			},
			setZoom: function (t, e) {
				return this._loaded ? this.setView(this.getCenter(), t, { zoom: e }) : ((this._zoom = t), this);
			},
			zoomIn: function (t, e) {
				return ((t = t || (b.any3d ? this.options.zoomDelta : 1)), this.setZoom(this._zoom + t, e));
			},
			zoomOut: function (t, e) {
				return ((t = t || (b.any3d ? this.options.zoomDelta : 1)), this.setZoom(this._zoom - t, e));
			},
			setZoomAround: function (t, e, i) {
				var n = this.getZoomScale(e),
					o = this.getSize().divideBy(2),
					t = (t instanceof p ? t : this.latLngToContainerPoint(t)).subtract(o).multiplyBy(1 - 1 / n),
					n = this.containerPointToLatLng(o.add(t));
				return this.setView(n, e, { zoom: i });
			},
			_getBoundsCenterZoom: function (t, e) {
				((e = e || {}), (t = t.getBounds ? t.getBounds() : g(t)));
				var i = m(e.paddingTopLeft || e.padding || [0, 0]),
					n = m(e.paddingBottomRight || e.padding || [0, 0]),
					o = this.getBoundsZoom(t, !1, i.add(n));
				return (o = "number" == typeof e.maxZoom ? Math.min(e.maxZoom, o) : o) === 1 / 0
					? { center: t.getCenter(), zoom: o }
					: ((e = n.subtract(i).divideBy(2)),
						(n = this.project(t.getSouthWest(), o)),
						(i = this.project(t.getNorthEast(), o)),
						{ center: this.unproject(n.add(i).divideBy(2).add(e), o), zoom: o });
			},
			fitBounds: function (t, e) {
				if ((t = g(t)).isValid())
					return ((t = this._getBoundsCenterZoom(t, e)), this.setView(t.center, t.zoom, e));
				throw new Error("Bounds are not valid.");
			},
			fitWorld: function (t) {
				return this.fitBounds(
					[
						[-90, -180],
						[90, 180],
					],
					t,
				);
			},
			panTo: function (t, e) {
				return this.setView(t, this._zoom, { pan: e });
			},
			panBy: function (t, e) {
				var i;
				return (
					(e = e || {}),
					(t = m(t).round()).x || t.y
						? (!0 === e.animate || this.getSize().contains(t)
								? (this._panAnim ||
										((this._panAnim = new Fe()),
										this._panAnim.on(
											{ step: this._onPanTransitionStep, end: this._onPanTransitionEnd },
											this,
										)),
									e.noMoveStart || this.fire("movestart"),
									!1 !== e.animate
										? (M(this._mapPane, "leaflet-pan-anim"),
											(i = this._getMapPanePos().subtract(t).round()),
											this._panAnim.run(this._mapPane, i, e.duration || 0.25, e.easeLinearity))
										: (this._rawPanBy(t), this.fire("move").fire("moveend")))
								: this._resetView(
										this.unproject(this.project(this.getCenter()).add(t)),
										this.getZoom(),
									),
							this)
						: this.fire("moveend")
				);
			},
			flyTo: function (n, o, t) {
				if (!1 === (t = t || {}).animate || !b.any3d) return this.setView(n, o, t);
				this._stop();
				var s = this.project(this.getCenter()),
					r = this.project(n),
					e = this.getSize(),
					a = this._zoom,
					h = ((n = w(n)), (o = void 0 === o ? a : o), Math.max(e.x, e.y)),
					i = h * this.getZoomScale(a, o),
					l = r.distanceTo(s) || 1,
					u = 1.42,
					c = u * u;
				function d(t) {
					((t = (i * i - h * h + (t ? -1 : 1) * c * c * l * l) / (2 * (t ? i : h) * c * l)),
						(t = Math.sqrt(t * t + 1) - t));
					return t < 1e-9 ? -18 : Math.log(t);
				}
				function _(t) {
					return (Math.exp(t) - Math.exp(-t)) / 2;
				}
				function p(t) {
					return (Math.exp(t) + Math.exp(-t)) / 2;
				}
				var m = d(0);
				function f(t) {
					return (h * (p(m) * (_((t = m + u * t)) / p(t)) - _(m))) / c;
				}
				var g = Date.now(),
					v = (d(1) - m) / u,
					y = t.duration ? 1e3 * t.duration : 1e3 * v * 0.8;
				return (
					this._moveStart(!0, t.noMoveStart),
					function t() {
						var e = (Date.now() - g) / y,
							i = (1 - Math.pow(1 - e, 1.5)) * v;
						e <= 1
							? ((this._flyToFrame = x(t, this)),
								this._move(
									this.unproject(s.add(r.subtract(s).multiplyBy(f(i) / l)), a),
									this.getScaleZoom(h / ((e = i), h * (p(m) / p(m + u * e))), a),
									{ flyTo: !0 },
								))
							: this._move(n, o)._moveEnd(!0);
					}.call(this),
					this
				);
			},
			flyToBounds: function (t, e) {
				t = this._getBoundsCenterZoom(t, e);
				return this.flyTo(t.center, t.zoom, e);
			},
			setMaxBounds: function (t) {
				return (
					(t = g(t)),
					this.listens("moveend", this._panInsideMaxBounds) && this.off("moveend", this._panInsideMaxBounds),
					t.isValid()
						? ((this.options.maxBounds = t),
							this._loaded && this._panInsideMaxBounds(),
							this.on("moveend", this._panInsideMaxBounds))
						: ((this.options.maxBounds = null), this)
				);
			},
			setMinZoom: function (t) {
				var e = this.options.minZoom;
				return (
					(this.options.minZoom = t),
					this._loaded && e !== t && (this.fire("zoomlevelschange"), this.getZoom() < this.options.minZoom)
						? this.setZoom(t)
						: this
				);
			},
			setMaxZoom: function (t) {
				var e = this.options.maxZoom;
				return (
					(this.options.maxZoom = t),
					this._loaded && e !== t && (this.fire("zoomlevelschange"), this.getZoom() > this.options.maxZoom)
						? this.setZoom(t)
						: this
				);
			},
			panInsideBounds: function (t, e) {
				this._enforcingBounds = !0;
				var i = this.getCenter(),
					t = this._limitCenter(i, this._zoom, g(t));
				return (i.equals(t) || this.panTo(t, e), (this._enforcingBounds = !1), this);
			},
			panInside: function (t, e) {
				var i = m((e = e || {}).paddingTopLeft || e.padding || [0, 0]),
					n = m(e.paddingBottomRight || e.padding || [0, 0]),
					o = this.project(this.getCenter()),
					t = this.project(t),
					s = this.getPixelBounds(),
					i = _([s.min.add(i), s.max.subtract(n)]),
					s = i.getSize();
				return (
					i.contains(t) ||
						((this._enforcingBounds = !0),
						(n = t.subtract(i.getCenter())),
						(i = i.extend(t).getSize().subtract(s)),
						(o.x += n.x < 0 ? -i.x : i.x),
						(o.y += n.y < 0 ? -i.y : i.y),
						this.panTo(this.unproject(o), e),
						(this._enforcingBounds = !1)),
					this
				);
			},
			invalidateSize: function (t) {
				if (!this._loaded) return this;
				t = l({ animate: !1, pan: !0 }, !0 === t ? { animate: !0 } : t);
				var e = this.getSize(),
					i = ((this._sizeChanged = !0), (this._lastCenter = null), this.getSize()),
					n = e.divideBy(2).round(),
					o = i.divideBy(2).round(),
					n = n.subtract(o);
				return n.x || n.y
					? (t.animate && t.pan
							? this.panBy(n)
							: (t.pan && this._rawPanBy(n),
								this.fire("move"),
								t.debounceMoveend
									? (clearTimeout(this._sizeTimer),
										(this._sizeTimer = setTimeout(a(this.fire, this, "moveend"), 200)))
									: this.fire("moveend")),
						this.fire("resize", { oldSize: e, newSize: i }))
					: this;
			},
			stop: function () {
				return (
					this.setZoom(this._limitZoom(this._zoom)),
					this.options.zoomSnap || this.fire("viewreset"),
					this._stop()
				);
			},
			locate: function (t) {
				var e, i;
				return (
					(t = this._locateOptions = l({ timeout: 1e4, watch: !1 }, t)),
					"geolocation" in navigator
						? ((e = a(this._handleGeolocationResponse, this)),
							(i = a(this._handleGeolocationError, this)),
							t.watch
								? (this._locationWatchId = navigator.geolocation.watchPosition(e, i, t))
								: navigator.geolocation.getCurrentPosition(e, i, t))
						: this._handleGeolocationError({ code: 0, message: "Geolocation not supported." }),
					this
				);
			},
			stopLocate: function () {
				return (
					navigator.geolocation &&
						navigator.geolocation.clearWatch &&
						navigator.geolocation.clearWatch(this._locationWatchId),
					this._locateOptions && (this._locateOptions.setView = !1),
					this
				);
			},
			_handleGeolocationError: function (t) {
				var e;
				this._container._leaflet_id &&
					((e = t.code),
					(t = t.message || (1 === e ? "permission denied" : 2 === e ? "position unavailable" : "timeout")),
					this._locateOptions.setView && !this._loaded && this.fitWorld(),
					this.fire("locationerror", { code: e, message: "Geolocation error: " + t + "." }));
			},
			_handleGeolocationResponse: function (t) {
				if (this._container._leaflet_id) {
					var e,
						i,
						n = new v(t.coords.latitude, t.coords.longitude),
						o = n.toBounds(2 * t.coords.accuracy),
						s = this._locateOptions,
						r =
							(s.setView &&
								((e = this.getBoundsZoom(o)), this.setView(n, s.maxZoom ? Math.min(e, s.maxZoom) : e)),
							{ latlng: n, bounds: o, timestamp: t.timestamp });
					for (i in t.coords) "number" == typeof t.coords[i] && (r[i] = t.coords[i]);
					this.fire("locationfound", r);
				}
			},
			addHandler: function (t, e) {
				return (
					e && ((e = this[t] = new e(this)), this._handlers.push(e), this.options[t] && e.enable()),
					this
				);
			},
			remove: function () {
				if (
					(this._initEvents(!0),
					this.options.maxBounds && this.off("moveend", this._panInsideMaxBounds),
					this._containerId !== this._container._leaflet_id)
				)
					throw new Error("Map container is being reused by another instance");
				try {
					(delete this._container._leaflet_id, delete this._containerId);
				} catch (t) {
					((this._container._leaflet_id = void 0), (this._containerId = void 0));
				}
				for (var t in (void 0 !== this._locationWatchId && this.stopLocate(),
				this._stop(),
				T(this._mapPane),
				this._clearControlPos && this._clearControlPos(),
				this._resizeRequest && (r(this._resizeRequest), (this._resizeRequest = null)),
				this._clearHandlers(),
				this._loaded && this.fire("unload"),
				this._layers))
					this._layers[t].remove();
				for (t in this._panes) T(this._panes[t]);
				return ((this._layers = []), (this._panes = []), delete this._mapPane, delete this._renderer, this);
			},
			createPane: function (t, e) {
				e = P(
					"div",
					"leaflet-pane" + (t ? " leaflet-" + t.replace("Pane", "") + "-pane" : ""),
					e || this._mapPane,
				);
				return (t && (this._panes[t] = e), e);
			},
			getCenter: function () {
				return (
					this._checkIfLoaded(),
					this._lastCenter && !this._moved()
						? this._lastCenter.clone()
						: this.layerPointToLatLng(this._getCenterLayerPoint())
				);
			},
			getZoom: function () {
				return this._zoom;
			},
			getBounds: function () {
				var t = this.getPixelBounds();
				return new s(this.unproject(t.getBottomLeft()), this.unproject(t.getTopRight()));
			},
			getMinZoom: function () {
				return void 0 === this.options.minZoom ? this._layersMinZoom || 0 : this.options.minZoom;
			},
			getMaxZoom: function () {
				return void 0 === this.options.maxZoom
					? void 0 === this._layersMaxZoom
						? 1 / 0
						: this._layersMaxZoom
					: this.options.maxZoom;
			},
			getBoundsZoom: function (t, e, i) {
				((t = g(t)), (i = m(i || [0, 0])));
				var n = this.getZoom() || 0,
					o = this.getMinZoom(),
					s = this.getMaxZoom(),
					r = t.getNorthWest(),
					t = t.getSouthEast(),
					i = this.getSize().subtract(i),
					t = _(this.project(t, n), this.project(r, n)).getSize(),
					r = b.any3d ? this.options.zoomSnap : 1,
					a = i.x / t.x,
					i = i.y / t.y,
					t = e ? Math.max(a, i) : Math.min(a, i),
					n = this.getScaleZoom(t, n);
				return (
					r &&
						((n = Math.round(n / (r / 100)) * (r / 100)),
						(n = e ? Math.ceil(n / r) * r : Math.floor(n / r) * r)),
					Math.max(o, Math.min(s, n))
				);
			},
			getSize: function () {
				return (
					(this._size && !this._sizeChanged) ||
						((this._size = new p(this._container.clientWidth || 0, this._container.clientHeight || 0)),
						(this._sizeChanged = !1)),
					this._size.clone()
				);
			},
			getPixelBounds: function (t, e) {
				t = this._getTopLeftPoint(t, e);
				return new f(t, t.add(this.getSize()));
			},
			getPixelOrigin: function () {
				return (this._checkIfLoaded(), this._pixelOrigin);
			},
			getPixelWorldBounds: function (t) {
				return this.options.crs.getProjectedBounds(void 0 === t ? this.getZoom() : t);
			},
			getPane: function (t) {
				return "string" == typeof t ? this._panes[t] : t;
			},
			getPanes: function () {
				return this._panes;
			},
			getContainer: function () {
				return this._container;
			},
			getZoomScale: function (t, e) {
				var i = this.options.crs;
				return ((e = void 0 === e ? this._zoom : e), i.scale(t) / i.scale(e));
			},
			getScaleZoom: function (t, e) {
				var i = this.options.crs,
					t = ((e = void 0 === e ? this._zoom : e), i.zoom(t * i.scale(e)));
				return isNaN(t) ? 1 / 0 : t;
			},
			project: function (t, e) {
				return ((e = void 0 === e ? this._zoom : e), this.options.crs.latLngToPoint(w(t), e));
			},
			unproject: function (t, e) {
				return ((e = void 0 === e ? this._zoom : e), this.options.crs.pointToLatLng(m(t), e));
			},
			layerPointToLatLng: function (t) {
				t = m(t).add(this.getPixelOrigin());
				return this.unproject(t);
			},
			latLngToLayerPoint: function (t) {
				return this.project(w(t))._round()._subtract(this.getPixelOrigin());
			},
			wrapLatLng: function (t) {
				return this.options.crs.wrapLatLng(w(t));
			},
			wrapLatLngBounds: function (t) {
				return this.options.crs.wrapLatLngBounds(g(t));
			},
			distance: function (t, e) {
				return this.options.crs.distance(w(t), w(e));
			},
			containerPointToLayerPoint: function (t) {
				return m(t).subtract(this._getMapPanePos());
			},
			layerPointToContainerPoint: function (t) {
				return m(t).add(this._getMapPanePos());
			},
			containerPointToLatLng: function (t) {
				t = this.containerPointToLayerPoint(m(t));
				return this.layerPointToLatLng(t);
			},
			latLngToContainerPoint: function (t) {
				return this.layerPointToContainerPoint(this.latLngToLayerPoint(w(t)));
			},
			mouseEventToContainerPoint: function (t) {
				return De(t, this._container);
			},
			mouseEventToLayerPoint: function (t) {
				return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t));
			},
			mouseEventToLatLng: function (t) {
				return this.layerPointToLatLng(this.mouseEventToLayerPoint(t));
			},
			_initContainer: function (t) {
				t = this._container = _e(t);
				if (!t) throw new Error("Map container not found.");
				if (t._leaflet_id) throw new Error("Map container is already initialized.");
				(S(t, "scroll", this._onScroll, this), (this._containerId = h(t)));
			},
			_initLayout: function () {
				var t = this._container,
					e =
						((this._fadeAnimated = this.options.fadeAnimation && b.any3d),
						M(
							t,
							"leaflet-container" +
								(b.touch ? " leaflet-touch" : "") +
								(b.retina ? " leaflet-retina" : "") +
								(b.ielt9 ? " leaflet-oldie" : "") +
								(b.safari ? " leaflet-safari" : "") +
								(this._fadeAnimated ? " leaflet-fade-anim" : ""),
						),
						pe(t, "position"));
				("absolute" !== e &&
					"relative" !== e &&
					"fixed" !== e &&
					"sticky" !== e &&
					(t.style.position = "relative"),
					this._initPanes(),
					this._initControlPos && this._initControlPos());
			},
			_initPanes: function () {
				var t = (this._panes = {});
				((this._paneRenderers = {}),
					(this._mapPane = this.createPane("mapPane", this._container)),
					Z(this._mapPane, new p(0, 0)),
					this.createPane("tilePane"),
					this.createPane("overlayPane"),
					this.createPane("shadowPane"),
					this.createPane("markerPane"),
					this.createPane("tooltipPane"),
					this.createPane("popupPane"),
					this.options.markerZoomAnimation ||
						(M(t.markerPane, "leaflet-zoom-hide"), M(t.shadowPane, "leaflet-zoom-hide")));
			},
			_resetView: function (t, e, i) {
				Z(this._mapPane, new p(0, 0));
				var n = !this._loaded,
					o = ((this._loaded = !0), (e = this._limitZoom(e)), this.fire("viewprereset"), this._zoom !== e);
				(this._moveStart(o, i)._move(t, e)._moveEnd(o), this.fire("viewreset"), n && this.fire("load"));
			},
			_moveStart: function (t, e) {
				return (t && this.fire("zoomstart"), e || this.fire("movestart"), this);
			},
			_move: function (t, e, i, n) {
				void 0 === e && (e = this._zoom);
				var o = this._zoom !== e;
				return (
					(this._zoom = e),
					(this._lastCenter = t),
					(this._pixelOrigin = this._getNewPixelOrigin(t)),
					n
						? i && i.pinch && this.fire("zoom", i)
						: ((o || (i && i.pinch)) && this.fire("zoom", i), this.fire("move", i)),
					this
				);
			},
			_moveEnd: function (t) {
				return (t && this.fire("zoomend"), this.fire("moveend"));
			},
			_stop: function () {
				return (r(this._flyToFrame), this._panAnim && this._panAnim.stop(), this);
			},
			_rawPanBy: function (t) {
				Z(this._mapPane, this._getMapPanePos().subtract(t));
			},
			_getZoomSpan: function () {
				return this.getMaxZoom() - this.getMinZoom();
			},
			_panInsideMaxBounds: function () {
				this._enforcingBounds || this.panInsideBounds(this.options.maxBounds);
			},
			_checkIfLoaded: function () {
				if (!this._loaded) throw new Error("Set map center and zoom first.");
			},
			_initEvents: function (t) {
				this._targets = {};
				var e = t ? k : S;
				(e(
					(this._targets[h(this._container)] = this)._container,
					"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",
					this._handleDOMEvent,
					this,
				),
					this.options.trackResize && e(window, "resize", this._onResize, this),
					b.any3d &&
						this.options.transform3DLimit &&
						(t ? this.off : this.on).call(this, "moveend", this._onMoveEnd));
			},
			_onResize: function () {
				(r(this._resizeRequest),
					(this._resizeRequest = x(function () {
						this.invalidateSize({ debounceMoveend: !0 });
					}, this)));
			},
			_onScroll: function () {
				((this._container.scrollTop = 0), (this._container.scrollLeft = 0));
			},
			_onMoveEnd: function () {
				var t = this._getMapPanePos();
				Math.max(Math.abs(t.x), Math.abs(t.y)) >= this.options.transform3DLimit &&
					this._resetView(this.getCenter(), this.getZoom());
			},
			_findEventTargets: function (t, e) {
				for (
					var i, n = [], o = "mouseout" === e || "mouseover" === e, s = t.target || t.srcElement, r = !1;
					s;

				) {
					if ((i = this._targets[h(s)]) && ("click" === e || "preclick" === e) && this._draggableMoved(i)) {
						r = !0;
						break;
					}
					if (i && i.listens(e, !0)) {
						if (o && !We(s, t)) break;
						if ((n.push(i), o)) break;
					}
					if (s === this._container) break;
					s = s.parentNode;
				}
				return (n = n.length || r || o || !this.listens(e, !0) ? n : [this]);
			},
			_isClickDisabled: function (t) {
				for (; t && t !== this._container; ) {
					if (t._leaflet_disable_click) return !0;
					t = t.parentNode;
				}
			},
			_handleDOMEvent: function (t) {
				var e,
					i = t.target || t.srcElement;
				!this._loaded ||
					i._leaflet_disable_events ||
					("click" === t.type && this._isClickDisabled(i)) ||
					("mousedown" === (e = t.type) && Me(i), this._fireDOMEvent(t, e));
			},
			_mouseEvents: ["click", "dblclick", "mouseover", "mouseout", "contextmenu"],
			_fireDOMEvent: function (t, e, i) {
				"click" === t.type && (((a = l({}, t)).type = "preclick"), this._fireDOMEvent(a, a.type, i));
				var n = this._findEventTargets(t, e);
				if (i) {
					for (var o = [], s = 0; s < i.length; s++) i[s].listens(e, !0) && o.push(i[s]);
					n = o.concat(n);
				}
				if (n.length) {
					"contextmenu" === e && O(t);
					var r,
						a = n[0],
						h = { originalEvent: t };
					for (
						"keypress" !== t.type &&
							"keydown" !== t.type &&
							"keyup" !== t.type &&
							((r = a.getLatLng && (!a._radius || a._radius <= 10)),
							(h.containerPoint = r
								? this.latLngToContainerPoint(a.getLatLng())
								: this.mouseEventToContainerPoint(t)),
							(h.layerPoint = this.containerPointToLayerPoint(h.containerPoint)),
							(h.latlng = r ? a.getLatLng() : this.layerPointToLatLng(h.layerPoint))),
							s = 0;
						s < n.length;
						s++
					)
						if (
							(n[s].fire(e, h, !0),
							h.originalEvent._stopped ||
								(!1 === n[s].options.bubblingMouseEvents && -1 !== G(this._mouseEvents, e)))
						)
							return;
				}
			},
			_draggableMoved: function (t) {
				return (
					((t = t.dragging && t.dragging.enabled() ? t : this).dragging && t.dragging.moved()) ||
					(this.boxZoom && this.boxZoom.moved())
				);
			},
			_clearHandlers: function () {
				for (var t = 0, e = this._handlers.length; t < e; t++) this._handlers[t].disable();
			},
			whenReady: function (t, e) {
				return (this._loaded ? t.call(e || this, { target: this }) : this.on("load", t, e), this);
			},
			_getMapPanePos: function () {
				return Pe(this._mapPane) || new p(0, 0);
			},
			_moved: function () {
				var t = this._getMapPanePos();
				return t && !t.equals([0, 0]);
			},
			_getTopLeftPoint: function (t, e) {
				return (t && void 0 !== e ? this._getNewPixelOrigin(t, e) : this.getPixelOrigin()).subtract(
					this._getMapPanePos(),
				);
			},
			_getNewPixelOrigin: function (t, e) {
				var i = this.getSize()._divideBy(2);
				return this.project(t, e)._subtract(i)._add(this._getMapPanePos())._round();
			},
			_latLngToNewLayerPoint: function (t, e, i) {
				i = this._getNewPixelOrigin(i, e);
				return this.project(t, e)._subtract(i);
			},
			_latLngBoundsToNewLayerBounds: function (t, e, i) {
				i = this._getNewPixelOrigin(i, e);
				return _([
					this.project(t.getSouthWest(), e)._subtract(i),
					this.project(t.getNorthWest(), e)._subtract(i),
					this.project(t.getSouthEast(), e)._subtract(i),
					this.project(t.getNorthEast(), e)._subtract(i),
				]);
			},
			_getCenterLayerPoint: function () {
				return this.containerPointToLayerPoint(this.getSize()._divideBy(2));
			},
			_getCenterOffset: function (t) {
				return this.latLngToLayerPoint(t).subtract(this._getCenterLayerPoint());
			},
			_limitCenter: function (t, e, i) {
				var n, o;
				return !i ||
					((n = this.project(t, e)),
					(o = this.getSize().divideBy(2)),
					(o = new f(n.subtract(o), n.add(o))),
					(o = this._getBoundsOffset(o, i, e)),
					Math.abs(o.x) <= 1 && Math.abs(o.y) <= 1)
					? t
					: this.unproject(n.add(o), e);
			},
			_limitOffset: function (t, e) {
				var i;
				return e
					? ((i = new f((i = this.getPixelBounds()).min.add(t), i.max.add(t))),
						t.add(this._getBoundsOffset(i, e)))
					: t;
			},
			_getBoundsOffset: function (t, e, i) {
				((e = _(this.project(e.getNorthEast(), i), this.project(e.getSouthWest(), i))),
					(i = e.min.subtract(t.min)),
					(e = e.max.subtract(t.max)));
				return new p(this._rebound(i.x, -e.x), this._rebound(i.y, -e.y));
			},
			_rebound: function (t, e) {
				return 0 < t + e ? Math.round(t - e) / 2 : Math.max(0, Math.ceil(t)) - Math.max(0, Math.floor(e));
			},
			_limitZoom: function (t) {
				var e = this.getMinZoom(),
					i = this.getMaxZoom(),
					n = b.any3d ? this.options.zoomSnap : 1;
				return (n && (t = Math.round(t / n) * n), Math.max(e, Math.min(i, t)));
			},
			_onPanTransitionStep: function () {
				this.fire("move");
			},
			_onPanTransitionEnd: function () {
				(z(this._mapPane, "leaflet-pan-anim"), this.fire("moveend"));
			},
			_tryAnimatedPan: function (t, e) {
				t = this._getCenterOffset(t)._trunc();
				return !(!0 !== (e && e.animate) && !this.getSize().contains(t)) && (this.panBy(t, e), !0);
			},
			_createAnimProxy: function () {
				var t = (this._proxy = P("div", "leaflet-proxy leaflet-zoom-animated"));
				(this._panes.mapPane.appendChild(t),
					this.on(
						"zoomanim",
						function (t) {
							var e = ue,
								i = this._proxy.style[e];
							(be(this._proxy, this.project(t.center, t.zoom), this.getZoomScale(t.zoom, 1)),
								i === this._proxy.style[e] && this._animatingZoom && this._onZoomTransitionEnd());
						},
						this,
					),
					this.on("load moveend", this._animMoveEnd, this),
					this._on("unload", this._destroyAnimProxy, this));
			},
			_destroyAnimProxy: function () {
				(T(this._proxy), this.off("load moveend", this._animMoveEnd, this), delete this._proxy);
			},
			_animMoveEnd: function () {
				var t = this.getCenter(),
					e = this.getZoom();
				be(this._proxy, this.project(t, e), this.getZoomScale(e, 1));
			},
			_catchTransitionEnd: function (t) {
				this._animatingZoom && 0 <= t.propertyName.indexOf("transform") && this._onZoomTransitionEnd();
			},
			_nothingToAnimate: function () {
				return !this._container.getElementsByClassName("leaflet-zoom-animated").length;
			},
			_tryAnimatedZoom: function (t, e, i) {
				if (!this._animatingZoom) {
					if (
						((i = i || {}),
						!this._zoomAnimated ||
							!1 === i.animate ||
							this._nothingToAnimate() ||
							Math.abs(e - this._zoom) > this.options.zoomAnimationThreshold)
					)
						return !1;
					var n = this.getZoomScale(e),
						n = this._getCenterOffset(t)._divideBy(1 - 1 / n);
					if (!0 !== i.animate && !this.getSize().contains(n)) return !1;
					x(function () {
						this._moveStart(!0, i.noMoveStart || !1)._animateZoom(t, e, !0);
					}, this);
				}
				return !0;
			},
			_animateZoom: function (t, e, i, n) {
				this._mapPane &&
					(i &&
						((this._animatingZoom = !0),
						(this._animateToCenter = t),
						(this._animateToZoom = e),
						M(this._mapPane, "leaflet-zoom-anim")),
					this.fire("zoomanim", { center: t, zoom: e, noUpdate: n }),
					this._tempFireZoomEvent || (this._tempFireZoomEvent = this._zoom !== this._animateToZoom),
					this._move(this._animateToCenter, this._animateToZoom, void 0, !0),
					setTimeout(a(this._onZoomTransitionEnd, this), 250));
			},
			_onZoomTransitionEnd: function () {
				this._animatingZoom &&
					(this._mapPane && z(this._mapPane, "leaflet-zoom-anim"),
					(this._animatingZoom = !1),
					this._move(this._animateToCenter, this._animateToZoom, void 0, !0),
					this._tempFireZoomEvent && this.fire("zoom"),
					delete this._tempFireZoomEvent,
					this.fire("move"),
					this._moveEnd(!0));
			},
		});
	function Ue(t) {
		return new B(t);
	}
	var B = et.extend({
			options: { position: "topright" },
			initialize: function (t) {
				c(this, t);
			},
			getPosition: function () {
				return this.options.position;
			},
			setPosition: function (t) {
				var e = this._map;
				return (e && e.removeControl(this), (this.options.position = t), e && e.addControl(this), this);
			},
			getContainer: function () {
				return this._container;
			},
			addTo: function (t) {
				(this.remove(), (this._map = t));
				var e = (this._container = this.onAdd(t)),
					i = this.getPosition(),
					t = t._controlCorners[i];
				return (
					M(e, "leaflet-control"),
					-1 !== i.indexOf("bottom") ? t.insertBefore(e, t.firstChild) : t.appendChild(e),
					this._map.on("unload", this.remove, this),
					this
				);
			},
			remove: function () {
				return (
					this._map &&
						(T(this._container),
						this.onRemove && this.onRemove(this._map),
						this._map.off("unload", this.remove, this),
						(this._map = null)),
					this
				);
			},
			_refocusOnMap: function (t) {
				this._map && t && 0 < t.screenX && 0 < t.screenY && this._map.getContainer().focus();
			},
		}),
		Ve =
			(A.include({
				addControl: function (t) {
					return (t.addTo(this), this);
				},
				removeControl: function (t) {
					return (t.remove(), this);
				},
				_initControlPos: function () {
					var i = (this._controlCorners = {}),
						n = "leaflet-",
						o = (this._controlContainer = P("div", n + "control-container", this._container));
					function t(t, e) {
						i[t + e] = P("div", n + t + " " + n + e, o);
					}
					(t("top", "left"), t("top", "right"), t("bottom", "left"), t("bottom", "right"));
				},
				_clearControlPos: function () {
					for (var t in this._controlCorners) T(this._controlCorners[t]);
					(T(this._controlContainer), delete this._controlCorners, delete this._controlContainer);
				},
			}),
			B.extend({
				options: {
					collapsed: !0,
					position: "topright",
					autoZIndex: !0,
					hideSingleBase: !1,
					sortLayers: !1,
					sortFunction: function (t, e, i, n) {
						return i < n ? -1 : n < i ? 1 : 0;
					},
				},
				initialize: function (t, e, i) {
					for (var n in (c(this, i),
					(this._layerControlInputs = []),
					(this._layers = []),
					(this._lastZIndex = 0),
					(this._handlingClick = !1),
					(this._preventClick = !1),
					t))
						this._addLayer(t[n], n);
					for (n in e) this._addLayer(e[n], n, !0);
				},
				onAdd: function (t) {
					(this._initLayout(),
						this._update(),
						(this._map = t).on("zoomend", this._checkDisabledLayers, this));
					for (var e = 0; e < this._layers.length; e++)
						this._layers[e].layer.on("add remove", this._onLayerChange, this);
					return this._container;
				},
				addTo: function (t) {
					return (B.prototype.addTo.call(this, t), this._expandIfNotCollapsed());
				},
				onRemove: function () {
					this._map.off("zoomend", this._checkDisabledLayers, this);
					for (var t = 0; t < this._layers.length; t++)
						this._layers[t].layer.off("add remove", this._onLayerChange, this);
				},
				addBaseLayer: function (t, e) {
					return (this._addLayer(t, e), this._map ? this._update() : this);
				},
				addOverlay: function (t, e) {
					return (this._addLayer(t, e, !0), this._map ? this._update() : this);
				},
				removeLayer: function (t) {
					t.off("add remove", this._onLayerChange, this);
					t = this._getLayer(h(t));
					return (t && this._layers.splice(this._layers.indexOf(t), 1), this._map ? this._update() : this);
				},
				expand: function () {
					(M(this._container, "leaflet-control-layers-expanded"), (this._section.style.height = null));
					var t = this._map.getSize().y - (this._container.offsetTop + 50);
					return (
						t < this._section.clientHeight
							? (M(this._section, "leaflet-control-layers-scrollbar"),
								(this._section.style.height = t + "px"))
							: z(this._section, "leaflet-control-layers-scrollbar"),
						this._checkDisabledLayers(),
						this
					);
				},
				collapse: function () {
					return (z(this._container, "leaflet-control-layers-expanded"), this);
				},
				_initLayout: function () {
					var t = "leaflet-control-layers",
						e = (this._container = P("div", t)),
						i = this.options.collapsed,
						n =
							(e.setAttribute("aria-haspopup", !0),
							Ie(e),
							Be(e),
							(this._section = P("section", t + "-list"))),
						o =
							(i &&
								(this._map.on("click", this.collapse, this),
								S(e, { mouseenter: this._expandSafely, mouseleave: this.collapse }, this)),
							(this._layersLink = P("a", t + "-toggle", e)));
					((o.href = "#"),
						(o.title = "Layers"),
						o.setAttribute("role", "button"),
						S(
							o,
							{
								keydown: function (t) {
									13 === t.keyCode && this._expandSafely();
								},
								click: function (t) {
									(O(t), this._expandSafely());
								},
							},
							this,
						),
						i || this.expand(),
						(this._baseLayersList = P("div", t + "-base", n)),
						(this._separator = P("div", t + "-separator", n)),
						(this._overlaysList = P("div", t + "-overlays", n)),
						e.appendChild(n));
				},
				_getLayer: function (t) {
					for (var e = 0; e < this._layers.length; e++)
						if (this._layers[e] && h(this._layers[e].layer) === t) return this._layers[e];
				},
				_addLayer: function (t, e, i) {
					(this._map && t.on("add remove", this._onLayerChange, this),
						this._layers.push({ layer: t, name: e, overlay: i }),
						this.options.sortLayers &&
							this._layers.sort(
								a(function (t, e) {
									return this.options.sortFunction(t.layer, e.layer, t.name, e.name);
								}, this),
							),
						this.options.autoZIndex && t.setZIndex && (this._lastZIndex++, t.setZIndex(this._lastZIndex)),
						this._expandIfNotCollapsed());
				},
				_update: function () {
					if (this._container) {
						(me(this._baseLayersList), me(this._overlaysList), (this._layerControlInputs = []));
						for (var t, e, i, n = 0, o = 0; o < this._layers.length; o++)
							((i = this._layers[o]),
								this._addItem(i),
								(e = e || i.overlay),
								(t = t || !i.overlay),
								(n += i.overlay ? 0 : 1));
						(this.options.hideSingleBase &&
							(this._baseLayersList.style.display = (t = t && 1 < n) ? "" : "none"),
							(this._separator.style.display = e && t ? "" : "none"));
					}
					return this;
				},
				_onLayerChange: function (t) {
					this._handlingClick || this._update();
					var e = this._getLayer(h(t.target)),
						t = e.overlay
							? "add" === t.type
								? "overlayadd"
								: "overlayremove"
							: "add" === t.type
								? "baselayerchange"
								: null;
					t && this._map.fire(t, e);
				},
				_createRadioElement: function (t, e) {
					((t =
						'<input type="radio" class="leaflet-control-layers-selector" name="' +
						t +
						'"' +
						(e ? ' checked="checked"' : "") +
						"/>"),
						(e = document.createElement("div")));
					return ((e.innerHTML = t), e.firstChild);
				},
				_addItem: function (t) {
					var e,
						i = document.createElement("label"),
						n = this._map.hasLayer(t.layer),
						n =
							(t.overlay
								? (((e = document.createElement("input")).type = "checkbox"),
									(e.className = "leaflet-control-layers-selector"),
									(e.defaultChecked = n))
								: (e = this._createRadioElement("leaflet-base-layers_" + h(this), n)),
							this._layerControlInputs.push(e),
							(e.layerId = h(t.layer)),
							S(e, "click", this._onInputClick, this),
							document.createElement("span")),
						o = ((n.innerHTML = " " + t.name), document.createElement("span"));
					return (
						i.appendChild(o),
						o.appendChild(e),
						o.appendChild(n),
						(t.overlay ? this._overlaysList : this._baseLayersList).appendChild(i),
						this._checkDisabledLayers(),
						i
					);
				},
				_onInputClick: function () {
					if (!this._preventClick) {
						var t,
							e,
							i = this._layerControlInputs,
							n = [],
							o = [];
						this._handlingClick = !0;
						for (var s = i.length - 1; 0 <= s; s--)
							((t = i[s]),
								(e = this._getLayer(t.layerId).layer),
								t.checked ? n.push(e) : t.checked || o.push(e));
						for (s = 0; s < o.length; s++) this._map.hasLayer(o[s]) && this._map.removeLayer(o[s]);
						for (s = 0; s < n.length; s++) this._map.hasLayer(n[s]) || this._map.addLayer(n[s]);
						((this._handlingClick = !1), this._refocusOnMap());
					}
				},
				_checkDisabledLayers: function () {
					for (var t, e, i = this._layerControlInputs, n = this._map.getZoom(), o = i.length - 1; 0 <= o; o--)
						((t = i[o]),
							(e = this._getLayer(t.layerId).layer),
							(t.disabled =
								(void 0 !== e.options.minZoom && n < e.options.minZoom) ||
								(void 0 !== e.options.maxZoom && n > e.options.maxZoom)));
				},
				_expandIfNotCollapsed: function () {
					return (this._map && !this.options.collapsed && this.expand(), this);
				},
				_expandSafely: function () {
					var t = this._section,
						e = ((this._preventClick = !0), S(t, "click", O), this.expand(), this);
					setTimeout(function () {
						(k(t, "click", O), (e._preventClick = !1));
					});
				},
			})),
		qe = B.extend({
			options: {
				position: "topleft",
				zoomInText: '<span aria-hidden="true">+</span>',
				zoomInTitle: "Zoom in",
				zoomOutText: '<span aria-hidden="true">&#x2212;</span>',
				zoomOutTitle: "Zoom out",
			},
			onAdd: function (t) {
				var e = "leaflet-control-zoom",
					i = P("div", e + " leaflet-bar"),
					n = this.options;
				return (
					(this._zoomInButton = this._createButton(n.zoomInText, n.zoomInTitle, e + "-in", i, this._zoomIn)),
					(this._zoomOutButton = this._createButton(
						n.zoomOutText,
						n.zoomOutTitle,
						e + "-out",
						i,
						this._zoomOut,
					)),
					this._updateDisabled(),
					t.on("zoomend zoomlevelschange", this._updateDisabled, this),
					i
				);
			},
			onRemove: function (t) {
				t.off("zoomend zoomlevelschange", this._updateDisabled, this);
			},
			disable: function () {
				return ((this._disabled = !0), this._updateDisabled(), this);
			},
			enable: function () {
				return ((this._disabled = !1), this._updateDisabled(), this);
			},
			_zoomIn: function (t) {
				!this._disabled &&
					this._map._zoom < this._map.getMaxZoom() &&
					this._map.zoomIn(this._map.options.zoomDelta * (t.shiftKey ? 3 : 1));
			},
			_zoomOut: function (t) {
				!this._disabled &&
					this._map._zoom > this._map.getMinZoom() &&
					this._map.zoomOut(this._map.options.zoomDelta * (t.shiftKey ? 3 : 1));
			},
			_createButton: function (t, e, i, n, o) {
				i = P("a", i, n);
				return (
					(i.innerHTML = t),
					(i.href = "#"),
					(i.title = e),
					i.setAttribute("role", "button"),
					i.setAttribute("aria-label", e),
					Ie(i),
					S(i, "click", Re),
					S(i, "click", o, this),
					S(i, "click", this._refocusOnMap, this),
					i
				);
			},
			_updateDisabled: function () {
				var t = this._map,
					e = "leaflet-disabled";
				(z(this._zoomInButton, e),
					z(this._zoomOutButton, e),
					this._zoomInButton.setAttribute("aria-disabled", "false"),
					this._zoomOutButton.setAttribute("aria-disabled", "false"),
					(!this._disabled && t._zoom !== t.getMinZoom()) ||
						(M(this._zoomOutButton, e), this._zoomOutButton.setAttribute("aria-disabled", "true")),
					(!this._disabled && t._zoom !== t.getMaxZoom()) ||
						(M(this._zoomInButton, e), this._zoomInButton.setAttribute("aria-disabled", "true")));
			},
		}),
		Ge =
			(A.mergeOptions({ zoomControl: !0 }),
			A.addInitHook(function () {
				this.options.zoomControl && ((this.zoomControl = new qe()), this.addControl(this.zoomControl));
			}),
			B.extend({
				options: { position: "bottomleft", maxWidth: 100, metric: !0, imperial: !0 },
				onAdd: function (t) {
					var e = "leaflet-control-scale",
						i = P("div", e),
						n = this.options;
					return (
						this._addScales(n, e + "-line", i),
						t.on(n.updateWhenIdle ? "moveend" : "move", this._update, this),
						t.whenReady(this._update, this),
						i
					);
				},
				onRemove: function (t) {
					t.off(this.options.updateWhenIdle ? "moveend" : "move", this._update, this);
				},
				_addScales: function (t, e, i) {
					(t.metric && (this._mScale = P("div", e, i)), t.imperial && (this._iScale = P("div", e, i)));
				},
				_update: function () {
					var t = this._map,
						e = t.getSize().y / 2,
						t = t.distance(
							t.containerPointToLatLng([0, e]),
							t.containerPointToLatLng([this.options.maxWidth, e]),
						);
					this._updateScales(t);
				},
				_updateScales: function (t) {
					(this.options.metric && t && this._updateMetric(t),
						this.options.imperial && t && this._updateImperial(t));
				},
				_updateMetric: function (t) {
					var e = this._getRoundNum(t);
					this._updateScale(this._mScale, e < 1e3 ? e + " m" : e / 1e3 + " km", e / t);
				},
				_updateImperial: function (t) {
					var e,
						i,
						t = 3.2808399 * t;
					5280 < t
						? ((i = this._getRoundNum((e = t / 5280))), this._updateScale(this._iScale, i + " mi", i / e))
						: ((i = this._getRoundNum(t)), this._updateScale(this._iScale, i + " ft", i / t));
				},
				_updateScale: function (t, e, i) {
					((t.style.width = Math.round(this.options.maxWidth * i) + "px"), (t.innerHTML = e));
				},
				_getRoundNum: function (t) {
					var e = Math.pow(10, (Math.floor(t) + "").length - 1),
						t = t / e;
					return e * (t = 10 <= t ? 10 : 5 <= t ? 5 : 3 <= t ? 3 : 2 <= t ? 2 : 1);
				},
			})),
		Ke = B.extend({
			options: {
				position: "bottomright",
				prefix:
					'<a href="https://leafletjs.com" title="A JavaScript library for interactive maps">' +
					(b.inlineSvg
						? '<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="12" height="8" viewBox="0 0 12 8" class="leaflet-attribution-flag"><path fill="#4C7BE1" d="M0 0h12v4H0z"/><path fill="#FFD500" d="M0 4h12v3H0z"/><path fill="#E0BC00" d="M0 7h12v1H0z"/></svg> '
						: "") +
					"Leaflet</a>",
			},
			initialize: function (t) {
				(c(this, t), (this._attributions = {}));
			},
			onAdd: function (t) {
				for (var e in (((t.attributionControl = this)._container = P("div", "leaflet-control-attribution")),
				Ie(this._container),
				t._layers))
					t._layers[e].getAttribution && this.addAttribution(t._layers[e].getAttribution());
				return (this._update(), t.on("layeradd", this._addAttribution, this), this._container);
			},
			onRemove: function (t) {
				t.off("layeradd", this._addAttribution, this);
			},
			_addAttribution: function (t) {
				t.layer.getAttribution &&
					(this.addAttribution(t.layer.getAttribution()),
					t.layer.once(
						"remove",
						function () {
							this.removeAttribution(t.layer.getAttribution());
						},
						this,
					));
			},
			setPrefix: function (t) {
				return ((this.options.prefix = t), this._update(), this);
			},
			addAttribution: function (t) {
				return (
					t &&
						(this._attributions[t] || (this._attributions[t] = 0), this._attributions[t]++, this._update()),
					this
				);
			},
			removeAttribution: function (t) {
				return (t && this._attributions[t] && (this._attributions[t]--, this._update()), this);
			},
			_update: function () {
				if (this._map) {
					var t,
						e = [];
					for (t in this._attributions) this._attributions[t] && e.push(t);
					var i = [];
					(this.options.prefix && i.push(this.options.prefix),
						e.length && i.push(e.join(", ")),
						(this._container.innerHTML = i.join(' <span aria-hidden="true">|</span> ')));
				}
			},
		}),
		n =
			(A.mergeOptions({ attributionControl: !0 }),
			A.addInitHook(function () {
				this.options.attributionControl && new Ke().addTo(this);
			}),
			(B.Layers = Ve),
			(B.Zoom = qe),
			(B.Scale = Ge),
			(B.Attribution = Ke),
			(Ue.layers = function (t, e, i) {
				return new Ve(t, e, i);
			}),
			(Ue.zoom = function (t) {
				return new qe(t);
			}),
			(Ue.scale = function (t) {
				return new Ge(t);
			}),
			(Ue.attribution = function (t) {
				return new Ke(t);
			}),
			et.extend({
				initialize: function (t) {
					this._map = t;
				},
				enable: function () {
					return (this._enabled || ((this._enabled = !0), this.addHooks()), this);
				},
				disable: function () {
					return (this._enabled && ((this._enabled = !1), this.removeHooks()), this);
				},
				enabled: function () {
					return !!this._enabled;
				},
			})),
		ft =
			((n.addTo = function (t, e) {
				return (t.addHandler(e, this), this);
			}),
			{ Events: e }),
		Ye = b.touch ? "touchstart mousedown" : "mousedown",
		Xe = it.extend({
			options: { clickTolerance: 3 },
			initialize: function (t, e, i, n) {
				(c(this, n), (this._element = t), (this._dragStartTarget = e || t), (this._preventOutline = i));
			},
			enable: function () {
				this._enabled || (S(this._dragStartTarget, Ye, this._onDown, this), (this._enabled = !0));
			},
			disable: function () {
				this._enabled &&
					(Xe._dragging === this && this.finishDrag(!0),
					k(this._dragStartTarget, Ye, this._onDown, this),
					(this._enabled = !1),
					(this._moved = !1));
			},
			_onDown: function (t) {
				var e, i;
				this._enabled &&
					((this._moved = !1),
					ve(this._element, "leaflet-zoom-anim") ||
						(t.touches && 1 !== t.touches.length
							? Xe._dragging === this && this.finishDrag()
							: Xe._dragging ||
								t.shiftKey ||
								(1 !== t.which && 1 !== t.button && !t.touches) ||
								((Xe._dragging = this)._preventOutline && Me(this._element),
								Le(),
								re(),
								this._moving ||
									(this.fire("down"),
									(i = t.touches ? t.touches[0] : t),
									(e = Ce(this._element)),
									(this._startPoint = new p(i.clientX, i.clientY)),
									(this._startPos = Pe(this._element)),
									(this._parentScale = Ze(e)),
									(i = "mousedown" === t.type),
									S(document, i ? "mousemove" : "touchmove", this._onMove, this),
									S(document, i ? "mouseup" : "touchend touchcancel", this._onUp, this)))));
			},
			_onMove: function (t) {
				var e;
				this._enabled &&
					(t.touches && 1 < t.touches.length
						? (this._moved = !0)
						: (!(e = new p(
								(e = t.touches && 1 === t.touches.length ? t.touches[0] : t).clientX,
								e.clientY,
							)._subtract(this._startPoint)).x &&
								!e.y) ||
							Math.abs(e.x) + Math.abs(e.y) < this.options.clickTolerance ||
							((e.x /= this._parentScale.x),
							(e.y /= this._parentScale.y),
							O(t),
							this._moved ||
								(this.fire("dragstart"),
								(this._moved = !0),
								M(document.body, "leaflet-dragging"),
								(this._lastTarget = t.target || t.srcElement),
								window.SVGElementInstance &&
									this._lastTarget instanceof window.SVGElementInstance &&
									(this._lastTarget = this._lastTarget.correspondingUseElement),
								M(this._lastTarget, "leaflet-drag-target")),
							(this._newPos = this._startPos.add(e)),
							(this._moving = !0),
							(this._lastEvent = t),
							this._updatePosition()));
			},
			_updatePosition: function () {
				var t = { originalEvent: this._lastEvent };
				(this.fire("predrag", t), Z(this._element, this._newPos), this.fire("drag", t));
			},
			_onUp: function () {
				this._enabled && this.finishDrag();
			},
			finishDrag: function (t) {
				(z(document.body, "leaflet-dragging"),
					this._lastTarget && (z(this._lastTarget, "leaflet-drag-target"), (this._lastTarget = null)),
					k(document, "mousemove touchmove", this._onMove, this),
					k(document, "mouseup touchend touchcancel", this._onUp, this),
					Te(),
					ae());
				var e = this._moved && this._moving;
				((this._moving = !1),
					(Xe._dragging = !1),
					e && this.fire("dragend", { noInertia: t, distance: this._newPos.distanceTo(this._startPos) }));
			},
		});
	function Je(t, e, i) {
		for (var n, o, s, r, a, h, l, u = [1, 4, 2, 8], c = 0, d = t.length; c < d; c++) t[c]._code = si(t[c], e);
		for (s = 0; s < 4; s++) {
			for (h = u[s], n = [], c = 0, o = (d = t.length) - 1; c < d; o = c++)
				((r = t[c]),
					(a = t[o]),
					r._code & h
						? a._code & h || (((l = oi(a, r, h, e, i))._code = si(l, e)), n.push(l))
						: (a._code & h && (((l = oi(a, r, h, e, i))._code = si(l, e)), n.push(l)), n.push(r)));
			t = n;
		}
		return t;
	}
	function $e(t, e) {
		var i, n, o, s, r, a, h;
		if (!t || 0 === t.length) throw new Error("latlngs not passed");
		I(t) || (console.warn("latlngs are not flat! Only the first ring will be used"), (t = t[0]));
		for (
			var l = w([0, 0]),
				u = g(t),
				c =
					(u.getNorthWest().distanceTo(u.getSouthWest()) * u.getNorthEast().distanceTo(u.getNorthWest()) <
						1700 && (l = Qe(t)),
					t.length),
				d = [],
				_ = 0;
			_ < c;
			_++
		) {
			var p = w(t[_]);
			d.push(e.project(w([p.lat - l.lat, p.lng - l.lng])));
		}
		for (_ = r = a = h = 0, i = c - 1; _ < c; i = _++)
			((n = d[_]),
				(o = d[i]),
				(s = n.y * o.x - o.y * n.x),
				(a += (n.x + o.x) * s),
				(h += (n.y + o.y) * s),
				(r += 3 * s));
		((u = 0 === r ? d[0] : [a / r, h / r]), (u = e.unproject(m(u))));
		return w([u.lat + l.lat, u.lng + l.lng]);
	}
	function Qe(t) {
		for (var e = 0, i = 0, n = 0, o = 0; o < t.length; o++) {
			var s = w(t[o]);
			((e += s.lat), (i += s.lng), n++);
		}
		return w([e / n, i / n]);
	}
	var ti,
		gt = { __proto__: null, clipPolygon: Je, polygonCenter: $e, centroid: Qe };
	function ei(t, e) {
		if (e && t.length) {
			var i = (t = (function (t, e) {
					for (var i = [t[0]], n = 1, o = 0, s = t.length; n < s; n++)
						(function (t, e) {
							var i = e.x - t.x,
								e = e.y - t.y;
							return i * i + e * e;
						})(t[n], t[o]) > e && (i.push(t[n]), (o = n));
					o < s - 1 && i.push(t[s - 1]);
					return i;
				})(t, (e = e * e))),
				n = i.length,
				o = new (typeof Uint8Array != void 0 + "" ? Uint8Array : Array)(n);
			((o[0] = o[n - 1] = 1),
				(function t(e, i, n, o, s) {
					var r,
						a,
						h,
						l = 0;
					for (a = o + 1; a <= s - 1; a++) ((h = ri(e[a], e[o], e[s], !0)), l < h && ((r = a), (l = h)));
					n < l && ((i[r] = 1), t(e, i, n, o, r), t(e, i, n, r, s));
				})(i, o, e, 0, n - 1));
			var s,
				r = [];
			for (s = 0; s < n; s++) o[s] && r.push(i[s]);
			return r;
		}
		return t.slice();
	}
	function ii(t, e, i) {
		return Math.sqrt(ri(t, e, i, !0));
	}
	function ni(t, e, i, n, o) {
		var s,
			r,
			a,
			h = n ? ti : si(t, i),
			l = si(e, i);
		for (ti = l; ; ) {
			if (!(h | l)) return [t, e];
			if (h & l) return !1;
			((a = si((r = oi(t, e, (s = h || l), i, o)), i)), s === h ? ((t = r), (h = a)) : ((e = r), (l = a)));
		}
	}
	function oi(t, e, i, n, o) {
		var s,
			r,
			a = e.x - t.x,
			e = e.y - t.y,
			h = n.min,
			n = n.max;
		return (
			8 & i
				? ((s = t.x + (a * (n.y - t.y)) / e), (r = n.y))
				: 4 & i
					? ((s = t.x + (a * (h.y - t.y)) / e), (r = h.y))
					: 2 & i
						? ((s = n.x), (r = t.y + (e * (n.x - t.x)) / a))
						: 1 & i && ((s = h.x), (r = t.y + (e * (h.x - t.x)) / a)),
			new p(s, r, o)
		);
	}
	function si(t, e) {
		var i = 0;
		return (
			t.x < e.min.x ? (i |= 1) : t.x > e.max.x && (i |= 2),
			t.y < e.min.y ? (i |= 4) : t.y > e.max.y && (i |= 8),
			i
		);
	}
	function ri(t, e, i, n) {
		var o = e.x,
			e = e.y,
			s = i.x - o,
			r = i.y - e,
			a = s * s + r * r;
		return (
			0 < a &&
				(1 < (a = ((t.x - o) * s + (t.y - e) * r) / a)
					? ((o = i.x), (e = i.y))
					: 0 < a && ((o += s * a), (e += r * a))),
			(s = t.x - o),
			(r = t.y - e),
			n ? s * s + r * r : new p(o, e)
		);
	}
	function I(t) {
		return !d(t[0]) || ("object" != typeof t[0][0] && void 0 !== t[0][0]);
	}
	function ai(t) {
		return (console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."), I(t));
	}
	function hi(t, e) {
		var i, n, o, s, r, a;
		if (!t || 0 === t.length) throw new Error("latlngs not passed");
		I(t) || (console.warn("latlngs are not flat! Only the first ring will be used"), (t = t[0]));
		for (
			var h = w([0, 0]),
				l = g(t),
				u =
					(l.getNorthWest().distanceTo(l.getSouthWest()) * l.getNorthEast().distanceTo(l.getNorthWest()) <
						1700 && (h = Qe(t)),
					t.length),
				c = [],
				d = 0;
			d < u;
			d++
		) {
			var _ = w(t[d]);
			c.push(e.project(w([_.lat - h.lat, _.lng - h.lng])));
		}
		for (i = d = 0; d < u - 1; d++) i += c[d].distanceTo(c[d + 1]) / 2;
		if (0 === i) a = c[0];
		else
			for (n = d = 0; d < u - 1; d++)
				if (((o = c[d]), (s = c[d + 1]), i < (n += r = o.distanceTo(s)))) {
					a = [s.x - (r = (n - i) / r) * (s.x - o.x), s.y - r * (s.y - o.y)];
					break;
				}
		l = e.unproject(m(a));
		return w([l.lat + h.lat, l.lng + h.lng]);
	}
	var vt = {
			__proto__: null,
			simplify: ei,
			pointToSegmentDistance: ii,
			closestPointOnSegment: function (t, e, i) {
				return ri(t, e, i);
			},
			clipSegment: ni,
			_getEdgeIntersection: oi,
			_getBitCode: si,
			_sqClosestPointOnSegment: ri,
			isFlat: I,
			_flat: ai,
			polylineCenter: hi,
		},
		yt = {
			project: function (t) {
				return new p(t.lng, t.lat);
			},
			unproject: function (t) {
				return new v(t.y, t.x);
			},
			bounds: new f([-180, -90], [180, 90]),
		},
		xt = {
			R: 6378137,
			R_MINOR: 6356752.314245179,
			bounds: new f([-20037508.34279, -15496570.73972], [20037508.34279, 18764656.23138]),
			project: function (t) {
				var e = Math.PI / 180,
					i = this.R,
					n = t.lat * e,
					o = this.R_MINOR / i,
					o = Math.sqrt(1 - o * o),
					s = o * Math.sin(n),
					s = Math.tan(Math.PI / 4 - n / 2) / Math.pow((1 - s) / (1 + s), o / 2),
					n = -i * Math.log(Math.max(s, 1e-10));
				return new p(t.lng * e * i, n);
			},
			unproject: function (t) {
				for (
					var e,
						i = 180 / Math.PI,
						n = this.R,
						o = this.R_MINOR / n,
						s = Math.sqrt(1 - o * o),
						r = Math.exp(-t.y / n),
						a = Math.PI / 2 - 2 * Math.atan(r),
						h = 0,
						l = 0.1;
					h < 15 && 1e-7 < Math.abs(l);
					h++
				)
					((e = s * Math.sin(a)),
						(e = Math.pow((1 - e) / (1 + e), s / 2)),
						(a += l = Math.PI / 2 - 2 * Math.atan(r * e) - a));
				return new v(a * i, (t.x * i) / n);
			},
		},
		wt = { __proto__: null, LonLat: yt, Mercator: xt, SphericalMercator: rt },
		Pt = l({}, st, {
			code: "EPSG:3395",
			projection: xt,
			transformation: ht((bt = 0.5 / (Math.PI * xt.R)), 0.5, -bt, 0.5),
		}),
		li = l({}, st, { code: "EPSG:4326", projection: yt, transformation: ht(1 / 180, 1, -1 / 180, 0.5) }),
		Lt = l({}, ot, {
			projection: yt,
			transformation: ht(1, 0, -1, 0),
			scale: function (t) {
				return Math.pow(2, t);
			},
			zoom: function (t) {
				return Math.log(t) / Math.LN2;
			},
			distance: function (t, e) {
				var i = e.lng - t.lng,
					e = e.lat - t.lat;
				return Math.sqrt(i * i + e * e);
			},
			infinite: !0,
		}),
		o =
			((ot.Earth = st),
			(ot.EPSG3395 = Pt),
			(ot.EPSG3857 = lt),
			(ot.EPSG900913 = ut),
			(ot.EPSG4326 = li),
			(ot.Simple = Lt),
			it.extend({
				options: { pane: "overlayPane", attribution: null, bubblingMouseEvents: !0 },
				addTo: function (t) {
					return (t.addLayer(this), this);
				},
				remove: function () {
					return this.removeFrom(this._map || this._mapToAdd);
				},
				removeFrom: function (t) {
					return (t && t.removeLayer(this), this);
				},
				getPane: function (t) {
					return this._map.getPane(t ? this.options[t] || t : this.options.pane);
				},
				addInteractiveTarget: function (t) {
					return (this._map._targets[h(t)] = this);
				},
				removeInteractiveTarget: function (t) {
					return (delete this._map._targets[h(t)], this);
				},
				getAttribution: function () {
					return this.options.attribution;
				},
				_layerAdd: function (t) {
					var e,
						i = t.target;
					i.hasLayer(this) &&
						((this._map = i),
						(this._zoomAnimated = i._zoomAnimated),
						this.getEvents &&
							((e = this.getEvents()),
							i.on(e, this),
							this.once(
								"remove",
								function () {
									i.off(e, this);
								},
								this,
							)),
						this.onAdd(i),
						this.fire("add"),
						i.fire("layeradd", { layer: this }));
				},
			})),
		ui =
			(A.include({
				addLayer: function (t) {
					var e;
					if (t._layerAdd)
						return (
							(e = h(t)),
							this._layers[e] ||
								(((this._layers[e] = t)._mapToAdd = this),
								t.beforeAdd && t.beforeAdd(this),
								this.whenReady(t._layerAdd, t)),
							this
						);
					throw new Error("The provided object is not a Layer.");
				},
				removeLayer: function (t) {
					var e = h(t);
					return (
						this._layers[e] &&
							(this._loaded && t.onRemove(this),
							delete this._layers[e],
							this._loaded && (this.fire("layerremove", { layer: t }), t.fire("remove")),
							(t._map = t._mapToAdd = null)),
						this
					);
				},
				hasLayer: function (t) {
					return h(t) in this._layers;
				},
				eachLayer: function (t, e) {
					for (var i in this._layers) t.call(e, this._layers[i]);
					return this;
				},
				_addLayers: function (t) {
					for (var e = 0, i = (t = t ? (d(t) ? t : [t]) : []).length; e < i; e++) this.addLayer(t[e]);
				},
				_addZoomLimit: function (t) {
					(isNaN(t.options.maxZoom) && isNaN(t.options.minZoom)) ||
						((this._zoomBoundLayers[h(t)] = t), this._updateZoomLevels());
				},
				_removeZoomLimit: function (t) {
					t = h(t);
					this._zoomBoundLayers[t] && (delete this._zoomBoundLayers[t], this._updateZoomLevels());
				},
				_updateZoomLevels: function () {
					var t,
						e = 1 / 0,
						i = -1 / 0,
						n = this._getZoomSpan();
					for (t in this._zoomBoundLayers)
						var o = this._zoomBoundLayers[t].options,
							e = void 0 === o.minZoom ? e : Math.min(e, o.minZoom),
							i = void 0 === o.maxZoom ? i : Math.max(i, o.maxZoom);
					((this._layersMaxZoom = i === -1 / 0 ? void 0 : i),
						(this._layersMinZoom = e === 1 / 0 ? void 0 : e),
						n !== this._getZoomSpan() && this.fire("zoomlevelschange"),
						void 0 === this.options.maxZoom &&
							this._layersMaxZoom &&
							this.getZoom() > this._layersMaxZoom &&
							this.setZoom(this._layersMaxZoom),
						void 0 === this.options.minZoom &&
							this._layersMinZoom &&
							this.getZoom() < this._layersMinZoom &&
							this.setZoom(this._layersMinZoom));
				},
			}),
			o.extend({
				initialize: function (t, e) {
					var i, n;
					if ((c(this, e), (this._layers = {}), t)) for (i = 0, n = t.length; i < n; i++) this.addLayer(t[i]);
				},
				addLayer: function (t) {
					var e = this.getLayerId(t);
					return ((this._layers[e] = t), this._map && this._map.addLayer(t), this);
				},
				removeLayer: function (t) {
					t = t in this._layers ? t : this.getLayerId(t);
					return (
						this._map && this._layers[t] && this._map.removeLayer(this._layers[t]),
						delete this._layers[t],
						this
					);
				},
				hasLayer: function (t) {
					return ("number" == typeof t ? t : this.getLayerId(t)) in this._layers;
				},
				clearLayers: function () {
					return this.eachLayer(this.removeLayer, this);
				},
				invoke: function (t) {
					var e,
						i,
						n = Array.prototype.slice.call(arguments, 1);
					for (e in this._layers) (i = this._layers[e])[t] && i[t].apply(i, n);
					return this;
				},
				onAdd: function (t) {
					this.eachLayer(t.addLayer, t);
				},
				onRemove: function (t) {
					this.eachLayer(t.removeLayer, t);
				},
				eachLayer: function (t, e) {
					for (var i in this._layers) t.call(e, this._layers[i]);
					return this;
				},
				getLayer: function (t) {
					return this._layers[t];
				},
				getLayers: function () {
					var t = [];
					return (this.eachLayer(t.push, t), t);
				},
				setZIndex: function (t) {
					return this.invoke("setZIndex", t);
				},
				getLayerId: h,
			})),
		ci = ui.extend({
			addLayer: function (t) {
				return this.hasLayer(t)
					? this
					: (t.addEventParent(this),
						ui.prototype.addLayer.call(this, t),
						this.fire("layeradd", { layer: t }));
			},
			removeLayer: function (t) {
				return this.hasLayer(t)
					? ((t = t in this._layers ? this._layers[t] : t).removeEventParent(this),
						ui.prototype.removeLayer.call(this, t),
						this.fire("layerremove", { layer: t }))
					: this;
			},
			setStyle: function (t) {
				return this.invoke("setStyle", t);
			},
			bringToFront: function () {
				return this.invoke("bringToFront");
			},
			bringToBack: function () {
				return this.invoke("bringToBack");
			},
			getBounds: function () {
				var t,
					e = new s();
				for (t in this._layers) {
					var i = this._layers[t];
					e.extend(i.getBounds ? i.getBounds() : i.getLatLng());
				}
				return e;
			},
		}),
		di = et.extend({
			options: { popupAnchor: [0, 0], tooltipAnchor: [0, 0], crossOrigin: !1 },
			initialize: function (t) {
				c(this, t);
			},
			createIcon: function (t) {
				return this._createIcon("icon", t);
			},
			createShadow: function (t) {
				return this._createIcon("shadow", t);
			},
			_createIcon: function (t, e) {
				var i = this._getIconUrl(t);
				if (i)
					return (
						(i = this._createImg(i, e && "IMG" === e.tagName ? e : null)),
						this._setIconStyles(i, t),
						(!this.options.crossOrigin && "" !== this.options.crossOrigin) ||
							(i.crossOrigin = !0 === this.options.crossOrigin ? "" : this.options.crossOrigin),
						i
					);
				if ("icon" === t) throw new Error("iconUrl not set in Icon options (see the docs).");
				return null;
			},
			_setIconStyles: function (t, e) {
				var i = this.options,
					n = i[e + "Size"],
					n = m((n = "number" == typeof n ? [n, n] : n)),
					o = m(("shadow" === e && i.shadowAnchor) || i.iconAnchor || (n && n.divideBy(2, !0)));
				((t.className = "leaflet-marker-" + e + " " + (i.className || "")),
					o && ((t.style.marginLeft = -o.x + "px"), (t.style.marginTop = -o.y + "px")),
					n && ((t.style.width = n.x + "px"), (t.style.height = n.y + "px")));
			},
			_createImg: function (t, e) {
				return (((e = e || document.createElement("img")).src = t), e);
			},
			_getIconUrl: function (t) {
				return (b.retina && this.options[t + "RetinaUrl"]) || this.options[t + "Url"];
			},
		});
	var _i = di.extend({
			options: {
				iconUrl: "marker-icon.png",
				iconRetinaUrl: "marker-icon-2x.png",
				shadowUrl: "marker-shadow.png",
				iconSize: [25, 41],
				iconAnchor: [12, 41],
				popupAnchor: [1, -34],
				tooltipAnchor: [16, -28],
				shadowSize: [41, 41],
			},
			_getIconUrl: function (t) {
				return (
					"string" != typeof _i.imagePath && (_i.imagePath = this._detectIconPath()),
					(this.options.imagePath || _i.imagePath) + di.prototype._getIconUrl.call(this, t)
				);
			},
			_stripUrl: function (t) {
				function e(t, e, i) {
					return (e = e.exec(t)) && e[i];
				}
				return (t = e(t, /^url\((['"])?(.+)\1\)$/, 2)) && e(t, /^(.*)marker-icon\.png$/, 1);
			},
			_detectIconPath: function () {
				var t = P("div", "leaflet-default-icon-path", document.body),
					e = pe(t, "background-image") || pe(t, "backgroundImage");
				return (
					document.body.removeChild(t),
					(e = this._stripUrl(e))
						? e
						: (t = document.querySelector('link[href$="leaflet.css"]'))
							? t.href.substring(0, t.href.length - "leaflet.css".length - 1)
							: ""
				);
			},
		}),
		pi = n.extend({
			initialize: function (t) {
				this._marker = t;
			},
			addHooks: function () {
				var t = this._marker._icon;
				(this._draggable || (this._draggable = new Xe(t, t, !0)),
					this._draggable
						.on(
							{
								dragstart: this._onDragStart,
								predrag: this._onPreDrag,
								drag: this._onDrag,
								dragend: this._onDragEnd,
							},
							this,
						)
						.enable(),
					M(t, "leaflet-marker-draggable"));
			},
			removeHooks: function () {
				(this._draggable
					.off(
						{
							dragstart: this._onDragStart,
							predrag: this._onPreDrag,
							drag: this._onDrag,
							dragend: this._onDragEnd,
						},
						this,
					)
					.disable(),
					this._marker._icon && z(this._marker._icon, "leaflet-marker-draggable"));
			},
			moved: function () {
				return this._draggable && this._draggable._moved;
			},
			_adjustPan: function (t) {
				var e = this._marker,
					i = e._map,
					n = this._marker.options.autoPanSpeed,
					o = this._marker.options.autoPanPadding,
					s = Pe(e._icon),
					r = i.getPixelBounds(),
					a = i.getPixelOrigin(),
					a = _(r.min._subtract(a).add(o), r.max._subtract(a).subtract(o));
				a.contains(s) ||
					((o = m(
						(Math.max(a.max.x, s.x) - a.max.x) / (r.max.x - a.max.x) -
							(Math.min(a.min.x, s.x) - a.min.x) / (r.min.x - a.min.x),
						(Math.max(a.max.y, s.y) - a.max.y) / (r.max.y - a.max.y) -
							(Math.min(a.min.y, s.y) - a.min.y) / (r.min.y - a.min.y),
					).multiplyBy(n)),
					i.panBy(o, { animate: !1 }),
					this._draggable._newPos._add(o),
					this._draggable._startPos._add(o),
					Z(e._icon, this._draggable._newPos),
					this._onDrag(t),
					(this._panRequest = x(this._adjustPan.bind(this, t))));
			},
			_onDragStart: function () {
				((this._oldLatLng = this._marker.getLatLng()),
					this._marker.closePopup && this._marker.closePopup(),
					this._marker.fire("movestart").fire("dragstart"));
			},
			_onPreDrag: function (t) {
				this._marker.options.autoPan &&
					(r(this._panRequest), (this._panRequest = x(this._adjustPan.bind(this, t))));
			},
			_onDrag: function (t) {
				var e = this._marker,
					i = e._shadow,
					n = Pe(e._icon),
					o = e._map.layerPointToLatLng(n);
				(i && Z(i, n),
					(e._latlng = o),
					(t.latlng = o),
					(t.oldLatLng = this._oldLatLng),
					e.fire("move", t).fire("drag", t));
			},
			_onDragEnd: function (t) {
				(r(this._panRequest), delete this._oldLatLng, this._marker.fire("moveend").fire("dragend", t));
			},
		}),
		mi = o.extend({
			options: {
				icon: new _i(),
				interactive: !0,
				keyboard: !0,
				title: "",
				alt: "Marker",
				zIndexOffset: 0,
				opacity: 1,
				riseOnHover: !1,
				riseOffset: 250,
				pane: "markerPane",
				shadowPane: "shadowPane",
				bubblingMouseEvents: !1,
				autoPanOnFocus: !0,
				draggable: !1,
				autoPan: !1,
				autoPanPadding: [50, 50],
				autoPanSpeed: 10,
			},
			initialize: function (t, e) {
				(c(this, e), (this._latlng = w(t)));
			},
			onAdd: function (t) {
				((this._zoomAnimated = this._zoomAnimated && t.options.markerZoomAnimation),
					this._zoomAnimated && t.on("zoomanim", this._animateZoom, this),
					this._initIcon(),
					this.update());
			},
			onRemove: function (t) {
				(this.dragging &&
					this.dragging.enabled() &&
					((this.options.draggable = !0), this.dragging.removeHooks()),
					delete this.dragging,
					this._zoomAnimated && t.off("zoomanim", this._animateZoom, this),
					this._removeIcon(),
					this._removeShadow());
			},
			getEvents: function () {
				return { zoom: this.update, viewreset: this.update };
			},
			getLatLng: function () {
				return this._latlng;
			},
			setLatLng: function (t) {
				var e = this._latlng;
				return (
					(this._latlng = w(t)),
					this.update(),
					this.fire("move", { oldLatLng: e, latlng: this._latlng })
				);
			},
			setZIndexOffset: function (t) {
				return ((this.options.zIndexOffset = t), this.update());
			},
			getIcon: function () {
				return this.options.icon;
			},
			setIcon: function (t) {
				return (
					(this.options.icon = t),
					this._map && (this._initIcon(), this.update()),
					this._popup && this.bindPopup(this._popup, this._popup.options),
					this
				);
			},
			getElement: function () {
				return this._icon;
			},
			update: function () {
				var t;
				return (
					this._icon &&
						this._map &&
						((t = this._map.latLngToLayerPoint(this._latlng).round()), this._setPos(t)),
					this
				);
			},
			_initIcon: function () {
				var t = this.options,
					e = "leaflet-zoom-" + (this._zoomAnimated ? "animated" : "hide"),
					i = t.icon.createIcon(this._icon),
					n = !1,
					i =
						(i !== this._icon &&
							(this._icon && this._removeIcon(),
							(n = !0),
							t.title && (i.title = t.title),
							"IMG" === i.tagName && (i.alt = t.alt || "")),
						M(i, e),
						t.keyboard && ((i.tabIndex = "0"), i.setAttribute("role", "button")),
						(this._icon = i),
						t.riseOnHover && this.on({ mouseover: this._bringToFront, mouseout: this._resetZIndex }),
						this.options.autoPanOnFocus && S(i, "focus", this._panOnFocus, this),
						t.icon.createShadow(this._shadow)),
					o = !1;
				(i !== this._shadow && (this._removeShadow(), (o = !0)),
					i && (M(i, e), (i.alt = "")),
					(this._shadow = i),
					t.opacity < 1 && this._updateOpacity(),
					n && this.getPane().appendChild(this._icon),
					this._initInteraction(),
					i && o && this.getPane(t.shadowPane).appendChild(this._shadow));
			},
			_removeIcon: function () {
				(this.options.riseOnHover && this.off({ mouseover: this._bringToFront, mouseout: this._resetZIndex }),
					this.options.autoPanOnFocus && k(this._icon, "focus", this._panOnFocus, this),
					T(this._icon),
					this.removeInteractiveTarget(this._icon),
					(this._icon = null));
			},
			_removeShadow: function () {
				(this._shadow && T(this._shadow), (this._shadow = null));
			},
			_setPos: function (t) {
				(this._icon && Z(this._icon, t),
					this._shadow && Z(this._shadow, t),
					(this._zIndex = t.y + this.options.zIndexOffset),
					this._resetZIndex());
			},
			_updateZIndex: function (t) {
				this._icon && (this._icon.style.zIndex = this._zIndex + t);
			},
			_animateZoom: function (t) {
				t = this._map._latLngToNewLayerPoint(this._latlng, t.zoom, t.center).round();
				this._setPos(t);
			},
			_initInteraction: function () {
				var t;
				this.options.interactive &&
					(M(this._icon, "leaflet-interactive"),
					this.addInteractiveTarget(this._icon),
					pi &&
						((t = this.options.draggable),
						this.dragging && ((t = this.dragging.enabled()), this.dragging.disable()),
						(this.dragging = new pi(this)),
						t && this.dragging.enable()));
			},
			setOpacity: function (t) {
				return ((this.options.opacity = t), this._map && this._updateOpacity(), this);
			},
			_updateOpacity: function () {
				var t = this.options.opacity;
				(this._icon && C(this._icon, t), this._shadow && C(this._shadow, t));
			},
			_bringToFront: function () {
				this._updateZIndex(this.options.riseOffset);
			},
			_resetZIndex: function () {
				this._updateZIndex(0);
			},
			_panOnFocus: function () {
				var t,
					e,
					i = this._map;
				i &&
					((t = (e = this.options.icon.options).iconSize ? m(e.iconSize) : m(0, 0)),
					(e = e.iconAnchor ? m(e.iconAnchor) : m(0, 0)),
					i.panInside(this._latlng, { paddingTopLeft: e, paddingBottomRight: t.subtract(e) }));
			},
			_getPopupAnchor: function () {
				return this.options.icon.options.popupAnchor;
			},
			_getTooltipAnchor: function () {
				return this.options.icon.options.tooltipAnchor;
			},
		});
	var fi = o.extend({
			options: {
				stroke: !0,
				color: "#3388ff",
				weight: 3,
				opacity: 1,
				lineCap: "round",
				lineJoin: "round",
				dashArray: null,
				dashOffset: null,
				fill: !1,
				fillColor: null,
				fillOpacity: 0.2,
				fillRule: "evenodd",
				interactive: !0,
				bubblingMouseEvents: !0,
			},
			beforeAdd: function (t) {
				this._renderer = t.getRenderer(this);
			},
			onAdd: function () {
				(this._renderer._initPath(this), this._reset(), this._renderer._addPath(this));
			},
			onRemove: function () {
				this._renderer._removePath(this);
			},
			redraw: function () {
				return (this._map && this._renderer._updatePath(this), this);
			},
			setStyle: function (t) {
				return (
					c(this, t),
					this._renderer &&
						(this._renderer._updateStyle(this),
						this.options.stroke &&
							t &&
							Object.prototype.hasOwnProperty.call(t, "weight") &&
							this._updateBounds()),
					this
				);
			},
			bringToFront: function () {
				return (this._renderer && this._renderer._bringToFront(this), this);
			},
			bringToBack: function () {
				return (this._renderer && this._renderer._bringToBack(this), this);
			},
			getElement: function () {
				return this._path;
			},
			_reset: function () {
				(this._project(), this._update());
			},
			_clickTolerance: function () {
				return (this.options.stroke ? this.options.weight / 2 : 0) + (this._renderer.options.tolerance || 0);
			},
		}),
		gi = fi.extend({
			options: { fill: !0, radius: 10 },
			initialize: function (t, e) {
				(c(this, e), (this._latlng = w(t)), (this._radius = this.options.radius));
			},
			setLatLng: function (t) {
				var e = this._latlng;
				return (
					(this._latlng = w(t)),
					this.redraw(),
					this.fire("move", { oldLatLng: e, latlng: this._latlng })
				);
			},
			getLatLng: function () {
				return this._latlng;
			},
			setRadius: function (t) {
				return ((this.options.radius = this._radius = t), this.redraw());
			},
			getRadius: function () {
				return this._radius;
			},
			setStyle: function (t) {
				var e = (t && t.radius) || this._radius;
				return (fi.prototype.setStyle.call(this, t), this.setRadius(e), this);
			},
			_project: function () {
				((this._point = this._map.latLngToLayerPoint(this._latlng)), this._updateBounds());
			},
			_updateBounds: function () {
				var t = this._radius,
					e = this._radiusY || t,
					i = this._clickTolerance(),
					t = [t + i, e + i];
				this._pxBounds = new f(this._point.subtract(t), this._point.add(t));
			},
			_update: function () {
				this._map && this._updatePath();
			},
			_updatePath: function () {
				this._renderer._updateCircle(this);
			},
			_empty: function () {
				return this._radius && !this._renderer._bounds.intersects(this._pxBounds);
			},
			_containsPoint: function (t) {
				return t.distanceTo(this._point) <= this._radius + this._clickTolerance();
			},
		});
	var vi = gi.extend({
		initialize: function (t, e, i) {
			if (
				(c(this, (e = "number" == typeof e ? l({}, i, { radius: e }) : e)),
				(this._latlng = w(t)),
				isNaN(this.options.radius))
			)
				throw new Error("Circle radius cannot be NaN");
			this._mRadius = this.options.radius;
		},
		setRadius: function (t) {
			return ((this._mRadius = t), this.redraw());
		},
		getRadius: function () {
			return this._mRadius;
		},
		getBounds: function () {
			var t = [this._radius, this._radiusY || this._radius];
			return new s(
				this._map.layerPointToLatLng(this._point.subtract(t)),
				this._map.layerPointToLatLng(this._point.add(t)),
			);
		},
		setStyle: fi.prototype.setStyle,
		_project: function () {
			var t,
				e,
				i,
				n,
				o,
				s = this._latlng.lng,
				r = this._latlng.lat,
				a = this._map,
				h = a.options.crs;
			(h.distance === st.distance
				? ((n = Math.PI / 180),
					(o = this._mRadius / st.R / n),
					(t = a.project([r + o, s])),
					(e = a.project([r - o, s])),
					(e = t.add(e).divideBy(2)),
					(i = a.unproject(e).lat),
					(n =
						Math.acos(
							(Math.cos(o * n) - Math.sin(r * n) * Math.sin(i * n)) / (Math.cos(r * n) * Math.cos(i * n)),
						) / n),
					(!isNaN(n) && 0 !== n) || (n = o / Math.cos((Math.PI / 180) * r)),
					(this._point = e.subtract(a.getPixelOrigin())),
					(this._radius = isNaN(n) ? 0 : e.x - a.project([i, s - n]).x),
					(this._radiusY = e.y - t.y))
				: ((o = h.unproject(h.project(this._latlng).subtract([this._mRadius, 0]))),
					(this._point = a.latLngToLayerPoint(this._latlng)),
					(this._radius = this._point.x - a.latLngToLayerPoint(o).x)),
				this._updateBounds());
		},
	});
	var yi = fi.extend({
		options: { smoothFactor: 1, noClip: !1 },
		initialize: function (t, e) {
			(c(this, e), this._setLatLngs(t));
		},
		getLatLngs: function () {
			return this._latlngs;
		},
		setLatLngs: function (t) {
			return (this._setLatLngs(t), this.redraw());
		},
		isEmpty: function () {
			return !this._latlngs.length;
		},
		closestLayerPoint: function (t) {
			for (var e = 1 / 0, i = null, n = ri, o = 0, s = this._parts.length; o < s; o++)
				for (var r = this._parts[o], a = 1, h = r.length; a < h; a++) {
					var l,
						u,
						c = n(t, (l = r[a - 1]), (u = r[a]), !0);
					c < e && ((e = c), (i = n(t, l, u)));
				}
			return (i && (i.distance = Math.sqrt(e)), i);
		},
		getCenter: function () {
			if (this._map) return hi(this._defaultShape(), this._map.options.crs);
			throw new Error("Must add layer to map before using getCenter()");
		},
		getBounds: function () {
			return this._bounds;
		},
		addLatLng: function (t, e) {
			return ((e = e || this._defaultShape()), (t = w(t)), e.push(t), this._bounds.extend(t), this.redraw());
		},
		_setLatLngs: function (t) {
			((this._bounds = new s()), (this._latlngs = this._convertLatLngs(t)));
		},
		_defaultShape: function () {
			return I(this._latlngs) ? this._latlngs : this._latlngs[0];
		},
		_convertLatLngs: function (t) {
			for (var e = [], i = I(t), n = 0, o = t.length; n < o; n++)
				i ? ((e[n] = w(t[n])), this._bounds.extend(e[n])) : (e[n] = this._convertLatLngs(t[n]));
			return e;
		},
		_project: function () {
			var t = new f();
			((this._rings = []),
				this._projectLatlngs(this._latlngs, this._rings, t),
				this._bounds.isValid() && t.isValid() && ((this._rawPxBounds = t), this._updateBounds()));
		},
		_updateBounds: function () {
			var t = this._clickTolerance(),
				t = new p(t, t);
			this._rawPxBounds &&
				(this._pxBounds = new f([this._rawPxBounds.min.subtract(t), this._rawPxBounds.max.add(t)]));
		},
		_projectLatlngs: function (t, e, i) {
			var n,
				o,
				s = t[0] instanceof v,
				r = t.length;
			if (s) {
				for (o = [], n = 0; n < r; n++) ((o[n] = this._map.latLngToLayerPoint(t[n])), i.extend(o[n]));
				e.push(o);
			} else for (n = 0; n < r; n++) this._projectLatlngs(t[n], e, i);
		},
		_clipPoints: function () {
			var t = this._renderer._bounds;
			if (((this._parts = []), this._pxBounds && this._pxBounds.intersects(t)))
				if (this.options.noClip) this._parts = this._rings;
				else
					for (var e, i, n, o, s = this._parts, r = 0, a = 0, h = this._rings.length; r < h; r++)
						for (e = 0, i = (o = this._rings[r]).length; e < i - 1; e++)
							(n = ni(o[e], o[e + 1], t, e, !0)) &&
								((s[a] = s[a] || []),
								s[a].push(n[0]),
								(n[1] === o[e + 1] && e !== i - 2) || (s[a].push(n[1]), a++));
		},
		_simplifyPoints: function () {
			for (var t = this._parts, e = this.options.smoothFactor, i = 0, n = t.length; i < n; i++)
				t[i] = ei(t[i], e);
		},
		_update: function () {
			this._map && (this._clipPoints(), this._simplifyPoints(), this._updatePath());
		},
		_updatePath: function () {
			this._renderer._updatePoly(this);
		},
		_containsPoint: function (t, e) {
			var i,
				n,
				o,
				s,
				r,
				a,
				h = this._clickTolerance();
			if (this._pxBounds && this._pxBounds.contains(t))
				for (i = 0, s = this._parts.length; i < s; i++)
					for (n = 0, o = (r = (a = this._parts[i]).length) - 1; n < r; o = n++)
						if ((e || 0 !== n) && ii(t, a[o], a[n]) <= h) return !0;
			return !1;
		},
	});
	yi._flat = ai;
	var xi = yi.extend({
		options: { fill: !0 },
		isEmpty: function () {
			return !this._latlngs.length || !this._latlngs[0].length;
		},
		getCenter: function () {
			if (this._map) return $e(this._defaultShape(), this._map.options.crs);
			throw new Error("Must add layer to map before using getCenter()");
		},
		_convertLatLngs: function (t) {
			var t = yi.prototype._convertLatLngs.call(this, t),
				e = t.length;
			return (2 <= e && t[0] instanceof v && t[0].equals(t[e - 1]) && t.pop(), t);
		},
		_setLatLngs: function (t) {
			(yi.prototype._setLatLngs.call(this, t), I(this._latlngs) && (this._latlngs = [this._latlngs]));
		},
		_defaultShape: function () {
			return (I(this._latlngs[0]) ? this._latlngs : this._latlngs[0])[0];
		},
		_clipPoints: function () {
			var t = this._renderer._bounds,
				e = this.options.weight,
				e = new p(e, e),
				t = new f(t.min.subtract(e), t.max.add(e));
			if (((this._parts = []), this._pxBounds && this._pxBounds.intersects(t)))
				if (this.options.noClip) this._parts = this._rings;
				else
					for (var i, n = 0, o = this._rings.length; n < o; n++)
						(i = Je(this._rings[n], t, !0)).length && this._parts.push(i);
		},
		_updatePath: function () {
			this._renderer._updatePoly(this, !0);
		},
		_containsPoint: function (t) {
			var e,
				i,
				n,
				o,
				s,
				r,
				a,
				h,
				l = !1;
			if (!this._pxBounds || !this._pxBounds.contains(t)) return !1;
			for (o = 0, a = this._parts.length; o < a; o++)
				for (s = 0, r = (h = (e = this._parts[o]).length) - 1; s < h; r = s++)
					((i = e[s]),
						(n = e[r]),
						i.y > t.y != n.y > t.y && t.x < ((n.x - i.x) * (t.y - i.y)) / (n.y - i.y) + i.x && (l = !l));
			return l || yi.prototype._containsPoint.call(this, t, !0);
		},
	});
	var wi = ci.extend({
		initialize: function (t, e) {
			(c(this, e), (this._layers = {}), t && this.addData(t));
		},
		addData: function (t) {
			var e,
				i,
				n,
				o = d(t) ? t : t.features;
			if (o) {
				for (e = 0, i = o.length; e < i; e++)
					((n = o[e]).geometries || n.geometry || n.features || n.coordinates) && this.addData(n);
				return this;
			}
			var s,
				r = this.options;
			return (!r.filter || r.filter(t)) && (s = bi(t, r))
				? ((s.feature = Zi(t)),
					(s.defaultOptions = s.options),
					this.resetStyle(s),
					r.onEachFeature && r.onEachFeature(t, s),
					this.addLayer(s))
				: this;
		},
		resetStyle: function (t) {
			return void 0 === t
				? this.eachLayer(this.resetStyle, this)
				: ((t.options = l({}, t.defaultOptions)), this._setLayerStyle(t, this.options.style), this);
		},
		setStyle: function (e) {
			return this.eachLayer(function (t) {
				this._setLayerStyle(t, e);
			}, this);
		},
		_setLayerStyle: function (t, e) {
			t.setStyle && ("function" == typeof e && (e = e(t.feature)), t.setStyle(e));
		},
	});
	function bi(t, e) {
		var i,
			n,
			o,
			s,
			r = "Feature" === t.type ? t.geometry : t,
			a = r ? r.coordinates : null,
			h = [],
			l = e && e.pointToLayer,
			u = (e && e.coordsToLatLng) || Li;
		if (!a && !r) return null;
		switch (r.type) {
			case "Point":
				return Pi(l, t, (i = u(a)), e);
			case "MultiPoint":
				for (o = 0, s = a.length; o < s; o++) ((i = u(a[o])), h.push(Pi(l, t, i, e)));
				return new ci(h);
			case "LineString":
			case "MultiLineString":
				return ((n = Ti(a, "LineString" === r.type ? 0 : 1, u)), new yi(n, e));
			case "Polygon":
			case "MultiPolygon":
				return ((n = Ti(a, "Polygon" === r.type ? 1 : 2, u)), new xi(n, e));
			case "GeometryCollection":
				for (o = 0, s = r.geometries.length; o < s; o++) {
					var c = bi({ geometry: r.geometries[o], type: "Feature", properties: t.properties }, e);
					c && h.push(c);
				}
				return new ci(h);
			case "FeatureCollection":
				for (o = 0, s = r.features.length; o < s; o++) {
					var d = bi(r.features[o], e);
					d && h.push(d);
				}
				return new ci(h);
			default:
				throw new Error("Invalid GeoJSON object.");
		}
	}
	function Pi(t, e, i, n) {
		return t ? t(e, i) : new mi(i, n && n.markersInheritOptions && n);
	}
	function Li(t) {
		return new v(t[1], t[0], t[2]);
	}
	function Ti(t, e, i) {
		for (var n, o = [], s = 0, r = t.length; s < r; s++)
			((n = e ? Ti(t[s], e - 1, i) : (i || Li)(t[s])), o.push(n));
		return o;
	}
	function Mi(t, e) {
		return void 0 !== (t = w(t)).alt ? [i(t.lng, e), i(t.lat, e), i(t.alt, e)] : [i(t.lng, e), i(t.lat, e)];
	}
	function zi(t, e, i, n) {
		for (var o = [], s = 0, r = t.length; s < r; s++) o.push(e ? zi(t[s], I(t[s]) ? 0 : e - 1, i, n) : Mi(t[s], n));
		return (!e && i && 0 < o.length && o.push(o[0].slice()), o);
	}
	function Ci(t, e) {
		return t.feature ? l({}, t.feature, { geometry: e }) : Zi(e);
	}
	function Zi(t) {
		return "Feature" === t.type || "FeatureCollection" === t.type
			? t
			: { type: "Feature", properties: {}, geometry: t };
	}
	Tt = {
		toGeoJSON: function (t) {
			return Ci(this, { type: "Point", coordinates: Mi(this.getLatLng(), t) });
		},
	};
	function Si(t, e) {
		return new wi(t, e);
	}
	(mi.include(Tt),
		vi.include(Tt),
		gi.include(Tt),
		yi.include({
			toGeoJSON: function (t) {
				var e = !I(this._latlngs);
				return Ci(this, {
					type: (e ? "Multi" : "") + "LineString",
					coordinates: zi(this._latlngs, e ? 1 : 0, !1, t),
				});
			},
		}),
		xi.include({
			toGeoJSON: function (t) {
				var e = !I(this._latlngs),
					i = e && !I(this._latlngs[0]),
					t = zi(this._latlngs, i ? 2 : e ? 1 : 0, !0, t);
				return Ci(this, { type: (i ? "Multi" : "") + "Polygon", coordinates: (t = e ? t : [t]) });
			},
		}),
		ui.include({
			toMultiPoint: function (e) {
				var i = [];
				return (
					this.eachLayer(function (t) {
						i.push(t.toGeoJSON(e).geometry.coordinates);
					}),
					Ci(this, { type: "MultiPoint", coordinates: i })
				);
			},
			toGeoJSON: function (e) {
				var i,
					n,
					t = this.feature && this.feature.geometry && this.feature.geometry.type;
				return "MultiPoint" === t
					? this.toMultiPoint(e)
					: ((i = "GeometryCollection" === t),
						(n = []),
						this.eachLayer(function (t) {
							t.toGeoJSON &&
								((t = t.toGeoJSON(e)),
								i
									? n.push(t.geometry)
									: "FeatureCollection" === (t = Zi(t)).type
										? n.push.apply(n, t.features)
										: n.push(t));
						}),
						i
							? Ci(this, { geometries: n, type: "GeometryCollection" })
							: { type: "FeatureCollection", features: n });
			},
		}));
	var Mt = Si,
		Ei = o.extend({
			options: {
				opacity: 1,
				alt: "",
				interactive: !1,
				crossOrigin: !1,
				errorOverlayUrl: "",
				zIndex: 1,
				className: "",
			},
			initialize: function (t, e, i) {
				((this._url = t), (this._bounds = g(e)), c(this, i));
			},
			onAdd: function () {
				(this._image || (this._initImage(), this.options.opacity < 1 && this._updateOpacity()),
					this.options.interactive &&
						(M(this._image, "leaflet-interactive"), this.addInteractiveTarget(this._image)),
					this.getPane().appendChild(this._image),
					this._reset());
			},
			onRemove: function () {
				(T(this._image), this.options.interactive && this.removeInteractiveTarget(this._image));
			},
			setOpacity: function (t) {
				return ((this.options.opacity = t), this._image && this._updateOpacity(), this);
			},
			setStyle: function (t) {
				return (t.opacity && this.setOpacity(t.opacity), this);
			},
			bringToFront: function () {
				return (this._map && fe(this._image), this);
			},
			bringToBack: function () {
				return (this._map && ge(this._image), this);
			},
			setUrl: function (t) {
				return ((this._url = t), this._image && (this._image.src = t), this);
			},
			setBounds: function (t) {
				return ((this._bounds = g(t)), this._map && this._reset(), this);
			},
			getEvents: function () {
				var t = { zoom: this._reset, viewreset: this._reset };
				return (this._zoomAnimated && (t.zoomanim = this._animateZoom), t);
			},
			setZIndex: function (t) {
				return ((this.options.zIndex = t), this._updateZIndex(), this);
			},
			getBounds: function () {
				return this._bounds;
			},
			getElement: function () {
				return this._image;
			},
			_initImage: function () {
				var t = "IMG" === this._url.tagName,
					e = (this._image = t ? this._url : P("img"));
				(M(e, "leaflet-image-layer"),
					this._zoomAnimated && M(e, "leaflet-zoom-animated"),
					this.options.className && M(e, this.options.className),
					(e.onselectstart = u),
					(e.onmousemove = u),
					(e.onload = a(this.fire, this, "load")),
					(e.onerror = a(this._overlayOnError, this, "error")),
					(!this.options.crossOrigin && "" !== this.options.crossOrigin) ||
						(e.crossOrigin = !0 === this.options.crossOrigin ? "" : this.options.crossOrigin),
					this.options.zIndex && this._updateZIndex(),
					t ? (this._url = e.src) : ((e.src = this._url), (e.alt = this.options.alt)));
			},
			_animateZoom: function (t) {
				var e = this._map.getZoomScale(t.zoom),
					t = this._map._latLngBoundsToNewLayerBounds(this._bounds, t.zoom, t.center).min;
				be(this._image, t, e);
			},
			_reset: function () {
				var t = this._image,
					e = new f(
						this._map.latLngToLayerPoint(this._bounds.getNorthWest()),
						this._map.latLngToLayerPoint(this._bounds.getSouthEast()),
					),
					i = e.getSize();
				(Z(t, e.min), (t.style.width = i.x + "px"), (t.style.height = i.y + "px"));
			},
			_updateOpacity: function () {
				C(this._image, this.options.opacity);
			},
			_updateZIndex: function () {
				this._image &&
					void 0 !== this.options.zIndex &&
					null !== this.options.zIndex &&
					(this._image.style.zIndex = this.options.zIndex);
			},
			_overlayOnError: function () {
				this.fire("error");
				var t = this.options.errorOverlayUrl;
				t && this._url !== t && ((this._url = t), (this._image.src = t));
			},
			getCenter: function () {
				return this._bounds.getCenter();
			},
		}),
		ki = Ei.extend({
			options: { autoplay: !0, loop: !0, keepAspectRatio: !0, muted: !1, playsInline: !0 },
			_initImage: function () {
				var t = "VIDEO" === this._url.tagName,
					e = (this._image = t ? this._url : P("video"));
				if (
					(M(e, "leaflet-image-layer"),
					this._zoomAnimated && M(e, "leaflet-zoom-animated"),
					this.options.className && M(e, this.options.className),
					(e.onselectstart = u),
					(e.onmousemove = u),
					(e.onloadeddata = a(this.fire, this, "load")),
					t)
				) {
					for (var i = e.getElementsByTagName("source"), n = [], o = 0; o < i.length; o++) n.push(i[o].src);
					this._url = 0 < i.length ? n : [e.src];
				} else {
					(d(this._url) || (this._url = [this._url]),
						!this.options.keepAspectRatio &&
							Object.prototype.hasOwnProperty.call(e.style, "objectFit") &&
							(e.style.objectFit = "fill"),
						(e.autoplay = !!this.options.autoplay),
						(e.loop = !!this.options.loop),
						(e.muted = !!this.options.muted),
						(e.playsInline = !!this.options.playsInline));
					for (var s = 0; s < this._url.length; s++) {
						var r = P("source");
						((r.src = this._url[s]), e.appendChild(r));
					}
				}
			},
		});
	var Oi = Ei.extend({
		_initImage: function () {
			var t = (this._image = this._url);
			(M(t, "leaflet-image-layer"),
				this._zoomAnimated && M(t, "leaflet-zoom-animated"),
				this.options.className && M(t, this.options.className),
				(t.onselectstart = u),
				(t.onmousemove = u));
		},
	});
	var Ai = o.extend({
			options: { interactive: !1, offset: [0, 0], className: "", pane: void 0, content: "" },
			initialize: function (t, e) {
				(t && (t instanceof v || d(t)) ? ((this._latlng = w(t)), c(this, e)) : (c(this, t), (this._source = e)),
					this.options.content && (this._content = this.options.content));
			},
			openOn: function (t) {
				return ((t = arguments.length ? t : this._source._map).hasLayer(this) || t.addLayer(this), this);
			},
			close: function () {
				return (this._map && this._map.removeLayer(this), this);
			},
			toggle: function (t) {
				return (
					this._map
						? this.close()
						: (arguments.length ? (this._source = t) : (t = this._source),
							this._prepareOpen(),
							this.openOn(t._map)),
					this
				);
			},
			onAdd: function (t) {
				((this._zoomAnimated = t._zoomAnimated),
					this._container || this._initLayout(),
					t._fadeAnimated && C(this._container, 0),
					clearTimeout(this._removeTimeout),
					this.getPane().appendChild(this._container),
					this.update(),
					t._fadeAnimated && C(this._container, 1),
					this.bringToFront(),
					this.options.interactive &&
						(M(this._container, "leaflet-interactive"), this.addInteractiveTarget(this._container)));
			},
			onRemove: function (t) {
				(t._fadeAnimated
					? (C(this._container, 0), (this._removeTimeout = setTimeout(a(T, void 0, this._container), 200)))
					: T(this._container),
					this.options.interactive &&
						(z(this._container, "leaflet-interactive"), this.removeInteractiveTarget(this._container)));
			},
			getLatLng: function () {
				return this._latlng;
			},
			setLatLng: function (t) {
				return ((this._latlng = w(t)), this._map && (this._updatePosition(), this._adjustPan()), this);
			},
			getContent: function () {
				return this._content;
			},
			setContent: function (t) {
				return ((this._content = t), this.update(), this);
			},
			getElement: function () {
				return this._container;
			},
			update: function () {
				this._map &&
					((this._container.style.visibility = "hidden"),
					this._updateContent(),
					this._updateLayout(),
					this._updatePosition(),
					(this._container.style.visibility = ""),
					this._adjustPan());
			},
			getEvents: function () {
				var t = { zoom: this._updatePosition, viewreset: this._updatePosition };
				return (this._zoomAnimated && (t.zoomanim = this._animateZoom), t);
			},
			isOpen: function () {
				return !!this._map && this._map.hasLayer(this);
			},
			bringToFront: function () {
				return (this._map && fe(this._container), this);
			},
			bringToBack: function () {
				return (this._map && ge(this._container), this);
			},
			_prepareOpen: function (t) {
				if (!(i = this._source)._map) return !1;
				if (i instanceof ci) {
					var e,
						i = null,
						n = this._source._layers;
					for (e in n)
						if (n[e]._map) {
							i = n[e];
							break;
						}
					if (!i) return !1;
					this._source = i;
				}
				if (!t)
					if (i.getCenter) t = i.getCenter();
					else if (i.getLatLng) t = i.getLatLng();
					else {
						if (!i.getBounds) throw new Error("Unable to get source layer LatLng.");
						t = i.getBounds().getCenter();
					}
				return (this.setLatLng(t), this._map && this.update(), !0);
			},
			_updateContent: function () {
				if (this._content) {
					var t = this._contentNode,
						e = "function" == typeof this._content ? this._content(this._source || this) : this._content;
					if ("string" == typeof e) t.innerHTML = e;
					else {
						for (; t.hasChildNodes(); ) t.removeChild(t.firstChild);
						t.appendChild(e);
					}
					this.fire("contentupdate");
				}
			},
			_updatePosition: function () {
				var t, e, i;
				this._map &&
					((e = this._map.latLngToLayerPoint(this._latlng)),
					(t = m(this.options.offset)),
					(i = this._getAnchor()),
					this._zoomAnimated ? Z(this._container, e.add(i)) : (t = t.add(e).add(i)),
					(e = this._containerBottom = -t.y),
					(i = this._containerLeft = -Math.round(this._containerWidth / 2) + t.x),
					(this._container.style.bottom = e + "px"),
					(this._container.style.left = i + "px"));
			},
			_getAnchor: function () {
				return [0, 0];
			},
		}),
		Bi =
			(A.include({
				_initOverlay: function (t, e, i, n) {
					var o = e;
					return (o instanceof t || (o = new t(n).setContent(e)), i && o.setLatLng(i), o);
				},
			}),
			o.include({
				_initOverlay: function (t, e, i, n) {
					var o = i;
					return (
						o instanceof t
							? (c(o, n), (o._source = this))
							: (o = e && !n ? e : new t(n, this)).setContent(i),
						o
					);
				},
			}),
			Ai.extend({
				options: {
					pane: "popupPane",
					offset: [0, 7],
					maxWidth: 300,
					minWidth: 50,
					maxHeight: null,
					autoPan: !0,
					autoPanPaddingTopLeft: null,
					autoPanPaddingBottomRight: null,
					autoPanPadding: [5, 5],
					keepInView: !1,
					closeButton: !0,
					autoClose: !0,
					closeOnEscapeKey: !0,
					className: "",
				},
				openOn: function (t) {
					return (
						!(t = arguments.length ? t : this._source._map).hasLayer(this) &&
							t._popup &&
							t._popup.options.autoClose &&
							t.removeLayer(t._popup),
						(t._popup = this),
						Ai.prototype.openOn.call(this, t)
					);
				},
				onAdd: function (t) {
					(Ai.prototype.onAdd.call(this, t),
						t.fire("popupopen", { popup: this }),
						this._source &&
							(this._source.fire("popupopen", { popup: this }, !0),
							this._source instanceof fi || this._source.on("preclick", Ae)));
				},
				onRemove: function (t) {
					(Ai.prototype.onRemove.call(this, t),
						t.fire("popupclose", { popup: this }),
						this._source &&
							(this._source.fire("popupclose", { popup: this }, !0),
							this._source instanceof fi || this._source.off("preclick", Ae)));
				},
				getEvents: function () {
					var t = Ai.prototype.getEvents.call(this);
					return (
						(void 0 !== this.options.closeOnClick
							? this.options.closeOnClick
							: this._map.options.closePopupOnClick) && (t.preclick = this.close),
						this.options.keepInView && (t.moveend = this._adjustPan),
						t
					);
				},
				_initLayout: function () {
					var t = "leaflet-popup",
						e = (this._container = P(
							"div",
							t + " " + (this.options.className || "") + " leaflet-zoom-animated",
						)),
						i = (this._wrapper = P("div", t + "-content-wrapper", e));
					((this._contentNode = P("div", t + "-content", i)),
						Ie(e),
						Be(this._contentNode),
						S(e, "contextmenu", Ae),
						(this._tipContainer = P("div", t + "-tip-container", e)),
						(this._tip = P("div", t + "-tip", this._tipContainer)),
						this.options.closeButton &&
							((i = this._closeButton = P("a", t + "-close-button", e)).setAttribute("role", "button"),
							i.setAttribute("aria-label", "Close popup"),
							(i.href = "#close"),
							(i.innerHTML = '<span aria-hidden="true">&#215;</span>'),
							S(
								i,
								"click",
								function (t) {
									(O(t), this.close());
								},
								this,
							)));
				},
				_updateLayout: function () {
					var t = this._contentNode,
						e = t.style,
						i = ((e.width = ""), (e.whiteSpace = "nowrap"), t.offsetWidth),
						i = Math.min(i, this.options.maxWidth),
						i =
							((i = Math.max(i, this.options.minWidth)),
							(e.width = i + 1 + "px"),
							(e.whiteSpace = ""),
							(e.height = ""),
							t.offsetHeight),
						n = this.options.maxHeight,
						o = "leaflet-popup-scrolled";
					((n && n < i ? ((e.height = n + "px"), M) : z)(t, o),
						(this._containerWidth = this._container.offsetWidth));
				},
				_animateZoom: function (t) {
					var t = this._map._latLngToNewLayerPoint(this._latlng, t.zoom, t.center),
						e = this._getAnchor();
					Z(this._container, t.add(e));
				},
				_adjustPan: function () {
					var t, e, i, n, o, s, r, a;
					this.options.autoPan &&
						(this._map._panAnim && this._map._panAnim.stop(),
						this._autopanning
							? (this._autopanning = !1)
							: ((t = this._map),
								(e = parseInt(pe(this._container, "marginBottom"), 10) || 0),
								(e = this._container.offsetHeight + e),
								(a = this._containerWidth),
								(i = new p(this._containerLeft, -e - this._containerBottom))._add(Pe(this._container)),
								(i = t.layerPointToContainerPoint(i)),
								(o = m(this.options.autoPanPadding)),
								(n = m(this.options.autoPanPaddingTopLeft || o)),
								(o = m(this.options.autoPanPaddingBottomRight || o)),
								(s = t.getSize()),
								(r = 0),
								i.x + a + o.x > s.x && (r = i.x + a - s.x + o.x),
								i.x - r - n.x < (a = 0) && (r = i.x - n.x),
								i.y + e + o.y > s.y && (a = i.y + e - s.y + o.y),
								i.y - a - n.y < 0 && (a = i.y - n.y),
								(r || a) &&
									(this.options.keepInView && (this._autopanning = !0),
									t.fire("autopanstart").panBy([r, a]))));
				},
				_getAnchor: function () {
					return m(this._source && this._source._getPopupAnchor ? this._source._getPopupAnchor() : [0, 0]);
				},
			})),
		Ii =
			(A.mergeOptions({ closePopupOnClick: !0 }),
			A.include({
				openPopup: function (t, e, i) {
					return (this._initOverlay(Bi, t, e, i).openOn(this), this);
				},
				closePopup: function (t) {
					return ((t = arguments.length ? t : this._popup) && t.close(), this);
				},
			}),
			o.include({
				bindPopup: function (t, e) {
					return (
						(this._popup = this._initOverlay(Bi, this._popup, t, e)),
						this._popupHandlersAdded ||
							(this.on({
								click: this._openPopup,
								keypress: this._onKeyPress,
								remove: this.closePopup,
								move: this._movePopup,
							}),
							(this._popupHandlersAdded = !0)),
						this
					);
				},
				unbindPopup: function () {
					return (
						this._popup &&
							(this.off({
								click: this._openPopup,
								keypress: this._onKeyPress,
								remove: this.closePopup,
								move: this._movePopup,
							}),
							(this._popupHandlersAdded = !1),
							(this._popup = null)),
						this
					);
				},
				openPopup: function (t) {
					return (
						this._popup &&
							(this instanceof ci || (this._popup._source = this),
							this._popup._prepareOpen(t || this._latlng) && this._popup.openOn(this._map)),
						this
					);
				},
				closePopup: function () {
					return (this._popup && this._popup.close(), this);
				},
				togglePopup: function () {
					return (this._popup && this._popup.toggle(this), this);
				},
				isPopupOpen: function () {
					return !!this._popup && this._popup.isOpen();
				},
				setPopupContent: function (t) {
					return (this._popup && this._popup.setContent(t), this);
				},
				getPopup: function () {
					return this._popup;
				},
				_openPopup: function (t) {
					var e;
					this._popup &&
						this._map &&
						(Re(t),
						(e = t.layer || t.target),
						this._popup._source !== e || e instanceof fi
							? ((this._popup._source = e), this.openPopup(t.latlng))
							: this._map.hasLayer(this._popup)
								? this.closePopup()
								: this.openPopup(t.latlng));
				},
				_movePopup: function (t) {
					this._popup.setLatLng(t.latlng);
				},
				_onKeyPress: function (t) {
					13 === t.originalEvent.keyCode && this._openPopup(t);
				},
			}),
			Ai.extend({
				options: {
					pane: "tooltipPane",
					offset: [0, 0],
					direction: "auto",
					permanent: !1,
					sticky: !1,
					opacity: 0.9,
				},
				onAdd: function (t) {
					(Ai.prototype.onAdd.call(this, t),
						this.setOpacity(this.options.opacity),
						t.fire("tooltipopen", { tooltip: this }),
						this._source &&
							(this.addEventParent(this._source),
							this._source.fire("tooltipopen", { tooltip: this }, !0)));
				},
				onRemove: function (t) {
					(Ai.prototype.onRemove.call(this, t),
						t.fire("tooltipclose", { tooltip: this }),
						this._source &&
							(this.removeEventParent(this._source),
							this._source.fire("tooltipclose", { tooltip: this }, !0)));
				},
				getEvents: function () {
					var t = Ai.prototype.getEvents.call(this);
					return (this.options.permanent || (t.preclick = this.close), t);
				},
				_initLayout: function () {
					var t =
						"leaflet-tooltip " +
						(this.options.className || "") +
						" leaflet-zoom-" +
						(this._zoomAnimated ? "animated" : "hide");
					((this._contentNode = this._container = P("div", t)),
						this._container.setAttribute("role", "tooltip"),
						this._container.setAttribute("id", "leaflet-tooltip-" + h(this)));
				},
				_updateLayout: function () {},
				_adjustPan: function () {},
				_setPosition: function (t) {
					var e,
						i = this._map,
						n = this._container,
						o = i.latLngToContainerPoint(i.getCenter()),
						i = i.layerPointToContainerPoint(t),
						s = this.options.direction,
						r = n.offsetWidth,
						a = n.offsetHeight,
						h = m(this.options.offset),
						l = this._getAnchor(),
						i =
							"top" === s
								? ((e = r / 2), a)
								: "bottom" === s
									? ((e = r / 2), 0)
									: ((e =
											"center" === s
												? r / 2
												: "right" === s
													? 0
													: "left" === s
														? r
														: i.x < o.x
															? ((s = "right"), 0)
															: ((s = "left"), r + 2 * (h.x + l.x))),
										a / 2);
					((t = t
						.subtract(m(e, i, !0))
						.add(h)
						.add(l)),
						z(n, "leaflet-tooltip-right"),
						z(n, "leaflet-tooltip-left"),
						z(n, "leaflet-tooltip-top"),
						z(n, "leaflet-tooltip-bottom"),
						M(n, "leaflet-tooltip-" + s),
						Z(n, t));
				},
				_updatePosition: function () {
					var t = this._map.latLngToLayerPoint(this._latlng);
					this._setPosition(t);
				},
				setOpacity: function (t) {
					((this.options.opacity = t), this._container && C(this._container, t));
				},
				_animateZoom: function (t) {
					t = this._map._latLngToNewLayerPoint(this._latlng, t.zoom, t.center);
					this._setPosition(t);
				},
				_getAnchor: function () {
					return m(
						this._source && this._source._getTooltipAnchor && !this.options.sticky
							? this._source._getTooltipAnchor()
							: [0, 0],
					);
				},
			})),
		Ri =
			(A.include({
				openTooltip: function (t, e, i) {
					return (this._initOverlay(Ii, t, e, i).openOn(this), this);
				},
				closeTooltip: function (t) {
					return (t.close(), this);
				},
			}),
			o.include({
				bindTooltip: function (t, e) {
					return (
						this._tooltip && this.isTooltipOpen() && this.unbindTooltip(),
						(this._tooltip = this._initOverlay(Ii, this._tooltip, t, e)),
						this._initTooltipInteractions(),
						this._tooltip.options.permanent && this._map && this._map.hasLayer(this) && this.openTooltip(),
						this
					);
				},
				unbindTooltip: function () {
					return (
						this._tooltip &&
							(this._initTooltipInteractions(!0), this.closeTooltip(), (this._tooltip = null)),
						this
					);
				},
				_initTooltipInteractions: function (t) {
					var e, i;
					(!t && this._tooltipHandlersAdded) ||
						((e = t ? "off" : "on"),
						(i = { remove: this.closeTooltip, move: this._moveTooltip }),
						this._tooltip.options.permanent
							? (i.add = this._openTooltip)
							: ((i.mouseover = this._openTooltip),
								(i.mouseout = this.closeTooltip),
								(i.click = this._openTooltip),
								this._map ? this._addFocusListeners() : (i.add = this._addFocusListeners)),
						this._tooltip.options.sticky && (i.mousemove = this._moveTooltip),
						this[e](i),
						(this._tooltipHandlersAdded = !t));
				},
				openTooltip: function (t) {
					return (
						this._tooltip &&
							(this instanceof ci || (this._tooltip._source = this),
							this._tooltip._prepareOpen(t) &&
								(this._tooltip.openOn(this._map),
								this.getElement
									? this._setAriaDescribedByOnLayer(this)
									: this.eachLayer && this.eachLayer(this._setAriaDescribedByOnLayer, this))),
						this
					);
				},
				closeTooltip: function () {
					if (this._tooltip) return this._tooltip.close();
				},
				toggleTooltip: function () {
					return (this._tooltip && this._tooltip.toggle(this), this);
				},
				isTooltipOpen: function () {
					return this._tooltip.isOpen();
				},
				setTooltipContent: function (t) {
					return (this._tooltip && this._tooltip.setContent(t), this);
				},
				getTooltip: function () {
					return this._tooltip;
				},
				_addFocusListeners: function () {
					this.getElement
						? this._addFocusListenersOnLayer(this)
						: this.eachLayer && this.eachLayer(this._addFocusListenersOnLayer, this);
				},
				_addFocusListenersOnLayer: function (t) {
					var e = "function" == typeof t.getElement && t.getElement();
					e &&
						(S(
							e,
							"focus",
							function () {
								((this._tooltip._source = t), this.openTooltip());
							},
							this,
						),
						S(e, "blur", this.closeTooltip, this));
				},
				_setAriaDescribedByOnLayer: function (t) {
					t = "function" == typeof t.getElement && t.getElement();
					t && t.setAttribute("aria-describedby", this._tooltip._container.id);
				},
				_openTooltip: function (t) {
					var e;
					this._tooltip &&
						this._map &&
						(this._map.dragging && this._map.dragging.moving() && !this._openOnceFlag
							? ((this._openOnceFlag = !0),
								(e = this)._map.once("moveend", function () {
									((e._openOnceFlag = !1), e._openTooltip(t));
								}))
							: ((this._tooltip._source = t.layer || t.target),
								this.openTooltip(this._tooltip.options.sticky ? t.latlng : void 0)));
				},
				_moveTooltip: function (t) {
					var e = t.latlng;
					(this._tooltip.options.sticky &&
						t.originalEvent &&
						((t = this._map.mouseEventToContainerPoint(t.originalEvent)),
						(t = this._map.containerPointToLayerPoint(t)),
						(e = this._map.layerPointToLatLng(t))),
						this._tooltip.setLatLng(e));
				},
			}),
			di.extend({
				options: { iconSize: [12, 12], html: !1, bgPos: null, className: "leaflet-div-icon" },
				createIcon: function (t) {
					var t = t && "DIV" === t.tagName ? t : document.createElement("div"),
						e = this.options;
					return (
						e.html instanceof Element
							? (me(t), t.appendChild(e.html))
							: (t.innerHTML = !1 !== e.html ? e.html : ""),
						e.bgPos && ((e = m(e.bgPos)), (t.style.backgroundPosition = -e.x + "px " + -e.y + "px")),
						this._setIconStyles(t, "icon"),
						t
					);
				},
				createShadow: function () {
					return null;
				},
			}));
	di.Default = _i;
	var Ni = o.extend({
		options: {
			tileSize: 256,
			opacity: 1,
			updateWhenIdle: b.mobile,
			updateWhenZooming: !0,
			updateInterval: 200,
			zIndex: 1,
			bounds: null,
			minZoom: 0,
			maxZoom: void 0,
			maxNativeZoom: void 0,
			minNativeZoom: void 0,
			noWrap: !1,
			pane: "tilePane",
			className: "",
			keepBuffer: 2,
		},
		initialize: function (t) {
			c(this, t);
		},
		onAdd: function () {
			(this._initContainer(), (this._levels = {}), (this._tiles = {}), this._resetView());
		},
		beforeAdd: function (t) {
			t._addZoomLimit(this);
		},
		onRemove: function (t) {
			(this._removeAllTiles(),
				T(this._container),
				t._removeZoomLimit(this),
				(this._container = null),
				(this._tileZoom = void 0));
		},
		bringToFront: function () {
			return (this._map && (fe(this._container), this._setAutoZIndex(Math.max)), this);
		},
		bringToBack: function () {
			return (this._map && (ge(this._container), this._setAutoZIndex(Math.min)), this);
		},
		getContainer: function () {
			return this._container;
		},
		setOpacity: function (t) {
			return ((this.options.opacity = t), this._updateOpacity(), this);
		},
		setZIndex: function (t) {
			return ((this.options.zIndex = t), this._updateZIndex(), this);
		},
		isLoading: function () {
			return this._loading;
		},
		redraw: function () {
			var t;
			return (
				this._map &&
					(this._removeAllTiles(),
					(t = this._clampZoom(this._map.getZoom())) !== this._tileZoom &&
						((this._tileZoom = t), this._updateLevels()),
					this._update()),
				this
			);
		},
		getEvents: function () {
			var t = {
				viewprereset: this._invalidateAll,
				viewreset: this._resetView,
				zoom: this._resetView,
				moveend: this._onMoveEnd,
			};
			return (
				this.options.updateWhenIdle ||
					(this._onMove || (this._onMove = j(this._onMoveEnd, this.options.updateInterval, this)),
					(t.move = this._onMove)),
				this._zoomAnimated && (t.zoomanim = this._animateZoom),
				t
			);
		},
		createTile: function () {
			return document.createElement("div");
		},
		getTileSize: function () {
			var t = this.options.tileSize;
			return t instanceof p ? t : new p(t, t);
		},
		_updateZIndex: function () {
			this._container &&
				void 0 !== this.options.zIndex &&
				null !== this.options.zIndex &&
				(this._container.style.zIndex = this.options.zIndex);
		},
		_setAutoZIndex: function (t) {
			for (var e, i = this.getPane().children, n = -t(-1 / 0, 1 / 0), o = 0, s = i.length; o < s; o++)
				((e = i[o].style.zIndex), i[o] !== this._container && e && (n = t(n, +e)));
			isFinite(n) && ((this.options.zIndex = n + t(-1, 1)), this._updateZIndex());
		},
		_updateOpacity: function () {
			if (this._map && !b.ielt9) {
				C(this._container, this.options.opacity);
				var t,
					e = +new Date(),
					i = !1,
					n = !1;
				for (t in this._tiles) {
					var o,
						s = this._tiles[t];
					s.current &&
						s.loaded &&
						((o = Math.min(1, (e - s.loaded) / 200)),
						C(s.el, o),
						o < 1 ? (i = !0) : (s.active ? (n = !0) : this._onOpaqueTile(s), (s.active = !0)));
				}
				(n && !this._noPrune && this._pruneTiles(),
					i && (r(this._fadeFrame), (this._fadeFrame = x(this._updateOpacity, this))));
			}
		},
		_onOpaqueTile: u,
		_initContainer: function () {
			this._container ||
				((this._container = P("div", "leaflet-layer " + (this.options.className || ""))),
				this._updateZIndex(),
				this.options.opacity < 1 && this._updateOpacity(),
				this.getPane().appendChild(this._container));
		},
		_updateLevels: function () {
			var t = this._tileZoom,
				e = this.options.maxZoom;
			if (void 0 !== t) {
				for (var i in this._levels)
					((i = Number(i)),
						this._levels[i].el.children.length || i === t
							? ((this._levels[i].el.style.zIndex = e - Math.abs(t - i)), this._onUpdateLevel(i))
							: (T(this._levels[i].el),
								this._removeTilesAtZoom(i),
								this._onRemoveLevel(i),
								delete this._levels[i]));
				var n = this._levels[t],
					o = this._map;
				return (
					n ||
						(((n = this._levels[t] = {}).el = P(
							"div",
							"leaflet-tile-container leaflet-zoom-animated",
							this._container,
						)),
						(n.el.style.zIndex = e),
						(n.origin = o.project(o.unproject(o.getPixelOrigin()), t).round()),
						(n.zoom = t),
						this._setZoomTransform(n, o.getCenter(), o.getZoom()),
						u(n.el.offsetWidth),
						this._onCreateLevel(n)),
					(this._level = n)
				);
			}
		},
		_onUpdateLevel: u,
		_onRemoveLevel: u,
		_onCreateLevel: u,
		_pruneTiles: function () {
			if (this._map) {
				var t,
					e,
					i,
					n = this._map.getZoom();
				if (n > this.options.maxZoom || n < this.options.minZoom) this._removeAllTiles();
				else {
					for (t in this._tiles) (i = this._tiles[t]).retain = i.current;
					for (t in this._tiles)
						(i = this._tiles[t]).current &&
							!i.active &&
							((e = i.coords),
							this._retainParent(e.x, e.y, e.z, e.z - 5) || this._retainChildren(e.x, e.y, e.z, e.z + 2));
					for (t in this._tiles) this._tiles[t].retain || this._removeTile(t);
				}
			}
		},
		_removeTilesAtZoom: function (t) {
			for (var e in this._tiles) this._tiles[e].coords.z === t && this._removeTile(e);
		},
		_removeAllTiles: function () {
			for (var t in this._tiles) this._removeTile(t);
		},
		_invalidateAll: function () {
			for (var t in this._levels) (T(this._levels[t].el), this._onRemoveLevel(Number(t)), delete this._levels[t]);
			(this._removeAllTiles(), (this._tileZoom = void 0));
		},
		_retainParent: function (t, e, i, n) {
			var t = Math.floor(t / 2),
				e = Math.floor(e / 2),
				i = i - 1,
				o = new p(+t, +e),
				o = ((o.z = i), this._tileCoordsToKey(o)),
				o = this._tiles[o];
			return o && o.active
				? (o.retain = !0)
				: (o && o.loaded && (o.retain = !0), n < i && this._retainParent(t, e, i, n));
		},
		_retainChildren: function (t, e, i, n) {
			for (var o = 2 * t; o < 2 * t + 2; o++)
				for (var s = 2 * e; s < 2 * e + 2; s++) {
					var r = new p(o, s),
						r = ((r.z = i + 1), this._tileCoordsToKey(r)),
						r = this._tiles[r];
					r && r.active
						? (r.retain = !0)
						: (r && r.loaded && (r.retain = !0), i + 1 < n && this._retainChildren(o, s, i + 1, n));
				}
		},
		_resetView: function (t) {
			t = t && (t.pinch || t.flyTo);
			this._setView(this._map.getCenter(), this._map.getZoom(), t, t);
		},
		_animateZoom: function (t) {
			this._setView(t.center, t.zoom, !0, t.noUpdate);
		},
		_clampZoom: function (t) {
			var e = this.options;
			return void 0 !== e.minNativeZoom && t < e.minNativeZoom
				? e.minNativeZoom
				: void 0 !== e.maxNativeZoom && e.maxNativeZoom < t
					? e.maxNativeZoom
					: t;
		},
		_setView: function (t, e, i, n) {
			var o = Math.round(e),
				o =
					(void 0 !== this.options.maxZoom && o > this.options.maxZoom) ||
					(void 0 !== this.options.minZoom && o < this.options.minZoom)
						? void 0
						: this._clampZoom(o),
				s = this.options.updateWhenZooming && o !== this._tileZoom;
			((n && !s) ||
				((this._tileZoom = o),
				this._abortLoading && this._abortLoading(),
				this._updateLevels(),
				this._resetGrid(),
				void 0 !== o && this._update(t),
				i || this._pruneTiles(),
				(this._noPrune = !!i)),
				this._setZoomTransforms(t, e));
		},
		_setZoomTransforms: function (t, e) {
			for (var i in this._levels) this._setZoomTransform(this._levels[i], t, e);
		},
		_setZoomTransform: function (t, e, i) {
			var n = this._map.getZoomScale(i, t.zoom),
				e = t.origin.multiplyBy(n).subtract(this._map._getNewPixelOrigin(e, i)).round();
			b.any3d ? be(t.el, e, n) : Z(t.el, e);
		},
		_resetGrid: function () {
			var t = this._map,
				e = t.options.crs,
				i = (this._tileSize = this.getTileSize()),
				n = this._tileZoom,
				o = this._map.getPixelWorldBounds(this._tileZoom);
			(o && (this._globalTileRange = this._pxBoundsToTileRange(o)),
				(this._wrapX = e.wrapLng &&
					!this.options.noWrap && [
						Math.floor(t.project([0, e.wrapLng[0]], n).x / i.x),
						Math.ceil(t.project([0, e.wrapLng[1]], n).x / i.y),
					]),
				(this._wrapY = e.wrapLat &&
					!this.options.noWrap && [
						Math.floor(t.project([e.wrapLat[0], 0], n).y / i.x),
						Math.ceil(t.project([e.wrapLat[1], 0], n).y / i.y),
					]));
		},
		_onMoveEnd: function () {
			this._map && !this._map._animatingZoom && this._update();
		},
		_getTiledPixelBounds: function (t) {
			var e = this._map,
				i = e._animatingZoom ? Math.max(e._animateToZoom, e.getZoom()) : e.getZoom(),
				i = e.getZoomScale(i, this._tileZoom),
				t = e.project(t, this._tileZoom).floor(),
				e = e.getSize().divideBy(2 * i);
			return new f(t.subtract(e), t.add(e));
		},
		_update: function (t) {
			var e = this._map;
			if (e) {
				var i = this._clampZoom(e.getZoom());
				if ((void 0 === t && (t = e.getCenter()), void 0 !== this._tileZoom)) {
					var n,
						e = this._getTiledPixelBounds(t),
						o = this._pxBoundsToTileRange(e),
						s = o.getCenter(),
						r = [],
						e = this.options.keepBuffer,
						a = new f(o.getBottomLeft().subtract([e, -e]), o.getTopRight().add([e, -e]));
					if (!(isFinite(o.min.x) && isFinite(o.min.y) && isFinite(o.max.x) && isFinite(o.max.y)))
						throw new Error("Attempted to load an infinite number of tiles");
					for (n in this._tiles) {
						var h = this._tiles[n].coords;
						(h.z === this._tileZoom && a.contains(new p(h.x, h.y))) || (this._tiles[n].current = !1);
					}
					if (1 < Math.abs(i - this._tileZoom)) this._setView(t, i);
					else {
						for (var l = o.min.y; l <= o.max.y; l++)
							for (var u = o.min.x; u <= o.max.x; u++) {
								var c,
									d = new p(u, l);
								((d.z = this._tileZoom),
									this._isValidTile(d) &&
										((c = this._tiles[this._tileCoordsToKey(d)]) ? (c.current = !0) : r.push(d)));
							}
						if (
							(r.sort(function (t, e) {
								return t.distanceTo(s) - e.distanceTo(s);
							}),
							0 !== r.length)
						) {
							this._loading || ((this._loading = !0), this.fire("loading"));
							for (var _ = document.createDocumentFragment(), u = 0; u < r.length; u++)
								this._addTile(r[u], _);
							this._level.el.appendChild(_);
						}
					}
				}
			}
		},
		_isValidTile: function (t) {
			var e = this._map.options.crs;
			if (!e.infinite) {
				var i = this._globalTileRange;
				if (
					(!e.wrapLng && (t.x < i.min.x || t.x > i.max.x)) ||
					(!e.wrapLat && (t.y < i.min.y || t.y > i.max.y))
				)
					return !1;
			}
			return !this.options.bounds || ((e = this._tileCoordsToBounds(t)), g(this.options.bounds).overlaps(e));
		},
		_keyToBounds: function (t) {
			return this._tileCoordsToBounds(this._keyToTileCoords(t));
		},
		_tileCoordsToNwSe: function (t) {
			var e = this._map,
				i = this.getTileSize(),
				n = t.scaleBy(i),
				i = n.add(i);
			return [e.unproject(n, t.z), e.unproject(i, t.z)];
		},
		_tileCoordsToBounds: function (t) {
			((t = this._tileCoordsToNwSe(t)), (t = new s(t[0], t[1])));
			return (t = this.options.noWrap ? t : this._map.wrapLatLngBounds(t));
		},
		_tileCoordsToKey: function (t) {
			return t.x + ":" + t.y + ":" + t.z;
		},
		_keyToTileCoords: function (t) {
			var t = t.split(":"),
				e = new p(+t[0], +t[1]);
			return ((e.z = +t[2]), e);
		},
		_removeTile: function (t) {
			var e = this._tiles[t];
			e &&
				(T(e.el),
				delete this._tiles[t],
				this.fire("tileunload", { tile: e.el, coords: this._keyToTileCoords(t) }));
		},
		_initTile: function (t) {
			M(t, "leaflet-tile");
			var e = this.getTileSize();
			((t.style.width = e.x + "px"),
				(t.style.height = e.y + "px"),
				(t.onselectstart = u),
				(t.onmousemove = u),
				b.ielt9 && this.options.opacity < 1 && C(t, this.options.opacity));
		},
		_addTile: function (t, e) {
			var i = this._getTilePos(t),
				n = this._tileCoordsToKey(t),
				o = this.createTile(this._wrapCoords(t), a(this._tileReady, this, t));
			(this._initTile(o),
				this.createTile.length < 2 && x(a(this._tileReady, this, t, null, o)),
				Z(o, i),
				(this._tiles[n] = { el: o, coords: t, current: !0 }),
				e.appendChild(o),
				this.fire("tileloadstart", { tile: o, coords: t }));
		},
		_tileReady: function (t, e, i) {
			e && this.fire("tileerror", { error: e, tile: i, coords: t });
			var n = this._tileCoordsToKey(t);
			(i = this._tiles[n]) &&
				((i.loaded = +new Date()),
				this._map._fadeAnimated
					? (C(i.el, 0), r(this._fadeFrame), (this._fadeFrame = x(this._updateOpacity, this)))
					: ((i.active = !0), this._pruneTiles()),
				e || (M(i.el, "leaflet-tile-loaded"), this.fire("tileload", { tile: i.el, coords: t })),
				this._noTilesToLoad() &&
					((this._loading = !1),
					this.fire("load"),
					b.ielt9 || !this._map._fadeAnimated
						? x(this._pruneTiles, this)
						: setTimeout(a(this._pruneTiles, this), 250)));
		},
		_getTilePos: function (t) {
			return t.scaleBy(this.getTileSize()).subtract(this._level.origin);
		},
		_wrapCoords: function (t) {
			var e = new p(this._wrapX ? H(t.x, this._wrapX) : t.x, this._wrapY ? H(t.y, this._wrapY) : t.y);
			return ((e.z = t.z), e);
		},
		_pxBoundsToTileRange: function (t) {
			var e = this.getTileSize();
			return new f(t.min.unscaleBy(e).floor(), t.max.unscaleBy(e).ceil().subtract([1, 1]));
		},
		_noTilesToLoad: function () {
			for (var t in this._tiles) if (!this._tiles[t].loaded) return !1;
			return !0;
		},
	});
	var Di = Ni.extend({
		options: {
			minZoom: 0,
			maxZoom: 18,
			subdomains: "abc",
			errorTileUrl: "",
			zoomOffset: 0,
			tms: !1,
			zoomReverse: !1,
			detectRetina: !1,
			crossOrigin: !1,
			referrerPolicy: !1,
		},
		initialize: function (t, e) {
			((this._url = t),
				(e = c(this, e)).detectRetina && b.retina && 0 < e.maxZoom
					? ((e.tileSize = Math.floor(e.tileSize / 2)),
						e.zoomReverse
							? (e.zoomOffset--, (e.minZoom = Math.min(e.maxZoom, e.minZoom + 1)))
							: (e.zoomOffset++, (e.maxZoom = Math.max(e.minZoom, e.maxZoom - 1))),
						(e.minZoom = Math.max(0, e.minZoom)))
					: e.zoomReverse
						? (e.minZoom = Math.min(e.maxZoom, e.minZoom))
						: (e.maxZoom = Math.max(e.minZoom, e.maxZoom)),
				"string" == typeof e.subdomains && (e.subdomains = e.subdomains.split("")),
				this.on("tileunload", this._onTileRemove));
		},
		setUrl: function (t, e) {
			return (this._url === t && void 0 === e && (e = !0), (this._url = t), e || this.redraw(), this);
		},
		createTile: function (t, e) {
			var i = document.createElement("img");
			return (
				S(i, "load", a(this._tileOnLoad, this, e, i)),
				S(i, "error", a(this._tileOnError, this, e, i)),
				(!this.options.crossOrigin && "" !== this.options.crossOrigin) ||
					(i.crossOrigin = !0 === this.options.crossOrigin ? "" : this.options.crossOrigin),
				"string" == typeof this.options.referrerPolicy && (i.referrerPolicy = this.options.referrerPolicy),
				(i.alt = ""),
				(i.src = this.getTileUrl(t)),
				i
			);
		},
		getTileUrl: function (t) {
			var e = { r: b.retina ? "@2x" : "", s: this._getSubdomain(t), x: t.x, y: t.y, z: this._getZoomForUrl() };
			return (
				this._map &&
					!this._map.options.crs.infinite &&
					((t = this._globalTileRange.max.y - t.y), this.options.tms && (e.y = t), (e["-y"] = t)),
				q(this._url, l(e, this.options))
			);
		},
		_tileOnLoad: function (t, e) {
			b.ielt9 ? setTimeout(a(t, this, null, e), 0) : t(null, e);
		},
		_tileOnError: function (t, e, i) {
			var n = this.options.errorTileUrl;
			(n && e.getAttribute("src") !== n && (e.src = n), t(i, e));
		},
		_onTileRemove: function (t) {
			t.tile.onload = null;
		},
		_getZoomForUrl: function () {
			var t = this._tileZoom,
				e = this.options.maxZoom;
			return (t = this.options.zoomReverse ? e - t : t) + this.options.zoomOffset;
		},
		_getSubdomain: function (t) {
			t = Math.abs(t.x + t.y) % this.options.subdomains.length;
			return this.options.subdomains[t];
		},
		_abortLoading: function () {
			var t, e, i;
			for (t in this._tiles)
				this._tiles[t].coords.z !== this._tileZoom &&
					(((i = this._tiles[t].el).onload = u),
					(i.onerror = u),
					i.complete ||
						((i.src = K),
						(e = this._tiles[t].coords),
						T(i),
						delete this._tiles[t],
						this.fire("tileabort", { tile: i, coords: e })));
		},
		_removeTile: function (t) {
			var e = this._tiles[t];
			if (e) return (e.el.setAttribute("src", K), Ni.prototype._removeTile.call(this, t));
		},
		_tileReady: function (t, e, i) {
			if (this._map && (!i || i.getAttribute("src") !== K)) return Ni.prototype._tileReady.call(this, t, e, i);
		},
	});
	function ji(t, e) {
		return new Di(t, e);
	}
	var Hi = Di.extend({
		defaultWmsParams: {
			service: "WMS",
			request: "GetMap",
			layers: "",
			styles: "",
			format: "image/jpeg",
			transparent: !1,
			version: "1.1.1",
		},
		options: { crs: null, uppercase: !1 },
		initialize: function (t, e) {
			this._url = t;
			var i,
				n = l({}, this.defaultWmsParams);
			for (i in e) i in this.options || (n[i] = e[i]);
			var t = (e = c(this, e)).detectRetina && b.retina ? 2 : 1,
				o = this.getTileSize();
			((n.width = o.x * t), (n.height = o.y * t), (this.wmsParams = n));
		},
		onAdd: function (t) {
			((this._crs = this.options.crs || t.options.crs), (this._wmsVersion = parseFloat(this.wmsParams.version)));
			var e = 1.3 <= this._wmsVersion ? "crs" : "srs";
			((this.wmsParams[e] = this._crs.code), Di.prototype.onAdd.call(this, t));
		},
		getTileUrl: function (t) {
			var e = this._tileCoordsToNwSe(t),
				i = this._crs,
				i = _(i.project(e[0]), i.project(e[1])),
				e = i.min,
				i = i.max,
				e = (1.3 <= this._wmsVersion && this._crs === li ? [e.y, e.x, i.y, i.x] : [e.x, e.y, i.x, i.y]).join(
					",",
				),
				i = Di.prototype.getTileUrl.call(this, t);
			return (
				i + U(this.wmsParams, i, this.options.uppercase) + (this.options.uppercase ? "&BBOX=" : "&bbox=") + e
			);
		},
		setParams: function (t, e) {
			return (l(this.wmsParams, t), e || this.redraw(), this);
		},
	});
	((Di.WMS = Hi),
		(ji.wms = function (t, e) {
			return new Hi(t, e);
		}));
	var Wi = o.extend({
			options: { padding: 0.1 },
			initialize: function (t) {
				(c(this, t), h(this), (this._layers = this._layers || {}));
			},
			onAdd: function () {
				(this._container || (this._initContainer(), M(this._container, "leaflet-zoom-animated")),
					this.getPane().appendChild(this._container),
					this._update(),
					this.on("update", this._updatePaths, this));
			},
			onRemove: function () {
				(this.off("update", this._updatePaths, this), this._destroyContainer());
			},
			getEvents: function () {
				var t = { viewreset: this._reset, zoom: this._onZoom, moveend: this._update, zoomend: this._onZoomEnd };
				return (this._zoomAnimated && (t.zoomanim = this._onAnimZoom), t);
			},
			_onAnimZoom: function (t) {
				this._updateTransform(t.center, t.zoom);
			},
			_onZoom: function () {
				this._updateTransform(this._map.getCenter(), this._map.getZoom());
			},
			_updateTransform: function (t, e) {
				var i = this._map.getZoomScale(e, this._zoom),
					n = this._map.getSize().multiplyBy(0.5 + this.options.padding),
					o = this._map.project(this._center, e),
					n = n.multiplyBy(-i).add(o).subtract(this._map._getNewPixelOrigin(t, e));
				b.any3d ? be(this._container, n, i) : Z(this._container, n);
			},
			_reset: function () {
				for (var t in (this._update(), this._updateTransform(this._center, this._zoom), this._layers))
					this._layers[t]._reset();
			},
			_onZoomEnd: function () {
				for (var t in this._layers) this._layers[t]._project();
			},
			_updatePaths: function () {
				for (var t in this._layers) this._layers[t]._update();
			},
			_update: function () {
				var t = this.options.padding,
					e = this._map.getSize(),
					i = this._map.containerPointToLayerPoint(e.multiplyBy(-t)).round();
				((this._bounds = new f(i, i.add(e.multiplyBy(1 + 2 * t)).round())),
					(this._center = this._map.getCenter()),
					(this._zoom = this._map.getZoom()));
			},
		}),
		Fi = Wi.extend({
			options: { tolerance: 0 },
			getEvents: function () {
				var t = Wi.prototype.getEvents.call(this);
				return ((t.viewprereset = this._onViewPreReset), t);
			},
			_onViewPreReset: function () {
				this._postponeUpdatePaths = !0;
			},
			onAdd: function () {
				(Wi.prototype.onAdd.call(this), this._draw());
			},
			_initContainer: function () {
				var t = (this._container = document.createElement("canvas"));
				(S(t, "mousemove", this._onMouseMove, this),
					S(t, "click dblclick mousedown mouseup contextmenu", this._onClick, this),
					S(t, "mouseout", this._handleMouseOut, this),
					(t._leaflet_disable_events = !0),
					(this._ctx = t.getContext("2d")));
			},
			_destroyContainer: function () {
				(r(this._redrawRequest),
					delete this._ctx,
					T(this._container),
					k(this._container),
					delete this._container);
			},
			_updatePaths: function () {
				if (!this._postponeUpdatePaths) {
					for (var t in ((this._redrawBounds = null), this._layers)) this._layers[t]._update();
					this._redraw();
				}
			},
			_update: function () {
				var t, e, i, n;
				(this._map._animatingZoom && this._bounds) ||
					(Wi.prototype._update.call(this),
					(t = this._bounds),
					(e = this._container),
					(i = t.getSize()),
					(n = b.retina ? 2 : 1),
					Z(e, t.min),
					(e.width = n * i.x),
					(e.height = n * i.y),
					(e.style.width = i.x + "px"),
					(e.style.height = i.y + "px"),
					b.retina && this._ctx.scale(2, 2),
					this._ctx.translate(-t.min.x, -t.min.y),
					this.fire("update"));
			},
			_reset: function () {
				(Wi.prototype._reset.call(this),
					this._postponeUpdatePaths && ((this._postponeUpdatePaths = !1), this._updatePaths()));
			},
			_initPath: function (t) {
				this._updateDashArray(t);
				t = (this._layers[h(t)] = t)._order = { layer: t, prev: this._drawLast, next: null };
				(this._drawLast && (this._drawLast.next = t),
					(this._drawLast = t),
					(this._drawFirst = this._drawFirst || this._drawLast));
			},
			_addPath: function (t) {
				this._requestRedraw(t);
			},
			_removePath: function (t) {
				var e = t._order,
					i = e.next,
					e = e.prev;
				(i ? (i.prev = e) : (this._drawLast = e),
					e ? (e.next = i) : (this._drawFirst = i),
					delete t._order,
					delete this._layers[h(t)],
					this._requestRedraw(t));
			},
			_updatePath: function (t) {
				(this._extendRedrawBounds(t), t._project(), t._update(), this._requestRedraw(t));
			},
			_updateStyle: function (t) {
				(this._updateDashArray(t), this._requestRedraw(t));
			},
			_updateDashArray: function (t) {
				if ("string" == typeof t.options.dashArray) {
					for (var e, i = t.options.dashArray.split(/[, ]+/), n = [], o = 0; o < i.length; o++) {
						if (((e = Number(i[o])), isNaN(e))) return;
						n.push(e);
					}
					t.options._dashArray = n;
				} else t.options._dashArray = t.options.dashArray;
			},
			_requestRedraw: function (t) {
				this._map &&
					(this._extendRedrawBounds(t), (this._redrawRequest = this._redrawRequest || x(this._redraw, this)));
			},
			_extendRedrawBounds: function (t) {
				var e;
				t._pxBounds &&
					((e = (t.options.weight || 0) + 1),
					(this._redrawBounds = this._redrawBounds || new f()),
					this._redrawBounds.extend(t._pxBounds.min.subtract([e, e])),
					this._redrawBounds.extend(t._pxBounds.max.add([e, e])));
			},
			_redraw: function () {
				((this._redrawRequest = null),
					this._redrawBounds && (this._redrawBounds.min._floor(), this._redrawBounds.max._ceil()),
					this._clear(),
					this._draw(),
					(this._redrawBounds = null));
			},
			_clear: function () {
				var t,
					e = this._redrawBounds;
				e
					? ((t = e.getSize()), this._ctx.clearRect(e.min.x, e.min.y, t.x, t.y))
					: (this._ctx.save(),
						this._ctx.setTransform(1, 0, 0, 1, 0, 0),
						this._ctx.clearRect(0, 0, this._container.width, this._container.height),
						this._ctx.restore());
			},
			_draw: function () {
				var t,
					e,
					i = this._redrawBounds;
				(this._ctx.save(),
					i &&
						((e = i.getSize()),
						this._ctx.beginPath(),
						this._ctx.rect(i.min.x, i.min.y, e.x, e.y),
						this._ctx.clip()),
					(this._drawing = !0));
				for (var n = this._drawFirst; n; n = n.next)
					((t = n.layer), (!i || (t._pxBounds && t._pxBounds.intersects(i))) && t._updatePath());
				((this._drawing = !1), this._ctx.restore());
			},
			_updatePoly: function (t, e) {
				if (this._drawing) {
					var i,
						n,
						o,
						s,
						r = t._parts,
						a = r.length,
						h = this._ctx;
					if (a) {
						for (h.beginPath(), i = 0; i < a; i++) {
							for (n = 0, o = r[i].length; n < o; n++)
								((s = r[i][n]), h[n ? "lineTo" : "moveTo"](s.x, s.y));
							e && h.closePath();
						}
						this._fillStroke(h, t);
					}
				}
			},
			_updateCircle: function (t) {
				var e, i, n, o;
				this._drawing &&
					!t._empty() &&
					((e = t._point),
					(i = this._ctx),
					(n = Math.max(Math.round(t._radius), 1)),
					1 != (o = (Math.max(Math.round(t._radiusY), 1) || n) / n) && (i.save(), i.scale(1, o)),
					i.beginPath(),
					i.arc(e.x, e.y / o, n, 0, 2 * Math.PI, !1),
					1 != o && i.restore(),
					this._fillStroke(i, t));
			},
			_fillStroke: function (t, e) {
				var i = e.options;
				(i.fill &&
					((t.globalAlpha = i.fillOpacity),
					(t.fillStyle = i.fillColor || i.color),
					t.fill(i.fillRule || "evenodd")),
					i.stroke &&
						0 !== i.weight &&
						(t.setLineDash && t.setLineDash((e.options && e.options._dashArray) || []),
						(t.globalAlpha = i.opacity),
						(t.lineWidth = i.weight),
						(t.strokeStyle = i.color),
						(t.lineCap = i.lineCap),
						(t.lineJoin = i.lineJoin),
						t.stroke()));
			},
			_onClick: function (t) {
				for (var e, i, n = this._map.mouseEventToLayerPoint(t), o = this._drawFirst; o; o = o.next)
					(e = o.layer).options.interactive &&
						e._containsPoint(n) &&
						((("click" === t.type || "preclick" === t.type) && this._map._draggableMoved(e)) || (i = e));
				this._fireEvent(!!i && [i], t);
			},
			_onMouseMove: function (t) {
				var e;
				!this._map ||
					this._map.dragging.moving() ||
					this._map._animatingZoom ||
					((e = this._map.mouseEventToLayerPoint(t)), this._handleMouseHover(t, e));
			},
			_handleMouseOut: function (t) {
				var e = this._hoveredLayer;
				e &&
					(z(this._container, "leaflet-interactive"),
					this._fireEvent([e], t, "mouseout"),
					(this._hoveredLayer = null),
					(this._mouseHoverThrottled = !1));
			},
			_handleMouseHover: function (t, e) {
				if (!this._mouseHoverThrottled) {
					for (var i, n, o = this._drawFirst; o; o = o.next)
						(i = o.layer).options.interactive && i._containsPoint(e) && (n = i);
					(n !== this._hoveredLayer &&
						(this._handleMouseOut(t),
						n &&
							(M(this._container, "leaflet-interactive"),
							this._fireEvent([n], t, "mouseover"),
							(this._hoveredLayer = n))),
						this._fireEvent(!!this._hoveredLayer && [this._hoveredLayer], t),
						(this._mouseHoverThrottled = !0),
						setTimeout(
							a(function () {
								this._mouseHoverThrottled = !1;
							}, this),
							32,
						));
				}
			},
			_fireEvent: function (t, e, i) {
				this._map._fireDOMEvent(e, i || e.type, t);
			},
			_bringToFront: function (t) {
				var e,
					i,
					n = t._order;
				n &&
					((e = n.next),
					(i = n.prev),
					e &&
						((e.prev = i) ? (i.next = e) : e && (this._drawFirst = e),
						(n.prev = this._drawLast),
						((this._drawLast.next = n).next = null),
						(this._drawLast = n),
						this._requestRedraw(t)));
			},
			_bringToBack: function (t) {
				var e,
					i,
					n = t._order;
				n &&
					((e = n.next),
					(i = n.prev) &&
						((i.next = e) ? (e.prev = i) : i && (this._drawLast = i),
						(n.prev = null),
						(n.next = this._drawFirst),
						(this._drawFirst.prev = n),
						(this._drawFirst = n),
						this._requestRedraw(t)));
			},
		});
	function Ui(t) {
		return b.canvas ? new Fi(t) : null;
	}
	var Vi = (function () {
			try {
				return (
					document.namespaces.add("lvml", "urn:schemas-microsoft-com:vml"),
					function (t) {
						return document.createElement("<lvml:" + t + ' class="lvml">');
					}
				);
			} catch (t) {}
			return function (t) {
				return document.createElement("<" + t + ' xmlns="urn:schemas-microsoft.com:vml" class="lvml">');
			};
		})(),
		zt = {
			_initContainer: function () {
				this._container = P("div", "leaflet-vml-container");
			},
			_update: function () {
				this._map._animatingZoom || (Wi.prototype._update.call(this), this.fire("update"));
			},
			_initPath: function (t) {
				var e = (t._container = Vi("shape"));
				(M(e, "leaflet-vml-shape " + (this.options.className || "")),
					(e.coordsize = "1 1"),
					(t._path = Vi("path")),
					e.appendChild(t._path),
					this._updateStyle(t),
					(this._layers[h(t)] = t));
			},
			_addPath: function (t) {
				var e = t._container;
				(this._container.appendChild(e), t.options.interactive && t.addInteractiveTarget(e));
			},
			_removePath: function (t) {
				var e = t._container;
				(T(e), t.removeInteractiveTarget(e), delete this._layers[h(t)]);
			},
			_updateStyle: function (t) {
				var e = t._stroke,
					i = t._fill,
					n = t.options,
					o = t._container;
				((o.stroked = !!n.stroke),
					(o.filled = !!n.fill),
					n.stroke
						? ((e = e || (t._stroke = Vi("stroke"))),
							o.appendChild(e),
							(e.weight = n.weight + "px"),
							(e.color = n.color),
							(e.opacity = n.opacity),
							n.dashArray
								? (e.dashStyle = d(n.dashArray)
										? n.dashArray.join(" ")
										: n.dashArray.replace(/( *, *)/g, " "))
								: (e.dashStyle = ""),
							(e.endcap = n.lineCap.replace("butt", "flat")),
							(e.joinstyle = n.lineJoin))
						: e && (o.removeChild(e), (t._stroke = null)),
					n.fill
						? ((i = i || (t._fill = Vi("fill"))),
							o.appendChild(i),
							(i.color = n.fillColor || n.color),
							(i.opacity = n.fillOpacity))
						: i && (o.removeChild(i), (t._fill = null)));
			},
			_updateCircle: function (t) {
				var e = t._point.round(),
					i = Math.round(t._radius),
					n = Math.round(t._radiusY || i);
				this._setPath(t, t._empty() ? "M0 0" : "AL " + e.x + "," + e.y + " " + i + "," + n + " 0,23592600");
			},
			_setPath: function (t, e) {
				t._path.v = e;
			},
			_bringToFront: function (t) {
				fe(t._container);
			},
			_bringToBack: function (t) {
				ge(t._container);
			},
		},
		qi = b.vml ? Vi : ct,
		Gi = Wi.extend({
			_initContainer: function () {
				((this._container = qi("svg")),
					this._container.setAttribute("pointer-events", "none"),
					(this._rootGroup = qi("g")),
					this._container.appendChild(this._rootGroup));
			},
			_destroyContainer: function () {
				(T(this._container),
					k(this._container),
					delete this._container,
					delete this._rootGroup,
					delete this._svgSize);
			},
			_update: function () {
				var t, e, i;
				(this._map._animatingZoom && this._bounds) ||
					(Wi.prototype._update.call(this),
					(e = (t = this._bounds).getSize()),
					(i = this._container),
					(this._svgSize && this._svgSize.equals(e)) ||
						((this._svgSize = e), i.setAttribute("width", e.x), i.setAttribute("height", e.y)),
					Z(i, t.min),
					i.setAttribute("viewBox", [t.min.x, t.min.y, e.x, e.y].join(" ")),
					this.fire("update"));
			},
			_initPath: function (t) {
				var e = (t._path = qi("path"));
				(t.options.className && M(e, t.options.className),
					t.options.interactive && M(e, "leaflet-interactive"),
					this._updateStyle(t),
					(this._layers[h(t)] = t));
			},
			_addPath: function (t) {
				(this._rootGroup || this._initContainer(),
					this._rootGroup.appendChild(t._path),
					t.addInteractiveTarget(t._path));
			},
			_removePath: function (t) {
				(T(t._path), t.removeInteractiveTarget(t._path), delete this._layers[h(t)]);
			},
			_updatePath: function (t) {
				(t._project(), t._update());
			},
			_updateStyle: function (t) {
				var e = t._path,
					t = t.options;
				e &&
					(t.stroke
						? (e.setAttribute("stroke", t.color),
							e.setAttribute("stroke-opacity", t.opacity),
							e.setAttribute("stroke-width", t.weight),
							e.setAttribute("stroke-linecap", t.lineCap),
							e.setAttribute("stroke-linejoin", t.lineJoin),
							t.dashArray
								? e.setAttribute("stroke-dasharray", t.dashArray)
								: e.removeAttribute("stroke-dasharray"),
							t.dashOffset
								? e.setAttribute("stroke-dashoffset", t.dashOffset)
								: e.removeAttribute("stroke-dashoffset"))
						: e.setAttribute("stroke", "none"),
					t.fill
						? (e.setAttribute("fill", t.fillColor || t.color),
							e.setAttribute("fill-opacity", t.fillOpacity),
							e.setAttribute("fill-rule", t.fillRule || "evenodd"))
						: e.setAttribute("fill", "none"));
			},
			_updatePoly: function (t, e) {
				this._setPath(t, dt(t._parts, e));
			},
			_updateCircle: function (t) {
				var e = t._point,
					i = Math.max(Math.round(t._radius), 1),
					n = "a" + i + "," + (Math.max(Math.round(t._radiusY), 1) || i) + " 0 1,0 ",
					e = t._empty() ? "M0 0" : "M" + (e.x - i) + "," + e.y + n + 2 * i + ",0 " + n + 2 * -i + ",0 ";
				this._setPath(t, e);
			},
			_setPath: function (t, e) {
				t._path.setAttribute("d", e);
			},
			_bringToFront: function (t) {
				fe(t._path);
			},
			_bringToBack: function (t) {
				ge(t._path);
			},
		});
	function Ki(t) {
		return b.svg || b.vml ? new Gi(t) : null;
	}
	(b.vml && Gi.include(zt),
		A.include({
			getRenderer: function (t) {
				t =
					(t =
						t.options.renderer ||
						this._getPaneRenderer(t.options.pane) ||
						this.options.renderer ||
						this._renderer) || (this._renderer = this._createRenderer());
				return (this.hasLayer(t) || this.addLayer(t), t);
			},
			_getPaneRenderer: function (t) {
				var e;
				return (
					"overlayPane" !== t &&
					void 0 !== t &&
					(void 0 === (e = this._paneRenderers[t]) &&
						((e = this._createRenderer({ pane: t })), (this._paneRenderers[t] = e)),
					e)
				);
			},
			_createRenderer: function (t) {
				return (this.options.preferCanvas && Ui(t)) || Ki(t);
			},
		}));
	var Yi = xi.extend({
		initialize: function (t, e) {
			xi.prototype.initialize.call(this, this._boundsToLatLngs(t), e);
		},
		setBounds: function (t) {
			return this.setLatLngs(this._boundsToLatLngs(t));
		},
		_boundsToLatLngs: function (t) {
			return [(t = g(t)).getSouthWest(), t.getNorthWest(), t.getNorthEast(), t.getSouthEast()];
		},
	});
	((Gi.create = qi),
		(Gi.pointsToPath = dt),
		(wi.geometryToLayer = bi),
		(wi.coordsToLatLng = Li),
		(wi.coordsToLatLngs = Ti),
		(wi.latLngToCoords = Mi),
		(wi.latLngsToCoords = zi),
		(wi.getFeature = Ci),
		(wi.asFeature = Zi),
		A.mergeOptions({ boxZoom: !0 }));
	var _t = n.extend({
			initialize: function (t) {
				((this._map = t),
					(this._container = t._container),
					(this._pane = t._panes.overlayPane),
					(this._resetStateTimeout = 0),
					t.on("unload", this._destroy, this));
			},
			addHooks: function () {
				S(this._container, "mousedown", this._onMouseDown, this);
			},
			removeHooks: function () {
				k(this._container, "mousedown", this._onMouseDown, this);
			},
			moved: function () {
				return this._moved;
			},
			_destroy: function () {
				(T(this._pane), delete this._pane);
			},
			_resetState: function () {
				((this._resetStateTimeout = 0), (this._moved = !1));
			},
			_clearDeferredResetState: function () {
				0 !== this._resetStateTimeout && (clearTimeout(this._resetStateTimeout), (this._resetStateTimeout = 0));
			},
			_onMouseDown: function (t) {
				if (!t.shiftKey || (1 !== t.which && 1 !== t.button)) return !1;
				(this._clearDeferredResetState(),
					this._resetState(),
					re(),
					Le(),
					(this._startPoint = this._map.mouseEventToContainerPoint(t)),
					S(
						document,
						{
							contextmenu: Re,
							mousemove: this._onMouseMove,
							mouseup: this._onMouseUp,
							keydown: this._onKeyDown,
						},
						this,
					));
			},
			_onMouseMove: function (t) {
				(this._moved ||
					((this._moved = !0),
					(this._box = P("div", "leaflet-zoom-box", this._container)),
					M(this._container, "leaflet-crosshair"),
					this._map.fire("boxzoomstart")),
					(this._point = this._map.mouseEventToContainerPoint(t)));
				var t = new f(this._point, this._startPoint),
					e = t.getSize();
				(Z(this._box, t.min), (this._box.style.width = e.x + "px"), (this._box.style.height = e.y + "px"));
			},
			_finish: function () {
				(this._moved && (T(this._box), z(this._container, "leaflet-crosshair")),
					ae(),
					Te(),
					k(
						document,
						{
							contextmenu: Re,
							mousemove: this._onMouseMove,
							mouseup: this._onMouseUp,
							keydown: this._onKeyDown,
						},
						this,
					));
			},
			_onMouseUp: function (t) {
				(1 !== t.which && 1 !== t.button) ||
					(this._finish(),
					this._moved &&
						(this._clearDeferredResetState(),
						(this._resetStateTimeout = setTimeout(a(this._resetState, this), 0)),
						(t = new s(
							this._map.containerPointToLatLng(this._startPoint),
							this._map.containerPointToLatLng(this._point),
						)),
						this._map.fitBounds(t).fire("boxzoomend", { boxZoomBounds: t })));
			},
			_onKeyDown: function (t) {
				27 === t.keyCode && (this._finish(), this._clearDeferredResetState(), this._resetState());
			},
		}),
		Ct =
			(A.addInitHook("addHandler", "boxZoom", _t),
			A.mergeOptions({ doubleClickZoom: !0 }),
			n.extend({
				addHooks: function () {
					this._map.on("dblclick", this._onDoubleClick, this);
				},
				removeHooks: function () {
					this._map.off("dblclick", this._onDoubleClick, this);
				},
				_onDoubleClick: function (t) {
					var e = this._map,
						i = e.getZoom(),
						n = e.options.zoomDelta,
						i = t.originalEvent.shiftKey ? i - n : i + n;
					"center" === e.options.doubleClickZoom ? e.setZoom(i) : e.setZoomAround(t.containerPoint, i);
				},
			})),
		Zt =
			(A.addInitHook("addHandler", "doubleClickZoom", Ct),
			A.mergeOptions({
				dragging: !0,
				inertia: !0,
				inertiaDeceleration: 3400,
				inertiaMaxSpeed: 1 / 0,
				easeLinearity: 0.2,
				worldCopyJump: !1,
				maxBoundsViscosity: 0,
			}),
			n.extend({
				addHooks: function () {
					var t;
					(this._draggable ||
						((t = this._map),
						(this._draggable = new Xe(t._mapPane, t._container)),
						this._draggable.on(
							{ dragstart: this._onDragStart, drag: this._onDrag, dragend: this._onDragEnd },
							this,
						),
						this._draggable.on("predrag", this._onPreDragLimit, this),
						t.options.worldCopyJump &&
							(this._draggable.on("predrag", this._onPreDragWrap, this),
							t.on("zoomend", this._onZoomEnd, this),
							t.whenReady(this._onZoomEnd, this))),
						M(this._map._container, "leaflet-grab leaflet-touch-drag"),
						this._draggable.enable(),
						(this._positions = []),
						(this._times = []));
				},
				removeHooks: function () {
					(z(this._map._container, "leaflet-grab"),
						z(this._map._container, "leaflet-touch-drag"),
						this._draggable.disable());
				},
				moved: function () {
					return this._draggable && this._draggable._moved;
				},
				moving: function () {
					return this._draggable && this._draggable._moving;
				},
				_onDragStart: function () {
					var t,
						e = this._map;
					(e._stop(),
						this._map.options.maxBounds && this._map.options.maxBoundsViscosity
							? ((t = g(this._map.options.maxBounds)),
								(this._offsetLimit = _(
									this._map.latLngToContainerPoint(t.getNorthWest()).multiplyBy(-1),
									this._map
										.latLngToContainerPoint(t.getSouthEast())
										.multiplyBy(-1)
										.add(this._map.getSize()),
								)),
								(this._viscosity = Math.min(1, Math.max(0, this._map.options.maxBoundsViscosity))))
							: (this._offsetLimit = null),
						e.fire("movestart").fire("dragstart"),
						e.options.inertia && ((this._positions = []), (this._times = [])));
				},
				_onDrag: function (t) {
					var e, i;
					(this._map.options.inertia &&
						((e = this._lastTime = +new Date()),
						(i = this._lastPos = this._draggable._absPos || this._draggable._newPos),
						this._positions.push(i),
						this._times.push(e),
						this._prunePositions(e)),
						this._map.fire("move", t).fire("drag", t));
				},
				_prunePositions: function (t) {
					for (; 1 < this._positions.length && 50 < t - this._times[0]; )
						(this._positions.shift(), this._times.shift());
				},
				_onZoomEnd: function () {
					var t = this._map.getSize().divideBy(2),
						e = this._map.latLngToLayerPoint([0, 0]);
					((this._initialWorldOffset = e.subtract(t).x),
						(this._worldWidth = this._map.getPixelWorldBounds().getSize().x));
				},
				_viscousLimit: function (t, e) {
					return t - (t - e) * this._viscosity;
				},
				_onPreDragLimit: function () {
					var t, e;
					this._viscosity &&
						this._offsetLimit &&
						((t = this._draggable._newPos.subtract(this._draggable._startPos)),
						(e = this._offsetLimit),
						t.x < e.min.x && (t.x = this._viscousLimit(t.x, e.min.x)),
						t.y < e.min.y && (t.y = this._viscousLimit(t.y, e.min.y)),
						t.x > e.max.x && (t.x = this._viscousLimit(t.x, e.max.x)),
						t.y > e.max.y && (t.y = this._viscousLimit(t.y, e.max.y)),
						(this._draggable._newPos = this._draggable._startPos.add(t)));
				},
				_onPreDragWrap: function () {
					var t = this._worldWidth,
						e = Math.round(t / 2),
						i = this._initialWorldOffset,
						n = this._draggable._newPos.x,
						o = ((n - e + i) % t) + e - i,
						n = ((n + e + i) % t) - e - i,
						t = Math.abs(o + i) < Math.abs(n + i) ? o : n;
					((this._draggable._absPos = this._draggable._newPos.clone()), (this._draggable._newPos.x = t));
				},
				_onDragEnd: function (t) {
					var e,
						i,
						n,
						o,
						s = this._map,
						r = s.options,
						a = !r.inertia || t.noInertia || this._times.length < 2;
					(s.fire("dragend", t),
						!a &&
						(this._prunePositions(+new Date()),
						(t = this._lastPos.subtract(this._positions[0])),
						(a = (this._lastTime - this._times[0]) / 1e3),
						(e = r.easeLinearity),
						(a = (t = t.multiplyBy(e / a)).distanceTo([0, 0])),
						(i = Math.min(r.inertiaMaxSpeed, a)),
						(t = t.multiplyBy(i / a)),
						(n = i / (r.inertiaDeceleration * e)),
						(o = t.multiplyBy(-n / 2).round()).x || o.y)
							? ((o = s._limitOffset(o, s.options.maxBounds)),
								x(function () {
									s.panBy(o, { duration: n, easeLinearity: e, noMoveStart: !0, animate: !0 });
								}))
							: s.fire("moveend"));
				},
			})),
		St =
			(A.addInitHook("addHandler", "dragging", Zt),
			A.mergeOptions({ keyboard: !0, keyboardPanDelta: 80 }),
			n.extend({
				keyCodes: {
					left: [37],
					right: [39],
					down: [40],
					up: [38],
					zoomIn: [187, 107, 61, 171],
					zoomOut: [189, 109, 54, 173],
				},
				initialize: function (t) {
					((this._map = t),
						this._setPanDelta(t.options.keyboardPanDelta),
						this._setZoomDelta(t.options.zoomDelta));
				},
				addHooks: function () {
					var t = this._map._container;
					(t.tabIndex <= 0 && (t.tabIndex = "0"),
						S(t, { focus: this._onFocus, blur: this._onBlur, mousedown: this._onMouseDown }, this),
						this._map.on({ focus: this._addHooks, blur: this._removeHooks }, this));
				},
				removeHooks: function () {
					(this._removeHooks(),
						k(
							this._map._container,
							{ focus: this._onFocus, blur: this._onBlur, mousedown: this._onMouseDown },
							this,
						),
						this._map.off({ focus: this._addHooks, blur: this._removeHooks }, this));
				},
				_onMouseDown: function () {
					var t, e, i;
					this._focused ||
						((i = document.body),
						(t = document.documentElement),
						(e = i.scrollTop || t.scrollTop),
						(i = i.scrollLeft || t.scrollLeft),
						this._map._container.focus(),
						window.scrollTo(i, e));
				},
				_onFocus: function () {
					((this._focused = !0), this._map.fire("focus"));
				},
				_onBlur: function () {
					((this._focused = !1), this._map.fire("blur"));
				},
				_setPanDelta: function (t) {
					for (var e = (this._panKeys = {}), i = this.keyCodes, n = 0, o = i.left.length; n < o; n++)
						e[i.left[n]] = [-1 * t, 0];
					for (n = 0, o = i.right.length; n < o; n++) e[i.right[n]] = [t, 0];
					for (n = 0, o = i.down.length; n < o; n++) e[i.down[n]] = [0, t];
					for (n = 0, o = i.up.length; n < o; n++) e[i.up[n]] = [0, -1 * t];
				},
				_setZoomDelta: function (t) {
					for (var e = (this._zoomKeys = {}), i = this.keyCodes, n = 0, o = i.zoomIn.length; n < o; n++)
						e[i.zoomIn[n]] = t;
					for (n = 0, o = i.zoomOut.length; n < o; n++) e[i.zoomOut[n]] = -t;
				},
				_addHooks: function () {
					S(document, "keydown", this._onKeyDown, this);
				},
				_removeHooks: function () {
					k(document, "keydown", this._onKeyDown, this);
				},
				_onKeyDown: function (t) {
					if (!(t.altKey || t.ctrlKey || t.metaKey)) {
						var e,
							i,
							n = t.keyCode,
							o = this._map;
						if (n in this._panKeys)
							(o._panAnim && o._panAnim._inProgress) ||
								((i = this._panKeys[n]),
								t.shiftKey && (i = m(i).multiplyBy(3)),
								o.options.maxBounds && (i = o._limitOffset(m(i), o.options.maxBounds)),
								o.options.worldCopyJump
									? ((e = o.wrapLatLng(o.unproject(o.project(o.getCenter()).add(i)))), o.panTo(e))
									: o.panBy(i));
						else if (n in this._zoomKeys) o.setZoom(o.getZoom() + (t.shiftKey ? 3 : 1) * this._zoomKeys[n]);
						else {
							if (27 !== n || !o._popup || !o._popup.options.closeOnEscapeKey) return;
							o.closePopup();
						}
						Re(t);
					}
				},
			})),
		Et =
			(A.addInitHook("addHandler", "keyboard", St),
			A.mergeOptions({ scrollWheelZoom: !0, wheelDebounceTime: 40, wheelPxPerZoomLevel: 60 }),
			n.extend({
				addHooks: function () {
					(S(this._map._container, "wheel", this._onWheelScroll, this), (this._delta = 0));
				},
				removeHooks: function () {
					k(this._map._container, "wheel", this._onWheelScroll, this);
				},
				_onWheelScroll: function (t) {
					var e = He(t),
						i = this._map.options.wheelDebounceTime,
						e =
							((this._delta += e),
							(this._lastMousePos = this._map.mouseEventToContainerPoint(t)),
							this._startTime || (this._startTime = +new Date()),
							Math.max(i - (+new Date() - this._startTime), 0));
					(clearTimeout(this._timer), (this._timer = setTimeout(a(this._performZoom, this), e)), Re(t));
				},
				_performZoom: function () {
					var t = this._map,
						e = t.getZoom(),
						i = this._map.options.zoomSnap || 0,
						n = (t._stop(), this._delta / (4 * this._map.options.wheelPxPerZoomLevel)),
						n = (4 * Math.log(2 / (1 + Math.exp(-Math.abs(n))))) / Math.LN2,
						i = i ? Math.ceil(n / i) * i : n,
						n = t._limitZoom(e + (0 < this._delta ? i : -i)) - e;
					((this._delta = 0),
						(this._startTime = null),
						n &&
							("center" === t.options.scrollWheelZoom
								? t.setZoom(e + n)
								: t.setZoomAround(this._lastMousePos, e + n)));
				},
			})),
		kt =
			(A.addInitHook("addHandler", "scrollWheelZoom", Et),
			A.mergeOptions({ tapHold: b.touchNative && b.safari && b.mobile, tapTolerance: 15 }),
			n.extend({
				addHooks: function () {
					S(this._map._container, "touchstart", this._onDown, this);
				},
				removeHooks: function () {
					k(this._map._container, "touchstart", this._onDown, this);
				},
				_onDown: function (t) {
					var e;
					(clearTimeout(this._holdTimeout),
						1 === t.touches.length &&
							((e = t.touches[0]),
							(this._startPos = this._newPos = new p(e.clientX, e.clientY)),
							(this._holdTimeout = setTimeout(
								a(function () {
									(this._cancel(),
										this._isTapValid() &&
											(S(document, "touchend", O),
											S(document, "touchend touchcancel", this._cancelClickPrevent),
											this._simulateEvent("contextmenu", e)));
								}, this),
								600,
							)),
							S(document, "touchend touchcancel contextmenu", this._cancel, this),
							S(document, "touchmove", this._onMove, this)));
				},
				_cancelClickPrevent: function t() {
					(k(document, "touchend", O), k(document, "touchend touchcancel", t));
				},
				_cancel: function () {
					(clearTimeout(this._holdTimeout),
						k(document, "touchend touchcancel contextmenu", this._cancel, this),
						k(document, "touchmove", this._onMove, this));
				},
				_onMove: function (t) {
					t = t.touches[0];
					this._newPos = new p(t.clientX, t.clientY);
				},
				_isTapValid: function () {
					return this._newPos.distanceTo(this._startPos) <= this._map.options.tapTolerance;
				},
				_simulateEvent: function (t, e) {
					t = new MouseEvent(t, {
						bubbles: !0,
						cancelable: !0,
						view: window,
						screenX: e.screenX,
						screenY: e.screenY,
						clientX: e.clientX,
						clientY: e.clientY,
					});
					((t._simulated = !0), e.target.dispatchEvent(t));
				},
			})),
		Ot =
			(A.addInitHook("addHandler", "tapHold", kt),
			A.mergeOptions({ touchZoom: b.touch, bounceAtZoomLimits: !0 }),
			n.extend({
				addHooks: function () {
					(M(this._map._container, "leaflet-touch-zoom"),
						S(this._map._container, "touchstart", this._onTouchStart, this));
				},
				removeHooks: function () {
					(z(this._map._container, "leaflet-touch-zoom"),
						k(this._map._container, "touchstart", this._onTouchStart, this));
				},
				_onTouchStart: function (t) {
					var e,
						i,
						n = this._map;
					!t.touches ||
						2 !== t.touches.length ||
						n._animatingZoom ||
						this._zooming ||
						((e = n.mouseEventToContainerPoint(t.touches[0])),
						(i = n.mouseEventToContainerPoint(t.touches[1])),
						(this._centerPoint = n.getSize()._divideBy(2)),
						(this._startLatLng = n.containerPointToLatLng(this._centerPoint)),
						"center" !== n.options.touchZoom &&
							(this._pinchStartLatLng = n.containerPointToLatLng(e.add(i)._divideBy(2))),
						(this._startDist = e.distanceTo(i)),
						(this._startZoom = n.getZoom()),
						(this._moved = !1),
						(this._zooming = !0),
						n._stop(),
						S(document, "touchmove", this._onTouchMove, this),
						S(document, "touchend touchcancel", this._onTouchEnd, this),
						O(t));
				},
				_onTouchMove: function (t) {
					if (t.touches && 2 === t.touches.length && this._zooming) {
						var e = this._map,
							i = e.mouseEventToContainerPoint(t.touches[0]),
							n = e.mouseEventToContainerPoint(t.touches[1]),
							o = i.distanceTo(n) / this._startDist;
						if (
							((this._zoom = e.getScaleZoom(o, this._startZoom)),
							!e.options.bounceAtZoomLimits &&
								((this._zoom < e.getMinZoom() && o < 1) || (this._zoom > e.getMaxZoom() && 1 < o)) &&
								(this._zoom = e._limitZoom(this._zoom)),
							"center" === e.options.touchZoom)
						) {
							if (((this._center = this._startLatLng), 1 == o)) return;
						} else {
							i = i._add(n)._divideBy(2)._subtract(this._centerPoint);
							if (1 == o && 0 === i.x && 0 === i.y) return;
							this._center = e.unproject(
								e.project(this._pinchStartLatLng, this._zoom).subtract(i),
								this._zoom,
							);
						}
						(this._moved || (e._moveStart(!0, !1), (this._moved = !0)), r(this._animRequest));
						n = a(e._move, e, this._center, this._zoom, { pinch: !0, round: !1 }, void 0);
						((this._animRequest = x(n, this, !0)), O(t));
					}
				},
				_onTouchEnd: function () {
					this._moved && this._zooming
						? ((this._zooming = !1),
							r(this._animRequest),
							k(document, "touchmove", this._onTouchMove, this),
							k(document, "touchend touchcancel", this._onTouchEnd, this),
							this._map.options.zoomAnimation
								? this._map._animateZoom(
										this._center,
										this._map._limitZoom(this._zoom),
										!0,
										this._map.options.zoomSnap,
									)
								: this._map._resetView(this._center, this._map._limitZoom(this._zoom)))
						: (this._zooming = !1);
				},
			})),
		Xi =
			(A.addInitHook("addHandler", "touchZoom", Ot),
			(A.BoxZoom = _t),
			(A.DoubleClickZoom = Ct),
			(A.Drag = Zt),
			(A.Keyboard = St),
			(A.ScrollWheelZoom = Et),
			(A.TapHold = kt),
			(A.TouchZoom = Ot),
			(t.Bounds = f),
			(t.Browser = b),
			(t.CRS = ot),
			(t.Canvas = Fi),
			(t.Circle = vi),
			(t.CircleMarker = gi),
			(t.Class = et),
			(t.Control = B),
			(t.DivIcon = Ri),
			(t.DivOverlay = Ai),
			(t.DomEvent = mt),
			(t.DomUtil = pt),
			(t.Draggable = Xe),
			(t.Evented = it),
			(t.FeatureGroup = ci),
			(t.GeoJSON = wi),
			(t.GridLayer = Ni),
			(t.Handler = n),
			(t.Icon = di),
			(t.ImageOverlay = Ei),
			(t.LatLng = v),
			(t.LatLngBounds = s),
			(t.Layer = o),
			(t.LayerGroup = ui),
			(t.LineUtil = vt),
			(t.Map = A),
			(t.Marker = mi),
			(t.Mixin = ft),
			(t.Path = fi),
			(t.Point = p),
			(t.PolyUtil = gt),
			(t.Polygon = xi),
			(t.Polyline = yi),
			(t.Popup = Bi),
			(t.PosAnimation = Fe),
			(t.Projection = wt),
			(t.Rectangle = Yi),
			(t.Renderer = Wi),
			(t.SVG = Gi),
			(t.SVGOverlay = Oi),
			(t.TileLayer = Di),
			(t.Tooltip = Ii),
			(t.Transformation = at),
			(t.Util = tt),
			(t.VideoOverlay = ki),
			(t.bind = a),
			(t.bounds = _),
			(t.canvas = Ui),
			(t.circle = function (t, e, i) {
				return new vi(t, e, i);
			}),
			(t.circleMarker = function (t, e) {
				return new gi(t, e);
			}),
			(t.control = Ue),
			(t.divIcon = function (t) {
				return new Ri(t);
			}),
			(t.extend = l),
			(t.featureGroup = function (t, e) {
				return new ci(t, e);
			}),
			(t.geoJSON = Si),
			(t.geoJson = Mt),
			(t.gridLayer = function (t) {
				return new Ni(t);
			}),
			(t.icon = function (t) {
				return new di(t);
			}),
			(t.imageOverlay = function (t, e, i) {
				return new Ei(t, e, i);
			}),
			(t.latLng = w),
			(t.latLngBounds = g),
			(t.layerGroup = function (t, e) {
				return new ui(t, e);
			}),
			(t.map = function (t, e) {
				return new A(t, e);
			}),
			(t.marker = function (t, e) {
				return new mi(t, e);
			}),
			(t.point = m),
			(t.polygon = function (t, e) {
				return new xi(t, e);
			}),
			(t.polyline = function (t, e) {
				return new yi(t, e);
			}),
			(t.popup = function (t, e) {
				return new Bi(t, e);
			}),
			(t.rectangle = function (t, e) {
				return new Yi(t, e);
			}),
			(t.setOptions = c),
			(t.stamp = h),
			(t.svg = Ki),
			(t.svgOverlay = function (t, e, i) {
				return new Oi(t, e, i);
			}),
			(t.tileLayer = ji),
			(t.tooltip = function (t, e) {
				return new Ii(t, e);
			}),
			(t.transformation = ht),
			(t.version = "1.9.4"),
			(t.videoOverlay = function (t, e, i) {
				return new ki(t, e, i);
			}),
			window.L);
	((t.noConflict = function () {
		return ((window.L = Xi), this);
	}),
		(window.L = t));
});
//# sourceMappingURL=leaflet.js.map