PageSourceSearch

https://mairievendes.fr/wp-content/plugins/ultimate-maps-by-supsys…/modules/maps/js/leaflet.js?key=&ver=1.3.3

js mairievendes.fr collected 2026-10-03 02:47:10 UTC 219,668 bytes, 5,264 lines download raw bytes

1/* @preserve
2 * Leaflet 1.9.4+v1.d15112c, a JS library for interactive maps. https://leafletjs.com
3 * (c) 2010-2023 Vladimir Agafonkin, (c) 2010-2011 CloudMade
4 */
5!(function (t, e) {
6  '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 = {}));
7})(this, function (t) {
8  'use strict';
9  function l(t) {
10    for (var e, i, n = 1, o = arguments.length; n < o; n++) for (e in (i = arguments[n])) t[e] = i[e];
11    return t;
12  }
13  var R =
14    Object.create ||
15    function (t) {
16      return ((N.prototype = t), new N());
17    };
18  function N() {}
19  function a(t, e) {
20    var i,
21      n = Array.prototype.slice;
22    return t.bind
23      ? t.bind.apply(t, n.call(arguments, 1))
24      : ((i = n.call(arguments, 2)),
25        function () {
26          return t.apply(e, i.length ? i.concat(n.call(arguments)) : arguments);
27        });
28  }
29  var D = 0;
30  function h(t) {
31    return ('_leaflet_id' in t || (t._leaflet_id = ++D), t._leaflet_id);
32  }
33  function j(t, e, i) {
34    var n,
35      o,
36      s = function () {
37        ((n = !1), o && (r.apply(i, o), (o = !1)));
38      },
39      r = function () {
40        n ? (o = arguments) : (t.apply(i, arguments), setTimeout(s, e), (n = !0));
41      };
42    return r;
43  }
44  function H(t, e, i) {
45    var n = e[1],
46      e = e[0],
47      o = n - e;
48    return t === n && i ? t : ((((t - e) % o) + o) % o) + e;
49  }
50  function u() {
51    return !1;
52  }
53  function i(t, e) {
54    return !1 === e ? t : ((e = Math.pow(10, void 0 === e ? 6 : e)), Math.round(t * e) / e);
55  }
56  function W(t) {
57    return t.trim ? t.trim() : t.replace(/^\s+|\s+$/g, '');
58  }
59  function F(t) {
60    return W(t).split(/\s+/);
61  }
62  function c(t, e) {
63    for (var i in (Object.prototype.hasOwnProperty.call(t, 'options') || (t.options = t.options ? R(t.options) : {}), e)) t.options[i] = e[i];
64    return t.options;
65  }
66  function U(t, e, i) {
67    var n,
68      o = [];
69    for (n in t) o.push(encodeURIComponent(i ? n.toUpperCase() : n) + '=' + encodeURIComponent(t[n]));
70    return (e && -1 !== e.indexOf('?') ? '&' : '?') + o.join('&');
71  }
72  var V = /\{ *([\w_ -]+) *\}/g;
73  function q(t, i) {
74    return t.replace(V, function (t, e) {
75      e = i[e];
76      if (void 0 === e) throw new Error('No value provided for variable ' + t);
77      return (e = 'function' == typeof e ? e(i) : e);
78    });
79  }
80  var d =
81    Array.isArray ||
82    function (t) {
83      return '[object Array]' === Object.prototype.toString.call(t);
84    };
85  function G(t, e) {
86    for (var i = 0; i < t.length; i++) if (t[i] === e) return i;
87    return -1;
88  }
89  var K = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=';
90  function Y(t) {
91    return window['webkit' + t] || window['moz' + t] || window['ms' + t];
92  }
93  var X = 0;
94  function J(t) {
95    var e = +new Date(),
96      i = Math.max(0, 16 - (e - X));
97    return ((X = e + i), window.setTimeout(t, i));
98  }
99  var $ = window.requestAnimationFrame || Y('RequestAnimationFrame') || J,
100    Q =
101      window.cancelAnimationFrame ||
102      Y('CancelAnimationFrame') ||
103      Y('CancelRequestAnimationFrame') ||
104      function (t) {
105        window.clearTimeout(t);
106      };
107  function x(t, e, i) {
108    if (!i || $ !== J) return $.call(window, a(t, e));
109    t.call(e);
110  }
111  function r(t) {
112    t && Q.call(window, t);
113  }
114  var tt = {
115    __proto__: null,
116    extend: l,
117    create: R,
118    bind: a,
119    get lastId() {
120      return D;
121    },
122    stamp: h,
123    throttle: j,
124    wrapNum: H,
125    falseFn: u,
126    formatNum: i,
127    trim: W,
128    splitWords: F,
129    setOptions: c,
130    getParamString: U,
131    template: q,
132    isArray: d,
133    indexOf: G,
134    emptyImageUrl: K,
135    requestFn: $,
136    cancelFn: Q,
137    requestAnimFrame: x,
138    cancelAnimFrame: r,
139  };
140  function et() {}
141  ((et.extend = function (t) {
142    function e() {
143      (c(this), this.initialize && this.initialize.apply(this, arguments), this.callInitHooks());
144    }
145    var i,
146      n = (e.__super__ = this.prototype),
147      o = R(n);
148    for (i in (((o.constructor = e).prototype = o), this)) Object.prototype.hasOwnProperty.call(this, i) && 'prototype' !== i && '__super__' !== i && (e[i] = this[i]);
149    if ((t.statics && l(e, t.statics), t.includes)) {
150      var s = t.includes;
151      if ('undefined' != typeof L && L && L.Mixin) {
152        s = d(s) ? s : [s];
153        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);
154      }
155      l.apply(null, [o].concat(t.includes));
156    }
157    return (
158      l(o, t),
159      delete o.statics,
160      delete o.includes,
161      o.options && ((o.options = n.options ? R(n.options) : {}), l(o.options, t.options)),
162      (o._initHooks = []),
163      (o.callInitHooks = function () {
164        if (!this._initHooksCalled) {
165          (n.callInitHooks && n.callInitHooks.call(this), (this._initHooksCalled = !0));
166          for (var t = 0, e = o._initHooks.length; t < e; t++) o._initHooks[t].call(this);
167        }
168      }),
169      e
170    );
171  }),
172    (et.include = function (t) {
173      var e = this.prototype.options;
174      return (l(this.prototype, t), t.options && ((this.prototype.options = e), this.mergeOptions(t.options)), this);
175    }),
176    (et.mergeOptions = function (t) {
177      return (l(this.prototype.options, t), this);
178    }),
179    (et.addInitHook = function (t) {
180      var e = Array.prototype.slice.call(arguments, 1),
181        i =
182          'function' == typeof t
183            ? t
184            : function () {
185                this[t].apply(this, e);
186              };
187      return ((this.prototype._initHooks = this.prototype._initHooks || []), this.prototype._initHooks.push(i), this);
188    }));
189  var e = {
190      on: function (t, e, i) {
191        if ('object' == typeof t) for (var n in t) this._on(n, t[n], e);
192        else for (var o = 0, s = (t = F(t)).length; o < s; o++) this._on(t[o], e, i);
193        return this;
194      },
195      off: function (t, e, i) {
196        if (arguments.length)
197          if ('object' == typeof t) for (var n in t) this._off(n, t[n], e);
198          else {
199            t = F(t);
200            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);
201          }
202        else delete this._events;
203        return this;
204      },
205      _on: function (t, e, i, n) {
206        '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));
207      },
208      _off: function (t, e, i) {
209        var n, o, s;
210        if (this._events && (n = this._events[t]))
211          if (1 === arguments.length) {
212            if (this._firingCount) for (o = 0, s = n.length; o < s; o++) n[o].fn = u;
213            delete this._events[t];
214          } 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));
215      },
216      fire: function (t, e, i) {
217        if (this.listens(t, i)) {
218          var n = l({}, e, {
219            type: t,
220            target: this,
221            sourceTarget: (e && e.sourceTarget) || this,
222          });
223          if (this._events) {
224            var o = this._events[t];
225            if (o) {
226              this._firingCount = this._firingCount + 1 || 1;
227              for (var s = 0, r = o.length; s < r; s++) {
228                var a = o[s],
229                  h = a.fn;
230                (a.once && this.off(t, h, a.ctx), h.call(a.ctx || this, n));
231              }
232              this._firingCount--;
233            }
234          }
235          i && this._propagateEvent(n);
236        }
237        return this;
238      },
239      listens: function (t, e, i, n) {
240        'string' != typeof t && console.warn('"string" type argument expected');
241        var o = e,
242          s = ('function' != typeof e && ((n = !!e), (i = o = void 0)), this._events && this._events[t]);
243        if (s && s.length && !1 !== this._listens(t, o, i)) return !0;
244        if (n) for (var r in this._eventParents) if (this._eventParents[r].listens(t, e, i, n)) return !0;
245        return !1;
246      },
247      _listens: function (t, e, i) {
248        if (this._events) {
249          var n = this._events[t] || [];
250          if (!e) return !!n.length;
251          i === this && (i = void 0);
252          for (var o = 0, s = n.length; o < s; o++) if (n[o].fn === e && n[o].ctx === i) return o;
253        }
254        return !1;
255      },
256      once: function (t, e, i) {
257        if ('object' == typeof t) for (var n in t) this._on(n, t[n], e, !0);
258        else for (var o = 0, s = (t = F(t)).length; o < s; o++) this._on(t[o], e, i, !0);
259        return this;
260      },
261      addEventParent: function (t) {
262        return ((this._eventParents = this._eventParents || {}), (this._eventParents[h(t)] = t), this);
263      },
264      removeEventParent: function (t) {
265        return (this._eventParents && delete this._eventParents[h(t)], this);
266      },
267      _propagateEvent: function (t) {
268        for (var e in this._eventParents) this._eventParents[e].fire(t.type, l({ layer: t.target, prop
268agatedFrom: t.target }, t), !0);
269      },
270    },
271    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));
272  function p(t, e, i) {
273    ((this.x = i ? Math.round(t) : t), (this.y = i ? Math.round(e) : e));
274  }
275  var nt =
276    Math.trunc ||
277    function (t) {
278      return 0 < t ? Math.floor(t) : Math.ceil(t);
279    };
280  function m(t, e, i) {
281    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);
282  }
283  function f(t, e) {
284    if (t) for (var i = e ? [t, e] : t, n = 0, o = i.length; n < o; n++) this.extend(i[n]);
285  }
286  function _(t, e) {
287    return !t || t instanceof f ? t : new f(t, e);
288  }
289  function s(t, e) {
290    if (t) for (var i = e ? [t, e] : t, n = 0, o = i.length; n < o; n++) this.extend(i[n]);
291  }
292  function g(t, e) {
293    return t instanceof s ? t : new s(t, e);
294  }
295  function v(t, e, i) {
296    if (isNaN(t) || isNaN(e)) throw new Error('Invalid LatLng object: (' + t + ', ' + e + ')');
297    ((this.lat = +t), (this.lng = +e), void 0 !== i && (this.alt = +i));
298  }
299  function w(t, e, i) {
300    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);
301  }
302  ((p.prototype = {
303    clone: function () {
304      return new p(this.x, this.y);
305    },
306    add: function (t) {
307      return this.clone()._add(m(t));
308    },
309    _add: function (t) {
310      return ((this.x += t.x), (this.y += t.y), this);
311    },
312    subtract: function (t) {
313      return this.clone()._subtract(m(t));
314    },
315    _subtract: function (t) {
316      return ((this.x -= t.x), (this.y -= t.y), this);
317    },
318    divideBy: function (t) {
319      return this.clone()._divideBy(t);
320    },
321    _divideBy: function (t) {
322      return ((this.x /= t), (this.y /= t), this);
323    },
324    multiplyBy: function (t) {
325      return this.clone()._multiplyBy(t);
326    },
327    _multiplyBy: function (t) {
328      return ((this.x *= t), (this.y *= t), this);
329    },
330    scaleBy: function (t) {
331      return new p(this.x * t.x, this.y * t.y);
332    },
333    unscaleBy: function (t) {
334      return new p(this.x / t.x, this.y / t.y);
335    },
336    round: function () {
337      return this.clone()._round();
338    },
339    _round: function () {
340      return ((this.x = Math.round(this.x)), (this.y = Math.round(this.y)), this);
341    },
342    floor: function () {
343      return this.clone()._floor();
344    },
345    _floor: function () {
346      return ((this.x = Math.floor(this.x)), (this.y = Math.floor(this.y)), this);
347    },
348    ceil: function () {
349      return this.clone()._ceil();
350    },
351    _ceil: function () {
352      return ((this.x = Math.ceil(this.x)), (this.y = Math.ceil(this.y)), this);
353    },
354    trunc: function () {
355      return this.clone()._trunc();
356    },
357    _trunc: function () {
358      return ((this.x = nt(this.x)), (this.y = nt(this.y)), this);
359    },
360    distanceTo: function (t) {
361      var e = (t = m(t)).x - this.x,
362        t = t.y - this.y;
363      return Math.sqrt(e * e + t * t);
364    },
365    equals: function (t) {
366      return (t = m(t)).x === this.x && t.y === this.y;
367    },
368    contains: function (t) {
369      return ((t = m(t)), Math.abs(t.x) <= Math.abs(this.x) && Math.abs(t.y) <= Math.abs(this.y));
370    },
371    toString: function () {
372      return 'Point(' + i(this.x) + ', ' + i(this.y) + ')';
373    },
374  }),
375    (f.prototype = {
376      extend: function (t) {
377        var e, i;
378        if (t) {
379          if (t instanceof p || 'number' == typeof t[0] || 'x' in t) e = i = m(t);
380          else if (((e = (t = _(t)).min), (i = t.max), !e || !i)) return this;
381          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()));
382        }
383        return this;
384      },
385      getCenter: function (t) {
386        return m((this.min.x + this.max.x) / 2, (this.min.y + this.max.y) / 2, t);
387      },
388      getBottomLeft: function () {
389        return m(this.min.x, this.max.y);
390      },
391      getTopRight: function () {
392        return m(this.max.x, this.min.y);
393      },
394      getTopLeft: function () {
395        return this.min;
396      },
397      getBottomRight: function () {
398        return this.max;
399      },
400      getSize: function () {
401        return this.max.subtract(this.min);
402      },
403      contains: function (t) {
404        var e, i;
405        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);
406      },
407      intersects: function (t) {
408        t = _(t);
409        var e = this.min,
410          i = this.max,
411          n = t.min,
412          t = t.max,
413          o = t.x >= e.x && n.x <= i.x,
414          t = t.y >
414= e.y && n.y <= i.y;
415        return o && t;
416      },
417      overlaps: function (t) {
418        t = _(t);
419        var e = this.min,
420          i = this.max,
421          n = t.min,
422          t = t.max,
423          o = t.x > e.x && n.x < i.x,
424          t = t.y > e.y && n.y < i.y;
425        return o && t;
426      },
427      isValid: function () {
428        return !(!this.min || !this.max);
429      },
430      pad: function (t) {
431        var e = this.min,
432          i = this.max,
433          n = Math.abs(e.x - i.x) * t,
434          t = Math.abs(e.y - i.y) * t;
435        return _(m(e.x - n, e.y - t), m(i.x + n, i.y + t));
436      },
437      equals: function (t) {
438        return !!t && ((t = _(t)), this.min.equals(t.getTopLeft()) && this.max.equals(t.getBottomRight()));
439      },
440    }),
441    (s.prototype = {
442      extend: function (t) {
443        var e,
444          i,
445          n = this._southWest,
446          o = this._northEast;
447        if (t instanceof v) i = e = t;
448        else {
449          if (!(t instanceof s)) return t ? this.extend(w(t) || g(t)) : this;
450          if (((e = t._southWest), (i = t._northEast), !e || !i)) return this;
451        }
452        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);
453      },
454      pad: function (t) {
455        var e = this._southWest,
456          i = this._northEast,
457          n = Math.abs(e.lat - i.lat) * t,
458          t = Math.abs(e.lng - i.lng) * t;
459        return new s(new v(e.lat - n, e.lng - t), new v(i.lat + n, i.lng + t));
460      },
461      getCenter: function () {
462        return new v((this._southWest.lat + this._northEast.lat) / 2, (this._southWest.lng + this._northEast.lng) / 2);
463      },
464      getSouthWest: function () {
465        return this._southWest;
466      },
467      getNorthEast: function () {
468        return this._northEast;
469      },
470      getNorthWest: function () {
471        return new v(this.getNorth(), this.getWest());
472      },
473      getSouthEast: function () {
474        return new v(this.getSouth(), this.getEast());
475      },
476      getWest: function () {
477        return this._southWest.lng;
478      },
479      getSouth: function () {
480        return this._southWest.lat;
481      },
482      getEast: function () {
483        return this._northEast.lng;
484      },
485      getNorth: function () {
486        return this._northEast.lat;
487      },
488      contains: function (t) {
489        t = ('number' == typeof t[0] || t instanceof v || 'lat' in t ? w : g)(t);
490        var e,
491          i,
492          n = this._southWest,
493          o = this._northEast;
494        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);
495      },
496      intersects: function (t) {
497        t = g(t);
498        var e = this._southWest,
499          i = this._northEast,
500          n = t.getSouthWest(),
501          t = t.getNorthEast(),
502          o = t.lat >= e.lat && n.lat <= i.lat,
503          t = t.lng >= e.lng && n.lng <= i.lng;
504        return o && t;
505      },
506      overlaps: function (t) {
507        t = g(t);
508        var e = this._southWest,
509          i = this._northEast,
510          n = t.getSouthWest(),
511          t = t.getNorthEast(),
512          o = t.lat > e.lat && n.lat < i.lat,
513          t = t.lng > e.lng && n.lng < i.lng;
514        return o && t;
515      },
516      toBBoxString: function () {
517        return [this.getWest(), this.getSouth(), this.getEast(), this.getNorth()].join(',');
518      },
519      equals: function (t, e) {
520        return !!t && ((t = g(t)), this._southWest.equals(t.getSouthWest
520(), e) && this._northEast.equals(t.getNorthEast(), e));
521      },
522      isValid: function () {
523        return !(!this._southWest || !this._northEast);
524      },
525    }));
526  var ot = {
527      latLngToPoint: function (t, e) {
528        ((t = this.projection.project(t)), (e = this.scale(e)));
529        return this.transformation._transform(t, e);
530      },
531      pointToLatLng: function (t, e) {
532        ((e = this.scale(e)), (t = this.transformation.untransform(t, e)));
533        return this.projection.unproject(t);
534      },
535      project: function (t) {
536        return this.projection.project(t);
537      },
538      unproject: function (t) {
539        return this.projection.unproject(t);
540      },
541      scale: function (t) {
542        return 256 * Math.pow(2, t);
543      },
544      zoom: function (t) {
545        return Math.log(t / 256) / Math.LN2;
546      },
547      getProjectedBounds: function (t) {
548        var e;
549        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)));
550      },
551      infinite: !(v.prototype = {
552        equals: function (t, e) {
553          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));
554        },
555        toString: function (t) {
556          return 'LatLng(' + i(this.lat, t) + ', ' + i(this.lng, t) + ')';
557        },
558        distanceTo: function (t) {
559          return st.distance(this, w(t));
560        },
561        wrap: function () {
562          return st.wrapLatLng(this);
563        },
564        toBounds: function (t) {
565          var t = (180 * t) / 40075017,
566            e = t / Math.cos((Math.PI / 180) * this.lat);
567          return g([this.lat - t, this.lng - e], [this.lat + t, this.lng + e]);
568        },
569        clone: function () {
570          return new v(this.lat, this.lng, this.alt);
571        },
572      }),
573      wrapLatLng: function (t) {
574        var e = this.wrapLng ? H(t.lng, this.wrapLng, !0) : t.lng;
575        return new v(this.wrapLat ? H(t.lat, this.wrapLat, !0) : t.lat, e, t.alt);
576      },
577      wrapLatLngBounds: function (t) {
578        var e = t.getCenter(),
579          i = this.wrapLatLng(e),
580          n = e.lat - i.lat,
581          e = e.lng - i.lng;
582        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)));
583      },
584    },
585    st = l({}, ot, {
586      wrapLng: [-180, 180],
587      R: 6371e3,
588      distance: function (t, e) {
589        var i = Math.PI / 180,
590          n = t.lat * i,
591          o = e.lat * i,
592          s = Math.sin(((e.lat - t.lat) * i) / 2),
593          e = Math.sin(((e.lng - t.lng) * i) / 2),
594          t = s * s + Math.cos(n) * Math.cos(o) * e * e,
595          i = 2 * Math.atan2(Math.sqrt(t), Math.sqrt(1 - t));
596        return this.R * i;
597      },
598    }),
599    rt = 6378137,
600    rt = {
601      R: rt,
602      MAX_LATITUDE: 85.0511287798,
603      project: function (t) {
604        var e = Math.PI / 180,
605          i = this.MAX_LATITUDE,
606          i = Math.max(Math.min(i, t.lat), -i),
607          i = Math.sin(i * e);
608        return new p(this.R * t.lng * e, (this.R * Math.log((1 + i) / (1 - i))) / 2);
609      },
610      unproject: function (t) {
611        var e = 180 / Math.PI;
612        return new v((2 * Math.atan(Math.exp(t.y / this.R)) - Math.PI / 2) * e, (t.x * e) / this.R);
613      },
614      bounds: new f([-(rt = rt * Math.PI), -rt], [rt, rt]),
615    };
616  function at(t, e, i, n) {
617    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));
618  }
619  function ht(t, e, i, n) {
620    return new at(t, e, i, n);
621  }
622  at.prototype = {
623    transform: function (t, e) {
624      return this._transform(t.clone(), e);
625    },
626    _transform: function (t, e) {
627      return ((t.x = (e = e || 1) * (this._a * t.x + this._b)), (t.y = e * (this._c * t.y + this._d)), t);
628    },
629    untransform: function (t, e) {
630      return new p((t.x / (e = e || 1) - this._b) / this._a, (t.y / e - this._d) / this._c);
631    },
632  };
633  var lt = l({}, st, {
634      code: 'EPSG:3857',
635      projection: rt,
636      transformation: ht((lt = 0.5 / (Math.PI * rt.R)), 0.5, -lt, 0.5),
637    }),
638    ut = l({}, lt, { code: 'EPSG:900913' });
639  function ct(t) {
640    return document.createElementNS('http://www.w3.org/2000/svg', t);
641  }
642  function dt(t, e) {
643    for (var i, n, o, s, r = '', a = 0, h = t.length; a < h; a++) {
644      for (i = 0, n = (o = t[a]).length; i < n; i++) r += (i ? 'L' : 'M') + (s = o[i]).x + ' ' + s.y;
645      r += e ? (b.svg ? 'z' : 'x') : '';
646    }
647    return r || 'M0 0';
648  }
649  var _t = document.documentElement.style,
650    pt = 'ActiveXObject' in window,
651    mt = pt && !document.addEventListener,
652    n = 'msLaunchUri' in navigator && !('documentMode' in document),
653    ft = y('webkit'),
654    gt = y('android'),
655    vt = y('android 2') || y('android 3'),
656    yt = parseInt(/WebKit\/([0-9]+)|$/.exec(navigator.userAgent)[1], 10),
657    yt = gt && y('Google') && yt < 537 && !('AudioNode' in window),
658    xt = !!window.opera,
659    wt = !n && y('chrome'),
660    bt = y('gecko') && !ft && !xt && !pt,
661    Pt = !wt && y('safari'),
662    Lt = y('phantom'),
663    o = 'OTransition' in _t,
664    Tt = 0 === navigator.platform.indexOf('Win'),
665    Mt = pt && 'transition' in _t,
666    zt = 'WebKitCSSMatrix' in window && 'm11' in new window.WebKitCSSMatrix() && !vt,
667    _t = 'MozPerspective' in _t,
668    Ct = !window.L_DISABLE_3D && (Mt || zt || _t) && !o && !Lt,
669    Zt = 'undefined' != typeof orientation || y('mobile'),
670    St = Zt && ft,
671    Et = Zt && zt,
672    kt = !window.PointerEvent && window.MSPointerEvent,
673    Ot = !(!window.PointerEvent && !kt),
674    At = 'ontouchstart' in window || !!window.TouchEvent,
675    Bt = !window.L_NO_TOUCH && (At || Ot),
676    It = Zt && xt,
677    Rt = Zt && bt,
678    Nt = 1 < (window.devicePixelRatio || window.screen.deviceXDPI / window.screen.logicalXDPI),
679    Dt = (function () {
680      var t = !1;
681      try {
682        var e = Object.defineProperty({}, 'passive', {
683          get: function () {
684            t = !0;
685          },
686        });
687        (window.addEventListener('testPassiveEventSupport', u, e), window.removeEventListener('testPassiveEventSupport', u, e));
688      } catch (t) {}
689      return t;
690    })(),
691    jt = !!document.createElement('canvas').getContext,
692    Ht = !(!document.createElementNS || !ct('svg').createSVGRect),
693    Wt = !!Ht && (((Wt = document.createElement('div')).innerHTML = '<svg/>'), 'http://www.w3.org/2000/svg' === (Wt.firstChild && Wt.firstChild.namespaceURI));
694  function y(t) {
695    return 0 <= navigator.userAgent.toLowerCase().indexOf(t);
696  }
697  var b = {
698      ie: pt,
699      ielt9: mt,
700      edge: n,
701      webkit: ft,
702      android: gt,
703      android23: vt,
704      androidStock: yt,
705      opera: xt,
706      chrome: wt,
707      gecko: bt,
708      safari: Pt,
709      phantom: Lt,
710      opera12: o,
711      win: Tt,
712      ie3d: Mt,
713      webkit3d: zt,
714      gecko3d: _t,
715      any3d: Ct,
716      mobile: Zt,
717      mobileWebkit: St,
718      mobileWebkit3d: Et,
719      msPointer: kt,
720      pointer: Ot,
721      touch: Bt,
722      touchNative: At,
723      mobileOpera: It,
724      mobileGecko: Rt,
725      retina: Nt,
726      passiveEvents: Dt,
727      canvas: jt,
728      svg: Ht,
729      vml:
730        !Ht &&
731        (function () {
732          try {
733            var t = document.createElement('div'),
734              e = ((t.innerHTML = '<v:shape adj="1"/>'), t.firstChild);
735            return ((e.style.behavior = 'url(#default#VML)'), e && 'object' == typeof e.adj);
736          } catch (t) {
737            return !1;
738          }
739        })(),
740      inlineSvg: Wt,
741      mac: 0 === navigator.platform.indexOf('Mac'),
742      linux: 0 === navigator.platform.indexOf('Linux'),
743    },
744    Ft = b.msPointer ? 'MSPointerDown' : 'pointerdown',
745    Ut = b.msPointer ? 'MSPointerMove' : 'pointermove',
746    Vt = b.msPointer ? 'MSPointerUp' : 'pointerup',
747    qt = b.msPointer ? 'MSPointerCancel' : 'pointercancel',
748    Gt = { touchstart: Ft, touchmove: Ut, touchend: Vt, touchcancel: qt },
749    Kt = {
750      touchstart: function (t, e) {
751        e.MSPOINTER_TYPE_TOUCH && e.pointerType === e.MSPOINTER_TYPE_TOUCH && O(e);
752        ee(t, e);
753      },
754      touchmove: ee,
755      touchend: ee,
756      touchcancel: ee,
757    },
758    Yt = {},
759    Xt = !1;
760  function Jt(t, e, i) {
761    return (
762      '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)),
763      Kt[e] ? ((i = Kt[e].bind(this, i)), t.addEventListener(Gt[e], i, !1), i) : (console.warn('wrong event specified:', e), u)
764    );
765  }
766  function $t(t) {
767    Yt[t.pointerId] = t;
768  }
769  function Qt(t) {
770    Yt[t.pointerId] && (Yt[t.pointerId] = t);
771  }
772  function te(t) {
773    delete Yt[t.pointerId];
774  }
775  function ee(t, e) {
776    if (e.pointerType !== (e.MSPOINTER_TYPE_MOUSE || 'mouse')) {
777      for (var i in ((e.touches = []), Yt)) e.touches.push(Yt[i]);
778      ((e.changedTouches = [e]), t(e));
779    }
780  }
781  var ie = 200;
782  function ne(t, i) {
783    t.addEventListener('dblclick', i);
784    var n,
785      o = 0;
786    function e(t) {
787      var e;
788      1 !== t.detail
789        ? (n = t.detail)
790        : 'mouse' === t.pointerType ||
791          (t.sourceCapabilities && !t.sourceCapabilities.firesTouchEvents) ||
792          ((e = Ne(t)).some(function (t) {
793            return t instanceof HTMLLabelElement && t.attributes.for;
794          }) &&
795            !e.some(function (t) {
796              return t instanceof HTMLInputElement || t instanceof HTMLSelectElement;
797            })) ||
798          ((e = Date.now()) - o <= ie
799            ? 2 === ++n &&
800              i(
801                (function (t) {
802                  var e,
803                    i,
804                    n = {};
805                  for (i in t) ((e = t[i]), (n[i] = e && e.bind ? e.bind(t) : e));
806                  return (((t = n).type = 'dblclick'), (n.detail = 2), (n.isTrusted = !1), (n._simulated = !0), n);
807                })(t)
808              )
809            : (n = 1),
810          (o = e));
811    }
812    return (t.addEventListener('click', e), { dblclick: i, simDblclick: e });
813  }
814  var oe,
815    se,
816    re,
817    ae,
818    he,
819    le,
820    ue = we(['transform', 'webkitTransform', 'OTransform', 'MozTransform', 'msTransform']),
821    ce = we(['webkitTransition', 'transition', 'OTransition', 'MozTransition', 'msTransition']),
822    de = 'webkitTransition' === ce || 'OTransition' === ce ? ce + 'End' : 'transitionend';
823  function _e(t) {
824    return 'string' == typeof t ? document.getElementById(t) : t;
825  }
826  function pe(t, e) {
827    var i = t.style[e] || (t.currentStyle && t.currentStyle[e]);
828    return 'auto' === (i = (i && 'auto' !== i) || !document.defaultView ? i : (t = document.defaultView.getComputedStyle(t, null)) ? t[e] : null) ? null : i;
829  }
830  function P(t, e, i) {
831    t = document.createElement(t);
832    return ((t.className = e || ''), i && i.appendChild(t), t);
833  }
834  function T(t) {
835    var e = t.parentNode;
836    e && e.removeChild(t);
837  }
838  function me(t) {
839    for (; t.firstChild; ) t.removeChild(t.firstChild);
840  }
841  function fe(t) {
842    var e = t.parentNode;
843    e && e.lastChild !== t && e.appendChild(t);
844  }
845  function ge(t) {
846    var e = t.parentNode;
847    e && e.firstChild !== t && e.insertBefore(t, e.firstChild);
848  }
849  function ve(t, e) {
850    return void 0 !== t.classList ? t.classList.contains(e) : 0 < (t = xe(t)).length && new RegExp('(^|\\s)' + e + '(\\s|$)').test(t);
851  }
852  function M(t, e) {
853    var i;
854    if (void 0 !== t.classList) for (var n = F(e), o = 0, s = n.length; o < s; o++) t.classList.add(n[o]);
855    else ve(t, e) || ye(t, ((i = xe(t)) ? i + ' ' : '') + e);
856  }
857  function z(t, e) {
858    void 0 !== t.classList ? t.classList.remove(e) : ye(t, W((' ' + xe(t) + ' ').replace(' ' + e + ' ', ' ')));
859  }
860  function ye(t, e) {
861    void 0 === t.className.baseVal ? (t.className = e) : (t.className.baseVal = e);
862  }
863  function xe(t) {
864    return void 0 === (t = t.correspondingElement ? t.correspondingElement : t).className.baseVal ? t.className : t.className.baseVal;
865  }
866  function C(t, e) {
867    if ('opacity' in t.style) t.style.opacity = e;
868    else if ('filter' in t.style) {
869      var i = !1,
870        n = 'DXImageTransform.Microsoft.Alpha';
871      try {
872        i = t.filters.item(n);
873      } catch (t) {
874        if (1 === e) return;
875      }
876      ((e = Math.round(100 * e)), i ? ((i.Enabled = 100 !== e), (i.Opacity = e)) : (t.style.filter += ' progid:' + n + '(opacity=' + e + ')'));
877    }
878  }
879  function we(t) {
880    for (var e = document.documentElement.style, i = 0; i < t.length; i++) if (t[i] in e) return t[i];
881    return !1;
882  }
883  function be(t, e, i) {
884    e = e || new p(0, 0);
885    t.style[ue] = (b.ie3d ? 'translate(' + e.x + 'px,' + e.y + 'px)' : 'translate3d(' + e.x + 'px,' + e.y + 'px,0)') + (i ? ' scale(' + i + ')' : '');
886  }
887  function Z(t, e) {
888    ((t._leaflet_pos = e), b.any3d ? be(t, e) : ((t.style.left = e.x + 'px'), (t.style.top = e.y + 'px')));
889  }
890  function Pe(t) {
891    return t._leaflet_pos || new p(0, 0);
892  }
893  function Le() {
894    S(window, 'dragstart', O);
895  }
896  function Te() {
897    k(window, 'dragstart', O);
898  }
899  function Me(t) {
900    for (; -1 === t.tabIndex; ) t = t.parentNode;
901    t.style && (ze(), (le = (he = t).style.outlineStyle), (t.style.outlineStyle = 'none'), S(window, 'keydown', ze));
902  }
903  function ze() {
904    he && ((he.style.outlineStyle = le), (le = he = void 0), k(window, 'keydown', ze));
905  }
906  function Ce(t) {
907    for (; !(((t = t.parentNode).offsetWidth && t.offsetHeight) || t === document.body); );
908    return t;
909  }
910  function Ze(t) {
911    var e = t.getBoundingClientRect();
912    return {
913      x: e.width / t.offsetWidth || 1,
914      y: e.height / t.offsetHeight || 1,
915      boundingClientRect: e,
916    };
917  }
918  ae =
919    'onselectstart' in document
920      ? ((re = function () {
921          S(window, 'selectstart', O);
922        }),
923        function () {
924          k(window, 'selectstart', O);
925        })
926      : ((se = we(['userSelect', 'WebkitUserSelect', 'OUserSelect', 'MozUserSelect', 'msUserSelect'])),
927        (re = function () {
928          var t;
929          se && ((t = document.documentElement.style), (oe = t[se]), (t[se] = 'none'));
930        }),
931        function () {
932          se && ((document.documentElement.style[se] = oe), (oe = void 0));
933        });
934  pt = {
935    __proto__: null,
936    TRANSFORM: ue,
937    TRANSITION: ce,
938    TRANSITION_END: de,
939    get: _e,
940    getStyle: pe,
941    create: P,
942    remove: T,
943    empty: me,
944    toFront: fe,
945    toBack: ge,
946    hasClass: ve,
947    addClass: M,
948    removeClass: z,
949    setClass: ye,
950    getClass: xe,
951    setOpacity: C,
952    testProp: we,
953    setTransform: be,
954    setPosition: Z,
955    getPosition: Pe,
956    get disableTextSelection() {
957      return re;
958    },
959    get enableTextSelection() {
960      return ae;
961    },
962    disableImageDrag: Le,
963    enableImageDrag: Te,
964    preventOutline: Me,
965    restoreOutline: ze,
966    getSizedParentNode: Ce,
967    getScale: Ze,
968  };
969  function S(t, e, i, n) {
970    if (e && 'object' == typeof e) for (var o in e) ke(t, o, e[o], i);
971    else for (var s = 0, r = (e = F(e)).length; s < r; s++) ke(t, e[s], i, n);
972    return this;
973  }
974  var E = '_leaflet_events';
975  function k(t, e, i, n) {
976    if (1 === arguments.length) (Se(t), delete t[E]);
977    else if (e && 'object' == typeof e) for (var o in e) Oe(t, o, e[o], i);
978    else if (((e = F(e)), 2 === arguments.length))
979      Se(t, function (t) {
980        return -1 !== G(e, t);
981      });
982    else for (var s = 0, r = e.length; s < r; s++) Oe(t, e[s], i, n);
983    return this;
984  }
985  function Se(t, e) {
986    for (var i in t[E]) {
987      var n = i.split(/\d/)[0];
988      (e && !e(n)) || Oe(t, n, null, null, i);
989    }
990  }
991  var Ee = {
992    mouseenter: 'mouseover',
993    mouseleave: 'mouseout',
994    wheel: !('onwheel' in window) && 'mousewheel',
995  };
996  function ke(e, t, i, n) {
997    var o,
998      s,
999      r = t + h(i) + (n ? '_' + h(n) : '');
1000    (e[E] && e[E][r]) ||
1001      ((s = o =
1002        function (t) {
1003          return i.call(n || e, t || window.event);
1004        }),
1005      !b.touchNative && b.pointer && 0 === t.indexOf('touch')
1006        ? (o = Jt(e, t, o))
1007        : b.touch && 'dblclick' === t
1008          ? (o = ne(e, o))
1009          : 'addEventListener' in e
1010            ? 'touchstart' === t || 'touchmove' === t || 'wheel' === t || 'mousewheel' === t
1011              ? e.addEventListener(Ee[t] || t, o, !!b.passiveEvents && { passive: !1 })
1012              : 'mouseenter' === t || 'mouseleave' === t
1013                ? e.addEventListener(
1014                    Ee[t],
1015                    (o = function (t) {
1016                      ((t = t || window.event), We(e, t) && s(t));
1017                    }),
1018                    !1
1019                  )
1020                : e.addEventListener(t, s, !1)
1021            : e.attachEvent('on' + t, o),
1022      (e[E] = e[E] || {}),
1023      (e[E][r] = o));
1024  }
1025  function Oe(t, e, i, n, o) {
1026    o = o || e + h(i) + (n ? '_' + h(n) : '');
1027    var s,
1028      r,
1029      i = t[E] && t[E][o];
1030    i &&
1031      (!b.touchNative && b.pointer && 0 === e.indexOf('touch')
1032        ? ((n = t), (r = i), Gt[(s = e)] ? n.removeEventListener(Gt[s], r, !1) : console.warn('wrong event specified:', s))
1033        : b.touch && 'dblclick' === e
1034          ? ((n = i), (r = t).removeEventListener('dblclick', n.dblclick), r.removeEventListener('click', n.simDblclick))
1035          : 'removeEventListener' in t
1036            ? t.removeEventListener(Ee[e] || e, i, !1)
1037            : t.detachEvent('on' + e, i),
1038      (t[E][o] = null));
1039  }
1040  function Ae(t) {
1041    return (t.stopPropagation ? t.stopPropagation() : t.originalEvent ? (t.originalEvent._stopped = !0) : (t.cancelBubble = !0), this);
1042  }
1043  function Be(t) {
1044    return (ke(t, 'wheel', Ae), this);
1045  }
1046  function Ie(t) {
1047    return (S(t, 'mousedown touchstart dblclick contextmenu', Ae), (t._leaflet_disable_click = !0), this);
1048  }
1049  function O(t) {
1050    return (t.preventDefault ? t.preventDefault() : (t.returnValue = !1), this);
1051  }
1052  function Re(t) {
1053    return (O(t), Ae(t), this);
1054  }
1055  function Ne(t) {
1056    if (t.composedPath) return t.composedPath();
1057    for (var e = [], i = t.target; i; ) (e.push(i), (i = i.parentNode));
1058    return e;
1059  }
1060  function De(t, e) {
1061    var i, n;
1062    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);
1063  }
1064  var je = b.linux && b.chrome ? window.devicePixelRatio : b.mac ? 3 * window.devicePixelRatio : 0 < window.devicePixelRatio ? 2 * window.devicePixelRatio : 1;
1065  function He(t) {
1066    return b.edge
1067      ? t.wheelDeltaY / 2
1068      : t.deltaY && 0 === t.deltaMode
1069        ? -t.deltaY / je
1070        : t.deltaY && 1 === t.deltaMode
1071          ? 20 * -t.deltaY
1072          : t.deltaY && 2 === t.deltaMode
1073            ? 60 * -t.deltaY
1074            : t.deltaX || t.deltaZ
1075              ? 0
1076              : t.wheelDelta
1077                ? (t.wheelDeltaY || t.wheelDelta) / 2
1078                : t.detail && Math.abs(t.detail) < 32765
1079                  ? 20 * -t.detail
1080                  : t.detail
1081                    ? (t.detail / -32765) * 60
1082                    : 0;
1083  }
1084  function We(t, e) {
1085    var i = e.relatedTarget;
1086    if (!i) return !0;
1087    try {
1088      for (; i && i !== t; ) i = i.parentNode;
1089    } catch (t) {
1090      return !1;
1091    }
1092    return i !== t;
1093  }
1094  var mt = {
1095      __proto__: null,
1096      on: S,
1097      off: k,
1098      stopPropagation: Ae,
1099      disableScrollPropagation: Be,
1100      disableClickPropagation: Ie,
1101      preventDefault: O,
1102      stop: Re,
1103      getPropagationPath: Ne,
1104      getMousePosition: De,
1105      getWheelDelta: He,
1106      isExternalTarget: We,
1107      addListener: S,
1108      removeListener: k,
1109    },
1110    Fe = it.extend({
1111      run: function (t, e, i, n) {
1112        (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());
1113      },
1114      stop: function () {
1115        this._inProgress && (this._step(!0), this._complete());
1116      },
1117      _animate: function () {
1118        ((this._animId = x(this._animate, this)), this._step());
1119      },
1120      _step: function (t) {
1121        var e = +new Date() - this._startTime,
1122          i = 1e3 * this._duration;
1123        e < i ? this._runFrame(this._easeOut(e / i), t) : (this._runFrame(1), this._complete());
1124      },
1125      _runFrame: function (t, e) {
1126        t = this._startPos.add(this._offset.multiplyBy(t));
1127        (e && t._round(), Z(this._el, t), this.fire('step'));
1128      },
1129      _complete: function () {
1130        (r(this._animId), (this._inProgress = !1), this.fire('end'));
1131      },
1132      _easeOut: function (t) {
1133        return 1 - Math.pow(1 - t, this._easeOutPower);
1134      },
1135    }),
1136    A = it.extend({
1137      options: {
1138        crs: lt,
1139        center: void 0,
1140        zoom: void 0,
1141        minZoom: void 0,
1142        maxZoom: void 0,
1143        layers: [],
1144        maxBounds: void 0,
1145        renderer: void 0,
1146        zoomAnimation: !0,
1147        zoomAnimationThreshold: 4,
1148        fadeAnimation: !0,
1149        markerZoomAnimation: !0,
1150        transform3DLimit: 8388608,
1151        zoomSnap: 1,
1152        zoomDelta: 1,
1153        trackResize: !0,
1154      },
1155      initialize: function (t, e) {
1156        ((e = c(this, e)),
1157          (this._handlers = []),
1158          (this._layers = {}),
1159          (this._zoomBoundLayers = {}),
1160          (this._sizeChanged = !0),
1161          this._initContainer(t),
1162          this._initLayout(),
1163          (this._onResize = a(this._onResize, this)),
1164          this._initEvents(),
1165          e.maxBounds && this.setMaxBounds(e.maxBounds),
1166          void 0 !== e.zoom && (this._zoom = this._limitZoom(e.zoom)),
1167          e.center && void 0 !== e.zoom && this.setView(w(e.center), e.zoom, { reset: !0 }),
1168          this.callInitHooks(),
1169          (this._zoomAnimated = ce && b.any3d && !b.mobileOpera && this.options.zoomAnimation),
1170          this._zoomAnimated && (this._createAnimProxy(), S(this._proxy, de, this._catchTransitionEnd, this)),
1171          this._addLayers(this.options.layers));
1172      },
1173      setView: function (t, e, i) {
1174        if (
1175          ((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) &&
1176          (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))
1177        )
1178          return (clearTimeout(this._sizeTimer), this);
1179        return (this._resetView(t, e, i.pan && i.pan.noMoveStart), this);
1180      },
1181      setZoom: function (t, e) {
1182        return this._loaded ? this.setView(this.getCenter(), t, { zoom: e }) : ((this._zoom = t), this);
1183      },
1184      zoomIn: function (t, e) {
1185        return ((t = t || (b.any3d ? this.options.zoomDelta : 1)), this.setZoom(this._zoom + t, e));
1186      },
1187      zoomOut: function (t, e) {
1188        return ((t = t || (b.any3d ? this.options.zoomDelta : 1)), this.setZoom(this._zoom - t, e));
1189      },
1190      setZoomAround: function (t, e, i) {
1191        var n = this.getZoomScale(e),
1192          o = this.getSize().divideBy(2),
1193          t = (t instanceof p ? t : this.latLngToContainerPoint(t)).subtract(o).multiplyBy(1 - 1 / n),
1194          n = this.containerPointToLatLng(o.add(t));
1195        return this.setView(n, e, { zoom: i });
1196      },
1197      _getBoundsCenterZoom: function (t, e) {
1198        ((e = e || {}), (t = t.getBounds ? t.getBounds() : g(t)));
1199        var i = m(e.paddingTopLeft || e.padding || [0, 0]),
1200          n = m(e.paddingBottomRight || e.padding || [0, 0]),
1201          o = this.getBoundsZoom(t, !1, i.add(n));
1202        return (o = 'number' == typeof e.maxZoom ? Math.min(e.maxZoom, o) : o) === 1 / 0
1203          ? { center: t.getCenter(), zoom: o }
1204          : ((e = n.subtract(i).divideBy(2)),
1205            (n = this.project(t.getSouthWest(), o)),
1206            (i = this.project(t.getNorthEast(), o)),
1207            {
1208              center: this.unproject(n.add(i).divideBy(2).add(e), o),
1209              zoom: o,
1210            });
1211      },
1212      fitBounds: function (t, e) {
1213        if ((t = g(t)).isValid()) return ((t = this._getBoundsCenterZoom(t, e)), this.setView(t.center, t.zoom, e));
1214        throw new Error('Bounds are not valid.');
1215      },
1216      fitWorld: function (t) {
1217        return this.fitBounds(
1218          [
1219            [-90, -180],
1220            [90, 180],
1221          ],
1222          t
1223        );
1224      },
1225      panTo: function (t, e) {
1226        return this.setView(t, this._zoom, { pan: e });
1227      },
1228      panBy: function (t, e) {
1229        var i;
1230        return (
1231          (e = e || {}),
1232          (t = m(t).round()).x || t.y
1233            ? (!0 === e.animate || this.getSize().contains(t)
1234                ? (this._panAnim ||
1235                    ((this._panAnim = new Fe()),
1236                    this._panAnim.on(
1237                      {
1238                        step: this._onPanTransitionStep,
1239                        end: this._onPanTransitionEnd,
1240                      },
1241                      this
1242                    )),
1243                  e.noMoveStart || this.fire('movestart'),
1244                  !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')))
1245                : this._resetView(this.unproject(this.project(this.getCenter()).add(t)), this.getZoom()),
1246              this)
1247            : this.fire('moveend')
1248        );
1249      },
1250      flyTo: function (n, o, t) {
1251        if (!1 === (t = t || {}).animate || !b.any3d) return this.setView(n, o, t);
1252        this._stop();
1253        var s = this.project(this.getCenter()),
1254          r = this.project(n),
1255          e = this.getSize(),
1256          a = this._zoom,
1257          h = ((n = w(n)), (o = void 0 === o ? a : o), Math.max(e.x, e.y)),
1258          i = h * this.getZoomScale(a, o),
1259          l = r.distanceTo(s) || 1,
1260          u = 1.42,
1261          c = u * u;
1262        function d(t) {
1263          ((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));
1264          return t < 1e-9 ? -18 : Math.log(t);
1265        }
1266        function _(t) {
1267          return (Math.exp(t) - Math.exp(-t)) / 2;
1268        }
1269        function p(t) {
1270          return (Math.exp(t) + Math.exp(-t)) / 2;
1271        }
1272        var m = d(0);
1273        function f(t) {
1274          return (h * (p(m) * (_((t = m + u * t)) / p(t)) - _(m))) / c;
1275        }
1276        var g = Date.now(),
1277          v = (d(1) - m) / u,
1278          y = t.duration ? 1e3 * t.duration : 1e3 * v * 0.8;
1279        return (
1280          this._moveStart(!0, t.noMoveStart),
1281          function t() {
1282            var e = (Date.now() - g) / y,
1283              i = (1 - Math.pow(1 - e, 1.5)) * v;
1284            e <= 1 ? ((this._flyToFrame = x(t, this)), this._move(this.unproject(s.add(r.subtract(s).multiplyBy(f(i) / l)), a), this.get
1284ScaleZoom(h / ((e = i), h * (p(m) / p(m + u * e))), a), { flyTo: !0 })) : this._move(n, o)._moveEnd(!0);
1285          }.call(this),
1286          this
1287        );
1288      },
1289      flyToBounds: function (t, e) {
1290        t = this._getBoundsCenterZoom(t, e);
1291        return this.flyTo(t.center, t.zoom, e);
1292      },
1293      setMaxBounds: function (t) {
1294        return (
1295          (t = g(t)),
1296          this.listens('moveend', this._panInsideMaxBounds) && this.off('moveend', this._panInsideMaxBounds),
1297          t.isValid() ? ((this.options.maxBounds = t), this._loaded && this._panInsideMaxBounds(), this.on('moveend', this._panInsideMaxBounds)) : ((this.options.maxBounds = null), this)
1298        );
1299      },
1300      setMinZoom: function (t) {
1301        var e = this.options.minZoom;
1302        return ((this.options.minZoom = t), this._loaded && e !== t && (this.fire('zoomlevelschange'), this.getZoom() < this.options.minZoom) ? this.setZoom(t) : this);
1303      },
1304      setMaxZoom: function (t) {
1305        var e = this.options.maxZoom;
1306        return ((this.options.maxZoom = t), this._loaded && e !== t && (this.fire('zoomlevelschange'), this.getZoom() > this.options.maxZoom) ? this.setZoom(t) : this);
1307      },
1308      panInsideBounds: function (t, e) {
1309        this._enforcingBounds = !0;
1310        var i = this.getCenter(),
1311          t = this._limitCenter(i, this._zoom, g(t));
1312        return (i.equals(t) || this.panTo(t, e), (this._enforcingBounds = !1), this);
1313      },
1314      panInside: function (t, e) {
1315        var i = m((e = e || {}).paddingTopLeft || e.padding || [0, 0]),
1316          n = m(e.paddingBottomRight || e.padding || [0, 0]),
1317          o = this.project(this.getCenter()),
1318          t = this.project(t),
1319          s = this.getPixelBounds(),
1320          i = _([s.min.add(i), s.max.subtract(n)]),
1321          s = i.getSize();
1322        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);
1323      },
1324      invalidateSize: function (t) {
1325        if (!this._loaded) return this;
1326        t = l({ animate: !1, pan: !0 }, !0 === t ? { animate: !0 } : t);
1327        var e = this.getSize(),
1328          i = ((this._sizeChanged = !0), (this._lastCenter = null), this.getSize()),
1329          n = e.divideBy(2).round(),
1330          o = i.divideBy(2).round(),
1331          n = n.subtract(o);
1332        return n.x || n.y
1333          ? (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 }))
1334          : this;
1335      },
1336      stop: function () {
1337        return (this.setZoom(this._limitZoom(this._zoom)), this.options.zoomSnap || this.fire('viewreset'), this._stop());
1338      },
1339      locate: function (t) {
1340        var e, i;
1341        return (
1342          (t = this._locateOptions = l({ timeout: 1e4, watch: !1 }, t)),
1343          'geolocation' in navigator
1344            ? ((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))
1345            : this._handleGeolocationError({
1346                code: 0,
1347                message: 'Geolocation not supported.',
1348              }),
1349          this
1350        );
1351      },
1352      stopLocate: function () {
1353        return (navigator.geolocation && navigator.geolocation.clearWatch && navigator.geolocation.clearWatch(this._locationWatchId), this._locateOptions && (this._locateOptions.setView = !1), this);
1354      },
1355      _handleGeolocationError: function (t) {
1356        var e;
1357        this._container._leaflet_id &&
1358          ((e = t.code),
1359          (t = t.message || (1 === e ? 'permission denied' : 2 === e ? 'position unavailable' : 'timeout')),
1360          this._locateOptions.setView && !this._loaded && this.fitWorld(),
1361          this.fire('locationerror', {
1362            code: e,
1363            message: 'Geolocation error: ' + t + '.',
1364          }));
1365      },
1366      _handleGeolocationResponse: function (t) {
1367        if (this._container._leaflet_id) {
1368          var e,
1369            i,
1370            n = new v(t.coords.latitude, t.coords.longitude),
1371            o = n.toBounds(2 * t.coords.accuracy),
1372            s = this._locateOptions,
1373            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 });
1374          for (i in t.coords) 'number' == typeof t.coords[i] && (r[i] = t.coords[i]);
1375          this.fire('locationfound', r);
1376        }
1377      },
1378      addHandler: function (t, e) {
1379        return (e && ((e = this[t] = new e(this)), this._handlers.push(e), this.options[t] && e.enable()), this);
1380      },
1381      remove: function () {
1382        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');
1383        try {
1384          (delete this._container._leaflet_id, delete this._containerId);
1385        } catch (t) {
1386          ((this._container._leaflet_id = void 0), (this._containerId = void 0));
1387        }
1388        for (var t in (void 0 !== this._locationWatchId && this.stopLocate(),
1389        this._stop(),
1390        T(this._mapPane),
1391        this._clearControlPos && this._clearControlPos(),
1392        this._resizeRequest && (r(this._resizeRequest), (this._resizeRequest = null)),
1393        this._clearHandlers(),
1394        this._loaded && this.fire('unload'),
1395        this._layers))
1396          this._layers[t].remove();
1397        for (t in this._panes) T(this._panes[t]);
1398        return ((this._layers = []), (this._panes = []), delete this._mapPane, delete this._renderer, this);
1399      },
1400      createPane: function (t, e) {
1401        e = P('div', 'leaflet-pane' + (t ? ' leaflet-' + t.replace('Pane', '') + '-pane' : ''), e || this._mapPane);
1402        return (t && (this._panes[t] = e), e);
1403      },
1404      getCenter: function () {
1405        return (this._checkIfLoaded(), this._lastCenter && !this._moved() ? this._lastCenter.clone() : this.layerPointToLatLng(this._getCenterLayerPoint()));
1406      },
1407      getZoom: function () {
1408        return this._zoom;
1409      },
1410      getBounds: function () {
1411        var t = this.getPixelBounds();
1412        return new s(this.unproject(t.getBottomLeft()), this.unproject(t.getTopRight()));
1413      },
1414      getMinZoom: function () {
1415        return void 0 === this.options.minZoom ? this._layersMinZoom || 0 : this.options.minZoom;
1416      },
1417      getMaxZoom: function () {
1418        return void 0 === this.options.maxZoom ? (void 0 === this._layersMaxZo
1418om ? 1 / 0 : this._layersMaxZoom) : this.options.maxZoom;
1419      },
1420      getBoundsZoom: function (t, e, i) {
1421        ((t = g(t)), (i = m(i || [0, 0])));
1422        var n = this.getZoom() || 0,
1423          o = this.getMinZoom(),
1424          s = this.getMaxZoom(),
1425          r = t.getNorthWest(),
1426          t = t.getSouthEast(),
1427          i = this.getSize().subtract(i),
1428          t = _(this.project(t, n), this.project(r, n)).getSize(),
1429          r = b.any3d ? this.options.zoomSnap : 1,
1430          a = i.x / t.x,
1431          i = i.y / t.y,
1432          t = e ? Math.max(a, i) : Math.min(a, i),
1433          n = this.getScaleZoom(t, n);
1434        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)));
1435      },
1436      getSize: function () {
1437        return ((this._size && !this._sizeChanged) || ((this._size = new p(this._container.clientWidth || 0, this._container.clientHeight || 0)), (this._sizeChanged = !1)), this._size.clone());
1438      },
1439      getPixelBounds: function (t, e) {
1440        t = this._getTopLeftPoint(t, e);
1441        return new f(t, t.add(this.getSize()));
1442      },
1443      getPixelOrigin: function () {
1444        return (this._checkIfLoaded(), this._pixelOrigin);
1445      },
1446      getPixelWorldBounds: function (t) {
1447        return this.options.crs.getProjectedBounds(void 0 === t ? this.getZoom() : t);
1448      },
1449      getPane: function (t) {
1450        return 'string' == typeof t ? this._panes[t] : t;
1451      },
1452      getPanes: function () {
1453        return this._panes;
1454      },
1455      getContainer: function () {
1456        return this._container;
1457      },
1458      getZoomScale: function (t, e) {
1459        var i = this.options.crs;
1460        return ((e = void 0 === e ? this._zoom : e), i.scale(t) / i.scale(e));
1461      },
1462      getScaleZoom: function (t, e) {
1463        var i = this.options.crs,
1464          t = ((e = void 0 === e ? this._zoom : e), i.zoom(t * i.scale(e)));
1465        return isNaN(t) ? 1 / 0 : t;
1466      },
1467      project: function (t, e) {
1468        return ((e = void 0 === e ? this._zoom : e), this.options.crs.latLngToPoint(w(t), e));
1469      },
1470      unproject: function (t, e) {
1471        return ((e = void 0 === e ? this._zoom : e), this.options.crs.pointToLatLng(m(t), e));
1472      },
1473      layerPointToLatLng: function (t) {
1474        t = m(t).add(this.getPixelOrigin());
1475        return this.unproject(t);
1476      },
1477      latLngToLayerPoint: function (t) {
1478        return this.project(w(t))._round()._subtract(this.getPixelOrigin());
1479      },
1480      wrapLatLng: function (t) {
1481        return this.options.crs.wrapLatLng(w(t));
1482      },
1483      wrapLatLngBounds: function (t) {
1484        return this.options.crs.wrapLatLngBounds(g(t));
1485      },
1486      distance: function (t, e) {
1487        return this.options.crs.distance(w(t), w(e));
1488      },
1489      containerPointToLayerPoint: function (t) {
1490        return m(t).subtract(this._getMapPanePos());
1491      },
1492      layerPointToContainerPoint: function (t) {
1493        return m(t).add(this._getMapPanePos());
1494      },
1495      containerPointToLatLng: function (t) {
1496        t = this.containerPointToLayerPoint(m(t));
1497        return this.layerPointToLatLng(t);
1498      },
1499      latLngToContainerPoint: function (t) {
1500        return this.layerPointToContainerPoint(this.latLngToLayerPoint(w(t)));
1501      },
1502      mouseEventToContainerPoint: function (t) {
1503        return De(t, this._container);
1504      },
1505      mouseEventToLayerPoint: function (t) {
1506        return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t));
1507      },
1508      mouseEventToLatLng: function (t) {
1509        return this.layerPointToLatLng(this.mouseEventToLayerPoint(t));
1510      },
1511      _initContainer: function (t) {
1512        t = this._container = _e(t);
1513        if (!t) throw new Error('Map container not found.');
1514        if (t._leaflet_id) throw new Error('Map container is already initialized.');
1515        (S(t, 'scroll', this._onScroll, this), (this._containerId = h(t)));
1516      },
1517      _initLayout: function () {
1518        var t = this._container,
1519          e =
1520            ((this._fadeAnimated = this.options.fadeAnimation && b.any3d),
1521            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' : '')),
1522            pe(t, 'position'));
1523        ('absolute' !== e && 'relative' !== e && 'fixed' !== e && 'sticky' !== e && (t.style.position = 'relative'), this._initPanes(), this._initControlPos && this._initControlPos());
1524      },
1525      _initPanes: function () {
1526        var t = (this._panes = {});
1527        ((this._paneRenderers = {}),
1528          (this._mapPane = this.createPane('mapPane', this._container)),
1529          Z(this._mapPane, new p(0, 0)),
1530          this.createPane('tilePane'),
1531          this.createPane('overlayPane'),
1532          this.createPane('shadowPane'),
1533          this.createPane('markerPane'),
1534          this.createPane('tooltipPane'),
1535          this.createPane('popupPane'),
1536          this.options.markerZoomAnimation || (M(t.markerPane, 'leaflet-zoom-hide'), M(t.shadowPane, 'leaflet-zoom-hide')));
1537      },
1538      _resetView: function (t, e, i) {
1539        Z(this._mapPane, new p(0, 0));
1540        var n = !this._loaded,
1541          o = ((this._loaded = !0), (e = this._limitZoom(e)), this.fire('viewprereset'), this._zoom !== e);
1542        (this._moveStart(o, i)._move(t, e)._moveEnd(o), this.fire('viewreset'), n && this.fire('load'));
1543      },
1544      _moveStart: function (t, e) {
1545        return (t && this.fire('zoomstart'), e || this.fire('movestart'), this);
1546      },
1547      _move: function (t, e, i, n) {
1548        void 0 === e && (e = this._zoom);
1549        var o = this._zoom !== e;
1550        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);
1551      },
1552      _moveEnd: function (t) {
1553        return (t && this.fire('zoomend'), this.fire('moveend'));
1554      },
1555      _stop: function () {
1556        return (r(this._flyToFrame), this._panAnim && this._panAnim.stop(), this);
1557      },
1558      _rawPanBy: function (t) {
1559        Z(this._mapPane, this._getMapPanePos().subtract(t));
1560      },
1561      _getZoomSpan: function () {
1562        return this.getMaxZoom() - this.getMinZoom();
1563      },
1564      _panInsideMaxBounds: function () {
1565        this._enforcingBounds || this.panInsideBounds(this.options.maxBounds);
1566      },
1567      _checkIfLoaded: function () {
1568        if (!this._loaded) throw new Error('Set map center and zoom first.');
1569      },
1570      _initEvents: function (t) {
1571        this._targets = {};
1572        var e = t ? k : S;
1573        (e((this._targets[h(this._container)] = this)._container, 'click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup', this._handleDOMEvent, this),
1574          this.options.trackResize && e(window, 'resize', this._onResize, this),
1575          b.any3d && this.options.transform3DLimit && (t ? this.off : this.on).call(this, 'moveend', this._onMoveEnd));
1576      },
1577      _onResize: function () {
1578        (r(this._resizeRequest),
1579          (this._resizeRequest = x(function () {
1580            this.invalidateSize({ debounceMoveend: !0 });
1581          }, this)));
1582      },
1583      _onScroll: function () {
1584        ((this._container.scrollTop = 0), (this._container.scrollLeft = 0));
1585      },
1586      _onMoveEnd: function () {
1587        var t = this._getMapPanePos();
1588        Math.max(Math.abs(t.x), Math.abs(t.y)) >= this.options.transform3DLimit && this._resetView(this.getCenter(), this.getZoom());
1589      },
1590      _findEventTargets: function (t, e) {
1591        for (var i, n = [], o = 'mouseout' === e || 'mouseover' === e, s = t.target || t.srcElement, r = !1; s; ) {
1592          if ((i = this._targets[h(s)]) && ('click' === e || 'preclick' === e) && this._draggableMoved(i)) {
1593            r = !0;
1594            break;
1595          }
1596          if (i && i.listens(e, !0)) {
1597            if (o && !We(s, t)) break;
1598            if ((n.push(i), o)) break;
1599          }
1600          if (s === this._container) break;
1601          s = s.parentNode;
1602        }
1603        return (n = n.length || r || o || !this.listens(e, !0) ? n : [this]);
1604      },
1605      _isClickDisabled: function (t) {
1606        for (; t && t !== this._container; ) {
1607          if (t._leaflet_disable_click) return !0;
1608          t = t.parentNode;
1609        }
1610      },
1611      _handleDOMEvent: function (t) {
1612        var e,
1613          i = t.target || t.srcElement;
1614        !this._loaded || i._leaflet_disable_events || ('click' === t.type && this._isClickDisabled(i)) || ('mousedown' === (e = t.type) && Me(i), this._fireDOMEvent(t, e));
1615      },
1616      _mouseEvents: ['click', 'dblclick', 'mouseover', 'mouseout', 'contextmenu'],
1617      _fireDOMEvent: function (t, e, i) {
1618        'click' === t.type && (((a = l({}, t)).type = 'preclick'), this._fireDOMEvent(a, a.type, i));
1619        var n = this._findEventTargets(t, e);
1620        if (i) {
1621          for (var o = [], s = 0; s < i.length; s++) i[s].listens(e, !0) && o.push(i[s]);
1622          n = o.concat(n);
1623        }
1624        if (n.length) {
1625          'contextmenu' === e && O(t);
1626          var r,
1627            a = n[0],
1628            h = { originalEvent: t };
1629          for (
1630            'keypress' !== t.type &&
1631              'keydown' !== t.type &&
1632              'keyup' !== t.type &&
1633              ((r = a.getLatLng && (!a._radius || a._radius <= 10)),
1634              (h.containerPoint = r ? this.latLngToContainerPoint(a.getLatLng()) : this.mouseEventToContainerPoint(t)),
1635              (h.layerPoint = this.containerPointToLayerPoint(h.containerPoint)),
1636              (h.latlng = r ? a.getLatLng() : this.layerPointToLatLng(h.layerPoint))),
1637              s = 0;
1638            s < n.length;
1639            s++
1640          )
1641            if ((n[s].fire(e, h, !0), h.originalEvent._stopped || (!1 === n[s].options.bubblingMouseEvents && -1 !== G(this._mouseEvents, e)))) return;
1642        }
1643      },
1644      _draggableMoved: function (t) {
1645        return ((t = t.dragging && t.dragging.enabled() ? t : this).dragging && t.dragging.moved()) || (this.boxZoom && this.boxZoom.moved());
1646      },
1647      _clearHandlers: function () {
1648        for (var t = 0, e = this._handlers.length; t < e; t++) this._handlers[t].disable();
1649      },
1650      whenReady: function (t, e) {
1651        return (this._loaded ? t.call(e || this, { target: this }) : this.on('load', t, e), this);
1652      },
1653      _getMapPanePos: function () {
1654        return Pe(this._mapPane) || new p(0, 0);
1655      },
1656      _moved: function () {
1657        var t = this._getMapPanePos();
1658        return t && !t.equals([0, 0]);
1659      },
1660      _getTopLeftPoint: function (t, e) {
1661        return (t && void 0 !== e ? this._getNewPixelOrigin(t, e) : this.getPixelOrigin()).subtract(this._getMapPanePos());
1662      },
1663      _getNewPixelOrigin: function (t, e) {
1664        var i = this.getSize()._divideBy(2);
1665        return this.project(t, e)._subtract(i)._add(this._getMapPanePos())._round();
1666      },
1667      _latLngToNewLayerPoint: function (t, e, i) {
1668        i = this._getNewPixelOrigin(i, e);
1669        return this.project(t, e)._subtract(i);
1670      },
1671      _latLngBoundsToNewLayerBounds: function (t, e, i) {
1672        i = this._getNewPixelOrigin(i, e);
1673        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)]);
1674      },
1675      _getCenterLayerPoint: function () {
1676        return this.containerPointToLayerPoint(this.getSize()._divideBy(2));
1677      },
1678      _getCenterOffset: function (t) {
1679        return this.latLngToLayerPoint(t).subtract(this._getCenterLayerPoint());
1680      },
1681      _limitCenter: function (t, e, i) {
1682        var n, o;
1683        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);
1684      },
1685      _limitOffset: function (t, e) {
1686        var i;
1687        return e ? ((i = new f((i = this.getPixelBounds()).min.add(t), i.max.add(t))), t.add(this._getBoundsOffset(i, e))) : t;
1688      },
1689      _getBoundsOffset: function (t, e, i) {
1690        ((e = _(this.project(e.getNorthEast(), i), this.project(e.getSouthWest
1690(), i))), (i = e.min.subtract(t.min)), (e = e.max.subtract(t.max)));
1691        return new p(this._rebound(i.x, -e.x), this._rebound(i.y, -e.y));
1692      },
1693      _rebound: function (t, e) {
1694        return 0 < t + e ? Math.round(t - e) / 2 : Math.max(0, Math.ceil(t)) - Math.max(0, Math.floor(e));
1695      },
1696      _limitZoom: function (t) {
1697        var e = this.getMinZoom(),
1698          i = this.getMaxZoom(),
1699          n = b.any3d ? this.options.zoomSnap : 1;
1700        return (n && (t = Math.round(t / n) * n), Math.max(e, Math.min(i, t)));
1701      },
1702      _onPanTransitionStep: function () {
1703        this.fire('move');
1704      },
1705      _onPanTransitionEnd: function () {
1706        (z(this._mapPane, 'leaflet-pan-anim'), this.fire('moveend'));
1707      },
1708      _tryAnimatedPan: function (t, e) {
1709        t = this._getCenterOffset(t)._trunc();
1710        return !(!0 !== (e && e.animate) && !this.getSize().contains(t)) && (this.panBy(t, e), !0);
1711      },
1712      _createAnimProxy: function () {
1713        var t = (this._proxy = P('div', 'leaflet-proxy leaflet-zoom-animated'));
1714        (this._panes.mapPane.appendChild(t),
1715          this.on(
1716            'zoomanim',
1717            function (t) {
1718              var e = ue,
1719                i = this._proxy.style[e];
1720              (be(this._proxy, this.project(t.center, t.zoom), this.getZoomScale(t.zoom, 1)), i === this._proxy.style[e] && this._animatingZoom && this._onZoomTransitionEnd());
1721            },
1722            this
1723          ),
1724          this.on('load moveend', this._animMoveEnd, this),
1725          this._on('unload', this._destroyAnimProxy, this));
1726      },
1727      _destroyAnimProxy: function () {
1728        (T(this._proxy), this.off('load moveend', this._animMoveEnd, this), delete this._proxy);
1729      },
1730      _animMoveEnd: function () {
1731        var t = this.getCenter(),
1732          e = this.getZoom();
1733        be(this._proxy, this.project(t, e), this.getZoomScale(e, 1));
1734      },
1735      _catchTransitionEnd: function (t) {
1736        this._animatingZoom && 0 <= t.propertyName.indexOf('transform') && this._onZoomTransitionEnd();
1737      },
1738      _nothingToAnimate: function () {
1739        return !this._container.getElementsByClassName('leaflet-zoom-animated').length;
1740      },
1741      _tryAnimatedZoom: function (t, e, i) {
1742        if (!this._animatingZoom) {
1743          if (((i = i || {}), !this._zoomAnimated || !1 === i.animate || this._nothingToAnimate() || Math.abs(e - this._zoom) > this.options.zoomAnimationThreshold)) return !1;
1744          var n = this.getZoomScale(e),
1745            n = this._getCenterOffset(t)._divideBy(1 - 1 / n);
1746          if (!0 !== i.animate && !this.getSize().contains(n)) return !1;
1747          x(function () {
1748            this._moveStart(!0, i.noMoveStart || !1)._animateZoom(t, e, !0);
1749          }, this);
1750        }
1751        return !0;
1752      },
1753      _animateZoom: function (t, e, i, n) {
1754        this._mapPane &&
1755          (i && ((this._animatingZoom = !0), (this._animateToCenter = t), (this._animateToZoom = e), M(this._mapPane, 'leaflet-zoom-anim')),
1756          this.fire('zoomanim', { center: t, zoom: e, noUpdate: n }),
1757          this._tempFireZoomEvent || (this._tempFireZoomEvent = this._zoom !== this._animateToZoom),
1758          this._move(this._animateToCenter, this._animateToZoom, void 0, !0),
1759          setTimeout(a(this._onZoomTransitionEnd, this), 250));
1760      },
1761      _onZoomTransitionEnd: function () {
1762        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));
1763      },
1764    });
1765  function Ue(t) {
1766    return new B(t);
1767  }
1768  var B = et.extend({
1769      options: { position: 'topright' },
1770      initialize: function (t) {
1771        c(this, t);
1772      },
1773      getPosition: function () {
1774        return this.options.position;
1775      },
1776      setPosition: function (t) {
1777        var e = this._map;
1778        return (e && e.removeControl(this), (this.options.position = t), e && e.addControl(this), this);
1779      },
1780      getContainer: function () {
1781        return this._container;
1782      },
1783      addTo: function (t) {
1784        (this.remove(), (this._map = t));
1785        var e = (this._container = this.onAdd(t)),
1786          i = this.getPosition(),
1787          t = t._controlCorners[i];
1788        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);
1789      },
1790      remove: function () {
1791        return (this._map && (T(this._container), this.onRemove && this.onRemove(this._map), this._map.off('unload', this.remove, this), (this._map = null)), this);
1792      },
1793      _refocusOnMap: function (t) {
1794        this._map && t && 0 < t.screenX && 0 < t.screenY && this._map.getContainer().focus();
1795      },
1796    }),
1797    Ve =
1798      (A.include({
1799        addControl: function (t) {
1800          return (t.addTo(this), this);
1801        },
1802        removeControl: function (t) {
1803          return (t.remove(), this);
1804        },
1805        _initControlPos: function () {
1806          var i = (this._controlCorners = {}),
1807            n = 'leaflet-',
1808            o = (this._controlContainer = P('div', n + 'control-container', this._container));
1809          function t(t, e) {
1810            i[t + e] = P('div', n + t + ' ' + n + e, o);
1811          }
1812          (t('top', 'left'), t('top', 'right'), t('bottom', 'left'), t('bottom', 'right'));
1813        },
1814        _clearControlPos: function () {
1815          for (var t in this._controlCorners) T(this._controlCorners[t]);
1816          (T(this._controlContainer), delete this._controlCorners, delete this._controlContainer);
1817        },
1818      }),
1819      B.extend({
1820        options: {
1821          collapsed: !0,
1822          position: 'topright',
1823          autoZIndex: !0,
1824          hideSingleBase: !1,
1825          sortLayers: !1,
1826          sortFunction: function (t, e, i, n) {
1827            return i < n ? -1 : n < i ? 1 : 0;
1828          },
1829        },
1830        initialize: function (t, e, i) {
1831          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);
1832          for (n in e) this._addLayer(e[n], n, !0);
1833        },
1834        onAdd: function (t) {
1835          (this._initLayout(), this._update(), (this._map = t).on('zoomend', this._checkDisabledLayers, this));
1836          for (var e = 0; e < this._layers.length; e++) this._layers[e].layer.on('add remove', this._onLayerChange, this);
1837          return this._container;
1838        },
1839        addTo: function (t) {
1840          return (B.prototype.addTo.call(this, t), this._expandIfNotCollapsed());
1841        },
1842        onRemove: function () {
1843          this._map.off('zoomend', this._checkDisabledLayers, this);
1844          for (var t = 0; t < this._layers.length; t++) this._layers[t].layer.off('add remove', this._onLayerChange, this);
1845        },
1846        addBaseLayer: function (t, e) {
1847          return (this._addLayer(t, e), this._map ? this._update() : this);
1848        },
1849        addOverlay: function (t, e) {
1850          return (this._addLayer(t, e, !0), this._map ? this._update() : this);
1851        },
1852        removeLayer: function (t) {
1853          t.off('add remove', this._onLayerChange, this);
1854          t = this._getLayer(h(t));
1855          return (t && this._layers.splice(this._layers.indexOf(t), 1), this._map ? this._update() : this);
1856        },
1857        expand: function () {
1858          (M(this._container, 'leaflet-control-layers-expanded'), (this._section.style.height = null));
1859          var t = this._map.getSize().y - (this._container.offsetTop + 50);
1860          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);
1861        },
1862        collapse: function () {
1863          return (z(this._container, 'leaflet-control-layers-expanded'), this);
1864        },
1865        _initLayout: function () {
1866          var t = 'leaflet-control-layers',
1867            e = (this._container = P('div', t)),
1868            i = this.options.collapsed,
1869            n = (e.setAttribute('aria-haspopup', !0), Ie(e), Be(e), (this._section = P('section', t + '-list'))),
1870            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)));
1871          ((o.href = '#'),
1872            (o.title = 'Layers'),
1873            o.setAttribute('role', 'button'),
1874            S(
1875              o,
1876              {
1877                keydown: function (t) {
1878                  13 === t.keyCode && this._expandSafely();
1879                },
1880                click: function (t) {
1881                  (O(t), this._expandSafely());
1882                },
1883              },
1884              this
1885            ),
1886            i || this.expand(),
1887            (this._baseLayersList = P('div', t + '-base', n)),
1888            (this._separator = P('div', t + '-separator', n)),
1889            (this._overlaysList = P('div', t + '-overlays', n)),
1890            e.appendChild(n));
1891        },
1892        _getLayer: function (t) {
1893          for (var e = 0; e < this._layers.length; e++) if (this._layers[e] && h(this._layers[e].layer) === t) return this._layers[e];
1894        },
1895        _addLayer: function (t, e, i) {
1896          (this._map && t.on('add remove', this._onLayerChange, this),
1897            this._layers.push({ layer: t, name: e, overlay: i }),
1898            this.options.sortLayers &&
1899              this._layers.sort(
1900                a(function (t, e) {
1901                  return this.options.sortFunction(t.layer, e.layer, t.name, e.name);
1902                }, this)
1903              ),
1904            this.options.autoZIndex && t.setZIndex && (this._lastZIndex++, t.setZIndex(this._lastZIndex)),
1905            this._expandIfNotCollapsed());
1906        },
1907        _update: function () {
1908          if (this._container) {
1909            (me(this._baseLayersList), me(this._overlaysList), (this._layerControlInputs = []));
1910            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));
1911            (this.options.hideSingleBase && (this._baseLayersList.style.display = (t = t && 1 < n) ? '' : 'none'), (this._separator.style.display = e && t ? '' : 'none'));
1912          }
1913          return this;
1914        },
1915        _onLayerChange: function (t) {
1916          this._handlingClick || this._update();
1917          var e = this._getLayer(h(t.target)),
1918            t = e.overlay ? ('add' === t.type ? 'overlayadd' : 'overlayremove') : 'add' === t.type ? 'baselayerchange' : null;
1919          t && this._map.fire(t, e);
1920        },
1921        _createRadioElement: function (t, e) {
1922          ((t = '<input type="radio" class="leaflet-control-layers-selector" name="' + t + '"' + (e ? ' checked="checked"' : '') + '/>'), (e = document.createElement('div')));
1923          return ((e.innerHTML = t), e.firstChild);
1924        },
1925        _addItem: function (t) {
1926          var e,
1927            i = document.createElement('label'),
1928            n = this._map.hasLayer(t.layer),
1929            n =
1930              (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)),
1931              this._layerControlInputs.push(e),
1932              (e.layerId = h(t.layer)),
1933              S(e, 'click', this._onInputClick, this),
1934              document.createElement('span')),
1935            o = ((n.innerHTML = ' ' + t.name), document.createElement('span'));
1936          return (i.appendChild(o), o.appendChild(e), o.appendChild(n), (t.overlay ? this._overlaysList : this._baseLayersList).appendChild(i), this._checkDisabledLayers(), i);
1937        },
1938        _onInputClick: function () {
1939          if (!this._preventClick) {
1940            var t,
1941              e,
1942              i = this._layerControlInputs,
1943              n = [],
1944              o = [];
1945            this._handlingClick = !0;
1946            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));
1947            for (s = 0; s < o.length; s++) this._map.hasLayer(o[s]) && this._map.removeLayer(o[s]);
1948            for (s = 0; s < n.length; s++) this._map.hasLayer(n[s]) || this._map.addLayer(n[s]);
1949            ((this._handlingClick = !1), this._refocusOnMap());
1950          }
1951        },
1952        _checkDisabledLayers: function () {
1953          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)));
1954        },
1955        _expandIfNotCollapsed: function () {
1956          return (this._map && !this.options.collapsed && this.expand(), this);
1957        },
1958        _expandSafely: function () {
1959          var t = this._section,
1960            e = ((this._preventClick = !0), S(t, 'click', O), this.expand(), this);
1961          setTimeout(function () {
1962            (k(t, 'click', O), (e._preventClick = !1));
1963          });
1964        },
1965      })),
1966    qe = B.extend({
1967      options: {
1968        position: 'topleft',
1969        zoomInText: '<span aria-hidden="true">+</span>',
1970        zoomInTitle: 'Zoom in',
1971        zoomOutText: '<span aria-hidden="true">&#x2212;</span>',
1972        zoomOutTitle: 'Zoom out',
1973      },
1974      onAdd: function (t) {
1975        var e = 'leaflet-control-zoom',
1976          i = P('div', e + ' leaflet-bar'),
1977          n = this.options;
1978        return (
1979          (this._zoomInButton = this._createButton(n.zoomInText, n.zoomInTitle, e + '-in', i, this._zoomIn)),
1980          (this._zoomOutButton = this._createButton(n.zoomOutText, n.zoomOutTitle, e + '-out', i, this._zoomOut)),
1981          this._updateDisabled(),
1982          t.on('zoomend zoomlevelschange', this._updateDisabled, this),
1983          i
1984        );
1985      },
1986      onRemove: function (t) {
1987        t.off('zoomend zoomlevelschange', this._updateDisabled, this);
1988      },
1989      disable: function () {
1990        return ((this._disabled = !0), this._updateDisabled(), this);
1991      },
1992      enable: function () {
1993        return ((this._disabled = !1), this._updateDisabled(), this);
1994      },
1995      _zoomIn: function (t) {
1996        !this._disabled && this._map._zoom < this._map.getMaxZoom() && this._map.zoomIn(this._map.options.zoomDelta * (t.shiftKey ? 3 : 1));
1997      },
1998      _zoomOut: function (t) {
1999        !this._disabled && this._map._zoom > this._map.getMinZoom() && this._map.zoomOut(this._map.options.zoomDelta * (t.shiftKey ? 3 : 1));
2000      },
2001      _createButton: function (t, e, i, n, o) {
2002        i = P('a', i, n);
2003        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);
2004      },
2005      _updateDisabled: function () {
2006        var t = this._map,
2007          e = 'leaflet-disabled';
2008        (z(this._zoomInButton, e),
2009          z(this._zoomOutButton, e),
2010          this._zoomInButton.setAttribute('aria-disabled', 'false'),
2011          this._zoomOutButton.setAttribute('aria-disabled', 'false'),
2012          (!this._disabled && t._zoom !== t.getMinZoom()) || (M(this._zoomOutButton, e), this._zoomOutButton.setAttribute('aria-disabled', 'true')),
2013          (!this._disabled && t._zoom !== t.getMaxZoom()) || (M(this._zoomInButton, e), this._zoomInButton.setAttribute('aria-disabled', 'true')));
2014      },
2015    }),
2016    Ge =
2017      (A.mergeOptions({ zoomControl: !0 }),
2018      A.addInitHook(function () {
2019        this.options.zoomControl && ((this.zoomControl = new qe()), this.addControl(this.zoomControl));
2020      }),
2021      B.extend({
2022        options: {
2023          position: 'bottomleft',
2024          maxWidth: 100,
2025          metric: !0,
2026          imperial: !0,
2027        },
2028        onAdd: function (t) {
2029          var e = 'leaflet-control-scale',
2030            i = P('div', e),
2031            n = this.options;
2032          return (this._addScales(n, e + '-line', i), t.on(n.updateWhenIdle ? 'moveend' : 'move', this._update, this), t.whenReady(this._update, this), i);
2033        },
2034        onRemove: function (t) {
2035          t.off(this.options.updateWhenIdle ? 'moveend' : 'move', this._update, this);
2036        },
2037        _addScales: function (t, e, i) {
2038          (t.metric && (this._mScale = P('div', e, i)), t.imperial && (this._iScale = P('div', e, i)));
2039        },
2040        _update: function () {
2041          var t = this._map,
2042            e = t.getSize().y / 2,
2043            t = t.distance(t.containerPointToLatLng([0, e]), t.containerPointToLatLng([this.options.maxWidth, e]));
2044          this._updateScales(t);
2045        },
2046        _updateScales: function (t) {
2047          (this.options.metric && t && this._updateMetric(t), this.options.imperial && t && this._updateImperial(t));
2048        },
2049        _updateMetric: function (t) {
2050          var e = this._getRoundNum(t);
2051          this._updateScale(this._mScale, e < 1e3 ? e + ' m' : e / 1e3 + ' km', e / t);
2052        },
2053        _updateImperial: function (t) {
2054          var e,
2055            i,
2056            t = 3.2808399 * t;
2057          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));
2058        },
2059        _updateScale: function (t, e, i) {
2060          ((t.style.width = Math.round(this.options.maxWidth * i) + 'px'), (t.innerHTML = e));
2061        },
2062        _getRoundNum: function (t) {
2063          var e = Math.pow(10, (Math.floor(t) + '').length - 1),
2064            t = t / e;
2065          return e * (t = 10 <= t ? 10 : 5 <= t ? 5 : 3 <= t ? 3 : 2 <= t ? 2 : 1);
2066        },
2067      })),
2068    Ke = B.extend({
2069      options: {
2070        position: 'bottomright',
2071        prefix:
2072          '<a href="https://leafletjs.com" title="A JavaScript library for interactive maps">' +
2073          (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> ' : '') +
2074          'Leaflet</a>',
2075      },
2076      initialize: function (t) {
2077        (c(this, t), (this._attributions = {}));
2078      },
2079      onAdd: function (t) {
2080        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());
2081        return (this._update(), t.on('layeradd', this._addAttribution, this), this._container);
2082      },
2083      onRemove: function (t) {
2084        t.off('layeradd', this._addAttribution, this);
2085      },
2086      _addAttribution: function (t) {
2087        t.layer.getAttribution &&
2088          (this.addAttribution(t.layer.getAttribution()),
2089          t.layer.once(
2090            'remove',
2091            function () {
2092              this.removeAttribution(t.layer.getAttribution());
2093            },
2094            this
2095          ));
2096      },
2097      setPrefix: function (t) {
2098        return ((this.options.prefix = t), this._update(), this);
2099      },
2100      addAttribution: function (t) {
2101        return (t && (this._attributions[t] || (this._attributions[t] = 0), this._attributions[t]++, this._update()), this);
2102      },
2103      removeAttribution: function (t) {
2104        return (t && this._attributions[t] && (this._attributions[t]--, this._update()), this);
2105      },
2106      _update: function () {
2107        if (this._map) {
2108          var t,
2109            e = [];
2110          for (t in this._attributions) this._attributions[t] && e.push(t);
2111          var i = [];
2112          (this.options.prefix && i.push(this.options.prefix), e.length && i.push(e.join(', ')), (this._container.innerHTML = i.join(' <span aria-hidden="true">|</span> ')));
2113        }
2114      },
2115    }),
2116    n =
2117      (A.mergeOptions({ attributionControl: !0 }),
2118      A.addInitHook(function () {
2119        this.options.attributionControl && new Ke().addTo(this);
2120      }),
2121      (B.Layers = Ve),
2122      (B.Zoom = qe),
2123      (B.Scale = Ge),
2124      (B.Attribution = Ke),
2125      (Ue.layers = function (t, e, i) {
2126        return new Ve(t, e, i);
2127      }),
2128      (Ue.zoom = function (t) {
2129        return new qe(t);
2130      }),
2131      (Ue.scale = function (t) {
2132        return new Ge(t);
2133      }),
2134      (Ue.attribution = function (t) {
2135        return new Ke(t);
2136      }),
2137      et.extend({
2138        initialize: function (t) {
2139          this._map = t;
2140        },
2141        enable: function () {
2142          return (this._enabled || ((this._enabled = !0), this.addHooks()), this);
2143        },
2144        disable: function () {
2145          return (this._enabled && ((this._enabled = !1), this.removeHooks()), this);
2146        },
2147        enabled: function () {
2148          return !!this._enabled;
2149        },
2150      })),
2151    ft =
2152      ((n.addTo = function (t, e) {
2153        return (t.addHandler(e, this), this);
2154      }),
2155      { Events: e }),
2156    Ye = b.touch ? 'touchstart mousedown' : 'mousedown',
2157    Xe = it.extend({
2158      options: { clickTolerance: 3 },
2159      initialize: function (t, e, i, n) {
2160        (c(this, n), (this._element = t), (this._dragStartTarget = e || t), (this._preventOutline = i));
2161      },
2162      enable: function () {
2163        this._enabled || (S(this._dragStartTarget, Ye, this._onDown, this), (this._enabled = !0));
2164      },
2165      disable: function () {
2166        this._enabled && (Xe._dragging === this && this.finishDrag(!0), k(this._dragStartTarget, Ye, this._onDown, this), (this._enabled = !1), (this._moved = !1));
2167      },
2168      _onDown: function (t) {
2169        var e, i;
2170        this._enabled &&
2171          ((this._moved = !1),
2172          ve(this._element, 'leaflet-zoom-anim') ||
2173            (t.touches && 1 !== t.touches.length
2174              ? Xe._dragging === this && this.finishDrag()
2175              : Xe._dragging ||
2176                t.shiftKey ||
2177                (1 !== t.which && 1 !== t.button && !t.touches) ||
2178                ((Xe._dragging = this)._preventOutline && Me(this._element),
2179                Le(),
2180                re(),
2181                this._moving ||
2182                  (this.fire('down'),
2183                  (i = t.touches ? t.touches[0] : t),
2184                  (e = Ce(this._element)),
2185                  (this._startPoint = new p(i.clientX, i.clientY)),
2186                  (this._startPos = Pe(this._element)),
2187                  (this._parentScale = Ze(e)),
2188                  (i = 'mousedown' === t.type),
2189                  S(document, i ? 'mousemove' : 'touchmove', this._onMove, this),
2190                  S(document, i ? 'mouseup' : 'touchend touchcancel', this._onUp, this)))));
2191      },
2192      _onMove: function (t) {
2193        var e;
2194        this._enabled &&
2195          (t.touches && 1 < t.touches.length
2196            ? (this._moved = !0)
2197            : (!(e = new p((e = t.touches && 1 === t.touches.length ? t.touches[0] : t).clientX, e.clientY)._subtract(this._startPoint)).x && !e.y) ||
2198              Math.abs(e.x) + Math.abs(e.y) < this.options.clickTolerance ||
2199              ((e.x /= this._parentScale.x),
2200              (e.y /= this._parentScale.y),
2201              O(t),
2202              this._moved ||
2203                (this.fire('dragstart'),
2204                (this._moved = !0),
2205                M(document.body, 'leaflet-dragging'),
2206                (this._lastTarget = t.target || t.srcElement),
2207                window.SVGElementInstance && this._lastTarget instanceof window.SVGElementInstance && (this._lastTarget = this._lastTarget.correspondingUseElement),
2208                M(this._lastTarget, 'leaflet-drag-target')),
2209              (this._newPos = this._startPos.add(e)),
2210              (this._moving = !0),
2211              (this._lastEvent = t),
2212              this._updatePosition()));
2213      },
2214      _updatePosition: function () {
2215        var t = { originalEvent: this._lastEvent };
2216        (this.fire('predrag', t), Z(this._element, this._newPos), this.fire('drag', t));
2217      },
2218      _onUp: function () {
2219        this._enabled && this.finishDrag();
2220      },
2221      finishDrag: function (t) {
2222        (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());
2223        var e = this._moved && this._moving;
2224        ((this._moving = !1),
2225          (Xe._dragging = !1),
2226          e &&
2227            this.fire('dragend', {
2228              noInertia: t,
2229              distance: this._newPos.distanceTo(this._startPos),
2230            }));
2231      },
2232    });
2233  function Je(t, e, i) {
2234    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);
2235    for (s = 0; s < 4; s++) {
2236      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)));
2237      t = n;
2238    }
2239    return t;
2240  }
2241  function $e(t, e) {
2242    var i, n, o, s, r, a, h;
2243    if (!t || 0 === t.length) throw new Error('latlngs not passed');
2244    I(t) || (console.warn('latlngs are not flat! Only the first ring will be used'), (t = t[0]));
2245    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; _++) {
2246      var p = w(t[_]);
2247      d.push(e.project(w([p.lat - l.lat, p.lng - l.lng])));
2248    }
2249    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));
2250    ((u = 0 === r ? d[0] : [a / r, h / r]), (u = e.unproject(m(u)))
2250);
2251    return w([u.lat + l.lat, u.lng + l.lng]);
2252  }
2253  function Qe(t) {
2254    for (var e = 0, i = 0, n = 0, o = 0; o < t.length; o++) {
2255      var s = w(t[o]);
2256      ((e += s.lat), (i += s.lng), n++);
2257    }
2258    return w([e / n, i / n]);
2259  }
2260  var ti,
2261    gt = { __proto__: null, clipPolygon: Je, polygonCenter: $e, centroid: Qe };
2262  function ei(t, e) {
2263    if (e && t.length) {
2264      var i = (t = (function (t, e) {
2265          for (var i = [t[0]], n = 1, o = 0, s = t.length; n < s; n++)
2266            (function (t, e) {
2267              var i = e.x - t.x,
2268                e = e.y - t.y;
2269              return i * i + e * e;
2270            })(t[n], t[o]) > e && (i.push(t[n]), (o = n));
2271          o < s - 1 && i.push(t[s - 1]);
2272          return i;
2273        })(t, (e = e * e))),
2274        n = i.length,
2275        o = new (typeof Uint8Array != void 0 + '' ? Uint8Array : Array)(n);
2276      ((o[0] = o[n - 1] = 1),
2277        (function t(e, i, n, o, s) {
2278          var r,
2279            a,
2280            h,
2281            l = 0;
2282          for (a = o + 1; a <= s - 1; a++) ((h = ri(e[a], e[o], e[s], !0)), l < h && ((r = a), (l = h)));
2283          n < l && ((i[r] = 1), t(e, i, n, o, r), t(e, i, n, r, s));
2284        })(i, o, e, 0, n - 1));
2285      var s,
2286        r = [];
2287      for (s = 0; s < n; s++) o[s] && r.push(i[s]);
2288      return r;
2289    }
2290    return t.slice();
2291  }
2292  function ii(t, e, i) {
2293    return Math.sqrt(ri(t, e, i, !0));
2294  }
2295  function ni(t, e, i, n, o) {
2296    var s,
2297      r,
2298      a,
2299      h = n ? ti : si(t, i),
2300      l = si(e, i);
2301    for (ti = l; ; ) {
2302      if (!(h | l)) return [t, e];
2303      if (h & l) return !1;
2304      ((a = si((r = oi(t, e, (s = h || l), i, o)), i)), s === h ? ((t = r), (h = a)) : ((e = r), (l = a)));
2305    }
2306  }
2307  function oi(t, e, i, n, o) {
2308    var s,
2309      r,
2310      a = e.x - t.x,
2311      e = e.y - t.y,
2312      h = n.min,
2313      n = n.max;
2314    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));
2315  }
2316  function si(t, e) {
2317    var i = 0;
2318    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);
2319  }
2320  function ri(t, e, i, n) {
2321    var o = e.x,
2322      e = e.y,
2323      s = i.x - o,
2324      r = i.y - e,
2325      a = s * s + r * r;
2326    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));
2327  }
2328  function I(t) {
2329    return !d(t[0]) || ('object' != typeof t[0][0] && void 0 !== t[0][0]);
2330  }
2331  function ai(t) {
2332    return (console.warn('Deprecated use of _flat, please use L.LineUtil.isFlat instead.'), I(t));
2333  }
2334  function hi(t, e) {
2335    var i, n, o, s, r, a;
2336    if (!t || 0 === t.length) throw new Error('latlngs not passed');
2337    I(t) || (console.warn('latlngs are not flat! Only the first ring will be used'), (t = t[0]));
2338    for (var h = w([0, 0]), l = g(t), u = (l.getNorthWest().distanceTo(l.getSouthWest
2338()) * l.getNorthEast().distanceTo(l.getNorthWest()) < 1700 && (h = Qe(t)), t.length), c = [], d = 0; d < u; d++) {
2339      var _ = w(t[d]);
2340      c.push(e.project(w([_.lat - h.lat, _.lng - h.lng])));
2341    }
2342    for (i = d = 0; d < u - 1; d++) i += c[d].distanceTo(c[d + 1]) / 2;
2343    if (0 === i) a = c[0];
2344    else
2345      for (n = d = 0; d < u - 1; d++)
2346        if (((o = c[d]), (s = c[d + 1]), i < (n += r = o.distanceTo(s)))) {
2347          a = [s.x - (r = (n - i) / r) * (s.x - o.x), s.y - r * (s.y - o.y)];
2348          break;
2349        }
2350    l = e.unproject(m(a));
2351    return w([l.lat + h.lat, l.lng + h.lng]);
2352  }
2353  var vt = {
2354      __proto__: null,
2355      simplify: ei,
2356      pointToSegmentDistance: ii,
2357      closestPointOnSegment: function (t, e, i) {
2358        return ri(t, e, i);
2359      },
2360      clipSegment: ni,
2361      _getEdgeIntersection: oi,
2362      _getBitCode: si,
2363      _sqClosestPointOnSegment: ri,
2364      isFlat: I,
2365      _flat: ai,
2366      polylineCenter: hi,
2367    },
2368    yt = {
2369      project: function (t) {
2370        return new p(t.lng, t.lat);
2371      },
2372      unproject: function (t) {
2373        return new v(t.y, t.x);
2374      },
2375      bounds: new f([-180, -90], [180, 90]),
2376    },
2377    xt = {
2378      R: 6378137,
2379      R_MINOR: 6356752.314245179,
2380      bounds: new f([-20037508.34279, -15496570.73972], [20037508.34279, 18764656.23138]),
2381      project: function (t) {
2382        var e = Math.PI / 180,
2383          i = this.R,
2384          n = t.lat * e,
2385          o = this.R_MINOR / i,
2386          o = Math.sqrt(1 - o * o),
2387          s = o * Math.sin(n),
2388          s = Math.tan(Math.PI / 4 - n / 2) / Math.pow((1 - s) / (1 + s), o / 2),
2389          n = -i * Math.log(Math.max(s, 1e-10));
2390        return new p(t.lng * e * i, n);
2391      },
2392      unproject: function (t) {
2393        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++)
2394          ((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));
2395        return new v(a * i, (t.x * i) / n);
2396      },
2397    },
2398    wt = { __proto__: null, LonLat: yt, Mercator: xt, SphericalMercator: rt },
2399    Pt = l({}, st, {
2400      code: 'EPSG:3395',
2401      projection: xt,
2402      transformation: ht((bt = 0.5 / (Math.PI * xt.R)), 0.5, -bt, 0.5),
2403    }),
2404    li = l({}, st, {
2405      code: 'EPSG:4326',
2406      projection: yt,
2407      transformation: ht(1 / 180, 1, -1 / 180, 0.5),
2408    }),
2409    Lt = l({}, ot, {
2410      projection: yt,
2411      transformation: ht(1, 0, -1, 0),
2412      scale: function (t) {
2413        return Math.pow(2, t);
2414      },
2415      zoom: function (t) {
2416        return Math.log(t) / Math.LN2;
2417      },
2418      distance: function (t, e) {
2419        var i = e.lng - t.lng,
2420          e = e.lat - t.lat;
2421        return Math.sqrt(i * i + e * e);
2422      },
2423      infinite: !0,
2424    }),
2425    o =
2426      ((ot.Earth = st),
2427      (ot.EPSG3395 = Pt),
2428      (ot.EPSG3857 = lt),
2429      (ot.EPSG900913 = ut),
2430      (ot.EPSG4326 = li),
2431      (ot.Simple = Lt),
2432      it.extend({
2433        options: {
2434          pane: 'overlayPane',
2435          attribution: null,
2436          bubblingMouseEvents: !0,
2437        },
2438        addTo: function (t) {
2439          return (t.addLayer(this), this);
2440        },
2441        remove: function () {
2442          return this.removeFrom(this._map || this._mapToAdd);
2443        },
2444        removeFrom: function (t) {
2445          return (t && t.removeLayer(this), this);
2446        },
2447        getPane: function (t) {
2448          return this._map.getPane(t ? this.options[t] || t : this.options.pane);
2449        },
2450        addInteractiveTarget: function (t) {
2451          return (this._map._targets[h(t)] = this);
2452        },
2453        removeInteractiveTarget: function (t) {
2454          return (delete this._map._targets[h(t)], this);
2455        },
2456        getAttribution: function () {
2457          return this.options.attribution;
2458        },
2459        _layerAdd: function (t) {
2460          var e,
2461            i = t.target;
2462          i.hasLayer(this) &&
2463            ((this._map = i),
2464            (this._zoomAnimated = i._zoomAnimated),
2465            this.getEvents &&
2466              ((e = this.getEvents()),
2467              i.on(e, this),
2468              this.once(
2469                'remove',
2470                function () {
2471                  i.off(e, this);
2472                },
2473                this
2474              )),
2475            this.onAdd(i),
2476            this.fire('add'),
2477            i.fire('layeradd', { layer: this }));
2478        },
2479      })),
2480    ui =
2481      (A.include({
2482        addLayer: function (t) {
2483          var e;
2484          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);
2485          throw new Error('The provided object is not a Layer.');
2486        },
2487        removeLayer: function (t) {
2488          var e = h(t);
2489          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);
2490        },
2491        hasLayer: function (t) {
2492          return h(t) in this._layers;
2493        },
2494        eachLayer: function (t, e) {
2495          for (var i in this._layers) t.call(e, this._layers[i]);
2496          return this;
2497        },
2498        _addLayers: function (t) {
2499          for (var e = 0, i = (t = t ? (d(t) ? t : [t]) : []).length; e < i; e++) this.addLayer(t[e]);
2500        },
2501        _addZoomLimit: function (t) {
2502          (isNaN(t.options.maxZoom) && isNaN(t.options.minZoom)) || ((this._zoomBoundLayers[h(t)] = t), this._updateZoomLevels());
2503        },
2504        _removeZoomLimit: function (t) {
2505          t = h(t);
2506          this._zoomBoundLayers[t] && (delete this._zoomBoundLayers[t], this._updateZoomLevels());
2507        },
2508        _updateZoomLevels: function () {
2509          var t,
2510            e = 1 / 0,
2511            i = -1 / 0,
2512            n = this._getZoomSpan();
2513          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);
2514          ((this._layersMaxZoom = i === -1 / 0 ? void 0 : i),
2515            (this._layersMinZoom = e === 1 / 0 ? void 0 : e),
2516            n !== this._getZoomSpan() && this.fire('zoomlevelschange'),
2517            void 0 === this.options.maxZoom && this._layersMaxZoom && this.getZoom() > this._layersMaxZoom && this.setZoom(this._layersMaxZoom),
2518            void 0 === this.options.minZoom && this._layersMinZoom && this.getZoom() < this._layersMinZoom && this.setZoom(this._layersMinZoom));
2519        },
2520      }),
2521      o.extend({
2522        initialize: function (t, e) {
2523          var i, n;
2524          if ((c(this, e), (this._layers = {}), t)) for (i = 0, n = t.length; i < n; i++) this.addLayer(t[i]);
2525        },
2526        addLayer: function (t) {
2527          var e = this.getLayerId(t);
2528          return ((this._layers[e] = t), this._map && this._map.addLayer(t), this);
2529        },
2530        removeLayer: function (t) {
2531          t = t in this._layers ? t : this.getLayerId(t);
2532          return (this._map && this._layers[t] && this._map.removeLayer(this._layers[t]), delete this._layers[t], this);
2533        },
2534        hasLayer: function (t) {
2535          return ('number' == typeof t ? t : this.getLayerId(t)) in this._layers;
2536        },
2537        clearLayers: function () {
2538          return this.eachLayer(this.removeLayer, this);
2539        },
2540        invoke: function (t) {
2541          var e,
2542            i,
2543            n = Array.prototype.slice.call(arguments, 1);
2544          for (e in this._layers) (i = this._layers[e])[t] && i[t].apply(i, n);
2545          return this;
2546        },
2547        onAdd: function (t) {
2548          this.eachLayer(t.addLayer, t);
2549        },
2550        onRemove: function (t) {
2551          this.eachLayer(t.removeLayer, t);
2552        },
2553        eachLayer: function (t, e) {
2554          for (var i in this._layers) t.call(e, this._layers[i]);
2555          return this;
2556        },
2557        getLayer: function (t) {
2558          return this._layers[t];
2559        },
2560        getLayers: function () {
2561          var t = [];
2562          return (this.eachLayer(t.push, t), t);
2563        },
2564        setZIndex: function (t) {
2565          return this.invoke('setZIndex', t);
2566        },
2567        getLayerId: h,
2568      })),
2569    ci = ui.extend({
2570      addLayer: function (t) {
2571        return this.hasLayer(t) ? this : (t.addEventParent(this), ui.prototype.addLayer.call(this, t), this.fire('layeradd', { layer: t }));
2572      },
2573      removeLayer: function (t) {
2574        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;
2575      },
2576      setStyle: function (t) {
2577        return this.invoke('setStyle', t);
2578      },
2579      bringToFront: function () {
2580        return this.invoke('bringToFront');
2581      },
2582      bringToBack: function () {
2583        return this.invoke('bringToBack');
2584      },
2585      getBounds: function () {
2586        var t,
2587          e = new s();
2588        for (t in this._layers) {
2589          var i = this._layers[t];
2590          e.extend(i.getBounds ? i.getBounds() : i.getLatLng());
2591        }
2592        return e;
2593      },
2594    }),
2595    di = et.extend({
2596      options: { popupAnchor: [0, 0], tooltipAnchor: [0, 0], crossOrigin: !1 },
2597      initialize: function (t) {
2598        c(this, t);
2599      },
2600      createIcon: function (t) {
2601        return this._createIcon('icon', t);
2602      },
2603      createShadow: function (t) {
2604        return this._createIcon('shadow', t);
2605      },
2606      _createIcon: function (t, e) {
2607        var i = this._getIconUrl(t);
2608        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);
2609        if ('icon' === t) throw new Error('iconUrl not set in Icon options (see the docs).');
2610        return null;
2611      },
2612      _setIconStyles: function (t, e) {
2613        var i = this.options,
2614          n = i[e + 'Size'],
2615          n = m((n = 'number' == typeof n ? [n, n] : n)),
2616          o = m(('shadow' === e && i.shadowAnchor) || i.iconAnchor || (n && n.divideBy(2, !0)));
2617        ((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')));
2618      },
2619      _createImg: function (t, e) {
2620        return (((e = e || document.createElement('img')).src = t), e);
2621      },
2622      _getIconUrl: function (t) {
2623        return (b.retina && this.options[t + 'RetinaUrl']) || this.options[t + 'Url'];
2624      },
2625    });
2626  var _i = di.extend({
2627      options: {
2628        iconUrl: 'marker-icon.png',
2629        iconRetinaUrl: 'marker-icon-2x.png',
2630        shadowUrl: 'marker-shadow.png',
2631        iconSize: [25, 41],
2632        iconAnchor: [12, 41],
2633        popupAnchor: [1, -34],
2634        tooltipAnchor: [16, -28],
2635        shadowSize: [41, 41],
2636      },
2637      _getIconUrl: function (t) {
2638        return ('string' != typeof _i.imagePath && (_i.imagePath = this._detectIconPath()), (this.options.imagePath || _i.imagePath) + di.prototype._getIconUrl.call(this, t));
2639      },
2640      _stripUrl: function (t) {
2641        function e(t, e, i) {
2642          return (e = e.exec(t)) && e[i];
2643        }
2644        return (t = e(t, /^url\((['"])?(.+)\1\)$/, 2)) && e(t, /^(.*)marker-icon\.png$/, 1);
2645      },
2646      _detectIconPath: function () {
2647        var t = P('div', 'leaflet-default-icon-path', document.body),
2648          e = pe(t, 'background-image') || pe(t, 'backgroundImage');
2649        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) : '');
2650      },
2651    }),
2652    pi = n.extend({
2653      initialize: function (t) {
2654        this._marker = t;
2655      },
2656      addHooks: function () {
2657        var t = this._marker._icon;
2658        (this._draggable || (this._draggable = new Xe(t, t, !0)),
2659          this._draggable
2660            .on(
2661              {
2662                dragstart: this._onDragStart,
2663                predrag: this._onPreDrag,
2664                drag: this._onDrag,
2665                dragend: this._onDragEnd,
2666              },
2667              this
2668            )
2669            .enable(),
2670          M(t, 'leaflet-marker-draggable'));
2671      },
2672      removeHooks: function () {
2673        (this._draggable
2674          .off(
2675            {
2676              dragstart: this._onDragStart,
2677              predrag: this._onPreDrag,
2678              drag: this._onDrag,
2679              dragend: this._onDragEnd,
2680            },
2681            this
2682          )
2683          .disable(),
2684          this._marker._icon && z(this._marker._icon, 'leaflet-marker-draggable'));
2685      },
2686      moved: function () {
2687        return this._draggable && this._draggable._moved;
2688      },
2689      _adjustPan: function (t) {
2690        var e = this._marker,
2691          i = e._map,
2692          n = this._marker.options.autoPanSpeed,
2693          o = this._marker.options.autoPanPadding,
2694          s = Pe(e._icon),
2695          r = i.getPixelBounds(),
2696          a = i.getPixelOrigin(),
2697          a = _(r.min._subtract(a).add(o), r.max._subtract(a).subtract(o));
2698        a.contains(s) ||
2699          ((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)),
2700          i.panBy(o, { animate: !1 }),
2701          this._draggable._newPos._add(o),
2702          this._draggable._startPos._add(o),
2703          Z(e._icon, this._draggable._newPos),
2704          this._onDrag(t),
2705          (this._panRequest = x(this._adjustPan.bind(this, t))));
2706      },
2707      _onDragStart: function () {
2708        ((this._oldLatLng = this._marker.getLatLng()), this._marker.closePopup && this._marker.closePopup(), this._marker.fire('movestart').fire('dragstart'));
2709      },
2710      _onPreDrag: function (t) {
2711        this._marker.options.autoPan && (r(this._panRequest), (this._panRequest = x(this._adjustPan.bind(this, t))));
2712      },
2713      _onDrag: function (t) {
2714        var e = this._marker,
2715          i = e._shadow,
2716          n = Pe(e._icon),
2717          o = e._map.layerPointToLatLng(n);
2718        (i && Z(i, n), (e._latlng = o), (t.latlng = o), (t.oldLatLng = this._oldLatLng), e.fire('move', t).fire('drag', t));
2719      },
2720      _onDragEnd: function (t) {
2721        (r(this._panRequest), delete this._oldLatLng, this._marker.fire('moveend').fire('dragend', t));
2722      },
2723    }),
2724    mi = o.extend({
2725      options: {
2726        icon: new _i(),
2727        interactive: !0,
2728        keyboard: !0,
2729        title: '',
2730        alt: 'Marker',
2731        zIndexOffset: 0,
2732        opacity: 1,
2733        riseOnHover: !1,
2734        riseOffset: 250,
2735        pane: 'markerPane',
2736        shadowPane: 'shadowPane',
2737        bubblingMouseEvents: !1,
2738        autoPanOnFocus: !0,
2739        draggable: !1,
2740        autoPan: !1,
2741        autoPanPadding: [50, 50],
2742        autoPanSpeed: 10,
2743      },
2744      initialize: function (t, e) {
2745        (c(this, e), (this._latlng = w(t)));
2746      },
2747      onAdd: function (t) {
2748        ((this._zoomAnimated = this._zoomAnimated && t.options.markerZoomAnimation), this._zoomAnimated && t.on('zoomanim', this._animateZoom, this), this._initIcon(), this.update());
2749      },
2750      onRemove: function (t) {
2751        (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());
2752      },
2753      getEvents: function () {
2754        return { zoom: this.update, viewreset: this.update };
2755      },
2756      getLatLng: function () {
2757        return this._latlng;
2758      },
2759      setLatLng: function (t) {
2760        var e = this._latlng;
2761        return ((this._latlng = w(t)), this.update(), this.fire('move', { oldLatLng: e, latlng: this._latlng }));
2762      },
2763      setZIndexOffset: function (t) {
2764        return ((this.options.zIndexOffset = t), this.update());
2765      },
2766      getIcon: function () {
2767        return this.options.icon;
2768      },
2769      setIcon: function (t) {
2770        return ((this.options.icon = t), this._map && (this._initIcon(), this.update()), this._popup && this.bindPopup(this._popup, this._popup.options), this);
2771      },
2772      getElement: function () {
2773        return this._icon;
2774      },
2775      update: function () {
2776        var t;
2777        return (this._icon && this._map && ((t = this._map.latLngToLayerPoint(this._latlng).round()), this._setPos(t)), this);
2778      },
2779      _initIcon: function () {
2780        var t = this.options,
2781          e = 'leaflet-zoom-' + (this._zoomAnimated ? 'animated' : 'hide'),
2782          i = t.icon.createIcon(this._icon),
2783          n = !1,
2784          i =
2785            (i !== this._icon && (this._icon && this._removeIcon(), (n = !0), t.title && (i.title = t.title), 'IMG' === i.tagName && (i.alt = t.alt || '')),
2786            M(i, e),
2787            t.keyboard && ((i.tabIndex = '0'), i.setAttribute('role', 'button')),
2788            (this._icon = i),
2789            t.riseOnHover &&
2790              this.on({
2791                mouseover: this._bringToFront,
2792                mouseout: this._resetZIndex,
2793              }),
2794            this.options.autoPanOnFocus && S(i, 'focus', this._panOnFocus, this),
2795            t.icon.createShadow(this._shadow)),
2796          o = !1;
2797        (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));
2798      },
2799      _removeIcon: function () {
2800        (this.options.riseOnHover &&
2801          this.off({
2802            mouseover: this._bringToFront,
2803            mouseout: this._resetZIndex,
2804          }),
2805          this.options.autoPanOnFocus && k(this._icon, 'focus', this._panOnFocus, this),
2806          T(this._icon),
2807          this.removeInteractiveTarget(this._icon),
2808          (this._icon = null));
2809      },
2810      _removeShadow: function () {
2811        (this._shadow && T(this._shadow), (this._shadow = null));
2812      },
2813      _setPos: function (t) {
2814        (this._icon && Z(this._icon, t), this._shadow && Z(this._shadow, t), (this._zIndex = t.
2814y + this.options.zIndexOffset), this._resetZIndex());
2815      },
2816      _updateZIndex: function (t) {
2817        this._icon && (this._icon.style.zIndex = this._zIndex + t);
2818      },
2819      _animateZoom: function (t) {
2820        t = this._map._latLngToNewLayerPoint(this._latlng, t.zoom, t.center).round();
2821        this._setPos(t);
2822      },
2823      _initInteraction: function () {
2824        var t;
2825        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()));
2826      },
2827      setOpacity: function (t) {
2828        return ((this.options.opacity = t), this._map && this._updateOpacity(), this);
2829      },
2830      _updateOpacity: function () {
2831        var t = this.options.opacity;
2832        (this._icon && C(this._icon, t), this._shadow && C(this._shadow, t));
2833      },
2834      _bringToFront: function () {
2835        this._updateZIndex(this.options.riseOffset);
2836      },
2837      _resetZIndex: function () {
2838        this._updateZIndex(0);
2839      },
2840      _panOnFocus: function () {
2841        var t,
2842          e,
2843          i = this._map;
2844        i &&
2845          ((t = (e = this.options.icon.options).iconSize ? m(e.iconSize) : m(0, 0)),
2846          (e = e.iconAnchor ? m(e.iconAnchor) : m(0, 0)),
2847          i.panInside(this._latlng, {
2848            paddingTopLeft: e,
2849            paddingBottomRight: t.subtract(e),
2850          }));
2851      },
2852      _getPopupAnchor: function () {
2853        return this.options.icon.options.popupAnchor;
2854      },
2855      _getTooltipAnchor: function () {
2856        return this.options.icon.options.tooltipAnchor;
2857      },
2858    });
2859  var fi = o.extend({
2860      options: {
2861        stroke: !0,
2862        color: '#3388ff',
2863        weight: 3,
2864        opacity: 1,
2865        lineCap: 'round',
2866        lineJoin: 'round',
2867        dashArray: null,
2868        dashOffset: null,
2869        fill: !1,
2870        fillColor: null,
2871        fillOpacity: 0.2,
2872        fillRule: 'evenodd',
2873        interactive: !0,
2874        bubblingMouseEvents: !0,
2875      },
2876      beforeAdd: function (t) {
2877        this._renderer = t.getRenderer(this);
2878      },
2879      onAdd: function () {
2880        (this._renderer._initPath(this), this._reset(), this._renderer._addPath(this));
2881      },
2882      onRemove: function () {
2883        this._renderer._removePath(this);
2884      },
2885      redraw: function () {
2886        return (this._map && this._renderer._updatePath(this), this);
2887      },
2888      setStyle: function (t) {
2889        return (c(this, t), this._renderer && (this._renderer._updateStyle(this), this.options.stroke && t && Object.prototype.hasOwnProperty.call(t, 'weight') && this._updateBounds()), this);
2890      },
2891      bringToFront: function () {
2892        return (this._renderer && this._renderer._bringToFront(this), this);
2893      },
2894      bringToBack: function () {
2895        return (this._renderer && this._renderer._bringToBack(this), this);
2896      },
2897      getElement: function () {
2898        return this._path;
2899      },
2900      _reset: function () {
2901        (this._project(), this._update());
2902      },
2903      _clickTolerance: function () {
2904        return (this.options.stroke ? this.options.weight / 2 : 0) + (this._renderer.options.tolerance || 0);
2905      },
2906    }),
2907    gi = fi.extend({
2908      options: { fill: !0, radius: 10 },
2909      initialize: function (t, e) {
2910        (c(this, e), (this._latlng = w(t)), (this._radius = this.options.radius));
2911      },
2912      setLatLng: function (t) {
2913        var e = this._latlng;
2914        return ((this._latlng = w(t)), this.redraw(), this.fire('move', { oldLatLng: e, latlng: this._latlng }));
2915      },
2916      getLatLng: function () {
2917        return this._latlng;
2918      },
2919      setRadius: function (t) {
2920        return ((this.options.radius = this._radius = t), this.redraw());
2921      },
2922      getRadius: function () {
2923        return this._radius;
2924      },
2925      setStyle: function (t) {
2926        var e = (t && t.radius) || this._radius;
2927        return (fi.prototype.setStyle.call(this, t), this.setRadius(e), this);
2928      },
2929      _project: function () {
2930        ((this._point = this._map.latLngToLayerPoint(this._latlng)), this._updateBounds());
2931      },
2932      _updateBounds: function () {
2933        var t = this._radius,
2934          e = this._radiusY || t,
2935          i = this._clickTolerance(),
2936          t = [t + i, e + i];
2937        this._pxBounds = new f(this._point.subtract(t), this._point.add(t));
2938      },
2939      _update: function () {
2940        this._map && this._updatePath();
2941      },
2942      _updatePath: function () {
2943        this._renderer._updateCircle(this);
2944      },
2945      _empty: function () {
2946        return this._radius && !this._renderer._bounds.intersects(this._pxBounds);
2947      },
2948      _containsPoint: function (t) {
2949        return t.distanceTo(this._point) <= this._radius + this._clickTolerance();
2950      },
2951    });
2952  var vi = gi.extend({
2953    initialize: function (t, e, i) {
2954      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');
2955      this._mRadius = this.options.radius;
2956    },
2957    setRadius: function (t) {
2958      return ((this._mRadius = t), this.redraw());
2959    },
2960    getRadius: function () {
2961      return this._mRadius;
2962    },
2963    getBounds: function () {
2964      var t = [this._radius, this._radiusY || this._radius];
2965      return new s(this._map.layerPointToLatLng(this._point.subtract(t)), this._map.layerPointToLatLng(this._point.add(t)));
2966    },
2967    setStyle: fi.prototype.setStyle,
2968    _project: function () {
2969      var t,
2970        e,
2971        i,
2972        n,
2973        o,
2974        s = this._latlng.lng,
2975        r = this._latlng.lat,
2976        a = this._map,
2977        h = a.options.crs;
2978      (h.distance === st.distance
2979        ? ((n = Math.PI / 180),
2980          (o = this._mRadius / st.R / n),
2981          (t = a.project([r + o, s])),
2982          (e = a.project([r - o, s])),
2983          (e = t.add(e).divideBy(2)),
2984          (i = a.unproject(e).lat),
2985          (n = Math.acos((Math.cos(o * n) - Math.sin(r * n) * Math.sin(i * n)) / (Math.cos(r * n) * Math.cos(i * n))) / n),
2986          (!isNaN(n) && 0 !== n) || (n = o / Math.cos((Math.PI / 180) * r)),
2987          (this._point = e.subtract(a.getPixelOrigin())),
2988          (this._radius = isNaN(n) ? 0 : e.x - a.project([i, s - n]).x),
2989          (this._radiusY = e.y - t.y))
2990        : ((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)),
2991        this._updateBounds());
2992    },
2993  });
2994  var yi = fi.extend({
2995    options: { smoothFactor: 1, noClip: !1 },
2996    initialize: function (t, e) {
2997      (c(this, e), this._setLatLngs(t));
2998    },
2999    getLatLngs: function () {
3000      return this._latlngs;
3001    },
3002    setLatLngs: function (t) {
3003      return (this._setLatLngs(t), this.redraw());
3004    },
3005    isEmpty: function () {
3006      return !this._latlngs.length;
3007    },
3008    closestLayerPoint: function (t) {
3009      for (var e = 1 / 0, i = null, n = ri, o = 0, s = this._parts.length; o < s; o++)
3010        for (var r = this._parts[o], a = 1, h = r.length; a < h; a++) {
3011          var l,
3012            u,
3013            c = n(t, (l = r[a - 1]), (u = r[a]), !0);
3014          c < e && ((e = c), (i = n(t, l, u)));
3015        }
3016      return (i && (i.distance = Math.sqrt(e)), i);
3017    },
3018    getCenter: function () {
3019      if (this._map) return hi(this._defaultShape(), this._map.options.crs);
3020      throw new Error('Must add layer to map before using getCenter()');
3021    },
3022    getBounds: function () {
3023      return this._bounds;
3024    },
3025    addLatLng: function (t, e) {
3026      return ((e = e || this._defaultShape()), (t = w(t)), e.push(t), this._bounds.extend(t), this.redraw());
3027    },
3028    _setLatLngs: function (t) {
3029      ((this._bounds = new s()), (this._latlngs = this._convertLatLngs(t)));
3030    },
3031    _defaultShape: function () {
3032      return I(this._latlngs) ? this._latlngs : this._latlngs[0];
3033    },
3034    _convertLatLngs: function (t) {
3035      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]));
3036      return e;
3037    },
3038    _project: function () {
3039      var t = new f();
3040      ((this._rings = []), this._projectLatlngs(this._latlngs, this._rings, t), this._bounds.isValid() && t.isValid() && ((this._rawPxBounds = t), this._updateBounds()));
3041    },
3042    _updateBounds: function () {
3043      var t = this._clickTolerance(),
3044        t = new p(t, t);
3045      this._rawPxBounds && (this._pxBounds = new f([this._rawPxBounds.min.subtract(t), this._rawPxBounds.max.add(t)]));
3046    },
3047    _projectLatlngs: function (t, e, i) {
3048      var n,
3049        o,
3050        s = t[0] instanceof v,
3051        r = t.length;
3052      if (s) {
3053        for (o = [], n = 0; n < r; n++) ((o[n] = this._map.latLngToLayerPoint(t[n])), i.extend(o[n]));
3054        e.push(o);
3055      } else for (n = 0; n < r; n++) this._projectLatlngs(t[n], e, i);
3056    },
3057    _clipPoints: function () {
3058      var t = this._renderer._bounds;
3059      if (((this._parts = []), this._pxBounds && this._pxBounds.intersects(t)))
3060        if (this.options.noClip) this._parts = this._rings;
3061        else
3062          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++));
3063    },
3064    _simplifyPoints: function () {
3065      for (var t = this._parts, e = this.options.smoothFactor, i = 0, n = t.length; i < n; i++) t[i] = ei(t[i], e);
3066    },
3067    _update: function () {
3068      this._map && (this._clipPoints(), this._simplifyPoints(), this._updatePath());
3069    },
3070    _updatePath: function () {
3071      this._renderer._updatePoly(this);
3072    },
3073    _containsPoint: function (t, e) {
3074      var i,
3075        n,
3076        o,
3077        s,
3078        r,
3079        a,
3080        h = this._clickTolerance();
3081      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;
3082      return !1;
3083    },
3084  });
3085  yi._flat = ai;
3086  var xi = yi.extend({
3087    options: { fill: !0 },
3088    isEmpty: function () {
3089      return !this._latlngs.length || !this._latlngs[0].length;
3090    },
3091    getCenter: function () {
3092      if (this._map) return $e(this._defaultShape(), this._map.options.crs);
3093      throw new Error('Must add layer to map before using getCenter()');
3094    },
3095    _convertLatLngs: function (t) {
3096      var t = yi.prototype._convertLatLngs.call(this, t),
3097        e = t.length;
3098      return (2 <= e && t[0] instanceof v && t[0].equals(t[e - 1]) && t.pop(), t);
3099    },
3100    _setLatLngs: function (t) {
3101      (yi.prototype._setLatLngs.call(this, t), I(this._latlngs) && (this._latlngs = [this._latlngs]));
3102    },
3103    _defaultShape: function () {
3104      return (I(this._latlngs[0]) ? this._latlngs : this._latlngs[0])[0];
3105    },
3106    _clipPoints: function () {
3107      var t = this._renderer._bounds,
3108        e = this.options.weight,
3109        e = new p(e, e),
3110        t = new f(t.min.subtract(e), t.max.add(e));
3111      if (((this._parts = []), this._pxBounds && this._pxBounds.intersects(t)))
3112        if (this.options.noClip) this._parts = this._rings;
3113        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);
3114    },
3115    _updatePath: function () {
3116      this._renderer._updatePoly(this, !0);
3117    },
3118    _containsPoint: function (t) {
3119      var e,
3120        i,
3121        n,
3122        o,
3123        s,
3124        r,
3125        a,
3126        h,
3127        l = !1;
3128      if (!this._pxBounds || !this._pxBounds.contains(t)) return !1;
3129      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));
3130      return l || yi.prototype._containsPoint.call(this, t, !0);
3131    },
3132  });
3133  var wi = ci.extend({
3134    initialize: function (t, e) {
3135      (c(this, e), (this._layers = {}), t && this.addData(t));
3136    },
3137    addData: function (t) {
3138      var e,
3139        i,
3140        n,
3141        o = d(t) ? t : t.features;
3142      if (o) {
3143        for (e = 0, i = o.length; e < i; e++) ((n = o[e]).geometries || n.geometry || n.features || n.coordinates) && this.addData(n);
3144        return this;
3145      }
3146      var s,
3147        r = this.options;
3148      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;
3149    },
3150    resetStyle: function (t) {
3151      return void 0 === t ? this.eachLayer(this.resetStyle, this) : ((t.options = l({}, t.defaultOptions)), this._setLayerStyle(t, this.options.style), this);
3152    },
3153    setStyle: function (e) {
3154      return this.eachLayer(function (t) {
3155        this._setLayerStyle(t, e);
3156      }, this);
3157    },
3158    _setLayerStyle: function (t, e) {
3159      t.setStyle && ('function' == typeof e && (e = e(t.feature)), t.setStyle(e));
3160    },
3161  });
3162  function bi(t, e) {
3163    var i,
3164      n,
3165      o,
3166      s,
3167      r = 'Feature' === t.type ? t.geometry : t,
3168      a = r ? r.coordinates : null,
3169      h = [],
3170      l = e && e.pointToLayer,
3171      u = (e && e.coordsToLatLng) || Li;
3172    if (!a && !r) return null;
3173    switch (r.type) {
3174      case 'Point':
3175        return Pi(l, t, (i = u(a)), e);
3176      case 'MultiPoint':
3177        for (o = 0, s = a.length; o < s; o++) ((i = u(a[o])), h.push(Pi(l, t, i, e)));
3178        return new ci(h);
3179      case 'LineString':
3180      case 'MultiLineString':
3181        return ((n = Ti(a, 'LineString' === r.type ? 0 : 1, u)), new yi(n, e));
3182      case 'Polygon':
3183      case 'MultiPolygon':
3184        return ((n = Ti(a, 'Polygon' === r.type ? 1 : 2, u)), new xi(n, e));
3185      case 'GeometryCollection':
3186        for (o = 0, s = r.geometries.length; o < s; o++) {
3187          var c = bi(
3188            {
3189              geometry: r.geometries[o],
3190              type: 'Feature',
3191              properties: t.properties,
3192            },
3193            e
3194          );
3195          c && h.push(c);
3196        }
3197        return new ci(h);
3198      case 'FeatureCollection':
3199        for (o = 0, s = r.features.length; o < s; o++) {
3200          var d = bi(r.features[o], e);
3201          d && h.push(d);
3202        }
3203        return new ci(h);
3204      default:
3205        throw new Error('Invalid GeoJSON object.');
3206    }
3207  }
3208  function Pi(t, e, i, n) {
3209    return t ? t(e, i) : new mi(i, n && n.markersInheritOptions && n);
3210  }
3211  function Li(t) {
3212    return new v(t[1], t[0], t[2]);
3213  }
3214  function Ti(t, e, i) {
3215    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));
3216    return o;
3217  }
3218  function Mi(t, e) {
3219    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)];
3220  }
3221  function zi(t, e, i, n) {
3222    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));
3223    return (!e && i && 0 < o.length && o.push(o[0].slice()), o);
3224  }
3225  function Ci(t, e) {
3226    return t.feature ? l({}, t.feature, { geometry: e }) : Zi(e);
3227  }
3228  function Zi(t) {
3229    return 'Feature' === t.type || 'FeatureCollection' === t.type ? t : { type: 'Feature', properties: {}, geometry: t };
3230  }
3231  Tt = {
3232    toGeoJSON: function (t) {
3233      return Ci(this, { type: 'Point', coordinates: Mi(this.getLatLng(), t) });
3234    },
3235  };
3236  function Si(t, e) {
3237    return new wi(t, e);
3238  }
3239  (mi.include(Tt),
3240    vi.include(Tt),
3241    gi.include(Tt),
3242    yi.include({
3243      toGeoJSON: function (t) {
3244        var e = !I(this._latlngs);
3245        return Ci(this, {
3246          type: (e ? 'Multi' : '') + 'LineString',
3247          coordinates: zi(this._latlngs, e ? 1 : 0, !1, t),
3248        });
3249      },
3250    }),
3251    xi.include({
3252      toGeoJSON: function (t) {
3253        var e = !I(this._latlngs),
3254          i = e && !I(this._latlngs[0]),
3255          t = zi(this._latlngs, i ? 2 : e ? 1 : 0, !0, t);
3256        return Ci(this, {
3257          type: (i ? 'Multi' : '') + 'Polygon',
3258          coordinates: (t = e ? t : [t]),
3259        });
3260      },
3261    }),
3262    ui.include({
3263      toMultiPoint: function (e) {
3264        var i = [];
3265        return (
3266          this.eachLayer(function (t) {
3267            i.push(t.toGeoJSON(e).geometry.coordinates);
3268          }),
3269          Ci(this, { type: 'MultiPoint', coordinates: i })
3270        );
3271      },
3272      toGeoJSON: function (e) {
3273        var i,
3274          n,
3275          t = this.feature && this.feature.geometry && this.feature.geometry.type;
3276        return 'MultiPoint' === t
3277          ? this.toMultiPoint(e)
3278          : ((i = 'GeometryCollection' === t),
3279            (n = []),
3280            this.eachLayer(function (t) {
3281              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));
3282            }),
3283            i ? Ci(this, { geometries: n, type: 'GeometryCollection' }) : { type: 'FeatureCollection', features: n });
3284      },
3285    }));
3286  var Mt = Si,
3287    Ei = o.extend({
3288      options: {
3289        opacity: 1,
3290        alt: '',
3291        interactive: !1,
3292        crossOrigin: !1,
3293        errorOverlayUrl: '',
3294        zIndex: 1,
3295        className: '',
3296      },
3297      initialize: function (t, e, i) {
3298        ((this._url = t), (this._bounds = g(e)), c(this, i));
3299      },
3300      onAdd: function () {
3301        (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());
3302      },
3303      onRemove: function () {
3304        (T(this._image), this.options.interactive && this.removeInteractiveTarget(this._image));
3305      },
3306      setOpacity: function (t) {
3307        return ((this.options.opacity = t), this._image && this._updateOpacity(), this);
3308      },
3309      setStyle: function (t) {
3310        return (t.opacity && this.setOpacity(t.opacity), this);
3311      },
3312      bringToFront: function () {
3313        return (this._map && fe(this._image), this);
3314      },
3315      bringToBack: function () {
3316        return (this._map && ge(this._image), this);
3317      },
3318      setUrl: function (t) {
3319        return ((this._url = t), this._image && (this._image.src = t), this);
3320      },
3321      setBounds: function (t) {
3322        return ((this._bounds = g(t)), this._map && this._reset(), this);
3323      },
3324      getEvents: function () {
3325        var t = { zoom: this._reset, viewreset: this._reset };
3326        return (this._zoomAnimated && (t.zoomanim = this._animateZoom), t);
3327      },
3328      setZIndex: function (t) {
3329        return ((this.options.zIndex = t), this._updateZIndex(), this);
3330      },
3331      getBounds: function () {
3332        return this._bounds;
3333      },
3334      getElement: function () {
3335        return this._image;
3336      },
3337      _initImage: function () {
3338        var t = 'IMG' === this._url.tagName,
3339          e = (this._image = t ? this._url : P('img'));
3340        (M(e, 'leaflet-image-layer'),
3341          this._zoomAnimated && M(e, 'leaflet-zoom-animated'),
3342          this.options.className && M(e, this.options.className),
3343          (e.onselectstart = u),
3344          (e.onmousemove = u),
3345          (e.onload = a(this.fire, this, 'load')),
3346          (e.onerror = a(this._overlayOnError, this, 'error')),
3347          (!this.options.crossOrigin && '' !== this.options.crossOrigin) || (e.crossOrigin = !0 === this.options.crossOrigin ? '' : this.options.crossOrigin),
3348          this.options.zIndex && this._updateZIndex(),
3349          t ? (this._url = e.s
3349rc) : ((e.src = this._url), (e.alt = this.options.alt)));
3350      },
3351      _animateZoom: function (t) {
3352        var e = this._map.getZoomScale(t.zoom),
3353          t = this._map._latLngBoundsToNewLayerBounds(this._bounds, t.zoom, t.center).min;
3354        be(this._image, t, e);
3355      },
3356      _reset: function () {
3357        var t = this._image,
3358          e = new f(this._map.latLngToLayerPoint(this._bounds.getNorthWest()), this._map.latLngToLayerPoint(this._bounds.getSouthEast())),
3359          i = e.getSize();
3360        (Z(t, e.min), (t.style.width = i.x + 'px'), (t.style.height = i.y + 'px'));
3361      },
3362      _updateOpacity: function () {
3363        C(this._image, this.options.opacity);
3364      },
3365      _updateZIndex: function () {
3366        this._image && void 0 !== this.options.zIndex && null !== this.options.zIndex && (this._image.style.zIndex = this.options.zIndex);
3367      },
3368      _overlayOnError: function () {
3369        this.fire('error');
3370        var t = this.options.errorOverlayUrl;
3371        t && this._url !== t && ((this._url = t), (this._image.src = t));
3372      },
3373      getCenter: function () {
3374        return this._bounds.getCenter();
3375      },
3376    }),
3377    ki = Ei.extend({
3378      options: {
3379        autoplay: !0,
3380        loop: !0,
3381        keepAspectRatio: !0,
3382        muted: !1,
3383        playsInline: !0,
3384      },
3385      _initImage: function () {
3386        var t = 'VIDEO' === this._url.tagName,
3387          e = (this._image = t ? this._url : P('video'));
3388        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)) {
3389          for (var i = e.getElementsByTagName('source'), n = [], o = 0; o < i.length; o++) n.push(i[o].src);
3390          this._url = 0 < i.length ? n : [e.src];
3391        } else {
3392          (d(this._url) || (this._url = [this._url]),
3393            !this.options.keepAspectRatio && Object.prototype.hasOwnProperty.call(e.style, 'objectFit') && (e.style.objectFit = 'fill'),
3394            (e.autoplay = !!this.options.autoplay),
3395            (e.loop = !!this.options.loop),
3396            (e.muted = !!this.options.muted),
3397            (e.playsInline = !!this.options.playsInline));
3398          for (var s = 0; s < this._url.length; s++) {
3399            var r = P('source');
3400            ((r.src = this._url[s]), e.appendChild(r));
3401          }
3402        }
3403      },
3404    });
3405  var Oi = Ei.extend({
3406    _initImage: function () {
3407      var t = (this._image = this._url);
3408      (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));
3409    },
3410  });
3411  var Ai = o.extend({
3412      options: {
3413        interactive: !1,
3414        offset: [0, 0],
3415        className: '',
3416        pane: void 0,
3417        content: '',
3418      },
3419      initialize: function (t, e) {
3420        (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));
3421      },
3422      openOn: function (t) {
3423        return ((t = arguments.length ? t : this._source._map).hasLayer(this) || t.addLayer(this), this);
3424      },
3425      close: function () {
3426        return (this._map && this._map.removeLayer(this), this);
3427      },
3428      toggle: function (t) {
3429        return (this._map ? this.close() : (arguments.length ? (this._source = t) : (t = this._source), this._prepareOpen(), this.openOn(t._map)), this);
3430      },
3431      onAdd: function (t) {
3432        ((this._zoomAnimated = t._zoomAnimated),
3433          this._container || this._initLayout(),
3434          t._fadeAnimated && C(this._container, 0),
3435          clearTimeout(this._removeTimeout),
3436          this.getPane().appendChild(this._container),
3437          this.update(),
3438          t._fadeAnimated && C(this._container, 1),
3439          this.bringToFront(),
3440          this.options.interactive && (M(this._container, 'leaflet-interactive'), this.addInteractiveTarget(this._container)));
3441      },
3442      onRemove: function (t) {
3443        (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)));
3444      },
3445      getLatLng: function () {
3446        return this._latlng;
3447      },
3448      setLatLng: function (t) {
3449        return ((this._latlng = w(t)), this._map && (this._updatePosition(), this._adjustPan()), this);
3450      },
3451      getContent: function () {
3452        return this._content;
3453      },
3454      setContent: function (t) {
3455        return ((this._content = t), this.update(), this);
3456      },
3457      getElement: function () {
3458        return this._container;
3459      },
3460      update: function () {
3461        this._map && ((this._container.style.visibility = 'hidden'), this._updateContent(), this._updateLayout(), this._updatePosition(), (this._container.style.visibility = ''), this._adjustPan());
3462      },
3463      getEvents: function () {
3464        var t = { zoom: this._updatePosition, viewreset: this._updatePosition };
3465        return (this._zoomAnimated && (t.zoomanim = this._animateZoom), t);
3466      },
3467      isOpen: function () {
3468        return !!this._map && this._map.hasLayer(this);
3469      },
3470      bringToFront: function () {
3471        return (this._map && fe(this._container), this);
3472      },
3473      bringToBack: function () {
3474        return (this._map && ge(this._container), this);
3475      },
3476      _prepareOpen: function (t) {
3477        if (!(i = this._source)._map) return !1;
3478        if (i instanceof ci) {
3479          var e,
3480            i = null,
3481            n = this._source._layers;
3482          for (e in n)
3483            if (n[e]._map) {
3484              i = n[e];
3485              break;
3486            }
3487          if (!i) return !1;
3488          this._source = i;
3489        }
3490        if (!t)
3491          if (i.getCenter) t = i.getCenter();
3492          else if (i.getLatLng) t = i.getLatLng();
3493          else {
3494            if (!i.getBounds) throw new Error('Unable to get source layer LatLng.');
3495            t = i.getBounds().getCenter();
3496          }
3497        return (this.setLatLng(t), this._map && this.update(), !0);
3498      },
3499      _updateContent: function () {
3500        if (this._content) {
3501          var t = this._contentNode,
3502            e = 'function' == typeof this._content ? this._content(this._source || this) : this._content;
3503          if ('string' == typeof e) t.innerHTML = e;
3504          else {
3505            for (; t.hasChildNodes(); ) t.removeChild(t.firstChild);
3506            t.appendChild(e);
3507          }
3508          this.fire('contentupdate');
3509        }
3510      },
3511      _updatePosition: function () {
3512        var t, e, i;
3513        this._map &&
3514          ((e = this._map.latLngToLayerPoint(this._latlng)),
3515          (t = m(this.options.offset)),
3516          (i = this._getAnchor()),
3517          this._zoomAnimated ? Z(this._container, e.add(i)) : (t = t.add(e).add(i)),
3518          (e = this._containerBottom = -t.y),
3519          (i = this._containerLeft = -Math.round(this._containerWidth / 2) + t.x),
3520          (this._container.style.bottom = e + 'px'),
3521          (this._container.style.left = i + 'px'));
3522      },
3523      _getAnchor: function () {
3524        return [0, 0];
3525      },
3526    }),
3527    Bi =
3528      (A.include({
3529        _initOverlay: function (t, e, i, n) {
3530          var o = e;
3531          return (o instanceof t || (o = new t(n).setContent(e)), i && o.setLatLng(i), o);
3532        },
3533      }),
3534      o.include({
3535        _initOverlay: function (t, e, i, n) {
3536          var o = i;
3537          return (o instanceof t ? (c(o, n), (o._source = this)) : (o = e && !n ? e : new t(n, this)).setContent(i), o);
3538        },
3539      }),
3540      Ai.extend({
3541        options: {
3542          pane: 'popupPane',
3543          offset: [0, 7],
3544          maxWidth: 300,
3545          minWidth: 50,
3546          maxHeight: null,
3547          autoPan: !0,
3548          autoPanPaddingTopLeft: null,
3549          autoPanPaddingBottomRight: null,
3550          autoPanPadding: [5, 5],
3551          keepInView: !1,
3552          closeButton: !0,
3553          autoClose: !0,
3554          closeOnEscapeKey: !0,
3555          className: '',
3556        },
3557        openOn: function (t) {
3558          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));
3559        },
3560        onAdd: function (t) {
3561          (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)));
3562        },
3563        onRemove: function (t) {
3564          (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)));
3565        },
3566        getEvents: function () {
3567          var t = Ai.prototype.getEvents.call(this);
3568          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);
3569        },
3570        _initLayout: function () {
3571          var t = 'leaflet-popup',
3572            e = (this._container = P('div', t + ' ' + (this.options.className || '') + ' leaflet-zoom-animated')),
3573            i = (this._wrapper = P('div', t + '-content-wrapper', e));
3574          ((this._contentNode = P('div', t + '-content', i)),
3575            Ie(e),
3576            Be(this._contentNode),
3577            S(e, 'contextmenu', Ae),
3578            (this._tipContainer = P('div', t + '-tip-container', e)),
3579            (this._tip = P('div', t + '-tip', this._tipContainer)),
3580            this.options.closeButton &&
3581              ((i = this._closeButton = P('a', t + '-close-button', e)).setAttribute('role', 'button'),
3582              i.setAttribute('aria-label', 'Close popup'),
3583              (i.href = '#close'),
3584              (i.innerHTML = '<span aria-hidden="true">&#215;</span>'),
3585              S(
3586                i,
3587                'click',
3588                function (t) {
3589                  (O(t), this.close());
3590                },
3591                this
3592              )));
3593        },
3594        _updateLayout: function () {
3595          var t = this._contentNode,
3596            e = t.style,
3597            i = ((e.width = ''), (e.whiteSpace = 'nowrap'), t.offsetWidth),
3598            i = Math.min(i, this.options.maxWidth),
3599            i = ((i = Math.max(i, this.options.minWidth)), (e.width = i + 1 + 'px'), (e.whiteSpace = ''), (e.height = ''), t.offsetHeight),
3600            n = this.options.maxHeight,
3601            o = 'leaflet-popup-scrolled';
3602          ((n && n < i ? ((e.height = n + 'px'), M) : z)(t, o), (this._containerWidth = this._container.offsetWidth));
3603        },
3604        _animateZoom: function (t) {
3605          var t = this._map._latLngToNewLayerPoint(this._latlng, t.zoom, t.center),
3606            e = this._getAnchor();
3607          Z(this._container, t.add(e));
3608        },
3609        _adjustPan: function () {
3610          var t, e, i, n, o, s, r, a;
3611          this.options.autoPan &&
3612            (this._map._panAnim && this._map._panAnim.stop(),
3613            this._autopanning
3614              ? (this._autopanning = !1)
3615              : ((t = this._map),
3616                (e = parseInt(pe(this._container, 'marginBottom'), 10) || 0),
3617                (e = this._container.offsetHeight + e),
3618                (a = this._containerWidth),
3619                (i = new p(this._containerLeft, -e - this._containerBottom))._add(Pe(this._container)),
3620                (i = t.layerPointToContainerPoint(i)),
3621                (o = m(this.options.autoPanPadding)),
3622                (n = m(this.options.autoPanPaddingTopLeft || o)),
3623                (o = m(this.options.autoPanPaddingBottomRight || o)),
3624                (s = t.getSize()),
3625                (r = 0),
3626                i.x + a + o.x > s.x && (r = i.x + a - s.x + o.x),
3627                i.x - r - n.x < (a = 0) && (r = i.x - n.x),
3628                i.y + e + o.y > s.y && (a = i.y + e - s.y + o.y),
3629                i.y - a - n.y < 0 && (a = i.y - n.y),
3630                (r || a) && (this.options.keepInView && (this._autopanning = !0), t.fire('autopanstart').panBy([r, a]))));
3631        },
3632        _getAnchor: function () {
3633          return m(this._source && this._source._getPopupAnchor ? this._source._getPopupAnchor() : [0, 0]);
3634        },
3635      })),
3636    Ii =
3637      (A.mergeOptions({ closePopupOnClick: !0 }),
3638      A.include({
3639        openPopup: function (t, e, i) {
3640          return (this._initOverlay(Bi, t, e, i).openOn(this), this);
3641        },
3642        closePopup: function (t) {
3643          return ((t = arguments.length ? t : this._popup) && t.close(), this);
3644        },
3645      }),
3646      o.include({
3647        bindPopup: function (t, e) {
3648          return (
3649            (this._popup = this._initOverlay(Bi, this._popup, t, e)),
3650            this._popupHandlersAdded ||
3651              (this.on({
3652                click: this._openPopup,
3653                keypress: this._onKeyPress,
3654                remove: this.closePopup,
3655                move: this._movePopup,
3656              }),
3657              (this._popupHandlersAdded = !0)),
3658            this
3659          );
3660        },
3661        unbindPopup: function () {
3662          return (
3663            this._popup &&
3664              (this.off({
3665                click: this._openPopup,
3666                keypress: this._onKeyPress,
3667                remove: this.closePopup,
3668                move: this._movePopup,
3669              }),
3670              (this._popupHandlersAdded = !1),
3671              (this._popup = null)),
3672            this
3673          );
3674        },
3675        openPopup: function (t) {
3676          return (this._popup && (this instanceof ci || (this._popup._source = this), this._popup._prepareOpen(t || this._latlng) && this._popup.openOn(this._map)), this);
3677        },
3678        closePopup: function () {
3679          return (this._popup && this._popup.close(), this);
3680        },
3681        togglePopup: function () {
3682          return (this._popup && this._popup.toggle(this), this);
3683        },
3684        isPopupOpen: function () {
3685          return !!this._popup && this._popup.isOpen();
3686        },
3687        setPopupContent: function (t) {
3688          return (this._popup && this._popup.setContent(t), this);
3689        },
3690        getPopup: function () {
3691          return this._popup;
3692        },
3693        _openPopup: function (t) {
3694          var e;
3695          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));
3696        },
3697        _movePopup: function (t) {
3698          this._popup.setLatLng(t.latlng);
3699        },
3700        _onKeyPress: function (t) {
3701          13 === t.originalEvent.keyCode && this._openPopup(t);
3702        },
3703      }),
3704      Ai.extend({
3705        options: {
3706          pane: 'tooltipPane',
3707          offset: [0, 0],
3708          direction: 'auto',
3709          permanent: !1,
3710          sticky: !1,
3711          opacity: 0.9,
3712        },
3713        onAdd: function (t) {
3714          (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)));
3715        },
3716        onRemove: function (t) {
3717          (Ai.prototype.onRemove.call(this, t), t.fire('tooltipclose', { tooltip: this }), this._source && (this.removeEventParent(this._source), this._source.fire('tooltipclose', { tooltip: this }, !0)));
3718        },
3719        getEvents: function () {
3720          var t = Ai.prototype.getEvents.call(this);
3721          return (this.options.permanent || (t.preclick = this.close), t);
3722        },
3723        _initLayout: function () {
3724          var t = 'leaflet-tooltip ' + (this.options.className || '') + ' leaflet-zoom-' + (this._zoomAnimated ? 'animated' : 'hide');
3725          ((this._contentNode = this._container = P('div', t)), this._container.setAttribute('role', 'tooltip'), this._container.setAttribute('id', 'leaflet-tooltip-' 
3725+ h(this)));
3726        },
3727        _updateLayout: function () {},
3728        _adjustPan: function () {},
3729        _setPosition: function (t) {
3730          var e,
3731            i = this._map,
3732            n = this._container,
3733            o = i.latLngToContainerPoint(i.getCenter()),
3734            i = i.layerPointToContainerPoint(t),
3735            s = this.options.direction,
3736            r = n.offsetWidth,
3737            a = n.offsetHeight,
3738            h = m(this.options.offset),
3739            l = this._getAnchor(),
3740            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);
3741          ((t = t
3742            .subtract(m(e, i, !0))
3743            .add(h)
3744            .add(l)),
3745            z(n, 'leaflet-tooltip-right'),
3746            z(n, 'leaflet-tooltip-left'),
3747            z(n, 'leaflet-tooltip-top'),
3748            z(n, 'leaflet-tooltip-bottom'),
3749            M(n, 'leaflet-tooltip-' + s),
3750            Z(n, t));
3751        },
3752        _updatePosition: function () {
3753          var t = this._map.latLngToLayerPoint(this._latlng);
3754          this._setPosition(t);
3755        },
3756        setOpacity: function (t) {
3757          ((this.options.opacity = t), this._container && C(this._container, t));
3758        },
3759        _animateZoom: function (t) {
3760          t = this._map._latLngToNewLayerPoint(this._latlng, t.zoom, t.center);
3761          this._setPosition(t);
3762        },
3763        _getAnchor: function () {
3764          return m(this._source && this._source._getTooltipAnchor && !this.options.sticky ? this._source._getTooltipAnchor() : [0, 0]);
3765        },
3766      })),
3767    Ri =
3768      (A.include({
3769        openTooltip: function (t, e, i) {
3770          return (this._initOverlay(Ii, t, e, i).openOn(this), this);
3771        },
3772        closeTooltip: function (t) {
3773          return (t.close(), this);
3774        },
3775      }),
3776      o.include({
3777        bindTooltip: function (t, e) {
3778          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);
3779        },
3780        unbindTooltip: function () {
3781          return (this._tooltip && (this._initTooltipInteractions(!0), this.closeTooltip(), (this._tooltip = null)), this);
3782        },
3783        _initTooltipInteractions: function (t) {
3784          var e, i;
3785          (!t && this._tooltipHandlersAdded) ||
3786            ((e = t ? 'off' : 'on'),
3787            (i = { remove: this.closeTooltip, move: this._moveTooltip }),
3788            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)),
3789            this._tooltip.options.sticky && (i.mousemove = this._moveTooltip),
3790            this[e](i),
3791            (this._tooltipHandlersAdded = !t));
3792        },
3793        openTooltip: function (t) {
3794          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);
3795        },
3796        closeTooltip: function () {
3797          if (this._tooltip) return this._tooltip.close();
3798        },
3799        toggleTooltip: function () {
3800          return (this._tooltip && this._tooltip.toggle(this), this);
3801        },
3802        isTooltipOpen: function () {
3803          return this._tooltip.isOpen();
3804        },
3805        setTooltipContent: function (t) {
3806          return (this._tooltip && this._tooltip.setContent(t), this);
3807        },
3808        getTooltip: function () {
3809          return this._tooltip;
3810        },
3811        _addFocusListeners: function () {
3812          this.getElement ? this._addFocusListenersOnLayer(this) : this.eachLayer && this.eachLayer(this._addFocusListenersOnLayer, this);
3813        },
3814        _addFocusListenersOnLayer: function (t) {
3815          var e = 'function' == typeof t.getElement && t.getElement();
3816          e &&
3817            (S(
3818              e,
3819              'focus',
3820              function () {
3821                ((this._tooltip._source = t), this.openTooltip());
3822              },
3823              this
3824            ),
3825            S(e, 'blur', this.closeTooltip, this));
3826        },
3827        _setAriaDescribedByOnLayer: function (t) {
3828          t = 'function' == typeof t.getElement && t.getElement();
3829          t && t.setAttribute('aria-describedby', this._tooltip._container.id);
3830        },
3831        _openTooltip: function (t) {
3832          var e;
3833          this._tooltip &&
3834            this._map &&
3835            (this._map.dragging && this._map.dragging.moving() && !this._openOnceFlag
3836              ? ((this._openOnceFlag = !0),
3837                (e = this)._map.once('moveend', function () {
3838                  ((e._openOnceFlag = !1), e._openTooltip(t));
3839                }))
3840              : ((this._tooltip._source = t.layer || t.target), this.openTooltip(this._tooltip.options.sticky ? t.latlng : void 0)));
3841        },
3842        _moveTooltip: function (t) {
3843          var e = t.latlng;
3844          (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));
3845        },
3846      }),
3847      di.extend({
3848        options: {
3849          iconSize: [12, 12],
3850          html: !1,
3851          bgPos: null,
3852          className: 'leaflet-div-icon',
3853        },
3854        createIcon: function (t) {
3855          var t = t && 'DIV' === t.tagName ? t : document.createElement('div'),
3856            e = this.options;
3857          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);
3858        },
3859        createShadow: function () {
3860          return null;
3861        },
3862      }));
3863  di.Default = _i;
3864  var Ni = o.extend({
3865    options: {
3866      tileSize: 256,
3867      opacity: 1,
3868      updateWhenIdle: b.mobile,
3869      updateWhenZooming: !0,
3870      updateInterval: 200,
3871      zIndex: 1,
3872      bounds: null,
3873      minZoom: 0,
3874      maxZoom: void 0,
3875      maxNativeZoom: void 0,
3876      minNativeZoom: void 0,
3877      noWrap: !1,
3878      pane: 'tilePane',
3879      className: '',
3880      keepBuffer: 2,
3881    },
3882    initialize: function (t) {
3883      c(this, t);
3884    },
3885    onAdd: function () {
3886      (this._initContainer(), (this._levels = {}), (this._tiles = {}), this._resetView());
3887    },
3888    beforeAdd: function (t) {
3889      t._addZoomLimit(this);
3890    },
3891    onRemove: function (t) {
3892      (this._removeAllTiles(), T(this._container), t._removeZoomLimit(this), (this._container = null), (this._tileZoom = void 0));
3893    },
3894    bringToFront: function () {
3895      return (this._map && (fe(this._container), this._setAutoZIndex(Math.max)), this);
3896    },
3897    bringToBack: function () {
3898      return (this._map && (ge(this._container), this._setAutoZIndex(Math.min)), this);
3899    },
3900    getContainer: function () {
3901      return this._container;
3902    },
3903    setOpacity: function (t) {
3904      return ((this.options.opacity = t), this._updateOpacity(), this);
3905    },
3906    setZIndex: function (t) {
3907      return ((this.options.zIndex = t), this._updateZIndex(), this);
3908    },
3909    isLoading: function () {
3910      return this._loading;
3911    },
3912    redraw: function () {
3913      var t;
3914      return (this._map && (this._removeAllTiles(), (t = this._clampZoom(this._map.getZoom())) !== this._tileZoom && ((this._tileZoom = t), this._updateLevels()), this._update()), this);
3915    },
3916    getEvents: function () {
3917      var t = {
3918        viewprereset: this._invalidateAll,
3919        viewreset: this._resetView,
3920        zoom: this._resetView,
3921        moveend: this._onMoveEnd,
3922      };
3923      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);
3924    },
3925    createTile: function () {
3926      return document.createElement('div');
3927    },
3928    getTileSize: function () {
3929      var t = this.options.tileSize;
3930      return t instanceof p ? t : new p(t, t);
3931    },
3932    _updateZIndex: function () {
3933      this._container && void 0 !== this.options.zIndex && null !== this.options.zIndex && (this._container.style.zIndex = this.options.zIndex);
3934    },
3935    _setAutoZIndex: function (t) {
3936      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)));
3937      isFinite(n) && ((this.options.zIndex = n + t(-1, 1)), this._updateZIndex());
3938    },
3939    _updateOpacity: function () {
3940      if (this._map && !b.ielt9) {
3941        C(this._container, this.options.opacity);
3942        var t,
3943          e = +new Date(),
3944          i = !1,
3945          n = !1;
3946        for (t in this._tiles) {
3947          var o,
3948            s = this._tiles[t];
3949          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)));
3950        }
3951        (n && !this._noPrune && this._pruneTiles(), i && (r(this._fadeFrame), (this._fadeFrame = x(this._updateOpacity, this))));
3952      }
3953    },
3954    _onOpaqueTile: u,
3955    _initContainer: function () {
3956      this._container || ((this._container = P('div', 'leaflet-layer ' + (this.options.className || ''))), this._updateZIndex(), this.options.opacity < 1 && this._updateOpacity(), this.getPane().appendChild(this._container));
3957    },
3958    _updateLevels: function () {
3959      var t = this._tileZoom,
3960        e = this.options.maxZoom;
3961      if (void 0 !== t) {
3962        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]));
3963        var n = this._levels[t],
3964          o = this._map;
3965        return (
3966          n ||
3967            (((n = this._levels[t] = {}).el = P('div', 'leaflet-tile-container leaflet-zoom-animated', this._container)),
3968            (n.el.style.zIndex = e),
3969            (n.origin = o.project(o.unproject(o.getPixelOrigin()), t).round()),
3970            (n.zoom = t),
3971            this._setZoomTransform(n, o.getCenter(), o.getZoom()),
3972            u(n.el.offsetWidth),
3973            this._onCreateLevel(n)),
3974          (this._level = n)
3975        );
3976      }
3977    },
3978    _onUpdateLevel: u,
3979    _onRemoveLevel: u,
3980    _onCreateLevel: u,
3981    _pruneTiles: function () {
3982      if (this._map) {
3983        var t,
3984          e,
3985          i,
3986          n = this._map.getZoom();
3987        if (n > this.options.maxZoom || n < this.options.minZoom) this._removeAllTiles();
3988        else {
3989          for (t in this._tiles) (i = this._tiles[t]).retain = i.current;
3990          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));
3991          for (t in this._tiles) this._tiles[t].retain || this._removeTile(t);
3992        }
3993      }
3994    },
3995    _removeTilesAtZoom: function (t) {
3996      for (var e in this._tiles) this._tiles[e].coords.z === t && this._removeTile(e);
3997    },
3998    _removeAllTiles: function () {
3999      for (var t in this._tiles) this._removeTile(t);
4000    },
4001    _invalidateAll: function () {
4002      for (var t in this._levels) (T(this._levels[t].el), this._onRemoveLevel(Number(t)), delete this._levels[t]);
4003      (this._removeAllTiles(), (this._tileZoom = void 0));
4004    },
4005    _retainParent: function (t, e, i, n) {
4006      var t = Math.floor(t / 2),
4007        e = Math.floor(e / 2),
4008        i = i - 1,
4009        o = new p(+t, +e),
4010        o = ((o.z = i), this._tileCoordsToKey(o)),
4011        o = this._tiles[o];
4012      return o && o.active ? (o.retain = !0) : (o && o.loaded && (o.retain = !0), n < i && this._retainParent(t, e, i, n));
4013    },
4014    _retainChildren: function (t, e, i, n) {
4015      for (var o = 2 * t; o < 2 * t + 2; o++)
4016        for (var s = 2 * e; s < 2 * e + 2; s++) {
4017          var r = new p(o, s),
4018            r = ((r.z = i + 1), this._tileCoordsToKey(r)),
4019            r = this._tiles[r];
4020          r && r.active ? (r.retain = !0) : (r && r.loaded && (r.retain = !0), i + 1 < n && this._retainChildren(o, s, i + 1, n));
4021        }
4022    },
4023    _resetView: function (t) {
4024      t = t && (t.pinch || t.flyTo);
4025      this._setView(this._map.getCenter(), this._map.getZoom(), t, t);
4026    },
4027    _animateZoom: function (t) {
4028      this._setView(t.center, t.zoom, !0, t.noUpdate);
4029    },
4030    _clampZoom: function (t) {
4031      var e = this.options;
4032      return void 0 !== e.minNativeZoom && t < e.minNativeZoom ? e.minNativeZoom : void 0 !== e.maxNativeZoom && e.maxNativeZoom < t ? e.maxNativeZoom : t;
4033    },
4034    _setView: function (t, e, i, n) {
4035      var o = Math.round(e),
4036        o = (void 0 !== this.options.maxZoom && o > this.options.maxZoom) || (void 0 !== this.options.minZoom && o < this.options.minZoom) ? void 0 : this._clampZoom(o),
4037        s = this.options.updateWhenZooming && o !== this._tileZoom;
4038      ((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));
4039    },
4040    _setZoomTransforms: function (t, e) {
4041      for (var i in this._levels) this._setZoomTransform(this._levels[i], t, e);
4042    },
4043    _setZoomTransform: function (t, e, i) {
4044      var n = this._map.getZoomScale(i, t.zoom),
4045        e = t.origin.multiplyBy(n).subtract(this._map._getNewPixelOrigin(e, i)).round();
4046      b.any3d ? be(t.el, e, n) : Z(t.el, e);
4047    },
4048    _resetGrid: function () {
4049      var t = this._map,
4050        e = t.options.crs,
4051        i = (this._tileSize = this.getTileSize()),
4052        n = this._tileZoom,
4053        o = this._map.getPixelWorldBounds(this._tileZoom);
4054      (o && (this._globalTileRange = this._pxBoundsToTileRange(o)),
4055        (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)]),
4056        (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)]));
4057    },
4058    _onMoveEnd: function () {
4059      this._map && !this._map._animatingZoom && this._update();
4060    },
4061    _getTiledPixelBounds: function (t) {
4062      var e = this._map,
4063        i = e._animatingZoom ? Math.max(e._animateToZoom, e.getZoom()) : e.getZoom(),
4064        i = e.getZoomScale(i, this._tileZoom),
4065        t = e.project(t, this._tileZoom).floor(),
4066        e = e.getSize().divideBy(2 * i);
4067      return new f(t.subtract(e), t.add(e));
4068    },
4069    _update: function (t) {
4070      var e = this._map;
4071      if (e) {
4072        var i = this._clampZoom(e.getZoom());
4073        if ((void 0 === t && (t = e.getCenter()), void 0 !== this._tileZoom)) {
4074          var n,
4075            e = this._getTiledPixelBounds(t),
4076            o = this._pxBoundsToTileRange(e),
4077            s = o.getCenter(),
4078            r = [],
4079            e = this.options.keepBuffer,
4080            a = new f(o.getBottomLeft().subtract([e, -e]), o.getTopRight().add([e, -e]));
4081          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');
4082          for (n in this._tiles) {
4083            var h = this._tiles[n].coords;
4084            (h.z === this._tileZoom && a.contains(new p(h.x, h.y))) || (this._tiles[n].current = !1);
4085          }
4086          if (1 < Math.abs(i - this._tileZoom)) this._setView(t, i);
4087          else {
4088            for (var l = o.min.y; l <= o.max.y; l++)
4089              for (var u = o.min.x; u <= o.max.x; u++) {
4090                var c,
4091                  d = new p(u, l);
4092                ((d.z = this._tileZoom), this._isValidTile(d) && ((c = this._tiles[this._tileCoordsToKey(d)]) ? (c.current = !0) : r.push(d)));
4093              }
4094            if (
4095              (r.sort(function (t, e) {
4096                return t.distanceTo(s) - e.distanceTo(s);
4097              }),
4098              0 !== r.length)
4099            ) {
4100              this._loading || ((this._loading = !0), this.fire('loading'));
4101              for (var _ = document.createDocumentFragment(), u = 0; u < r.length; u++) this._addTile(r[u], _);
4102              this._level.el.appendChild(_);
4103            }
4104          }
4105        }
4106      }
4107    },
4108    _isValidTile: function (t) {
4109      var e = this._map.options.crs;
4110      if (!e.infinite) {
4111        var i = this._globalTileRange;
4112        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;
4113      }
4114      return !this.options.bounds || ((e = this._tileCoordsToBounds(t)), g(this.options.bounds).overlaps(e));
4115    },
4116    _keyToBounds: function (t) {
4117      return this._tileCoordsToBounds(this._keyToTileCoords(t));
4118    },
4119    _tileCoordsToNwSe: function (t) {
4120      var e = this._map,
4121        i = this.getTileSize(),
4122        n = t.scaleBy(i),
4123        i = n.add(i);
4124      return [e.unproject(n, t.z), e.unproject(i, t.z)];
4125    },
4126    _tileCoordsToBounds: function (t) {
4127      ((t = this._tileCoordsToNwSe(t)), (t = new s(t[0], t[1])));
4128      return (t = this.options.noWrap ? t : this._map.wrapLatLngBounds(t));
4129    },
4130    _tileCoordsToKey: function (t) {
4131      return t.x + ':' + t.y + ':' + t.z;
4132    },
4133    _keyToTileCoords: function (t) {
4134      var t = t.split(':'),
4135        e = new p(+t[0], +t[1]);
4136      return ((e.z = +t[2]), e);
4137    },
4138    _removeTile: function (t) {
4139      var e = this._tiles[t];
4140      e &&
4141        (T(e.el),
4142        delete this._tiles[t],
4143        this.fire('tileunload', {
4144          tile: e.el,
4145          coords: this._keyToTileCoords(t),
4146        }));
4147    },
4148    _initTile: function (t) {
4149      M(t, 'leaflet-tile');
4150      var e = this.getTileSize();
4151      ((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));
4152    },
4153    _addTile: function (t, e) {
4154      var i = this._getTilePos(t),
4155        n = this._tileCoordsToKey(t),
4156        o = this.createTile(this._wrapCoords(t), a(this._tileReady, this, t));
4157      (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 }));
4158    },
4159    _tileReady: function (t, e, i) {
4160      e && this.fire('tileerror', { error: e, tile: i, coords: t });
4161      var n = this._tileCoordsToKey(t);
4162      (i = this._tiles[n]) &&
4163        ((i.loaded = +new Date()),
4164        this._map._fadeAnimated ? (C(i.el, 0), r(this._fadeFrame), (this._fadeFrame = x(this._updateOpacity, this))) : ((i.active = !0), this._pruneTiles()),
4165        e || (M(i.el, 'leaflet-tile-loaded'), this.fire('tileload', { tile: i.el, coords: t })),
4166        this._noTilesToLoad() && ((this._loading = !1), this.fire('load'), b.ielt9 || !this._map._fadeAnimated ? x(this._pruneTiles, this) : setTimeout(a(this._pruneTiles, this), 250)));
4167    },
4168    _getTilePos: function (t) {
4169      return t.scaleBy(this.getTileSize()).subtract(this._level.origin);
4170    },
4171    _wrapCoords: function (t) {
4172      var e = new p(this._wrapX ? H(t.x, this._wrapX) : t.x, this._wrapY ? H(t.y, this._wrapY) : t.y);
4173      return ((e.z = t.z), e);
4174    },
4175    _pxBoundsToTileRange: function (t) {
4176      var e = this.getTileSize();
4177      return new f(t.min.unscaleBy(e).floor(), t.max.unscaleBy(e).ceil().subtract([1, 1]));
4178    },
4179    _noTilesToLoad: function () {
4180      for (var t in this._tiles) if (!this._tiles[t].loaded) return !1;
4181      return !0;
4182    },
4183  });
4184  var Di = Ni.extend({
4185    options: {
4186      minZoom: 0,
4187      maxZoom: 18,
4188      subdomains: 'abc',
4189      errorTileUrl: '',
4190      zoomOffset: 0,
4191      tms: !1,
4192      zoomReverse: !1,
4193      detectRetina: !1,
4194      crossOrigin: !1,
4195      referrerPolicy: !1,
4196    },
4197    initialize: function (t, e) {
4198      ((this._url = t),
4199        (e = c(this, e)).detectRetina && b.retina && 0 < e.maxZoom
4200          ? ((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)))
4201          : e.zoomReverse
4202            ? (e.minZoom = Math.min(e.maxZoom, e.minZoom))
4203            : (e.maxZoom = Math.max(e.minZoom, e.maxZoom)),
4204        'string' == typeof e.subdomains && (e.subdomains = e.subdomains.split('')),
4205        this.on('tileunload', this._onTileRemove));
4206    },
4207    setUrl: function (t, e) {
4208      return (this._url === t && void 0 === e && (e = !0), (this._url = t), e || this.redraw(), this);
4209    },
4210    createTile: function (t, e) {
4211      var i = document.createElement('img');
4212      return (
4213        S(i, 'load', a(this._tileOnLoad, this, e, i)),
4214        S(i, 'error', a(this._tileOnError, this, e, i)),
4215        (!this.options.crossOrigin && '' !== this.options.crossOrigin) || (i.crossOrigin = !0 === this.options.crossOrigin ? '' : this.options.crossOrigin),
4216        'string' == typeof this.options.referrerPolicy && (i.referrerPolicy = this.options.referrerPolicy),
4217        (i.alt = ''),
4218        (i.src = this.getTileUrl(t)),
4219        i
4220      );
4221    },
4222    getTileUrl: function (t) {
4223      var e = {
4224        r: b.retina ? '@2x' : '',
4225        s: this._getSubdomain(t),
4226        x: t.x,
4227        y: t.y,
4228        z: this._getZoomForUrl(),
4229      };
4230      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)));
4231    },
4232    _tileOnLoad: function (t, e) {
4233      b.ielt9 ? setTimeout(a(t, this, null, e), 0) : t(null, e);
4234    },
4235    _tileOnError: function (t, e, i) {
4236      var n = this.options.errorTileUrl;
4237      (n && e.getAttribute('src') !== n && (e.src = n), t(i, e));
4238    },
4239    _onTileRemove: function (t) {
4240      t.tile.onload = null;
4241    },
4242    _getZoomForUrl: function () {
4243      var t = this._tileZoom,
4244        e = this.options.maxZoom;
4245      return (t = this.options.zoomReverse ? e - t : t) + this.options.zoomOffset;
4246    },
4247    _getSubdomain: function (t) {
4248      t = Math.abs(t.x + t.y) % this.options.subdomains.length;
4249      return this.options.subdomains[t];
4250    },
4251    _abortLoading: function () {
4252      var t, e, i;
4253      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 })));
4254    },
4255    _removeTile: function (t) {
4256      var e = this._tiles[t];
4257      if (e) return (e.el.setAttribute('src', K), Ni.prototype._removeTile.call(this, t));
4258    },
4259    _tileReady: function (t, e, i) {
4260      if (this._map && (!i || i.getAttribute('src') !== K)) return Ni.prototype._tileReady.call(this, t, e, i);
4261    },
4262  });
4263  function ji(t, e) {
4264    return new Di(t, e);
4265  }
4266  var Hi = Di.extend({
4267    defaultWmsParams: {
4268      service: 'WMS',
4269      request: 'GetMap',
4270      layers: '',
4271      styles: '',
4272      format: 'image/jpeg',
4273      transparent: !1,
4274      version: '1.1.1',
4275    },
4276    options: { crs: null, uppercase: !1 },
4277    initialize: function (t, e) {
4278      this._url = t;
4279      var i,
4280        n = l({}, this.defaultWmsParams);
4281      for (i in e) i in this.options || (n[i] = e[i]);
4282      var t = (e = c(this, e)).detectRetina && b.retina ? 2 : 1,
4283        o = this.getTileSize();
4284      ((n.width = o.x * t), (n.height = o.y * t), (this.wmsParams = n));
4285    },
4286    onAdd: function (t) {
4287      ((this._crs = this.options.crs || t.options.crs), (this._wmsVersion = parseFloat(this.wmsParams.version)));
4288      var e = 1.3 <= this._wmsVersion ? 'crs' : 'srs';
4289      ((this.wmsParams[e] = this._crs.code), Di.prototype.onAdd.call(this, t));
4290    },
4291    getTileUrl: function (t) {
4292      var e = this._tileCoordsToNwSe(t),
4293        i = this._crs,
4294        i = _(i.project(e[0]), i.project(e[1])),
4295        e = i.min,
4296        i = i.max,
4297        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(','),
4298        i = Di.prototype.getTileUrl.call(this, t);
4299      return i + U(this.wmsParams, i, this.options.uppercase) + (this.options.uppercase ? '&BBOX=' : '&bbox=') + e;
4300    },
4301    setParams: function (t, e) {
4302      return (l(this.wmsParams, t), e || this.redraw(), this);
4303    },
4304  });
4305  ((Di.WMS = Hi),
4306    (ji.wms = function (t, e) {
4307      return new Hi(t, e);
4308    }));
4309  var Wi = o.extend({
4310      options: { padding: 0.1 },
4311      initialize: function (t) {
4312        (c(this, t), h(this), (this._layers = this._layers || {}));
4313      },
4314      onAdd: function () {
4315        (this._container || (this._initContainer(), M(this._container, 'leaflet-zoom-animated')), this.getPane().appendChild(this._container), this._update(), this.on('update', this._updatePaths, this));
4316      },
4317      onRemove: function () {
4318        (this.off('update', this._updatePaths, this), this._destroyContainer());
4319      },
4320      getEvents: function () {
4321        var t = {
4322          viewreset: this._reset,
4323          zoom: this._onZoom,
4324          moveend: this._update,
4325          zoomend: this._onZoomEnd,
4326        };
4327        return (this._zoomAnimated && (t.zoomanim = this._onAnimZoom), t);
4328      },
4329      _onAnimZoom: function (t) {
4330        this._updateTransform(t.center, t.zoom);
4331      },
4332      _onZoom: function () {
4333        this._updateTransform(this._map.getCenter(), this._map.getZoom());
4334      },
4335      _updateTransform: function (t, e) {
4336        var i = this._map.getZoomScale(e, this._zoom),
4337          n = this._map.getSize().multiplyBy(0.5 + this.options.padding),
4338          o = this._map.project(this._center, e),
4339          n = n.multiplyBy(-i).add(o).subtract(this._map._getNewPixelOrigin(t, e));
4340        b.any3d ? be(this._container, n, i) : Z(this._container, n);
4341      },
4342      _reset: function () {
4343        for (var t in (this._update(), this._updateTransform(this._center, this._zoom), this._layers)) this._layers[t]._reset();
4344      },
4345      _onZoomEnd: function () {
4346        for (var t in this._layers) this._layers[t]._project();
4347      },
4348      _updatePaths: function () {
4349        for (var t in this._layers) this._layers[t]._update();
4350      },
4351      _update: function () {
4352        var t = this.options.padding,
4353          e = this._map.getSize(),
4354          i = this._map.containerPointToLayerPoint(e.multiplyBy(-t)).roun
4354d();
4355        ((this._bounds = new f(i, i.add(e.multiplyBy(1 + 2 * t)).round())), (this._center = this._map.getCenter()), (this._zoom = this._map.getZoom()));
4356      },
4357    }),
4358    Fi = Wi.extend({
4359      options: { tolerance: 0 },
4360      getEvents: function () {
4361        var t = Wi.prototype.getEvents.call(this);
4362        return ((t.viewprereset = this._onViewPreReset), t);
4363      },
4364      _onViewPreReset: function () {
4365        this._postponeUpdatePaths = !0;
4366      },
4367      onAdd: function () {
4368        (Wi.prototype.onAdd.call(this), this._draw());
4369      },
4370      _initContainer: function () {
4371        var t = (this._container = document.createElement('canvas'));
4372        (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')));
4373      },
4374      _destroyContainer: function () {
4375        (r(this._redrawRequest), delete this._ctx, T(this._container), k(this._container), delete this._container);
4376      },
4377      _updatePaths: function () {
4378        if (!this._postponeUpdatePaths) {
4379          for (var t in ((this._redrawBounds = null), this._layers)) this._layers[t]._update();
4380          this._redraw();
4381        }
4382      },
4383      _update: function () {
4384        var t, e, i, n;
4385        (this._map._animatingZoom && this._bounds) ||
4386          (Wi.prototype._update.call(this),
4387          (t = this._bounds),
4388          (e = this._container),
4389          (i = t.getSize()),
4390          (n = b.retina ? 2 : 1),
4391          Z(e, t.min),
4392          (e.width = n * i.x),
4393          (e.height = n * i.y),
4394          (e.style.width = i.x + 'px'),
4395          (e.style.height = i.y + 'px'),
4396          b.retina && this._ctx.scale(2, 2),
4397          this._ctx.translate(-t.min.x, -t.min.y),
4398          this.fire('update'));
4399      },
4400      _reset: function () {
4401        (Wi.prototype._reset.call(this), this._postponeUpdatePaths && ((this._postponeUpdatePaths = !1), this._updatePaths()));
4402      },
4403      _initPath: function (t) {
4404        this._updateDashArray(t);
4405        t = (this._layers[h(t)] = t)._order = {
4406          layer: t,
4407          prev: this._drawLast,
4408          next: null,
4409        };
4410        (this._drawLast && (this._drawLast.next = t), (this._drawLast = t), (this._drawFirst = this._drawFirst || this._drawLast));
4411      },
4412      _addPath: function (t) {
4413        this._requestRedraw(t);
4414      },
4415      _removePath: function (t) {
4416        var e = t._order,
4417          i = e.next,
4418          e = e.prev;
4419        (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));
4420      },
4421      _updatePath: function (t) {
4422        (this._extendRedrawBounds(t), t._project(), t._update(), this._requestRedraw(t));
4423      },
4424      _updateStyle: function (t) {
4425        (this._updateDashArray(t), this._requestRedraw(t));
4426      },
4427      _updateDashArray: function (t) {
4428        if ('string' == typeof t.options.dashArray) {
4429          for (var e, i = t.options.dashArray.split(/[, ]+/), n = [], o = 0; o < i.length; o++) {
4430            if (((e = Number(i[o])), isNaN(e))) return;
4431            n.push(e);
4432          }
4433          t.options._dashArray = n;
4434        } else t.options._dashArray = t.options.dashArray;
4435      },
4436      _requestRedraw: function (t) {
4437        this._map && (this._extendRedrawBounds(t), (this._redrawRequest = this._redrawRequest || x(this._redraw, this)));
4438      },
4439      _extendRedrawBounds: function (t) {
4440        var e;
4441        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])));
4442      },
4443      _redraw: function () {
4444        ((this._redrawRequest = null), this._redrawBounds && (this._redrawBounds.min._floor(), this._redrawBounds.max._ceil()), this._clear(), this._draw(), (this._redrawBounds = null));
4445      },
4446      _clear: function () {
4447        var t,
4448          e = this._redrawBounds;
4449        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(
4449));
4450      },
4451      _draw: function () {
4452        var t,
4453          e,
4454          i = this._redrawBounds;
4455        (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));
4456        for (var n = this._drawFirst; n; n = n.next) ((t = n.layer), (!i || (t._pxBounds && t._pxBounds.intersects(i))) && t._updatePath());
4457        ((this._drawing = !1), this._ctx.restore());
4458      },
4459      _updatePoly: function (t, e) {
4460        if (this._drawing) {
4461          var i,
4462            n,
4463            o,
4464            s,
4465            r = t._parts,
4466            a = r.length,
4467            h = this._ctx;
4468          if (a) {
4469            for (h.beginPath(), i = 0; i < a; i++) {
4470              for (n = 0, o = r[i].length; n < o; n++) ((s = r[i][n]), h[n ? 'lineTo' : 'moveTo'](s.x, s.y));
4471              e && h.closePath();
4472            }
4473            this._fillStroke(h, t);
4474          }
4475        }
4476      },
4477      _updateCircle: function (t) {
4478        var e, i, n, o;
4479        this._drawing &&
4480          !t._empty() &&
4481          ((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));
4482      },
4483      _fillStroke: function (t, e) {
4484        var i = e.options;
4485        (i.fill && ((t.globalAlpha = i.fillOpacity), (t.fillStyle = i.fillColor || i.color), t.fill(i.fillRule || 'evenodd')),
4486          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()));
4487      },
4488      _onClick: function (t) {
4489        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));
4490        this._fireEvent(!!i && [i], t);
4491      },
4492      _onMouseMove: function (t) {
4493        var e;
4494        !this._map || this._map.dragging.moving() || this._map._animatingZoom || ((e = this._map.mouseEventToLayerPoint(t)), this._handleMouseHover(t, e));
4495      },
4496      _handleMouseOut: function (t) {
4497        var e = this._hoveredLayer;
4498        e && (z(this._container, 'leaflet-interactive'), this._fireEvent([e], t, 'mouseout'), (this._hoveredLayer = null), (this._mouseHoverThrottled = !1));
4499      },
4500      _handleMouseHover: function (t, e) {
4501        if (!this._mouseHoverThrottled) {
4502          for (var i, n, o = this._drawFirst; o; o = o.next) (i = o.layer).options.interactive && i._containsPoint(e) && (n = i);
4503          (n !== this._hoveredLayer && (this._handleMouseOut(t), n && (M(this._container, 'leaflet-interactive'), this._fireEvent([n], t, 'mouseover'), (this._hoveredLayer = n))),
4504            this._fireEvent(!!this._hoveredLayer && [this._hoveredLayer], t),
4505            (this._mouseHoverThrottled = !0),
4506            setTimeout(
4507              a(function () {
4508                this._mouseHoverThrottled = !1;
4509              }, this),
4510              32
4511            ));
4512        }
4513      },
4514      _fireEvent: function (t, e, i) {
4515        this._map._fireDOMEvent(e, i || e.type, t);
4516      },
4517      _bringToFront: function (t) {
4518        var e,
4519          i,
4520          n = t._order;
4521        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)));
4522      },
4523      _bringToBack: function (t) {
4524        var e,
4525          i,
4526          n = t._order;
4527        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)));
4528      },
4529    });
4530  function Ui(t) {
4531    return b.canvas ? new Fi(t) : null;
4532  }
4533  var Vi = (function () {
4534      try {
4535        return (
4536          document.namespaces.add('lvml', 'urn:schemas-microsoft-com:vml'),
4537          function (t) {
4538            return document.createElement('<lvml:' + t + ' class="lvml">');
4539          }
4540        );
4541      } catch (t) {}
4542      return function (t) {
4543        return document.createElement('<' + t + ' xmlns="urn:schemas-microsoft.com:vml" class="lvml">');
4544      };
4545    })(),
4546    zt = {
4547      _initContainer: function () {
4548        this._container = P('div', 'leaflet-vml-container');
4549      },
4550      _update: function () {
4551        this._map._animatingZoom || (Wi.prototype._update.call(this), this.fire('update'));
4552      },
4553      _initPath: function (t) {
4554        var e = (t._container = Vi('shape'));
4555        (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));
4556      },
4557      _addPath: function (t) {
4558        var e = t._container;
4559        (this._container.appendChild(e), t.options.interactive && t.addInteractiveTarget(e));
4560      },
4561      _removePath: function (t) {
4562        var e = t._container;
4563        (T(e), t.removeInteractiveTarget(e), delete this._layers[h(t)]);
4564      },
4565      _updateStyle: function (t) {
4566        var e = t._stroke,
4567          i = t._fill,
4568          n = t.options,
4569          o = t._container;
4570        ((o.stroked = !!n.stroke),
4571          (o.filled = !!n.fill),
4572          n.stroke
4573            ? ((e = e || (t._stroke = Vi('stroke'))),
4574              o.appendChild(e),
4575              (e.weight = n.weight + 'px'),
4576              (e.color = n.color),
4577              (e.opacity = n.opacity),
4578              n.dashArray ? (e.dashStyle = d(n.dashArray) ? n.dashArray.join(' ') : n.dashArray.replace(/( *, *)/g, ' ')) : (e.dashStyle = ''),
4579              (e.endcap = n.lineCap.replace('butt', 'flat')),
4580              (e.joinstyle = n.lineJoin))
4581            : e && (o.removeChild(e), (t._stroke = null)),
4582          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)));
4583      },
4584      _updateCircle: function (t) {
4585        var e = t._point.round(),
4586          i = Math.round(t._radius),
4587          n = Math.round(t._radiusY || i);
4588        this._setPath(t, t._empty() ? 'M0 0' : 'AL ' + e.x + ',' + e.y + ' ' + i + ',' + n + ' 0,23592600');
4589      },
4590      _setPath: function (t, e) {
4591        t._path.v = e;
4592      },
4593      _bringToFront: function (t) {
4594        fe(t._container);
4595      },
4596      _bringToBack: function (t) {
4597        ge(t._container);
4598      },
4599    },
4600    qi = b.vml ? Vi : ct,
4601    Gi = Wi.extend({
4602      _initContainer: function () {
4603        ((this._container = qi('svg')), this._container.setAttribute('pointer-events', 'none'), (this._rootGroup = qi('g')), this._container.appendChild(this._rootGroup));
4604      },
4605      _destroyContainer: function () {
4606        (T(this._container), k(this._container), delete this._container, delete this._rootGroup, delete this._svgSize);
4607      },
4608      _update: function () {
4609        var t, e, i;
4610        (this._map._animatingZoom && this._bounds) ||
4611          (Wi.prototype._update.call(this),
4612          (e = (t = this._bounds).getSize()),
4613          (i = this._container),
4614          (this._svgSize && this._svgSize.equals(e)) || ((this._svgSize = e), i.setAttribute('width', e.x), i.setAttribute('height', e.y)),
4615          Z(i, t.min),
4616          i.setAttribute('viewBox', [t.min.x, t.min.y, e.x, e.y].join(' ')),
4617          this.fire('update'));
4618      },
4619      _initPath: function (t) {
4620        var e = (t._path = qi('path'));
4621        (t.options.className && M(e, t.options.className), t.options.interactive && M(e, 'leaflet-interactive'), this._updateStyle(t), (this._layers[h(t)] = t));
4622      },
4623      _addPath: function (t) {
4624        (this._rootGroup || this._initContainer(), this._rootGroup.appendChild(t._path), t.addInteractiveTarget(t._path));
4625      },
4626      _removePath: function (t) {
4627        (T(t._path), t.removeInteractiveTarget(t._path), delete this._layers[h(t)]);
4628      },
4629      _updatePath: function (t) {
4630        (t._project(), t._update());
4631      },
4632      _updateStyle: function (t) {
4633        var e = t._path,
4634          t = t.options;
4635        e &&
4636          (t.stroke
4637            ? (e.setAttribute('stroke', t.color),
4638              e.setAttribute('stroke-opacity', t.opacity),
4639              e.setAttribute('stroke-width', t.weight),
4640              e.setAttribute('stroke-linecap', t.lineCap),
4641              e.setAttribute('stroke-linejoin', t.lineJoin),
4642              t.dashArray ? e.setAttribute('stroke-dasharray', t.dashArray) : e.removeAttribute('stroke-dasharray'),
4643              t.dashOffset ? e.setAttribute('stroke-dashoffset', t.dashOffset) 
4643: e.removeAttribute('stroke-dashoffset'))
4644            : e.setAttribute('stroke', 'none'),
4645          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'));
4646      },
4647      _updatePoly: function (t, e) {
4648        this._setPath(t, dt(t._parts, e));
4649      },
4650      _updateCircle: function (t) {
4651        var e = t._point,
4652          i = Math.max(Math.round(t._radius), 1),
4653          n = 'a' + i + ',' + (Math.max(Math.round(t._radiusY), 1) || i) + ' 0 1,0 ',
4654          e = t._empty() ? 'M0 0' : 'M' + (e.x - i) + ',' + e.y + n + 2 * i + ',0 ' + n + 2 * -i + ',0 ';
4655        this._setPath(t, e);
4656      },
4657      _setPath: function (t, e) {
4658        t._path.setAttribute('d', e);
4659      },
4660      _bringToFront: function (t) {
4661        fe(t._path);
4662      },
4663      _bringToBack: function (t) {
4664        ge(t._path);
4665      },
4666    });
4667  function Ki(t) {
4668    return b.svg || b.vml ? new Gi(t) : null;
4669  }
4670  (b.vml && Gi.include(zt),
4671    A.include({
4672      getRenderer: function (t) {
4673        t = (t = t.options.renderer || this._getPaneRenderer(t.options.pane) || this.options.renderer || this._renderer) || (this._renderer = this._createRenderer());
4674        return (this.hasLayer(t) || this.addLayer(t), t);
4675      },
4676      _getPaneRenderer: function (t) {
4677        var e;
4678        return 'overlayPane' !== t && void 0 !== t && (void 0 === (e = this._paneRenderers[t]) && ((e = this._createRenderer({ pane: t })), (this._paneRenderers[t] = e)), e);
4679      },
4680      _createRenderer: function (t) {
4681        return (this.options.preferCanvas && Ui(t)) || Ki(t);
4682      },
4683    }));
4684  var Yi = xi.extend({
4685    initialize: function (t, e) {
4686      xi.prototype.initialize.call(this, this._boundsToLatLngs(t), e);
4687    },
4688    setBounds: function (t) {
4689      return this.setLatLngs(this._boundsToLatLngs(t));
4690    },
4691    _boundsToLatLngs: function (t) {
4692      return [(t = g(t)).getSouthWest(), t.getNorthWest(), t.getNorthEast(), t.getSouthEast()];
4693    },
4694  });
4695  ((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 }));
4696  var _t = n.extend({
4697      initialize: function (t) {
4698        ((this._map = t), (this._container = t._container), (this._pane = t._panes.overlayPane), (this._resetStateTimeout = 0), t.on('unload', this._destroy, this));
4699      },
4700      addHooks: function () {
4701        S(this._container, 'mousedown', this._onMouseDown, this);
4702      },
4703      removeHooks: function () {
4704        k(this._container, 'mousedown', this._onMouseDown, this);
4705      },
4706      moved: function () {
4707        return this._moved;
4708      },
4709      _destroy: function () {
4710        (T(this._pane), delete this._pane);
4711      },
4712      _resetState: function () {
4713        ((this._resetStateTimeout = 0), (this._moved = !1));
4714      },
4715      _clearDeferredResetState: function () {
4716        0 !== this._resetStateTimeout && (clearTimeout(this._resetStateTimeout), (this._resetStateTimeout = 0));
4717      },
4718      _onMouseDown: function (t) {
4719        if (!t.shiftKey || (1 !== t.which && 1 !== t.button)) return !1;
4720        (this._clearDeferredResetState(),
4721          this._resetState(),
4722          re(),
4723          Le(),
4724          (this._startPoint = this._map.mouseEventToContainerPoint(t)),
4725          S(
4726            document,
4727            {
4728              contextmenu: Re,
4729              mousemove: this._onMouseMove,
4730              mouseup: this._onMouseUp,
4731              keydown: this._onKeyDown,
4732            },
4733            this
4734          ));
4735      },
4736      _onMouseMove: function (t) {
4737        (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)));
4738        var t = new f(this._point, this._startPoint),
4739          e = t.getSize();
4740        (Z(this._box, t.min), (this._box.style.width = e.x + 'px'), (this._box.style.height = e.y + 'px'));
4741      },
4742      _finish: function () {
4743        (this._moved && (T(this._box), z(this._container, 'leaflet-crosshair')),
4744          ae(),
4745          Te(),
4746          k(
4747            document,
4748            {
4749              contextmenu: Re,
4750              mousemove: this._onMouseMove,
4751              mouseup: this._onMouseUp,
4752              keydown: this._onKeyDown,
4753            },
4754            this
4755          ));
4756      },
4757      _onMouseUp: function (t) {
4758        (1 !== t.which && 1 !== t.button) ||
4759          (this._finish(),
4760          this._moved &&
4761            (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 })));
4762      },
4763      _onKeyDown: function (t) {
4764        27 === t.keyCode && (this._finish(), this._clearDeferredResetState(), this._resetState());
4765      },
4766    }),
4767    Ct =
4768      (A.addInitHook('addHandler', 'boxZoom', _t),
4769      A.mergeOptions({ doubleClickZoom: !0 }),
4770      n.extend({
4771        addHooks: function () {
4772          this._map.on('dblclick', this._onDoubleClick, this);
4773        },
4774        removeHooks: function () {
4775          this._map.off('dblclick', this._onDoubleClick, this);
4776        },
4777        _onDoubleClick: function (t) {
4778          var e = this._map,
4779            i = e.getZoom(),
4780            n = e.options.zoomDelta,
4781            i = t.originalEvent.shiftKey ? i - n : i + n;
4782          'center' === e.options.doubleClickZoom ? e.setZoom(i) : e.setZoomAround(t.containerPoint, i);
4783        },
4784      })),
4785    Zt =
4786      (A.addInitHook('addHandler', 'doubleClickZoom', Ct),
4787      A.mergeOptions({
4788        dragging: !0,
4789        inertia: !0,
4790        inertiaDeceleration: 3400,
4791        inertiaMaxSpeed: 1 / 0,
4792        easeLinearity: 0.2,
4793        worldCopyJump: !1,
4794        maxBoundsViscosity: 0,
4795      }),
4796      n.extend({
4797        addHooks: function () {
4798          var t;
4799          (this._draggable ||
4800            ((t = this._map),
4801            (this._draggable = new Xe(t._mapPane, t._container)),
4802            this._draggable.on(
4803              {
4804                dragstart: this._onDragStart,
4805                drag: this._onDrag,
4806                dragend: this._onDragEnd,
4807              },
4808              this
4809            ),
4810            this._draggable.on('predrag', this._onPreDragLimit, this),
4811            t.options.worldCopyJump && (this._draggable.on('predrag', this._onPreDragWrap, this), t.on('zoomend', this._onZoomEnd, this), t.whenReady(this._onZoomEnd, this))),
4812            M(this._map._container, 'leaflet-grab leaflet-touch-drag'),
4813            this._draggable.enable(),
4814            (this._positions = []),
4815            (this._times = []));
4816        },
4817        removeHooks: function () {
4818          (z(this._map._container, 'leaflet-grab'), z(this._map._container, 'leaflet-touch-drag'), this._draggable.disable());
4819        },
4820        moved: function () {
4821          return this._draggable && this._draggable._moved;
4822        },
4823        moving: function () {
4824          return this._draggable && this._draggable._moving;
4825        },
4826        _onDragStart: function () {
4827          var t,
4828            e = this._map;
4829          (e._stop(),
4830            this._map.options.maxBounds && this._map.options.maxBoundsViscosity
4831              ? ((t = g(this._map.options.maxBounds)),
4832                (this._offsetLimit = _(this._map.latLngToContainerPoint(t.getNorthWest()).multiplyBy(-1), this._map.latLngToContainerPoint(t.getSouthEast()).multiplyBy(-1).add(this._map.getSize()))),
4833                (this._viscosity = Math.min(1, Math.max(0, this._map.options.maxBoundsViscosity))))
4834              : (this._offsetLimit = null),
4835            e.fire('movestart').fire('dragstart'),
4836            e.options.inertia && ((this._positions = []), (this._times = [])));
4837        },
4838        _onDrag: function (t) {
4839          var e, i;
4840          (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));
4841        },
4842        _prunePositions: function (t) {
4843          for (; 1 < this._positions.length && 50 < t - this._times[0]; ) (this._positions.shift(), this._times.shift());
4844        },
4845        _onZoomEnd: function () {
4846          var t = this._map.getSize().divideBy(2),
4847            e = this._map.latLngToLayerPoint([0, 0]);
4848          ((this._initialWorldOffset = e.subtract(t).x), (this._worldWidth = this._map.getPixelWorldBounds().getSize().x));
4849        },
4850        _viscousLimit: function (t, e) {
4851          return t - (t - e) * this._viscosity;
4852        },
4853        _onPreDragLimit: function () {
4854          var t, e;
4855          this._viscosity &&
4856            this._offsetLimit &&
4857            ((t = this._draggable._newPos.subtract(this._draggable._startPos)),
4858            (e = this._offsetLimit),
4859            t.x < e.min.x && (t.x = this._viscousLimit(t.x, e.min.x)),
4860            t.y < e.min.y && (t.y = this._viscousLimit(t.y, e.min.y)),
4861            t.x > e.max.x && (t.x = this._viscousLimit(t.x, e.max.x)),
4862            t.y > e.max.y && (t.y = this._viscousLimit(t.y, e.max.y)),
4863            (this._draggable._newPos = this._draggable._startPos.add(t)));
4864        },
4865        _onPreDragWrap: function () {
4866          var t = this._worldWidth,
4867            e = Math.round(t / 2),
4868            i = this._initialWorldOffset,
4869            n = this._draggable._newPos.x,
4870            o = ((n - e + i) % t) + e - i,
4871            n = ((n + e + i) % t) - e - i,
4872            t = Math.abs(o + i) < Math.abs(n + i) ? o : n;
4873          ((this._draggable._absPos = this._draggable._newPos.clone()), (this._draggable._newPos.x = t));
4874        },
4875        _onDragEnd: function (t) {
4876          var e,
4877            i,
4878            n,
4879            o,
4880            s = this._map,
4881            r = s.options,
4882            a = !r.inertia || t.noInertia || this._times.length < 2;
4883          (s.fire('dragend', t),
4884            !a &&
4885            (this._prunePositions(+new Date()),
4886            (t = this._lastPos.subtract(this._positions[0])),
4887            (a = (this._lastTime - this._times[0]) / 1e3),
4888            (e = r.easeLinearity),
4889            (a = (t = t.multiplyBy(e / a)).distanceTo([0, 0])),
4890            (i = Math.min(r.inertiaMaxSpeed, a)),
4891            (t = t.multiplyBy(i / a)),
4892            (n = i / (r.inertiaDeceleration * e)),
4893            (o = t.multiplyBy(-n / 2).round()).x || o.y)
4894              ? ((o = s._limitOffset(o, s.options.maxBounds)),
4895                x(function () {
4896                  s.panBy(o, {
4897                    duration: n,
4898                    easeLinearity: e,
4899                    noMoveStart: !0,
4900                    animate: !0,
4901                  });
4902                }))
4903              : s.fire('moveend'));
4904        },
4905      })),
4906    St =
4907      (A.addInitHook('addHandler', 'dragging', Zt),
4908      A.mergeOptions({ keyboard: !0, keyboardPanDelta: 80 }),
4909      n.extend({
4910        keyCodes: {
4911          left: [37],
4912          right: [39],
4913          down: [40],
4914          up: [38],
4915          zoomIn: [187, 107, 61, 171],
4916          zoomOut: [189, 109, 54, 173],
4917        },
4918        initialize: function (t) {
4919          ((this._map = t), this._setPanDelta(t.options.keyboardPanDelta), this._setZoomDelta(t.options.zoomDelta));
4920        },
4921        addHooks: function () {
4922          var t = this._map._container;
4923          (t.tabIndex <= 0 && (t.tabIndex = '0'),
4924            S(
4925              t,
4926              {
4927                focus: this._onFocus,
4928                blur: this._onBlur,
4929                mousedown: this._onMouseDown,
4930              },
4931              this
4932            ),
4933            this._map.on({ focus: this._addHooks, blur: this._removeHooks }, this));
4934        },
4935        removeHooks: function () {
4936          (this._removeHooks(),
4937            k(
4938              this._map._container,
4939              {
4940                focus: this._onFocus,
4941                blur: this._onBlur,
4942                mousedown: this._onMouseDown,
4943              },
4944              this
4945            ),
4946            this._map.off({ focus: this._addHooks, blur: this._removeHooks }, this));
4947        },
4948        _onMouseDown: function () {
4949          var t, e, i;
4950          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));
4951        },
4952        _onFocus: function () {
4953          ((this._focused = !0), this._map.fire('focus'));
4954        },
4955        _onBlur: function () {
4956          ((this._focused = !1), this._map.fire('blur'));
4957        },
4958        _setPanDelta: function (t) {
4959          for (var e = (this._panKeys = {}), i = this.keyCodes, n = 0, o = i.left.length; n < o; n++) e[i.left[n]] = [-1 * t, 0];
4960          for (n = 0, o = i.right.length; n < o; n++) e[i.right[n]] = [t, 0];
4961          for (n = 0, o = i.down.length; n < o; n++) e[i.down[n]] = [0, t];
4962          for (n = 0, o = i.up.length; n < o; n++) e[i.up[n]] = [0, -1 * t];
4963        },
4964        _setZoomDelta: function (t) {
4965          for (var e = (this._zoomKeys = {}), i = this.keyCodes, n = 0, o = i.zoomIn.length; n < o; n++) e[i.zoomIn[n]] = t;
4966          for (n = 0, o = i.zoomOut.length; n < o; n++) e[i.zoomOut[n]] = -t;
4967        },
4968        _addHooks: function () {
4969          S(document, 'keydown', this._onKeyDown, this);
4970        },
4971        _removeHooks: function () {
4972          k(document, 'keydown', this._onKeyDown, this);
4973        },
4974        _onKeyDown: function (t) {
4975          if (!(t.altKey || t.ctrlKey || t.metaKey)) {
4976            var e,
4977              i,
4978              n = t.keyCode,
4979              o = this._map;
4980            if (n in this._panKeys)
4981              (o._panAnim && o._panAnim._inProgress) ||
4982                ((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));
4983            else if (n in this._zoomKeys) o.setZoom(o.getZoom() + (t.shiftKey ? 3 : 1) * this._zoomKeys[n]);
4984            else {
4985              if (27 !== n || !o._popup || !o._popup.options.closeOnEscapeKey) return;
4986              o.closePopup();
4987            }
4988            Re(t);
4989          }
4990        },
4991      })),
4992    Et =
4993      (A.addInitHook('addHandler', 'keyboard', St),
4994      A.mergeOptions({
4995        scrollWheelZoom: !0,
4996        wheelDebounceTime: 40,
4997        wheelPxPerZoomLevel: 60,
4998      }),
4999      n.extend({
5000        addHooks: function () {
5001          (S(this._map._container, 'wheel', this._onWheelScroll, this), (this._delta = 0));
5002        },
5003        removeHooks: function () {
5004          k(this._map._container, 'wheel', this._onWheelScroll, this);
5005        },
5006        _onWheelScroll: function (t) {
5007          var e = He(t),
5008            i = this._map.options.wheelDebounceTime,
5009            e = ((this._delta += e), (this._lastMousePos = this._map.mouseEventToContainerPoint(t)), this._startTime || (this._startTime = +new Date()), Math.max(i - (+new Date() - this._startTime), 0));
5010          (clearTimeout(this._timer), (this._timer = setTimeout(a(this._performZoom, this), e)), Re(t));
5011        },
5012        _performZoom: function () {
5013          var t = this._map,
5014            e = t.getZoom(),
5015            i = this._map.options.zoomSnap || 0,
5016            n = (t._stop(), this._delta / (4 * this._map.options.wheelPxPerZoomLevel)),
5017            n = (4 * Math.log(2 / (1 + Math.exp(-Math.abs(n))))) / Math.LN2,
5018            i = i ? Math.ceil(n / i) * i : n,
5019            n = t._limitZoom(e + (0 < this._delta ? i : -i)) - e;
5020          ((this._delta = 0), (this._startTime = null), n && ('center' === t.options.scrollWheelZoom ? t.setZoom(e + n) : t.setZoomAround(this._lastMousePos, e + n)));
5021        },
5022      })),
5023    kt =
5024      (A.addInitHook('addHandler', 'scrollWheelZoom', Et),
5025      A.mergeOptions({
5026        tapHold: b.touchNative && b.safari && b.mobile,
5027        tapTolerance: 15,
5028      }),
5029      n.extend({
5030        addHooks: function () {
5031          S(this._map._container, 'touchstart', this._onDown, this);
5032        },
5033        removeHooks: function () {
5034          k(this._map._container, 'touchstart', this._onDown, this);
5035        },
5036        _onDown: function (t) {
5037          var e;
5038          (clearTimeout(this._holdTimeout),
5039            1 === t.touches.length &&
5040              ((e = t.touches[0]),
5041              (this._startPos = this._newPos = new p(e.clientX, e.clientY)),
5042              (this._holdTimeout = setTimeout(
5043                a(function () {
5044                  (this._cancel(), this._isTapValid() && (S(document, 'touchend', O), S(document, 'touchend touchcancel', this._cancelClickPrevent), this._simulateEvent('contextmenu', e)));
5045                }, this),
5046                600
5047              )),
5048              S(document, 'touchend touchcancel contextmenu', this._cancel, this),
5049              S(document, 'touchmove', this._onMove, this)));
5050        },
5051        _cancelClickPrevent: function t() {
5052          (k(document, 'touchend', O), k(document, 'touchend touchcancel', t));
5053        },
5054        _cancel: function () {
5055          (clearTimeout(this._holdTimeout), k(document, 'touchend touchcancel contextmenu', this._cancel, this), k(document, 'touchmove', this._onMove, this));
5056        },
5057        _onMove: function (t) {
5058          t = t.touches[0];
5059          this._newPos = new p(t.clientX, t.clientY);
5060        },
5061        _isTapValid: function () {
5062          return this._newPos.distanceTo(this._startPos) <= this._map.options.tapTolerance;
5063        },
5064        _simulateEvent: function (t, e) {
5065          t = new MouseEvent(t, {
5066            bubbles: !0,
5067            cancelable: !0,
5068            view: window,
5069            screenX: e.screenX,
5070            screenY: e.screenY,
5071            clientX: e.clientX,
5072            clientY: e.clientY,
5073          });
5074          ((t._simulated = !0), e.target.dispatchEvent(t));
5075        },
5076      })),
5077    Ot =
5078      (A.addInitHook('addHandler', 'tapHold', kt),
5079      A.mergeOptions({ touchZoom: b.touch, bounceAtZoomLimits: !0 }),
5080      n.extend({
5081        addHooks: function () {
5082          (M(this._map._container, 'leaflet-touch-zoom'), S(this._map._container, 'touchstart', this._onTouchStart, this));
5083        },
5084        removeHooks: function () {
5085          (z(this._map._container, 'leaflet-touch-zoom'), k(this._map._container, 'touchstart', this._onTouchStart, this));
5086        },
5087        _onTouchStart: function (t) {
5088          var e,
5089            i,
5090            n = this._map;
5091          !t.touches ||
5092            2 !== t.touches.length ||
5093            n._animatingZoom ||
5094            this._zooming ||
5095            ((e = n.mouseEventToContainerPoint(t.touches[0])),
5096            (i = n.mouseEventToContainerPoint(t.touches[1])),
5097            (this._centerPoint = n.getSize()._divideBy(2)),
5098            (this._startLatLng = n.containerPointToLatLng(this._centerPoint)),
5099            'center' !== n.options.touchZoom && (this._pinchStartLatLng = n.containerPointToLatLng(e.add(i)._divideBy(2))),
5100            (this._startDist = e.distanceTo(i)),
5101            (this._startZoom = n.getZoom()),
5102            (this._moved = !1),
5103            (this._zooming = !0),
5104            n._stop(),
5105            S(document, 'touchmove', this._onTouchMove, this),
5106            S(document, 'touchend touchcancel', this._onTouchEnd, this),
5107            O(t));
5108        },
5109        _onTouchMove: function (t) {
5110          if (t.touches && 2 === t.touches.length && this._zooming) {
5111            var e = this._map,
5112              i = e.mouseEventToContainerPoint(t.touches[0]),
5113              n = e.mouseEventToContainerPoint(t.touches[1]),
5114              o = i.distanceTo(n) / this._startDist;
5115            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)) {
5116              if (((this._center = this._startLatLng), 1 == o)) return;
5117            } else {
5118              i = i._add(n)._divideBy(2)._subtract(this._centerPoint);
5119              if (1 == o && 0 === i.x && 0 === i.y) return;
5120              this._center = e.unproject(e.project(this._pinchStartLatLng, this._zoom).subtract(i), this._zoom);
5121            }
5122            (this._moved || (e._moveStart(!0, !1), (this._moved = !0)), r(this._animRequest));
5123            n = a(e._move, e, this._center, this._zoom, { pinch: !0, roun
5123d: !1 }, void 0);
5124            ((this._animRequest = x(n, this, !0)), O(t));
5125          }
5126        },
5127        _onTouchEnd: function () {
5128          this._moved && this._zooming
5129            ? ((this._zooming = !1),
5130              r(this._animRequest),
5131              k(document, 'touchmove', this._onTouchMove, this),
5132              k(document, 'touchend touchcancel', this._onTouchEnd, this),
5133              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)))
5134            : (this._zooming = !1);
5135        },
5136      })),
5137    Xi =
5138      (A.addInitHook('addHandler', 'touchZoom', Ot),
5139      (A.BoxZoom = _t),
5140      (A.DoubleClickZoom = Ct),
5141      (A.Drag = Zt),
5142      (A.Keyboard = St),
5143      (A.ScrollWheelZoom = Et),
5144      (A.TapHold = kt),
5145      (A.TouchZoom = Ot),
5146      (t.Bounds = f),
5147      (t.Browser = b),
5148      (t.CRS = ot),
5149      (t.Canvas = Fi),
5150      (t.Circle = vi),
5151      (t.CircleMarker = gi),
5152      (t.Class = et),
5153      (t.Control = B),
5154      (t.DivIcon = Ri),
5155      (t.DivOverlay = Ai),
5156      (t.DomEvent = mt),
5157      (t.DomUtil = pt),
5158      (t.Draggable = Xe),
5159      (t.Evented = it),
5160      (t.FeatureGroup = ci),
5161      (t.GeoJSON = wi),
5162      (t.GridLayer = Ni),
5163      (t.Handler = n),
5164      (t.Icon = di),
5165      (t.ImageOverlay = Ei),
5166      (t.LatLng = v),
5167      (t.LatLngBounds = s),
5168      (t.Layer = o),
5169      (t.LayerGroup = ui),
5170      (t.LineUtil = vt),
5171      (t.Map = A),
5172      (t.Marker = mi),
5173      (t.Mixin = ft),
5174      (t.Path = fi),
5175      (t.Point = p),
5176      (t.PolyUtil = gt),
5177      (t.Polygon = xi),
5178      (t.Polyline = yi),
5179      (t.Popup = Bi),
5180      (t.PosAnimation = Fe),
5181      (t.Projection = wt),
5182      (t.Rectangle = Yi),
5183      (t.Renderer = Wi),
5184      (t.SVG = Gi),
5185      (t.SVGOverlay = Oi),
5186      (t.TileLayer = Di),
5187      (t.Tooltip = Ii),
5188      (t.Transformation = at),
5189      (t.Util = tt),
5190      (t.VideoOverlay = ki),
5191      (t.bind = a),
5192      (t.bounds = _),
5193      (t.canvas = Ui),
5194      (t.circle = function (t, e, i) {
5195        return new vi(t, e, i);
5196      }),
5197      (t.circleMarker = function (t, e) {
5198        return new gi(t, e);
5199      }),
5200      (t.control = Ue),
5201      (t.divIcon = function (t) {
5202        return new Ri(t);
5203      }),
5204      (t.extend = l),
5205      (t.featureGroup = function (t, e) {
5206        return new ci(t, e);
5207      }),
5208      (t.geoJSON = Si),
5209      (t.geoJson = Mt),
5210      (t.gridLayer = function (t) {
5211        return new Ni(t);
5212      }),
5213      (t.icon = function (t) {
5214        return new di(t);
5215      }),
5216      (t.imageOverlay = function (t, e, i) {
5217        return new Ei(t, e, i);
5218      }),
5219      (t.latLng = w),
5220      (t.latLngBounds = g),
5221      (t.layerGroup = function (t, e) {
5222        return new ui(t, e);
5223      }),
5224      (t.map = function (t, e) {
5225        return new A(t, e);
5226      }),
5227      (t.marker = function (t, e) {
5228        return new mi(t, e);
5229      }),
5230      (t.point = m),
5231      (t.polygon = function (t, e) {
5232        return new xi(t, e);
5233      }),
5234      (t.polyline = function (t, e) {
5235        return new yi(t, e);
5236      }),
5237      (t.popup = function (t, e) {
5238        return new Bi(t, e);
5239      }),
5240      (t.rectangle = function (t, e) {
5241        return new Yi(t, e);
5242      }),
5243      (t.setOptions = c),
5244      (t.stamp = h),
5245      (t.svg = Ki),
5246      (t.svgOverlay = function (t, e, i) {
5247        return new Oi(t, e, i);
5248      }),
5249      (t.tileLayer = ji),
5250      (t.tooltip = function (t, e) {
5251        return new Ii(t, e);
5252      }),
5253      (t.transformation = ht),
5254      (t.version = '1.9.4'),
5255      (t.videoOverlay = function (t, e, i) {
5256        return new ki(t, e, i);
5257      }),
5258      window.L);
5259  ((t.noConflict = function () {
5260    return ((window.L = Xi), this);
5261  }),
5262    (window.L = t));
5263});
5264//# sourceMappingURL=leaflet.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.